使用语法形式如下: reg [msb:lsb] reg1,. . .,regN; msb和lsb 定义了范围,并且均为常数值表达式;如果没有定义范围,缺省值为1位寄存器。 例1:reg [3:0] counter1 ;//4位寄存器。 例2:reg counter2 ; // 1位寄存器。 例3:reg [31:0] data_buffer1; reg [32:1] data_buffer2; 另外一种常见寄存器类型:Integer integer A,B,C;//三个整数型寄存器。 说明: 1.与reg不同,integer可以表示有符号数,并且算术操作符提供2的补码运算结果。 2.同时,如上例定义的A,B,C变量它们分别是32位(32-bit)的寄存器变量。 寄存器型变量使用举例 例如:两路选择器的RTL级描述 module mux2to1(out,a,b,sel); input a,b,sel; output out; reg out; always @(sel or a or b) if(! sel) out = a; else out = b; //input a,b,sel没声明信号类型,缺省为wire型 endmodule
如何给模块端口信号选择正确的数据类型? 四句口诀: 输入端口(如右图in1、in2信号)只能是net; 但输入端口可以由net/register驱动; 输出端口(如O)可以是net/register类型; 但输出端口只能驱动net。 |
|关于本站|小黑屋|Archiver|手机版|无线电爱好网
( 粤ICP备14010847号 )
GMT+8, 2014-5-23 12:47 , Processed in 0.097384 second(s), 27 queries .
Powered by Discuz! X3.1 Licensed
© 2001-2013 Comsenz Inc.