集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 956|回复: 1

Verilog HDL的基本语法

[复制链接]
LYF 发表于 2021-7-27 09:08:22 | 显示全部楼层 |阅读模式
简单的Verilog HDL程序介绍
17
第三章 Verilog HDL 基本语法
--------------------------------------------------------------------------------------------------------------------------------------------
------
下面先介绍几个简单的Verilog HDL程序,然后从中分析Verilog HDL程序的特性。
例[3.1.1]:module adder ( count,sum,a,b,cin );
input [2:0] a,b;
input cin;
output count;
output [2:0] sum;
assign {count,sum} = a + b + cin;
endmodule
这个例子通过连续赋值语句描述了一个名为adder的三位加法器可以根据两个三比特数a、b和进位
(cin)计算出和(sum)和进位(count)。 从例子中可以看出整个Verilog HDL程序是嵌套在module
和 endmodule 声明语句里的。
例[3.1.2]:module compare ( equal,a,b );
output equal; //声明输出信号equal
input [1:0] a,b; //声明输入信号a,b
assign equal=(a==b)?1:0;
/*如果a、b 两个输入信号相等,输出为1。否则为0*/
endmodule
这个程序通过连续赋值语句描述了一个名为compare的比较器。对两比特数 a、b 进行比较,如a与b
相等,则输出equal为高电平,否则为低电平。在这个程序中,/*........*/和//.........表示注释
部分,注释只是为了方便程序员理解程序,对编译是不起作用的。
例[3.1.3]:module trist2(out,in,enable);
output out;
input in, enable;
bufif1 mybuf(out,in,enable);
endmodule
这个程序描述了一个名为trist2的三态驱动器。程序通过调用一个在Verilog语言库中现存的三态驱
动器实例元件bufif1来实现其功能。
例[3.1.4]: module trist1(out,in,enable);
output out;
input in, enable;
mytri tri_inst(out,in,enable);
//调用由mytri模块定义的实例元件tri_inst
endmodule
module mytri(out,in,enable);
output out;
input in, enable;
assign out = enable? in : 'bz;
endmodule
这个程序例子通过另一种方法描述了一个三态门。在这个例子中存在着两个模块。模块trist1调用由
模块mytri定义的实例元件tri_inst。模块trist1是顶层模块。模块mytri则被称为子模块。
通过上面的例子可以看到:
18
第三章 Verilog HDL 基本语法
--------------------------------------------------------------------------------------------------------------------------------------------
------
• Verilog HDL程序是由模块构成的。每个模块的内容都是嵌在module和endmodule两个
语句之间。每个模块实现特定的功能。模块是可以进行层次嵌套的。正因为如此,才可
以将大型的数字电路设计分割成不同的小模块来实现特定的功能,最后通过顶层模块
调用子模块来实现整体功能。
• 每个模块要进行端口定义,并说明输入输出口,然后对模块的功能进行行为逻辑描述。
• Verilog HDL程序的书写格式自由,一行可以写几个语句,一个语句也可以分写多行。
• 除了endmodule语句外,每个语句和数据定义的最后必须有分号。
• 可以用/*.....*/和//.......对Verilog HDL程序的任何部分作注释。一个好的,有使
用价值的源程序都应当加上必要的注释,以增强程序的可读性和可维护性。
 楼主| LYF 发表于 2022-12-16 19:46:12 | 显示全部楼层
Verilog HDL的基本语法
http://www.fpgaw.com/forum.php?m ... 5&fromuid=59610
(出处: fpga论坛|fpga设计论坛)
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-18 13:18 , Processed in 0.063319 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表