我知道当您创建模块的多个实例时,会为每个实例创建单独的硬件。但功能如何呢?当我从代码的不同部分调用相同的函数时到底发生了什么?
答案 0 :(得分:2)
可以将合成的verilog函数推断为组合电路,通常是一系列多路复用器。
答案 1 :(得分:1)
基本上,该功能将被内联'每次被召唤。之后发生的事情取决于合成软件。其中一些实例可能是多余的,将被删除。可以通过插入多路复用器来组合一些不完全冗余的。逻辑路径长度,复杂性,时序要求等都会影响结果。
这种优化可以跨模块进行。合成器可以非常好地去除甚至复制逻辑,以减小整体尺寸并满足时序约束。