通用记录(vhdl2008)

时间:2013-04-29 15:24:36

标签: vhdl

我正在努力实现一个端口依赖于通用包的实体,而这通用包依赖于实体的泛型。诀窍是我希望有一个端口记录。

首先,我尝试将记录放在通用包中,并从实体中实例化通用包。 (我没有从记录开始并问question regarding this)。

问题是modelsim抱怨以下顺序:

entity myEntity is
    generic()
    -- problem 1 package before port causes errors in modelsim
    package myInstance is new genericPackage generic map ...
    -- problem 2, "use" may appparently  not be used here
    port( p1 : in myInstance.genericRecord )
end entity;

有一种优雅的方法可以通过VHDL 2008的功能来解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

据我了解,包实例必须在实体之外。我认为你不能按照你想要的顺序拥有依赖项。

解决此类问题的另一种方法(例如,不受约束的向量)是在瞬间“将事情”推向实体。你能使用这样的类型泛型吗?

entity myEntity is
    generic (type myRecord);
    port (p1 : in myRecord);
end entity;

然后当你实例化它时,你创建了你需要的类型:

package myInstance is new genericPackage generic map ...
...
inst:entity work.myEntity
  signal recordSig : myInstance.genericRecord;
...
  generic map (type => myInstance.genericRecord)
  port map (p1 => recordSig);