2023年IC行業(yè)收藏數(shù)字后端面試問題_第1頁
2023年IC行業(yè)收藏數(shù)字后端面試問題_第2頁
2023年IC行業(yè)收藏數(shù)字后端面試問題_第3頁
2023年IC行業(yè)收藏數(shù)字后端面試問題_第4頁
2023年IC行業(yè)收藏數(shù)字后端面試問題_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

IC行業(yè)收藏:數(shù)字后端面試問題zz

(2023-05-0813:06:07)HYPERLINK"javascript:;"轉(zhuǎn)載▼分類:

HYPERLINK"http://blog.si/s/articlelist__1_1.html"\t"_blank"硬件

HYPERLINK""數(shù)字后端面試問題分類:

HYPERLINK""IC設計2023-08-3115:51

2251人閱讀

評論(0)

收藏

舉報HYPERLINK""\t"_blank"面試HYPERLINK""\t"_blank"transitionHYPERLINK""\t"_blank"delayHYPERLINK""pathHYPERLINK""\t"_blank"treeHYPERLINK""\t"_blank"function目錄(?)HYPERLINK""\o"展開"[+]1.1EETOP版主面試問題001)Whypowerstripesroutedinthetopmetallayers??為什么電源走線選用最上面的金屬層?由于頂層金屬通常比較厚,可以通過較大的電流1.高層更適合globalrouting.低層使用率比較高,用來做power的話會占用一些有用的資源,

比如stdcell

通常是m1Pin

。?2.EM能力不同樣,一般頂層是低層的2~3倍。更適合電源布線。?3.一般ip占用的層次都靠近下幾層,假如上層沒有被嚴禁routing的話,toplayer

可以穿越,低層是不也許的,并且高層對下層的noise影響也小很多。

002)WhydoyouusealternateroutingapproachHVH/VHV(Horizontal-Vertical-Horizontal/Vertical-Horizontal-Vertical)??為什么要使用橫豎交替的走線方式?

(感覺這個問題比較弱智,但是號稱是intel的面試問題,暈!我憧憬和向往的圣地啊!?。。榱斯?jié)省布線資源---重要因素橫豎的兩根線之間的耦合系數(shù)最小,信號干擾小003)Howtofixx-talkviolation??如何解決線間干擾?答案:

1)upsizevictimnetdriver,downsizeaggressornetdriver

2)increasewirespace,shielding,changelayer,changewirewidth

3)insertbutterinvictimnet

能答出以上3條的,在工作中已經(jīng)基本夠用,但是尚有兩個不常用到的,是AMD的一個大牛告訴我的。??4)把與victimnet相連的輸入端改成Hi-Vth的單元

5)改變信號的timingwindow。這個不易做到,但是也是解決方法

004)Whatareseveralfactorstoimprovepropagationdelayofstandardcell?

哪些因素可以影響標準單元的延遲?答案:

1)

PVT

2)inputtransition,

outputload

3)Vth

005)Whatwouldyoudoinordertonotusecertaincellsfromthelibrary??如何嚴禁使用庫里面的某些單元?禁用就用set_dont_use嚴禁修改就用set_dont_touch

006)Duringthesynthesis,whattypeofwireloadmodelareoftenused??做RTL綜合時,經(jīng)常使用的wireloadmodel有哪幾種?答案:

1)zerowireloadmodel?2)基于fanout的傳統(tǒng)

WLM?3)基于物理位置(距離)的wireloadmodel,在Cadence的RC中叫PLE,Synopsys叫DCUltraTopographical??

附加問題:?Whattypesofdelaymodelareusedindigitaldesign?(數(shù)字IC設計中有多少種類型的delaymodel)

?答案:?NLDM

CCS

ECSM

尚有一個現(xiàn)在基本不用了的—LDM

007)HowdelaysarecharacterizedusingWLM(WireLoadModel)?

使用一般的WLM

(不是zeroWLM,也不是按照物理位置算的DCT),DC是如何計算delay的?答案:?DC在計算延時的時候,net的rc就要根據(jù)所選取的wrieloadmodel來計算,

計算時和輸出的fanout決定?以smic13的smic13_wl10為例?wire_load("smic13_wl10"){?resistance:8.5e-8;

capacitance:1.5e-4;?area:0.7;?slope:66.667;?fanout_length(1,66.667);?根據(jù)fanout值,由fanout(1,66.667)可以得出互連線長度為66.667,然后根據(jù)resistance和capacitance計算出互連線電容為1.5e-4*66.667,互連線電阻為8.5e-8*66.667

,當然假如扇出值表中沒有,就會用到slope,例如扇出為3時,此時估算的互連線長度為1*66.667+(3-1)*slope,再計算出RC值,然后DC由此計算net的延時。

008)Therearesourceclockclka(create_clock),andgeneratedclockclkbbyclka.

Inpre-CTSnetlist,thereisnetworklatencyinclka,howthislatencypropagatestoclkb?

Inpost-CTSnetlist,Whatyouneedtodoforthisnetworklatency??

假設有兩個時鐘,原始為clka,生成的時鐘為clkb,?在沒有時鐘樹的網(wǎng)表中,clka的networklatency會自動傳遞到clkb上嗎?clkb的lat(yī)ency如何描述??在生成時鐘樹的網(wǎng)表中,如何解決networklatency?clkb的latency又如何描述?答案:?在pre-CTS時,clka的networklatency會自動傳到clkb上

在post-CTS時,可以把networklatency去掉,通過set_propagated_clock命令,讓工具根據(jù)clocktree去計算實際的clocknetworklatency

009)Therearesourceclockclka(creat(yī)e_clock),andgeneratedclockclkbbyclka.howdoyouspecifytheminCTSspecfile?Assumethereisrealtimingpat(yī)hbetweenclkaandclkb.?clkb是clka的生成時鐘,在CTS的spec文獻中如何定義這兩個時鐘?假設clka和clkb之間的FF有時序收斂的規(guī)定。?難度:3?

答案:?在CTS的spec文獻中定義

clka

root,clkb

throughpin,再加上那些應當有的skew,transition,insertiondelay等就好了,其它的事CTS會給你做

010)assumeinpre-CTSSDC,clockuncertaintyforsetupcontainsplljitter+clocktreeskew.Howdoyousetclockuncertaintyforhold,andhowtomodifyittopost-CTSsdc??假設在pre-CTS的時序約束中,setup的clockuncertainty是由PLLjitter和clocktreeskew兩部分組成,那么?1)pre-CTS的時序約束中,hold的clockuncertainty是什么?

2)post-CTS的時序約束中,setup和hold的clockuncertainty要做什么樣的修改??難度:2??答案:?1)

pre-CTS,

setup的clockuncertainty=PLLjitter+clocktreeskew?hold的clockuncertainty=clocktreeskew

2)

post-CTS,

setup的clockuncertainty=PLLjitter

hold的clockuncertainty=0

011)What(yī)arevarioustechniquestoresolveroutingcongestion?

請具體解釋解決走線阻塞的問題

難度:4?

提醒:?1)

routingcongestion發(fā)生在后端,前端一般不太考慮這個問題,需要后端自己去想辦法解決,但是解決的辦法不只在后端,也有一些方法需要前端的配合?2)

阻塞有多種情形,要分別討論,沒有一個統(tǒng)一的解決辦法??梢园汛蟛糠值淖枞闆r列舉出來,就已經(jīng)夠4級的水平啦?

答案:

1)阻塞在RAM(macro)之間:也許RAM之間的距離沒有計算對的,可以加大RAM之間的間距;扭轉(zhuǎn)RAM的方向,使得RAM的IOpin朝向更容易走線的那邊;假如是多個RAM共用地址或者數(shù)據(jù)線,盡量把RAM的地址數(shù)據(jù)pin對齊

2)阻塞出現(xiàn)在RAM和幫助單元交界的地方:在RAM周邊加一條halo(keepout);把RAM放在四周,盡量把中間留下的空間變成方形;在有阻塞的地方加一些由小的placementblockage組成的矩陣??3)阻塞出現(xiàn)在標準單元的某一塊:也可以加一些由小的placementblockage組成的矩陣;module/instancepadding;運用placementguide減少那塊地方的標準單元個數(shù);scanchainreordering也會改善一些阻塞;定義density上限;使用congestiondriven的placement,并且規(guī)定place之后做congestion優(yōu)化;在綜合是嚴禁使用那些pin太多太密集的標準單元(多半是那些復雜的組合邏輯單元);請前端使用RAM代替觸發(fā)器矩陣;請前端修改算法

4)應當盡量減少powerroute占有的資源,謹慎選擇powermesh使用的金屬層,VIA的大小等。在detailroute完畢之后,你假如已經(jīng)試了各種解決signalcongestion的方法,尚有少量DRC無法解決時,可以考慮切掉部分powermesh

012)Howdoyougetbetterskew/insertiondelaysinCTS(ClockTreeSynthesis)??如何得到更好的時鐘樹skew和insertiondelay

難度:4答案:

clockmesh

是一種方法。

?假如是用普通的CTS的方法,可以從下面幾個方面著手。不太也許一次就把CTS做得很好,要反復調(diào)試各種參數(shù),達成最佳效果。

1)合理的clockroot和throughpin。這個看似CTS會從SDC自動抓出來,但是并不一定是最佳的,特別是多個clock互相有重疊的leafpin時,要特別注意

2)不要用太大或者太小的clockbuf/inv

3)選用RC最小的金屬層。假如上面RC最小的金屬層已經(jīng)被占用,比如RC最小的top,top-1已經(jīng)不夠clocknet時,而top-2到layer2都是同樣的RC時,可以選用layer3/4。為什么不用更高層哪?由于這樣既照顧了layer2/1的pin,有不用太多的via到更高層

4)假如用doublewidthclockwire,可以適當增大clockbuf/inv的size?5)合理的maxfanout。有時clockbuf/inv的fanout可以超過max_fanout的限制?6)不要把skew設得太小

7)min_insertion_delay=0ns

8)合理的transitiontime,不要太小?9)使用postCTS的CTSopt?10)做clocktree時,就直接把clocknet走線完畢

013)Ifgivingtotalstandardcellgatecount,allmemorymacrolistincludingmemorytype,bitwidthanddepth,allothermacrowithrealsize,andIOtypeandtotalnumber.Howdoyouestimatethediesize???假如告訴你標準單元的門數(shù),所有內(nèi)存的類型和邏輯大小,其他IP的實際大小,以及IOcell的種類和數(shù)量,你如何估算整個芯片的面積??

難度:3?

答案:

IOneck

coreneck

一般稱作

IOlimited

corelimited,?IOlimited

:這個芯片的面積是由于IO個數(shù)限制(太多),而不得不做得那么大。core部分其實用不了那么大。這時面積計算就簡化為每邊IO個數(shù)的計算了。?Corelimited:芯片面積是有core部分的決定的,IO沒有那么多

?在Corelimited情況下,diesize的估算如下:

芯片面積

=core面積+powerring面積

+PADring面積

?core面積

=RAM面積

+

其他macro面積

+

標準單元面積

?RAM面積

=RAM

自身的面積

+RAMpowerring面積

+keepout面積

+mbist面積

RAM自身的面積可以通過memorycompiler或者查datasheet得到,

有些RAM

可以不要powerring。假如要的話,按照powermesh的寬度

xRAM的長寬

x2=

面積

keepout+mbist

的面積一般是RAM自身面積的10%??其他macro的面積,比如PLL,ADC,DAC等,直接把面積加起來,再留3~5%的keepout面積就好了

標準單元的面積=(預估的gatecountx

每個gate的面積)/utilization

utilization與使用的金屬層數(shù)和設計的用途有關,簡樸地計算方法是?5層metal:50%?6層metal:60%

7層metal:70%

8層metal:80%?以上不涉及power專用的金屬層

假如設計是多媒體芯片,一般可以增長3~5%utilizaion,假如是網(wǎng)絡芯片,則要減少3~5%

014)whatsandconsofusingbufferandinvtersinCTS?

CTS中使用buffer和inverter的優(yōu)缺陷是什么?答案:?使用BUF:

優(yōu)點:邏輯簡樸,便于post-CTS對時鐘樹的修改?缺陷:面積大,功耗大,insertiondelay大

使用INV:?優(yōu)點:面積小,功耗小,insertiondelay小,對時鐘dutycycle有利?缺陷:不易做時鐘樹的修改

015)Ifgivingtwophysicaldiesasbelow,andaskyouselectoneofthem.Howdoyoupickitup?explainthereasonplease.?(1)

width=2xheight?(2)height=2xwidth?假如從下面的兩個芯片中選一個給你做后端設計,你選哪個?請說明選擇的理由?

(1)

=2倍的長

(2)

=2倍的寬答案:

去除不太好用的layer(比如metal1)和power專用layer(比如RDL)后,比較剩下的layer可以提供的H和V的routingresource,假如H的多,就選寬的,反之,就選高的。

016)ifthedesignisIOlimited,howtoreducethediesize??由于IO太多而導致芯片面積過大,有什么方法減小面積?答案:?1)staggerIO,2重io

可以算一個方法

2)IO可以不全放到四邊,只要封裝沒問題就行啦

--flipchip

算第二個方法?3)假如有多套IOcell可以選擇,盡量選瘦的?4)調(diào)整芯片的長寬比

017)givingtheschematicanddelayinattachedpicture,calculatetheWCsetupslackatDpinofF2,andBCholdslackatDpinofF4

如圖所示電路,時鐘和延遲,計算到F2輸入端D的setupslack,到F4輸入端D的holdslack答案:?F2輸入端D的setupslack是(8+0.5-0.3)-(0.7+7.0)=0.5

F4輸入端D的holdslack是(0.2+0.2)-(0.2+0.2+0.1)=-0.1

018)usingthesamelogicasquestion#17,consideringOCVonclockpathonly,whichclockbufferwillbeusedforOCVderatingcalculationandwhichclockbufferwillnot(a.k.a(chǎn).CPPR)?

假如考慮clockpath的OCV,在第17題的電路里面,哪幾個時鐘BUF要被用來計算OCV的derating,哪幾個不用(又叫CPPR)?暫不考慮X-talk產(chǎn)生的incrementaldelay??難度:2?

答案:

C1C2不用算入derat(yī)ing(應當是也計算過,但是會通過CRPR填補),C3,C4,C5

要計算derating??附錄:

以下是幾個概念的通俗解釋。

?OCV:由于制造工藝的限制,同一芯片上不同位置的單元會有一點差異,這就是OCV?,F(xiàn)在尚有LOCV和AOCV,暫且不提。??derating:是計算OCV的一種簡樸方法,在某個單一條件下,比如WC或者BC,把指定path的延遲放大或者縮小一點,這個比率就是derating。注意,這里要強調(diào)的是某個單一條件,要么是WC,要么是BC,不能把WC和BC混在一起,再OCV,由于那樣太悲觀,事實上是很難發(fā)生的。

除了derating以外,在使用incrementalSDF的時候,也會對OCV發(fā)生作用。這是明天的問題,比較有難度。?

CPPR:一條path的startflop和endflop的時鐘途徑,有時會有一部分是重合的,重合的部分不應當算OCV(注意,這里假設沒有使用incrementalSDF),這就叫CPPR。

019)continuefromquestion#18.BecausethereisCPPR,theOCVderatingonclockpathC1andC2arecanceled.Nowgivingincrementaldelaycausedbyx-talkbetweenC1andC2.PleaseusethederatingtocalculatethedifferenceofclockpathdelayfromC1toC2(includingthenetbetweenthem)forWCsetupandBChold.?

接上面#18的問題繼續(xù)討論,由于有CPPR,在C1到C2那段clockpath上面的OCV被抵消掉了?,F(xiàn)在我們增長一個由x-talk引起的incremental延遲在C1到C2的那段net上,具體數(shù)字見圖。

問題:

對于C1到C2那段clockpath,?在計算WCsetup時,由于OCV引起的途徑延遲的差是多少?

在計算BChold時,由于OCV引起的途徑延遲的差是多少?

注意:

問題是那段clockpat(yī)h由于OCV引起的pathdelay的差,不是問pathdelay的絕對值

?難度:5??難度5的問題不是蓋的吧,?好,改為選擇題,

C1到C2一段的OCV延遲的差,?1)在計算WCsetup時,是?a)0?b)0.0005

c)0.00075

d)0.0245?

2)在計算BChold時,是?a)0?b)0.001?c)0.0015

d)0.0265

?

答案:??現(xiàn)在從incrementalSDF的格式說起,?(-0.01::0.015)(-0.015::0.01)?左邊括弧里的是risingtiming延遲,右邊的是fallingtiming

括弧里面的一對數(shù)字表達在這個條件下(WC或者BC)延遲的最大和最小值?由于是incremental延遲,要和基本延遲結(jié)合使用,所以,會有負數(shù)出現(xiàn)。?

再講OCV的使用incrementalSDF的方法,

OCV計算pat(yī)hdelay時挑選最困難的情況,

在WCsetup時,比如從F1到F2,

計算F1的clockpath,就選incrementalSDF里面的最大值0.015,?計算F2的clockpat(yī)h,就選最小值-0.01

由于有0.95derating在-clock,-early上,所以F2的clockpath要按比例縮小-0.01x0.95=-0.0095

所以C1到C2那段的OCV的差是0.015+0.0095=0.0245(選項d)

?在BChold時,比如congF3到F4,由于2個FF在同一個時鐘沿檢測holdtiming,

CPPR可以把incrementalSDF的延遲也抵消掉,?所以C1到C2那段的OCV的差是0

(選項a)??結(jié)論:

計算setup時,CPPR不抵消incrementalSDF

計算hold時,CPPR連incrementalSDF都可以抵消掉

020)ExplainECO(EngineeringChangeOrder)methodology.?說一下ECO的流程

難度:2??答案:?ECO有兩種,pre-maskECO和post-maskECO,它的分界線就是baselayertapeout之前和之后。??pre-maskECO的流程是?1)后端寫出網(wǎng)表,給前端?2)前端修改這個網(wǎng)表

(一般不再做綜合),可以使用任何標準單元(只要不是dont_use),交給后端?3)后端讀入ECO網(wǎng)表,和ECO之前的place和route?4)ECOplace&route,STA,

DRC/LVS??post-maskECO流程,假設你不想動baselayer?1)后端寫出網(wǎng)表,給前端

2)前端修改這個網(wǎng)表

(一般不再做綜合),只能使用sparecell或者象gatearray同樣的ECOcell

3)后端讀入ECO網(wǎng)表,和ECO之前的place和route?4)假如使用sparecell,不用ECOplace;假如用ECOcell,要將ECOcell放在以前帶gatearray功能的fillcell的位置上,再按照指定的layer做ECOroute

021)ctsWhatdoyouwriteinCTSspecfile??CTSspec

文獻中一般包含哪些內(nèi)容?

答案:?(以CadenceCTSspecfile

格式為例)

AutoCTSRootPinpad

Period

MaxDelay

MinDelay

MaxSkew

SinkMaxTran

BufMaxTran

Buffer

NoGatingNO/YES

DetailReportYES/NO?#SetDPinAsSyncNO/YES

SetIoPinAsSyncYES/NO?RouteClkNetYES/NO

PostOptYES/NO

OptAddBufferYES/NO?#RouteTypespecialRoute?#LeafRouteTyperegularRoute

ExcludedPin

leafpinleafport

hroughpinthroughport

?clkgroup?macromodelpin

22)congestionIftherearetoomanypinsofthelogiccellsinoneplacewithincore,whatkindofissueswouldyoufaceandhowwillyouresolve?假如在core里面某一塊有太多的標準單元的pin,有也許出現(xiàn)什么place&route的問題,如何解決?答案:1)嚴禁使用pin太多的cell2)減?。酰簦閘ization,方法很多3)看vh

可用資源,適當調(diào)整moudle

形狀

23)IfthereareDRC

(spacing,short),holdandsetupviolat(yī)ionsinthedesign,youdon'thaveenoughtimetofixallofthembeforetapeout,whichoneyouwillfixfirst,whichoneyoucanleaveitasis?Why?

假如設計中有DRC(特指spacing和short),hold和setup違反,tapeout之前,你已經(jīng)沒有時間去修改所有這些違反,那么你一方面修改哪個?哪個可以不管?請說明理由。

答案:1)short,spacing2)hold3)

假如沒有時間,setup可以忽略

24)SDC-multicyclehowtosetmulticyclepathconstraint?

如何設定multicyclepat(yī)h?提醒:在一般情況下,multicycle-setup

-hold要成對使用答案:clockdomain:fast-slow:set_multicycle_pathnum-setup-fromclk1-toclk2-start

set_multicycle_pathnum-1-hold-fromclk1-toclk2-startslow-fast:set_multicycle_pahtnum-setup-fromclk2-toclk1-end

set_multicycle_pathnum-1-hole-fromclk2-toclk1-end

dat(yī)apath:set_multicycle_pat(yī)hnum-setup-fromdata1-todata2set_multicycle_pathnum-1-hold-fromdata1-todata2

延伸問題:為什么-hold一般是-setup的n-1?假如只有-setup木有-hold會如何?

答案:hold

是對前后兩個flipflop在相同時鐘沿的檢查.設了n-1就是返回n-1個周期做hold的檢查,滿足了兩個flipflop在同一個時鐘沿。假如沒有-hold默認是檢查n前一個有效時鐘沿,假如n>=2,hold的檢查就不是在同一個時鐘效沿,對hold的規(guī)定就要多n-1個周期,那樣太苛刻了,一般時序無法收斂

25)SDChowaretimingconstraintsdeveloped,suchasclock,generat(yī)edclock,IOtiming,exception?Whatbackendteamcontributetoit?

一個設計的時序約束是怎么寫出來的?請大略說明時鐘,IOdelay,falsepat(yī)h,

multicyclepath是如何得到的?在完畢時序約束的過程中,后端可以給予什么樣的幫助?答案:

clock和generatedclock一般由設計spec決定。除非有些個別的localgeneratedclock可以有前端工程師自己添加?IOtiming與系統(tǒng)設計有關,應當參考/兼顧其他芯片的IO時序,由前端工程師作出?exception(falsepath,

multicyclepath)一般是由前端工程師在做設計時決定的后端可以提供clocknetworkdelay/skew,DRV,以及幫助檢查SDC是否合格

26)FLOWInregularbackendflowwithonlyonefunctionalmodeSDC,pleaseexplaintimingclosuremethodology/issue/fixesinpre-CTS,post-CTSandpost-Routestages.?

在只有一個functionSDC的普通后端流程中,對于pre-CTS,post-CTS

post-Route這三步,請分別講述它們在時序收斂上的方法,一般會碰到的問題和解決方法。

答案:

?pre-CTS時,使用idealclock,只fixsetup?post-CTS后,使用propagateclock,可以只fixsetup,檢查hold,但可以不fixhold?post-Route后,仍然使用propagat(yī)eclock,fixsetup和hold??具體碰到的問題和解決方法:?pre-CTS:

假如有setup,重在調(diào)整floorplan,buffertree結(jié)構(gòu)?Post-CTS:

假如有setup,重在調(diào)整clocktree,buffertree結(jié)構(gòu)或者size?Post-Route:

假如有setup/hold,微調(diào)clocktree/buffertree的size,routingchannel和圖層,實在不行,回到CTS

preCTS和postCTs重要就是差個clockskew的問題

尚有buildclock的方法,這個很重要,

很多inter-clockpathviolation都是由于沒有balance好導致的

所以你在postCTS后的timing有時候有很奇怪的結(jié)果,

postRoute重要是SI

影響,timing

會變差些,

可以做postroute

opt來修復回來,減少下crosstalk的影響,

27)FLOWContinuefrompreviousquestion,ifaddingonemoreDFTtimingconstraint,howdoyouhandlethemultipleSDC?UsingEncounterorICCcommands,pleaseexplainthedetailwhatyoudo.?

繼續(xù)#26的問題,假如再給一個DFT時序約束,在后端流程中,你如何解決多個SDC?假設使用Encounter或者ICC,請具體介紹如何設立

答案:簡樸地說就是使用MMMC。

在Encounter里面,要逐步定義,creat(yī)e_library_setcreate_op_condcreate_rc_cornercreate_delay_cornercreatePowerDomaincreat(yī)e_constraint_modecreate_analysis_viewset_default_viewset_timing_derate

對設計和SDC仔細分析后,也可以合并functionSDC和幾個DFTSDC,這個屬于難度5的做法

28)CTSTherearefunctionSDCwithmultipleclockdomainandscanSDCwithanindividualscanclock.Assumethosefunctionalclockareun-balanced,howdoyoubalancethescanclock?

假設一個設計的functionSDC中有多個時鐘,在scanmode下,另有一個單獨的scanclock,假如functional的各個時鐘樹之間是不平衡的,請問如何平衡那個scan時鐘?

答案:??假如CTS支持multi-mode,直接使用即可。?假如不支持,或者MMCTS效果不抱負,就是在CTSspec中,同時定義function

DFT

的時鐘,然后在scanclock里面,把MUX設為leavepin,再讓它們與functionclok到MUX的延遲做動態(tài)平衡

29)SDCTherearefunctionSDC,scanshift,scancapture,scanat-speed,mbistat-speed,andjtagSDC.ConsideringCPUruntime,youcan'taddallofthemintoMMMC.ThenwhichSDCyouwilladdintoMMMCsetup,andhold?

?在一個設計中有多個時序約束,象function,scanshift,scancapture,scanat(yī)-speed,mbistat-speed,

jtagSDC,為了減少運營時間,不能把它們都放入MMMC中,你選擇哪些放入MMMC的setup中,哪些放入MMMC的hold中?

?提醒:選擇的SDC要盡量的少,并且盡也許多地覆蓋其他沒有入選的SDC下的時序

答案:這個要從每個SDC的特點著手,個人經(jīng)驗,與設計有關,不敢保證使用與所有設計。1)scanshift:速度很慢,不用太緊張setup,但是hold很重要,一旦hold有問題,所有與scan有關的測試全泡湯2)scancapture:也是慢速,但是會有很多hold出來,特別是在不同的function時鐘之間3)scanat-speed:高速,解決了它的setup,其他DFT的setup基本上就連帶著解決了4)mbistat(yī)-speed:高速,但是涉及的邏輯不多5)jtag:慢速,很容易與functionSDC合并

所有結(jié)論是MMMCsetup:function+scanat(yī)-speedMMMCHold:function(+jtag)

+scanshift+scancapture

30)STAExplainSDFandSPEFbackannotationtimingcorrelationissue,

especiallyindifferentSTAtools?請解釋反標SDF和SPEF在時序分析時的差異,特別是用不同的STA工具檢查timing時答案:

使用SDF做時序分析,無論使用什么tools,其結(jié)果應當是同樣的,沒有差異

使用SPEF時,由于工具需要把SPEF換算成SDF,這時會產(chǎn)生差異。

所以建議使用一個你信得過的工具生成SDF,然后大家都使用這個SDF做STA和仿真

31)Thereare4powersuppliesinthedesign.VDD1/2/3aredifferentvoltage.VDD1isalwayson,butVDD2andVDD3canbeturnoffandon.VDD2toblockBandblockCdon'tswitchatsametime.Pl(wèi)easefillintheblankneedstobeaddedlevelshifterand/orisolationcell.IfyouthinkLevelshifter/isolationcellshouldbeaddedinnetABatBside,thenwriteB;ifyouthinkit'snotnecessary,writeX.

如圖,一個設計中有4個電源,VDD1/2/3的電壓各不相同,VDD1總是開著,其他會有開和關,并且到模塊B的VDD2和到模塊C的VDD2有各自分別的開關。請判斷在連接這4個模塊的8條net上,哪些需要levelshifter,哪些需要ioslationcell,把結(jié)果填入右邊的表中。

填法如下:假如你認為需要在netAB上加個levelshifter,加的位置在模塊B里面,就在netAB的右邊的第一列空格里寫B。假如什么都不加,就寫X

???????+31

32)Continuefrom#31question,thereisisolationcellonnetBAwithisolateenablepin.WhenshutdowntheblockB,willyouenableisolatepinfirst,orshutdownBfirst?WhatorderitisduringblockBpower-on?

接著上一題提問,在netBA上有一個isolationcell,isolationcell都會有一個isolateenable端,在模塊B關斷電源時,是先讓isolateenable端on哪,還是先關模塊B?反之,在開模塊B的電源時,誰先誰后?

難度:2

答案:先isolateon,再poweroff,反之先poweron,再isolateoff

33)Thereare1000clocksinadesign.Youguesstheconstraintcrosstheclocksisincomplete,andwanttohavealistofclockswhichhascrossclockdomainpath.Howdoyoufindwhetherthereispathbetween2clocks?

設計中有1000個clock,你懷疑跨時鐘的時序約束有問題,想找出哪些clock之間有realpath,請問如何找?

難度:2

答案:check_timing或者寫一個循環(huán),report_timing-clock_from-clock_to

34)WhatarevariousstatisticsavailableinIR-dropanalysisreports?IR-drop的分析報告里面都包含哪些內(nèi)容?

難度:2

答案:至少涉及各種mode下的static和dynamicIR-sropreport,其中drop的允許范圍可以參考廠家的意見functionmode下的EMreport和RJreport

35)Withrespecttoclockgat(yī)e,whatarevariousissuesyoufacedatvariousstagesinthephysicaldesignflow?在后端流程的每步中,如何解決門控時鐘?

難度:3

答案:

假如是用latch+and/or在組合成的clockgatingcell,比較麻煩,以后估計不多見了,暫不討論。TomPaul提到的問題都很讓人頭痛,特別是做CTS時,如何解決那些個latch的clkpin。Place時,latch和and/orcell一定要靠得很近。

一般使用ICGcell時,place:使用clockgatingawareplacement選項CTS:重要看工具的本領了,一般是希望在滿足setup的前提下,ICGcell要盡量靠近clockrootroute:除了clocknet優(yōu)先以外,不記得尚有什么可做的了

36)WhatisSSO?HowtocalculatetheSSOinpadringdesign?什么是SSO,設計PADring時,如何計算SSO?

難度:3

答案:

sso

,即simultaneousswitchingouputs,即允許同時切換的信號IO的數(shù)量。多個信號IO同時切換時,因更多電流流過padring,在pad電源IO的bondingwire及片外引線上的電感上,產(chǎn)生Ldi/dt的壓降。也即ssn,同時切換噪聲。重要是會引起地彈,即groundbounce。避免sso有很多方法。如增長供應pad用的電源IO數(shù)量,采用doublebonding或triplebonding,采用slewratecontrol的IO,避免把pad電源IO放在corner上(corner處bondingwire引線最長,L最大),等。重要還是采用增長pad用電源IO數(shù)量的辦法,計算方法一般foundry會提供,一般是給每個信號PAD一個DF值(還要根據(jù)bondingwire電感值做出選擇),把自己用的所有信號IO的DF值加在一起,能得出所需要的POWERPAD的數(shù)量。

37)Inbuildingthetimingconstraints,doyouneedtoconstrainallIOports?Canasingleporthavemulti-clocked?Howdoyousetdelaysforsuchports?Canaclockporthavemulti-clockdefinition?Howdoyoucreateclockforthisport?

寫時序約束時,是否需要對所有的IO端口加約束?一個信號端口是否可以被多個時鐘約束?應當如何對這種端口設立delay?一個時鐘端口是否可以定義多個時鐘?應當如何定義這些時鐘?

難度:2

答案:

CLOCKports

不需要加,其他都要可以,set_input_delay-add_delay可以,creat(yī)e_clock-add

38)

Whatispurposeoflockuplatchinscanchain?Doeslockuplat(yī)chalwaysfixtheproblemoffirstquestion?Doeslockuplatchclkpinconnecttotheclockofpredecessorfloporsuccessor?

scanchain中插入lockuplat(yī)ch的目的是什么?是不是lockuplatch總能達成那個目的?lockuplatch的clk端與前一個flop的clock相連,還是后一個flop的clock相連?

難度:3

答案:

一般scan

用的時鐘樹大部分是與function的共享,所以scanchain的前一段和后一段的clockinsertiondelay會不同樣,由于scanshift速度很慢,不太用顧及setup,但是要保證hold。

所以在前一個FF的clockinsertiondelay小,后一個大時,插入一個lockuplatch,使信號多保持半個周期,以滿足后一個FF的hold規(guī)定。

它們的時序關系是前FF時鐘延遲+1/2scan時鐘周期

>=

后FF時鐘延遲+

后FFhold規(guī)定

當后FF時鐘延遲太大時,lockuplatch也解決不了hold違反的問題

按此分析,lockuplatch的clk端是和前一個FF的時鐘相連的。

39)HowisscanDEFgenerated?

scanDEF是怎么生成的?

難度:2

答案:

在第一次做完scanchainstitch后,讓DFTtool輸出一個scandef

40)Whatarepros/consofusinglowVt,highVtcells?使用lowVt

highVtcell的優(yōu)缺陷?

難度:1

答案:

lvtcell速度快,耗電高,靜態(tài)電流大hvtcell速度慢,靜態(tài)電流小這是timing與power的tradeoff

41)Howdoyoureducestandby(leakage)power?Howdoyoureducedynamicpower?如何減少靜態(tài)功耗?如何減少動態(tài)功耗?

難度:3

答案:老陳認為,這是最邪惡的一種提問方法!貌似簡樸,其實覆蓋范圍很廣。leakagepower+dynamicpower

不就是totalpower

嗎?那么這個問題可以換一個說法:如何減少功耗?這樣可以從系統(tǒng)結(jié)構(gòu),算法,前端,一直說到后端,即可以羅列幾個大的方向,也可以具體到每個細節(jié),你也搞不清楚他想問的是那個方面。反過來說,假如他故意刁難你,就可以用這種問法,反正你答不全,屆時就說你水平不夠!

我們就集中在后端的部分(加一小部分前端),并且是細節(jié)討論樓上幾位說得都對,總結(jié)一下

靜態(tài)功耗:非關鍵途徑HVTcell

替換coarsegrain,

finegrain,

powershutdown減少decap_cell散熱降溫

動態(tài)功耗:降壓powerislandDVSF非關鍵途徑HVTcell

替換clockgatingmemorysplitsignalgatingtransitiontime

約束減小高速信號的走線長度

42)如何設計PADring?HowdoyoudesignPADring?如何設計PADring?

難度:3(又是一道比較邪惡的題目)

答案:

大的流程是:1)根據(jù)系統(tǒng)(其他芯片的)規(guī)定,芯片內(nèi)部的floorplan,決定信號PAD的位置2)計算出powerPAD的個數(shù),插入到信號PAD里面3)加其他的PAD,比如IOfiller,powercut,poweroncontrol,cornerPAD,ESD等

細節(jié)可以涉及:1)如何計算corepowerPAD:估算corepower,再加50%,算出電流,除以每個corepowerIO的最大電流,就是大體的PAD個數(shù)。插入到信號PADring后,還要再計算powerEM,防止一根電源線上的電流過大。2)如何計算IOpowerPAD:從信號IO的功耗算起,同時計算SSO,取2個結(jié)果里面較大的3)在什么地方插入powercut:不同的電壓core電壓和不同的IO電壓之間,powerisland之間,數(shù)字和模擬電源之間。4)poweroncontrolPAD,一段每個IOring需要一個5)ESD一般要加在每個不同的電源之間

43)Inhierarchicaldesignflow,explainblocklevelpinplacementflow?Whatareparameterstodecide?在hierarchical流程中,如何擬定block的pin(位置,金屬層)?

難度:3

答案:

在top-down流程中位置

:重要是看與該block相關的其它block(如ANALOG等)的interface,一般相關的PIN/PORT

要比較近,

同時也盡量不要使PIN被block內(nèi)部的

memory(一般放在block的boundary處)等擋到金屬層

:也要看相關的其它block的PIN/PORT所出的金屬層,盡量用一致的,同時不用M7.M8等一般用來走power

的金屬層,當然M1

也不用

encounter(ICC也應當是同樣的道理)用flatten的trialroute來決定blockpin的位置和金屬層。當然,你可以事先指定,也可以事后修改

在bottom-up流程中,重要是人為的規(guī)定了

44)What(yī)doesx-talkreportscontain?Howdoyouusethosereportstoimprovethedesign?分析X-talk后都輸出哪些報告和結(jié)果?如何運用這些結(jié)果改善設計?

難度:3

答案:

X-talk的分析結(jié)果中,至少要包含X-talkglitch和X-talkdelay

的報告和數(shù)據(jù),

可以把glitch報告讀回到P&Rtool里面,讓tool自動解決這些問題,也可以手動,具體請參考每日一題(003)

X-talkdelay就是incrementaldelay,反標回網(wǎng)表中以后,再做一次時序優(yōu)化

78)Caninputpinfloating(openning)?Canoutputfloating?why?

在設計中,單元的輸入端可以懸空嗎?輸出端哪?

難度:2

答案:

輸入端不行,輸出端可以輸入懸空會由于周邊電場的變化而引起cell內(nèi)部的翻轉(zhuǎn),繼而影響到其他的邏輯的對的性

77)WhatareRTL,Gate,MetalandFIBfixes?

難度:

3

答案:就是tapeout

后的修改,rtl

級別的修改,很大了gatelevel:要動baselayer,metalfix:只動metal,不動baseFIBfix:

focusionbeam,聚焦離子束,

常用于修改金屬連接

,就像動手術同樣

76)What(yī)isScan,memBIST,andlogicBIST?usuallywhatpercentageoftestcoverageofsuck-atrequested?what(yī)%ofat-speedtransitiontest?

什么是Scan,

memBIST和logicBIST?通常suck-at和at-speedtransition測試的coverage規(guī)定多高?

難度:1

答案:

跳過名詞解釋suck-atcoverage

一般要98%以上at-speedtransition

也許會規(guī)定到75%

75)What(yī)isaSoC(SystemOnChip),ASIC,"fullcustomchip",andanFPGA?givingexamples?

舉例說明什么是SoC,

ASIC"fullcustomchip"和

FPGA?

難度:

1

74)設計的哪些地方容易出現(xiàn)IR-drop的問題?inwhichareaitwillbeeasytohavedynamicIR-dropproblem?

設計的哪些地方容易出現(xiàn)IR-drop的問題?

難度:4

(不容易答全了)

答案:

從電源布線的角度講,那些遠離電源端的地方,電源布線少的地方,容易出現(xiàn)ir-drop的問題。比如wirebond芯片的中間,flipchip的四角,analogmacro的邊上(由于有些analog的上面不允許數(shù)字電源布線)

從swtichingactivity的角度講,togglerate高并且celldensiy高的地方IRdrop大,所以牢記不要為了balanceclocktree,把一堆clockbuffer擺在一起。假如是靜態(tài)IRdrop,頻率高的地方IRdrop大。那么對于動態(tài)IRdrop,一定是頻率高的地方IRdrop大嗎?

73)Howslowandfasttransitionatinputseffecttiming,

gatecount,

andpower?

輸入端信號的transition的快慢是如何影響APR之后的時序,門數(shù),和功耗的?

難度:3

答案:對timing的影響:slowtransition使得速度變慢,fasttransition使得速度變快對power的影響:slowtransition時功耗增大,fast時功耗減小對gatecount的影響:要分以下2種情況,(1)假如整體的transition規(guī)定較高,slowtransition會增長gatecount;(2)假如整體的transition規(guī)定不高,inputtransition對gatecount沒有大的影響

注意:inputtransition會逐級傳送到chip里面的,雖然效力在逐級減小

72)Iftheroutingcongestionexistsbetweentwomacros,thenwhatwillyoudo?

假如2個macro之間有走線擁堵的話,該如何解決?

難度:2

答案:

1)增大macro之間的間距2)在macro之間加non-bufferplacementblockage

加partialblockage控制channel里面的celldensity3)調(diào)查那些congestion是如何導致的,改變floorplan,引導工具不要從macro中間走線

71)Whatiscloningandbuffering?wherewewilluseit?

什么叫克隆和緩沖,什么情況下用到這2種技術?

難度:3

答案:cloning是在有多個sink的情況下,不改變邏輯功能把當前cell復制一份,分別驅(qū)動下一級的cell,這樣可以減少當前單元的負載,從而獲得更好的時序,有時是為了placement的考慮,譬如幾個sink的方向不同,缺陷是會增長上一級的負載buffering是在不改變信號的情況下對信號再生,提高它的驅(qū)動能力,通常是兩級反相器構(gòu)成,可以提高電路的運營速度,有時也用來當延時單元,特點是不會增長上一級的負載在多個sink的時序都比較緊的情況下適合用cloning,假如sink對timing的規(guī)定區(qū)別挺大的,可以用buffering,一部分時序較緊的由上一級直接驅(qū)動,剩下的可以加一級buffer后驅(qū)動

70)WhatisdifferencebetweenHFNbuffertreeandCTS?

大扇出net的buffertree和CTS在時序和做法上的區(qū)別

難度:3

答案:

buffertree和clocktree的共同點是它們都是解決highfanoutnet的問題,只但是規(guī)定不同而已。buffertree規(guī)定滿足maxtrans/fanout/cap,有時還要滿足setup/holdtimingclocktree不僅要滿足上面的所有規(guī)定,尚有skew,max/minlat(yī)ency的規(guī)定

做法上大不相同,一般,buffertree在時序優(yōu)化時自動就做了

(以后別再問怎么用CTS來做resettree了)clocktree有專門的命令,由于它的做法與datapath的做法太不同樣了

69)What(yī)isLEF?whatit'sdifferencewithGDS?

LEF是做什么用的?與GDS的區(qū)別是什么?

難度:2

答案:

LEF是一種簡化版的GDS,它只涉及size和metal層有關的信息,比如pin,blockage等,其他baselayer的東西只在GDS里面可以看到。同時LEF尚有一些GDS里面沒有的信息,比如,metal的R,C,routingandplacementrule等

LEF是一個文本文獻,可以修改編輯。GDS是二進制文獻,比較難修改

68)What(yī)corner-IOcontains?

corner-IO

里面有什么?

難度:2

答案:

corneriopad除了

能保證

兩邊的

連線連接,

尚有

1)

dummybondpad

為了減小封裝的難度和減小一些應力的效益

(不是必須的)因此cornerpad兩端最佳空一些距離

來bondwire,封裝,否則封裝有一定的難度,容易出問題,

2)

dummypoly

,

也是減小機械等效益,有一些ACtive,

SP區(qū)域,不知道干啥的

67)Whatismeantof9track,12trackstandardcells?

對標準單元所說的9track和12track是什么意思?(同一種工藝下)這兩種單元有什么區(qū)別?

難度:3

答案:

一般sitewidth就是metal2pitch,比如SMIC18

0.56x5.04,

0.56

就是metal2pitch,由于stdcellpin基本上都是由metal2連接出來的,

高度

一般都是

sitewidth的整數(shù)倍,比如7,

8,

9

,10

,12

倍,也就叫做7/8/9/10/12track單元,比如

0.56x5.04

的就是9track,

0.56x

3.92

的就是

7track,0.2x

2.4(SMIC65)

是12track,

0.2x1.8(TSMC65)

是9track,

區(qū)別重要是:1)帶不帶tap

(n/pwellpickup),但是也不是絕對的,比如SMIC18

sc-x9track帶tap,

sc-m

7track不帶tap,不帶tap的要用tapcell來偏置電位,但是比如

TSMC40nm的

12trackTCBNBWP12T,也不帶tap,

TSMC65

tcbn65bwp

9track

tap,

2)一般來說9track是

屬于標準size,

7track屬于小size,也就是低功耗一些,速度慢些,10、12track

是高速,

一般

metal1的rail做的更寬,管子仿佛沒啥區(qū)別,

rail做的寬自然能走更多的電流,自然速度就快了,

功耗大了,有的還添加metal2rail比如65nm以下的庫,

這樣速度更快了,

選幾個track

是由設計目的決定的,假如簡樸些

,就選9track標準帶tap的,

比較方便低功耗選7track,timing不夠就選12track的,

ARM的9track叫sage-x,

7track叫metro,

12track叫POP

(performanceoptimizat(yī)ionpackets),

66)detailexplainwhatisthedifferencebetweenLECandsimulation?

具體解釋形式驗證和仿真的異同

難度:2

答案:

形式驗證是為了驗證綜合前后或者layout前后,電路是否在數(shù)學模型上有改變吧。那綜合前后的形式驗證為例,用formality進行形式驗證時需要DC提供驗證節(jié)點,然后FM根據(jù)這些節(jié)點去驗證綜合前后的電路在數(shù)學邏輯功能上是否等價。形式驗證不需要任何激勵測試向量,他能保證邏輯上電路沒有發(fā)生變化。

仿真的話有分為layout前后的仿真,前仿真重要用于測試功能是否對的,需要測試激勵,后仿真重要用于測試是否滿足時序(當然也就測試了功能是否對的),同樣也需要激勵信號。仿真的目的是模擬電路實際工作狀態(tài),看輸入和輸出是否滿足設計規(guī)定。

假如要說區(qū)別的話,我個人感覺形式驗證就像數(shù)字電路中的analyse,分析電路功能,看是否滿足設計規(guī)定,而仿真的話更多的是在模擬實際電路工作情況。

65)

時鐘走線一般用那層金屬問題由szp9912收集提供,特此感謝!

Whichlayerisusedforclockroutingandwhy?

時鐘走線一般用那層金屬,為什么?

難度:3

答案:

這是一個可以挖得比較深的問題,讓我們先從各層metal的特性說起,假設共有8層金屬層最底層M1/2一般很薄,走線寬度最小,RC一般最大,并且會被cell的pin占去很多資源,肯定不適合做clockwire。最高1/2層M7/8一般很厚,走線寬度大,RC很小,適合大驅(qū)動的clockbuffer走線。假如是用銅做金屬層的話,最上面還會有一層極厚的鋁金屬層,一般不用做信號線的走線。中間幾層M3/4/5/6的厚度,寬度都適中,假如使用doublewidth,doublespace的走線的話,RC也比較小,也可以做clockwire。

假如考慮到VIA增長的電阻,一味地使用最高層不一定會得到最快的clocktree。但是一般信號走線大多是先用下層的金屬,所以建議根據(jù)各層的RC和整個設計的congestion來選擇clockwire的層數(shù)。

假如最高1/2層M7/8的RC遠小于中間幾層M3/4/5/6的RC,就選最高1/2層假如最高1/2層M7/8的RC與中間幾層M3/4/5/6的RC相差不大,在很擁堵時,還是選最高1/2層;不太擁堵時,選中間幾層里面的高層M5/6;主線沒有擁堵時,用中間層里面的底層M3/4

64)本帖資料由

szp9912

收集提供,特此感謝,

WhyclockisnotsynthesizedinDC?whyhighfanoutnet,suchasreset,isnotsynthesizedinDC?

為什么綜合時,不動clock?為什么不動某些大扇出的net,比如reset?

難度:2

答案:

由于clocktree與leafpin的物理位置密切相關,DC沒有這些個信息,做了也不準,所以就不做了。也是由于后端知道DC給的clcoktree主線不準,所以一旦碰到,就直接刪除

至于resettree,是可做可不做,假如reset的時序很難的話,還是建議做一下,看看DC時是否可以滿足時序,假如DC都滿足不了,估計后端也很難做到,趁早想別的方案

63)Howtocalculategatecount?如何計算gatecount?

難度:1

答案:

以前比較確切地定義是4個transistor為一個gate,計算整個設計的gatecount時,應當先算出(所有standardcell的總面積),再除以(4個transistor的面積)。注意,各種RAM,PLL,ADC,DAC等macro不能算在總面積里

現(xiàn)在人們?yōu)榱撕啒?,就把一倍?qū)動能力的,2輸入的nandcell的面積認為一個gat(yī)e的面積,一個nandcell與4個transistor的面積是有一點差別的,但是你一般不容易搞到準確的4個transistor的面積

所以現(xiàn)在的standardcell的gatecount就變成(所有standardcell的總面積),再除以(一倍驅(qū)動能力的,2輸入的nandcell的面積)

62)ThetimingreportiscreatedinPTformat.The

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論