天天看點

數字IC校招100問 附解答(完結撒花6666)

數字IC校招100問 附解答(完結撒花6666)

1.請說一下數字後端主要做了什麼事情?(概述性,難度1)

1.FloorPlan 2.Place 3.CTS 4.routing 5.ECO 6.chip finish process 7.physical verfication

netlist ——>GDSII

~

5.手修,logic ECO 和 physical ECO。logic是指netlist變更了。physical是指fix timing和drc。

6:插入mental fill cell

7:主要完成timing,power signoff,LVS和DRC。

~

2. 請簡單描述一下數字後端的基本流程?(概述性,難度1)

~

如上

3. 請說一下CMOS內建電路工藝的大緻步驟是什麼?(工藝,難度2)

https://zhuanlan.zhihu.com/p/339876176

第一步:有源區的形成。在p襯底上做p外延,再生長一層SiO2,使用光刻膠(PR),用緻密SiO2分隔出左右兩個有源區。

~

數字IC校招100問 附解答(完結撒花6666)
數字IC校招100問 附解答(完結撒花6666)

第二步:N阱和P阱的形成。N阱注入P,P阱注入B。都分3次注入,能量和劑量由低到高,稱為倒置阱。

數字IC校招100問 附解答(完結撒花6666)
數字IC校招100問 附解答(完結撒花6666)

第三步:積澱一層多晶矽作為栅極材料,光刻形成栅極,最後在表面形成氧化薄層,用于隔離多晶矽和後續Si3N4形成。

數字IC校招100問 附解答(完結撒花6666)
數字IC校招100問 附解答(完結撒花6666)
數字IC校招100問 附解答(完結撒花6666)

第四步:輕摻雜形成源和漏。通過光刻對P阱進行離子注入,注入AS元素;N阱注入B原子。

數字IC校招100問 附解答(完結撒花6666)
數字IC校招100問 附解答(完結撒花6666)

第五步:自對準工藝。通過化學氣相沉積(CVD)沉積一層Si3N4.通過離子刻蝕,形成S、D區注入的阻擋牆(Spacer),對輕摻雜區域進行快速熱退火(RTA )。

熱退火目的:消除注入損傷,激活注入元素。

數字IC校招100問 附解答(完結撒花6666)
數字IC校招100問 附解答(完結撒花6666)

第六步:源漏制作。光刻在NMOS區域注入AS,形成源漏;在PMOS區域注入BF2+,形成Pmos區域的源漏。快速熱退火,激活注入元素,消除注入損傷。刻蝕表面的SiO2,将cmos的源,漏,栅暴露出來。

數字IC校招100問 附解答(完結撒花6666)
數字IC校招100問 附解答(完結撒花6666)
數字IC校招100問 附解答(完結撒花6666)
數字IC校招100問 附解答(完結撒花6666)

第七步:金屬層的制造和金屬層間通孔(VIA由金屬鎢制造)。

4.請說一下memory的擺放規則?(floorplan,難度2)

~

a.memory,Ip,io,standard cell的orientation poly的方向一緻。

數字IC校招100問 附解答(完結撒花6666)

b.通過data flow或者create_plan_group的邏輯關系擺放。

c.memory的output pin盡量靠近core logic區域,節約繞線資源和timing。

d.memory之間空間不能過大也不能過小,過大浪費資源,不能太小,如果有标準單元放置的話,要保證有power strap。

e.放置在晶片的boundary區域,原因之一hard macro的高度可能會阻礙到标準單元的power strip。meomory和Io macro其它的hard macro之間存在信号傳輸,考慮不同的信号傳輸關系。

5.welltap, endcap cell的作用,以及如何擺放?(place,難度2)

~

welltap:n-well就會連接配接到VDD, substrate就會連接配接到GND。我們對于一個NWELL(也就是說一行)我們僅需要一個連接配接到VDD,同理substrate也是,如果說我們把這些去掉的話,那麼我們就會省下來巨大的面積。是以就會有 “tap-less” libraries,但是由于僅有一個tap會由于NWEL和substrate的阻值而導緻latch-up的出現,故而我們會在一定距離内添加well tap單元來避免latch-up效應。

數字IC校招100問 附解答(完結撒花6666)

endcap cell:一般是擺放在Macro周圍和每條row的首尾兩端,主要目的是確定Macro周圍的環境和core logic的環境是一樣的。

~

6. Place之後有timing violation,應該怎麼辦?(place,難度3)

各個階段如何fix setup

7.CTS的目的是什麼?怎麼樣是一個合格的clock tree? (CTS,難度3)

CTS的目的就是為了減小global skew。

時鐘樹不需要做到絕對的平衡,如useful skew,更關注于設計的時序

除了PPA(performance、power、area)之外,時鐘樹還應該robust。即所謂設計中的時鐘樹在任意設計需求的corner下都能滿足時序。這點對提高良率的意義重大。

考慮OCV等因素後,對稱使得時鐘樹更加強壯。到達每個Reg的時鐘路徑拓撲結構、級數和Inverter/Buf都一樣是最理想的。(不考慮usefull skew的需求) 使用專用的、較少的Inverter/Buf也可以降低OCV對時鐘樹魯棒性的影響

8.為什麼時鐘樹需要平衡?不平衡的時鐘樹有什麼缺點?(CTS,難度2)

對于快速設計,時鐘樹的skew和latency影響時序收斂、功耗和面積。

balance 可以使得timing收斂簡單些

對于慢速設計,時鐘樹的skew和latency對時序收斂的影響重要性下降。但是對于skew大的時鐘樹,工具修複時序會增加更多的面積和功耗。創造一個skew小的時鐘樹,雖然看似在時鐘樹上多用了buffer,但是會減少在修複時序問題時需要的buffer 是以,一個balance對于時序收斂、面積和功耗都是有好處的。

9.什麼是latch up效應? (工藝,難度2)

檢視闩鎖效應文章。

10.晶片功耗主要包含哪些内容?(power,難度4)

~

總結ing等待整理。

11. 請寫一段腳本,統計下圖中人名出現的次數,并按從多到少次數排列,語言任意(腳本,難度3)

使用perl實作統計人名次數。

Tom

Jack

Brian

Brian

Jack

Jack

~

數字IC校招100問 附解答(完結撒花6666)

思路:

1.以句柄形式讀入檔案每一行

2.對每一行進行正則比對

3.對比對到名字,将它的value+1

4.周遊hash數組,輸出結果

數字IC校招100問 附解答(完結撒花6666)
  1. 請說一下标準單元的延遲與哪些因素有關?(時序,難度2)

    ~

    input transition

    output load

    PVT

  2. 請說一下為什麼需要對時序器件進行setup,hold檢查?(時序,難度2)

    否則會出現亞穩态

    14.解釋一下什麼是transition?(時序,難度2)

    ~

    分為rise和fall transition,一般信号從10%到90%需要的時間

  3. 什麼是RC寄生參數,為什麼要提取RC寄生參數?(時序,難度2)

    ~

    器件和導線間會有寄生參數,利用RC寄生參數刻畫寄生的影響。

  4. PVT全稱是什麼?如何影響我們的晶片?(時序,難度2)

    工藝參數

    電壓

    溫度

    全局工藝參數,FF,TT,SS

    電壓,存在最佳能耗點

    溫度,存在反偏效應,溫度越低半導體速度越快,但存在反偏。

    17.timing path根據路徑,一般可以劃分為哪幾種?(時序,難度2)

    ~

    4種

    input到DFF

    DFF到DFF

    DFF到output

    input到output

    -18. 綜合主要做了什麼事情?說一下具體綜合的流程 (綜合,難度3)

    将RTL變成netlist過程

    主要分為3個階段

    Gtech

    optimize

    map

    19.工具在優化timing階段,主要會修複哪些内容? (place, 難度2)

    hold setup violation

    20.請畫一個CMOS反相器的結構圖(工藝,難度1)

    ~

    電路圖,版圖,截面圖

    -21. 什麼是clock skew?如何計算的?(CTS,難度2)

    ~

    skew主要指時鐘到達不同DFF時出現時序偏差,這個偏差叫作skew

    global skew和local skew。global skew指最大最小。local指,有關聯路徑的skew,一般使用local skew

-22. 請寫一下setup, hold slack的計算公式 (時序,難度2)

setup slack = Trequirement - Tarrive

hold slcak = Tarrive - Trequirement

23.create_clock和create_generate_clock有什麼差別?(時序,難度3)

create_clock生成的是master clock,create_generate_clock是由master clock生成的,比如通過一個分頻器,不會單獨産生一個時鐘,連接配接到master clock。

24.STA的基本概念,與仿真相比,它的優勢是什麼?(時序,難度1)

靜态時序分析。

1.100%覆寫率

2.速度快

3.考慮串擾,工藝偏差的影響

25.STA在什麼階段做,各個階段的STA都有什麼差別? (時序,難度3)

DC place routing都需要時序分析。

主要差別是CTS之前使用的都是虛拟時鐘,SDC定義的時鐘

各個階段的時序分析model也不一樣

比如DC使用的是線負載模型,routing之後就是實際的布線資料。

26.LEF檔案的主要作用,它和GDSII有什麼差別?(資料庫,難度2)

~

LEF隻描述單元的底層細節,比如端口位置,層定義和通孔定義。隻用于布局布線。GDSII擁有單元的全部資訊,但由于過大,不利于工具的布局布線。

-27. 了解Finfet工藝麼,請簡單畫一下一個finfet半導體結構示意圖(工藝,難度2)

了解

MosFET/FinFET/GAFET ——鳍式半導體還能走多遠

28.列舉你知道的幾種修複setup timing violation的方法,該優先使用哪一種?(時序,難度4)

調整size,更換門檻值電壓,修複DRC(transition和load會影響延遲),流水線,useful skew

29.timing signoff報告主要有哪些内容?(時序,難度4)

1.setup hold violation

2.DRC檢查,input transition,output load

3.corner是否全

4.sdc檢查,後仿作為最後檢查sdc的過程,比如false path

5.噪聲

30.spef檔案裡面記錄了什麼内容?如何得到?(時序,難度2)

互連線寄生參數,使用starRC

31.時鐘樹走線和普通信号線有什麼差別? (CTS,難度2)

double width和double space,高層走線

32.為什麼memory需要靠邊擺放?(floorplan,難度3)

~

因為和外界的資料互動比較密切

33. 靜态功耗的概念,如何降低?請列舉一些你知道的方法 (power,難度4)

主要是洩露功耗

1.提高門檻值電壓

2.電源門控

3.體偏置。進而改變門檻值電壓,如果正向體偏置就會提高性能。

34.晶片為什麼需要采用縱橫交錯的走線方式? (route,難度2)

~

減少crosstalk

  1. 列舉一下你知道的修複hold timing violation的方法?(時序,難度3)

    ~

    1.單元面積

    2.單元尺寸

    3.流水線

  2. 我們在修複hold violation時,buffer應該加在什麼位置?(時序,難度3)

    組合邏輯,DFF間路徑

    37.列舉幾個常見的drc種類?(route,難度2)

    滿足良率的同一金屬層或者不同金屬層的幾何尺寸的最小值的集合,就是設計規則檢查。

    版圖和lef檔案進行比較(lef由單元lef和技術lef,這邊技術lef定義設計規則,單元lef)

38.CTS之前是如何計算clock path上的延遲的? (CTS,難度2)

根據sdc中clock的uncertainty(包含skew),CTS之後使用實際的CTS計算skew。

39.正規表達式的比對1個以及1個以上的,該如何比對? (腳本,難度1)

~

*:0個或者1個

+:1個及以上

?:0個或者1個

40. 請說一下drv的概念,主要包含哪些内容?(時序,難度2)

~與37題一樣?

41. 介紹一下CPPR的概念,為什麼需要用到CPPR?(時序,難度3)

共同路徑悲觀消除。在OCV時需要乘以一個derate系數,共同路徑的部分需要移除悲觀量。

42.說一下Calibre檢查drc的具體流程?(PV,難度4)

主要輸入兩個檔案。一個是得到的版圖GDSII檔案和工藝廠商提供的設計規則檔案。工具通過标出違反設計規則的位置,進而手工修改違規。

43.什麼是天線效應(antenna effect)? 說幾種你知道的修複方法?(route,難度4)

制造過程中一些遊離電荷受到懸空導線的吸引。

插入二極管,跨層走線

44.動态功耗主要包含哪些部分,如何降低?請列舉一些你知道的方法 (power,難度4)

包含短路功耗和開關功耗

1.降低電壓

2.DVFS

3.多電壓域

4.降低負載

5.降低時鐘頻率

45.你在學校裡接觸過哪種工藝?說一說這種工藝有什麼特點?(工藝,難度3)

~

45nmFreePDK

TSMC28nm

46. 請簡單自我介紹一下?(湊數,難度1)

~

47. 請列舉一下導入後端設計需要哪些檔案?(資料庫,難度1)

~

netlist

工藝庫(邏輯庫db lib 實體庫lef)

工藝檔案

TLU+

48. 請列舉幾個你知道的sdc指令,并說出它的用途?(時序,難度2)

create_clock

create_generated_clock

set_driving

set_load

set_input_delay

set_output_delay

set_case_analysis

set_false_path

set_multicycle_path

set_max_fanout

set_max_transition

set_min_capacitance

set_max_capacitance

49.修複timing violation時,首先應該關注什麼,有哪些需要注意的點?(時序,難度5)

~

1.邏輯

2.floorplan

3.時序路徑的延遲,cell size,門檻值電壓,buffer

4.工具層次,group的weight

5.線延遲,插buffer

  1. CTS之前需要修複hold violation麼,為什麼?(CTS,難度2)

    不需要。1.沒有實際的CTS 2.很好修,插buffer

51.在修複hold violation時,delay cell和buffer該優先使用哪一種,各有什麼優缺點?(時序,難度3)

~

特點:delay cell延遲比較大,buffer驅動能力強

較大的violation使用delay cell。

  1. clock latency的概念,什麼情況下需要設定? (時序,難度3)

    source latency和network latency。一般不需要設定。

    1.不同clock source latency不同,考慮時序,需要設定。

    2.不同時鐘network latency (insert delay cell)不同時,需要考慮時序,也需要設定。

53.low vt cell和high vt cell有什麼差別,各有什麼優缺點?(工藝,難度3)

低門檻值電壓開關速度快,功耗高

高門檻值電壓卡關速度慢,功耗低

54.如何判斷floorplan擺放品質的好壞?(floorplan,難度5)

1.memory要放在邊緣,和外界資料互動

2.SRAM位址線對齊

3.有關聯的Macro放在一起

55.電源走線為什麼需要使用高層線?(power,難度2)

1.高層金屬更厚,有更強的EM能力

2.對低層信号線幹擾更小

3.不會占用低層的信号線

56.請介紹幾種修複drc的方法?(route,難度4)

~

1.工具自動修,在DRC違規的地方添加routing guide,做iteration routing

2.工具抓取出DRC違例的地方,删除這些net,做routing eco。

  1. 什麼是crosstalk? 為什麼會産生crosstalk? 會帶來什麼後果?(時序,難度4)

    串擾。信号線之間的幹擾。産生glitch和transition time的變化。transition和delay有關系,同向transition變小,反向transition變大。glitch會産生邏輯錯誤。

58.寫過sdc麼,sdc檔案裡,主要包含哪些内容,我們該如何限制一個設計?(時序,難度5)

基礎知識如上。如何限制?

59.請說一下OCV的概念,為什麼需要用到OCV,什麼階段需要OCV,如何實作?(時序,難度5)

~

片上工藝偏差,derate

  1. Def檔案的作用是什麼?(資料庫,難度1)

    ~

    器件的位置關系和時序限制

  2. 我們需要在什麼階段做formal驗證?(形式驗證,難度2)

    DC,floorplan,routing

62.綜合的時候,我們是怎麼計算net的delay?(綜合,難度2)

根據線負載模型,由扇出計算出線長,再乘以機關線長上的電阻和電容,計算RC。利用Elmore 模型計算delay。

63.為什麼選擇我們公司?(湊數,難度1)

~

64. timing signoff需要讀入哪些檔案?說一下具體的流程(時序,難度4)

~

netlist,STA庫檔案,sdc,spef

  1. core裡面是如何給标準單元供電的?(power,難度2)

    在floorplan階段strap和ring,然後通過rail連接配接到标準單元上

66.sdf檔案裡面記錄了什麼内容?如何得到?(時序,難度3)

把器件延時和線延時儲存下來。

67.在生成clock tree時,我們應該使用invertor還是buffer, 為什麼?(CTS,難度2)

1.選擇inv,上升沿和下降沿對稱

2.功耗低

3.面積小

68.你知道設定的使用率是如何計算的嗎,你的設計使用率是多少?(floorplan,難度3)

~

使用率utilization = (标準單元面積+macro面積)/ module的面積

在陳濤後端100題裡有提及到相關的概念。

不同金屬的utilization不一樣,肯定和工藝以及晶片類型也有關系,整體來說utilization越大,對于晶片的congestion是更加不利的。

5層金屬:50%

6層金屬:60%

7層金屬:70%

8層金屬:80%

多媒體晶片使用率可以增加3%到5%,網絡晶片減少3%到5%

  1. 碰到routing congestion該怎麼辦?(route,難度4)

    1.floorplan的問題

    2.調整ultilization(降低)

    3.高層布線

70.談談整個晶片設計的大概流程(概述性,難度1)

從架構定義——前端設計——後端設計——生産制造——封裝——測試

71.從後端角度,對于晶片設計的要做哪些檢查?(概述性,難度4)

~

LVS,DRC,timing signoff,功耗,功能,性能(頻率),面積

  1. clock時鐘一般采用哪層金屬走線?(CTS,難度2)

    較高層的走線,一般是5,6,7;double space和double width

73.溫度對标準單元延遲的影響?(時序,難度1)

注意存在反偏效應,之前的部落格有說。類似于耐克函數,主要是内部遷移率和門檻值電壓誰占主導地位。

74.下面,我們用英語對話一下(湊數,難度2)

75.rc corner有哪幾種?各有什麼特點? (時序,難度2)

1.Cworst

2.Cbest

3.RCworst

4.RCbest

特點:setup 考慮Cworst和RCworst;hold考慮四個角都要滿足。

double pattern還有着雙重的要求。

數字IC校招100問 附解答(完結撒花6666)

76.為什麼我們需要優先修複transition和cap? (時序,難度2)

~

因為這樣單元庫的資料才足夠準。

提高晶片的良率

  1. 我們一般采用哪些驅動能力的cell去生長時鐘樹?為什麼?(CTS,難度2)

    invert

78.route之前的連線和後面最終的連線有什麼差別? (route,難度3)

~

時鐘信和電源線

  1. 請說出幾個你用到的後端工具,他們分别用來做什麼?(概述性,難度1)

    ~ICC,PT

  2. 我們為什麼要對net設定fanout限制? (時序,難度2)

    fanout太大驅動不了

    庫不準

81.為什麼采用double width, double spacing的時鐘樹走線方式?(CTS,難度3)

~

EM,fanout較大,電流大。

  1. setup和hold violation該優先修複哪種,為什麼?(時序,難度3)

    ~

    優先修複setup。hold比較好修。并且setup決定我們的性能

  2. DFF哪些pin需要做timing檢查?(時序,難度3)

    第二個鎖存器的Q端口

84.clock uncertainty主要包含哪些内容?你設定了多少?(時序,難度3)

~

CTS之前

setup:clock uncertainty = jitter + skew + margin

hold:clock uncertainty = skew + margin

CTS之後

setup:clock uncertainty = jitter + skew + margin

hold:clock uncertainty = skew + margin

主要原因是setup是在不同時間沿分析,hold是在同一時鐘沿分析。

  1. 什麼是IR drop? 有IR drop問題應該怎麼辦?(power, 難度4)

    壓降。分為靜态和動态。靜态是由于電阻分壓,動态是由于門同時打開,局部電流過大。

    靜态主要考慮power plan增大strap密度。高層走線。

    動态需要從邏輯角度進行優化,還有就是加入去耦電容。

86.calibre裡面檢查drc和PR工具裡面的drc有什麼差別?(PV,難度3)

~pr階段調用的是簡化版的drc,至于為什麼不用精确版的drc這個問題來說,就相當于為什麼在pr階段沒有使用PT是一個道理。

  1. 什麼是LVS?出現LVS violation時應該怎麼辦?(PV,難度4)

    ~

    版圖原理圖一緻性檢查,又稱電氣規則檢查。

    主要步驟将RTL抽取成spice網表,然後比對。

    比對單元數量,單元個數,節點個數等。

  2. latch和D觸發器有什麼差別?(工藝,難度1)

    ~

    兩個latch組成觸發器

  3. 你在學校做過後端設計項目麼,有多少萬門?(概述性,難度1)

90.blockage的作用,應該在什麼地方添加?(floorplan,難度3)

place。hard,soft,partial

91.為什麼要使用實體綜合,它的好處是什麼?(綜合,難度3)

·dc的好處?滿足限制條件下,進行邏輯優化和單元庫映射。

  1. 你做的這個後端項目裡面時鐘樹是怎麼生長的?(CTS,難度4)

    時鐘樹類型

93.請說一下clock gate cell的結構 (CTS,難度3)

~

時鐘前面和一個latch加一個與門,latch主要是消除毛刺

  1. 如何把clock skew減小?列舉一些你知道的方法?(CTS,難度5)

    插入inv

95.LEC主要檢查哪些内容,為什麼要做? (形式驗證,難度3)

以DC後的RTL和netlist為例。讀入netlist,RTL和svf判斷,根據邏輯錐和svf判斷是否存在錯誤

96.為什麼晶片需要在多個view下signoff? (時序,難度3)

~

不同場景和不同的模式。

場景指比如PVT條件,比如手機晶片工作溫度。

模式指手機不同工作模式,和DFT的模式(scan shifter等)

  1. 說一下檢查LVS的具體流程?(PV,難度3)

    ~

    版圖原理圖一緻性檢查

    将版圖抽取出spice模型和初始netlist進行對比。

  2. GBA和PBA分析timing有什麼差別?(時序,難度3)

    基于路徑和基于圖

99.什麼是EM?有EM問題應該怎麼辦?(power,難度3)

電遷移。金屬原子移動。

1.減小fanout

2.增加線的width

3.單元驅動能力過強

4.連線過長

100.綜合的限制和後端的限制有什麼差別?(綜合,難度3)

綜合時,模型粗略,過約SDC,時鐘頻率調高。

CTS之前沒有真實的時鐘樹,uncertainty加大

PR工具和signoff工具一緻性問題,margin也會有差別