查看: 1202|回复: 3

明德扬点拨FPGA高手进阶 第五章 verilog快速掌握 5.3模块概念

[复制链接]

该用户从未签到

发表于 2015-11-12 12:11:15 | 显示全部楼层 |阅读模式
分享到:
5.3.1 模块概念
模块(module)是verilog最基本的概念,是v设计中的基本单元,每个v设计的系统中都由若干module组成。
1、模块在语言形式上是以关键词module开始,以关键词endmodule结束的一段程序。
2、模块的实际意义是代表硬件电路上的逻辑实体。
3、每个模块都实现特定的功能。
4、模块之间是并行运行的。
5、模块是分层的,高层模块通过例化、连接低层模块的实例来实现复杂的功能。
7、各模块连接完成整个系统需要一个顶层模块(top-module)。
5.3.2 模块结构
module <模块名>(<端口列表>);
<参数声明>
<端口声明>
<定义>
<模块条目>
endmodule
其中:
1.        <模块名>
模块名是模块唯一的标识符。
2.        <端口列表>
端口列表是输入、输出和双向端口的列表,这些端口用来与其他模块进行连接。这里只需要列出信号名,不需要指出端口方向和位宽。


上面代码,指出了模块名是mul_module,同时该模块的接口有clk,rst_n,mul_a,mul_b和mul_result。
3.        <参数声明>
用parameter定义参数,例如位宽、长度、状态机命名等参数。

4.        <端口声明>
端口声明指出端口方向和位宽。端口方向可以是输入、输出和双向。

       上面代码指出,clk,rst_n是输入信号并且是1位位宽;mul_a是输入信号并且是4位位宽;mul_b是输入信号并且是3位位宽;mul_result是输出信号并且是7位位宽。
5.        <定义>
定义是一段程序,用来指定数据对象的类型和位宽。类型一般为寄存器型、线型;

上面代码指出,clk、rst_n、mul_a、mul_b都是wire型;mul_result_tmp和mul_result都是reg型。
至于是用reg型还是wire型,请看后面的reg和wire一节。
6.        <模块条目>
模块条目也是一段程序,将上面<定义>和<端口>组合起来,是说明这个模块要做什么的语句。其形式如下:

FPGA电路一般分两种:组合逻辑和时序逻辑。组合逻辑是不受时钟影响,输入变化输出立刻变化的电路。时序逻辑是在时钟边沿变化(常用上升沿),只有在时钟边沿时,输出才会根据输入变化的电路。
关于组合逻辑详细内容,请看后面的组合逻辑一节。
关于时序逻辑详细内容,请看后面的时序逻辑一节。
提示:用GVIM打开.v文件后,输入“Module”并回车,即可得到模块的设计文件,非常方便。
5.3.3 reg和wire区别
设计代码中所有的信号定义,只能用reg和wire两种。
设计代码中,如果是本模块always产生的信号,都用reg;其他都用wire。
测试文件中,initial内赋值的代码也用reg。
注意:reg虽然是寄存器的缩写,但用reg定义的信号不一定生成寄存器。既然这样,就没必要认为reg是寄存器类型,就当它是一个名称。
练习1:eoc_cnt是用reg还是wire型

答案:很明显,eoc_cnt由always产生的,因此用reg类型。
练习2:row1_data和row2_data是用reg还是wire型

答案:连接到例化模块的输出信号,都用wire型。
练习3:rdreq_cfg是用reg还是wire型

答案:虽然本always是组合逻辑电路,不会生成寄存器,但rdreq_cfg是always产生的,因此仍然是用reg型。
练习4:sdata是用reg还是wire型

答案:用assign产生的信号,都用wire型。
以上文章出自明德扬点拨FPGA高手进阶,版权归明德扬所有,如需转载,请注明明德扬,谢谢!

回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2015-11-12 13:40:58 | 显示全部楼层
后续会慢慢更新,敬请期待!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2015-11-13 09:28:34 | 显示全部楼层
期待楼主的分享,谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2015-11-14 11:13:08 | 显示全部楼层
谢谢楼主分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

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



手机版|小黑屋|与非网

GMT+8, 2024-11-24 03:19 , Processed in 0.136336 second(s), 21 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.