IC 設計與硬體面試常見問題

依主題整理 IC 設計與硬體工程師面試常見的基礎題目,每個主題8題。可展開解答確認,點選題目則可查看完整解析。想一次練習整個主題時,請使用「整組作答」。

邏輯電路與計算機算術

  1. 2輸入NAND閘的輸出何時為0?
    顯示解答

    兩個輸入皆為1時

    NAND是AND的反相,輸出為0的情況只有所有輸入皆為1時,其他情況皆為1。僅用NAND即可做出NOT、AND、OR,因此稱為「通用閘」;在CMOS中只需4個電晶體即可實現,元件數比AND還少(AND是NAND加上反相器,共6個)。因此在標準單元的邏輯合成中,電路多以NAND、NOR為基礎來組成;NAND快閃記憶體之名,也是源自其記憶單元串聯的結構類似NAND。

  2. 在8位元中,以低4位元作為小數部分的定點數(無號數),位元串 0011 1000 所表示的值是多少?
    顯示解答

    3.5

    高4位元的0011為整數部分,值為3;低4位元的1000為小數部分,第1位元的權重為2⁻¹ = 0.5,因此表示0.5。合計3 + 0.5 = 3.5。換個說法,就是把位元串當作整數讀取所得的56,除以小數部分4位元對應的2⁴ = 16所得的值(56 ÷ 16 = 3.5)。56是忽略小數點而當作整數讀取的值,3.8則是把二進位的1000誤讀成十進位的「.8」。

  3. 依據笛摩根定理,與NOT(A AND B) 相等的邏輯式是哪一個?
    顯示解答

    (NOT A) OR (NOT B)

    笛摩根定理為 NOT(A AND B) = (NOT A) OR (NOT B)、NOT(A OR B) = (NOT A) AND (NOT B),將否定分配到括號內時,AND與OR會互換。用白話說,「兩者並非皆為真」=「至少有一個為假」。在電路圖中,NAND可改畫成「輸入帶圓圈的OR」,在處理負邏輯訊號或只用NAND組成電路時會用到。

  4. 下列何者是構成IEEE 754浮點數的3個部分的正確組合?
    顯示解答

    符號、指數部分、尾數

    浮點數以「(−1)^符號 × 1.尾數 × 2^指數」的形式表示值,並以3個部分記錄:表示正負的符號位元、表示2的幾次方的指數部分,以及表示有效位數的尾數。由於可藉由指數移動小數點的位置,因此以相同的位元數就能表示從極小到極大的數。分成整數部分與小數部分是定點數的概念,同位元則是用於偵測錯誤的位元。

  5. 下列哪一項是D型正反器的正確動作?
    顯示解答

    在時脈邊緣取入D輸入的值,並保持到下一個邊緣

    D型正反器在時脈的上升(或下降)邊緣取入D輸入的值,並保持到下一個邊緣。由於只看邊緣的瞬間,期間即使輸入變化,輸出也不會改變。它是CPU的暫存器、管線級的分隔、計數器等序向電路的基本元件,內部是將兩個鎖存器以主從(Master-Slave)方式連接的結構。要正確取入資料,必須遵守設置時間與保持時間。

  6. 在IEEE 754的雙精度(64位元)浮點數中,下列何者是指數部分與尾數位元數的正確組合?
    顯示解答

    指數部分11位元、尾數52位元

    雙精度(FP64)由符號1位元、指數部分11位元、尾數52位元,共64位元構成。指數的偏移值(bias)為1023,可表示約10⁻³⁰⁸~10³⁰⁸的範圍,包含開頭的1在內共53位元的精度,相當於十進位約15~16位數。其指數部分與尾數都比單精度更寬,在科學技術計算中被廣泛作為標準使用。指數部分8位元是維持單精度的寬度而只加寬尾數的組合,並非規格中的格式。

  7. 2輸入XOR(互斥或)閘的輸出何時為1?
    顯示解答

    兩個輸入不同時

    XOR在兩個輸入不同時輸出1,相同時輸出0。以式子表示為 A⊕B = A·¬B + ¬A·B。也可視為「一個輸入為1時將另一個反相,為0時則原樣通過」,可當作受控反相器使用。它用途廣泛,例如半加器的和、比較電路(偵測一致用XNOR)、同位元的計算,以及加密的串流加密與CRC的計算。

  8. 在IEEE 754的正規化數中,不記錄尾數開頭的1(隱藏位元)所產生的效果,下列何者正確?
    顯示解答

    以相同的位元數,精度可增加1位元

    以二進位正規化後,非0的數必定是「1.xxx × 2^指數」的形式,開頭恆為1。既然是已確定的1,就不需要特地記錄,可省略後把該位元用於小數部分。因此在單精度中,即使尾數只記錄23位元,精度仍有24位元。不過,在指數部分全為0的非正規化數中,開頭視為0。負數是以符號位元表示,捨入誤差也不會因此消失。

整組作答 →

CMOS 與 MOSFET

  1. 在不改變閘極絕緣膜的材料與面積的情況下,只將膜厚變薄,單位面積的閘極電容會如何變化?
    顯示解答

    變大

    閘極電容可視為平行板電容器,單位面積的電容為 Cox = ε/t。膜厚變薄則電容變大,在相同閘極電壓下通道中感應的電荷增加,驅動電流隨之增加,也能抑制短通道效應。然而當SiO2薄化至約1.2 nm時,穿隧電流造成的閘極漏電已達極限,因此改用可在物理上加厚的HfO2系High-k材料:英特爾自45 nm世代(2007年)起,多數其他廠商則自28至32 nm世代起採用。

  2. 下列關於 GAA(環繞式閘極,Gate-All-Around)型電晶體的說明,何者正確?
    顯示解答

    閘極包覆奈米片等通道的整個外圍

    GAA 型是將數片厚度數 nm 的薄片狀(奈米片)或細線狀通道堆疊起來,並以閘極包覆其整個外圍的結構。由於從四個方向控制,閘極的控制力比 FinFET 更強,即使閘極長度更短也能抑制短通道效應。Samsung 於 3 nm 世代(2022 年)、TSMC 於 2 nm 世代、Intel 於 18A 世代採用,成為繼 FinFET 之後的標準結構。

  3. 在相同尺寸的nMOS與pMOS中,一般而言nMOS的驅動電流較大,其主要原因為何?
    顯示解答

    因為在通道中流動的電子遷移率大於電洞遷移率

    nMOS中是電子、pMOS中是電洞在通道內流動,而在矽的反轉層中,電子遷移率約為電洞的2~3倍,因此相同尺寸下nMOS能流過較大的電流。CMOS中會加寬pMOS的閘極寬度來取得平衡。在先進製程中,藉由SiGe的壓縮應變提高pMOS遷移率,且FinFET中電洞容易流動的(110)面成為鰭片側壁,使兩者的差距已大幅縮小。

  4. 下列何者屬於 MOSFET 的短通道效應?
    顯示解答

    縮短閘極長度時,臨界電壓下降,關閉時的漏電流增加

    閘極長度縮短後,源極與汲極的空乏層相對變大,通道中一部分電荷改由源極、汲極而非閘極來控制。結果會發生臨界電壓下降(roll-off)、因汲極電壓導致的臨界電壓下降(DIBL)、次臨界擺幅惡化、關閉時漏電流增加等現象。另一個問題是,只要製造變異使閘極長度稍有改變,特性就會大幅變動。

  5. 在n通道MOSFET中,若相對於源極對基板(體)施加負電壓(施加基板偏壓),臨界電壓會如何變化?
    顯示解答

    上升

    在源極與基板之間施加逆向偏壓時,閘極下方的空乏層會擴大,空乏層電荷增加,為了抵消它就需要更大的閘極電壓,因此臨界電壓上升(基板偏壓效應、體效應)。在串聯的電晶體中,上方電晶體的源極電位會升高,因此這個效應使Vth上升而變慢。反過來,也有利用這個特性,以基板電壓調整Vth來減少漏電的手法。

  6. 閘極絕緣膜使用 High-k(高介電常數)材料的主要原因為何?
    顯示解答

    使用介電常數高的材料,就能在加厚實體膜厚、抑制穿隧電流的同時,獲得較大的閘極電容

    當 SiO2 薄於約 1.2 nm 時,由穿隧電流造成的閘極漏電會隨膜厚每減少 0.1 nm 成倍數急遽增加。若使用相對介電常數約 20~25 的鉿系氧化物,在相同閘極電容下可將實體膜厚增為數倍,把漏電抑制數個數量級。High-k 膜與多晶矽閘極的界面容易使臨界電壓被固定(費米能階釘扎),因此與金屬閘極搭配使用,自 45 nm 世代(2007 年)起採用。

  7. 關於空乏型MOSFET的特徵,下列何者正確?
    顯示解答

    閘極電壓為0 V時通道仍然存在,有電流流過

    空乏型是通道事先已形成、即使閘極電壓為0 V也有電流流過(常開型)的MOSFET。若為n通道,則以負的閘極電壓消除通道來截止電流。在早期的NMOS邏輯中被用作負載元件。由於即使電源中斷也會導通,在安全方面需要留意,GaN的HEMT本質上也是常開型,因此會在結構上下工夫使其成為常閉型。

  8. 對電晶體通道施加應變(應力)之技術的主要目的為何?
    顯示解答

    提高載子的遷移率,增加驅動電流

    對矽晶體施加應變會改變能帶結構,使載子的有效質量與散射減少,遷移率因而提升。對 nMOS 而言,沿電流方向的拉伸應變有效,對 pMOS 則是壓縮應變有效;pMOS 採用在源極、汲極嵌入 SiGe 的方法,nMOS 則採用以具拉伸應力的氮化膜覆蓋等方法。自 90 nm 世代(約 2003 年)起導入,與微縮並列為提升性能的支柱。

整組作答 →

時序分析與 CDC

  1. 在時脈週期為 2.0 ns 的同步電路中,發送端正反器的時脈→輸出延遲為 0.2 ns,組合電路的延遲為 1.4 ns,接收端正反器的建立時間為 0.1 ns。若時脈偏移為0,建立時間的餘裕是多少?
    顯示解答

    0.3 ns

    建立時間的餘裕以「要求時間 − 到達時間」求得。資料的到達時間為 0.2 + 1.4 = 1.6 ns,要求時間為下一個時脈邊緣減去建立時間的 2.0 − 0.1 = 1.9 ns,因此餘裕為 1.9 − 1.6 = 0.3 ns。由於是正值,表示滿足限制。0.4 ns 是忘了減去建立時間的值,0.5 ns 是反過來加上建立時間的值。餘裕為負即為違規。

  2. 在正反器之間的路徑上,時脈→輸出延遲為 0.15 ns,組合電路的最大延遲為 2.2 ns,建立時間為 0.15 ns。忽略時脈偏移與時脈不確定性時,此路徑可運作的最大時脈頻率是多少?
    顯示解答

    400 MHz

    最小時脈週期為時脈→輸出延遲、組合電路延遲與建立時間的總和。0.15 + 2.2 + 0.15 = 2.5 ns,因此最大頻率為 1 ÷ 2.5 ns = 400 MHz。約 425 MHz 是由忘了計入建立時間的 2.35 ns 算出的值,約 455 MHz 是只由組合電路延遲 2.2 ns 算出的值。整顆晶片的最大頻率,由這類路徑中最嚴苛的關鍵路徑決定。

  3. 關於STA報告中出現的WNS與TNS,下列說明何者正確?
    顯示解答

    WNS是最差的餘裕值,TNS是負餘裕的總和

    WNS(Worst Negative Slack)是所有路徑中最差的餘裕,可作為頻率能提高到多少的參考。TNS(Total Negative Slack)是將違規路徑各終點的負餘裕加總的值。例如若有3個 −0.1 ns 的終點,WNS為 −0.1 ns,TNS為 −0.3 ns。即使WNS的絕對值小,若TNS的絕對值大,就需要修正許多路徑。違規的條數以其他指標表示,WNS與TNS則分別針對建立時間與保持時間求出。

  4. 有一條時脈週期 1.0 ns、時脈→輸出延遲 0.1 ns、組合電路延遲 0.85 ns、建立時間 0.08 ns 的路徑。當接收端正反器的時脈比發送端晚 0.05 ns 到達時,建立時間的餘裕是多少?
    顯示解答

    +0.02 ns

    接收端的時脈較晚到達(正的時脈偏移)時,取入資料的邊緣往後移,因此建立時間可用的時間增加。要求時間為 1.0 + 0.05 − 0.08 = 0.97 ns,到達時間為 0.1 + 0.85 = 0.95 ns,因此餘裕為 +0.02 ns。−0.03 ns 是忽略時脈偏移的值,−0.08 ns 是把時脈偏移的方向弄反(當成接收端較早到達)的值。需注意,同樣的時脈偏移對保持時間是不利的。

  5. 接收端正反器的時脈比發送端晚到達(正的時脈偏移)時,對建立時間與保持時間的影響,下列何者正確?
    顯示解答

    建立時間的餘裕增加,保持時間變得更嚴苛

    建立時間檢查的是在下一個邊緣的取入,因此接收端的邊緣越晚,越能等待資料到達。另一方面,保持時間檢查的是在同一邊緣送出的新資料是否會覆寫先前的資料,因此接收端的邊緣越晚,新資料過早到達的風險就越高。例如時脈偏移為 +0.1 ns 時,建立時間的餘裕增加 0.1 ns,保持時間的餘裕減少 0.1 ns。負的時脈偏移則相反。

  6. 發送端的時脈→輸出延遲最小為 0.08 ns,組合電路的最小延遲為 0.02 ns,接收端的保持時間為 0.05 ns。當接收端的時脈比發送端晚 0.1 ns 到達時,保持時間的餘裕是多少?
    顯示解答

    −0.05 ns(違規)

    保持時間的餘裕為「到達時間 − 要求時間」,檢查資料是否過早到達。資料的最小到達時間為 0.08 + 0.02 = 0.10 ns,要求時間為接收端時脈到達的 0.1 ns 加上保持時間 0.05 ns 的 0.15 ns,因此餘裕為 0.10 − 0.15 = −0.05 ns,屬於違規。+0.05 ns 是忽略時脈偏移的值,+0.15 ns 是把時脈偏移以有利的方向加上去的值。這是在移位暫存器等中間邏輯很少的路徑上容易發生的違規。

  7. 在以同一時脈的上升邊緣進行送出與取入的一般路徑上,發現了保持時間違規(餘裕 −0.03 ns)。將時脈頻率降為一半時,關於此違規的敘述何者正確?
    顯示解答

    保持時間的檢查與時脈週期無關,因此違規仍然存在

    保持時間的檢查,是確認在同一時脈邊緣送出的新資料,是否會在接收端破壞先前的資料;在這類路徑上,算式中不含時脈週期。因此即使降低頻率,−0.03 ns 的餘裕也不會改變,也不會惡化。另一方面,建立時間取決於週期,降低頻率就能挽救。製造後才發現的保持時間違規,容易成為無法以調整頻率修正的致命缺陷,因此在設計階段確實修正十分重要。

  8. 為了修正保持時間違規,在資料路徑中插入延遲用的緩衝器。此時最重要的確認事項是哪一項?
    顯示解答

    增加的延遲不會使同一路徑的建立時間餘裕不足

    保持時間違規是資料過早到達,因此在資料路徑加上延遲使其延後到達。但加上的延遲也會延後建立時間的到達時間。在快速角落使保持時間改善 0.05 ns 的緩衝器,在慢速角落有時會成為 0.1 ns 以上的延遲,因此必須在建立時間有餘裕的範圍內插入。若接收端的時脈也加入相同延遲,改善量會被抵銷;提高驅動能力以減少延遲則與目的相反。

整組作答 →

HDL 與驗證

  1. 以Verilog等HDL撰寫的描述,與C語言等軟體程式的最大差異,下列何者正確?
    顯示解答

    HDL的描述表示的是同時並行運作的電路

    HDL外觀看起來像程式,但所寫的內容會經由邏輯合成變成閘極與正反器所構成的電路。電路的各個部分隨時都在同時運作,因此多個assign語句或always區塊,無論撰寫順序為何,都會並行運作。如果像軟體一樣以「這個處理結束後再做下一個」的方式思考,就無法得到預期的電路,所以撰寫時想像會產生什麼樣的電路是很重要的。

  2. 在Verilog中使用module的目的,下列何者正確?
    顯示解答

    定義具有輸入與輸出端子(連接埠)的電路零件,使其能在其他module中使用

    module是定義具有輸入與輸出連接埠的電路單位,可表示加法器、計數器乃至整個CPU等。定義好的module可在其他module中當作零件重複使用(實體化),並將連接埠以佈線相連,組裝成更大的電路。就像在基板上排列零件並佈線一樣,可以階層式地建構電路。

  3. Verilog的wire型與reg型的差異,下列何者正確?
    顯示解答

    wire表示以assign語句等相連的佈線,reg表示在always區塊中被賦值的訊號,但reg不一定會成為正反器

    在Verilog中,規定由assign語句或module輸出所驅動的訊號宣告為wire,在always區塊中被賦值的訊號宣告為reg。reg看起來像是「暫存器(register)」的縮寫,但若在always @(*)中賦值,就會成為組合電路,而不是正反器。是否成為正反器,取決於是否以時脈邊緣更新值的寫法。在SystemVerilog中,兩者都可以用logic型來撰寫。

  4. Verilog的非阻塞賦值(<=)的動作,下列何者正確?
    顯示解答

    先評估同一時間點的所有右邊,之後再一併更新左邊

    在非阻塞賦值中,於時脈邊緣時,所有<=的右邊會先以舊值評估,之後再同時改寫左邊。這與以相同時脈動作的眾多正反器在邊緣之前同時取入值的實際電路動作相同。因此,對於以時脈動作的序向電路的描述,原則上應使用非阻塞賦值。

  5. 在Verilog中區分使用賦值種類時的一般準則,下列何者正確?
    顯示解答

    以時脈動作的序向電路使用非阻塞賦值(<=),組合電路的always使用阻塞賦值(=)

    以非阻塞賦值撰寫序向電路時,會與所有正反器同時取入值的電路動作一致,結果不會受到描述順序或與其他always區塊執行順序的左右。在組合電路中,由上而下依序計算中間值的寫法較為自然,因此使用阻塞賦值。此外,在同一個always區塊中不要混用兩者也很重要。

  6. 在Verilog中寫「always @(*)」的意義,下列何者正確?
    顯示解答

    表示每當區塊中所讀取的任一訊號改變就執行的組合電路

    always後面@( )中的內容稱為敏感度清單,用來指定當哪些訊號改變時要執行該區塊。寫成「*」,就等於自動列出了區塊中所讀取的所有訊號,能正確表示組合電路。以手動列出容易有遺漏,因此組合電路使用「@(*)」或SystemVerilog的always_comb較為安全。

  7. 在組合電路的always區塊中,為了防止非預期的閂鎖器而常用的寫法為何?
    顯示解答

    在區塊開頭,先對輸出的所有訊號賦予預設值,再撰寫條件分支

    在區塊開頭像「y = 0; valid = 0;」一樣先為輸出賦予預設值,之後的條件分支無論走哪條路徑,至少都已賦予預設值,因此不需要保持值,也就不會產生閂鎖器。這在條件眾多的狀態機輸出描述等情況特別有用。若使用SystemVerilog的always_comb,產生閂鎖器時工具會發出警告。

  8. 下列Verilog的描述中,在邏輯合成時不會成為電路而被忽略的(模擬用描述)是哪一個?
    顯示解答

    像#10這樣的延遲指定

    「#10」表示在模擬中將時間推進10個單位,但邏輯合成無法產生延遲,所以會忽略它。電路實際的延遲取決於所使用的閘極與佈線。此外,像$display這類顯示指令,以及檔案的讀寫等測試平台用的描述,也不會成為電路。若在要合成的RTL中混入這類描述,就會成為模擬與實機動作不同的原因。

整組作答 →

CPU 與記憶體階層

  1. 設置快取記憶體的主要目的,下列何者正確?
    顯示解答

    為了將常用資料放在 CPU 附近,縮小與主記憶體之間的速度差距

    CPU 處理一個時脈只需 0.2〜0.3 ns,但存取 DRAM 需要數十〜100 ns,也就是數百個時脈。因此將常用的資料與指令放在高速 SRAM 的快取中,以減少等待時間。快取利用的是短時間內會再次使用相同資料的時間局部性,以及會連續使用相鄰位址的空間局部性;L1 只需數個時脈即可存取,即使是 L3 也只需數十個時脈。

  2. 下列何者最適合作為時間局部性的例子?
    顯示解答

    在迴圈中多次更新同一個加總用的變數

    時間局部性是指用過一次的資料在不久之後會再次被使用的性質,在迴圈內反覆讀寫的變數就是典型例子。這類資料在仍留在快取或暫存器的期間會被重複使用,因此存取速度變快。從頭依序讀取陣列,是連續使用相鄰位址的空間局部性的例子,與時間局部性是不同的性質。隨機只讀取一次的存取,幾乎兩種局部性都不具備。

  3. 關於馮紐曼型(von Neumann)電腦的特徵,下列何者正確?
    顯示解答

    將程式(指令)與資料存放在同一個主記憶體中,依序讀出指令並執行

    馮紐曼型(stored-program 儲存程式方式)將指令與資料放在同一個主記憶體中,由 CPU 依序讀出指令並執行。其優勢在於能把程式當作資料來改寫,具有高度彈性,是現今電腦的基礎。另一方面,指令與資料爭用同一條路徑會成為速度上的限制,稱為馮紐曼瓶頸。因此許多 CPU 會將 L1 快取分成指令用與資料用(哈佛型的觀念)。

  4. 位址為32位元、容量32 KB、快取行大小64位元組的直接映射(direct-mapped)快取,其標籤(tag)為幾位元?
    顯示解答

    17位元

    快取行大小64位元組 = 2⁶,所以偏移量(offset)為6位元。行數為 32 KB ÷ 64 B = 32768 ÷ 64 = 512 = 2⁹,在直接映射中行數就是組數,所以索引(index)為9位元。其餘為標籤,32 − 9 − 6 = 17位元。19位元是改為4路組相聯、索引減少2位元時的值,不適用於直接映射。

  5. 在單一晶片上搭載多個處理器核心(多核心化)的主要目的為何?
    顯示解答

    藉由平行處理,提高每單位功耗的處理效能

    動態功耗與電壓的平方及頻率成正比,因此在 2000 年代中期,若持續提高時脈頻率,發熱量便達到極限(約 100 W 等級)。於是業界轉向以相同的功耗並排多個核心、分攤處理來提升效能。若將頻率稍微調低並改用兩個核心,每單位功耗的效能會大幅提升。不過,要發揮其效能,軟體端必須將處理平行分割。

  6. 在全相聯(fully associative)快取中,位址之中用於索引(選擇組的部分)的位元數為下列何者?
    顯示解答

    0位元

    在全相聯方式中,任何資料都能放在快取內的任何位置,因此整體只有一組。因為不需要選擇組,索引為0位元,位址只分為偏移量與標籤,每次存取都要與所有快取行的標籤比較。因此需要大量比較器,不適合大型快取,而被用於TLB等小型結構。由快取行大小決定的是偏移量的位元數,並非索引。

  7. 關於 RISC(精簡指令集電腦)的特徵,下列何者正確?
    顯示解答

    將指令精簡為單純且數量少的集合,使管線化處理更容易進行

    RISC 的設計理念是將指令精簡為單純且長度一致的集合,運算在暫存器之間進行,與記憶體的往來僅限於載入(load)與儲存(store)指令。由於各指令的處理時間一致,適合管線化,代表例有 ARM 與 RISC-V。具有複雜指令的 CISC(如 x86)現今在內部也會將指令分解成單純的 μOP 來執行,因此兩者的差異正在縮小。

  8. L1快取的命中時間為1 ns、未命中率為5%,L2快取的命中時間為10 ns、L2的區域未命中率為20%,主記憶體的存取時間為100 ns時,平均記憶體存取時間為多少?
    顯示解答

    2.5 ns

    L1的未命中代價,是L2的平均存取時間 10 + 0.2 × 100 = 30 ns。因此平均記憶體存取時間為 1 + 0.05 × 30 = 1 + 1.5 = 2.5 ns。2.0 ns是漏加L2的命中時間10 ns、算成 1 + 0.05 × (0.2 × 100) 的值。6.0 ns是把主記憶體的100 ns直接乘上L1的未命中率再相加的值,忽略了L2的效果。

整組作答 →

記憶體(DRAM、SRAM、快閃記憶體)

  1. DRAM需要定期執行更新(refresh)動作的原因,下列何者正確?
    顯示解答

    因為儲存在電容中的電荷會因漏電流而逐漸流失

    電容的電荷會因單元電晶體的次臨界漏電(subthreshold leakage)與接面漏電而一點一點流失。在資料無法判讀之前先讀出並重新寫入,就是更新,在DDR4以前的規格中要在64 ms內、DDR5則要在32 ms內將所有列輪過一遍。更新期間該記憶體區塊(bank)無法存取,也會消耗電力,因此容量越大負擔越重。寫入次數有上限是快閃記憶體的特徵。

  2. 下列關於一般 6 電晶體型 SRAM 單元的組成,何者正確?
    顯示解答

    兩個交叉連接的反相器,加上兩個存取電晶體

    6T SRAM 單元由閂鎖電路(4 個電晶體,兩個反相器彼此的輸出接到對方的輸入)與 2 個控制位元線連接的存取電晶體所組成。由於以正回授維持狀態,只要電源開啟就不需要更新。單元面積約為 120~150F²,大約是 DRAM 的 20 倍,但可用與邏輯電路相同的製程製作且速度快,因此是 CPU 快取記憶體的主力。

  3. 關於DRAM讀取動作的特徵,下列何者正確?
    顯示解答

    讀取時單元的電荷會改變,因此以感測放大器放大後再寫回單元

    將單元的電容連接到位元線後,電荷會與位元線龐大的寄生電容分攤,使原本的狀態遭到破壞(破壞性讀取)。因此感測放大器會將數十~一百數十mV的差異放大以判定0/1,同時用放大後的電壓寫回單元。這個寫回動作實質上與更新作用相同,所以更新是透過啟動並關閉列來進行的。

  4. 快閃記憶體中,一個記憶單元儲存 3 位元資訊的方式稱為什麼?
    顯示解答

    TLC

    依每個單元儲存的位元數,分別稱為 SLC(1 位元)、MLC(2)、TLC(3)、QLC(4)。TLC 要區分 8 種臨界電壓狀態,在相同單元數下容量為 SLC 的 3 倍。位元數越多成本越低,但狀態間隔變窄,在改寫次數、速度與資料保存方面較為不利。目前一般的 SSD 以 TLC 為主流,大容量產品也越來越多採用 QLC。

  5. 為了確保DRAM單元的電容容量,一直以來使用的立體結構組合,下列何者正確?
    顯示解答

    溝槽式與堆疊式

    為了在單元縮小後仍確保約10 fF左右的電容,DRAM一直將電容立體化。有在基板上挖深溝的溝槽式(trench),以及在電晶體上方堆疊高聳圓柱的堆疊式(stack),目前以堆疊式為主流。先進產品的電容直徑為數十nm,高度卻超過1 µm,深寬比高達數十,並以支撐膜加固以免倒塌。浮動閘極與電荷捕捉是快閃記憶體的結構。

  6. 快閃記憶體寫入、抹除資料的原理,下列何者正確?
    顯示解答

    讓電子進出浮動閘極或電荷捕捉層,以改變電晶體的臨界電壓

    快閃記憶體的單元,是在閘極下方具有儲存電子的浮動閘極(或電荷捕捉層)的電晶體。以高電壓藉由穿隧電流等讓電子進出時,臨界電壓會改變,並以此差異區分 0 與 1。由於電子被厚度數 nm 的絕緣膜包圍,即使斷電也能保存約 10 年。讀取時,對閘極施加某一電壓,檢查是否有電流流過。

  7. 下列何者是DRAM的性質?
    顯示解答

    是斷電後資料即消失的揮發性記憶體

    DRAM以電荷來記憶資訊,斷電後電荷無法保持,資料便會消失,是揮發性記憶體。即使通電也需要更新,這點與同為揮發性的SRAM不同。不過,在剛斷電後立即冷卻,資料有時會殘留數秒至數分鐘,利用這一點讀取記憶體內加密金鑰的「冷開機攻擊(cold boot attack)」廣為人知。屬於非揮發性的是快閃記憶體等。

  8. 關於 3D NAND 型快閃記憶體的說明,下列何者正確?
    顯示解答

    將大量記憶單元沿垂直方向堆疊以達成大容量化的記憶體

    由於平面微縮在 15 nm 前後逼近極限,NAND 將單元往縱向堆疊的 3D NAND 自 2013 年前後開始量產,並成為主流。在交替堆疊導電層與絕緣層的厚膜上,一次打出深的圓柱狀孔洞(通道孔),再在孔壁上製作單元。不必勉強縮小單元即可增加容量,也能減少干擾。每個單元 3 位元指的是 TLC,常與 3D NAND 搭配使用。

整組作答 →

設計流程與 EDA

  1. 一般數位LSI的設計流程順序,下列何者正確?
    顯示解答

    規格設計 → RTL設計 → 邏輯合成 → 佈局繞線

    首先在規格設計決定功能與效能,並以Verilog或VHDL等硬體描述語言進行RTL設計。接著以邏輯合成轉換為閘級網表,再以佈局繞線製作晶片上的佈局。每個階段都要進行驗證,最後輸出為光罩資料。這是由抽象程度高的描述逐步落實為具體形態的流程,因此其他順序都不成立。先進產品從規格確定到下線(tape-out)有時需要1~2年。

  2. 關於邏輯合成的說明,下列何者正確?
    顯示解答

    將RTL的描述轉換為由單元庫的邏輯閘所構成之網表的步驟

    邏輯合成是將以RTL撰寫的電路動作描述,轉換為單元庫中邏輯閘與正反器的連接資訊(網表)的設計步驟。給定時序、面積、耗電量的限制條件後,工具會簡化邏輯式,並選擇驅動力適當的單元,進行最佳化以滿足限制條件。排列單元並繞線的是佈局繞線,轉印到晶圓上的則是微影。

  3. 關於靜態時序分析(STA)的說明,下列何者正確?
    顯示解答

    不使用測試圖樣,而是計算電路各路徑的延遲,驗證是否滿足時序限制

    STA是將電路所有訊號路徑(path)上單元與佈線的延遲累加計算,全面檢查是否滿足建立時間與保持時間等時序限制的方法。它不需要測試圖樣,連使用圖樣時會漏看的路徑也能完整確認,因此是大規模LSI時序驗證的核心。但它不會檢查邏輯是否正確,所以功能驗證必須另以模擬等方式進行。

  4. RTL設計主要使用的硬體描述語言為下列何者?
    顯示解答

    Verilog HDL或VHDL

    RTL設計是以Verilog HDL(及其擴充版SystemVerilog)或VHDL等硬體描述語言,描述每個時脈下資料如何在暫存器之間流動。與軟體語言不同,所描述的處理會以電路形式同時並行運作。HTML是網頁的描述語言,SQL是資料庫的查詢語言,都無法描述電路。

  5. 關於佈局驗證中DRC(設計規則檢查)的說明,下列何者正確?
    顯示解答

    驗證佈局是否滿足最小線寬與間距等製造上的規則

    DRC是檢查佈局的圖形是否違反最小線寬、間距、重疊、密度等由製造製程所決定的設計規則之驗證。在先進製程中規則多達數千條,由工具自動確認。確認電路圖與佈局連接是否一致的是LVS(Layout Versus Schematic),確認邏輯功能的則是模擬。DRC與LVS在輸出光罩資料前必定要進行。

  6. 不使用模擬,而以數學方式確認邏輯合成前後電路邏輯沒有改變的方法,為下列何者?
    顯示解答

    形式等價性驗證(形式驗證)

    形式等價性驗證是以數學方法,全面確認兩個電路是否實現相同邏輯函數的驗證。不需要準備測試圖樣,就能保證所有輸入組合的等價性,因此用於邏輯合成、佈局繞線、ECO前後的確認。若以模擬嘗試所有組合,輸入只要有數十位元就不可能做到。DRC是檢查圖形規則。

  7. 關於標準單元式設計的說明,下列何者正確?
    顯示解答

    將事先設計並驗證好的邏輯閘等單元排列並繞線,來建構電路

    標準單元式是將NAND或正反器等基本電路,事先設計並驗證為高度一致的單元,再由邏輯合成與佈局繞線工具把它們排成列並連接。由於高度一致,電源佈線可以共用,也容易自動化。大規模數位LSI多半採用這種方式。全部以人工設計的是全客製(full custom),製造後可改寫的則是FPGA。

  8. 關於FPGA的特徵,下列何者正確?
    顯示解答

    製造後,使用者可以改寫邏輯電路的組態

    FPGA是可在製造後以設定資料改寫具有小型真值表(LUT)的邏輯區塊及佈線連接方式的元件。由於不像ASIC那樣需要製造時間與光罩費用,因此用於試作、少量生產,以及需要功能更新的設備。另一方面,因為需要額外的改寫用電路,相同電路下ASIC在速度、耗電量、面積上都更有優勢。它並不是類比專用的元件。

整組作答 →

測試與 DFT

  1. 關於晶圓測試(探針測試)的說明,下列何者正確?
    顯示解答

    在切割前,將探針接觸晶圓上的各個晶片,檢測其電氣特性

    在晶圓測試中,探針台(prober)會移動晶圓,使探針卡的探針接觸晶片的電極焊墊,並以測試機檢測電氣特性與功能。若能在此階段找出不良晶片,就不會浪費封裝的材料費與組裝的工夫。這是因為不良越晚在後段製程被發現,損失越大。封裝密封後的檢測是最終測試,長期使用以調查故障率的則是可靠度試驗。

  2. 下列何者是burn-in(老化測試)的正確目的?
    顯示解答

    施加高溫、高電壓等應力,在出貨前剔除會發生早期故障的產品

    Burn-in是一種篩選方式,在約125 ℃的高溫與高於額定的電壓下,讓產品運作數小時至數十小時,使具有潛在缺陷的產品提早故障而加以剔除。其目的是在出貨前先度過浴缸曲線的早期故障期,用於車用或伺服器用等需要高可靠度的產品。其目的與外觀檢查或膜厚量測不同。

  3. 關於可測試性設計(DFT)之一的掃描設計,下列說明何者正確?
    顯示解答

    將電路內的正反器連接成位移暫存器的形式,使內部狀態的設定與觀測變得容易

    在掃描設計中,會在各正反器的輸入加上切換用的選擇器,測試時將它們串接起來(掃描鏈),能從外部以位移方式設定任意值,並以位移方式讀出內部的值。由於循序電路的測試被轉換為組合電路的測試,因此可用ATPG自動產生高故障涵蓋率的測試圖樣。這與以顯微鏡掃描或電壓掃描是不同的事。

  4. 半導體的DC測試(直流特性試驗)主要確認的項目為下列何者?
    顯示解答

    輸入輸出端子的漏電流、電壓準位與消耗電流

    DC測試會量測輸入輸出端子的漏電流、輸出電壓的H與L準位、輸入的臨界值,以及待機時與運作時的消耗電流等,確認直流電氣特性是否符合規格。一般會先進行接觸測試(contact test),對各端子的保護二極體通電,以確認探針的接觸以及是否有斷線、短路。邏輯功能由功能測試確認,外觀則由外觀檢查確認。

  5. 關於BIST(內建自我測試)的說明,下列何者正確?
    顯示解答

    將測試用的電路內建於晶片中,由晶片自行進行測試

    BIST是在晶片中內建測試圖樣產生電路與結果判定電路,由晶片自行執行測試的機制。記憶體用的MBIST能高速產生March測試等圖樣,邏輯電路用的LBIST則使用偽隨機圖樣。除了能減少對昂貴測試機的依賴與測試時間之外,車用產品還有每次上電時,出貨後也能進行自我診斷的優點。

  6. 關於探針卡的說明,下列何者正確?
    顯示解答

    使針接觸晶圓上晶片的電極,與測試機形成電氣連接的治具

    探針卡是配合晶片電極焊墊的配置排列許多探針、依產品而定的專用治具。探針台以相機對準晶圓的位置,抬高載台(chuck)使探針與焊墊接觸,將測試機與晶片電氣連接。探針的方式有斜針的懸臂式、垂直式,以及以MEMS技術製作的類型。這與封裝用的模具或搬運容器是不同的東西。

  7. 關於邏輯電路測試中使用的固定型故障(stuck-at fault)模型,下列說明何者正確?
    顯示解答

    訊號線的值被固定為0或1的故障

    固定型故障模型假設電路內的某條訊號線永遠固定為0(stuck-at-0)或永遠固定為1(stuck-at-1),若訊號線有n條,則考慮2n個故障。它雖然簡單,卻能代表短路、斷線等許多實體缺陷,是ATPG與故障涵蓋率評估的基礎。訊號變慢的故障以延遲故障模型處理,溫度上升則不屬於故障模型。

  8. 下列何者是測試圖樣的故障涵蓋率(fault coverage)的正確定義?
    顯示解答

    在所假設的故障中,該測試能偵測到的故障所占的比例

    故障涵蓋率是指在所建立模型的全部故障中,測試圖樣能偵測到的故障所占的比例。被漏掉的不良比例,可使用良率Y與故障涵蓋率T,以DL=1−Y^(1−T)估算,即使Y=0.5、T=99%,也約為0.7%(約7000 DPPM)。因此車用等領域要求遠高於99%的數值。它與出貨品的不良品率或良率本身是不同的指標。

整組作答 →

類比電路

  1. 下列哪一組是理想運算放大器特性的正確組合?
    顯示解答

    輸入阻抗:無限大,輸出阻抗:0

    理想運算放大器視為輸入阻抗無限大(輸入端子無電流流入)、輸出阻抗為0(輸出電壓不受負載影響)、開迴路增益無限大。由這些假設可知,在負回授電路中兩個輸入端子的電壓相等,即成立「虛短路」,電路的增益僅由電阻比決定。實際的開迴路增益約為10⁵〜10⁶,且會隨頻率下降。

  2. 由電阻R = 1 kΩ與電容C = 1 µF構成的RC低通濾波器,其截止頻率最接近下列哪一個?
    顯示解答

    約160 Hz

    RC濾波器的截止頻率為 fc = 1/(2πRC),RC = 1×10³ × 1×10⁻⁶ = 1 ms,故 fc ≈ 159 Hz(約160 Hz)。在此頻率輸出為 −3 dB(約0.707倍),相位落後45°,高於此頻率後,頻率每增加10倍衰減 −20 dB。一階的衰減較為平緩,因此若要陡峭地截止,會使用運算放大器構成的二階以上主動濾波器。

  3. 在使用理想運算放大器的非反相放大電路中,輸入側電阻R1 = 10 kΩ、回授電阻R2 = 90 kΩ時,電壓增益為多少?
    顯示解答

    +10倍

    非反相放大電路的增益為 1 + R2/R1,1 + 90/10 = 10倍,輸出與輸入同相。由於輸入直接進入非反相輸入端,輸入阻抗非常高,優點是不會對訊號源造成負擔。增益不可能小於1倍(R2 = 0時為電壓隨耦器)。請不要與反相放大電路的 −R2/R1(此處為−9倍)混淆。

  4. 下列哪一項是對運算放大器電壓隨耦器的正確說明?
    顯示解答

    電壓增益為1,輸入阻抗高而輸出阻抗低,因此用作緩衝器

    電壓隨耦器是將輸出直接接到反相輸入的非反相放大電路(增益為1),輸出與輸入的電壓相同。由於輸入阻抗非常高而輸出阻抗低,用作緩衝器,可將內部電阻大的感測器或分壓電路的訊號不改變其值地傳給後級或負載。因為是負回授最深的結構,依運算放大器不同,可能因相位餘裕不足而容易振盪,需在資料手冊中確認「單位增益穩定」。

  5. 下列哪一項是對放大電路施加負回授的正確效果?
    顯示解答

    增益變小,但可得到增益穩定性提升、頻寬擴大與失真降低

    施加負回授時,由於從輸入減去輸出的一部分,增益會變小。作為代價,閉迴路增益約為 1/β(回授率的倒數),較不受元件差異與溫度影響,頻寬變寬,失真與輸出阻抗也減少為 1/(1 + 迴路增益)。運算放大器電路即以此特性為前提。不過在相位大幅轉動的頻率上變成正回授時就會振盪,因此必須確保相位餘裕。

  6. 差動放大電路的CMRR(共模拒斥比)大,其意義下列哪一項正確?
    顯示解答

    去除同樣加在兩個輸入上的雜訊(共模訊號)的能力高

    差動放大電路放大兩個輸入的差,理想上不放大同樣加在兩者上的成分(共模訊號)。CMRR是差動增益與共模增益的比值,一般運算放大器約為80〜120 dB。越大,對長佈線上的感應雜訊或電源擾動等共模雜訊越有抵抗力。不過CMRR會隨頻率上升而下降,外接電阻不匹配時也會惡化,因此需要精度時使用儀表放大器。

  7. 電壓增益為100倍的放大電路,其增益以分貝表示是多少?
    顯示解答

    40 dB

    電壓增益的分貝表示為 20 log₁₀(增益),20 × log₁₀100 = 40 dB。記住10倍為20 dB、2倍約6 dB、√2倍約3 dB會很方便。功率與電壓的平方成正比,因此使用10 log₁₀,功率100倍為20 dB。使用dB時,多級放大器的增益可用加法而非乘法計算,也便於處理範圍很廣的值。

  8. 在運算放大器的反相放大電路中,將回授電阻換成電容的電路稱為什麼?
    顯示解答

    積分電路

    輸入使用電阻R、回授使用電容C時,輸入電流 Vin/R 對C充電,因此輸出為 Vout = −(1/RC)∫Vin dt,與輸入的時間積分成正比。在頻率特性上是頻率每增加10倍增益下降20 dB的低通型。在直流下運算放大器的偏移也會被積分而使輸出飽和,因此實用上會在C並聯一個大電阻。用於波形整形、濾波器、雙斜率積分型ADC、PID的積分項。

整組作答 →

用硬體技術面試課程依領域練習