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

ID 683082
日期 9/28/2020
Public

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

文档目录

1.6.8. 计数器HDL准则

Intel® Quartus® Prime综合引擎在HDL代码中将计数器实现为加法器,然后是寄存器,并提供可用的寄存器控制信号,例如使能(ena),同步清除(sclr)和同步加载(sload)。为了获得最佳的面积利用率,请确保使用一个加法运算符而不是两个单独的加法运算符来表达上下控制。
如果使用以下编码样式,那么综合引擎可能会实现两个单独的进位链以进行加法运算:
out <= count_up ? out + 1 : out - 1;

对于简单设计,综合引擎可以识别这种编码样式并优化逻辑。但是,在复杂的设计或具有保留实用说明的设计中,Compiler无法优化所有逻辑,因此必须进行更严谨的编码。

以下编码样式仅需要一个加法器以及其他逻辑:
out <= out + (count_up ? 1 : -1);

此样式仅使用一个进位链加法器,并且在加法器之前的LUT中实现了–1常量逻辑,因此可以更有效地利用资源和区域。