四種常用FPGA CPLD設計思想與技巧

2021-06-28 18:41:23 字數 1875 閱讀 8894

四種常用fpga/cpld設計思想與技巧:桌球操作、串並轉換、流水線操作、資料介面同步化,都是fpga/cpld邏輯設計的內在規律的體現,合理地採用這些設計思想能在fpga/cpld設計工作種取得事半功倍的效果。

fpga/cpld的設計思想與技巧是乙個非常大的話題,由於篇幅所限,本文僅介紹一些常用的設計思想與技巧,包括桌球操作、串並轉換、流水線操作和資料介面的同步方法。希望本文能引起工程師們的注意,如果能有意識地利用這些原則指導日後的設計工作,將取得事半功倍的效果

桌球操作

「桌球操作」是乙個常常應用於資料流控制的處理技巧.桌球操作的處理流程為:輸入資料流通過「輸入資料選擇單元」將資料流等時分配到兩個資料緩衝區,資料緩衝模組可以為任何儲存模組,比較常用的儲存單元為雙口ram(dpram)、單口ram(spram)、fifo等。

桌球操作的最大特點是通過「輸入資料選擇單元」和「輸出資料選擇單元」按節拍、相互配合的切換,將經過緩衝的資料流沒有停頓地送到「資料流運算處理模組」進行運算與處理。

桌球操作的第二個優點是可以節約緩衝區空間。

巧妙運用桌球操作還可以達到用低速模組處理高速資料流的效果。

串並轉換設計技巧

串並轉換是fpga設計的乙個重要技巧,它是資料流處理的常用手段,也是面積與速度互換思想的直接體現。

prl_temp<=;

其中,prl_temp是並行輸出快取暫存器,srl_in是序列資料輸入。

對於排列順序有規定的串並轉換,可以用case語句判斷實現。對於複雜的串並轉換,還可以用狀態機實現。串並轉換的方法比較簡單,在此不必贅述。

流水線操作設計思想

首先需要宣告的是,這裡所講述的流水線是指一種處理流程和順序操作的設計思想,並非fpga、asic設計中優化時序所用的「pipelining」。

流水線處理是高速設計中的乙個常用設計手段。如果某個設計的處理流程分為若干步驟,而且整個資料處理是「單流向」的,即沒有反饋或者迭代運算,前乙個步驟的輸出是下乙個步驟的輸入,則可以考慮採用流水線設計方法來提高系統的工作頻率。

流水線設計的乙個關鍵在於整個設計時序的合理安排,要求每個操作步驟的劃分合理。

資料介面的同步方法

資料介面的同步是fpga/cpld設計的乙個常見問題,也是乙個重點和難點,很多設計不穩定都是源於資料介面的同步有問題。

下面簡單介紹幾種不同情況下資料介面的同步方法:

1. 輸入、輸出的延時(晶元間、pcb佈線、一些驅動介面元件的延時等)不可測,或者有可能變動的條件下,如何完成資料同步?

對於資料的延遲不可測或變動,就需要建立同步機制,可以用乙個同步使能或同步指示訊號。另外,使資料通過ram或者fifo的訪問,也可以達到資料同步目的。

把資料存放在ram或fifo的方法如下:將上級晶元提供的資料隨路時鐘作為寫訊號,將資料寫入ram或者fifo,然後使用本級的取樣時鐘(一般是資料處理的主時鐘)將資料讀出來即可。這種做法的關鍵是資料寫入ram或者fifo要可靠,如果使用同步ram或者fifo,就要求應該有乙個與資料相對延遲關係固定的隨路指示訊號,這個訊號可以是資料的有效指示,也可以是上級模組將資料打出來的時鐘。對於慢速資料,也可以取樣非同步ram或者fifo,但是不推薦這種做法。

2. 設計資料介面同步是否需要新增約束?

建議最好新增適當的約束,特別是對於高速設計,一定要對週期、建立、保持時間等新增相應的約束。

這裡附加約束的作用有兩點:

a. 提高設計的工作頻率,滿足介面資料同步要求。通過附加週期、建立時間、保持時間等約束可以控制邏輯的綜合、對映、布局和佈線,以減小邏輯和佈線延時,從而提高工作頻率,滿足介面資料同步要求。

b. 獲得正確的時序分析報告。幾乎所有的fpga設計平台都包含靜態時序分析工具,利用這類工具可以獲得對映或布局佈線後的時序分析報告,從而對設計的效能做出評估。靜態時序分析工具以約束作為判斷時序是否滿足設計要求的標準,因此要求設計者正確輸入約束,以便靜態時序分析工具輸出正確的時序分析報告。

常用的四種設計模式

乙個建構函式一生只能有乙個例項 function person 核心 let instance null function const p1 singleton const p2 singleton 改造單例模式 const person function person.prototype.sayh...

設計模式筆記 四種模式 四種原則

a.簡單工廠 用乙個單獨的類來做這個建立例項的過程,這就是工廠 不符合開 封閉原剛,每次擴充套件都要更改工廠類 計算器 1.cbxtype.items.addrange new object b,策略模式 定義多種演算法,並分別封裝,之間可以互相替換,演算法的變化不影響到客戶 收銀 context ...

四種設計師

乙個優秀的設計團隊可能同時需要以下四種型別的設計師,想想你是哪一種,或你身邊的設計師是哪一種?垂直座標上面是領導者或管理者,下面是跟隨者或奮鬥在一線的設計師。水平座標左邊是綜合分析能力,右邊是細節分析能力。這樣四個象限的設計師分別是 傳教士 左上 通常這種人有能力帶領團隊開創乙個新產業或顛覆乙個已有...