verilog 中 unsigned 7downto0 的最大值是多少?
What is the maximum value at unsigned 7downto0 in verilog?
我有一些关于verilog的问题。
如果我的寄存器 A[7:0] 有无符号值,那么我如何获得最大值或最小值?
此外,如果我已将值签名到 reg A[7:0],那么我如何获得最大值或最小值?
如果您将 8 位数字解释为无符号数,则数字的范围在 00000000
和 11111111
之间,即 0
到 (2^8 - 1)=255
。
对于signed,一位用于符号。所以正数范围将从 00000000
到 01111111
,即 0
到 2^7-1=127
,而负数范围以 2 的补码形式表示 11111111
到 10000000
即 -1
到 -2^7=-128
。
通常,给定 N
位,无符号范围为 [0, 2^N-1]
。有符号范围为 [-2^(N-1), 2^(N-1)-1]
听起来您好像来自 VHDL 这样的语言,它具有允许您定义变量的最小值和最大值范围的子类型。 Verilog 没有这样的概念。最接近的是 SystemVerilog 中的模式匹配标记联合。
我有一些关于verilog的问题。
如果我的寄存器 A[7:0] 有无符号值,那么我如何获得最大值或最小值? 此外,如果我已将值签名到 reg A[7:0],那么我如何获得最大值或最小值?
如果您将 8 位数字解释为无符号数,则数字的范围在 00000000
和 11111111
之间,即 0
到 (2^8 - 1)=255
。
对于signed,一位用于符号。所以正数范围将从 00000000
到 01111111
,即 0
到 2^7-1=127
,而负数范围以 2 的补码形式表示 11111111
到 10000000
即 -1
到 -2^7=-128
。
通常,给定 N
位,无符号范围为 [0, 2^N-1]
。有符号范围为 [-2^(N-1), 2^(N-1)-1]
听起来您好像来自 VHDL 这样的语言,它具有允许您定义变量的最小值和最大值范围的子类型。 Verilog 没有这样的概念。最接近的是 SystemVerilog 中的模式匹配标记联合。