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

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

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

FPGA中塊RAM的分布和特性

CHANBAEK ? 來源:硬件王國 ? 作者: 小山哥 ? 2023-11-21 15:03 ? 次閱讀

導(dǎo)讀:

在選擇FPGA時,關(guān)注LUT(Look-Up Table)和BRAM(Block RAM)是非常重要的,因為它們是FPGA架構(gòu)中的兩個核心資源,對于設(shè)計的性能和資源利用至關(guān)重要。

BRAM(Block Random Access Memory,隨機存取內(nèi)存塊),塊RAM是嵌在FPGA內(nèi)部、固定大小(容量)的硬IP。

為什么要嵌入豐富的塊RAM?對于需要大量存儲器的應(yīng)用,比如需要大規(guī)模的數(shù)據(jù)存儲,如圖像、視頻、音頻等,塊RAM是一個理想的選擇。塊RAM提供了高密度的存儲,能夠有效地存儲和檢索大量數(shù)據(jù);對于需要頻繁訪問的數(shù)據(jù),塊RAM可以用作數(shù)據(jù)緩存;一些算法可能需要大量的中間數(shù)據(jù)存儲,使用塊RAM可以提供快速且容量大的存儲,用來支持這些算法的運行;異步時鐘域之間的數(shù)據(jù)傳輸通常需要使用FIFO(First-In-First-Out)緩沖區(qū)。

在FPGA開發(fā)中,使用塊RAM的多少取決于設(shè)計的性質(zhì)和對性能的需求。在設(shè)計過程中,通過合理的資源規(guī)劃和優(yōu)化,可以有效地利用塊RAM以滿足應(yīng)用的需求。

注:以xilinx7系列690T為例

塊RAM的分布

圖片

圖1:產(chǎn)品選型指南

一些應(yīng)用可能更加側(cè)重于邏輯資源,而另一些應(yīng)用可能更加側(cè)重于存儲資源,如上圖1所示,以690t為例,Block RAM總數(shù)目為1470,總?cè)萘繛?2920kb。上圖中的Distributed RAM 是 FPGA中的一種內(nèi)置存儲器資源。與塊RAM不同,分布式RAM分散在FPGA的邏輯區(qū)域中,而不是集中在特定的塊中。分布式RAM主要由可編程邏輯元件(LUTs)和觸發(fā)器(Flip-Flops)組成。每個LUT都有一些存儲單元,用于存儲少量的數(shù)據(jù)。這些存儲單元可以被組合起來,形成一個分布式的存儲器。簡單的說Distributed RAM就是FPGA用內(nèi)部的邏輯單元拼湊而來的。一般較少使用,本文不重點討論。

圖片

圖2:7系列 塊RAM資源

如圖2可知,690T一共包含1470個塊RAM,一個有15“列” 36Kb的BRAM,每“列”有100個36Kb的BRAM。結(jié)合下文圖3、圖4用Vivado打開實際device(690T)的視圖說明,看過我前面文章的讀者可知,690T一共20個時鐘區(qū)域,圖4是將圖3最上方4個時鐘區(qū)域放大后的截圖,先看圖4,其中每一個小紅箭頭代表1“列”36kb的BRAM,一共15個小紅箭頭(每以列共100個36kb的BRAM)。細心的讀者可能發(fā)現(xiàn),圖2的表格一共有15列,每列100個,總數(shù)應(yīng)該是1500個,為什么圖2的表格總數(shù)只有1470?答案就在圖3里面,因為有一些BRAM已經(jīng)分配給一些高速硬核使用了,比如690T的PCIe 硬IP。

圖片

圖3:Device視圖

圖片

圖4:Device視圖(圖3最上方4個時鐘區(qū)域放大截圖)

圖片

圖5:工程“綜合實現(xiàn)”后的資源消耗指示圖

圖5是筆者基于690T開發(fā)的一個實際工程綜合實現(xiàn)后的資源消耗,BRAM一共使用273個,評估你所選擇的FPGA是否合適,最主要就是看邏輯資源和BRAM使用情況,當然特殊要求除外(如DSP、其他硬IP等)

塊RAM的特性和按“列”分布原因

FPGA塊RAM的特性很多,讀者不在這里細述每一個特性,讀者自行參考廠商原文檔,因為是硬IP。可能每個廠商支持的特性各不相同,使用時需要注意幾點的是:

  • 每個塊RAM均可存儲最多36 Kbits的數(shù)據(jù)(每個廠商的內(nèi)嵌的塊大小可能不一樣);
  • 支持將一個單獨的36Kb塊RAM分成兩個獨立的18Kb塊使用(具體看廠商規(guī)格書);
  • 兩個相鄰的塊RAM可以組合成一個更深的64K x 1內(nèi)存(具體看廠商規(guī)格書);
  • 支持端口模式(簡單雙端口(SDP)、真雙端口(TDP)。(具體看廠商規(guī)格書)。

FPGA中的塊RAM按列分布的設(shè)計選擇通常是出于性能和資源利用的考慮。這種設(shè)計決策涉及到FPGA內(nèi)部架構(gòu)和數(shù)據(jù)流的優(yōu)化。

  1. 性能優(yōu)化: FPGA內(nèi)部的塊RAM通常是在每個列中集中分布。這樣設(shè)計有助于減小數(shù)據(jù)路徑的長度,從而減小延遲,提高訪問速度。如果塊RAM散布在整個FPGA芯片上,可能需要更長的路徑來連接塊RAM和其他邏輯單元,導(dǎo)致性能下降。
  2. 資源共享: FPGA中的資源是有限的,通過將塊RAM集中在每個列中,可以更好地進行資源共享。這有助于防止資源爭用和碎片化,使得在某一列中的塊RAM更容易分配給鄰近的邏輯單元,減少資源沖突。
  3. 時序和布線簡化: FPGA中的時序分析和布線操作通常是按列進行的。將塊RAM集中在每一列中可以簡化時序分析,減小時序問題的復(fù)雜性,使得設(shè)計更容易達到目標時鐘頻率。

總結(jié)

按列分布塊RAM是一種有效的設(shè)計選擇,有助于提高性能、優(yōu)化資源利用,并簡化時序和布線操作。不過,具體的FPGA架構(gòu)和設(shè)計工具可能會有一些差異,因此在具體的FPGA系列和工具鏈中可能會有一些微妙的差異。

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

    關(guān)注

    1624

    文章

    21538

    瀏覽量

    600458
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7402

    瀏覽量

    163386
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1350

    瀏覽量

    114369
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    2942

    瀏覽量

    73727
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    1992

    瀏覽量

    60976
收藏 人收藏

    評論

    相關(guān)推薦

    FPGA芯片內(nèi)部結(jié)構(gòu)解析(2)

    FPGA內(nèi)嵌的存儲器單元包括RAM(BRAM)和分布RAM。
    發(fā)表于 08-15 16:11 ?891次閱讀
    <b class='flag-5'>FPGA</b>芯片內(nèi)部結(jié)構(gòu)解析(2)

    Quartus II 定制的RAM分布式的還是

    Quartus II 定制的RAM分布式的還是
    發(fā)表于 03-10 17:51

    介紹FPGA開發(fā)板內(nèi)部ram操作

    用途)。較小的RAM位于較小的Blockram(Altera這樣做),或者位于“分布RAM
    發(fā)表于 09-10 11:11

    Vivado的多種RAM編寫方式

    Vivado綜合可以理解多種多樣的RAM編寫方式,將其映射到分布RAMRAM。兩種實現(xiàn)方
    發(fā)表于 09-29 09:40

    FPGA設(shè)計如何用LUT組建分布式的RAM

    一、查找表LUT就是查找表,對于4輸入的LUT而言,實際上就是4位地址位,一位數(shù)據(jù)位的存儲器,能夠存儲16位數(shù)據(jù),所以我們在FPGA設(shè)計可以用LUT組建分布式的RAM。這樣也可以解釋
    發(fā)表于 07-28 08:42

    FPGA內(nèi)嵌的RAM在FFT算法的應(yīng)用

    在現(xiàn)代邏輯設(shè)計,FPGA占有重要的地位,不僅因為具有強大的邏輯功能和高速的處理速度,同時因為其內(nèi)部嵌有大量的可配置的RAM,使其得到了廣泛地應(yīng)用,例如FFT算法的實現(xiàn)等。
    發(fā)表于 09-27 17:07 ?54次下載
    <b class='flag-5'>FPGA</b>內(nèi)嵌的<b class='flag-5'>塊</b><b class='flag-5'>RAM</b>在FFT算法<b class='flag-5'>中</b>的應(yīng)用

    采用FPGA與IP來實現(xiàn)DDR RAM控制和驗證的方法

    隨著高速處理器的不斷發(fā)展,嵌入式系統(tǒng)應(yīng)用的領(lǐng)域越來越廣泛,數(shù)字信號處理的規(guī)模也越來越大,系統(tǒng)RAM規(guī)模不斷增加。現(xiàn)場可編程門陣列(FPGA)已廣泛應(yīng)用于嵌入式系統(tǒng)?,F(xiàn)在很多
    發(fā)表于 11-24 16:00 ?3903次閱讀
    采用<b class='flag-5'>FPGA</b>與IP來實現(xiàn)DDR <b class='flag-5'>RAM</b>控制和驗證的方法

    技術(shù)控:FPGARAM使用技巧探索

    FPGARAM的使用探索。以4bitX4為例,數(shù)據(jù)位寬為4,深度為4。
    的頭像 發(fā)表于 03-28 17:07 ?1w次閱讀
    技術(shù)控:<b class='flag-5'>FPGA</b><b class='flag-5'>中</b><b class='flag-5'>RAM</b>使用技巧探索

    Spartan-6 FPGARAM的技術(shù)參考資料免費下載

    本指南是描述所有Spartan-6 FPGA可用的Spartan?6 FPGARAM的技術(shù)參考。
    發(fā)表于 02-15 16:38 ?13次下載
    Spartan-6 <b class='flag-5'>FPGA</b><b class='flag-5'>塊</b><b class='flag-5'>RAM</b>的技術(shù)參考資料免費下載

    詳細介紹關(guān)于FPGA開發(fā)板內(nèi)部ram是如何操作的

    設(shè)計來增設(shè)全新的芯片功能,據(jù)此實現(xiàn)了芯片整體構(gòu)造的簡化與性能提升。下面英尚微電子介紹FPGA開發(fā)板內(nèi)部ram是如何操作的。 除邏輯外,所有新的FPGA都有專用的靜態(tài)ram
    發(fā)表于 07-20 14:26 ?2167次閱讀
    詳細介紹關(guān)于<b class='flag-5'>FPGA</b>開發(fā)板內(nèi)部<b class='flag-5'>ram</b>是如何操作的

    FPGARAM存儲資源詳細資料說明

    本文檔的主要內(nèi)容詳細介紹的是FPGARAM存儲資源詳細資料說明包括了:1、 FPGA存儲資源簡介,2、 不同廠家的 Block RAM 布局,3、
    發(fā)表于 12-09 15:31 ?10次下載
    <b class='flag-5'>FPGA</b>的<b class='flag-5'>RAM</b>存儲資源詳細資料說明

    FPGAblock ram的特殊用法列舉

    FPGAblock ram是很常見的硬核資源,合理的利用這些硬件資源一定程度上可以優(yōu)化整個設(shè)計,節(jié)約資源利用率,充分開發(fā)FPGA芯片中的潛在價值,本文結(jié)合安路科技
    的頭像 發(fā)表于 12-24 14:28 ?1175次閱讀

    使用FPGA調(diào)用RAM資源的詳細說明

    FPGA可以調(diào)用分布RAMRAM兩種RAM,當我們編寫verilog代碼的時候如果合理的編
    發(fā)表于 12-30 16:27 ?9次下載

    FPGA在一個時鐘周期可以讀取多個RAM數(shù)據(jù)嗎?

    設(shè)計都涉及到對RAM的讀寫操作。在FPGA芯片中,RAM也叫做存儲(Block RAM),可以存儲大量的數(shù)據(jù)。
    的頭像 發(fā)表于 10-18 15:28 ?1095次閱讀

    fpga雙口ram的使用

    FPGA雙口RAM的使用主要涉及配置和使用雙端口RAM模塊。雙端口RAM的特點是有兩組獨立的端口,可以對同一存儲進行讀寫操作,從而實現(xiàn)并行
    的頭像 發(fā)表于 03-15 13:58 ?837次閱讀