Verilog语法精讲与代码规范
📚 共计 30 章节
01
Verilog入门
硬件描述语言概述 · Verilog历史与地位 · 数字IC设计流程
基础
概念
02
开发环境搭建
Vivado/Quartus安装 · ModelSim/QuestaSim仿真器 · 第一个Hello World工程
工具
实操
03
模块与端口
module/endmodule结构 · input/output/inout端口 · 端口位宽声明
语法
结构
04
数据类型
wire与reg的区别 · integer · parameter · localparam · genvar
类型
常量
05
操作符
算术/逻辑/位/归约/移位/拼接操作符
运算
核心
06
连续赋值
assign语句 · 隐式连续赋值 · 连续赋值与wire的关系
赋值
组合
07
过程块
always块详解 · initial块 · 敏感列表(电平/边沿)
时序
过程
08
阻塞赋值与非阻塞赋值
=与<=的区别 · 组合/时序赋值选择 · 仿真行为差异
赋值
重点
09
if-else与case语句
条件语句完整性与优先级 · case/casez/casex · 综合陷阱
分支
综合
10
循环与生成块
for循环 · generate-for · generate-if · generate-case
生成
批量
11
函数与任务
function定义与调用 · task定义与调用 · 区别
子程序
封装
12
层次化设计
模块实例化 · 端口连接(按名/按序) · 层次引用
结构
实例
13
参数化设计
parameter传递 · defparam · localparam · 实例化重写参数
参数
复用
14
预编译指令
`define · `include · `ifdef/`ifndef · `timescale · `celldefine
预处理
宏
15
系统函数与任务
$display/$write · $monitor · $time/$realtime · $random · $readmemh/readmemb
仿真
系统
16
有限状态机 (FSM)
Moore机与Mealy机 · 三段式状态机 · 状态编码(二进制/格雷/独热)
FSM
控制
17
同步与异步设计
同步/异步复位 · 亚稳态与同步器 · 跨时钟域处理 (CDC)
时序
可靠性
18
计数器与分频器
二进制计数器 · 模N计数器 · 任意整数分频 · 小数分频
时序
分频
19
移位寄存器与序列检测器
SISO/SIPO/PISO/PIPO · LFSR · 序列检测器设计
移位
检测
20
存储器设计
单端口RAM · 双端口RAM · ROM · FIFO(同步/异步)
存储
FIFO
21
算术运算电路
加法器(行波/超前进位) · 乘法器(组合/时序) · 流水线乘法器
运算
算术
22
接口协议实现
SPI主从设计 · I2C控制器设计 · UART收发器设计
协议
通信
23
仿真与测试
Testbench结构 · 时钟与复位生成 · 自检测试 · 覆盖率
验证
仿真
24
时序分析基础
建立/保持时间 · 时序路径 · 时钟偏斜 · 时序约束 (SDC)
时序
约束
25
可综合设计原则
RTL设计风格 · 避免锁存器 · 资源共享 · 流水线设计
综合
优化
26
低功耗设计
门控时钟 · 操作数隔离 · 多阈值电压 · 电源门控
功耗
优化
27
代码规范与命名
文件命名 · 模块/信号命名 · 注释规范 · 代码对齐
规范
风格
28
版本管理与团队协作
Git在RTL设计中的应用 · 代码审查清单 · 设计文档编写
协作
Git
29
综合与实现
逻辑综合流程 · 综合约束 · 面积与速度权衡 · 后端简介
综合
后端
30
项目实战
从规格到RTL · 模块划分 · 集成验证 · 上板调试 · 项目总结
实战
综合