1 简述
RAM :随机存取存储器(random access memory,RAM)又称作“随机存储器”。在FPGA开发过程中经常使用到,而所谓的双端口RAM就是有两组独立的端口对存储块进行读写操作,如下图所示。

一般在应用时,一个作为读端口,另一个作为写端口(也可以同时写和读)。
2 例化IP核
在开发过程中,常会用到双端口RAM,下面说一下FPGA中双端口RAM的常规使用方法,更多的使用方案可翻阅参考文献。
本次仿真采用Xilinx的 Block Memory Generator v8.4的IP核来进行例化,例化参数如下。

porta端口配置

portb端口配置

若以端口a作为写端口,b作为读端口,则写端口的数据位宽为128bit,深度为8192,则地址位宽为14bit,而读端口的数据位宽为32bit,深度为3276,则地址宽度为15bit。
3 端口描述
在写仿真激励之前,需要了解各端口在IP核中的功能,例化后的IP核如下图所示

各端口定义如下,端口b定义和a一样。

4 仿真激励编写
根据端口定义设计仿真激励,tb代码如下。
`timescale 1ns / 1ps
module tb_memory();
reg [12:0] addra;
reg clka ;
reg [127:0] dina ;
reg wea ;
reg ena ;
reg [14:0] addrb;
reg clkb ;
wire [31:0] doutb;
reg enb ;
reg web ;
initial begin
addra = 13'd0;
clka = 1'b0 ;
dina = 128'h40000000300000002000000010000000;
wea = 1'b1;
ena = 1'b1;
addrb = 15'd0;
clkb = 1'b0 ;
enb = 1'b1;
web = 1'b0;
end
always #10 clka = ~clka;//写时钟为50M
always #20 clkb = ~clkb;//读时钟为25M
reg [15:0] counta = 16'd0;
always @(posedge clka) begin;
if(wea==1'b1) begin
addra <= addra + 13'b1;
dina <= dina + 128'b1;
if (addra == 13'h3fff) begin
addra <= 13'h0;
end
end
end
reg [15:0] countb = 16'd0;
always @(posedge clkb) begin
if(enb==1'b1) begin
addrb <= addrb + 15'b1;
if (addrb == 15'h3fff) begin
addrb <= 15'h0;
end
end
end
design_1_wrapper tb_memory(
.BRAM_PORTA_0_addr(addra),
.BRAM_PORTA_0_clk (clka ),
.BRAM_PORTA_0_din (dina ),
.BRAM_PORTA_0_we (wea ),
.BRAM_PORTA_0_en (ena),
.BRAM_PORTB_0_addr(addrb),
.BRAM_PORTB_0_clk (clkb ),
.BRAM_PORTB_0_dout(doutb),
.BRAM_PORTB_0_we (web),
.BRAM_PORTB_0_en (enb)
);
endmodule
仿真结果如下图所示

由上图所示,由于写数据的位宽为128bit,读数据的位宽为32bit,因此需要读4次拼接起来才能恢复写入的数据。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
存储器
+关注
关注
39文章
7756浏览量
172203 -
RAM
+关注
关注
8文章
1401浏览量
121009 -
FPGA开发
+关注
关注
1文章
51浏览量
15896 -
随机存取存储器
+关注
关注
0文章
48浏览量
9388
发布评论请先 登录
相关推荐
热点推荐
基于FPGA的双口RAM实现及应用
的应用。采用FPGA技术构造双口RAM,实现高速信号采集系统中的海量数据存储和时钟匹配。功能仿真验证该设计的正确性,该设计能减小电路设计的复杂性,增强设计的灵活性和资源的可配置性能,降低设计成本,缩短
发表于 04-24 09:44
【FPGA开源教程连载】第十三章A 嵌入式RAM使用之双端口RAM
`嵌入式RAM使用之双端口RAM实验目的: 1.学习Altera公司Cyclone IV系列器件的内部结构2.学会调用Quartus II软件中提供
发表于 01-02 09:40
基于FPGA的双口RAM实现及应用
为了在高速采集时不丢失数据,在数据采集系统和CPU之间设置一个数据暂存区。介绍双口RAM的存储原理及其在数字系统中的应用。采用FPGA技术构造双口
发表于 02-11 11:20
•69次下载
双端口RAM原理介绍及其应用
传统的并行接口和串行接口设计无论在通信速率,还是在可靠性方面都不易满足要求。而双端口RAM则是一个较好的实现方案。它具有通讯速率高、接口设计简单等特点,因而在设计中得到广
发表于 12-29 09:45
•2.2w次阅读
FPGA双端口RAM的使用简述
评论