Verilog 数值表示

数值种类

Verilog HDL 有下列四种基本的值来表示硬件电路中的电平逻辑:

  • 0:逻辑 0 或 “假”
  • 1:逻辑 1 或 “真”
  • x 或 X:未知
  • z 或 Z:高阻

x​ 意味着信号数值的不确定,即在实际电路里,信号可能为 1,也可能为 0。

z​ 意味着信号处于高阻状态,常见于信号(input, reg)没有驱动时的逻辑结果。例如一个 pad 的 input 呈现高阻状态时,其逻辑值和上下拉的状态有关系。上拉则逻辑值为 1,下拉则为 0 。

整数数值表示方法

数字声明时,合法的基数格式有 4 中,包括:十进制(d 或 D),十六进制(h 或 H),二进制(b 或 B),八进制(o 或 O)。数值可指明位宽,也可不指明位宽。

指明位宽:

4b1011         // 4bit 数值
32h3022_c0de   // 32bit 的数值

其中,下划线 ​_​ 是为了增强代码的可读性。

不指明位宽:

一般直接写数字时,默认为十进制表示,例如下面的 3 种写法是等效的:

counter = d100 ; //一般会根据编译器自动分频位宽,常见的为32bit
counter = 100 ;
counter = 32h64 ;

负数表示

通常在表示位宽的数字前面加一个减号来表示负数。例如:

-6d15  
-15

-15 在 5 位二进制中的形式为 5b10001, 在 6 位二进制中的形式为 6b11_0001。

需要注意的是,减号放在基数和数字之间是非法的,例如下面的表示方法是错误的:

4d-2 //非法说明

实数表示方法

实数表示方法主要有两种方式:

十进制:

30.123
6.0
3.0
0.001

科学计数法:

1.2e4         //大小为12000
1_0001e4      //大小为100010000
1E-3          //大小为0.001

字符串表示方法

字符串是由双引号包起来的字符队列。字符串不能多行书写,即字符串中不能包含回车符。Verilog 将字符串当做一系列的单字节 ASCII 字符队列。例如,为存储字符串 “w3cschool.cn”, 需要 12*8bit 的存储单元。例如:

reg [0: 12*8-1]       str ;
initial begin
    str = "w3cschool.cn";
end

作者:冒牌SEO,如若转载,请注明出处:https://www.web176.com/verilog/23157.html

(0)
打赏 支付宝 支付宝 微信 微信
冒牌SEO冒牌SEO
上一篇 2023年6月3日
下一篇 2023年6月3日

相关推荐

发表回复

登录后才能评论