加载中…
个人资料
任家
任家
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,038,363
  • 关注人气:50
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

FPGA的wire和reg类型变量

(2019-03-07 14:35:57)
标签:

it

 1:wire型

        网络类型变量表示结构实体(如门)之间的物理连接。网络类型变量不能存储值,而且它必须要受到驱动器(如门或连续赋值语句,如assign)的驱动。如果没有驱动器连接到网络类型变量上,则该变量就是高阻的,即值为Z。常用的网络类型变量有wire和tri型。这两种网络类型变量都是用于连接器件单元。它们有相同的语法格式和功能。之所以提供wire和tri两种网络类型变量,是为了与模型中所使用的变量的实际情况一致。 wire型变量表示单个门驱动或连续赋值语句(如assign)驱动的网络型数据,tri型变量多驱动器驱动的网络类型数据。如果wire和tri型变量没有定义逻辑强度,在多驱动源的情况下,逻辑值会发生冲突,从而产生不确定值。

        wire型数据常用来表示用以assign赋值语句指定的组合逻辑信号。VERILOG程序模块中的输入、输出信号默认为wire型。wire型信号可以用作输入,也可以用作assign语句或实例元件的输出。格式如下:

wire a; //定义一个1位的wire型变量

wire[7:0] a;//定义一个8位的wire型变量

wire[4:1] a;//定义了二个4位的wire型变量

        2:reg型

        寄存器是数据存储单元的抽象。寄存器数据类型的关键字是reg。通过赋值语句可以改变寄存器存储的值,其作用与触发器储存的值相当。

reg型数据常用来表示"always"模块内的指定信号,常代表触发器。通常,在设计中要由always模块中的行为描述语句来表达逻辑关系。在always模块中内被赋值的每一个信号都必须要定义成reg型。

reg a;//定义一个1位的reg型数据

reg[3:0] a;//定义一个4位的reg型数据

reg[4:1] a,b; //定义二个4位的reg型数据

reg型数据的初始值是不确定的。reg型数据可以为正值,也可以为负值。但当一个reg型数据是表达式中的操作数据时,它的值被当作无符号数值,即正值。如reg[3:0] a被用作操作数表达式中时,-1表示+15.

        注意:reg型中表示被定义的信号将用在always模块内,理解这点很重要。并不是说reg型信号一定是寄存器或触发器的输出,虽然reg常常是寄存器或触发器的输出,但并不一定总是这样。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有