Page 40 - 材料分析層層把關先進製程設備零缺陷
P. 40
DESIGN IDEAS
圖3:code 1 (左)和code 2 (右)的延遲比較。電路2的速度優於電路1的速度。
圖4:code 3 (左)和code 4 (右)具有相同的功能,但code 4採用了管線暫存器,而code 3則無。
圖5:在code 3 (左)和code 4 (右)的延遲比較中可以發現,電路4的速度優於電路3的速度。
另一種提高電路時序性能的 方法是使用管線(pipeline)暫存 器。將長組合邏輯分解為多個單 元,並在其間添加暫存器。由於資 料路徑邏輯中增加了暫存器,從 輸入獲得訊號到輸出產生訊號的 時間有所增加。但是每個時脈週期 計算的結果會相應增加,從而減少 電路的總延遲。
圖6:頂部是code 3的原理圖,底部是code 4的原理圖,後者包含了管線暫存器。
在高層級編寫RTL程式碼 時,可以使用Synopsys DC並在 DesignWare庫的幫助下實現加
38 www.edntaiwan.com
使用管線暫存器
結論:從圖5可以明顯看出, 帶有管線暫存器的電路速度遠高 於不帶管線暫存器的電路速度。管 線暫存器增加了延遲和面積,但 也提高了工作頻率。因此,當性能 是標準時,管線解決方案應該是 首選。
將慢速訊號放在資料路徑邏 輯的末端
解決長路徑問題的另一種方 法是將最慢的訊號放在邏輯的後 端。例如,Z=A&B&C&D可以重新 排列為Z=(A&C&D) &B。這可確 保訊號B在合成時仍然在邏輯後 端,從而有助於減小邏輯的整體 延遲。
高層次編寫程式碼
在設計中將加法器和乘法器 等算數運算留給合成工具實現於 設計中,這通常是一個好主意。在 較低層級進行設計可能會導致時 序問題,因此應盡可能將其留給 合成器。