一種SoC芯片在Magma Talus下的物理實現
第四章 時鐘樹設計
時鐘樹設計的內容包括時鐘樹約束的設置、MMMC、OCV(On Chip Variation)及 CPPR (Clock Path Pessimism Removal,或稱 Clock Reconvergence Pessimism Removal)的考慮等。
本芯片時鐘樹設計的難點在于基于latch的時鐘門控單元、時鐘分頻電路以及動態(tài)選擇電路帶來的時鐘樹平衡問題而導致的時鐘樹約束的復雜性。
4.1 分離時鐘門控單元的時鐘樹約束
由于PMC模塊中存在大量的由latch和and標準單元構成的非集成的時鐘門控單元, latch的D端具有endpoint屬性,如果不做特殊處理,在時鐘樹生成時會與其它具有endpoint屬性的觸發(fā)器、鎖存器一起進行平衡。這不是我們想要的結果,我們想要的平衡是把latch和and一起構成的時鐘門控單元看成一個組合門電路,僅需要其后的觸發(fā)器和其它沒有受時鐘門控控制的觸發(fā)器一起進行平衡,而將latch排除在外。如圖6所示:
圖6 分離門控時鐘電路的skew group
為了達到上述目的,我們將分離分控時鐘的latch和and置于一個skew group之內,并將and門的時鐘輸入端設置為skew anchor。以下面的SoC芯片中的一個分離門控時鐘電路為例,約束如下:
force plan clock $m -pin ".../PmcHCLKGate_Inst/i_latch/GN
.../PmcHCLKGate_Inst/i_and/A" -skew_group 49
force plan clock $m -pin .../PmcHCLKGate_Inst/i_and/A -skew_anchor
4.2 分頻電路時鐘樹約束
SoC芯片的PMC模塊中分頻時鐘之間,以及分頻時鐘和源時鐘之間,存在非例外的時鐘路徑,因此,我們將分頻電路時鐘域和未分頻電路時鐘域內的觸發(fā)器置于一個skew group之內。分頻電路本身由于是孤立的邏輯,與其它功能邏輯電路的觸發(fā)器之間在邏輯上不存在有效數據路徑,因此可以單獨做成一個skew group。但由于它處于分頻時鐘域路徑上,為使置于同一skew group之內的分頻時鐘域和源時鐘域內的觸發(fā)器之間的skew在規(guī)定的范圍內,必須控制分頻電路的時鐘路徑,如圖7所示:
圖7 分頻電路的skew group
我們以某三分頻電路為例,下面的命令是對其時鐘樹創(chuàng)建時的相關約束:
force plan clock $m -pin "…/PmcFHClkDiv3/QQ_reg[0]/CK
…/PmcFHClkDiv3/QQ_reg[1]/CK" -skew_group 54
force plan clock $m -pin "…/PmcFHClkDiv3/QQ_reg[1]/CK" -skew_anchor
force plan clock $m -pin "…/PmcFHClkDiv3/DQ_reg/CKN
…/PmcFHClkDiv3/OR2CLK_Inst/A" -skew_group 55
force plan clock $m -pin …/PmcFHClkDiv3/OR2CLK_Inst/A -skew_anchor
4.3 動態(tài)時鐘選擇電路的時鐘樹約束
另外,PMC模塊中使用動態(tài)時鐘選擇電路用來消除異步時鐘間及同步時鐘間動態(tài)切換過程中的毛刺,其中動態(tài)異步時鐘選擇電路結構如圖8所示:
圖8 動態(tài)異步時鐘選擇電路結構圖
同樣,我們針對該電路也做了如下約束:
force plan clock $m -pin "…/PmcSysClkSel_Inst/AND_Inst1/B
…/PmcSysClkSel_Inst/Q1_reg/CK
…/PmcSysClkSel_Inst/Q3_reg/CK" -skew_group 1
force plan clock $m -pin "…/PmcSysClkSel_Inst/AND_Inst2/B
…/PmcSysClkSel_Inst/Q2_reg/CK
…/PmcSysClkSel_Inst/Q4_reg/CK" -skew_group 2
評論