摘要
本文面向零基礎讀者,全面詳解 Verilog 與 VHDL 兩大主流硬件描述語言(HDL)的核心概念、典型用法及開發流程。文章在淺顯易懂的語言下,配合多組可在線驗證的示例代碼、PlantUML 電路結構圖,讓你在 EDA Playground 上動手體驗數字電路設計與仿真,并深入了解從 HDL 編寫到 FPGA 板級驗證的完整流程。
目錄
-
HDL 簡介
-
Verilog 入門
-
2.1 語法結構
-
2.2 數據類型與常用運算
-
2.3 并行與時序語句
-
-
Verilog 實例演練
-
3.1 2:1 多路選擇器
-
3.2 4:1 解碼器
-
3.3 8 位二進制計數器
-
3.4 狀態機:簡易流水燈
-
-
VHDL 入門
-
4.1 基本語法
-
4.2 類型系統
-
4.3 過程語句與并行塊
-
-
VHDL 實例演練
-
5.1 D 觸發器
-
5.2 同步二進制計數器
-
5.3 移位寄存器
-
5.4 UART 接收模塊雛形
-
-
在線仿真平臺:EDA Playground 使用技巧
-
從仿真到綜合:FPGA 開發流程概覽
-
板級驗證:LED 閃爍與串口測試
-
高階進階:FSM 設計與時序約束
-
總結與下一步學習路線
1. HDL 簡介
-
硬件描述語言(HDL):用來描述數字電路結構與行為的“編程語言”。可用于
-
仿真(Simulation):驗證邏輯功能
-
綜合(Synthesis):生成門級網表并映射到 FPGA/ASIC
-
-
主流 HDL:
-
Verilog:語法簡潔、接近 C 語言,社區活躍
-
VHDL:語法嚴謹、類型系統豐富,適合大型工程
-
-
應用場景:從簡單的邏輯門電路到復雜的 CPU 內核、高速接口協議,都可用 HDL 實現
2. Verilog 入門
2.1 語法結構
module 模塊名 (// 端口列表input wire clk,input wire rst_n,input wire [7:0] data_in,output wire [7:0] data_out
);// 內部信號reg [7:0] tmp;// 行為或結構描述always @(posedge clk or negedge rst_n) beginif (!rst_n) tmp <= 0;else tmp <= data_in;endassign data_out = tmp;
endmodule
2.2 數據類型與常用運算
-
net 類型(wire):表示連線、用于 assign
-
reg 類型:存儲元素