[英]Weird custom VGA signal behaviour (FPGA)
我的目標是在分辨率為 640x480px 的 VGA 顯示器上顯示一些東西。 出於其他原因,我真的很想堅持這個決議,但我們會看到的。
問題:
有些線條顯得較暗,有些線條顯得較淡,左側還有一個大的黑色邊框。 我很確定這不是(純粹)由於我的“信號時序錯誤”。 (請忽略白色划痕)
我的設置:
驗證碼:
module vga_test (
output wire HSYNC,
output wire VSYNC,
output wire enable,
output wire r,
output wire g,
output wire b,
// 50 MHz at clk
input wire clk
);
reg [32:0] hor_counter;
reg [32:0] ver_counter;
reg [32:0] counter;
always @(posedge clk) begin
counter <= counter + 1;
if (enable == 1) begin
if (hor_counter[2:0] == 3) begin
g <= 1;
end else begin
g <= 0;
end
end
// Vertical counter
if (hor_counter == 1271) begin
enable <= 0;
end if (hor_counter == 1303) begin
HSYNC <= 0;
end if (hor_counter == 1494) begin
HSYNC <= 1;
end
hor_counter <= hor_counter + 1;
if (hor_counter == 1589) begin
// if (hor_counter == 800) begin
hor_counter <= 0;
ver_counter <= ver_counter + 1;
g <= 0;
if (ver_counter <= 480) begin
enable <= 1; end
end
// Horizontal counter
if (ver_counter == 490) begin
VSYNC <= 0;
end if (ver_counter == 492) begin
VSYNC <= 1;
end
if (ver_counter == 525) begin
ver_counter <= 0;
end
end
endmodule
非常有趣的是,顯示器並沒有將其選為 640x480,而是 720x480。 這也許可以解決為什么有黑色邊框,但用戶手冊說支持 640x480。 這不僅僅是這台顯示器,我嘗試了其他一些我手頭的類似結果。 也許我沒有得到信號時序的某些東西? 如果“圖片”看起來像這篇文章一樣被拉伸,我不會感到驚訝,但這看起來像一個正弦模式。
您的代碼輸出一個大的水平前廊。 您的顯示器顯示了一個大的水平前廊。
嘗試將 hsync 信號移近末端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.