完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
Vivado2017.2 中BRAM版本为 Block Memory Generator Specific Features 8.3
BRAM IP核包括有5种类型: Single-port RAM 单端口RAM Simple Dual-port RAM 简单双端口RAM(A写数据B读数据) True Dual-port RAM 双端口RAM Single-por ROM 单端口ROM Dual-port ROM 双端口ROM BRAM核支持两种总线形式的输入输出:Native or AXI4 以下图配置为例:Single-port RAM Testbench 测试代码如下: `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 2018/11/21 15:52:48 // Design Name: // Module Name: test_bench_BRAM // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module test_bench_BRAM( ); reg[15:0] mem1_re[0:15]; //输入数据存储器 integer i; // blk_mem_gen_0 inputs reg clka; reg ena; reg wea; reg[3:0] addra; reg[15:0] dina; // blk_mem_gen_0 outputs wire[15:0] douta; blk_mem_gen_0 blk_mem_gen_m0 ( .clka(clka), //BRAM 输入时钟信号 .ena(ena), //BRAM 时钟使能信号 .wea(wea), //写使能信号 .addra(addra), //地址信号 .dina(dina), //数据输入接口 写入 .douta(douta) //数据输出接口 读出 ); always #5 clka = ~clka; initial $readmemh(“D:/fpga/fft1/stimulus1_24bit.dat”,mem1_re); //数据是[1 2 3 4 5 6 7 8 9] initial begin clka = 0; ena = 0; wea = 0; addra = 0; dina = 0; #150 ena = 1; begin for(i=0;i《16;i=i+1) begin #10 wea 《= 1; addra 《= i; /*if(i == 0) begin addra 《= 0; end else if (i == 1) begin addra 《= 1; end else if(i == 2) begin addra 《= 2; end else if(i == 3) begin addra 《= 3; end else begin wea 《= 0; end*/ dina 《= {mem1_re[i]}; if(i == 15) begin dina 《= 0; wea 《= 0; end $display(“mem_a[%d] = %h”, i, mem1_re[i]); end end #40000 $finish; end endmodule 仿真结果如下: 配置为simple dual port ram Testbench `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 2018/11/21 15:52:48 // Design Name: // Module Name: test_bench_BRAM // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module test_bench_BRAM( ); reg[15:0] mem1_re[0:15]; //输入数据存储器 integer i; integer j; // blk_mem_gen_0 inputs reg clk; reg ena; reg enb; reg wea; reg[3:0] addra; reg[3:0] addrb; reg[15:0] dina; // blk_mem_gen_0 outputs wire[15:0] douta; wire[15:0] doutb; /*****单端口 网络配置的IP核 blk_mem_gen_0 blk_mem_gen_m0 ( .clka(clka), //BRAM 输入时钟信号 .ena(ena), //BRAM 时钟使能信号 .wea(wea), //写使能信号 .addra(addra), //地址信号 .dina(dina), //数据输入接口 写入 .douta(douta) );*******/ /**************简单双端口RAM A进B出**************/ blk_mem_gen_0 blk_mem_gen_m0 ( .clka(clk), //BRAM 输入时钟信号 .ena(ena), //BRAM 时钟使能信号 .wea(wea), //写使能信号 .addra(addra), //地址信号 .dina(dina), //数据输入接口 写入 .clkb(clk), //BRAM 输入时钟信号 .enb(enb), //BRAM 时钟使能信号 .addrb(addrb), //地址信号 .doutb(doutb) ); always #5 clk = ~clk; initial $readmemh(“D:/fpga/fft1/stimulus1_24bit.dat”,mem1_re); initial begin clk = 0; ena = 0; enb = 0; wea = 0; addra = 0; addrb = 0; dina = 0; #150 ena = 1; begin for(i=0;i《16;i=i+1) begin #10 wea 《= 1; addra 《= i; dina 《= {mem1_re[i]}; if(i == 15) begin dina 《= 0; wea 《= 0; addra 《= 0; end $display(“mem_a[%d] = %h”, i, mem1_re[i]); end for(j=0;j《16;j=j+1) begin #10 addrb 《= j; enb 《= 1; if( j == 15) begin enb 《= 0; addrb 《= 0; end end end #40000 $finish; end endmodule 测试仿真结果: |
|
|
|
只有小组成员才能发言,加入小组>>
2379 浏览 7 评论
2794 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2261 浏览 9 评论
3335 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2427 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
754浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
543浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
364浏览 1评论
1960浏览 0评论
681浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 22:23 , Processed in 1.077286 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号