是否可以在VHDL中编写类型通用实体?

时间:2012-06-05 01:42:28

标签: generics vhdl type-parameter

所以,我最近继承了一些VHDL代码,我的第一反应是,“VHDL有结构,他们为什么到处使用位向量?”然后我意识到这是因为似乎没有任何方法可以写出这样的东西:

entity Queue is
    generic (
        EL : type
    );
    port (
        data_in  : EL;
        data_out : EL;
        ...
    );
end entity Queue;

我真的希望这是可能的。还有什么东西可以远程近似吗?即使我必须重新键入实体或组件声明,只是为了避免重新键入每个(模数为通用宽度)类型的体系结构定义?

2 个答案:

答案 0 :(得分:3)

是的,实施队列是做这件事的经典理由之一!

自VHDL-2008以来,这已经在VHDL中。截至2012年中期,工具支持可变。谈论一个发展缓慢的行业!

答案 1 :(得分:1)

是,不......

通用类型是即将推出的VHDL-2008标准的新功能:http://www.doulos.com/knowhow/vhdl_designers_guide/vhdl_2008/vhdl_200x_major/#GenericTypes

然而,EDA工具对VHDL-2008的支持仍然非常有限。即使您的工具支持它,使用此功能也会使您的代码无法移植。

坚持使用VHDL-2002,解决方案是在包中声明您的接口类型mytypes并在use work.mytypes.all所需的任何地方使用它。