Verilog基本语法之wire和reg

Verilog HDL 专栏收录该内容
1 篇文章 0 订阅

 

       Verilog语法之多,初期学习只需要掌握常用的语法就OK了,基本就可以用Verilog HDL语言去描述逻辑电路了,今天学习两种数据类型:wire和reg。在数字电路中信号只有两种形态,一种是传输,通过线wire),一种是存储,通过寄存器(reg)。因此,也就清楚wire和reg变量在Verilog HDL中的重要性了。下图是wire和reg变量的模型。

                                                                                    

        (1)wire(线型)变量:

        ①在物理结构上只是一根线,在Verilog HDL描述时,对线型变量赋值用assign即可,相对比较简单。

        wire是最常用的net型数据变量,net型数据相当于硬件电路中的各种物理连接,其特点是输出的值随输入值的变化而变化。net 型数据的值取决于驱动的值,对net型变量有两种驱动方式,一种方式是在结构描述中将其连接到一个门元件或模块的输出端;另一种方式是用持续赋值语句assign对其进行赋值。如果net型变量没有连接到驱动,则其值为高阻态z (trireg 除外)。Verilog 模块中的输入/输出信号在没有明确指定数据类型时都被默认为wire型。

常用net型变量

类型

功能

可综合性

wire,tri

连线类型

wor, trior

具有线或特性的多重驱动连线 

 

wand, triand

具有线与特性的多重驱动连线

 

tril, tri0

分别为上拉电阻和下拉电阻

 

supply1, supply0

分别为电源(逻辑1)和地(逻辑0)

trireg

具有电荷保持作用的连线,可用于电容的建模

 

         wire型变量定义:①wire a,b;                               //声明2个wire型变量a和b(一位)

                                         ②wire[7:0]  databus;               //databus(数据总线)的宽度是8位

                                            wire[19:0] addrbus;             //addrbus(地址总线)的宽度是20位                 

        (2)reg(寄存器型)变量:

        ①在物理结构上相对比较麻烦,左端有一个输入端口 D,右端有一个输出端口 Q, 并且 reg 型存储数据需要在CLK(时钟)沿的控制下完成,在 Verilog HDL 描述时也相对麻烦。在对reg 型变量进行赋值时,必须在 always 块内完成。

        reg型变量是最常用的variable型变量,variable型变量必须放在过程语句(如initial、 always) 中,通过过程赋值语句赋值;在always、initial等过程块内被赋值的信号也必须定义成variable型。variable型变量(reg)并不意味着一定对应着硬件上的一个触发器或寄存器等存储元件,在综合器进行综合时,综合器会根据具体情况确定是映射成连线还是映射为存储元件(触发器或寄存器)。

常用variable型变量

类型

功能

可综合性

reg

常用寄存器型变量

integer

32位带符号整型变量

real

64位带符号实型变量

 

time

64位无符号时间变量

 

       wire型变量定义:①reg a,b;                               //声明2个reg型变量a和b(一位)

                                       ②reg[7:0]  out;                      //out的宽度是8位

 

部分转载:https://mp.weixin.qq.com/s/OBAFOS4az8Wc6_OPxIRrOw

 

   

 

                                       

                                                            

 

  • 2
    点赞
  • 0
    评论
  • 2
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

Leo_wh

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值