verilog数组_Verilog语法介绍之常量

verilog数组_Verilog语法介绍之常量
任何⼀种计算机语⾔都离不开常量和变量。
Verilog HDL语⾔中描述电路的基本常量有4种,分为数值常量和⾮数值常量:
破真空阀(1)0:代表逻辑0或“假”;
(2)1:代表逻辑1或“真”;
牌坊制作(3)x:表⽰不确定;
碳纤维增强尼龙(4)z:表⽰⾼阻。
这4种值的解释都内置于Verilog HDL语⾔中。数值常量“0”和“1”在逻辑电路中被解释为低电位和⾼电位。如⼀个电路的值为z,则该电路处于⾼阻抗状态,也就是电路处于断开状态。⼀个电路的值为x,则该电路处于不确定的状态。在逻辑门电路的输⼊或⼀个逻辑表达式中,为“z”的值通常解释为电路断开,其他值都被解释为导通。此外,x值和z值不分⼤⼩写,也就是说,值x、z与值X、Z相同。
电路常量表⽰的是⼀条导线的状态,我们称其为导线的值。除了导线的基本电路常量之外,Verilog HDL
程序设计中还使⽤整型数、实数和字符串型3类常量。这3类常量主要⽤于电路的辅助描述,在实际电路中并没有这3类数值。
整型数常⽤基数表⽰⽅法给出,这种表⽰法要求书写形式固定。书写整型常数时,前⾯要写出⼆进制的位数,跟着⽤“'”号将进制标识和数字隔开,接下来再书写该进制的数码。在整型数或实数的描述中可以使⽤下画线,符号“_”可以随意⽤在整型数或实数中,它们就数量本⾝⽽⾔没有意义。它们能⽤来提⾼易读性,唯⼀的限制是下画线符号不能⽤作为⾸字符。
例如,16'b0001001000111111 和 16'h1_23_f,它们分别表⽰ 16 位的⼆进制数0001001000111111和16个⼆进制位的⼗六进制整数123f,⽤⼗进制实数表⽰就是4671。
Verilog HDL规定⼗进制实数与通常的写法⼀样。
HDL代码经常在表达式和数组的边界使⽤常量。这些值在模块内是固定的,不可修改。⼀个很好的设计惯例是⽤符号常量取代这些hard literal,这样做可使代码清晰,便于后续维持及修改。在Verilog中,可以使⽤localparam(本地参数)来声明常量。例如,我们可以声明⼀个数据总线的位宽及数据范围为:四技术
或者定义⼀个符号端⼝名称:
声明中的表达式,如2*DATA_WIDTH-1,在预编译时计算,因此它不会引⽤任何物理电路。⼀般使⽤⼤写字母来表⽰常量。
常量的使⽤可⽤实例来说明。考虑⼀个带进位的加法器的代码。为了正确执⾏加法运算,可将输⼊的值⼿动扩展1位,并取和的最⾼位为进位。代码如下:
代码1 使⽤hard literal的加法器
代码所⽰为4位加法器。hard literal,即硬⽂字,如⽤来表⽰数据范围的3和4、wire[4:]及sum_ext[3:0]以及最⾼位sum_ext[4]。如果需要把它修改为8位的加法器,那么就需要⼿动修改这些hard literal。如果代码很复杂且多处都引⽤这些hard literal,那么修改起来将是件痛苦的事情,同时也有可能带来不必要的错误。
为了提⾼代码的可读性,我们可以使⽤符号常量,如⽤N来代表加法器的位数。修改后的代码如下所⽰:一个度导航
代码2 使⽤常量的加法器
智能抄表
常量使代码更易于理解和维持。

本文发布于:2024-09-23 05:13:20,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/101281.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:常量   电路   进制   符号
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议