--- tags: 數位 IC 設計, 成功大學, IC, 數位邏輯, NCKU --- Chapter 1 : Introduction === ⬅️ 返回 [數位 IC 設計](https://hackmd.io/@maggie860326/digital_IC) 書本目錄 ## Hardware Implementation Methods or Algorithms can be implemented with : 1. **Hardware processor + suitable software programs (flexibility)**: - 用一般CPU加上程式來達到所需功能。有彈性可以實現任意功能,但是速度慢。 1. Pentium IV + suitable software programs (high-level language) 2. TI-DSP + suitable software programs 3. MCU(8051) + suitable software programs (low-level language) : 成本低,適合用在邊緣運算和車用各個部件的晶片 3. **Dedicated hardware circuits (faster)**: - 將所有需要的功能製作成硬體。速度快但只能執行特定功能。 1. old\_PCBs (TTL SSI, MSI chips and wires) 2. new\_PCBs(some devices, application specific integrated circuit-ASIC, wires) 3. **Some hardware circuits + software programs (to solve more complex problems)**: - 部分硬體、部分軟體,現在大部分都採用這種方式。 1. System on a board (memory, processor, ASIC, I/O, other devices) 2. System on a chip (SoC) ## 基本介紹 ### Digital System ![](https://i.imgur.com/8bKIyJU.jpg) digital circuit === IC (integrated circuit) ### Transistor ![](https://i.imgur.com/9HdkMvs.jpg) 簡單來說: Base有電壓則輸出為0,Base為0則輸出為1 ![](https://i.imgur.com/E9VH58z.jpg) ### Gate ( 1 gate ~= 2~14 transistors) A combination of interacting transistors ![](https://i.imgur.com/EHlXQPY.jpg) ### Circuit A combination of interacting gates designed to accomplish a specific logical function ### IC (Integrated Circuit) ![](https://i.imgur.com/IZ2SQUF.jpg) 數位IC通常只要做前段,後段會有tool可以幫忙,但如果是類比IC可能較要手動做。 ## 設計電路的流程 ### 設計電路的方法 - Schematic : 手動拉線串聯各個gate。 - HDL (Hardware Description Language) : 因為現在數位電路都數量龐大,所以改用硬體描述語言,用程式來描述邏輯閘,再由tool synthesis成邏輯閘。 - Mixed HDL & Schematic ![](https://i.imgur.com/wkqwsuL.jpg) ![螢幕擷取畫面 2023-11-29 160716](https://hackmd.io/_uploads/ryDA-_VB6.png) ![](https://i.imgur.com/Lq1Yr3d.jpg) ![](https://i.imgur.com/g1V5Ch0.jpg) ![](https://i.imgur.com/RAH2HAb.jpg) ![](https://i.imgur.com/dFcUOVK.png) - ==Full-custom design== (全客戶設計):通常是類比會需要。 - ==Semi-custom design== (半客戶設計): 利用程式工具來設計。 - ==Standard cell== : - 適合大量製造 : 第一個晶片需要高額成本,但之後都用相同製程,大量生產可降低成本。 - 沒有彈性 : 難以更改,所以通常會先做一些 dummy cell 在裡面,如果需要修改可以用來替換。 - 時間較長 : ASIC 設計屬於 NP complete 問題,需要較多時間來安排cell擺放位置。 - ==PLD== : - 適合少量 : FPGA 成本低,但如果量很大的時候還是 standard cell 較便宜。 - 設計彈性 : FPGA上面已經刻好cell,然後把電路燒上去,沒用完之後還可以燒其他電路。 - 時間較短 : 因為cell已經有了,所以不是 NP complete 問題。 ### Full Custom Design ![](https://i.imgur.com/Wa3okv4.jpg) ### Semi Custom Design ![](https://i.imgur.com/U1LVv3U.jpg) 設計步驟 : 1. Product specification : 制定規格。 2. 用 Verilog 或 HDL 設計 3. Synthesis : 將程式轉成邏輯閘->電晶體->layout 4. 模擬和驗證 ![](https://i.imgur.com/ArGmIQI.jpg) ## Synthesis ![](https://i.imgur.com/KnjkZQa.jpg) NAND 和 NOR 在邏輯閘上較快,所以合成時會轉成NAND和NOR ![](https://i.imgur.com/3MlRm6h.jpg) - ==Constraint-driven==: 你設下條件 (例如目標速度或成本),compiler給你最佳化的設計。 - Area與成本是相對應的,因為面積越大=邏輯閘越多=成本越高。 - 速度越快,成本越高。如果是嵌入式系統還要考慮功率消耗。三者彼此矛盾。 ![](https://i.imgur.com/IP3uHfZ.jpg) 三個要考慮的條件: - performance = speed - area = cost - testability : 為了要測得快、測的準,會加上額外的電路(可能20%),成本就會提高 ## IC 產業 ![](https://i.imgur.com/vLm1SOY.jpg) 數量越來越多 ![](https://i.imgur.com/d4Hsfbf.jpg) ![](https://i.imgur.com/33LpEwt.jpg) 製程技術進步(越來越小) ![](https://i.imgur.com/NetS91E.jpg) ![](https://i.imgur.com/wgNcPeu.jpg) ![](https://i.imgur.com/GeE45gU.jpg)