Verilog基本语法(二)模块

模块

复制代码
module <模块名> (<模块端口列表>, <端口声明>(若有), <参数声明>(可选));
...
// 模块内容
// 1 - wire, reg和其他类型的变量声明;
// 2 - 数据流语句(assign);
// 3 - 低层模块实例;
// 4 - always和initial块,所有行为语句全都在这些块中;
// 5 - 任务和函数
...
endmodule // 模块结束语句
复制代码

端口

端口声明

  • input - 输入端口
  • output - 输出端口
  • inout - 输入/输出双向端口

注释:

  1. 所有端口隐含地声明wire类型。
  2. 输出(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        

端口连接规则

 

 

posted @   vicky2021  阅读(136)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示