摘要
本文面向零基础读者,全面详解 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 类型:存储元素