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