【发布时间】:2017-02-01 19:29:14
【问题描述】:
我找不到与此相关的任何问题,但我可能只是不知道要搜索什么。使用综合工具时(如果您需要特定工具,可以说 Synplify,但最好有跨工具工作的标准兼容版本),是否可以跟踪模块实例的数量并帮助解决这个问题指导合成?我怀疑不是,但我可以看到很多这样的用例。让我举一些例子来说明我的意思。
在某些背景下,我写这篇文章时考虑到了 FPGA 开发,但我敢打赌它也可以用于 ASIC 设计。
假设我在一个设备上有 10 个乘法器,并且我有一些操作(如复数乘法器),我想在许多位置(不仅仅是在生成循环中,而是在整个设计中)实例化。假设我有一个为此函数使用专用乘法器的实现,但我也有一个使用结构的复数乘法器。我希望我的复数乘法器在进行结构实现之前用尽专用乘法器。
是否可以通过包装器实例化复数乘法器,并且每次在细化过程中实例化该包装器时,全局实例计数都会增加,以便我可以跟踪使用了多少乘法器?此外,我是否可以在 generate-if 语句或其他构造中使用此全局变量,根据已使用的乘法器模块实例的数量在两种实现之间做出决定?
我以乘数为例。我意识到我可以推断乘数来获得这种行为。我想象设计中我可能想要根据这个全局变量的当前值推断不同的滤波器结构(例如,抽头延迟线 FIR 滤波器与分布式算术 FIR 滤波器)。这在将代码移植到新的 FPGA 时肯定会有所帮助。
我一直在寻找类似的东西,但我怀疑它不存在。我意识到我可以通过简单地以正确的方式设计我的系统架构来做一些非常接近我想要的事情。这里的意图更多是关于在我的设计中自动化该过程,以便将来对我的设计进行的更改不需要我重构整个系统布局(除非时间或资源限制发挥作用)。我还认为这是一种帮助我保持我的代码在具有非常不同资源分配的同一系列设备之间可移植的方法(这个有更多的 DSP 片,那个有更多的 LUT,等等)。
如果这只存在于一种工具或一种语言中,那对我来说仍然是一个可以接受的解决方案。如果您可以提供明确的证据或无法正常工作的合乎逻辑的原因,那对我来说也是一个可以接受的解决方案。
【问题讨论】:
标签: vhdl verilog hdl synthesis