作者peter2774163 (ljoepeter)
看板Electronics
標題[問題] fpga(BASYS3)版顯示不同圖片
時間Sun Jan 10 22:07:30 2016
各位先進大家好,最近在做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
→ Labazero: wea(1) 01/12 12:36
→ michael6172: 用chip scope 去勾訊號吧 01/12 15:09
→ michael6172: 你有pixel_1和pixel,只有pixel有接到rgb,另ㄧ個勒? 01/12 15:16