<bdo id="vljxk"><rt id="vljxk"><noframes id="vljxk"><noframes id="vljxk"><noframes id="vljxk"><rt id="vljxk"></rt><rt id="vljxk"></rt><noframes id="vljxk"><rt id="vljxk"><delect id="vljxk"></delect></rt><noframes id="vljxk"><rt id="vljxk"></rt><noframes id="vljxk"><noframes id="vljxk"><rt id="vljxk"></rt>

當前位置:首頁 >  科技 >  IT業界 >  正文

安路科技: FPGA中block ram的特殊用法列舉

 2020-10-28 13:39  來源: 互聯網   我來投稿 撤稿糾錯

  阿里云優惠券 先領券再下單

在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的地址端,初始化值為輸出值

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

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

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

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

2. EF2_datahseet_V3.9

申請創業報道,分享創業好點子。點擊此處,共同探討創業新機遇!

相關標簽
硬件
硬件產品
用法

相關文章

熱門排行

信息推薦