作者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://webptt.com/cn.aspx?n=bbs/Electronics/M.1452434853.A.080.html
1F:→ Labazero: wea(1) 01/12 12:36
2F:→ michael6172: 用chip scope 去勾讯号吧 01/12 15:09
3F:→ michael6172: 你有pixel_1和pixel,只有pixel有接到rgb,另ㄧ个勒? 01/12 15:16