2018年9月9日 星期日

數位IC設計

有幸能踩進這IC產業,就來記錄一下自己對這個產業的認識吧。在跳進來之前,對這產業的故事只有網路上、書本上那些專有名詞,流程圖的概念,親身經歷才會對那些名詞有更具體的了解。

產業鏈

集成晶片(Integrated Chip, IC)的研發、生產是一個相當複雜的流程,所以產業上才會需要這麼多人來做這些事。而目前大多數的IC都是用半導體材料做成的,所以新聞界、金融界上都稱為"半導體"產業。半導體產業鏈的分工粗略分成以下流程:

豬屎屋(Design House) 設計、驗證 →
晶圓代工廠生產製造(Fabrication, Manufacture) →
封裝測試廠(Packaging and Testing) 做大量的晶片封裝與測試

基本上要確立產品的是豬屎屋,而下游就是負責開發更好、更先進的製程以製造出更好的東西,以及維持製造品質。
在這個設計MCU(微控制器)的工作上,接觸到滿多東西的,也可以學到很多,然而相對的就是要拿出時間來換取了。

數位設計流程

以前從書上看到畫著設計流程的流程圖都沒什麼感覺,唯有走過之後才對那些描述有感。在工程開發上,流程圖可以確立開發步驟及時程,提醒開發者該做什麼事,已完成及待完成的事,遵循著這流程走能盡量避免差錯。以下列了一個數位開發上的典型流程,每個階段都有故事可以詳述。
  1. 架構定義,設計目標定義 (spec. definition)
  2. 邏輯設計(Behavior-level/RTL-level design) --> 
  3. 邏輯模擬(RTLSIM),驗證設計(Verification) --> 
  4. 電路合成 (Synthesis) --> 
  5. 佈局前模擬(pre-sim) --> 
  6. 佈局及繞線 (Layout and APR) --> 
  7. 佈局後模擬 (post-sim) -->
  8. 設計送出(Tape-out)

設計工具

一般都是在Linux 環境上執行。EDA tool也都是在Linux上跑。因此學一些script language是必要的。熟悉與否會影響工作效率

Script and Tool

Script - bash
Script - tcsh
Script - perl (字串處理) , link1, link2
Script - python
Tool - sed (字串處理)
Tool - awk (字串處理)
Tool - vim (文字編輯)
Tool - linux常用指令

EDA

合成(Synthesis) - Design Compiler
模擬(Simulation) - NCVerilog
覆蓋率(Coverage) - NCVerilog + Calibre
比對(Formality) - Confocal

電路合成

EDA tool分析design及合成條件constraint,使用指定的資源庫(Library, .lib)合成出符合所需要的電路。參見合成章節

時序分析 (Timing Analysis)


邏輯設計課程重點總結

真值表(Truth Table)
組合邏輯(Combinational logic/circuit) vs. 循序邏輯((Sequential logic/circuit)

組合邏輯

基本邏輯閘(Logic Gate): AND, OR, NOT, XOR, NAND, NOR
De morgan's Theorem: (AB)' = A'+B'

電路化簡及設計

  • 卡諾圖
  • Tabulation 化簡法
  • Sum of product
  • Product of sum

循序邏輯

Latch-base
RS-latch

Clock-base
D-FlipFlop
T-FlipFlop




設計模式

  1. Cell-based design
  2. Customized circuit design



沒有留言:

張貼留言

2020 Pi錢包三倍券加碼回饋機制決策分析

 Pi錢包說 “ 三倍券 ” 中的 2000 元每次消費的都會獲得 p 幣加碼回饋的抽獎機會 試問消費策略?消費越多次越佳或越少次越佳?