dll模块化设计与编程_FPGA设计原则经验分享
一、面積和速度如何折中
? 面積和速度是芯片設計中一對相互制約、影響成本和性能的指標,貫穿FPGA設計的始終。在FPGA設計中,面積是指一個設計消耗的FPGA內部邏輯資源的數量,可以用消耗的觸發器和查找表的個數或者是等效邏輯門數來衡量;
? 速度是指一個設計在FPGA上穩定運行時所能達到的最高頻率,由設計時序狀態決定。與設計滿足的時鐘周期、時鐘的建立時間、時鐘的保持時間和 時鐘輸出延遲時間等眾多時序特征量密切相關。
? 關于面積和速度的折中,應在滿足設計時序和工作頻率要求的前提下,占用最小的芯片面積;或者在所規定的面積下,使得設計的時序余量最大,能夠在更高的頻率上穩定運行。通常,在資源足夠的情況下,更多是選擇速度的最優,這也是FPGA的特點。
二、硬件編碼
? 首先,HDL 是硬件描述語言,具有并行執行的特點。FPGA的邏輯設計所采用的硬件描述語言VHDL或Verilog與軟件語言C和C++開發是有本質區別,在使用硬件描述語言進行設計時,不應片面追求代碼的簡潔。
? 其次,要采用正確的編碼方法。要對所需實現的硬件電路的結構和相互連接有清晰的理解和構想,然后再用適當的硬件語言表達出來。實際上綜合軟件對所寫的代碼在進行推論的時候,得到的硬件結果會因編碼方式的不會而不同,直接影響硬件的實現。
三、模塊化設計
? FPGA作為硬件系統設計,應該對設計全局進行宏觀上的合理安排,包括邏輯功能模塊劃分、時鐘域信號的產生和驅動、模塊復用、時序或引腳約束、面積速度折衷等。這些系統上的考慮不僅關系到是否能夠最大程度地發揮項目成員的協同設計能力,而且直接決定著設計的綜合、實現效果和相關的操作時間。
FPGA內部由模塊組成
? 模塊化設計是系統原則的一個很好體現,它是自頂向下、模塊劃分、分工協作設計思路的集中體現,是大型復雜系統的推薦設計方法。
模塊化設計
四、同步設計
? 目前商用的FPGA都是面向同步的電路設計而優化的,同步時序電路可以很好地避免毛刺,提倡在設計中全部使用同步邏輯電路。 同步設計時鐘信號的質量和穩定性決定了同步時序電路的性能,FPGA的內部有專用的時鐘資源,如全局時鐘布線資源、專用的時鐘管理模塊DLL、PLL等。特別注意——不同的時鐘域的接口需要進行同步。
? 跨時鐘域如何處理
1、輸入數據的節拍和本級芯片的處理時鐘同頻,可以直接用本級芯片的主時鐘對輸入數據寄存器采樣,完成輸入數據的同步化;
2、輸入數據和本級芯片的處理時鐘是異步的,特別是頻率不匹配的時候,則只有用處理時鐘對輸入數據做兩次寄存器采樣,才能完成輸入數據的同步化。
3、異步FIFO緩存或異步RAM緩存也能是實現數據同步化重要手段。
處理跨時鐘域的作用是有效防止數據亞穩態的傳播,使后級電路處理的數據都是有效電平。
異步FIFO具有獨立的讀寫時鐘
以上設計原則分享給大家,歡迎探討,交流。
總結
以上是生活随笔為你收集整理的dll模块化设计与编程_FPGA设计原则经验分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 命名空间中不存在名称_原木定制中不开裂的
- 下一篇: docker 容器之间通信_四、Dock