完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
模块(module)是verilog 语言中最基本的语法结构,在模块内不仅能够描述逻辑行为,也是verilog 行为结构描述的功能与外界其它电路的接口。 可以说在Verilog 可综合的开发中,其它结构或功能结构都是可选的,但module是唯一要求必须存在的。module 所描述的结构更像一个完整的数字电路,有名称,有输入、输出,也有逻辑行为。其结构框图如下图所示:
( input a, input b, output c //最后一个端口,没有逗号分隔符“,”); 格式为: ( … ); 2.端口 : 定义输入(input)、输出(output)或双向(inout) input 定义其后的标识符为输入,如 :input a,定义a为输入管脚。 output定义输出口, 如:output c 定义c 为输出管脚。 inout定义双向口,如果端口是双向口,则用 inout定义。inout定义的端口既可以做输入,也可以做输出。 每个完整定义之间用逗号“,” 隔开。最后一个定义,没有逗号“,” ,如output c 就没有逗号。 第三个部分是行为描述部分,用于描述该数字逻辑的行为:如assign c =a & b;表示 c与a,b之间的关系为与逻辑关系。表示将a&b运算后的逻辑值付给c 。 这里的 assign 是表示后面跟着赋值语句。 最后以endmodule关键字结束本module的定义。 module and_gate ( input a, input b, output c ); assign c = a & b; endmodule 其等效的数字电路如下: 输入、输出端口可以采用向量的方式表示,例如:4输入端a0,a1,a2,a3,与4输入端b0,b1,b2,b3, 一一对应相与,其结果赋给对应的c0,c1,c2,3; Verilog 的描述如下: module and4 ( input a0,a1,a2,a3, input b0,b1,b2,b3, output c0,c1,c2,c3 ); assign c0=a0 & b0; assign c1=a1 & b1; assign c2=a2 & b2; assign c3=a3 & b3; endmodule 可以采用向量的方式改写成如下代码: module and4 ( input [3:0] a, input [3:0] b, output [3:0] c ); assign c[0]=a[0] & b[0]; assign c[1]=a[1] & b[1]; assign c[2]=a[2] & b[2]; assign c[3]=a[3] & b[3]; endmodule 在上面的程序中以向量的方式定义了4位输入a,在使用时可以整体向量一起使用,也可以按位使用。在索引位时一般用中括号[]内的数字表示索引号,如a[0]表示使用数组中的第0个变量,a[3]表示第三个变量;也可以引用一部分变量,如a[2:1],就是使用数组中的a[2],a[1];如果向量整体使用,则为a[3:0],也可以直接使用数向量名a;由于向量可以按位操作与使用,这比计算机软件编程中定义的数组灵活方便许多。 由于&操作符具有按位相与的功能,因此也可以用下面的代码实现。 module and4 ( input [3:0] a, input [3:0] b, output [3:0] c ); assign c = a & b;//按照位的顺序,逐位相与 endmodule input, output定义的端口使用比较简单,在后续课程中,会继续深入介绍于FPGA,ASIC相关硬件方面的知识。如:电平等级,斜升率,上、下拉,以及DDR,LVDS 等接口方面的使用。 由于 inout定义的双向口,使用比较复杂,我们专门安排一节内容讨论。见 FPGA中双向端口的使用 。 可见:Verilog module给我们引入了另一种数字电路的设计方法。 |
|
相关推荐
|
|
590 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2241 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1233 浏览 0 评论
1788 浏览 0 评论
1464 浏览 0 评论
74820 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 00:33 , Processed in 0.555730 second(s), Total 63, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号