Verilog基本语法(二)模块
模块
module <模块名> (<模块端口列表>, <端口声明>(若有), <参数声明>(可选)); ... // 模块内容 // 1 - wire, reg和其他类型的变量声明; // 2 - 数据流语句(assign); // 3 - 低层模块实例; // 4 - always和initial块,所有行为语句全都在这些块中; // 5 - 任务和函数 ... endmodule // 模块结束语句
端口
端口声明
- input - 输入端口
- output - 输出端口
- inout - 输入/输出双向端口
注释:
- 所有端口隐含地声明wire类型。
- 输出(output)端口可以被声明为reg数据类型,用于保持输出值。
实例一
module fulladd4(sum, c_out, a, b, c_in); // 端口声明开始 output [3:0] sum; output c_cout; input [3:0] a, b; input c_in; // 端口声明结束 ... <模块的内容> ... endmodule
实例二(输出端口保持值)
module DFF(q, d, clk, reset); output q; reg q; // 输出端口q保持值 input d, clk, reset; ... <模块的内容> ... endmodule
实例三(ANSI C风格)
module fulladd4(output reg [3:0] sum, output reg c_out, input [3:0] a, b, // 默认类型为wire input c_in); // 默认类型为wire ... <模块的内容> ... endmodule
端口连接规则
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人