FPGA开发经验谈-FPGA 设计的四种常用思想与技巧(二)
串并轉換設計技巧
串并轉換是 FPGA 設計的一個重要技巧,它是數據流處理的常用手段,也是面積與速度互換思想的直接體現。串并轉換的實現方法多種多樣,根據數據的排序和數量的要求,可以選用 寄存器、 RAM 等實現。前面在乒乓操作的圖例中,就是通過 DPRAM 實現了數據流的串并轉換,而且由于使用了 DPRAM ,數據的緩沖區可以開得很大,對于數量比較小的設計可以采用寄存器完成串并轉換。如無特殊需求,應該用同步時序設計完成串并之間的轉換。比如數據從串行到 并行,數據排列順序是高位在前,可以用下面的編碼實現:
prl_temp<={prl_temp,srl_in};
其中, prl_temp 是并行輸出緩存寄存器, srl_in 是串行數據輸入。對于排列順序有規定的串并轉換,可以用 case 語句判斷實現。對于復雜的串并轉換,還可以用狀態機實現。串并轉換的方法比較簡單,在此不必贅述。
流水線操作設計思想
首先需要聲明的是,這里所講述的流水線是指一種處理流程和順序操作的設計思想,并非 FPGA 、 ASIC 設計中優化時序所用的 “Pipelining” 。
流水線處理是高速設計中的一個常用設計手段。如果某個設計的處理流程分為若干步驟,而且整個數據處理是 “ 單流向 ” 的,即沒有反饋或者迭代運算,前一個步驟的輸出是下一個步驟的輸入,則可以考慮采用流水線設計方法來提高系統的工作頻率。
流水線設計的結構示意圖如圖 3 所示。其基本結構為:將適當劃分的 n 個操作步驟單流向串聯起來。流水線操作的最大特點和要求是,數據流在各個步驟的處理從時間上看是連續的,如果將每個操作步驟簡化假設為通過一個 D 觸發器 ( 就是用寄存器打一個節拍 ) ,那么流水線操作就類似一個移位寄存器組,數據流依次流經 D 觸發器,完成每個步驟的操作。流水線設計時序如圖 4 所示。
流水線設計的一個關鍵在于整個設計時序的合理安排,要求每個操作步驟的劃分合理。如果前級操作時間恰好等于后級的操作時間,設計最為簡單,前級的輸 出直接匯入后級的輸入即可;如果前級操作時間大于后級的操作時間,則需要對前級的輸出數據適當緩存才能匯入到后級輸入端;如果前級操作時間恰好小于后級的 操作時間,則必須通過復制邏輯,將數據流分流,或者在前級對數據采用存儲、后處理方式,否則會造成后級數據溢出。
在 WCDMA 設計中經常使用到流水線處理的方法,如 RAKE 接收機、搜索器、前導捕獲等。流水線處理方式之所以頻率較高,是因為復制了處理模塊,它是面積換取速度思想的又一種具體體現。
轉載于:https://www.cnblogs.com/FPGA_DSP/archive/2010/03/13/1684844.html
總結
以上是生活随笔為你收集整理的FPGA开发经验谈-FPGA 设计的四种常用思想与技巧(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascrip 中的一些方法
- 下一篇: 解决_类百度在线留言本_所遇到的问题