除法(“/”运算符)如何在verilog中综合?

问题描述 投票:0回答:1

对于除法运算符“/”是否可以合成不是 2 的幂的常数值,我看到了一些混合的答案,所以我继续使用 Synopsys Design Vision 进行尝试。事实证明它确实可以合成;但是,我不知道如何准确检查最终综合设计的功能或外观(不确定这是否可能)。我的问题具体是我可以检查门级的最终逻辑综合,看看它如何实现“/”除法,如果没有,任何人都可以帮助阐明它可能在做什么(即,它是否实现了移位的组合)和加法/乘法?)。

对于上下文,我只是实现一个模块来求解 sin 和 cos 的泰勒级数展开的前 3 项,如下所示:

    reg [31:0] x, x_2, x_3, x_4, x_5;
        reg signed [31:0] term1, term2, term3, term4, term5;
        ...
        term1 = 1 << 16; // Q16.16 format
    term2 = x_2 / 2; // x terms also already converted to Q16.16
    term3 = x_4 / 24;
    cos_sum = term1 - term2 + term3;

sin 版本使用类似的流程,但具有不同的项和除法常数。我遗漏了一些内容,例如 x^(0, 1, 2, 等) 的计算。该代码还通过了我的测试平台,输入范围为 -45 到 45 度。只是想我会分享,以防它有助于提供上下文来弄清楚 Design Vision 如何进行综合。

logic verilog synthesis register-transfer-level
1个回答
0
投票

对于 Verilog 中的可综合行为/RTL 模型,您选择的高级综合工具可以将可综合行为/RTL Verilog 模型的数据流图中的每个除法运算符映射到除法器电路(用于除法的数字/逻辑电路)用于逻辑综合。

在逻辑综合的技术映射阶段,它将把除法器映射到标准单元库中选定的除法器实现(作为软宏块)。选择基于您的偏好、优化目标(或成本函数)和约束(例如,性能、使用的逻辑单元数量和能源效率)。这避免了对除法器电路的预优化软宏块进行不必要的组合逻辑优化。

© www.soinside.com 2019 - 2024. All rights reserved.