這周是小編過年後的第二個工作周,小編公眾號依然要更新一篇文章。目前暫定公眾號每周一更,主要精力集中在運行知識星球和數字後端培訓課程的定製編寫。今天分享一道年前小編自己命題,發布在知識星球上的作業題目,這道題目考察的知識點覆蓋整個數字後端實現implementation。

1. 模塊A和模塊B為兩個power domain,其他區域為TOP,TOP為Always ON;

2. CORE_CLK下的sink分布在模塊A,模塊B,各個SRAM時鐘端以及TOP區域,即模塊A,模塊B,TOP彼此是同步的;

3. 模塊A中的reg到介面處的邏輯級數特別長,約26級左右,即reg的output到模塊A的輸出端port的delay比較大,約為1.6ns;core_clk周期為2.5ns。

4. SRAM數量較多,每個memory pin的數量比較多,約500個;

以上為已知條件,請大家思考如下幾個問題。這道題的知識點可以涉及數字後端PR全過程,歡迎大家積极參与討論。這道題如果你能夠輕鬆解答,年薪50萬以上不是問題。

1.該設計是否存在不合理性?

2.為何模塊A和模塊B要做power domain?

3.模塊A和模塊B輸出端是否需要加isolation cell? 如果需要加isolation cell,有何優缺點?PR過程需要如何處理?

4.如果isolation cell的input 不小心被插入buffer甚至inverter pair,而且不允許重新跑flow,應該如何高效解決?

5.對於hierarchy方式實現的design,如何優化介面處的timing?

6.時鐘樹綜合clock tree synthesis應該要如何做?時鐘樹結構是否合理?

7.如果place和cto後的timing一致性比較好,route後timing變差200ps,如何分析解決問題?

8.該設計的timing瓶頸會在哪裡?在PR實現時有何難點?

星球成員回答精選:

張馨然 : 能力有限,回答就當個笑話看了^_^

1.A B模塊channal的處理;sram 要看是否有復用,來決定是否pin對pin放,還有盡量挨著core,好routing,也要看數據流什麼關係進行擺放。

點評:A和B模塊之間的channel確實需要留好,大了則浪費面積,小了則可能有繞線問題,時鐘質量可能也不理想。

2.如果A B與top不同voltage,或者有shut down需要做power domain。

點評:之所以做power domain,主要是考慮產品應用方面的需求,比如超低功耗需求的產品。如果不做power domain的話,A和B模塊是一直處於ON的狀態。

3.假設top 1.5v、A 1.2v with shut down 、B 1.8 v alway on。 (1)A B模塊都需要加iso cell,A模塊需要帶level shift功能的isn cell (2)A模塊中LSISO放在top區域,只需要一套電源即可,否則放在A中需要second pg。B模塊放在B top均可,都為alway on,但是不同電壓要用不同cell。 (3)無論放在模塊還是top中,都要dont touch。

點評:假設條件與題設不符,已經條件模塊B是一個Power domain。A模塊和B模塊的輸出端都需要加isolation cell,且isolation cell需要放置在AON的domain,即TOP區域。加Isolation cell後會增加一級的cell delay,會使得模塊A和TOP之間的timing更緊。在數字後端實現時,需要選用合適驅動大小的isolation cell,並將isolation cell的input端設置dont_touch。

4.打斷iso cell,直接和output直接,在連接buf。

點評:思路是對的,但是如果僅僅是改變連接關係,可能此時Isolation cell的位置距模塊A/B的輸出端較遠,可能存在max transition的問題。因此,還需要將isolation cell的位置和buffer的位置互換下。如果插入的是inverter pair,處理起來要稍微複雜點。相應的處理腳本已經發布在星球上。

5.我現在的flow為top down的,有前端單獨給我partation的sdc,我的做法一般是加嚴埠,為top服務。

點評:子模塊介面處加緊io的約束,但是需要掌握好度的問題。

6.針對這個不好分析。

點評:時鐘CORE_CLK太早分叉(模塊A和TOP),common path太短,CRPR補償不盡人意,嚴重影響整個design的timing(特別是當clock tree latency比較長的時候)。因此,需要對時鐘進行ECO,並添加clock guide buffer來人為將common path做長。

7.route後變差的話,route主要是有真實data的net,可以用高金屬層;也進行了fix hold動作,可能修過頭了;或者useful skew前面用得過很了,修hold過頭了。

點評:要找route後timing變差的原因,首先需要知道cto和route之間的區別,不外乎就是route後有真實的繞線了,不再是根據global route來估算RC。既然有實際繞線了,就還可能存在繞線線之間的串擾crosstalk。除了這些實質性的問題外,就是兩個階段的timing correlation問題,比如timing derating,clock uncertainty,rc scale fator等設置問題。

第八問留給各位思考。

青玄 : 我現在初學PR,但是在星大社區仔細看過第四個問題的解決辦法,對isolation的輸入和buffer輸出端斷開連接到buffer輸入eco,不知道我的回答對不對

Andy 回復 吾愛IC : 5.對於hierarchy設計是否應該用ilm model呢? 模塊實現時,埠時序修不幹凈,該如何解決?

點評:用ILM和ETM model都可以。模塊實現時能做的就是將介面相關path上的data path優化到極致,對應top的path也需要優化。如果這樣做之後仍然搞不定,那就需要改設計或者做pipeline。

今年你們發年終獎了嗎? 聊聊年終獎背後的市場邏輯

星球本周問答精選

以下幾個問答挑選自小編知識星球上星友提問,分享給各位。限於篇幅,小編的回答和點評,請移步知識星球查看。

1.匿名用戶 提問: 版主FE用tweaker修完timing後,BE ecoRoute之後clock會被變成routed和detour的,ecoRoute之前clock是fix的,有什麼原因會導致呢?

2.我愛ic 提問: 親,logically_exclusive 和physically_exclusive有什麼區別?目前只知道exclusive pin指只在當前skew group做balance,其他group里包含這些pin也不作balance。

3.匿名用戶 提問: 大佬您好,關於cts這一塊,面試官會感興趣哪些方面?

其實這個問題看公眾號和星球上的問題足以應對資深工程師的面試。

4.匿名用戶 提問: 星住,請教一下我做cts的時候,根據cell分布大致平均分,預先插入了2層driver,現在問題是單個tree的latency真的好差,被插入了好多的inv,樹真的好長,請問一般情況怎麼做短latency呢?用大buffer?控制tree的級數?好的繞線層?都已經嘗試了!!並且設了latency,並沒有什麼用!請星主指導一下

5.匿名用戶 提問: 群主,為什麼加decap,ir會變好啊?

6.小娟姐姐 提問: 請問針對該題以下解答是否正確 1、最高工作頻率計算TCLK >= [Tlaunch + Tck2q + Tdp] – Tcapture + Tsetup TCLK >=[0+2+5]– 2 +3 = 8 ns 最高頻率為125MHz 2、FF2 hold slack [Tlaunch + Tck2q + Tdp] - [Tcapture + Thold] =[0+2+5]–[2+6]= -1 存在hold違例. 修復方法: 刪除>=1 個 capture 路徑Buffer 或插入>=1個launch 路徑Buffer

7.夢飛 提問: 星主,最近一直在看cts方面的資料,心中還是有比較多疑惑,想請您百忙中抽出時間來解答一下,非常感謝!CTS中的一般約束max clock transition,max clock fanout,max capacitance,uncertainty,skew及latency應該怎麼設?主要是參考哪些信息來設置?

8.匿名用戶 提問: 請問動態IR-drop分析中有10%的壓降。雖然是符合規定,但有一點搞不清楚,例如在timing signoff中邏輯庫中描述的電壓是ss為0.81v,tt為0.9v,ff下為0.99v,按照這些電壓值來signoff,是在哪裡考慮到那10%的壓降,或者說是如何保證出現10%壓降後時序仍然是沒問題的?謝謝

9.ICer 提問: 星主你好,新年快樂。想請問你一個問題,我有個block cell數量才40w,利用率一直做不上去,即使不到40%的利用率也還是有幾百條short,看database感覺是線太多了,繞的太密,但是不是知道從哪兒找到具體的數據來證實,ICC2裡面提供這樣的命令嗎,謝謝

10.匿名用戶 提問: 小編,請教一下時鐘樹要怎麼做怎麼balance skew?

小編知識星球簡介:

在這裡,目前已經規劃並正著手做的事情:

  • ICC/ICC2 lab的編寫
  • 基於ARM CPU的後端實現流程
  • 利用ICC中CCD(Concurrent Clock Data)實現高性能模塊的設計實現
  • 基於ARM 四核CPU 數字後端Hierarchical Flow 實現教程
  • 時鐘樹結構分析
  • 低功耗設計實現定期將項目中碰到的問題以案例的形式做技術分享

在這裡,各位可以就公眾號推文的內容或者實際項目中遇到的難題提問,小編會在24小時內給予解答(也可以發表你對數字後端設計實現中某個知識點的看法,項目中遇到的難點,困惑或者職業發展規劃等)。

反正它是一個縮減版的論壇,增強了大家的互動性。更為重要的是,微信有知識星球的小程序入口。星球二維碼如下,可以掃描或者長按識別二維碼進入。目前已經有113位星球成員,感謝這113位童鞋的支持!歡迎各位鐵杆粉絲加入!終極目標是打造實現本知識星球全員年薪百萬的宏偉目標。(星球的門票即將調整到228元/年,有需求的朋友趁早上車,目前價格已經提高至208元/年,折算每天需要六毛錢

推薦閱讀:

相关文章