FPGA中的面積優化
一、優化的意義
面積優化,就是在實現預定功能的情況下,使用更小的面積。通過優化,可以使設計能夠運行在資源較少的平台上,節約成本,也可以為其他設計提供面積資源。
二、操作符平衡
對於復雜邏輯操作,輸入到輸出的對稱性越好,往往中間邏輯就越少,面積越小。一般優化中,可以將不關注中間信號的設計的邏輯優化掉,實現對稱結構。
三、打破設計流水
流水設計可以提高時序余量,同樣需要消耗面積資源。去除這些緩存器,降低設計的頻率,即可實現面積的優化。
四、資源共享
(1)互斥操作的共享
對於不會同時出現的操作,其共用單元可以共享,方法有很多,簡單的就是使用控制信號切換模塊的工作模式。
(2)表達式共享
將可以寫成一樣結構的表達式用括號連接起來。
(3)邏輯功能模塊共享
某些邏輯功能相同的模塊,可以進行共享,但是控制邏輯可能會復雜一些。
五、復位對設計面積的影響
能不用復位最好不用,優先使用異步復位,其次使用同步復位。三者的資源消耗依次增加。
六、器件角度的面積節約
(1)使用原語設計
可以直接調用數字電路的結構,降低面積的使用率。
(2)使用觸發器控制端口
某些復位信號可以作為輸入來實現某些功能。
(3)多路選擇器優化
每個LAB自帶的信號有:時鍾、時鍾使能、異步清零、異步加載、同步清零、同步加載。
1️⃣時鍾和時鍾使能
時鍾用於驅動LAB中的寄存器,時鍾使能則是驅動數據。但是一般不要使用這些低扇出的信號,對LAB的使用率產生消極的影響。
2️⃣異步加載和異步清零
異步清零可以使用全局或者普通布線資源,二異步加載只能使用普通布線資源。兩者同樣控制LAB內部的寄存器。
3️⃣同步清零和加載
在LAB中,同步信號一般全局使用。
了解了LAB常用的信號,然后看一下多路選擇器的實現:
①二進制多路選擇器(case):二進制編碼的選擇器
②多路復用選擇器(case 狀態機 IF):采用獨熱編碼的選擇器
③帶優先級多路選擇器(IF):由比較器組成的選擇器。
上面三種結構中,資源消耗依次增加。
如果想進一步縮小資源消耗,則可以使用LAB的全局資源實現選擇。
七、小結
想要節約面積,就必須盡可能地利用資源。從簡單的從大到小的順序調整,到人為的共享,再到結構的改變,還有硬件結構資源的利用,都是在不斷地提高資源使用頻率。對於某些設計的資源緊張時,可以考慮這些方法進行設計簡化。