• RTL基本知识:线网类型知多少


    Verilog中常用的线网类型如下表所示:

    关键词

    说明

    wire

    连线

    wand

    线与

    wor

    线或

    tri

    三态线网

    triand

    三态线与

    trior

    三态线或

    tri0

    三态下拉线网

    tri1

    三态上拉线网

    trireg

    三态寄存器

    supply0

    用于对“地”建模

    supply1

    用于对“电源”建模

    uwire

    连线,用于避免多驱动

    1 wire和tri

    wire和tri功能和使用方法完全一样,都用来连接电路元件,主要区别可能仅在书写上不同,同时使用tri可以增加程序的可读性,表示该线网为有三态功能。当有多个不同值的驱动同时驱动线网时,此时wire和tri声明的线网为不定态(unknown)。下表为wire和tri在多驱动时的逻辑真值表:

    wire/tri

    0

    1

    X

    Z

    0

    0

    X

    X

    0

    1

    X

    1

    X

    1

    X

    X

    X

    X

    X

    Z

    0

    1

    X

    Z

    2 wand/triand

    wand和triand的区别与wire和tri类似。当有过个不同值的驱动同时驱动线网时,此时wand和triand声明的线网为不定态(unknown)。下表为wand和triand在多驱动时的逻辑真值表:

    wand/triand

    0

    1

    X

    Z

    0

    0

    0

    0

    0

    1

    0

    1

    X

    1

    X

    0

    X

    X

    X

    Z

    0

    1

    X

    Z

    3 wor和trior

    wor和trior区别与wire和tri类似。当有过个不同值的驱动同时驱动线网时,此时wor和trior声明的线网为不定态(unknown)。下表为wor和trior在多驱动时的逻辑真值表:

    wor/trior

    0

    1

    X

    Z

    0

    0

    1

    X

    0

    1

    1

    1

    1

    1

    X

    X

    1

    X

    X

    Z

     

    1

    X

    Z

    4 tri0和tri1

    该类线网当没有任何驱动时,其值为pulldown或者pullup,即下拉或者上拉,此时的信号强度为Pull(Pu0或者Pu1),且这种强度不用在线网声明时显式指出,其模拟的电路结构类似下图:

    下表为tri0和tri1在多驱动时的逻辑真值表:

    tri0

    0

    1

    X

    Z

    0

    0

    X

    X

    0

    1

    X

    1

    X

    1

    X

    X

    X

    X

    X

    Z

    0

    1

    X

    0

    tri1

    0

    1

    X

    Z

    0

    0

    X

    X

    0

    1

    X

    1

    X

    1

    X

    X

    X

    X

    X

    Z

    0

    1

    X

    1

    5 supply0和supply1

    supply0和supply1用来模拟电路中的电源地,其信号强度为supply(Su)。

    6 uwire

    当线网声明为uwire后,该类型的线网约束了该线网只能有一个驱动源,如果连接多于一个驱动时将会报错。所以uwire类型的线网不能用于双向端口之类的具有双向数据流向特征的语句中。

    7 trireg

    trireg用于存储数值,其功能类似于寄存器,常用于电容节点的建模.当该线网的驱动源都为高阻态时,线网上现实的状态为最后一次线网上保存的值 (0,1,x),该线网的缺省态为不定态,这里需要注意的是该线网的强度只能是small(Sm),medium(Me),large(La)三种,该强度指定一般在线网声明时进行,默认强度为medium.

    仿真结果如下:

    源程序如下:

    在时刻0,nmos1和nmos2全部打开,强度St1的信号复制给了cap1和cap2,此时cap1和cap2中存储的值为St1;

    在时刻10,nmos1关闭,St1不能驱动到cap1中,此时cap1中的值为最后一次存储的值1,高电平1的强度为声明时指定的large1(La1)。因为nmos2是打开,所以cap1和cap2是连通的,此时cap1和cap2的强度都为La1;

    在时刻20,nmos1和nmos2全部关闭,此时cap1为声明时指定的La1,cap2为声明时指定的Sm1;

    在时刻30,nmos2打开,cap1和cap2连通,此时cap1和cap2的强度都为La1;

    时刻40情况与时刻30情况类似,不再赘述。

     更多资讯,请关注个人公众号:芯光灿烂

  • 相关阅读:
    Mysql 数据库学习笔记03 存储过程
    Mysql 数据库学习笔记02 编程
    Mysql 数据库学习笔记01查询
    Struts2学习笔记04 之 拦截器
    Struts2学习笔记03 之 Result组件
    Group by与having理解
    Spring Assert断言工具类
    字符集、编码
    hibernate中Query的list和iterator区别(续)
    hibernate中Query的list和iterator区别
  • 原文地址:https://www.cnblogs.com/xgcl-wei/p/9244891.html
Copyright © 2020-2023  润新知