gpt4 book ai didi

vhdl - 综合全局实例计数

转载 作者:行者123 更新时间:2023-12-01 18:22:37 25 4
gpt4 key购买 nike

我找不到与此相关的任何问题,但可能我只是不知道要搜索什么。使用综合工具时(如果您需要特定工具,可以说 Synplify,但最好有一个跨工具工作的标准兼容版本),是否可以跟踪模块实例的数量并帮助实现这一点指导合成?我怀疑不是,但我可以看到很多类似这样的用例。让我举一些例子来说明我的意思。

在某些背景下,我写这篇文章时考虑的是 FPGA 开发,但我打赌它也适用于 ASIC 设计。

假设我的设备上有 10 个乘法器,并且我有一些操作(例如复杂的乘法器),我想在许多位置实例化(不仅在生成循环中,而且在整个设计中)。假设我有一个使用此函数的专用乘法器的实现,但我也有一个使用该结构的复杂乘法器。我希望我的复杂乘法器在进行结构实现之前先耗尽专用乘法器。

是否可以通过包装器实例化复杂的乘法器,并且每次在精化过程中实例化该包装器时,全局实例计数都会增加,以便我可以跟踪使用了多少个乘法器?此外,我可以在generate-if语句或其他构造中使用这个全局变量,根据已使用的乘法器模块的实例数量在两个实现之间做出决定吗?

我使用乘数作为示例。我意识到我可以推断乘数来获得这种行为。我想象在设计中我可能想要根据此全局变量的当前值推断不同的滤波器结构(例如,抽头延迟线 FIR 滤波器与分布式算术 FIR 滤波器)。当将代码移植到新的 FPGA 时,这肯定会有所帮助。

我一直在寻找这样的东西,但我怀疑它不存在。我意识到,只需以正确的方式设计系统架构,我就可以做一些非常接近我想要的事情。这里的目的更多的是在我的设计中自动化该过程,以便将来对我的设计的更改不需要我重构整个系统布局(除非出现时间或资源限制)。我还认为这是一种帮助我保持代码在资源分配差异很大的同一系列设备之间可移植的方法(这个有更多的 DSP 片,那个有更多的 LUT,等等)。

如果这只存在于一种工具或一种语言中,那对我来说仍然是一个可以接受的解决方案。如果您能提供明确的证据或无法工作的逻辑原因,这对我来说也是一个可以接受的解决方案。

最佳答案

您是否真的尝试过实现一种能够推断出比设备中更多乘数的设计?我希望该工具一旦用完 DSP block 就会自动开始使用 LUT 资源。但是,假设这没有发生:

您可以使用 Xilinx Vivado 和自定义 TCL 脚本在一定程度上实现这一目标。我不会详细说明确切的命令和脚本,因为要正确执行这将非常耗时,但基本流程如下所示:

  1. 向实现乘数的实体添加通用参数。将这些与设计顶层的通用参数联系起来。
  2. 脚本设置一组初始通用参数,使每个实体使用专用 DSP block 。
  3. 脚本运行 synth_design,并使用 -generic 开关控制 DSP 模块的使用。
  4. 综合完成后,脚本会解析 report_utilization 的输出,以确定是否超出了 DSP block 的数量。如果不是,请转到步骤 5。如果是,请修改通用参数集,以便更多实体使用替代乘数实现,然后返回步骤 3。
  5. 综合设计适合设备,脚本继续执行实现步骤。

不使用泛型的上述过程的替代方法是保持相同的基本步骤,但在特定乘法器实例上使用 set_property 命令来控制其实现,而不是设置泛型。

关于vhdl - 综合全局实例计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41988078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com