[問題] fpga(BASYS3)版顯示不同圖片

看板Electronics作者 (ljoepeter)時間10年前 (2016/01/10 22:07), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/1
各位先進大家好,最近在做final project,想問一關於verilog圖片顯示的問題 我是想做出能因應按不同見有不同圖片產生,並且用vga輸出,我知道的是要將圖片先存入 fpga版裡面的memory,在看按什麼建去讀取哪個位置,而我現在遇到的問題是,我想先存兩 個圖片並且顯示其中一張,但是出現問題,顯示一片黑,不過我在做只顯示一張的時候卻沒什麼問題,希 望大家幫忙下面是我的code,因為幾個細部的module在只顯示一張的時候都沒有問題,所以 我在想應該是top module出錯,先謝謝大家花時間看!! module top( input clk, input rst, output [3:0] vgaRed, output [3:0] vgaGreen, output [3:0] vgaBlue, output hsync, output vsync ); wire [11:0] data; wire clk_25MHz; wire clk_22; wire [16:0] pixel_addr; wire [11:0] pixel; wire valid; wire [9:0] h_cnt; //640 wire [9:0] v_cnt; //480 wire [11:0] data_1; wire [16:0] pixel_addr_1; wire [11:0] pixel_1; wire valid_1; wire [9:0] h_cnt_1; //640 wire [9:0] v_cnt_1; //480 assign {vgaRed, vgaGreen, vgaBlue} = (valid==1'b1) ? pixel:12'h0; clock_divisor clk_wiz_0_inst( .clk(clk), .clk1(clk_25MHz), .clk22(clk_22) ); mem_addr_gen mem_addr_gen_inst( .clk(clk_22), .rst(rst), .h_cnt(h_cnt), .v_cnt(v_cnt), .pixel_addr(pixel_addr) ); blk_mem_gen_0 blk_mem_gen_0_inst( .clka(clk_25MHz), .wea(0), .addra(pixel_addr), .dina(data[11:0]), .douta(pixel) ); mem_addr_gen mem_addr_gen_inst_1( .clk(clk_22), .rst(rst), .h_cnt(h_cnt_1), .v_cnt(v_cnt_1), .pixel_addr(pixel_addr_1) ); blk_mem_gen_1 blk_mem_gen_1_inst( .clka(clk_25MHz), .wea(1), .addra(pixel_addr_1), .dina(data_1[11:0]), .douta(pixel_1) ); vga_controller vga_inst( .pclk(clk_25MHz), .reset(rst), .hsync(hsync), .vsync(vsync), .valid(valid), .h_cnt(h_cnt), .v_cnt(v_cnt) ); endmodule -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.112.14 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1452434853.A.080.html

01/12 12:36, , 1F
wea(1)
01/12 12:36, 1F

01/12 15:09, , 2F
用chip scope 去勾訊號吧
01/12 15:09, 2F

01/12 15:16, , 3F
你有pixel_1和pixel,只有pixel有接到rgb,另ㄧ個勒?
01/12 15:16, 3F
文章代碼(AID): #1MacMb20 (Electronics)