Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Verilog HDL 關鍵字全景圖:模組結構、過程塊、數據類型與賦值語義精講

編輯:Linux 教學

Verilog HDL 作為數位 IC 設計主流語言,其關鍵字體系直接映射硬體結構與仿真語義。本文按功能維度分類 24 大核心關鍵字,配合語法規則、綜合語義與易錯點,構建系統性知識圖譜,助力 RTL 設計與驗證工程師精準落筆。

模組與結構聲明

關鍵字功能關鍵語法點
module ... endmodule基本設計單元,定義輸入輸出埠與內部邏輯埠方向 input/output/inout,參數化 #(parameter)
initial仿真 0 時刻單次執行,用於初始化/激勵產生不可綜合,僅仿真;常搭配 $display/$monitor
always事件驅動無限循環,核心行為建模塊格式 always @(sensitivity_list) stmt;敏感列表決定觸發條件
task ... endtask可含時序控制的過程封裝,支援輸入輸出引數可調用其他 task/function;不可綜合 當含延遲/事件控制
function ... endfunction組合邏輯封裝,零時耗,單返回值無時序控制;可綜合;常用於運算複用

行為建模塊:always vs assign vs 實例化

  • always 塊:雙模能力 —— 敏感列表含 posedge/negedge clk → 時序邏輯(觸發器);含信號電平變化 → 組合邏輯(鎖存器風險)。塊內語句順序執行,塊間並行。
  • assign:持續賦值,純組合邏輯,左側必須是 wire 型。
  • 實例化:模組層級並行,構建設計階層。

塊語句與控制流

類別關鍵字語義綜合提示
順序/並行塊begin ... end順序塊,語句依序執行可嵌套;begin:label 支援區域變數宣告
fork ... join並行塊,語句同時啟動仿真同步點;謹慎綜合(易產生競爭)
條件if ... else分支,else 匹配最近 if組合邏輯務必覆蓋全分支,否則產生鎖存器
case ... endcase多分支,支援 casex/casez (x/z 為通配)優先編碼器綜合;default 防止鎖存器
循環forever無限循環,僅仿真不可綜合
for固定次數循環邊界為常數時可展開綜合
repeat固定次數重複同 for,語法糖
while條件循環邊界非常數不可綜合

數據類型核心四大類

類型特性典型用途預設寬度
reg儲存型,保持上次賦值,需在 over程序塊賦值always 輸出、狀態機、暫存變數1-bit
wire網線型,持續驅動,無儲存,assign 賦值模組連線、組合邏輯輸出1-bit
integer32-bit 有號整數,不可綜合 當用於 RTL仿真計數、參數計算、$display 格式化32-bit
parameter編譯期常數,模組參數化關鍵位寬、延遲、狀態編碼等可配置常數按值推導

⚠️ Verilog-2001 新增 signed/logic (SystemVerilog) 等增強類型,建議新專案遷移至 SystemVerilog。

邊緣控制與賦值語義(綜合核心)

關鍵字語義硬體映射綜合規則
posedge上升沿事件觸發器時鐘沿敏感列表僅支援單沿
negedge下降沿事件觸發器時鐘沿同上
<= (Non-blocking)非阻塞賦值,塊結束時統一更新時序邏輯 (FF)always_ff 必用;右側舊值參與運算
= (Blocking)阻塞賦值,語句執行完即更新組合邏輯/暫存變數always_comb 用;時序塊用會產生競爭/鎖存器

黃金法則速查

  1. 時序邏輯:always_ff @(posedge clk or negedge rst_n) ... <= ...
  2. 組合邏輯:always_comb ... = ... 或 assign ... = ...
  3. reg ≠ 觸發器;wire ≠ 物理線;類型由賦值上下文決定,而非名稱。
  4. 敏感列表缺漏 → 仿真與綜合不一致 (CDC 風險);Verilog-2001 always @(*) / SystemVerilog always_comb 自動推導。
  5. 參數化設計:module #(parameter WIDTH=8) ... 實例化時 #(.WIDTH(16)) 覆蓋。

內化關鍵字語義與綜合映射,寫出的 RTL 才能「仿真通、綜合過、時序收、可維護」。

Copyright © Windows教程網 All Rights Reserved