Intel® Quartus® Prime Pro Edition用户指南: 设计建议

ID 683082
日期 9/28/2020
Public

本文档可提供新的版本。客户应 单击此处 前往查看最新版本。

文档目录

1.6.7. 比较器HDL准则

本节提供了可用于比较器(<, >, or ==)的不同类型的实现的信息,并提供有关如何编码设计以鼓励特定实现的建议。 综合工具(包括 Intel® Quartus® Prime Pro Edition 综合)使用器件和特定于上下文的实现规则,并为设计选择最佳的规则。

综合工具在通用逻辑单元中实现==比较器,在进位链或普通逻辑单元中实现<比较。在包含6-input ALUT的器件中,进位链每个单元最多可比较3个比特。在独立基准测试用例上,进位链的实现往往比普通逻辑要快,但由于对Fitter的限制增加,因此在大型设计上可能导致性能降低。对大多数输入模式,对面积的要求都差不多。综合工具根据输入模式选择相应的实现。

您可以通过选择特定的编码类型来指导 Intel® Quartus® Prime Synthesis引擎。要明确选择一个进位链实现,请在加法方面对比较进行改写。

例如,以下编码样式使综合工具可以选择实现,最有可能在现代器件系列中使用通用逻辑单元:

wire [6:0] a,b;
wire alb = a<b;
在以下编码样式中,综合工具使用进位链(少数情况除外,例如,当链很短时,或者信号ab最小化为同一信号:
wire [6:0] a,b;
wire [7:0] tmp = a - b;
wire alb = tmp[7]

第二种编码方式使用tmp信号的高位,它是二进制补码逻1(如果a小于b),因为减法a-b的值是一个负数。

如果您有关于输入范围的任何信息,那么可以使用“don’t care”值来优化设计。此信息不适用于综合工具,因此逻辑的特定手动实现可以减少实现比较器所需的器件面积。

以下逻辑结构(经常出现在地址解码器中)使您能够检查一个总线值是否在较小逻辑区域的恒定范围内:

图 5. 使用比较器检查总线值范围的示例逻辑结构