verilog/system verilog中的最大线位宽度是多少

verilog/system verilog中的最大线位宽度是多少,verilog,system-verilog,Verilog,System Verilog,我正在尝试使用Intel Quartus软件综合设计。在合成流程中,我收到一条警告:“Verilog声明警告:向量超过2**16位”。根据项目规范,导线长度超过2^16位。我真的需要担心这个警告吗?Verilog/System Verilog中是否存在关于导线最大位宽度的任何约束?是的,根据定义,它可以被限制,并且由于您的合成工具发出警告,如果在项目的未来出现任何问题,您应该记住这一点 对于您根据警告可能参考的压缩阵列(第7.4.1节),上述LRM的内容如下: 压缩阵列的最大大小可以限制,但至少

我正在尝试使用Intel Quartus软件综合设计。在合成流程中,我收到一条警告:“Verilog声明警告:向量超过2**16位”。根据项目规范,导线长度超过2^16位。我真的需要担心这个警告吗?Verilog/System Verilog中是否存在关于导线最大位宽度的任何约束?

是的,根据定义,它可以被限制,并且由于您的合成工具发出警告,如果在项目的未来出现任何问题,您应该记住这一点

对于您根据警告可能参考的压缩阵列(第7.4.1节),上述LRM的内容如下:

压缩阵列的最大大小可以限制,但至少应为65 536(2^16)位

对于未打包的阵列(第7.4.2节),它表示:

实现可能会限制阵列的最大大小,但它们应允许至少16 777 216(2^24)个元素

但是,你真的需要一个2^16位宽的向量吗?如果您有一个16位变量(例如,
logic[15:0]
),则可以处理高达
2^16-1=65535
的无符号值。如果您有一个2^16位宽的向量(例如,
logic[65535:0]
),则最多可以显示
2^(2^16)-1的值≈ 2.00×10^19728

你能不能把你的电线分成几根更小的电线?

是的,根据你的想法,它是有限的,因为你的合成工具发出了警告,如果你的项目在未来出现任何问题,你应该记住这一点

对于您根据警告可能参考的压缩阵列(第7.4.1节),上述LRM的内容如下:

压缩阵列的最大大小可以限制,但至少应为65 536(2^16)位

对于未打包的阵列(第7.4.2节),它表示:

实现可能会限制阵列的最大大小,但它们应允许至少16 777 216(2^24)个元素

但是,你真的需要一个2^16位宽的向量吗?如果您有一个16位变量(例如,
logic[15:0]
),则可以处理高达
2^16-1=65535
的无符号值。如果您有一个2^16位宽的向量(例如,
logic[65535:0]
),则最多可以显示
2^(2^16)-1的值≈ 2.00×10^19728


你能不能把你的线分成几条更小的线?

Verilog/SystemVerilog语言本身没有定义最大向量宽度。我隐约记得IEEE1364/IEEE1800 LRMs中提到的最低模拟量

由于各种原因,合成器有其自身的局限性;例如软件复杂性、物理映射/路由、业务策略(“购买此其他工具”)等。您收到警告的事实可能表明物理映射/路由,因为大多数合成器试图将向量中的所有位保持在一起;从而使整体路由和时钟树缓冲更容易


2^16是很多位,您的设计超过了这一点。理论上,您可以将整个向量拆分为更易于管理的块(例如左、右),这可能会为您提供更好的路由和时间安排。如果您的设计满足所有要求,则可以忽略警告。当它突然不再被忽视时,要做好改变的准备

Verilog/SystemVerilog语言本身没有定义最大向量宽度。我隐约记得IEEE1364/IEEE1800 LRMs中提到的最低模拟量

由于各种原因,合成器有其自身的局限性;例如软件复杂性、物理映射/路由、业务策略(“购买此其他工具”)等。您收到警告的事实可能表明物理映射/路由,因为大多数合成器试图将向量中的所有位保持在一起;从而使整体路由和时钟树缓冲更容易


2^16是很多位,您的设计超过了这一点。理论上,您可以将整个向量拆分为更易于管理的块(例如左、右),这可能会为您提供更好的路由和时间安排。如果您的设计满足所有要求,则可以忽略警告。当它突然不再被忽视时,要做好改变的准备

是的,你应该担心这些信息。这意味着您可能误码了一些东西,因为我不认为您真的需要一个2^16位的积分向量(压缩数组)。这意味着要表示一个2^16^2=1.1579209e+77的数字。您可能需要一个未打包的位或字节数组。

是的,您应该担心消息。这意味着您可能误码了一些东西,因为我不认为您真的需要一个2^16位的积分向量(压缩数组)。这意味着要表示一个2^16^2=1.1579209e+77的数字。您可能需要位或字节的未打包数组。

是的,我想我需要使用打包数组和未打包数组的组合。我试图在一个巨大的压缩数组中处理大约7K个16位的值,结果是大于2^16位。我现在用的是这根电线[15:0]w_name[8191:0];是的,我想我需要组合使用压缩阵列和非压缩阵列。我试图在一个巨大的压缩数组中处理大约7K个16位的值,结果是大于2^16位。我现在用的是这根电线[15:0]w_name[8191:0];