资料介绍
本文转载自: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
测试仿真结果:
- Vivado Design Suite用户指南:采用IP进行设计 0次下载
- 为EBAZ4205创建Xilinx Vivado板文件 1次下载
- 基于Xilinx Zynq-7010/20系列——PS+PL异构多核案例开发手册
- Xilinx_Vivado_zynq7000入门笔记 70次下载
- 什么是Vivado?资料下载 9次下载
- URAM和BRAM有什么区别 12次下载
- Xilinx FPGA时钟资源的学习笔记 8次下载
- xilinx FPGA的IOB使用教程说明 12次下载
- Xilinx LogiCORE IP块内存生成器的产品指南 22次下载
- MicroBlaze(Vivado版)设置说明详细资料免费下载 0次下载
- Xilinx Vivado SDK 2017.2 0616 1 Win64软件免费下载 320次下载
- 基于Vivado将verilog代码封装成IP的步骤 42次下载
- VIVADO——IP封装技术封装一个普通的VGA IP-FPGA 15次下载
- Xilinx 的IP:1024点FFT快速傅立叶变换 51次下载
- Xilinx TCP_IP协议实现 31次下载
- 用TCL定制Vivado设计实现流程 676次阅读
- Xilinx Vivado LOCK_PINS属性介绍 775次阅读
- 使用VCS仿真Vivado IP核时遇到的问题及解决方案 1557次阅读
- MicroBlaze大内部存储器(AXI BRAM)设计 2427次阅读
- 如何进行FFT IP配置和设计 1758次阅读
- 使用VIvado封装自定IP并使用IP创建工程 4582次阅读
- xilinx Vivado工具使用技巧 3754次阅读
- 调用Vivado IP核的方法 4468次阅读
- Vivado获取License的步骤教程 5.8w次阅读
- Vivado中新建工程或把IP搭建成原理图详解 1.2w次阅读
- Vivado将模块封装为IP的方法介绍 7427次阅读
- TCL脚本简介 vivado hls 的设计流程 6327次阅读
- 赛灵思Vivado开发套件与IP核的原理作用分析 1767次阅读
- 在Vivado下利用Tcl实现IP的高效管理 5473次阅读
- Vivado环境下如何在IP Integrator中正确使用HLS IP 4181次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1491次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 95次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 11次下载 | 免费
- 6100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 4次下载 | 免费
- 8基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537793次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多