數字IC後端實現之時鐘樹綜合
今天,小編為大家簡單介紹下數字後端設計過程中非常重要的一個環節,時鐘樹綜合(clock tree synthesis)。很多兩三年及以上的數字後端工程師,依舊停留在跑flow,工具如何build tree也是兩眼一抹黑,甚至不知道如何去分析你的clock tree質量和debug clock tree 的一個狀態。因此,很有必要再把這個步驟拎出來,嘮嘮嗑。
1.什麼是時鐘樹綜合
簡單概括下,時鐘樹綜合就是指從某個clock的root點長到各個sink點的clock buffer/inverter tree。工具試圖將某個clock所屬的所有sinks做到相同長度。從概念上,我們可以得到幾個要點。
- clock的root點需要定義清楚。這個可以通過create_clock來定義。如果是create_generated_clock,它的master clock也是很清晰的,即知道generate clock的source latency;
- clock 的sinks要知曉。
2.時鐘樹綜合的目標
- clock skew盡量小,特別是對時鐘質量要求比較高或者高頻時鐘;
- clock latency盡量短。
那麼,為了達到以上兩大目標,數字後端工程師任到重遠。首先,我們拿到一個design,需要先花點時間,理清楚clock 結構,各種mode如何切換。同時,需要不斷向前端設計人員請教design相關(後端需要知道的信息),比如哪些clock是需要同步,哪些是非同步。
3.時鐘樹質量分析
可能很多工程師估計都沒用過下面這個功能吧。ICC/ICC2中這個功能還是很不錯的,可以幫助工程師快速理清clock的結構和debug clock tree 質量。特地向大家推薦下。
藉助上面推薦的方法GUI操作輔助我們分析。選中某個clock,然後查看clock的時鐘樹綜合結果,比如clock buffer的級數,clock latency,clock的最短路徑和最長路徑。常見的問題就是clock skew過大,latency太長。有的是floorplan不好導致的(比如窄channel),有的是placement結果不好(cell 分布不好導致的),也有constraint約束不合理導致的。更多詳細分析方法,後面會陸續更新,敬請期待。
好了,今天的碼字就到這裡了,原創不容易,喜歡的可以幫忙轉發,小編在此先謝過!如果有技術上不太懂,歡迎和我交流討論。
推薦閱讀:
※聯盛德微電子榮膺中國 IC 領袖峰會雙料大獎
※產業與教育,誰滯後誰
※不可忽視的verilog零延遲 (IC君給您拜年)
※UVM源碼探索之Factory(下篇)