數位邏輯電路
從數位訊號與 AND、OR、XOR 等邏輯閘出發,設計組合電路、鎖存器、正反器、計數器與狀態機。親自連結真值表、公式、電路與波形,再以 RTL 實作驗證。選修進階單元將延伸至資料路徑與介面。
您將學到什麼
- 區分邏輯值與電壓,說明八種邏輯閘的真值表、符號與等效電路。
- 從規格出發,以 SOP、POS 與卡諾圖設計組合電路,並窮舉檢查。
- 定義編碼器、解碼器、MUX、DEMUX、加法器與比較器的輸入條件和邊界值。
- 說明鎖存器與正反器的差別,設計 reset、enable 與時脈的更新規則。
- 以 RTL 實作計數器、移位暫存器與狀態機,分析時序、非同步輸入及去彈跳。
- 透過獨立參考模型驗證設計,完成可偵測重疊 101 序列的偵測器。
- 在選修進階單元中延伸至 ALU、記憶體、FIFO、管線與介面。
開始之前
瀏覽器練習使用教學模型,不會編譯或執行 HDL。如需另外執行提供的原始碼,請依照適用於您作業系統的 Digital Design Studio 指南,並在操作要求時登入。
安裝與首次啟動 ↗ · 下載 ↗課程大綱
- 數位訊號與數值表示
- 數位訊號:將電壓判讀為 0 與 1 的條件概念
區分邏輯值與電壓,計算輸入臨界值、雜訊容限與傳播延遲。
- 數制與固定寬度表示概念
除了進位制轉換,也計算表示範圍、所需位元數與截斷誤差。
- 邏輯閘與真值表
- 基本邏輯閘:AND、OR、NOT、BUFFER概念
連結電路符號與真值表,並用多個邏輯閘組成條件。
- NAND、NOR 與反相符號的判讀概念
區分反相的作用範圍,透過德摩根定律連結功能相同的符號與算式。
- XOR、XNOR:相同、相異與同位檢查概念
區分雙輸入 XOR 與多輸入同位運算,說明錯誤偵測的限制。
- 通用邏輯閘:只用 NAND 組成電路概念
透過構造證明 NAND、NOR 的功能完備性,並驗證 XOR 的中間訊號。
- 從邏輯式到電路設計
- 布林代數、等價轉換與實作成本概念
以德摩根定律和因式分解轉換電路,區分邏輯等價與時序特性。
- 從真值表到邏輯式:最小項、最大項、SOP、POS概念
分別由輸出為 1 與為 0 的列推導同一函數,並連結卡諾圖的表示法。
- 卡諾圖與 don’t-care 的條件概念
利用格雷碼的相鄰關係化簡邏輯式,並明確寫出未使用輸入的假設。
- 設計實作:從規格到三輸入多數決電路實作
把自然語言規格轉成完整真值表,連結化簡、實作與窮舉檢查。
- 位址與選擇電路
- 解碼器、獨熱選擇與有效輸入概念
將二進位位址轉成個別選擇線,設計 enable、範圍與選擇不變量。
- 編碼器與優先權:從多個請求選一個概念
區分獨熱編碼器的輸入假設,以及優先權編碼器的 valid 和選擇結果。
- DEMUX 與解碼器:把資料送往選定路徑概念
比較 MUX、DEMUX 與解碼器的方向和角色,驗證獨熱與獨熱或全零條件。
- 訊號與連接埠:寬度、方向與時間的契約概念
閱讀介面,分開定義組合輸出與狀態輸出的驗證基準。
- 從真值表到 MUX 與夏農展開概念
推導選擇邏輯的公式,並以 MUX 分解任意邏輯函數。
- 算術電路與比較
- 加法器與進位傳遞結構概念
推導全加器公式,同時分析漣波進位的功能、寬度與延遲。
- 二補數、符號擴展與溢位概念
透過公式與反例,區分位元序列的 signed 解讀與加法溢位條件。
- 比較器與邊界值規格概念
區分同一位元序列的 unsigned 與 signed 比較,驗證邊界條件。
- 鎖存器、正反器與狀態儲存
- 記憶的起點:回授與 SR、D 鎖存器概念
理解交叉耦合的兩個穩定狀態,說明 SR 禁止輸入與 D 鎖存器的透明區間。
- D 正反器:從準位到邊緣概念
比較鎖存器與正反器的更新時點,連結暫存器、setup、hold 的意義。
- 正反器、enable 與控制優先權概念
以下一狀態式定義保持、載入與重設,避免非預期的時脈閘控。
- 同步狀態轉移與時脈的角色概念
把同步系統解讀為讀取同一份前次狀態的暫存器集合。
- MUX 的 RTL 實作與驗證
- 組合選擇與暫存輸出的延遲概念
分析 MUX 結果存入暫存器後,介面與延遲如何改變。
- 組合 RTL 與完整指定概念
用條件運算子與 always_comb 表達同一函數,找出會產生鎖存器的遺漏。
- 實作:MUX 窮舉檢查與暫存輸出分析實作
將相同輸入套用到組合路徑與暫存器路徑,以真值表與取樣時點驗證結果。
- 波形的取樣時點與因果關係概念
分開組合穩定、時脈擷取與事件順序來閱讀波形。
- MUX 驗證:窮舉檢查與性質概念
分別檢查組合輸入覆蓋與儲存行為,並縮小反例。
- 設計確認:選擇電路的等價性與觀察時點理解測驗
區分只需真值表的驗證,以及必須觀察時脈的驗證。
- 計數器與同步狀態更新
- 狀態數、計數器寬度與未使用代碼概念
從計數範圍求儲存位元數,定義錯誤狀態的復原策略。
- 計數器的下一狀態與重設優先權概念
將遞增、保持、重設與回捲整合成一份規格,逐邊緣計算結果。
- Nonblocking 指定與同步狀態更新概念
分開舊值與下一值,正確解讀管線與計數器 RTL。
- 實作:驗證計數器的重設、回捲與不變量實作
逐上升緣將狀態與參考模型比較,分開初值、重設與位元寬度的影響。
- 模數、飽和計數器與結束脈衝概念
設計最大值處理策略與 terminal-count 訊號的確切週期。
- 計數器除錯與最小反例概念
設計短測試,區分重設、enable 與回捲邊界錯誤。
- 設計確認:寬度、優先權與回捲邊界理解測驗
依給定狀態轉移規格判斷邊界值與同時控制輸入。
- 移位暫存器與資料流
- 向量索引、位元順序與符號概念
分開位元編號、序列傳輸順序與算術解讀,閱讀資料路徑。
- 序列輸入與資料框邊界概念
定義輸入順序與有效邊緣,計算串列轉並列的位元配置。
- 移位暫存器的狀態方程式概念
將位元移動表示為向量狀態轉移,連結儲存深度與輸出延遲。
- 切片、串接與重複運算的寬度概念
計算串接訊號的總寬度與保值條件,建立資料路徑。
- 實作:序列資料移動與位元順序驗證實作
同時使用位元序列與整數參考模型,驗證方向、遺失位元與重設後延遲。
- 區分週期延遲與吞吐量概念
定義 N 階延遲線的觀察基準,量化計算 latency 與 throughput。
- 移位電路驗證與資料、valid 對齊概念
找出被對稱樣式掩蓋的錯誤,以及有效訊號差一週期的錯位。
- 設計確認:延遲、對齊與輸入保留理解測驗
不只檢查移位方向,也確認有效資料移動次數與觀察基準。
- 時序、實際輸入與狀態機
- Setup、hold 與時序預算概念
分開最大與最小路徑延遲,計算獨立於時脈頻率的 hold 條件。
- 邏輯冒險與等價式的限制概念
分析穩態相同的兩個電路,如何因傳播延遲產生不同的瞬時波形。
- 時脈域邊界與亞穩態概念
理解兩級同步器的適用範圍,區分單位元、短脈衝與多位元傳輸。
- 實際按鈕輸入:同步、去彈跳與單次事件概念
區分非同步輸入同步化與接點去彈跳,設計連續取樣型去彈跳器。
- 狀態機:分開狀態、轉移與輸出概念
由規格表建立 FSM,比較 Moore、Mealy 輸出、非法狀態與請求政策。
- 驗證計畫、覆蓋率與獨立參考模型概念
區分測試通過與符合規格,將邊界、交叉條件及最小反例納入驗證計畫。
- 綜合設計:重疊 101 樣式偵測器概念
在同一設計中運用狀態最小化、輸入有效性、暫存輸出與獨立參考驗證。
- 選修進階 · 算術資料路徑
- ALU 與 zero、negative、carry、overflow 旗標概念
以共用加法器實作 ADD/SUB,區分 carry 與 signed overflow,推導比較條件。
- 桶式移位器與分級 MUX概念
以 1、2、4、8 位 MUX 級實作可變移位,處理方向共用、符號填補與超範圍移位。
- 定點數、捨入與飽和概念
以 W,F 格式定義數值範圍,設計 guard、sticky 的捨入至偶數,以及捨入後飽和。
- 多週期 unsigned 移位加法乘法器概念
將部分積累加分成 W 週期,驗證接受與完成時點、最後累加、寬度及不變量。
- 選修進階 · 記憶體與 FIFO
- 同步記憶體與讀寫碰撞契約概念
區分暫存讀取的回應時點及 read-first、write-first、no-change,設計 valid 與位址初始化各自的責任。
- 雙讀單寫暫存器檔案與旁路概念
實作獨立雙讀埠與同步寫入,核對各位址碰撞的旁路、初始化及 valid 政策。
- 單一時脈 FIFO 的指標與邊界政策概念
實作深度 4 FIFO 的指標與 occupancy,明確定義 empty、full 下同時 push/pop 的接受條件。
- FIFO、記憶體驗證計畫與獨立 scoreboard概念
編寫不依賴實作指標的 queue scoreboard,將邊界、reset、valid 與未初始化讀取納入驗證計畫。
- 選修進階 · 管線與介面
- Ready/valid 與單格彈性緩衝區概念
在可暫停資料路徑中設計無遺失、無重複的傳遞條件與同時輸入輸出。
- 乘加管線與資料對齊概念
以暫存器邊界切分運算,讓資料、valid 與輔助運算元屬於同一交易。
- 可暫停管線與背壓概念
計算各級 ready,在暫停與同時移動時避免資料遺失、重複或重新計算。
- 暫存器介面與副作用的發生時點概念
指定地址、位元組寫入與回應暫停,讓每個請求恰好導致一次狀態變更。
- 綜合實作:UART 傳送器與資料框時序概念
結合分頻計數器、移位暫存器與流量控制建立 8N1 資料框,驗證位元邊界。