一種SoC芯片在Magma Talus下的物理實(shí)現(xiàn)
第四章 時(shí)鐘樹設(shè)計(jì)
時(shí)鐘樹設(shè)計(jì)的內(nèi)容包括時(shí)鐘樹約束的設(shè)置、MMMC、OCV(On Chip Variation)及 CPPR (Clock Path Pessimism Removal,或稱 Clock Reconvergence Pessimism Removal)的考慮等。
本芯片時(shí)鐘樹設(shè)計(jì)的難點(diǎn)在于基于latch的時(shí)鐘門控單元、時(shí)鐘分頻電路以及動(dòng)態(tài)選擇電路帶來的時(shí)鐘樹平衡問題而導(dǎo)致的時(shí)鐘樹約束的復(fù)雜性。
4.1 分離時(shí)鐘門控單元的時(shí)鐘樹約束
由于PMC模塊中存在大量的由latch和and標(biāo)準(zhǔn)單元構(gòu)成的非集成的時(shí)鐘門控單元, latch的D端具有endpoint屬性,如果不做特殊處理,在時(shí)鐘樹生成時(shí)會(huì)與其它具有endpoint屬性的觸發(fā)器、鎖存器一起進(jìn)行平衡。這不是我們想要的結(jié)果,我們想要的平衡是把latch和and一起構(gòu)成的時(shí)鐘門控單元看成一個(gè)組合門電路,僅需要其后的觸發(fā)器和其它沒有受時(shí)鐘門控控制的觸發(fā)器一起進(jìn)行平衡,而將latch排除在外。如圖6所示:
圖6 分離門控時(shí)鐘電路的skew group
為了達(dá)到上述目的,我們將分離分控時(shí)鐘的latch和and置于一個(gè)skew group之內(nèi),并將and門的時(shí)鐘輸入端設(shè)置為skew anchor。以下面的SoC芯片中的一個(gè)分離門控時(shí)鐘電路為例,約束如下:
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 分頻電路時(shí)鐘樹約束
SoC芯片的PMC模塊中分頻時(shí)鐘之間,以及分頻時(shí)鐘和源時(shí)鐘之間,存在非例外的時(shí)鐘路徑,因此,我們將分頻電路時(shí)鐘域和未分頻電路時(shí)鐘域內(nèi)的觸發(fā)器置于一個(gè)skew group之內(nèi)。分頻電路本身由于是孤立的邏輯,與其它功能邏輯電路的觸發(fā)器之間在邏輯上不存在有效數(shù)據(jù)路徑,因此可以單獨(dú)做成一個(gè)skew group。但由于它處于分頻時(shí)鐘域路徑上,為使置于同一skew group之內(nèi)的分頻時(shí)鐘域和源時(shí)鐘域內(nèi)的觸發(fā)器之間的skew在規(guī)定的范圍內(nèi),必須控制分頻電路的時(shí)鐘路徑,如圖7所示:
圖7 分頻電路的skew group
我們以某三分頻電路為例,下面的命令是對(duì)其時(shí)鐘樹創(chuàng)建時(shí)的相關(guān)約束:
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 動(dòng)態(tài)時(shí)鐘選擇電路的時(shí)鐘樹約束
另外,PMC模塊中使用動(dòng)態(tài)時(shí)鐘選擇電路用來消除異步時(shí)鐘間及同步時(shí)鐘間動(dòng)態(tài)切換過程中的毛刺,其中動(dòng)態(tài)異步時(shí)鐘選擇電路結(jié)構(gòu)如圖8所示:
圖8 動(dòng)態(tài)異步時(shí)鐘選擇電路結(jié)構(gòu)圖
同樣,我們針對(duì)該電路也做了如下約束:
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
評(píng)論