趁著元旦假期,,我們來捋一下芯片設(shè)計(jì)中的幾個(gè)基礎(chǔ)問題,。
我們都知道,最近關(guān)于芯片設(shè)計(jì)與制造的話題,,依然占據(jù)著人們的茶前飯后時(shí)間,,敵人的圍追堵截,使我們丟棄幻想,,奮起抗?fàn)?。在我們的工作中或生活中,不論處于半?dǎo)體行業(yè)的上游還是下游,,對(duì)于芯片都無法避開,,缺了它,我們寸步難行,。
當(dāng)你在家開著空調(diào),,從冰箱里拿出一瓶冰可樂,葛優(yōu)躺拿著手機(jī)刷視頻時(shí),,你希望視頻流暢無卡頓,。在這背后,是一群群芯片設(shè)計(jì)工程師,、移動(dòng)通信工程師,、網(wǎng)絡(luò)工程師、圖像處理工程師,、芯片開發(fā)/驗(yàn)證工程師,、芯片制造工程師、芯片封裝測(cè)試工程師......日以繼夜奮斗的結(jié)果,。
任何一款芯片的設(shè)計(jì),,都需要龐大的設(shè)計(jì)和驗(yàn)證團(tuán)隊(duì)進(jìn)行密切合作共同完成。在芯片設(shè)計(jì)中,,我們需要考慮眾多因素,。那么,我們的腦海里在想些什么呢,?
芯片邏輯開發(fā)工程師的三重境界:心中有電路,,腦中有時(shí)序,手中有代碼,。
如果我們?cè)谠O(shè)計(jì)中使用同步設(shè)計(jì)或任何IP,,或最終確定體系結(jié)構(gòu)和微體系結(jié)構(gòu),那么我們需要制定各種策略,。以下列出了其中一部分:
設(shè)計(jì)的功能性和兼容性
并行性,、并發(fā)性和流水線策略
外部IO和高速接口
設(shè)計(jì)的面積和初始門數(shù)估計(jì)
速度和最高頻率要求
功耗要求和使用低功耗設(shè)計(jì)
時(shí)鐘網(wǎng)絡(luò)和延遲
接口和IO延遲與建模策略
經(jīng)過以上考慮,,由經(jīng)驗(yàn)豐富的技術(shù)人員組成的團(tuán)隊(duì)最終確定ASIC/ SOC 設(shè)計(jì)的架構(gòu)和微架構(gòu)。
為了便于理解架構(gòu)和項(xiàng)目研發(fā),,我們需要考慮的一些設(shè)計(jì)因素,主要有以下幾個(gè)方面,。
01
時(shí)序參數(shù)
上升沿敏感觸發(fā)器的重要時(shí)序參數(shù)如圖1所示,,它們是:
建立時(shí)間 (tsu)
保持時(shí)間(th)
觸發(fā)傳播延時(shí)(tpd)
建立時(shí)間(tsu):在時(shí)鐘的有效邊沿到達(dá)之前,觸發(fā)器的數(shù)據(jù)輸入應(yīng)該保持穩(wěn)定值的最小時(shí)間被稱為建立時(shí)間,。
有效邊沿表示上升沿(正邊沿)靈敏的D觸發(fā)器從低電平到高電平的跳變,,下降沿(負(fù)邊沿)靈敏的D觸發(fā)器從高電平到低電平的跳變。
在建立時(shí)間窗口期間,,如果數(shù)據(jù)輸入從1到0或反之,,那么觸發(fā)器輸出將是亞穩(wěn)態(tài)的,這表明存在建立違例,。
保持時(shí)間(th):觸發(fā)器的數(shù)據(jù)輸入在時(shí)鐘有效邊沿到達(dá)后保持穩(wěn)定的最小時(shí)間,,稱為保持時(shí)間。
有效邊沿表示上升沿(正邊沿)靈敏的D觸發(fā)器從低到高的跳變,,下降沿(負(fù)邊沿)靈敏的D觸發(fā)器從高到低的跳變,。
在保持時(shí)間窗口期間,如果數(shù)據(jù)輸入從1到0或反之,,那么觸發(fā)器輸出將是亞穩(wěn)態(tài)的,,這表明存在保持違例。
觸發(fā)器的傳播時(shí)延(tpd=tcq):觸發(fā)器到達(dá)時(shí)鐘有效邊沿后產(chǎn)生有效輸出所需的時(shí)間,,稱為觸發(fā)器的傳播時(shí)延,。
傳播延遲也稱為時(shí)鐘到q端的延遲,也稱為tcq,。
02
亞穩(wěn)態(tài)
如果將圖2所示設(shè)計(jì)的數(shù)據(jù)輸入連接到另一個(gè)模塊上,,該模塊的時(shí)鐘由不同的時(shí)鐘源產(chǎn)生,則第一個(gè)觸發(fā)器輸出將處于亞穩(wěn)態(tài),。
meta_data表示觸發(fā)器數(shù)據(jù)是亞穩(wěn)態(tài)的,,因此第一個(gè)觸發(fā)器存時(shí)序違例。亞穩(wěn)態(tài)表明數(shù)據(jù)輸出是無效的,,為了得到有效的數(shù)據(jù)輸出,,設(shè)計(jì)需要使用多電平同步器。
所述第一觸發(fā)器所采樣的數(shù)據(jù)與所述第二觸發(fā)器的輸出的時(shí)序如圖3所示,。如圖所示,,第一個(gè)觸發(fā)器的輸出處于亞穩(wěn)態(tài),輸出觸發(fā)器的data_out輸出處于合法有效狀態(tài),。
03
時(shí)鐘偏斜
如果ASIC設(shè)計(jì)中有多個(gè)時(shí)鐘,,那么時(shí)鐘分布和時(shí)鐘樹綜合將對(duì)平衡各塊不同時(shí)鐘輸入之間的時(shí)鐘偏斜起到非常重要的作用,。
如果設(shè)計(jì)中的兩個(gè)不同的時(shí)鐘到達(dá)不同的時(shí)間實(shí)例,則設(shè)計(jì)具有時(shí)鐘偏斜,。時(shí)鐘偏移的原因是路由延遲,,即單時(shí)鐘域設(shè)計(jì)的線延遲??紤]所示的圖,,讓我們考慮在發(fā)射觸發(fā)器的clk邊緣在時(shí)間實(shí)例t0到達(dá),在時(shí)間實(shí)例t2捕獲觸發(fā)器,。由于這個(gè)同步設(shè)計(jì)的時(shí)鐘到達(dá)時(shí)間不同,,clk1和clk2之間存在相移,我們可以認(rèn)為這是時(shí)鐘偏移,。另一個(gè)原因是振蕩器的老化,;然后,振蕩器產(chǎn)生的時(shí)鐘周期頻率變化,,因此到達(dá)時(shí)間的差異可以稱為抖動(dòng),。
時(shí)鐘偏斜是由于clk1引腳和clk2引腳之間的互連延遲引起。
在實(shí)際的專用集成電路設(shè)計(jì)中,,我們經(jīng)歷了兩種不同類型的偏置,,如圖5所示。
正時(shí)鐘偏移:表示先觸發(fā)發(fā)射時(shí)鐘clk1,,再到達(dá)捕獲時(shí)鐘clk2,。如圖中tskew,它是clk1和clk2到達(dá)時(shí)間的差值,。換句話說,,我們可以想象正時(shí)鐘偏斜是數(shù)據(jù)和時(shí)鐘在相同的方向上運(yùn)行,正時(shí)鐘偏斜有利于建立時(shí)間,,但對(duì)保持時(shí)間不好,,因?yàn)橛姓膍argin來管理。
負(fù)時(shí)鐘偏移:最后觸發(fā)發(fā)射時(shí)鐘clk1,,第一個(gè)觸發(fā)捕獲時(shí)鐘clk2,。如圖中tskew,它是clk1和clk2到達(dá)時(shí)間的差值,。換句話說,,我們可以想象負(fù)時(shí)鐘偏移是數(shù)據(jù)和時(shí)鐘在相反的方向上運(yùn)行,負(fù)時(shí)鐘偏移對(duì)保持時(shí)間更好,,但對(duì)建立時(shí)間不好,。
在ASIC設(shè)計(jì)中,我們總是會(huì)遇到由于抖動(dòng)或互連(即線延遲)而產(chǎn)生的時(shí)鐘偏斜,,下面是我們應(yīng)該知道的要點(diǎn),。
正時(shí)鐘偏斜有利于建立時(shí)間,,但不利于保持時(shí)間。
負(fù)時(shí)鐘偏斜有利于保持時(shí)間,,但不利于建立時(shí)間,。
正時(shí)鐘偏斜(positive clock skew)
如前面所討論的,正時(shí)鐘傾斜發(fā)射觸發(fā)器首先被觸發(fā),,然后在捕獲觸發(fā)器被捕獲,。在發(fā)射時(shí)鐘和捕獲時(shí)鐘之間有緩沖延遲的裕度,可以用來提高設(shè)計(jì)所需的頻率,。
讓我們找出所需的數(shù)據(jù)時(shí)間和數(shù)據(jù)到達(dá)時(shí)間。
Data Arrival Time(AT)=tpff1+tcombo
Dara Required Time(RT)=Tclk+tbuffer-tsu
其中,,Tclk是時(shí)鐘周期或時(shí)鐘到q端的延時(shí),。tbuffer是緩沖延時(shí),tsu是觸發(fā)器建立時(shí)間,,tpff1是觸發(fā)器傳播延時(shí),,tcombo是組合邏輯延時(shí)。
建立裕量(setup slack)是數(shù)據(jù)所需時(shí)間和數(shù)據(jù)到達(dá)時(shí)間之間的差值,,應(yīng)該為正,。正的建立時(shí)間裕量表明設(shè)計(jì)中不存在任何建立違例。為了避免設(shè)計(jì)中的建立違例 ,,設(shè)計(jì)應(yīng)該具有快速數(shù)據(jù),、快速啟動(dòng)時(shí)鐘(clk1)和慢捕獲時(shí)鐘(clk2)。也就是說,,與所需的數(shù)據(jù)時(shí)間相比,,數(shù)據(jù)的實(shí)際到達(dá)應(yīng)該更快。(如圖7所示)
負(fù)時(shí)鐘偏斜(negative clock skew)
如前面所討論的,,負(fù)時(shí)鐘偏斜,,在發(fā)射觸發(fā)器最后觸發(fā)和捕獲觸發(fā)器首先被觸發(fā)。由于在觸發(fā)時(shí)鐘和捕獲時(shí)鐘之間有緩沖延遲的裕度,,這降低了設(shè)計(jì)的最大頻率,。。
讓我們找出所需的數(shù)據(jù)時(shí)間和數(shù)據(jù)到達(dá)時(shí)間,。
Data Arrival Time(AT)=tbuffer+tpff1+tcombo
Dara Required Time(RT)=Tclk-tsu
04
裕量(slack)
在ASIC設(shè)計(jì)中,,有兩個(gè)術(shù)語(yǔ)用于描述裕量,即建立裕量(setup slack)和保持裕量(hold slack),。
建立裕量(setup slack)
建立裕量是數(shù)據(jù)所需時(shí)間和數(shù)據(jù)到達(dá)時(shí)間之間的差值,,應(yīng)該為正。正的建立裕量表明設(shè)計(jì)中不存在任何建立違例,。
Data Arrival Time(AT)=tbuffer+tpff1+tcombo
Dara Required Time(RT)=Tclk-tsu
Setup Slack=RT-AT
保持裕量(hold slack)
保持裕量是數(shù)據(jù)到達(dá)時(shí)間和數(shù)據(jù)需要時(shí)間之間的差值,,應(yīng)該是正的,。正保持裕量表明在設(shè)計(jì)中沒有任何保持違例。
05 時(shí)鐘延遲
時(shí)鐘由鎖相環(huán)產(chǎn)生,,用于單時(shí)鐘域設(shè)計(jì),,對(duì)于多個(gè)時(shí)鐘域,我們可能需要多個(gè)鎖相環(huán),。
時(shí)鐘網(wǎng)絡(luò)引入了延遲,,它實(shí)際上是時(shí)鐘到達(dá)芯片所需的時(shí)間,時(shí)鐘延遲是由時(shí)鐘分布過程中的時(shí)鐘網(wǎng)絡(luò)延遲造成的,。
06
設(shè)計(jì)的面積
ASIC的總面積是由標(biāo)準(zhǔn)單元,、宏和IP核組成的。在集成電路的百萬或億門設(shè)計(jì)中,,面積的限制和更好的布局規(guī)劃對(duì)獲得預(yù)期性能起著重要的作用,。我們可以在不同的設(shè)計(jì)階段考慮面積優(yōu)化,例如:
在體系結(jié)構(gòu)設(shè)計(jì)過程中,,通過不同功能塊交互描述,,獲取更好的策略。
在RTL設(shè)計(jì)過程中,,使用基于工具的指令和命令,,并使用資源共享技術(shù)。
在版圖階段的物理設(shè)計(jì)中,,通過策略來放置功能塊,,最小化由于布線延遲和布線資源使用而造成的面積消耗。
07
速度要求
在ASIC設(shè)計(jì)中,,速度是另一個(gè)重要的考慮因素,。采用不同的速度改進(jìn)技術(shù)可以提高專用集成電路的性能。例如,,考慮到處理器設(shè)計(jì)工作在500MHz的工作頻率,,我們面臨著提高設(shè)計(jì)頻率的挑戰(zhàn)。在這種情況下,,ASIC設(shè)計(jì)周期中可以使用各種策略,,但可能很少使用:
在體系結(jié)構(gòu)和微體系結(jié)構(gòu)設(shè)計(jì)時(shí),具有較好的順序邊界劃分,。
在初始版圖中,,相互依賴的塊可以彼此靠近地放置,以最小化面積,,從而減少布線延遲,,并提高速度。
在RTL設(shè)計(jì)階段,,使用平衡寄存器和寄存器復(fù)制,、優(yōu)化命令來提高設(shè)計(jì)性能,。但它們可能會(huì)影響邏輯面積。
在RTL設(shè)計(jì)過程中,,使用寄存器的輸入和輸出,,使設(shè)計(jì)具有更好的性能。
只要可行,,就使用流水線的概念和體系結(jié)構(gòu),。
如果需要在設(shè)計(jì)中使用FSM設(shè)計(jì)和控制器,則嘗試在控制和數(shù)據(jù)路徑綜合方面進(jìn)行工作,,以獲得干凈的時(shí)序和更好的性能,。
盡量使用同步設(shè)計(jì),因?yàn)樗鼈儽犬惒皆O(shè)計(jì)更快,。
盡量避免內(nèi)部時(shí)鐘發(fā)生器,;相反,考慮時(shí)鐘樹并在CTS期間優(yōu)化時(shí)鐘樹,。
在布線階段,嘗試使用基于工具的改進(jìn)技術(shù),,因?yàn)閱⒂霉ぞ咧噶羁梢栽谄胶鈺r(shí)鐘偏斜方面發(fā)揮特別重要的作用,。
08
功耗要求
對(duì)于任何類型的ASIC或SOC設(shè)計(jì),重要的考慮是功率,,設(shè)計(jì)團(tuán)隊(duì)的目標(biāo)是減少泄漏和動(dòng)態(tài)功耗,。在物理設(shè)計(jì)過程中考慮功率約束進(jìn)行功率規(guī)劃。在ASIC設(shè)計(jì)流程的不同階段,,應(yīng)采用功率優(yōu)化技術(shù),。
具有低功耗感知的ASIC架構(gòu)。
在不同的設(shè)計(jì)級(jí)別使用UPF,。
在RTL期間,,為了最小化動(dòng)態(tài)功率,使用專用的時(shí)鐘門控單元,。
通過避免不必要的數(shù)據(jù)值分配和切換,,還可以在RTL階段優(yōu)化功率。
在物理設(shè)計(jì)過程中,,對(duì)多個(gè)功率域有更好的功率規(guī)劃和功率排序,。
在物理設(shè)計(jì)過程中有較好的斷電策略。
09
設(shè)計(jì)約束
設(shè)計(jì)約束基本上是設(shè)計(jì)規(guī)則約束和優(yōu)化約束,。我們可以將這些約束考慮為模塊級(jí)約束,、頂層約束和芯片級(jí)約束。
設(shè)計(jì)規(guī)則約束(DRC):我們可以將這些約束視為芯片制造商的規(guī)則,,并應(yīng)予以滿足,。在物理設(shè)計(jì)過程中,,我們將進(jìn)行芯片制造商的所有DRC檢查規(guī)則是否滿足。Layout is clean表示沒有DRC違規(guī),。這些約束主要是:
Transition
Fanout
Capacitance
優(yōu)化約束:這些約束在設(shè)計(jì)和優(yōu)化階段使用,。這些約束主要是
Area
Speed
Power
主要使用Synopsys DC,我們將利用面積和速度約束,,并將在各個(gè)優(yōu)化階段嘗試優(yōu)化設(shè)計(jì),。
物理設(shè)計(jì)工具,如Synopsys IC Compiler,,利用面積,、速度、功率的約束來滿足最終的約束,,實(shí)現(xiàn)干凈的芯片布局,。
-----END----