0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA雙端口RAM的使用簡述

冬至子 ? 來源:FPGA開發(fā)備忘錄 ? 作者:小創(chuàng) ? 2023-04-25 15:58 ? 次閱讀

1 簡述

RAM :隨機存取存儲器(random access memory,RAM)又稱作“隨機存儲器”。在FPGA開發(fā)過程中經(jīng)常使用到,而所謂的雙端口RAM就是有兩組獨立的端口對存儲塊進行讀寫操作,如下圖所示。

圖片

一般在應用時,一個作為讀端口,另一個作為寫端口(也可以同時寫和讀)。

2 例化IP核

在開發(fā)過程中,常會用到雙端口RAM,下面說一下FPGA中雙端口RAM的常規(guī)使用方法,更多的使用方案可翻閱參考文獻。

本次仿真采用Xilinx的 Block Memory Generator v8.4的IP核來進行例化,例化參數(shù)如下。

圖片

porta端口配置

圖片

portb端口配置

圖片

若以端口a作為寫端口,b作為讀端口,則寫端口的數(shù)據(jù)位寬為128bit,深度為8192,則地址位寬為14bit,而讀端口的數(shù)據(jù)位寬為32bit,深度為3276,則地址寬度為15bit。

3 端口描述

在寫仿真激勵之前,需要了解各端口在IP核中的功能,例化后的IP核如下圖所示

圖片

各端口定義如下,端口b定義和a一樣。

圖片

4 仿真激勵編寫

根據(jù)端口定義設計仿真激勵,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

仿真結果如下圖所示

圖片

由上圖所示,由于寫數(shù)據(jù)的位寬為128bit,讀數(shù)據(jù)的位寬為32bit,因此需要讀4次拼接起來才能恢復寫入的數(shù)據(jù)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7365

    瀏覽量

    163088
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1344

    瀏覽量

    114213
  • FPGA開發(fā)
    +關注

    關注

    1

    文章

    42

    瀏覽量

    14821
  • 隨機存取存儲器

    關注

    0

    文章

    44

    瀏覽量

    8941
收藏 人收藏

    評論

    相關推薦

    利用FPGA實現(xiàn)RAM的設計及應用

    利用FPGA實現(xiàn)RAM的設計及應用 概述:為了在高速采集時不丟失數(shù)據(jù),在數(shù)據(jù)采集系統(tǒng)和
    發(fā)表于 04-16 14:08 ?1.1w次閱讀
    利用<b class='flag-5'>FPGA</b>實現(xiàn)<b class='flag-5'>雙</b>口<b class='flag-5'>RAM</b>的設計及應用

    基于FPGARAM實現(xiàn)及應用

    的應用。采用FPGA技術構造RAM,實現(xiàn)高速信號采集系統(tǒng)中的海量數(shù)據(jù)存儲和時鐘匹配。功能仿真驗證該設計的正確性,該設計能減小電路設計的復雜性,增強設計的靈活性和資源的可配置性能,降低設計成本,縮短
    發(fā)表于 04-24 09:44

    關于FPGA設計ram的問題

    我現(xiàn)在需要設計一個口的ram,它要求數(shù)據(jù)和地址線是復用的,雙向的,想利用FPGA設計,請教下大家思路,謝謝。
    發(fā)表于 07-13 08:52

    FPGAram

    利用FPGA設計ram,最大設計多的空間的?如果是cpld來實現(xiàn),空間是不是更小?如何去確定這個大小呢?求指導
    發(fā)表于 10-21 21:23

    求大神?。?!單端口端口RAM的區(qū)別是啥???

    端口端口ram的區(qū)別是什么,能具體介紹下嗎,非常感謝!
    發(fā)表于 02-10 14:00

    FPGA開源教程連載】第十三章A 嵌入式RAM使用之端口RAM

    `嵌入式RAM使用之端口RAM實驗目的: 1.學習Altera公司Cyclone IV系列器件的內(nèi)部結構2.學會調(diào)用Quartus II軟件中提供
    發(fā)表于 01-02 09:40

    簡單的端口和真正的端口RAM之間的資源使用差異?

    你好,我想知道簡單的端口和真正的端口RAM之間的資源使用差異? True
    發(fā)表于 06-10 07:15

    請問端口RAM在高速數(shù)據(jù)采集中有什么應用?

    FPGA中怎樣去構造存儲器?如何利用庫函數(shù)去構造端口RAM?庫函數(shù)法構造端口
    發(fā)表于 04-14 06:57

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

    什么是RAM?基于FPGARAM有哪些應用?
    發(fā)表于 05-06 07:41

    介紹帶8×8端口RAM的數(shù)據(jù)采集系統(tǒng)AD7581與μP接口

    介紹帶8×8端口RAM的數(shù)據(jù)采集系統(tǒng)AD7581與μP接口:
    發(fā)表于 06-11 14:40 ?30次下載
    介紹帶8×8<b class='flag-5'>雙</b><b class='flag-5'>端口</b><b class='flag-5'>RAM</b>的數(shù)據(jù)采集系統(tǒng)AD7581與μP接口

    基于FPGARAM實現(xiàn)及應用

      為了在高速采集時不丟失數(shù)據(jù),在數(shù)據(jù)采集系統(tǒng)和CPU之間設置一個數(shù)據(jù)暫存區(qū)。介紹RAM的存儲原理及其在數(shù)字系統(tǒng)中的應用。采用FPGA技術構造
    發(fā)表于 02-11 11:20 ?69次下載

    基于Actel FPGA端口RAM設計

    基于Actel FPGA端口RAM 設計端口RAM
    發(fā)表于 11-15 17:44 ?82次下載

    端口RAM的并口設計應用

    端口RAM的并口設計應用 摘要:IDT7132/IDT7142是一種高速2k×8端口靜態(tài)RAM
    發(fā)表于 03-03 19:25 ?1836次閱讀
    <b class='flag-5'>雙</b><b class='flag-5'>端口</b><b class='flag-5'>RAM</b>的并口設計應用

    端口RAM原理介紹及其應用

    傳統(tǒng)的并行接口和串行接口設計無論在通信速率,還是在可靠性方面都不易滿足要求。而端口RAM則是一個較好的實現(xiàn)方案。它具有通訊速率高、接口設計簡單等特點,因而在設計中得到廣
    發(fā)表于 12-29 09:45 ?2w次閱讀
    <b class='flag-5'>雙</b><b class='flag-5'>端口</b><b class='flag-5'>RAM</b>原理介紹及其應用

    fpgaram的使用

    FPGARAM的使用主要涉及配置和使用端口RAM模塊。
    的頭像 發(fā)表于 03-15 13:58 ?752次閱讀