学习视频:
https://www.bilibili.com/video/BV1iv4y1F7Km
Verilog 结构:
模块: module
类似函数结构如下:
module 模块名 ([端口列表]);
[端口信号声明]
[参数声明]
[内部信号声明]
assign 语句
[底层模块或门原语调用]
always 语句块
endmodule
类似函数 端口就相当于变量、端口信号声明相当于输入变量定义……
Verilog 模块元素 | 类比(仅助理解) | 说明 |
|---|
module 模块名 (端口列表); | 函数定义头(如 func(...)) | 声明模块名和对外接口 |
input / output / inout | 函数参数(但含方向) | 端口方向决定信号流向,非单纯变量 |
parameter | 常量/宏定义 | 用于配置模块参数,非输出变量 |
wire / reg 内部信号 | 局部变量 | wire 表示物理连线,reg 表示存储单元 |
assign | 连续赋值(组合逻辑) | 相当于硬件连线,非赋值语句 |
always | 时序/组合逻辑行为描述 | 描述触发器或组合逻辑,非函数体 |
底层模块实例化 | 函数调用 | 实例化子模块,构建层次化设计 |
但是这只是类似 端口是物理引脚,具有方向性,而函数参数无方向。