資料介紹
本文轉載自: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軟件免費下載 322次下載
- 基于Vivado將verilog代碼封裝成IP的步驟 42次下載
- VIVADO——IP封裝技術封裝一個普通的VGA IP-FPGA 15次下載
- 攝像頭的硬件函數(IP核) 13次下載
- PCI總線IP核(華為的商用) 30次下載
- VGA顯示IP核(包括驅動) 18次下載
- USB IP核 13次下載
- PCI Express IP核應用參考設計 14次下載
- USB2.0 IP核源代碼 35次下載
- FFT變換的IP核的源代碼 10次下載
- FPGA中IP核的生成 11次下載
- 如何仿真IP核(建立modelsim仿真庫完整解析) 35次下載
- Vivado中FFT IP核的使用教程 1343次閱讀
- Xilinx DDS IP核的使用和參數配置 1260次閱讀
- 如何申請xilinx IP核的license 446次閱讀
- 從Xilinx FFT IP核到FPGA實現OFDM 1452次閱讀
- 使用VCS仿真Vivado IP核時遇到的問題及解決方案 2605次閱讀
- 如何進行FFT IP配置和設計 2475次閱讀
- xilinx Vivado工具使用技巧 4116次閱讀
- 調用Vivado IP核的方法 4759次閱讀
- Vivado中的IP核封裝 1w次閱讀
- Xilinx Vivado硬件診斷和校驗 2265次閱讀
- Vivado軟件仿真DDS核的過程中應該注意的問題 9825次閱讀
- Vivado將模塊封裝為IP的方法介紹 7971次閱讀
- 賽靈思Vivado開發套件與IP核的原理作用分析 2021次閱讀
- 在Vivado下利用Tcl實現IP的高效管理 5837次閱讀
- Vivado環境下如何在IP Integrator中正確使用HLS IP 4436次閱讀
下載排行
本周
- 1DC電源插座圖紙
- 0.67 MB | 3次下載 | 免費
- 2AN-1267: 使用ADSP-CM408F ADC控制器的電機控制反饋采樣時序
- 1.41MB | 3次下載 | 免費
- 3AN158 GD32VW553 Wi-Fi開發指南
- 1.51MB | 2次下載 | 免費
- 4AN148 GD32VW553射頻硬件開發指南
- 2.07MB | 1次下載 | 免費
- 5AN111-LTC3219用戶指南
- 84.32KB | 次下載 | 免費
- 6AN153-用于電源系統管理的Linduino
- 1.38MB | 次下載 | 免費
- 7AN-283: Σ-Δ型ADC和DAC[中文版]
- 677.86KB | 次下載 | 免費
- 8SM2018E 支持可控硅調光線性恒流控制芯片
- 402.24 KB | 次下載 | 免費
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 450次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 138次下載 | 1 積分
- 3基于STM32單片機智能手環心率計步器體溫顯示設計
- 0.10 MB | 130次下載 | 免費
- 4使用單片機實現七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 5美的電磁爐維修手冊大全
- 1.56 MB | 24次下載 | 5 積分
- 6如何正確測試電源的紋波
- 0.36 MB | 18次下載 | 免費
- 7感應筆電路圖
- 0.06 MB | 10次下載 | 免費
- 8萬用表UT58A原理圖
- 0.09 MB | 9次下載 | 5 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論
查看更多