usec 단위로 했었는데.. Hysnc의 길이가 왜.. 3.77usec?
아무튼.. 다시 아래 문서대로 계산을 해보니 값이 좀 많이 다르게 나온다.
2018/06/05 - [모종의 음모/DE0-Nano VGA] - vga 640x480 실패중 그리고 800x600x60
---
VESA DMT 문서에 의하면(공식인지 모르겠지만)
흐음.. 여전히 안되네...
module vga640x480( input clk, input rst, output [7:0] LED, output hsync, output vsync, output [3:0] r, output [3:0] g, output [3:0] b ); parameter HSYNC = 190; parameter HBP = (190 + 96); parameter HVID = (190 + 96 + 1271); parameter HFP = (190 + 96 + 1271 + 32); parameter HTOTAL = 1589; parameter VSYNC = 3200; parameter VBP = (3200 + 52400); parameter VVID = (3200 + 52400 + 762650); parameter VFP = (3200 + 52400 + 762650 + 15900); parameter VTOTAL = 834150; reg [19:0] cnt; always @ (posedge clk or negedge rst) begin if (~rst) begin cnt <= 0; end else begin if(cnt < VTOTAL) begin cnt <= cnt + 1; /* if((cnt % HTOTAL) < 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; assign r[3:0] = ((VVID < cnt & VFP < cnt) & (HVID < (cnt % HTOTAL) && (cnt % HTOTAL) < HFP)) ? 4'b1111 : 4'b0000; assign g[3:0] = ((VVID < cnt & VFP < cnt) & (HVID < (cnt % HTOTAL) && (cnt % HTOTAL) < HFP)) ? 4'b1111 : 4'b0000; assign b[3:0] = ((VVID < cnt & VFP < cnt) & (HVID < (cnt % HTOTAL) && (cnt % HTOTAL) < HFP)) ? 4'b1111 : 4'b0000; assign hsync = ((cnt % HTOTAL) < HSYNC)? 0 : 1; assign vsync = ((cnt ) < VSYNC)? 0 : 1; endmodule |
'모종의 음모 > DE0-Nano VGA' 카테고리의 다른 글
de0-nano에 vga 내 코드... ㅠㅠ (0) | 2018.06.27 |
---|---|
먼가 이상하지만 640x480x60 되는 소스 발견 (0) | 2018.06.05 |
vga 640x480 실패중 그리고 800x600x60 (0) | 2018.06.05 |
800x600 72hz vga 출력 예제 (0) | 2018.06.05 |
vga 출력 해보기.. 시도중 (2) | 2018.06.03 |