请教Verilog里数据比较的问题?
时间:10-02
整理:3721RD
点击:
比如:a<=5'd10
如果a为负数的话,那么最高位为1,那么比较的结果是否应该是负数比5'd10大呢?
如果a为负数的话,那么最高位为1,那么比较的结果是否应该是负数比5'd10大呢?
只认二进制,不认符号。
2# remnant
多谢 我也是这么认为的
如果要有符号数
用$signed
对于verilog来说,它对信号的认知是所有信号都缺省认为是无符号数,即最高位不是符号位。只有当你刻意指定某个信号是有符号数(用signed),它才把最高位当成符号位。而这个signed关键字在verilog2001之前是不被承认的
注意wire是连线,而不是数据。数据有特定的定义和使用方法。只有signed类型数据才有负数。
5L正解
FPGA是没有符号概念的,把它看成电平就清楚了
5楼正解
是哦,这样就好理解了
signal is unsigned.
如果有符号的话,那就多一步判断符号的不就行了~
1# psd0208
Verilog里面数据类型没有sign unsign
这个不是<=, 是非阻塞赋值。
是下一拍来的时候,a==后面的值~
一般比较器只会从高位往低位比较
这个跟综合的库有关吗?
如果我用signed 的库去综合会怎么样?
对的,我曾经也碰到过这样的问题
不要用软件的观点看硬件的设计,FPGA只认电平,不认正负数
路过学习
学习中
高手解答下
学些来了。
二进制表示呗
补码分开考虑
不错,点滴积累
不要把正负的概念带入底层的电路设计,
即使verilog2001支持signed,也不要用。
