国外的电商网站有哪些方面,盐亭县建设局网站,北京别墅装修公司前十名,常州网站建设cz35一、什么是 Verilog 的模块#xff08;module#xff09;
模块用于定义输入、输出端口和功能逻辑#xff0c;它支持层级结构#xff0c;即模块可以实例化子模块。
module 模块名 (端口列表
);// 信号声明// 行为或结构描述
endmodule二、模块的组成部分
组成部分说明mod…一、什么是 Verilog 的模块module
模块用于定义输入、输出端口和功能逻辑它支持层级结构即模块可以实例化子模块。
module 模块名 (端口列表
);// 信号声明// 行为或结构描述
endmodule二、模块的组成部分
组成部分说明module开始模块定义input/output/inout定义端口方向数据类型默认为 wire内部信号声明wire, reg, integer, parameter 等过程语句assign组合逻辑, always, initial时序或行为描述子模块实例化使用 模块名 实例名(...) 实例化子模块endmodule结束模块定义 三、Verilog 模块示例
✅ 示例1简单与门模块
module and_gate (input wire a,input wire b,output wire y
);assign y a b;endmodule说明
使用 assign 实现组合逻辑输入输出均为 wire 类型 ✅ 示例2时序逻辑模块D触发器
module dff (input wire clk,input wire rst,input wire d,output reg q
);always (posedge clk or posedge rst) beginif (rst)q 1b0;elseq d;
endendmodule说明
always 块建模时序逻辑posedge clkq 是 reg 类型 → 可以在过程块中赋值 ✅ 示例3带参数的模块
module adder #(parameter WIDTH 8
)(input wire [WIDTH-1:0] a,input wire [WIDTH-1:0] b,output wire [WIDTH-1:0] sum
);assign sum a b;endmodule说明
parameter 允许模块泛化支持宽度自定义使用 #(...) 参数化模块 ✅ 示例4模块实例化
module top;wire a, b, y;// 实例化 and_gate 模块and_gate u1 (.a(a),.b(b),.y(y));endmodule说明
u1 是实例名可以实例化多个相同模块.连接形式是命名端口连接推荐使用 四、模块间的层级结构
Verilog 模块支持层次化设计
top
├── uart_ctrl
│ ├── baud_rate_gen
│ └── parity_check
└── memory_ctrl└── fifo每层都是一个独立的 module支持模块复用Reusable IP 五、Verilog 中常见模块类型工程实用
模块类型功能说明数据通路模块加法器、乘法器、比较器、位移器等状态机模块控制逻辑如 FSM有限状态机接口模块UART、SPI、I2C、AXI-Lite、FIFO 控制等存储模块寄存器文件、RAM/ROM、双端口存储器等验证模块Testbench、驱动器、监控器、断言等 六、模块设计建议工程实战
模块只做一件事职责清晰单一职责端口宽度参数化提升模块复用性避免组合逻辑中使用 reg使代码可综合子模块之间通过明确的端口接口通信避免全局变量所有时序逻辑使用同步时钟边沿描述避免异步时序错误注意“组合逻辑漏赋值”问题需使用 default 或 case default 七、小结
模块元素描述module定义逻辑功能的实体单元input/output声明端口assign组合逻辑建模always时序或行为逻辑建模parameter提高模块通用性实例化将子模块嵌套到顶层或中间模块中