system-verilog - SystemVerilog 中单位常量文字的符号扩展
问题描述
SystemVerilog 具有大小不一的单位值文字,例如'0
和'1
。根据 IEEE Std 1800,在 5.7.1 Integer literal constants 中,我看到“一个未调整大小的单比特值......应被视为无符号”。但是,在本节的示例 5 中,我还看到:
logic [15:0] a, b, c, d;
a = '0; // sets all 16 bits to 0
b = '1; // sets all 16 bits to 1
...
这不意味着'1
被视为已签名吗?
事实上,我通过 Quartus Prime 和 ModelSim-Altera'1
得到了以下结果。1'b1
logic [3:0] a, b;
assign a = '1; // => yields 4'b1111
assign b = 1'b1; // => yields 4'b0001
我认为他们'1
和1'b1
他们自己都没有签名。为什么我会看到这样的差异?
解决方案
我错过了“所有未设置大小值的位都应设置为指定位的值”的描述。在同一部分。在多位上下文中,'1
被视为全为 1 的序列,但仍被视为无符号。
因此,在 4 位上下文中,'1
is unsigned4'b1111
和1'b1
is unsigned 4'b0001
。
抱歉打扰了。
推荐阅读
- r - R 中的 *metafor* 包是否为稳健的随机效应模型提供森林图
- python - Pandas Dataframe:有没有办法在组内的循环中填充缺失值?
- python - DC-GAN:鉴别器损失上升,而生成器损失下降
- javascript - 在它应该停止之前
- r - 如何在我的数据框中选择具有逻辑运算符“<”(小于)的值,将它们除以二,然后将所有值转换为 as.numeric
- node.js - 在 Windows 上从 bash 运行我的 NodeJS 程序会写入大量空格并且光标会消失
- android - Android导航视图顶部有一排不会走
- reactjs - React 中的 Openlayers 弹出窗口 | 如何?
- jms - createQueueConnection 上的 ActiveMQ Artemis 块
- mongodb - 检查 MongoDB 突变是否会成功而不实际执行它