今天來聊一聊時鐘樹。首先我先講一下我所理解的時鐘樹是什么,然后介紹兩種時鐘樹結構。
時序器件傳遞信號的時候需要依賴時鐘,而STA一項關鍵的檢查就是不能有setup/hold violation。如果對于同一時鐘域的兩個時序器件,如果他們接收到的時鐘之間有相位差,有可能會使setup/hold更難滿足,如果產生violation,芯片就會發(fā)生邏輯錯誤。
而時鐘從時鐘源到sink是需要一定的傳播時間的,距離時鐘源越遠的器件傳播時間越長。
有的時候data的傳播方向和clock的傳播方向相同,如果不做任何時鐘樹處理,這種情況對setup有好處;有的時候data傳播方向與clock傳播方向相反,這就對hold有好處;而如果電路中存在反饋回路,那data傳播方向就不確定。
所以為了能使上述所有情況都有一個較好的時鐘性能,我們會希望時鐘到達每個時序器件的時間一樣,也就是傳播時間的差(skew)越接近0越好。時鐘樹的目的正是如此。因為時鐘樹實在太過重要,現(xiàn)在也是很多人研究的課題。
我想說的第一種結構就是H-tree。它的結構確實很形象的像一棵樹,是應用最廣的結構了。
對于一個四四方方完全對稱的芯片來說,H-tree會先從root長到整個芯片的中心,再分出兩個trunk到芯片左右兩側,分出的trunk與root相互垂直,每個trunk再分兩個垂直枝干出來……不斷這樣分下去,得到一個簡單的分形結構,最終的leaf連接到相應的clock pin上。
這樣在物理上就可以保證每一個cell到root的走線長度一致,相應的net上的delay就會一樣,再加上整個tree上的buffer也都相同,就能保證傳播時間完全一致,從而實現(xiàn)skew為0. 當然實際的芯片不會這么理想化,長出來的H-tree也不一定像一個個H,但它的邏輯結構是一樣的。
并且另外一種升級版的H-tree就不保證走線長度一樣了,只要保證RC信息一致即可,好像可以稱為RC-tree(或者一般也就叫H-tree了)。
第二種結構是網格狀的(mesh)。就是把時鐘樹的每一級做成一個網格,級與級之間用多個buffer相連,最終把最后一級mesh接到clock pin上。
可是這樣不就等于把多個driver的output接在一起了嗎?這在我們ERC檢查的時候是違反的呀?但是,制定output不能短接的依據是擔心一個output輸出1一個output輸出0,這樣會造成電源地之間的短路。
但是對于clock mesh來說,它的buffer全部都是同時變化,永遠是一樣的狀態(tài),這也就使mesh成為可能。
但是,畢竟每個buffer到達的時間還是會有一丟丟的差別,還是會存在很短的瞬間電源和地在mesh上發(fā)生短路,再加上mesh本身就需要更多繞線,它的功耗是非常大的。另一個缺點就是會占用很多繞線資源。
但是mesh的skew容易做的更小,畢竟每一級它們的輸出都接在了一起,只有最后一級接在不同pin上。可以說mesh是犧牲了功耗換取更小的skew。
現(xiàn)在大多數的design還是在利用傳統(tǒng)的H-tree,只不過它的變式很多。mesh結構更復雜,EDA tool也不能很好地自動化完成,設計上相對更加困難。
-
STA
+關注
關注
0文章
51瀏覽量
19032 -
時鐘樹
+關注
關注
0文章
55瀏覽量
10815 -
時鐘源
+關注
關注
0文章
93瀏覽量
16035 -
電源地
+關注
關注
0文章
36瀏覽量
9826
發(fā)布評論請先 登錄
相關推薦
一千余字解讀stm32時鐘樹
![一千余字解讀stm32<b class='flag-5'>時鐘</b><b class='flag-5'>樹</b>](https://file.elecfans.com/web2/M00/09/16/pYYBAGD0FvWAeWpFAAAb1Fux1oA753.jpg)
AMC1204有兩種封裝,SOIC-8和SOIC-16,功能一樣嗎?為什么要推出兩種封裝?
快速學習全志T113-S3 開發(fā)板時鐘操作
![快速學習全志T113-S3 開發(fā)板<b class='flag-5'>時鐘</b>操作](https://file.elecfans.com/web2/M00/5D/1D/poYBAGLzEqqAd54TAAAbaJrrfwc915.png)
時序約束一主時鐘與生成時鐘
![時序約束一主<b class='flag-5'>時鐘</b>與生成<b class='flag-5'>時鐘</b>](https://file1.elecfans.com/web3/M00/00/6A/wKgZPGdJL3mAa0qAAAATtpEneAs782.png)
視頻時鐘合成芯片怎么用
總線時鐘周期與CPU時鐘周期的區(qū)別
AT32講堂088 | 雅特力AT32F402/F405時鐘配置
![AT32講堂088 | 雅特力AT32F402/F405<b class='flag-5'>時鐘</b>配置](https://file.elecfans.com/web2/M00/42/9C/pYYBAGJ5xmyARrXXAAALuRDQWfU330.jpg)
時鐘抖動和時鐘偏移的區(qū)別
晶閘管的阻斷狀態(tài)有兩種是什么
時鐘樹的圖好像是APB的時鐘都是AHB給的,請問這些時鐘為多少是哪兒配的呢?是sysinit里嗎?
FPGA的時鐘電路結構原理
![FPGA的<b class='flag-5'>時鐘</b>電路<b class='flag-5'>結構</b>原理](https://file1.elecfans.com/web2/M00/DA/1E/wKgaomYp43GANYEHAAAKcqxi5TI016.png)
評論