关于verilog里数的描述

verilog里的数可以这样表示吗?就是15表示成4‘b15,还是必须要写成4’b1111?后面的数如果不是前面表示的位数,是不是就默认是十进制的大小呢?比如3‘h98,是不是就是十进制的98,可以这样写吗?
4'd15不是表示4位的十进制数15吗?可是原数是4位的2进制数啊,虽然两个数实际大小一样,但是进制不一样了,这样可以???

1.十进制15可以用4位表示为4'b1111(二进制),4'd15(十进制),或者4'hF(十六进制).也就是要与进制对应起来。4'b15就绝对是错的了,因为二进制里是只有1和0的。
2.3'h98并不是十进制的98,而是十六进制的,也就是十进制的9*16+8=152.
而3'd98是十进制的98.如果直接写98,默认就是十进制的98了。位数多高位补零,位数少就会截断。

补充:硬件里面都是用二进制的,只是为了方便可以可以用十进制表示。既然用了Verilog就要有硬件的思维了,呵呵
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-10-17
Verilog中不同进制是用不同的字母表示的,b代表2进制,o代表八进制,d代表十进制,h代表十六进制,常用的是2进制和16进制,4'd15是表示十进制数15,但其存储的是二进制形式,比如十进制数15,可以写成4'd15,也可以写成4'b1111。希望你帮上你。
第2个回答  2010-10-16
4'b1111可以表示成4'd15,4‘b15的表示是错的。b代表二进制,d代表十进制。

verilog里面*表示什么意思?
verilog里面** 表示这是多少次幂。verilog里面的算术:1.加(+):2个操作数相加 2.减(-):2个操作数相减或取1个操作数的负数(二进制补码表示)3.乘(*):2个操作数相乘 4.除(\/):2个操作数相除 5.求幂(**)}}:2个操作数求幂,前一个操作数为底数,后一个操作数为指数 在Verilog...

verilog赋值语句里,=0 和 =1‘b0 到底有什么区别啊?
<位宽><进制><数字>是一种全面的描述方式, 1‘b0 表示1位宽,2进制,数字0 <数字> 这种表述方式也是合理的,默认使用10进制 即: 十进制的0 二进制的0和十进制的0是相等的,所以没有区别

verilog数组的定义、转换和加法器的实现
Verilog是一种用于描述数字电路和系统的硬件描述语言,其中数组的定义与转换是关键点。在Verilog中,数组通过括号和索引来实现,支持一维和多维结构。以下是一维数组的示例,通过for循环遍历并加1。在时序逻辑中,可以使用always块实现数组操作。如上例所示,数组元素被迭代并加1,适用于构建复杂电路。加法器...

Verilog中常数28'hFFFF_FFF什么意思
第一个数字表示位数,28'就是有28位 h表示是十六进制数,b表示二进制,d表示十进制。因此,28'hFFFFFFF表示十六进制数,用二进制表示就是28个“1”,4’b10就是4为二进制0010;4'd10指十进制数10 Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字系统硬...

verilog HDL描述四选一数据选择器里的input[1:0] sel是...
1)input [1:0] sel就是说输入信号sel是2位的意思,分别是sel[1], sel[0]2)2'b00就是表示2个二进制位,1‘b0就是一个二进制位。b表示binary二进制,前面的数字代表位数 3)表示默认2位的输出值为高阻态。具体到高阻态,是一个常见的输出状态,你可以理解为高,不过真正应用的时候还是...

SystemVerilog 数据类型简介
在 Verilog 中,我们使用 reg 和 wire 数据类型来描述硬件行为。然而,随着硬件验证的日益复杂和严格,Verilog 的数据类型在开发有效的测试激励文件和测试用例时显得有些力不从心。因此,SystemVerilog 在 Verilog 的基础上进行了扩展,添加了更多类似于 C 语言的数据类型,以改善封装和紧凑性。以下是 ...

Verilog语言如何描述以下的计数器 当输入使能en为高时开始计数, 计...
input CLK;input RESET;input [3:0] Din;output count;output [3:0] Q;reg [3:0] Q1;reg count;assign Q=Q1;always@(posedge CLK or negedge RESET)begin if(!RESET) Q1=0; \/\/RESET=0,对内部寄存器单元异步清零 else if(EN) begin \/\/同步时能EN为1时,允许计数 if(Q1<9) Q1...

在硬件描述语言中(verilog),为什么2.5可以写成二进制10.1,就是小数部分...
2.5 = 1*2^1 + 0*2^0 + 1*2^{-1}, 所以写成二进制就是10.1, 其中的0.1就是1*2^{-1}

VHDL或Verilog中,用中括号[]表示的数据是并行数据吗
可以这样理解,例如:Verilog中data[7:0]表示的是位宽为8的数据,但是在VHDL中是用data(7 downto 0)来表示

verilog中a表示什么?
当c=1,d=1时a的值等于1,当c=1,d=0或者c=0,d=1或者c=0,d=0时a的值为0。首先会判断b的值是否等于1,等于0,则直接对a进行赋值为0,如果b的值为1,那么会执行(c && d) ? 1'b1:1'b0,然后根据c&&d的结果判断赋值的结果,当c=1,d=1,时a赋值为1,其他情况都赋值为0。

相似回答