FPGA中block ram的特殊用法列舉

2020-10-28
瀏覽次數: 246

在FPGA中block ram是很常見的硬核資源,合理的利用這些硬件資源一定程度上可以優化整個設計,節約資源利用率,充分開發FPGA芯片中的潛在價值,本文根據前人總結的一些用法,結合安路科技FPGA做簡單總結,說明基本原理。


用法一:使用雙口模式拆分成2個小容量的BRAM

基本原理如下:


  • 以1K*9bit雙端口配置模式為例,一個bram9k,可以當作兩個512*9k rom

  • 將A端口的地址最高位固定接0,B端口的地址最高位固定接1,則通過A端口只能訪問0~511的地址空間,通過B端口只能訪問512~1023地址空間,互不沖突,相當于兩個小容量的rom


用法二:用作并行數據的多周期延時

基本原理如下:





  • 將bram例化成簡單雙端口模式,并將寫端口固定使能為寫,讀端口固定使能為讀。

  • 將ram模式配置成 ?“讀優先模式”,每次在寫某個地址之前會先把該地址的數據輸出

  • 用一個模長為N(N=4)的計數器,反復向ram中寫數據,會得到一個延時為N+1的輸出數據

    如下圖:

FPGA中block ram的特殊用法列舉




用法三:用作高速大規模計數器

基本原理如下:


  • 以9Kbit ?bram為例,設置成雙端口,1k*9bit模式

  • A端口doa[7:0]是低8bit 計數器輸出,doa[8]是進位信號,給到B端口的使能

  • B端口dob[7:0]是高8bit計數器輸出。

  • 由于B端口數據有一個周期延時,將A端口數據延時一個周期之后與B端口構成16bit計數器

  • 也即一個9Kbit bram可以構造成一個16bit的計數器

  • 設計原型是兩個8bit的計數器級聯構造16bit計

  • rom初始化文件

????????

FPGA中block ram的特殊用法列舉

FPGA中block ram的特殊用法列舉




用法四:構造高速復雜的狀態機

一般狀態機原理框圖如下:


FPGA中block ram的特殊用法列舉



基于rom的狀態機原理如下:


FPGA中block ram的特殊用法列舉


  • 首先明確?狀態劃分,狀態跳轉條件,狀態輸出

  • 將現態輸出與輸入給到rom_a的地址端,初始化值為輸出值

  • 將現態輸出與跳轉條件給到rom_b的地址端,初始化值為次態輸出

  • 若狀態不多,可以將rom_a與rom_b合并成一個真雙口的rom



關于更多細節請參考如下相關文檔:

1.?《基于FPGA的數字信號處理》 高亞軍 電子工業出版社

2.?EF2_datahseet_V3.9


作者:張全全






相關推薦
  • FPGA(Field Programmable Gate Array),現場可編程邏輯器件,具有可多次重復編程,當前FPGA已經發展到具有大容量、高速度SERDES、內嵌ARM等SIP硬核資源,廣泛用于視頻、通信等多個領域。FPGA內部的PLL,BRAM等硬核資源非常寶貴,不同的FPGA等級,BRAM容量也相差很大,容量越多的BRAM,通常是邏輯門數比較多的器件,價格也相對昂貴。當使用低、中等資源規模的FPGA,需要大容量存儲應用時,通常選擇SDRAM等存儲器件,做容量擴展,而SDRAM有比較復雜的接口操作時序,需要提供靈活且高效的控制器,對于應用產品研發人員以及產品面市時間,提出了更多的挑戰。FPGA中常用的BRAM分為以下三種。本方案提供一種與BRAM類似的接口,實現64Mb的虛擬BRAM,使用者按照BRAM接口來操作,來實現大數據緩存。實現的虛擬BRAM具有以下特點▲   接口時序上,使用者不需關心SDRAM器件的時序、激活、預充電、刷新等繁瑣操作;▲   每次讀寫操作長度可以支持超長包(65K及以上);▲   虛擬BRAM具有隨機跳地址讀寫、數據掩碼操作,通過組合,可實現多種靈活的存儲方式;▲   方案中使用的32bit位寬 64Mb容量的SDRAM,理論帶寬支持6.4Gbps,實際帶寬可以跑6.1Gbps,讀寫效率在95%以上;▲   邏輯資源少,花費查找表242個,寄存器533個。可輕量快捷的嵌入到客戶工程中;▲   時鐘頻率Fmax可以支持200Mhz以上,基本滿足市場上所有SDRAM器件的最大頻率;▲   EG4S可直接使用,外掛時,支可持安路其他系列FPGA器件;▲通過修文件中的宏定義,可以支持市場上不同容量大小,不同...
    2021 - 01 - 15 瀏覽次數: 440
  • Universal Serial Bus 3.0(簡稱為USB3.0)接口,特點是傳輸速率非常快,理論上能達到5Gbps,比常見的的480Mbps的High Speed USB(簡稱為USB 2.0)快10倍,全面超越IEEE 1394和eSATA。外形和普通的的USB接口基本一致,能兼容USB 2.0和USB 1.1設備。USB3.0因其高帶寬、速度快在各個領域得到了廣泛的應用。本文提供了一種基于安路科技EG4系列FPGA的USB3.0通信接口解決方案,安路科技是中國FPGA供應商,提供高性價比的FPGA產品。安路科技EG4系列FPGA的USB3.0通信接口解決方案的功能框圖如下:外圍設備通過EG4系列FPGA實現與USB3.0的控制器的數據交互,進而實現與USB HOST的通信。這種解決方案適合大多數的USB3.0應用場景,比如外圍設備是高清的工業相機,通過FPGA緩存處理數據,經過USB3.0控制器實現與具有USB HOST的CPU平臺的通信。EG4系列FPGA含有豐富的I/O資源,可以支持不同的I/O標準,因此可以和很多的外圍設備進行通信。如下圖所示,USB3.0控制器一般是32bits的標準FIFO接口和FPGA通信,控制接口一般采用UART、I2C、SPI等接口。32位并行接口的數據突發速率高達400MB/s,FPGA端時鐘為100MHz。EG4系列FPGA特點:◆多達19600個 LUTs◆ 通用用戶I/O數量最多達215個,支持多種I/O電平標準◆ 最大支持156 Kbits分布存儲器◆ 最大支持1 Mbits 嵌入塊存儲器◆嵌入塊存儲器容量9 Kbits,可配置為真雙口,8Kx1到512x18模式◆ 專用FIFO控制邏輯◆ 嵌入塊存儲器容量32 Kbits,可配置為真雙口,可設置為2K*16或4K*8◆ 內嵌2M X 32bits的SDRAM(EG4S系列...
    2021 - 01 - 14 瀏覽次數: 499
  • 在FPGA中block ram是很常見的硬核資源,合理的利用這些硬件資源一定程度上可以優化整個設計,節約資源利用率,充分開發FPGA芯片中的潛在價值,本文根據前人總結的一些用法,結合安路科技FPGA做簡單總結,說明基本原理。用法一:使用雙口模式拆分成2個小容量的BRAM基本原理如下:以1K*9bit雙端口配置模式為例,一個bram9k,可以當作兩個512*9k rom將A端口的地址最高位固定接0,B端口的地址最高位固定接1,則通過A端口只能訪問0~511的地址空間,通過B端口只能訪問512~1023地址空間,互不沖突,相當于兩個小容量的rom用法二:用作并行數據的多周期延時基本原理如下:將bram例化成簡單雙端口模式,并將寫端口固定使能為寫,讀端口固定使能為讀。將ram模式配置成  “讀優先模式”,每次在寫某個地址之前會先把該地址的數據輸出用一個模長為N(N=4)的計數器,反復向ram中寫數據,會得到一個延時為N+1的輸出數據如下圖:用法三:用作高速大規模計數器基本原理如下:以9Kbit  bram為例,設置成雙端口,1k*9bit模式A端口doa[7:0]是低8bit 計數器輸出,doa[8]是進位信號,給到B端口的使能B端口dob[7:0]是高8bit計數器輸出。由于B端口數據有一個周期延時,將A端口數據延時一個周期之后與B端口構成16bit計數器也即一個9Kbit bram可以構造成一個16bit的計數器設計原型是兩個8bit的計數器級聯構造16bit計數rom初始化文件        用法四:構造高速復雜的狀態機一般狀態機原理框圖如下:基于rom的狀態機原理如下:首先明確 狀態劃分,狀態跳轉條件,狀態輸出將現態輸出與輸入給到rom_a的地址端,初始化值為輸出...
    2020 - 10 - 28 瀏覽次數: 246


 
Copyright ?2018 - 2021 上海安路信息科技股份有限公司
犀牛云提供企業云服務
草草影院地扯发布页,隔壁寂寞的少妇中文字幕,亚洲人成电影网站免费