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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

Vivado中BRAM IP的配置方式和使用技巧

CHANBAEK ? 來源:FPGA入門到精通 ? 作者:未可知摩爾 ? 2023-08-29 16:41 ? 次閱讀

FPGA開發(fā)中使用頻率非常高的兩個(gè)IP就是FIFO和BRAM,上一篇文章中已經(jīng)詳細(xì)介紹了Vivado FIFO IP,今天我們來聊一聊BRAM IP。

本文將詳細(xì)介紹Vivado中BRAM IP的配置方式和使用技巧。

一、BRAM IP核的配置

1、打開BRAM IP核

在Vivado的IP Catalog中找到Block Memory Generator IP核,雙擊打開參數(shù)配置界面。

圖片

2、配置BRAM IP基本參數(shù)

圖片

(1)IP名

定制的IP的名字只能在定制時(shí)設(shè)定好,后續(xù)不能修改。

IP名設(shè)定,簡單易懂即可,按照功能或數(shù)據(jù)寬度和深度來設(shè)定即可,例如BRAM_8x256,即表示數(shù)據(jù)寬度為8bit,數(shù)據(jù)深度為256bit。

(2)接口類型(Interface Type)

Native:最基本的接口,包括數(shù)據(jù)寫入、數(shù)據(jù)讀取等信號。

AXI4:AXI4總線通信協(xié)議接口

(3)存儲類型(Memory Type)

Single Port RAM:單端口RAM

Simple Dual Port RAM:簡單雙端口RAM,可選同步時(shí)鐘和異步時(shí)鐘,A端口只支持寫數(shù)據(jù),B端口只支持讀數(shù)據(jù)。

True Dual Port RAM:真雙端口RAM,可選同步時(shí)鐘和異步時(shí)鐘,A端口和B端口都支持寫數(shù)據(jù)和讀數(shù)據(jù)。

Single Port ROM:單端口ROM

Dual Port ROM:雙端口ROM,A端口和B端口都可以讀取數(shù)據(jù)

3、配置A端口或B端口參數(shù)

A端口和B端口參數(shù)配置界面基本一致,這里只介紹A端口的參數(shù)配置。

圖片

(1)存儲大小設(shè)置(Memory Size)

設(shè)置讀數(shù)據(jù)或?qū)憯?shù)據(jù)端的數(shù)據(jù)位寬和深度,數(shù)據(jù)位寬范圍為1 ~ 4608bit,數(shù)存儲深度為2~1048576。

operating mode:讀寫同一個(gè)地址時(shí),操作模式設(shè)定:寫優(yōu)先、讀優(yōu)先、不變,建議在實(shí)際應(yīng)用時(shí)不出現(xiàn)這種情況。

Enable Port Type:設(shè)定是否開放端口使能控制信號。

(2)輸出數(shù)據(jù)寄存設(shè)置

Primitives Output Register:輸出數(shù)據(jù)是否插入一個(gè)寄存器,如果不選中這個(gè),則讀數(shù)據(jù)延時(shí)只有1個(gè)周期,否則讀數(shù)據(jù)延時(shí)有2個(gè)周期。

建議選中這個(gè)輸出寄存器,可以改善時(shí)序。

(3)復(fù)位參數(shù)設(shè)置

RSTA Pin (setreset pin):復(fù)位端口選擇,如果選中,則開放復(fù)位端口。

Output Reset Value (Hex):設(shè)定復(fù)位生效后,輸出數(shù)據(jù)值,默認(rèn)為0

4、Other Options

這部分初始化值,對于RAM來說可能用處不大,但對于ROM來說很重要。

圖片

選中這個(gè)Load Init File,再點(diǎn)擊“Browse”選中“coe或mif”格式文件,最后點(diǎn)擊“Edit”,在打開的界面選擇“Valide”校驗(yàn)一下,如果有問題,這部分會(huì)提示紅色文字,否則繼續(xù)下一步即可。

5、IP設(shè)置參數(shù)總覽

IP設(shè)置參數(shù)總覽,可看到資源消耗、寬度、深度、讀延遲等信息。

圖片

6、點(diǎn)擊OK生成IP核。

在IP核生成完成后,點(diǎn)擊source窗口下的“IP source”,鼠標(biāo)左鍵單擊這個(gè)IP,在“Instantiation Template”下,雙擊“veo”后綴文件,即可看到例化模板。

圖片

二、BRAM IP核的接口

1、時(shí)鐘信號和復(fù)位信號

復(fù)位信號 rsta/rstb

時(shí)鐘 clka(A端口時(shí)鐘) clkb(b端口時(shí)鐘),復(fù)位信號 rsta(A端口復(fù)位),rstb(B端口復(fù)位)

2、端口信號

A和B端口信號基本一樣,這里以A端口為例。

ena A端口使能信號

wea A端口寫使能信號

addra A端口讀寫地址

dina A端口的寫入數(shù)據(jù)

douta A端口的讀取數(shù)據(jù)

三、BRAM IP核的調(diào)用

BRAM IP核的調(diào)用很簡單,這里以同步時(shí)鐘下的簡單雙端口RAM為例:

module top (
  input clk,
  input [7:0] data_in,
  input wr_en, 
  input [7:0] wr_addr,
  input [7:0] rd_addr,
  output [7:0] data_out  
);

    BRAM_8x256 u_BRAM_8x256 (
      .clka(clk),    // input wire clka
      .ena(1'b1),      // input wire ena
      .wea(wr_en),      // input wire [0 : 0] wea
      .addra(wr_addr),  // input wire [7 : 0] addra
      .dina(data_in),    // input wire [7 : 0] dina
      .clkb(clk),    // input wire clkb
      .enb(1'b1),      // input wire enb
      .addrb(rd_addr),  // input wire [7 : 0] addrb
      .doutb(data_out)  // output wire [7 : 0] doutb
    );

endmodule

下面是BRAM IP核的一個(gè)簡單的testbench:

module test;

reg clk;  
reg [7:0] din;
reg wen;
reg [7:0] waddr;
reg [7:0] raddr;
wire [7:0] dout;

top u_top(
  .clk(clk), 
  .data_in(din),
  .wr_en(wen),
  .wr_addr(waddr),
  .rd_addr(raddr),
  .data_out(dout)  
);

initial begin
  clk = 0;
  wen = 0; waddr = 0; raddr = 0;
  #10 wen = 1; waddr = 1; din = 5; 
  #10 wen = 1; waddr = 2; din = 6; 
  #10 wen = 1; waddr = 3; din = 7; 
  #10 wen = 1; waddr = 4; din = 8;
  #10 wen = 1; waddr = 5; din = 9;
  #10 wen = 0; raddr = 1;
  #10 wen = 0; raddr = 2;
  #10 wen = 0; raddr = 3;
  #10 wen = 0; raddr = 4;
  #10 wen = 0; raddr = 5;
  #30 $finish;
end

always #5 clk = ~clk;  

endmodule

仿真測試圖:

圖片

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

    關(guān)注

    1643

    文章

    21985

    瀏覽量

    615084
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5425

    瀏覽量

    123644
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    400

    瀏覽量

    44668
  • IP核
    +關(guān)注

    關(guān)注

    4

    文章

    338

    瀏覽量

    50543
  • BRAM
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    11249
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    FPGA設(shè)計(jì)BRAM的知識科普

    FPGA設(shè)計(jì),BRAM是一項(xiàng)非常關(guān)鍵的內(nèi)置存儲資源,F(xiàn)PGA開發(fā)需要熟練使用BRAM,今天再復(fù)習(xí)一下BRAM的知識,包括BRAM的定義、組
    發(fā)表于 08-15 15:44 ?6999次閱讀
    FPGA設(shè)計(jì)<b class='flag-5'>中</b><b class='flag-5'>BRAM</b>的知識科普

    請問vivado如何減少BRAM瓦片這一數(shù)量?如何操作?

    嗨,我的設(shè)計(jì)在合成中使用141.5 BRAM瓦片。但是,在Zynq可以使用140 BRAM瓦片。實(shí)施后,這個(gè)數(shù)量下降到133瓦。我的問題是vivado如何減少這一數(shù)量?實(shí)施?這點(diǎn)可以
    發(fā)表于 10-31 16:17

    初始化BRAM警告coe文件不存在

    大家好,我搜索了幾個(gè)關(guān)于初始化BRAM的線程,但我找不到答案。我使用的是Vivado 2015.4。我寫了一個(gè)coe文件,想把coe文件加載到BRAM。首先,我添加一個(gè)
    發(fā)表于 04-17 09:47

    如何使用Vivado IP Block Design?

    對你所有的人來說,我已經(jīng)閱讀了有關(guān)IP Block Designs的手冊和培訓(xùn)材料,并成功地生成了AXI LITE BRAM IP設(shè)計(jì),以及之前在USER社區(qū)為您提供的一些幫助。我所
    發(fā)表于 03-20 08:52

    vivadobram加載coe文件數(shù)據(jù)僅在實(shí)例化中生成datain

    vivadobram加載coe文件數(shù)據(jù)僅在instatntiation中生成datain,但沒有datain
    發(fā)表于 04-15 10:12

    URAM和BRAM的區(qū)別是什么

    地址,讀出的是該地址原有數(shù)據(jù);A端口寫而B端口讀同一地址,讀出的是新寫入的數(shù)據(jù)?!   ?shí)例化方式  對于 BRAM,可采用原語、XPM_MEMORY、RTL代碼或者IP Core的方式
    發(fā)表于 12-23 16:57

    BRAM IP核包括哪幾種類型?怎么使用?

    BRAM IP核包括哪幾種類型?Vivadoxilinx_BRAM IP核怎么使用?
    發(fā)表于 03-08 07:11

    如何在Vivado Design Suite 中進(jìn)行IP加密

    此視頻概述了Vivado Design SuiteIP加密。 它涵蓋了IP加密工具流程,如何準(zhǔn)備加密IP以及如何在
    的頭像 發(fā)表于 11-20 06:34 ?6909次閱讀

    FPGA實(shí)現(xiàn)基于VivadoBRAM IP核的使用

    ? Xilinx公司的FPGA中有著很多的有用且對整個(gè)工程很有益處的IP核,比如數(shù)學(xué)類的IP核,數(shù)字信號處理使用的IP核,以及存儲類的IP核,本篇文章主要介紹
    的頭像 發(fā)表于 12-29 15:59 ?1.3w次閱讀

    Vivadoxilinx_BRAM IP核使用

    Vivado2017.2 BRAM版本為 Block Memory Generator Specific Features 8.3。BRAM I
    發(fā)表于 03-10 06:15 ?19次下載
    <b class='flag-5'>Vivado</b><b class='flag-5'>中</b>xilinx_<b class='flag-5'>BRAM</b> <b class='flag-5'>IP</b>核使用

    淺析VivadoIP核DDS使用方式及注意事項(xiàng)

    vivado提供了DDS IP核可以輸出正余弦波形,配置方法如下
    的頭像 發(fā)表于 04-27 15:52 ?1.1w次閱讀
    淺析<b class='flag-5'>Vivado</b>的<b class='flag-5'>IP</b>核DDS使用<b class='flag-5'>方式</b>及注意事項(xiàng)

    一文解析Vivado的三種封裝IP方式

    Vivado提供了三種封裝IP方式:(1)將當(dāng)前工程封裝為IP;(2)將當(dāng)前工程的BD(IPI 設(shè)計(jì))封裝為
    的頭像 發(fā)表于 08-10 18:09 ?7964次閱讀
    一文解析<b class='flag-5'>Vivado</b>的三種封裝<b class='flag-5'>IP</b>的<b class='flag-5'>方式</b>

    如何在Vivado配置FIFO IP

    Vivado IP核提供了強(qiáng)大的FIFO生成器,可以通過圖形化配置快速生成FIFO IP核。
    的頭像 發(fā)表于 08-07 15:36 ?5586次閱讀
    如何在<b class='flag-5'>Vivado</b><b class='flag-5'>中</b><b class='flag-5'>配置</b>FIFO <b class='flag-5'>IP</b>核

    Vivado IP核Shared Logic選項(xiàng)配置

    在給Vivado的一些IP核進(jìn)行配置的時(shí)候,發(fā)現(xiàn)有Shared Logic這一項(xiàng),這里以Tri Mode Ethernet MAC IP
    的頭像 發(fā)表于 09-06 17:05 ?2280次閱讀
    <b class='flag-5'>Vivado</b> <b class='flag-5'>IP</b>核Shared Logic選項(xiàng)<b class='flag-5'>配置</b>

    FPGA實(shí)現(xiàn)基于VivadoBRAM IP核的使用

    Xilinx公司的FPGA中有著很多的有用且對整個(gè)工程很有益處的IP核,比如數(shù)學(xué)類的IP核,數(shù)字信號處理使用的IP核,以及存儲類的IP核,本篇文章主要介紹
    的頭像 發(fā)表于 12-05 15:05 ?2341次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品