數字IC設計工程師筆試面試經典100題

1:什麼是同步邏輯和非同步邏輯?

同步邏輯是時鐘之間有固定的因果關係。非同步邏輯是各時鐘之間沒有固定的因果關係。

同步時序邏輯電路的特點:各觸發器的時鐘端全部連接在一起,並接在系統時鐘端,只有當時鐘脈衝到來時,電路的狀態才能改變。改變后的狀態將一直保持到下一個時鐘脈衝的到來,此時無論外部輸入 x 有無變化,狀態表中的每個狀態都是穩定的。

非同步時序邏輯電路的特點:電路中除可以使用帶時鐘的觸發器外,還可以使用不帶時鐘的觸發器和延遲元件作為存儲元件,電路中沒有統一的時鐘,電路狀態的改變由外部輸入的變化直接引起。

2:同步電路和非同步電路的區別:

同步電路:存儲電路中所有觸發器的時鐘輸入端都接同一個時鐘脈衝源,因而所有觸發器的狀態的變化都與所加的時鐘脈衝信號同步。

Advertisements

非同步電路:電路沒有統一的時鐘,有些觸發器的時鐘輸入端與時鐘脈衝源相連,只有這些觸發器的狀態變化與時鐘脈衝同步,而其他的觸發器的狀態變化不與時鐘脈衝同步。

3:時序設計的實質:

時序設計的實質就是滿足每一個觸發器的建立/保持時間的要求。

4:建立時間與保持時間的概念?

建立時間:觸發器在時鐘上升沿到來之前,其數據輸入端的數據必須保持不變的最小時間。

保持時間:觸發器在時鐘上升沿到來之後,其數據輸入端的數據必須保持不變的最小時間。

5:為什麼觸發器要滿足建立時間和保持時間?

因為觸發器內部數據的形成是需要一定的時間的,如果不滿足建立和保持時間,觸發器將進入亞穩態,進入亞穩態后觸發器的輸出將不穩定,在0和1之間變化,這時需要經過一個恢復時間,其輸出才能穩定,但穩定后的值並不一定是你的輸入值。這就是為什麼要用兩級觸發器來同步非同步輸入信號。這樣做可以防止由於非同步輸入信號對於本級時鐘可能不滿足建立保持時間而使本級觸發器產生的亞穩態傳播到後面邏輯中,導致亞穩態的傳播。

Advertisements

(比較容易理解的方式)換個方式理解:需要建立時間是因為觸發器的D端像一個鎖存器在接受數據,為了穩定的設置前級門的狀態需要一段穩定時間;需要保持時間是因為在時鐘沿到來之後,觸發器要通過反饋來鎖存狀態,從后級門傳到前級門需要時間。

6:什麼是亞穩態?為什麼兩級觸發器可以防止亞穩態傳播?

這也是一個非同步電路同步化的問題。亞穩態是指觸發器無法在某個規定的時間段內到達一個可以確認的狀態。使用兩級觸發器來使非同步電路同步化的電路其實叫做「一位同步器」,他只能用來對一位非同步信號進行同步。兩級觸發器可防止亞穩態傳播的原理:假設第一級觸發器的輸入不滿足其建立保持時間,它在第一個脈衝沿到來后輸出的數據就為亞穩態,那麼在下一個脈衝沿到來之前,其輸出的亞穩態數據在一段恢復時間后必須穩定下來,而且穩定的數據必須滿足第二級觸發器的建立時間,如果都滿足了,在下一個脈衝沿到來時,第二級觸發器將不會出現亞穩態,因為其輸入端的數據滿足其建立保持時間。同步器有效的條件:第一級觸發器進入亞穩態后的恢復時間 + 第二級觸發器的建立時間 < = 時鐘周期

更確切地說,輸入脈衝寬度必須大於同步時鐘周期與第一級觸發器所需的保持時間之和。最保險的脈衝寬度是兩倍同步時鐘周期。所以,這樣的同步電路對於從較慢的時鐘域來的非同步信號進入較快的時鐘域比較有效,對於進入一個較慢的時鐘域,則沒有作用。

7:系統最高速度計算(最快時鐘頻率)和流水線設計思想:

同步電路的速度是指同步系統時鐘的速度,同步時鐘愈快,電路處理數據的時間間隔越短,電路在單位時間內處理的數據量就愈大。假設Tco是觸發器的輸入數據被時鐘打入到觸發器到數據到達觸發器輸出端的延時時間(Tco=Tsetpup+Thold);Tdelay是組合邏輯的延時;Tsetup是觸發器的建立時間。假設數據已被時鐘打入D觸發器,那麼數據到達第一個觸發器的Q輸出端需要的延時時間是Tco,經過組合邏輯的延時時間為Tdelay,然後到達第二個觸發器的D端,要希望時鐘能在第二個觸發器再次被穩定地打入觸發器,則時鐘的延遲必須大於Tco+Tdelay+Tsetup,也就是說最小的時鐘周期Tmin =TcoTdelayTsetup,即最快的時鐘頻率Fmax =1/Tmin。FPGA開發軟體也是通過這種方法來計算系統最高運行速度Fmax。因為Tco和Tsetup是由具體的器件工藝決定的,故設計電路時只能改變組合邏輯的延遲時間Tdelay,所以說縮短觸發器間組合邏輯的延時時間是提高同步電路速度的關鍵所在。由於一般同步電路都大於一級鎖存,而要使電路穩定工作,時鐘周期必須滿足最大延時要求。故只有縮短最長延時路徑,才能提高電路的工作頻率。可以將較大的組合邏輯分解為較小的N塊,通過適當的方法平均分配組合邏輯,然後在中間插入觸發器,並和原觸發器使用相同的時鐘,就可以避免在兩個觸發器之間出現過大的延時,消除速度瓶頸,這樣可以提高電路的工作頻率。這就是所謂"流水線"技術的基本設計思想,即原設計速度受限部分用一個時鐘周期實現,採用流水線技術插入觸發器后,可用N個時鐘周期實現,因此系統的工作速度可以加快,吞吐量加大。注意,流水線設計會在原數據通路上加入延時,另外硬體面積也會稍有增加。

8:時序約束的概念和基本策略?

時序約束主要包括周期約束,偏移約束,靜態時序路徑約束三種。通過附加時序約束可以綜合布線工具調整映射和布局布線,使設計達到時序要求。

附加時序約束的一般策略是先附加全局約束,然後對快速和慢速例外路徑附加專門約束。附加全局約束時,首先定義設計的所有時鐘,對各時鐘域內的同步元件進行分組,對分組附加周期約束,然後對FPGA/CPLD輸入輸出PAD附加偏移約束、對全組合邏輯的PAD TO PAD路徑附加約束。附加專門約束時,首先約束分組之間的路徑,然後約束快、慢速例外路徑和多周期路徑,以及其他特殊路徑。

9:附加約束的作用?

1:提高設計的工作頻率(減少了邏輯和布線延時);2:獲得正確的時序分析報告;(靜態時序分析工具以約束作為判斷時序是否滿足設計要求的標準,因此要求設計者正確輸入約束,以便靜態時序分析工具可以正確的輸出時序報告)3:指定FPGA/CPLD的電氣標準和引腳位置。

10FPGA設計工程師努力的方向:

SOPC,高速串列I/O,低功耗,可靠性,可測試性和設計驗證流程的優化等方面。

隨著晶元工藝的提高,晶元容量、集成度都在增加,FPGA設計也朝著高速、高度集成、低功耗、高可靠性、高可測、可驗證性發展。晶元可測、可驗證,正在成為複雜設計所必備的條件,盡量在上板之前查出bug,將發現bug的時間提前,這也是一些公司花大力氣設計模擬平台的原因。另外隨著單板功能的提高、成本的壓力,低功耗也逐漸進入FPGA設計者的考慮範圍,完成相同的功能下,考慮如何能夠使晶元的功耗最低,據說altera、xilinx都在根據自己的晶元特點整理如何降低功耗的文檔。高速串列IO的應用,也豐富了FPGA的應用範圍,象xilinx的v2pro中的高速鏈路也逐漸被應用。

11:對於多位的非同步信號如何進行同步?

對以一位的非同步信號可以使用「一位同步器進行同步」(使用兩級觸發器),而對於多位的非同步信號,可以採用如下方法:1:可以採用保持寄存器加握手信號的方法(多數據,控制,地址);2:特殊的具體應用電路結構,根據應用的不同而不同;3:非同步FIFO。(最常用的緩存單元是DPRAM)

12FPGACPLD的區別?

CPLDFPGA
內部結構Product term(基於乘積項)Look up Table(基於查找表)
程序存儲內部EEPROM/FLASHSRAM,外掛EEPROM
資源類型組合邏輯資源豐富時序邏輯資源豐富
集成度
使用場合完成控制邏輯能完成比較複雜的演算法
速度快??
其他資源PLL、RAM和乘法器等
保密性可加密一般不能保密

13:鎖存器(latch)和觸發器(flip-flop)區別?

電平敏感的存儲器件稱為鎖存器。可分為高電平鎖存器和低電平鎖存器,用於不同時鐘之間的信號同步。

有交叉耦合的門構成的雙穩態的存儲原件稱為觸發器。分為上升沿觸發和下降沿觸發。可以認為是兩個不同電平敏感的鎖存器串連而成。前一個鎖存器決定了觸發器的建立時間,后一個鎖存器則決定了保持時間。

14FPGA晶元內有哪兩種存儲器資源?

FPGA晶元內有兩種存儲器資源:一種叫BLOCK RAM,另一種是由LUT配置成的內部存儲器(也就是分散式RAM)。BLOCK RAM由一定數量固定大小的存儲塊構成的,使用BLOCK RAM資源不佔用額外的邏輯資源,並且速度快。但是使用的時候消耗的BLOCK RAM資源是其塊大小的整數倍。

15:什麼是時鐘抖動?

時鐘抖動是指晶元的某一個給定點上時鐘周期發生暫時性變化,也就是說時鐘周期在不同的周期上可能加長或縮短。它是一個平均值為0的平均變數。

16FPGA設計中對時鐘的使用?(例如分頻等)

FPGA晶元有固定的時鐘路由,這些路由能有減少時鐘抖動和偏差。需要對時鐘進行相位移動或變頻的時候,一般不允許對時鐘進行邏輯操作,這樣不僅會增加時鐘的偏差和抖動,還會使時鐘帶上毛刺。一般的處理方法是採用FPGA晶元自帶的時鐘管理器如PLL,DLL或DCM,或者把邏輯轉換到觸發器的D輸入(這些也是對時鐘邏輯操作的替代方案)。

17FPGA設計中如何實現同步時序電路的延時?

首先說說非同步電路的延時實現:非同步電路一半是通過加buffer、兩級與非門等來實現延時(我還沒用過所以也不是很清楚),但這是不適合同步電路實現延時的。在同步電路中,對於比較大的和特殊要求的延時,一半通過高速時鐘產生計數器,通過計數器來控制延時;對於比較小的延時,可以通過觸發器打一拍,不過這樣只能延遲一個時鐘周期。

18FPGA中可以綜合實現為RAM/ROM/CAM的三種資源及其注意事項?

三種資源:BLOCK RAM,觸發器(FF),查找表(LUT);

注意事項:

1:在生成RAM等存儲單元時,應該首選BLOCK RAM 資源;其原因有二:第一:使用BLOCK RAM等資源,可以節約更多的FF和4-LUT等底層可編程單元。使用BLOCK RAM可以說是「不用白不用」,是最大程度發揮器件效能,節約成本的一種體現;第二:BLOCK RAM是一種可以配置的硬體結構,其可靠性和速度與用LUT和REGISTER構建的存儲器更有優勢。

2:弄清FPGA的硬體結構,合理使用BLOCK RAM資源;

3:分析BLOCK RAM容量,高效使用BLOCK RAM資源;

4:分散式RAM資源(DISTRIBUTE RAM)

19Xilinx中與全局時鐘資源和DLL相關的硬體原語:

常用的與全局時鐘資源相關的Xilinx器件原語包括:IBUFG,IBUFGDS,BUFG,BUFGP,BUFGCE,BUFGMUX,BUFGDLL,DCM等。關於各個器件原語的解釋可以參考《FPGA設計指導準則》p50部分。

20HDL語言的層次概念?

HDL語言是分層次的、類型的,最常用的層次概念有系統與標準級、功能模塊級,行為級,寄存器傳輸級和門級。

系統級,演算法級,RTL級(行為級),門級,開關級

21:查找表的原理與結構?

查找表(look-up-table)簡稱為LUT,LUT本質上就是一個RAM。目前FPGA中多使用4輸入的LUT,所以每一個LUT可以看成一個有 4位地址線的16x1的RAM。當用戶通過原理圖或HDL語言描述了一個邏輯電路以後,PLD/FPGA開發軟體會自動計算邏輯電路的所有可能的結果,並把結果事先寫入RAM,這樣,每輸入一個信號進行邏輯運算就等於輸入一個地址進行查表,找出地址對應的內容,然後輸出即可

22IC設計前端到後端的流程和EDA工具?

設計前端也稱邏輯設計,後端設計也稱物理設計,兩者並沒有嚴格的界限,一般涉及到與工藝有關的設計就是後端設計。

1:規格制定:客戶向晶元設計公司提出設計要求。

2:詳細設計:晶元設計公司(Fabless)根據客戶提出的規格要求,拿出設計解決方案和具體實現架構,劃分模塊功能。目前架構的驗證一般基於systemC語言,對價后模型的模擬可以使用systemC的模擬工具。例如:CoCentric和Visual Elite等。

3:HDL編碼:設計輸入工具:ultra ,visual VHDL等

4:模擬驗證:modelsim

5:邏輯綜合:synplify

6:靜態時序分析:synopsys的Prime Time

7:形式驗證:Synopsys的Formality.

23:寄生效應在IC設計中怎樣加以克服和利用(這是我的理解,原題好像是說,IC設計過

程中將寄生效應的怎樣反饋影響設計師的設計方案)?

所謂寄生效應就是那些溜進你的PCB並在電路中大施破壞、令人頭痛、原因不明的小故障。它們就是滲入高速電路中隱藏的寄生電容和寄生電感。其中包括由封裝引腳和印製線過長形成的寄生電感;焊盤到地、焊盤到電源平面和焊盤到印製線之間形成的寄生電容;通孔之間的相互影響,以及許多其它可能的寄生效應。

理想狀態下,導線是沒有電阻,電容和電感的。而在實際中,導線用到了金屬銅,它有一定的電阻率,如果導線足夠長,積累的電阻也相當可觀。兩條平行的導線,如果互相之間有電壓差異,就相當於形成了一個平行板電容器(你想象一下)。通電的導線周圍會形成磁場(特別是電流變化時),磁場會產生感生電場,會對電子的移動產生影響,可以說每條實際的導線包括元器件的管腳都會產生感生電動勢,這也就是寄生電感。

在直流或者低頻情況下,這種寄生效應看不太出來。而在交流特別是高頻交流條件下,影響就非常巨大了。根據復阻抗公式,電容、電感會在交流情況下會對電流的移動產生巨大阻礙,也就可以折算成阻抗。這種寄生效應很難克服,也難摸到。只能通過優化線路,盡量使用管腳短的SMT元器件來減少其影響,要完全消除是不可能的。

24:用flip-floplogic-gate設計一個1位加法器,輸入carryincurrent-stage,輸出carryoutnext-stage

carryout=carryin*current-stage;與門

next-stage=carryin』*current-stage+carryin*current-stage』;與門,非門,或門(或者異或門)

module(clk,current-stage,carryin,next-stage,carryout);

inputclk, current-stage,carryin;

outputnext-stage,carryout;

always@(posedgeclk)

carryout<=carryin&current-stage;

nextstage<=

25:設計一個自動飲料售賣機,飲料10分錢,硬幣有5分和10分兩種,並考慮找零,

1.畫出fsm(有限狀態機)

2.verilog編程,語法要符合FPGA設計的要求

3.設計工程中可使用的工具及設計大致過程?

設計過程:

1、首先確定輸入輸出,A=1表示投入10分,B=1表示投入5分,Y=1表示彈出飲料,Z=1表示找零。

2、確定電路的狀態,S0表示沒有進行投幣,S1表示已經有5分硬幣。

3、畫出狀態轉移圖。

module sell(clk,rst,a,b,y,z);

input clk,rst,a,b;

output y,z;

parameter s0=0,s1=1;

reg state,next_state;

always@(posedge clk)

begin

if(!rst)

state<=s0;

else

state<=next_state;

end

always@(a or b or cstate)

begin

y=0;z=0;

case(state)

s0: if(a==1&&b==0)next_state=s1;

else if(a==0&&b==1)

begin

next_state=s0;y=1;

end

else

next_state=s0;

s1: if(a==1&&b==0)

begin

next_state=s0;y=1;

end

else if(a==0&&b==1)

begin

next_state=s0;y=1;z=1;

end

else

next_state=s0;

default: next_state=s0;

endcase

end

endmodule

擴展:設計一個自動售飲料機的邏輯電路。它的投幣口每次只能投入一枚五角或一元的硬幣。投入一元五角硬幣后給出飲料;投入兩元硬幣時給出飲料並找回五角。

1、確定輸入輸出,投入一元硬幣A=1,投入五角硬幣B=1,給出飲料Y=1,找回五角Z=1;

2、確定電路的狀態數,投幣前初始狀態為S0,投入五角硬幣為S1,投入一元硬幣為S2。畫出轉該轉移圖,根據狀態轉移圖可以寫成Verilog代碼。

26:什麼是"線與"邏輯,要實現它,在硬體特性上有什麼具體要求?

線與邏輯是兩個輸出信號相連可以實現與的功能。在硬體上,要用oc門來實現,由於不用oc門可能使灌電流過大,而燒壞邏輯門. 同時在輸出埠應加一個上拉電阻。oc門就是集電極開路門。od門是漏極開路門。

27:什麼是競爭與冒險現象?怎樣判斷?如何消除?

在組合電路中,某一輸入變數經過不同途徑傳輸后,到達電路中某一匯合點的時間有先有后,這種現象稱競爭;由於競爭而使電路輸出發生瞬時錯誤的現象叫做冒險。(也就是由於競爭產生的毛刺叫做冒險)。

判斷方法:代數法(如果布爾式中有相反的信號則可能產生競爭和冒險現象);卡諾圖:有兩個相切的卡諾圈並且相切處沒有被其他卡諾圈包圍,就有可能出現競爭冒險;實驗法:示波器觀測;

解決方法:1:加濾波電容,消除毛刺的影響;2:加選通信號,避開毛刺;3:增加冗餘項消除邏輯冒險。

門電路兩個輸入信號同時向相反的邏輯電平跳變稱為競爭;

由於競爭而在電路的輸出端可能產生尖峰脈衝的現象稱為競爭冒險。

如果邏輯函數在一定條件下可以化簡成Y=A+A』或Y=AA』則可以判斷存在競爭冒險現象(只是一個變數變化的情況)。

消除方法,接入濾波電容,引入選通脈衝,增加冗餘邏輯

28:你知道那些常用邏輯電平?TTLCOMS電平可以直接互連嗎?

常用邏輯電平:TTL、CMOS、LVTTL、LVCMOS、ECL(Emitter Coupled Logic)、PECL(Pseudo/Positive Emitter Coupled Logic)、LVDS(Low Voltage Differential Signaling)、GTL(Gunning Transceiver Logic)、BTL(Backplane Transceiver Logic)、ETL(enhanced transceiver logic)、GTLP(Gunning Transceiver Logic Plus);RS232、RS422、RS485(12V,5V,3.3V);

也有一種答案是:常用邏輯電平:12V,5V,3.3V。

TTL和CMOS 不可以直接互連,由於TTL是在0.3-3.6V之間,而CMOS則是有在12V的有在5V的。CMOS輸出接到TTL是可以直接互連。TTL接到 CMOS需要在輸出埠加一上拉電阻接到5V或者12V。

用CMOS可直接驅動TTL;加上拉電阻后,TTL可驅動CMOS.

上拉電阻用途:

1、當TTL電路驅動COMS電路時,如果TTL電路輸出的高電平低於COMS電路的最低高電平(一般為3.5V),這時就需要在TTL的輸出端接上拉電阻,以提高輸出高電平的值。

2、OC門電路必須加上拉電阻,以提高輸出的高電平值。

3、為加大輸出引腳的驅動能力,有的單片機管腳上也常使用上拉電阻。

4、在COMS晶元上,為了防止靜電造成損壞,不用的管腳不能懸空,一般接上拉電阻產生降低輸入阻抗,提供泄荷通路。

5、晶元的管腳加上拉電阻來提高輸出電平,從而提高晶元輸入信號的雜訊容限增強抗干擾能力。

6、提高匯流排的抗電磁干擾能力。管腳懸空就比較容易接受外界的電磁干擾。

7、長線傳輸中電阻不匹配容易引起反射波干擾,加上下拉電阻是電阻匹配,有效的抑制反射波干擾。

上拉電阻阻值的選擇原則包括:

1、從節約功耗及晶元的灌電流能力考慮應當足夠大;電阻大,電流小。

2、從確保足夠的驅動電流考慮應當足夠小;電阻小,電流大。

3、對於高速電路,過大的上拉電阻可能邊沿變平緩。綜合考慮以上三點,通常在1k到10k之間選取。對下拉電阻也有類似道理。

OC門電路必須加上拉電阻,以提高輸出的高電平值。

OC門電路要輸出「1」時才需要加上拉電阻不加根本就沒有高電平

在有時我們用OC門作驅動(例如控制一個 LED)灌電流工作時就可以不加上拉電阻

總之加上拉電阻能夠提高驅動能力。

29IC設計中同步複位與非同步複位的區別?

同步複位在時鐘沿變化時,完成複位動作。非同步複位不管時鐘,只要複位信號滿足條件,就完成複位動作。非同步複位對複位信號要求比較高,不能有毛刺,如果其與時鐘關係不確定,也可能出現亞穩態。

30MOORE MEELEY狀態機的特徵?

Moore 狀態機的輸出僅與當前狀態值有關, 且只在時鐘邊沿到來時才會有狀態變化。

Mealy 狀態機的輸出不僅與當前狀態值有關, 而且與當前輸入值有關。

31:多時域設計中,如何處理信號跨時域?

不同的時鐘域之間信號通信時需要進行同步處理,這樣可以防止新時鐘域中第一級觸發器的亞穩態信號對下級邏輯造成影響。

信號跨時鐘域同步:當單個信號跨時鐘域時,可以採用兩級觸發器來同步;數據或地址匯流排跨時鐘域時可以採用非同步FIFO來實現時鐘同步;第三種方法就是採用握手信號。

32:說說靜態、動態時序模擬的優缺點?

靜態時序分析是採用窮盡分析方法來提取出整個電路存在的所有時序路徑,計算信號在這些路徑上的傳播延時,檢查信號的建立和保持時間是否滿足時序要求,通過對最大路徑延時和最小路徑延時的分析,找出違背時序約束的錯誤。它不需要輸入向量就能窮盡所有的路徑,且運行速度很快、佔用內存較少,不僅可以對晶元設計進行全面的時序功能檢查,而且還可利用時序分析的結果來優化設計,因此靜態時序分析已經越來越多地被用到數字集成電路設計的驗證中。

動態時序模擬就是通常的模擬,因為不可能產生完備的測試向量,覆蓋門級網表中的每一條路徑。因此在動態時序分析中,無法暴露一些路徑上可能存在的時序問題;

33:一個四級的Mux,其中第二級信號為關鍵信號如何改善timing.

關鍵:將第二級信號放到最後輸出一級輸出,同時注意修改片選信號,保證其優先順序未被修改。(為什麼?)

34:給出一個門級的圖,又給了各個門的傳輸延時,問關鍵路徑是什麼,還問給出輸入, 使得輸出依賴於關鍵路徑?

關鍵路徑就是輸入到輸出延時最大的路徑,找到了關鍵路徑便能求得最大時鐘頻率。

35:為什麼一個標準的倒相器中P管的寬長比要比N管的寬長比大?

和載流子有關,P管是空穴導電,N管是電子導電,電子的遷移率大於空穴,同樣的電場下,N管的電流大於P管,因此要增大P管的寬長比,使之對稱,這樣才能使得兩者上升時間下降時間相等、高低電平的雜訊容限一樣、充電放電的時間相等。

36:用mos管搭出一個二輸入與非門?

<數字電子技術基礎(第五版)> 92頁

與非門:上並下串或非門:上串下並

37:畫出NOT,NAND,NOR的符號,真值表,還有transistor level(晶體管級)的電路?

<數字電子技術基礎(第五版)> 117頁—134頁

38:畫出CMOS的圖,畫出tow-to-one muxgate.

Y=SA+S』B 利用與非門和反相器,進行變換后Y=((SA)』*(S』A)』)』,三個與非門,一個反相器。也可以用傳輸門來實現數據選擇器或者是異或門。

39:用一個二選一mux和一個inv實現異或?

其中:B連接的是地址輸入端,A和A非連接的是數據選擇端,F對應的的是輸出端,使能端固定接地置零(沒有畫出來).

Y=BA』+B』A

利用41實現F(x,y,z)=xz+yz'

F(x,y,z)=xyz+xy』z+xyz'+x』yz』=x』y』0+x』yz』+xy』z+xy1

Y=A』B』D0+A』BD1+AB』D2+ABD3

所以D0=0,D1=z』,D2=z,D3=1

40:畫出CMOS電路的晶體管級電路圖,實現Y=A*B+C(D+E).

畫出Y=A*B+CCMOS電路圖,畫出Y=A*B+C*DCMOS電路圖。

利用與非門和或非門實現

Y=A*B+C(D+E)=((AB』)(CD)』(CE)』)』 三個兩輸入與非門,一個三輸入與非門

Y=A*B+C=((AB)』C』) 一個反相器,兩個兩輸入與非門

Y=A*B+C*D=((AB)』(CD)』)』 三個兩輸入與非門

41:用與非門等設計全加法器?

《數字電子技術基礎》192頁。

通過摩根定律化成用與非門實現。

42A,B,C,D,E進行投票,多數服從少數,輸出是F(也就是如果A,B,C,D,E1的個數比0 ,那麼F輸出為1,否則F0),用與非門實現,輸入數目沒有限制?(與非-與非形式)

先畫出卡諾圖來化簡,化成與或形式,再兩次取反便可。

43:畫出一種CMOSD鎖存器的電路圖和版圖?

也可以將右圖中的與非門和反相器用CMOS電路畫出來。

44LATCHDFF的概念和區別?

45latchregister的區別,為什麼現在多用register.行為級描述中latch如何產生的?

latch是電平觸發,register是邊沿觸發,register在同一時鐘邊沿觸發下動作,符合同步電路的設計思想,而latch則屬於非同步電路設計,往往會導致時序分析困難,不適當的應用latch則會大量浪費晶元資源。

46:用D觸發器做個二分頻的電路?畫出邏輯電路?

module div2(clk,rst,clk_out);

input clk,rst;

output reg clk_out;

always@(posedge clk)

begin

if(!rst)

clk_out <=0;

else

clk_out <=~ clk_out;

end

endmodule

現實工程設計中一般不採用這樣的方式來設計,二分頻一般通過DCM來實現。通過DCM得到的分頻信號沒有相位差。

或者是從Q端引出加一個反相器。

47:什麼是狀態圖?

狀態圖是以幾何圖形的方式來描述時序邏輯電路的狀態轉移規律以及輸出與輸入的關係。

48:用你熟悉的設計方式設計一個可預置初值的7進位循環計數器,15進位的呢?

module counter7(clk,rst,load,data,cout);

input clk,rst,load;

input [2:0] data;

output reg [2:0] cout;

always@(posedge clk)

begin

if(!rst)

cout<=3』d0;

else if(load)

cout<=data;

else if(cout>=3』d6)

cout<=3』d0;

else

cout<=cout+3』d1;

end

endmodule

49:你所知道的可編程邏輯器件有哪些?

PAL,PLA,GAL,CPLD,FPGA

50:用VerilogVHDL寫一段代碼,實現消除一個glitch(毛刺)?

將傳輸過來的信號經過兩級觸發器就可以消除毛刺。(這是我自己採用的方式:這種方式消除毛刺是需要滿足一定條件的,並不能保證一定可以消除)

module(clk,data,q_out)

input clk,data;

output reg q_out;

reg q1;

always@(posedgeclk)

begin

q1<=data;

q_out<=q1;

end

endmodule

51SRAM,FALSHMEMORY,DRAMSSRAMSDRAM的區別?

SRAM:靜態隨機存儲器,存取速度快,但容量小,掉電后數據會丟失,不像DRAM 需要不停的REFRESH,製造成本較高,通常用來作為快取(CACHE) 記憶體使用。

FLASH:快閃記憶體,存取速度慢,容量大,掉電后數據不會丟失

DRAM:動態隨機存儲器,必須不斷的重新的加強(REFRESHED) 電位差量,否則電位差將降低至無法有足夠的能量表現每一個記憶單位處於何種狀態。價格比SRAM便宜,但訪問速度較慢,耗電量較大,常用作計算機的內存使用。

SSRAM:即同步靜態隨機存取存儲器。對於SSRAM的所有訪問都在時鐘的上升/下降沿啟動。地址、數據輸入和其它控制信號均於時鍾信號相關。

SDRAM:即同步動態隨機存取存儲器。

52:有四種復用方式,頻分多路復用,寫出另外三種?

四種復用方式:頻分多路復用(FDMA),時分多路復用(TDMA),碼分多路復用(CDMA),波分多路復用(WDMA)。

53ASIC設計流程中什麼時候修正Setup time violation Hold time violation?如何修正?解釋setuphold time violation,畫圖說明,並說明解決辦法。(威盛VIA2003.11.06 上海筆試試題)

見前面的建立時間和保持時間,violation違反,不滿足

54:給出一個組合邏輯電路,要求分析邏輯功能。

所謂組合邏輯電路的分析,就是找出給定邏輯電路輸出和輸入之間的關係,並指出電路的邏輯功能。

分析過程一般按下列步驟進行:

1:根據給定的邏輯電路,從輸入端開始,逐級推導出輸出端的邏輯函數表達式。

2:根據輸出函數表達式列出真值表;

3:用文字概括處電路的邏輯功能;

55:如何防止亞穩態?

亞 穩態是指觸發器無法在某個規定時間段內達到一個可確認的狀態。當一個觸發器進入亞穩態時,既無法預測該單元的輸出電平,也無法預測何時輸出才能穩定在某個 正確的電平上。在這個穩定期間,觸發器輸出一些中間級電平,或者可能處于振盪狀態,並且這種無用的輸出電平可以沿信號通道上的各個觸發器級聯式傳播下去。

解決方法:

1 降低系統時鐘頻率

2 用反應更快的FF

3 引入同步機制,防止亞穩態傳播(可以採用前面說的加兩級觸發器)。

4 改善時鐘質量,用邊沿變化快速的時鐘信號

56:基爾霍夫定理的內容

基爾霍夫定律包括電流定律和電壓定律:

電流定律:在集總電路中,在任一瞬時,流向某一結點的電流之和恆等於由該結點流出的電流之和。

電壓定律:在集總電路中,在任一瞬間,沿電路中的任一迴路繞行一周,在該迴路上電動勢之和恆等於各電阻上的電壓降之和。

57:描述反饋電路的概念,列舉他們的應用。

反饋,就是在電路系統中,把輸出迴路中的電量(電壓或電流)輸入到輸入迴路中去。

反饋的類型有:電壓串聯負反饋、電流串聯負反饋、電壓並聯負反饋、電流並聯負反饋。

負反饋的優點:降低放大器的增益靈敏度,改變輸入電阻和輸出電阻,改善放大器的線性和非線性失真,有效地擴展放大器的通頻帶,自動調節作用。

電壓負反饋的特點:電路的輸出電壓趨向於維持恆定。

電流負反饋的特點:電路的輸出電流趨向於維持恆定。

58:有源濾波器和無源濾波器的區別

無源濾波器:這種電路主要有無源元件R、L和C組成

有源濾波器:集成運放和R、C組成,具有不用電感、體積小、重量輕等優點。

集成運放的開環電壓增益和輸入阻抗均很高,輸出電阻小,構成有源濾波電路后還具有一定的電壓放大和緩衝作用。但集成運放帶寬有限,所以目前的有源濾波電路的工作頻率難以做得很高。

59:給了regsetuphold時間,求中間組合邏輯的delay範圍。

Tdelay < Tperiod - Tsetup – Thold

Tperiod > Tsetup + Thold +Tdelay (用來計算最高時鐘頻率)

Tco= Tsetup + Thold 即觸發器的傳輸延時

60、時鐘周期為T,觸發器D1的寄存器到輸出時間(觸發器延時Tco)最大為T1max,最小為T1min。組合邏輯電路最大延遲為T2max,最小為T2min。問,觸發器D2的建立時間T3和保持時間應滿足什麼條件。

T3setup>T+T2max 時鐘沿到來之前數據穩定的時間(越大越好),一個時鐘周期T加上最大的邏輯延時。

T3hold>T1min+T2min 時鐘沿到來之後數據保持的最短時間,一定要大於最小的延時也就是T1min+T2min

61、給出某個一般時序電路的圖,有TsetupTdelayTck->qTco),還有 clockdelay,寫出決定最大時鐘的因素,同時給出表達式。

T+Tclkdealy>Tsetup+Tco+Tdelay;

Thold>Tclkdelay+Tco+Tdelay; 保持時間與時鐘周期無關

62、實現三分頻電路,3/2分頻電路等(偶數倍分頻奇數倍分頻)

圖2是3分頻電路,用JK-FF實現3分頻很方便,不需要附加任何邏輯電路就能實現同步計數分頻。但用D-FF實現3分頻時,必須附加解碼反饋電路,如圖2所示的解碼複位電路,強制計數狀態返回到初始全零狀態,就是用NOR門電路把Q2,Q1=「11B」的狀態解碼產生「H」電平複位脈衝,強迫FF1和FF2同時瞬間(在下一時鐘輸入Fi的脈衝到來之前)復零,於是Q2,Q1=「11B」狀態僅瞬間作為「毛刺」存在而不影響分頻的周期,這種「毛刺」僅在Q1中存在,實用中可能會造成錯誤,應當附加時鐘同步電路或阻容低通濾波電路來濾除,或者僅使用Q2作為輸出。D-FF的3分頻,還可以用AND門對Q2,Q1解碼來實現返回復零。

63、名詞解釋

CMOS(Complementary Metal Oxide Semiconductor),互補金屬氧化物半導體,電壓控制的一种放大器件。是組成CMOS數字集成電路的基本單元。

MCU(Micro Controller Unit)中文名稱為微控制單元,又稱單片微型計算機(Single Chip Microcomputer)或者單片機,是指隨著大規模集成電路的出現及其發展,將計算機的CPU、RAM、ROM、定時數計器和多種I/O介面集成在一片晶元上,形成晶元級的計算機,為不同的應用場合做不同組合控制。

RISC(reduced instruction set computer,精簡指令集計算機)是一種執行較少類型計算機指令的微處理器,起源於80年代的MIPS主機(即RISC機),RISC機中採用的微處理器統稱RISC處理器。這樣一來,它能夠以更快的速度執行操作(每秒執行更多百萬條指令,即MIPS)。因為計算機執行每個指令類型都需要額外的晶體管和電路元件,計算機指令集越大就會使微處理器更複雜,執行操作也會更慢。

CISC是複雜指令系統計算機(Complex Instruction Set Computer)的簡稱,微處理器是台式計算機系統的基本處理部件,每個微處理器的核心是運行指令的電路。指令由完成任務的多個步驟所組成,把數值傳送進寄存器或進行相加運算。

DSP(digital signal processor)是一種獨特的微處理器,是以數字信號來處理大量信息的器件。其工作原理是接收模擬信號,轉換為0或1的數字信號。 再對數字信號進行修改、刪除、強化,並在其他系統晶元中把數字數據解譯回模擬數據或實際環境格式。它不僅具有可編程性,而且其實時運行速度可達每秒數以千 萬條複雜指令程序,遠遠超過通用微處理器,是數字化電子世界中日益重要的電腦晶元。它的強大數據處理能力和高運行速度,是最值得稱道的兩大特色。

FPGA(Field-Programmable GateArray),即現場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可編程器件門電路數有限的缺點。

ASIC:專用集成電路,它是面向專門用途的電路,專門為一個用戶設計和製造的。根據一個用戶的特定要求,能以低研製成本,短、交貨周期供貨的全定製,半定製集成電路。與門陣列等其它ASIC(ApplicationSpecific IC)相比,它們又具有設計開發周期短、設計製造成本低、開發工具先進、標準產品無需測試、質量穩定以及可實時在線檢驗等優點

PCI(Peripheral Component Interconnect) 外圍組件互連,一種由英特爾(Intel)公司1991年推出的用於定義局部匯流排的標準。

ECC是「Error Correcting Code」的簡寫,中文名稱是「錯誤檢查和糾正」。ECC是一種能夠實現「錯誤檢查和糾正」的技術,ECC內存就是應用了這種技術的內存,一般多應用在伺服器及圖形工作站上,這將使整個電腦系統在工作時更趨於安全穩定。

DDR=Double Data Rate雙倍速率同步動態隨機存儲器。嚴格的說DDR應該叫DDR SDRAM,人們習慣稱為DDR,其中,SDRAM 是Synchronous Dynamic Random Access Memory的縮寫,即同步動態隨機存取存儲器。

IRQ全稱為Interrupt Request,即是「中斷請求」的意思(以下使用IRQ稱呼)。IRQ的作用就是在我們所用的電腦中,執行硬體中斷請求的動作,用來停止其相關硬體的工作狀態

USB ,是英文Universal Serial BUS(通用串列匯流排)的縮寫,而其中文簡稱為「通串線,是一個外部匯流排標準,用於規範電腦與外部設備的連接和通訊。

BIOS是英文"Basic Input Output System"的縮略語,直譯過來后中文名稱就是"基本輸入輸出系統"。其實,它是一組固化到計算機內主板上一個ROM晶元上的程序,它保存著計算機最重要的基本輸入輸出的程序、系統設置信息、開機后自檢程序和系統自啟動程序。其主要功能是為計算機提供最底層的、最直接的硬體設置和控制。

64、三極體特性曲線

65Please show the CMOSinverter schematic, layout and its cross section with P-well process. Plot itstransfer curve (Vout-Vin) and also explain the operation region of PMOS andNMOS for each segment of the transfer curve? (威盛筆試題circuitdesign-beijing-03.11.09

66To design a CMOSinverter with balance rise and fall time, please define the ration ofchannel width of PMOS and NMOS and explain? P管要比N管寬

67Please draw thetransistor level schematic of a CMOS 2 input AND gate and explain which inputhas faster response for output rising edge.(less delay time)。(威盛筆試題circuit design-beijing-03.11.09

68、為了實現邏輯Y=A』B+AB』+CD,請選用以下邏輯中的一種,並說明為什麼?

1INV 2AND 3OR 4NAND 5NOR 6XOR 答案:NAND(未知)

69、用波形表示D觸發器的功能。(揚智電子筆試)

70、用傳輸門和倒向器搭一個邊沿觸發器(DFF)。

通過級聯兩個D鎖存器組成

71、用邏輯門畫出D觸發器。

電平觸發的D觸發器(D鎖存器)牢記!

邊沿觸發的D觸發器,有兩個D鎖存器構成

72、畫出DFF的結構圖,verilog實現之。

moduledff(clk,d,qout);

input clk,d;

output qout;

reg qout;

always@(posedgeclk)

begin

if(!reset)

qout<=0;

else

qout<=d;

end

endmodule

73、畫出一種CMOSD鎖存器的電路圖和版圖。

或者是利用前面與非門搭的D鎖存器實現

74、用filp-floplogic-gate設計一個1位加法器,輸入carryincurrent-stage,輸出carryoutnext-stage.

75、用D觸發器做個4進位的計數。

按照時序邏輯電路的設計步驟來:

1、寫出狀態轉換表

2、寄存器的個數確定

3、狀態編碼

4、卡諾圖化簡

5、狀態方程,驅動方程等

閻石數字電路 P314

76、實現NJohnson Counter, N=5

78、數字電路設計當然必問Verilog/VHDL,如設計計數器。

79、請用HDL描述四位的全加法器、5分頻電路。

module adder4(a,b,ci,s,co);

input ci;

input [3:0] a,b;

output co;

output [3:0] s;

assign {co,s}=a+b+ci;

endmodule

module div5(clk,rst,clk_out);

input clk,rst;

output clk_out;

reg [3:0] count;

always@(posedge clk)

begin

if(!rst)

begin

count<=0;

clk_out=0;

end

else if(count==3』d5)

begin

count<=0;

clk_out=~clk_out;

end

else

count<=count+1;

end

endmodule

實現奇數倍分頻且占空比為50%的情況:

module div7 ( clk, reset_n, clkout );

input clk,reset_n;

output clkout;

reg [3:0] count;

reg div1;

reg div2;

always @( posedge clk )

begin

if ( ! reset_n )

count <= 3'b000;

else

case ( count )

3'b000 : count <=3'b001;

3'b001 : count <=3'b010;

3'b010 : count <=3'b011;

3'b011 : count <=3'b100;

3'b100 : count <=3'b101;

3'b101 : count <=3'b110;

3'b110 : count <=3'b000;

default :

count <= 3'b000;

endcase

end

always @( posedge clk )

begin

if ( ! reset_n )

div1 <= 1'b0;

else if ( count == 3'b000 )

div1 <= ~ div1;

end

always @( negedge clk )

begin

if ( ! reset_n )

div2 <= 1'b0;

else if ( count == 3'b100 )

div2 <= ~ div2;

end

assign clkout = div1 ^ div2;

endmodule

80、用VERILOGVHDL寫一段代碼,實現10進位計數器。

module counter10(clk,rst,count);

input clk,rst;

output [3:0] count;

reg [3:0] count;

always@(posedge clk)

begin

if(!rst)

count<=0;

else if(count>=4』d9)

count<=0;

else

count<=count+1;

end

endmodule

81、描述一個交通信號燈的設計。

按照時序邏輯電路的設計方法:

82、畫狀態機,接受125分錢的賣報機,每份報紙5分錢。(揚智電子筆試)

1、確定輸入輸出,投1分錢A=1,投2分錢B=1,投5分錢C=1,給出報紙Y=1

2、確定狀態數畫出狀態轉移圖,沒有投幣之前的初始狀態S0,投入了1分硬幣S1,投入了2分硬幣S2,投入了3分硬幣S3,投入了4分硬幣S4。

3、畫卡諾圖或者是利用verilog編碼

83、設計一個自動售貨機系統,賣soda水的,只能投進三種硬幣,要正確的找回錢數。

1)畫出fsm(有限狀態機);(2)用verilog編程,語法要符合fpga設計的要求。

84、設計一個自動飲料售賣機,飲料10分錢,硬幣有5分和10分兩種,並考慮找零:(1)畫出fsm(有限狀態機);(2)用verilog編程,語法要符合fpga設計的要求;(3)設計工程中可使用的工具及設計大致過程。

1、輸入A=1表示投5分錢,B=1表示投10分錢,輸出Y=1表示給飲料,Z=1表示找零

2、確定狀態數,沒投幣之前S0,投入了5分S1

85、畫出可以檢測10010串的狀態圖,verilog實現之。

1、輸入data,1和0兩種情況,輸出Y=1表示連續輸入了10010

2、確定狀態數沒輸入之前S0,輸入一個0到了S1,10為S2,010為S3,0010為S4

86、用FSM實現101101的序列檢測模塊。

a為輸入端,b為輸出端,如果a連續輸入為101101b輸出為1,否則為0

例如 a 0001100110110110100110

b 0000000000100100000000

請畫出state machine;請用RTL描述其state machine

確定狀態數,沒有輸入或輸入0為S0,1為S1,01為S2,101為S3,1101為S4,01101為S5。知道了輸入輸出和狀態轉移的關係很容易寫出狀態機的verilog代碼,一般採用兩段式狀態機

87、給出單管DRAM的原理圖

88、什麼叫做OTP(OTP(一次性可編程))、掩膜片,兩者的區別何在?

OTP與掩膜 OTP是一次性寫入的單片機。過去認為一個單片機產品的成熟是以投產掩膜型單片機為標誌的。由於掩膜需要一定的生產周期,而OTP型單片機價格不斷下降,使得近年來直接使用OTP完成最終產品製造更為流行。它較之掩膜具有生產周期短、風險小的特點。近年來,OTP型單片機需量大幅度上揚,為適應這種需求許多單片機都採用了在系統編程技術(In System Programming)。未編程的OTP晶元可採用裸片Bonding技術或表面貼技術,先焊在印刷板上,然後通過單片機上引出的編程線、串列數據、時鐘線等對單片機編程。解決了批量寫OTP 晶元時容易出現的晶元與寫入器接觸不好的問題。使OTP的裸片得以廣泛使用,降低了產品的成本。編程線與I/O線共用,不增加單片機的額外引腳。而一些生產廠商推出的單片機不再有掩膜型,全部為有ISP功能的OTP。

89、你知道的集成電路設計的表達方式有哪幾種?

90、描述你對集成電路設計流程的認識。(仕蘭微面試題目)

制定規格書-任務劃分-設計輸入-功能模擬-綜合-優化-布局布線-時序模擬時序分析-晶元流片-晶元測試驗證

91、描述你對集成電路工藝的認識。(仕蘭微面試題目)

工藝分類:TTL,CMOS兩種比較流行,TTL速度快功耗高,CMOS速度慢功耗低。

集成電路的工藝主要是指CMOS電路的製造工藝,主要分為以下幾個步驟:襯底準備-氧化、光刻-擴散和離子注入-澱積-刻蝕-平面化。

92、簡述FPGA等可編程邏輯器件設計流程。

通常可將FPGA/CPLD設計流程歸納為以下7個步驟,這與ASIC設計有相似之處。

1.設計輸入。Verilog或VHDL編寫代碼。

2.前模擬(功能模擬)。設計的電路必須在布局布線前驗證電路功能是否有效。(ASCI設計中,這一步驟稱為第一次Sign-off)PLD設計中,有時跳過這一步。

3.設計編譯(綜合)。設計輸入之後就有一個從高層次系統行為設計向門級邏輯電路設轉化翻譯過程,即把設計輸入的某種或某幾種數據格式(網表)轉化為軟體可識別的某種數據格式(網表)。

4.優化。對於上述綜合生成的網表,根據布爾方程功能等效的原則,用更小更快的綜合結果代替一些複雜的單元,並與指定的庫映射生成新的網表,這是減小電路規模的一條必由之路。

5.布局布線。

6.后模擬(時序模擬)需要利用在布局布線中獲得的精確參數再次驗證電路的時序。(ASCI設計中,這一步驟稱為第二次Sign—off)。

7.生產。布線和后模擬完成之後,就可以開始ASCI或PLD晶元的投產

93、分別寫出IC設計前端到後端的流程和eda工具。(未知)

邏輯設計--子功能分解--詳細時序框圖--分塊邏輯模擬--電路設計(RTL級描述)--功能模擬--綜合(加時序約束和設計庫)--電路網表--網表模擬)-預布局布線(SDF文件)--網表模擬(帶延時文件)--靜態時序分析--布局布線--參數提取--SDF文件--后模擬--靜態時序分析--測試向量生成--工藝設計與生產--晶元測試--晶元應用,在驗證過程中出現的時序收斂,功耗,面積問題,應返回前端的代碼輸入進行重新修改,再模擬,再綜合,再驗證,一般都要反覆好幾次才能最後送去foundry廠流片。設計公司是fabless

數字IC設計流程(zz

1.需求分析(制定規格書)分析用戶或市場的需求,並將其翻譯成對晶元產品的技術需求。

2.演算法設計。設計和優化晶元鍾所使用的演算法。這一階段一般使用高級編程語言(如C/C++),利用演算法級建模和模擬工具(如MATLAB,SPW)進行浮點和定點的模擬,進而對演算法進行評估和優化。

3.構架設計。根據設計的功能需求和演算法分析的結果,設計晶元的構架,並對不同的方案進行比較,選擇性能價格最優的方案。這一階段可以使用SystemC語言對晶元構架進行模擬和分析。

4.RTL設計(代碼輸入)。使用HDL語言完成對設計實體的RTL級描述。這一階段使用VHDL和Verilog HDL語言的輸入工具編寫代碼。

5. RTL驗證(功能模擬)。使用模擬工具或其他RTL代碼分析工具,驗證RTL代碼的質量和性能。

6.綜合。從RTL代碼生成描述實際電路的門級網表文件。

7.門級驗證(綜合后模擬)。對綜合產生的門級網表進行驗證。這一階段通常會使用模擬、靜態時序分析和形式驗證等工具。

8. 布局布線。後端設計對綜合產生的門級網表進行布局規劃(Floorplanning)、布局(Placement)、布線(Routing),生成生產用的版圖。

9.電路參數提取確定晶元中互連線的寄生參數,從而獲得門級的延時信息。

10.版圖后驗證。根據後端設計后取得的新的延時信息,再次驗證設計是否能夠實現所有的功能和性能指標。

11.晶元生產。生產在特定的晶元工藝線上製造出晶元。

12. 晶元測試。對製造好的晶元進行測試,檢測生產中產生的缺陷和問題。

數字IC後端設計流程

1. 數據準備。對於 Cadance的 SE而言後端設計所需的數據主要有是Foundry廠提供的標準單元、宏單元和I/O Pad的庫文件,它包括物理庫、時序庫及網表庫,分別以.lef、.tlf和.v的形式給出。前端的晶元設計經過綜合後生成的門級網表,具有時序約束和時鐘定義的腳本文件和由此產生的.gcf約束文件以及定義電源Pad的DEF(Design Exchange Format)文件。(對synopsys 的Astro 而言, 經過綜合後生成的門級網表,時序約束文件 SDC 是一樣的,Pad的定義文件--tdf , .tf 文件 --technology file, Foundry廠提供的標準單元、宏單元和I/O Pad的庫文件就與FRAM, CELL view, LM view 形式給出(Milkway 參考庫 and DB, LIB file)

2.布局規劃。主要是標準單元、I/O Pad和宏單元的布局。I/O Pad預先給出了位置,而宏單元則根據時序要求進行擺放,標準單元則是給出了一定的區域由工具自動擺放。布局規劃后,晶元的大小,Core的面積,Row的形式、電源及地線的Ring和Strip都確定下來了。如果必要在自動放置標準單元和宏單元之後, 你可以先做一次PNA(power network analysis)--IR drop and EM .

3. Placement -自動放置標準單元。布局規劃后,宏單元、I/O Pad的位置和放置標準單元的區域都已確定,這些信息SE(Silicon Ensemble)會通過DEF文件傳遞給PC(Physical Compiler),PC根據由綜合給出的.DB文件獲得網表和時序約束信息進行自動放置標準單元,同時進行時序檢查和單元放置優化。如果你用的是PC +Astro那你可用write_milkway, read_milkway傳遞數據。

4. 時鐘樹生成(CTS Clock tree synthesis)晶元中的時鐘網路要驅動電路中所有的時序單元,所以時鐘源端門單元帶載很多,其負載延時很大並且不平衡,需要插入緩衝器減小負載和平衡延時。時鐘網路及其上的緩衝器構成了時鐘樹。一般要反覆幾次才可以做出一個比較理想的時鐘樹。

5. STA靜態時序分析和后模擬。時鐘樹插入后,每個單元的位置都確定下來了,工具可以提出Global Route形式的連線寄生參數,此時對延時參數的提取就比較準確了。SE把.V和.SDF文件傳遞給PrimeTime做靜態時序分析。確認沒有時序違規后,將這來兩個文件傳遞給前端人員做后模擬。對Astro 而言,在detail routing 之後, 用starRC XT 參數提取,生成的E.V和.SDF文件傳遞給PrimeTime做靜態時序分析,那將會更準確。

6. ECO(Engineering Change Order)針對靜態時序分析和后模擬中出現的問題,對電路和單元布局進行小範圍的改動.

7. filler的插入(pad fliier, cell filler)Filler指的是標準單元庫和I/O Pad庫中定義的與邏輯無關的填充物,用來填充標準單元和標準單元之間,I/O Pad和I/O Pad之間的間隙,它主要是把擴散層連接起來,滿足DRC規則和設計需要。

8.布線(Routing)Global route-- Track assign --Detail routing—Routing optimization布線是指在滿足工藝規則和布線層數限制、線寬、線間距限制和各線網可靠絕緣的電性能約束的條件下,根據電路的連接關係將各單元和I/O Pad用互連線連接起來,這些是在時序驅動(Timing driven ) 的條件下進行的,保證關鍵時序路徑上的連線長度能夠最小。--Timing report clear

9. Dummy Metal的增加。Foundry廠都有對金屬密度的規定,使其金屬密度不要低於一定的值,以防在晶元製造過程中的刻蝕階段對連線的金屬層過度刻蝕從而降低電路的性能。加入Dummy Metal是為了增加金屬的密度。

10. DRCLVSDRC是對晶元版圖中的各層物理圖形進行設計規則檢查(spacing ,width),它也包括天線效應的檢查,以確保晶元正常流片。LVS主要是將版圖和電路網表進行比較,來保證流片出來的版圖電路和實際需要的電路一致。DRC和LVS的檢查--EDA工具Synopsy hercules/ mentor calibre/ CDN Dracula進行的.Astro also include LVS/DRC check commands.

11. Tape out在所有檢查和驗證都正確無誤的情況下把最後的版圖GDSⅡ文件傳遞給Foundry廠進行掩膜製造

94、從RTL synthesistape out之間的設計flow,並列出其中各步使用的tool.

綜合-布局布線-時序模擬-時序分析

簡單說來,一顆晶元的誕生可以分成設計和製造。當設計結束的時候,設計方會把設計數據送給製造方。tapeout 是集成電路設計中一個重要的階段性成果,是值得慶祝的。慶祝之後,就是等待,等待製造完的晶元回來做檢測,看是不是符合設計要求,是否有什麼嚴重的問題等等。

In electronics,tape-out is the name of the final stage of the design of an integrated circuitsuch as a microprocessor; the point at which the description of a circuit issent for manufacture.

95、是否接觸過自動布局布線?請說出一兩種工具軟體。自動布局布線需要哪些基本元素?

自動布局布線其基本流程如下:

1、讀入網表,跟foundry提供的標準單元庫和Pad庫以及宏模塊庫進行映射;

2、整體布局,規定了晶元的大致面積和管腳位置以及宏單元位置等粗略的信息;

3、讀入時序約束文件,設置好timing setup菜單,為後面進行時序驅動的布局布線做準備;

4、詳細布局,力求使後面布線能順利滿足布線布通率100%的要求和時序的要求;

5、時鐘樹綜合,為了降低clock skew而產生由許多buffer單元組成的「時鐘樹」;

6、布線,先對電源線和時鐘信號布線,然後對信號線布線,目標是最大程度地滿足時序;

7、為滿足design rule從而foundry能成功製造出該晶元而做的修補工作,如填充一些dummy等。

常用的工具有Synopsys的ASTRO,Cadence的SE,ISE,Quartus II也可實現布局布線。

96、列舉幾種集成電路典型工藝。工藝上常提到0.25,0.18指的是什麼?

典型工藝:氧化,離子注入,光刻,刻蝕,擴散,澱積。/0.13,90,65

製造工藝:我們經常說的0.18微米、0.13微米製程,就是指製造工藝了。製造工藝直接關係到cpu的電氣性能。而0.18微米、0.13微米這個尺度就是指的是cpu核心中線路的寬度。線寬越小,cpu的功耗和發熱量就越低,並可以工作在更高的頻率上了。所以以前0.18微米的cpu最高的頻率比較低,用0.13微米製造工藝的cpu會比0.18微米的製造工藝的發熱量低都是這個道理了。

97、請描述一下國內的工藝現狀。

98、半導體工藝中,摻雜有哪幾種方式?

根據摻入的雜質不同,雜質半導體可以分為N型和P型兩大類。 N型半導體中摻入的雜質為磷等五價元素,磷原子在取代原晶體結構中的原子並構成共價鍵時,多餘的第五個價電子很容易擺脫磷原子核的束縛而成為自由電子,於是半導體中的自由電子數目大量增加,自由電子成為多數載流子,空穴則成為少數載流子。P型半導體中摻入的雜質為硼或其他三價元素,硼原子在取代原晶體結構中的原子並構成共價鍵時,將因缺少一個價電子而形成一個空穴,於是半導體中的空穴數目大量增加,空穴成為多數載流子,而自由電子則成為少數載流子。

99、描述CMOS電路中閂鎖效應產生的過程及最後的結果?

閂鎖效應是CMOS工藝所特有的寄生效應,嚴重會導致電路的失效,甚至燒毀晶元。閂鎖效應是由NMOS的有源區、P襯底、N阱、PMOS的有源區構成的n-p-n-p結構產生的,當其中一個三極體正偏時,就會構成正反饋形成閂鎖。避免閂鎖的方法就是要減小襯底和N阱的寄生電阻,使寄生的三極體不會處於正偏狀態。靜電是一種看不見的破壞力,會對電子元器件產生影響。ESD 和相關的電壓瞬變都會引起閂鎖效應(latch-up)是半導體器件失效的主要原因之一。如果有一個強電場施加在器件結構中的氧化物薄膜上,則該氧化物薄膜就會因介質擊穿而損壞。很細的金屬化跡線會由於大電流而損壞,並會由於浪涌電流造成的過熱而形成開路。這就是所謂的「閂鎖效應」。在閂鎖情況下,器件在電源與地之間形成短路,造成大電流、EOS(電過載)和器件損壞。

100、解釋latch-up現象和Antenna effect及其預防措施.

在晶元生產過程中,暴露的金屬線或者多晶硅(polysilicon)等導體,就象是一根根天線,會收集電荷(如等離子刻蝕產生的帶電粒子)導致電位升高。天線越長,收集的電荷也就越多,電壓就越高。若這片導體碰巧只接了MOS 的柵,那麼高電壓就可能把薄柵氧化層擊穿,使電路失效,這種現象我們稱之為「天線效應」。隨著工藝技術的發展,柵的尺寸越來越小,金屬的層數越來越多,發生天線效應的可能性就越大(完)

Advertisements

你可能會喜歡