高级VHDL配置是否曾在现实生活中使用过?

Phi*_*ppe 10 vhdl

VHDL配置可用于将组件绑定到具有不同名称的实体,甚至可以使用完全不同的端口.[查看此文章了解更多信息]

  configuration c2 of testbench is
    for str
        for dut_inst : dut
            use entity work.unrelated(rtl)
                port map(
                    port1 => a,
                    port2 => b,
                    port3 => c,
                    port4 => "unused"
                );
        end for;
    end for;
  end configuration c2;
Run Code Online (Sandbox Code Playgroud)

你们有没有见过这种商业项目项目?放弃一个看似无关的实体的目的是什么?为什么他们不只是改变实例化代码?

我可以弥补假设情况,但我对现实生活中的用例很感兴趣.

Pau*_*l S 5

从未见过端口绑定发生变化,但是我见过它曾经用于绑定具有相同端口映射的不同版本的组件。我看过的一些例子:

  • 构建大型系统级仿真时,以空版本进行绑定。在测试设计的其他部分时,某些版本的设计将被不执行任何操作以降低内存占用的版本所取代。
  • 与之类似,但是在测试设计的总线基础结构时,请绑定以“疯狂”方式做出响应的简单单元。
  • 具有不同设计折衷的特定块的不同版本。例如一个大而快的版本,一个小而慢的版本。然后可以根据系统组合在一起时或针对特定应用程序所需进行更换。

这些都不需要您正在谈论的功能。我唯一想到的是,使用不同的组件可能会有用,这是因为您拥有多个RAM库供应商之类的东西,并且需要定期在它们之间进行交换。即使那样,您也不太可能进行一对一的端口映射。总有一个掉电引脚需要反相或其他功能。


ges*_*ema 3

不,我从未在野外见过这种情况。

我想原因是大多数人(包括我自己)甚至不知道配置可以实现这样的事情。