通过上面的实例可看出,一个设计是由一个个模块(module)构成的。一个模块的设计如下: 1.模块内容是嵌在module 和endmodule两个语句之间。每个模块实现特定的功能,模块可进行层次的嵌套,因此可以将大型的数字电路设计分割成大小不一的小模块来实现特定的功能,最后通过由顶层模块调用子模块来实现整体功能,这就是Top-Down的设计思想。 2.模块包括接口描述部分和逻辑功能描述部分。这可以把模块与器件相类比。 模块的端口定义部分: 如上例:module addr(a,b,cin,count,sum); 其中module是模块的保留字,addr 是模块的名字,相当于器件名。()内是该模块的端口声明,定义了该模块的管脚名,是该模块与其他模块通讯的外部接口,相当于器件的pin。 3.模块的内容,包括I/O说明,内部信号、调用模块等的声明语句和功能定义语句。 I/O说明语句如:input [2:0] a;input [2:0] b;input cin;output count;其中的input、output、inout是保留字,定义了管脚信号的流向,[n:0]表示该信号的位宽(总线或单根信号线)。 4.逻辑功能描述部分如:assign {count,sum} = a +b + cin; 功能描述用来产生各种逻辑(主要是组合逻辑和时序逻辑,可用多种方法进行描述,具体的用法下面章节有介绍),还可用来实例化一个器件,该器件可以是厂家的器件库也可以是我们自己用HDL设计的模块(相当于在原理图输入时调用一个库元件)。在逻辑功能描述中,主要用到assign 和always 两个语句。 5.对每个模块都要进行端口定义,并说明输入、输出口,然后对模块的功能进行逻辑描述,当然,对测试模块,可以没有输入输出端口。 6.Verilog HDL的书写格式自由,一行可以写几个语句,也可以一个语句分几行写。具体由代码书写规范约束。 7.除endmodule语句外,每个语句后面需有分号表示该语句结束。 |
|关于本站|小黑屋|Archiver|手机版|无线电爱好网
( 粤ICP备14010847号 )
GMT+8, 2014-5-23 12:47 , Processed in 0.098820 second(s), 28 queries .
Powered by Discuz! X3.1 Licensed
© 2001-2013 Comsenz Inc.