RTL 設計基礎
用 SystemVerilog 表達數位邏輯電路。學習型別、位元寬度、符號、組合與循序邏輯、模組、參數及 generate,再用獨立測試平台驗證邊界和失敗情況。最後連線週期脈衝與累加器,完成可重現的執行記錄。
您將學到什麼
- 明確定義每個訊號的位元寬度、符號、驅動來源、有效時刻和重置值。
- 分別編寫完整的組合賦值與時脈狀態更新。
- 用參數和 generate 構建靜態結構並驗證邊界配置。
- 用具名埠連線和函式組合模組。
- 編寫無競爭的刺激和獨立參考模型。
- 區分編譯、模擬、合成與 DDS 執行的證據。
開始之前
瀏覽器練習使用教學模型,不會編譯或執行 HDL。如需另外執行提供的原始碼,請依照適用於您作業系統的 Digital Design Studio 指南,並在操作要求時登入。
安裝與首次啟動 ↗ · 下載 ↗課程大綱
- RTL 與模組契約
- RTL:描述併發工作的電路概念
區分軟體執行順序與硬體並行結構,明確當前狀態、下一狀態和觀察時刻。
- 訊號與連接埠:寬度、方向與時間的契約概念
閱讀介面,分開定義組合輸出與狀態輸出的驗證基準。
- 模組、埠與例項:把連線當作契約概念
用具名連線組合模組,檢查單一驅動來源與層次邊界。
- 理解檢查:組合輸出與儲存輸出理解測驗
區分輸入變化時刻與暫存器觀察時刻。
- 型別、位元寬度、符號與運算式
- logic、wire、X/Z 與明確的位元寬度概念
區分型別宣告與儲存器件,檢查常量、比較、擴展和未知值。
- 向量索引、位元順序與符號概念
分開位元編號、序列傳輸順序與算術解讀,閱讀資料路徑。
- 切片、串接與重複運算的寬度概念
計算串接訊號的總寬度與保值條件,建立資料路徑。
- 二補數、符號擴展與溢位概念
透過公式與反例,區分位元序列的 signed 解讀與加法溢位條件。
- 理解檢查:範圍與顯式擴展理解測驗
同時檢查加法器輸入和輸出位元寬度。
- 完整的組合 RTL 與驗證
- 組合 RTL 與完整指定概念
用條件運算子與 always_comb 表達同一函數,找出會產生鎖存器的遺漏。
- 編碼器與優先權:從多個請求選一個概念
區分獨熱編碼器的輸入假設,以及優先權編碼器的 valid 和選擇結果。
- MUX 驗證:窮舉檢查與性質概念
分別檢查組合輸入覆蓋與儲存行為,並縮小反例。
- 設計確認:選擇電路的等價性與觀察時點理解測驗
區分只需真值表的驗證,以及必須觀察時脈的驗證。
- 狀態、賦值與重置優先順序
- 正反器、enable 與控制優先權概念
以下一狀態式定義保持、載入與重設,避免非預期的時脈閘控。
- Nonblocking 指定與同步狀態更新概念
分開舊值與下一值,正確解讀管線與計數器 RTL。
- 模數、飽和計數器與結束脈衝概念
設計最大值處理策略與 terminal-count 訊號的確切週期。
- 實作:驗證計數器的重設、回捲與不變量實作
逐上升緣將狀態與參考模型比較,分開初值、重設與位元寬度的影響。
- 設計確認:寬度、優先權與回捲邊界理解測驗
依給定狀態轉移規格判斷邊界值與同時控制輸入。
- 參數與靜態結構生成
- parameter、localparam、$clog2 與邊界配置概念
區分執行時輸入和靜態配置,設計 N=1 與非二次冪計數器的位元寬度和終止行為。
- generate:用迴圈構建靜態電路概念
用 genvar 與 generate-if 生成具名結構,檢查匯流排 lane 佈局。
- function automatic 與運算式重用概念
編寫不消耗時間的函式,檢查回傳值位元寬度、符號與參考模型獨立性。
- 理解檢查:N=1 與位元寬度理解測驗
區分最小儲存位元寬度與實際有效狀態數。
- 測試平台與獨立驗證
- 波形的取樣時點與因果關係概念
分開組合穩定、時脈擷取與事件順序來閱讀波形。
- 實驗:會自行報告失敗的測試平台實作
分開 DUT、刺激、參考模型和判定,在無競爭的觀察時刻檢查 reset、enable 與迴繞。
- 驗證計畫、覆蓋率與獨立參考模型概念
區分測試通過與符合規格,將邊界、交叉條件及最小反例納入驗證計畫。
- 計數器除錯與最小反例概念
設計短測試,區分重設、enable 與回捲邊界錯誤。
- 理解檢查:參考模型與競爭理解測驗
選擇獨立期望值及時脈邊緣更新後的檢查時間。
- 模組連接與整合實作
- 狀態機:分開狀態、轉移與輸出概念
由規格表建立 FSM,比較 Moore、Mealy 輸出、非法狀態與請求政策。
- 綜合設計:重疊 101 樣式偵測器概念
在同一設計中運用狀態最小化、輸入有效性、暫存輸出與獨立參考驗證。
- Ready/valid 與單格彈性緩衝區概念
在可暫停資料路徑中設計無遺失、無重複的傳遞條件與同時輸入輸出。
- 乘加管線與資料對齊概念
以暫存器邊界切分運算,讓資料、valid 與輔助運算元屬於同一交易。
- 整合實作:連接週期脈衝與致能累加器實作
明確用舊值實現模組間傳遞,比較停頓、連續脈衝和同時重置。
- 工具診斷與結果範圍
- Setup、hold 與時序預算概念
分開最大與最小路徑延遲,計算獨立於時脈頻率的 hold 條件。
- 時脈域邊界與亞穩態概念
理解兩級同步器的適用範圍,區分單位元、短脈衝與多位元傳輸。
- 編譯、lint 與合成:診斷能證明什麼概念
固定原始碼清單、top 和語言模式,區分語法、位元寬度、鎖存器診斷與功能驗證。
- 執行記錄與 DDS 實踐銜接概念
整理原始碼、輸入、期望、失敗條件和工具版本,提交可重現實驗。
- 最終檢查:功能驗證通過與執行證據理解測驗
區分本地工具結果和 DDS 免費實踐驗收。