0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA双端口RAM的使用简述

冬至子 来源:FPGA开发备忘录 作者:小创 2023-04-25 15:58 次阅读

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次拼接起来才能恢复写入的数据。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7452

    浏览量

    163596
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1367

    浏览量

    114521
  • FPGA开发
    +关注

    关注

    1

    文章

    43

    浏览量

    14889
  • 随机存取存储器

    关注

    0

    文章

    44

    浏览量

    8952
收藏 人收藏

    评论

    相关推荐

    利用FPGA实现RAM的设计及应用

    利用FPGA实现RAM的设计及应用 概述:为了在高速采集时不丢失数据,在数据采集系统和
    发表于 04-16 14:08 1.2w次阅读
    利用<b class='flag-5'>FPGA</b>实现<b class='flag-5'>双</b>口<b class='flag-5'>RAM</b>的设计及应用

    基于FPGARAM实现及应用

    的应用。采用FPGA技术构造RAM,实现高速信号采集系统中的海量数据存储和时钟匹配。功能仿真验证该设计的正确性,该设计能减小电路设计的复杂性,增强设计的灵活性和资源的可配置性能,降低设计成本,缩短
    发表于 04-24 09:44

    关于FPGA设计ram的问题

    我现在需要设计一个口的ram,它要求数据和地址线是复用的,双向的,想利用FPGA设计,请教下大家思路,谢谢。
    发表于 07-13 08:52

    FPGAram

    利用FPGA设计ram,最大设计多的空间的?如果是cpld来实现,空间是不是更小?如何去确定这个大小呢?求指导
    发表于 10-21 21:23

    求大神!!!单端口端口RAM的区别是啥???

    端口端口ram的区别是什么,能具体介绍下吗,非常感谢!
    发表于 02-10 14:00

    FPGA开源教程连载】第十三章A 嵌入式RAM使用之端口RAM

    `嵌入式RAM使用之端口RAM实验目的: 1.学习Altera公司Cyclone IV系列器件的内部结构2.学会调用Quartus II软件中提供
    发表于 01-02 09:40

    简单的端口和真正的端口RAM之间的资源使用差异?

    你好,我想知道简单的端口和真正的端口RAM之间的资源使用差异? True
    发表于 06-10 07:15

    请问端口RAM在高速数据采集中有什么应用?

    FPGA中怎样去构造存储器?如何利用库函数去构造端口RAM?库函数法构造端口
    发表于 04-14 06:57

    什么是RAM? 基于FPGARAM有哪些应用?

    什么是RAM?基于FPGARAM有哪些应用?
    发表于 05-06 07:41

    介绍带8×8端口RAM的数据采集系统AD7581与μP接口

    介绍带8×8端口RAM的数据采集系统AD7581与μP接口:
    发表于 06-11 14:40 30次下载
    介绍带8×8<b class='flag-5'>双</b><b class='flag-5'>端口</b><b class='flag-5'>RAM</b>的数据采集系统AD7581与μP接口

    基于FPGARAM实现及应用

      为了在高速采集时不丢失数据,在数据采集系统和CPU之间设置一个数据暂存区。介绍RAM的存储原理及其在数字系统中的应用。采用FPGA技术构造
    发表于 02-11 11:20 69次下载

    基于Actel FPGA端口RAM设计

    基于Actel FPGA端口RAM 设计端口RAM
    发表于 11-15 17:44 82次下载

    端口RAM的并口设计应用

    端口RAM的并口设计应用 摘要:IDT7132/IDT7142是一种高速2k×8端口静态RAM
    发表于 03-03 19:25 1870次阅读
    <b class='flag-5'>双</b><b class='flag-5'>端口</b><b class='flag-5'>RAM</b>的并口设计应用

    端口RAM原理介绍及其应用

    传统的并行接口和串行接口设计无论在通信速率,还是在可靠性方面都不易满足要求。而端口RAM则是一个较好的实现方案。它具有通讯速率高、接口设计简单等特点,因而在设计中得到广
    发表于 12-29 09:45 2w次阅读
    <b class='flag-5'>双</b><b class='flag-5'>端口</b><b class='flag-5'>RAM</b>原理介绍及其应用

    fpgaram的使用

    FPGARAM的使用主要涉及配置和使用端口RAM模块。
    的头像 发表于 03-15 13:58 926次阅读