하다 보면 언젠간 언어도 익히고 작동도 하겠지머..
일단 sync만 인식을 하는지 절전모드였던 모니터가 살아나기는 하는데 해상도 정보까진 못 띄우네
DE0-nano에 시도중
vga640x480 vga( CLOCK_50, KEY[0], LED, GP0[6], GP0[5], {GP0[16],GP0[19],GP0[18],GP0[21]}, {GP0[12],GP0[15],GP0[14],GP0[17]}, {GP0[8],GP0[9],GP0[10],GP0[13]} ); |
module vga640x480( input clk, input rst, output [7:0] LED, output reg hsync, output reg vsync, output [3:0] r, output [3:0] g, output [3:0] b ); parameter HSYNC = 189; parameter HBP = (HSYNC + 95); parameter HVID = (HBP + 1260); parameter HFP = (HVID + 47); parameter VSYNC = 3000; parameter VBP = (VSYNC + 51000); parameter VVID = (VBP + 762500); parameter VFP = (VVID + 17500); reg [19:0] cnt; always @ (posedge clk or negedge rst) begin if (~rst) cnt <= 0; else begin if(cnt < 834000) begin cnt <= cnt + 1; if((cnt % 1590) < HSYNC) hsync <= 1; else hsync <= 0;
if(cnt < VSYNC) vsync <= 1; else vsync <= 0; end else cnt <= 0; end end assign LED[0] = vsync; assign LED[1] = hsync; endmodule |
위의 수치는 아래의 계산에 의해서 나온 것 임.
+
parameter는 이전 값을 더해서 쓸수는 없는건가..
HFP를 이용해서 % 연산을 하면 정상적으로 작동하지 않는 것으로 보이네..
+
sync 구간에만 0이고 나머지는 1로 vsync/hsync 출력해야 하네?
[링크 : https://ws0.org/how-to-generate-a-vga-signal-with-a-fpga/]
[링크 : http://www.cs.ucr.edu/~jtarango/cs122a_lab4.html]
[링크 : https://www.nandland.com/goboard/vga-introduction-test-patterns.html]
+
단순하게 데이터만 출력한다고 나오는게 아닌가?
아무튼.. modelsim 쓰는법 배워서 출력 시그널 확인을 할 필요가 있을 듯...
module vga640x480( input clk, input rst, output [7:0] LED, output reg hsync, output reg vsync, output reg [3:0] r, output reg [3:0] g, output reg [3:0] b ); parameter HSYNC = 189; parameter HBP = (HSYNC + 95); parameter HVID = (HBP + 1260); parameter HFP = (HVID + 47); parameter VSYNC = 3000; parameter VBP = (VSYNC + 51000); parameter VVID = (VBP + 762500); parameter VFP = (VVID + 17500); reg [19:0] cnt; always @ (posedge clk or negedge rst) begin if (~rst) begin cnt <= 0; hsync <= 1; vsync <= 1; end else begin if(cnt < 834000) begin cnt <= cnt + 1; if((cnt % 1590) < HSYNC) hsync <= 0; else hsync <= 1;
if(cnt < VSYNC) vsync <= 0; else vsync <= 1;
if(vsync & hsync) begin r <= 4'b1111; g <= 4'b1111; b <= 4'b1111; end else begin r <= 4'b0000; g <= 4'b0000; b <= 4'b0000; end end else cnt <= 0; end end assign LED[0] = ~vsync; assign LED[1] = ~hsync; endmodule |
+
2018.06.04
하드웨어 구조는 모르겠지만 동일 셋트 예제 발견
[링크 : https://github.com/theapi/de0-nano/blob/master/vga/experiment/vga_demo.v]
'모종의 음모 > DE0-Nano VGA' 카테고리의 다른 글
어라.. 스펙을 잘못봤나? (0) | 2018.06.15 |
---|---|
먼가 이상하지만 640x480x60 되는 소스 발견 (0) | 2018.06.05 |
vga 640x480 실패중 그리고 800x600x60 (0) | 2018.06.05 |
800x600 72hz vga 출력 예제 (0) | 2018.06.05 |
lemonlite vga 어댑터 + de0-nano (0) | 2018.05.30 |