在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
數字訊號處理
1.乙個切比雪夫i型模擬帶阻濾波器用下面的指標設計 通帶截止頻率為 和 阻帶截止頻率為 和 峰值通帶紋波是 最小阻帶衰減為 相應的模擬低通濾波器的頻帶截止頻率和階次是多少?帶阻濾波器的階次是多少?用matlab函式cheblord來驗證濾波器階次結果 寫出程式關鍵步驟 matlab驗證 n 3 fs...
數字訊號處理
一 訊號處理的典型過程 1 模擬濾波 x t xa t 觀測訊號經過前置模擬器ha s 去掉一些帶外成分和干擾 2 取樣 xa t xa nt 以取樣週期t對xa t 進行取樣,得到時域離散訊號xa nt 將時間離散化 3 a d 變換 xa nt x n 把原先訊號幅值連續變換 量化幅值 將幅值離...
數字訊號處理與數字訊號處理器
數字訊號處理與數字訊號處理器 數字訊號處理 digital signal processing,dsp 與數字訊號處理器 digital signal processor,dsp 兩者的縮寫都是dsp,但凡是電子資訊類專業的同學,都知道dsp是這個學科最重要的專業基礎課程之一,但實際上,很多朋友對這...