[問題] FPGA 做AD顯示

看板Electronics作者 (緣投阿琳)時間13年前 (2013/01/12 18:38), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
我需要用FPGA做一個類似示波器的功能 用VGA將AD轉好的訊號傳到螢幕 想要用矩陣的方式 將AD轉換的值存成一維矩陣 在將矩陣的位置(X)與數值(Y) 當成VGA的座標輸出 但是用簡單的寫法測試一下 VGA會產生閃爍 寫法如下 將矩陣image填入i always @( posedge ADB_DCO,posedge SW[16]) begin if(SW[16]==1) begin i=0; end else begin if(i<=500) image[i] <= i; i=i+1'b1; end end // 水平同步訊號 always@(posedge ADB_DCO, negedge RST_N) begin if(!RST_N) begin H_Cont <= 0; vga_hs <= 1; X <= 0; end else begin if (H_Cont < H_TOTAL) H_Cont <= H_Cont+1'b1; else H_Cont <= 0; // Horizontal Sync if(H_Cont == H_FRONT-1) // Front porch end vga_hs <= 1'b0; if(H_Cont == H_FRONT + H_SYNC -1) // Sync pulse end vga_hs <= 1'b1; // Current X if(H_Cont >= H_BLANK) X <= H_Cont-H_BLANK; else X <= 0; end end // 垂直同步訊號 always@(posedge VGA_HS,negedge RST_N) begin if(!RST_N) begin V_Cont <= 0; vga_vs <= 1; Y <= 0; end else begin if (V_Cont<V_TOTAL) V_Cont <= V_Cont + 1'b1; else V_Cont <= 0; // Vertical Sync if (V_Cont == V_FRONT-1) // Front porch end vga_vs <= 1'b0; if (V_Cont == V_FRONT + V_SYNC-1) // Sync pulse end vga_vs <= 1'b1; // Current Y if (V_Cont >= V_BLANK) Y <= V_Cont-V_BLANK; else Y <= 0; end end // VGA控制 always@(posedge ADB_DCO, negedge SW[16]) begin if(SW[16]==0 ) begin vga_r <=(X>=1 && X<=500 &&Y==image[i])?255:0; vga_g <=(X>=1 && X<=500 &&Y==image[i])?255:0; vga_b <=(X>=1 && X<=500 &&Y==image[i])?255:0; end end 這樣子會做出斜線的樣子 但是畫面會有一些雜點閃爍 一直想不出原因 所以還沒把ADC轉換的值讀入矩陣 有人可以幫忙解答嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.126.41.70

01/12 19:04, , 1F
剛剛想了一下 是因為VGA顯示是60Hz左右 所以我的矩陣
01/12 19:04, 1F

01/12 19:04, , 2F
也應該要60Hz的速度給出來嗎?
01/12 19:04, 2F
文章代碼(AID): #1GyJq8vf (Electronics)