资料介绍
本文转载自:VagueCheung的博客
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
(
.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
#10 wea
addra
/*if(i == 0) begin
addra
end
else if (i == 1) begin
addra
end
else if(i == 2) begin
addra
end
else if(i == 3) begin
addra
end
else begin
wea
end*/
dina
if(i == 15) begin
dina
wea
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
#10 wea
addra
dina
if(i == 15) begin
dina
wea
addra
end
$display("mem_a[%d] = %h", i, mem1_re[i]);
end
for(j=0;j
#10 addrb
enb
if( j == 15) begin
enb
addrb
end
end
end
#40000 $finish;
end
endmodule
测试仿真结果:

- Xilinx_Vivado_zynq7000入门笔记 71次下载
- Vivado中xilinx_courdic IP核(求exp指数函数)使用
- MicroBlaze(Vivado版)设置说明详细资料免费下载 0次下载
- Xilinx Vivado SDK 2017.2 0616 1 Win64软件免费下载 325次下载
- 基于Vivado将verilog代码封装成IP的步骤 42次下载
- VIVADO——IP封装技术封装一个普通的VGA IP-FPGA 16次下载
- 摄像头的硬件函数(IP核) 14次下载
- PCI总线IP核(华为的商用) 32次下载
- VGA显示IP核(包括驱动) 18次下载
- USB IP核 13次下载
- PCI Express IP核应用参考设计 14次下载
- USB2.0 IP核源代码 35次下载
- FFT变换的IP核的源代码 10次下载
- FPGA中IP核的生成 12次下载
- 如何仿真IP核(建立modelsim仿真库完整解析) 35次下载
- Xilinx Shift RAM IP概述和主要功能 924次阅读
- Vivado中FFT IP核的使用教程 5.7k次阅读
- Xilinx DDS IP核的使用和参数配置 5.9k次阅读
- 如何申请xilinx IP核的license 2.3k次阅读
- 从Xilinx FFT IP核到FPGA实现OFDM 2.1k次阅读
- 使用VCS仿真Vivado IP核时遇到的问题及解决方案 4.7k次阅读
- xilinx Vivado工具使用技巧 4.8k次阅读
- 调用Vivado IP核的方法 5.2k次阅读
- Vivado中的IP核封装 1.1w次阅读
- Xilinx Vivado硬件诊断和校验 2.9k次阅读
- Vivado软件仿真DDS核的过程中应该注意的问题 1w次阅读
- Vivado将模块封装为IP的方法介绍 8.9k次阅读
- 赛灵思Vivado开发套件与IP核的原理作用分析 2.3k次阅读
- 在Vivado下利用Tcl实现IP的高效管理 6.1k次阅读
- Vivado环境下如何在IP Integrator中正确使用HLS IP 4.8k次阅读
下载排行
本周
- 1MDD品牌三极管MMBT3906数据手册
- 2.33 MB | 次下载 | 免费
- 2MDD品牌三极管S9012数据手册
- 2.62 MB | 次下载 | 免费
- 3联想flex2-14D/15D说明书
- 4.92 MB | 次下载 | 免费
- 4收音环绕扩音机 AVR-1507手册
- 2.50 MB | 次下载 | 免费
- 524Pin Type-C连接器设计报告
- 1.06 MB | 次下载 | 免费
- 6新一代网络可视化(NPB 2.0)
- 3.40 MB | 次下载 | 免费
- 7MS1000TA 超声波测量模拟前端芯片技术手册
- 0.60 MB | 次下载 | 免费
- 8MS1022高精度时间测量(TDC)电路数据手册
- 1.81 MB | 次下载 | 免费
本月
- 1爱华AIWA HS-J202维修手册
- 3.34 MB | 37次下载 | 免费
- 2PC5502负载均流控制电路数据手册
- 1.63 MB | 23次下载 | 免费
- 3NB-IoT芯片厂商的资料说明
- 0.31 MB | 22次下载 | 1 积分
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供电电路图资料
- 0.63 MB | 6次下载 | 1 积分
- 5UWB653Pro USB口测距通信定位模块规格书
- 838.47 KB | 5次下载 | 免费
- 6技嘉H110主板IT8628E_BX IO电路图资料
- 2.61 MB | 4次下载 | 1 积分
- 7苏泊尔DCL6907(即CHK-S007)单芯片电磁炉原理图资料
- 0.04 MB | 4次下载 | 1 积分
- 8100W准谐振反激式恒流电源电路图资料
- 0.09 MB | 2次下载 | 1 积分
总榜
- 1matlab软件下载入口
- 未知 | 935137次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420064次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233089次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191439次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183353次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81602次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73822次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65991次下载 | 10 积分
电子发烧友App





创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论