【verilog每日一练】变量位宽的选取 - FPGA开发者技术社区 - 电子技术william hill官网 - 广受欢迎的专业电子william hill官网 - 威廉希尔官方网站
分享 收藏 返回

Mill 关注 私信
[问答]

【verilog每日一练】变量位宽的选取

定义一个reg型变量a,a的最大值为2000,则a的最小位宽需定义为多少

回帖(10)

Mill

2023-8-16 10:34:32

最佳答案

答案:reg [10:0]a;

解析:在verilog中位宽指二进制数的位宽,十进制的2000转成二进制为:111 1101 0000,所以变量a最小位宽为11。通常在代码上会为变量再预留一部分位宽避免溢出,若数值超出所定位宽能表示的最大值后会出现高位溢出。

PCB62304753

2023-8-16 11:27:52
最小位宽为11 最大能表示的数为2048

叹久

2023-8-16 16:53:34
在大多数编程语言中,reg通常指的是一个寄存器类型变量。寄存器的位宽取决于所使用的硬件和架构。

假设我们使用的是一个32位(32位 = 32位 * 8位/字节 = 256位/字节)的寄存器,那么可以存储的最大值是2^32,即4294967295。如果最大值是2000,那么我们需要至少20位(2000的二进制表示形式是1111101000000)来存储这个值。

hehung

2023-8-16 17:54:41
2000 二进制占用了11位,所以最小需要11位

更多回帖

×
发帖