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

Owe*_*wen 5 generics vhdl type-parameter

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

entity Queue is
    generic (
        EL : type
    );
    port (
        data_in  : EL;
        data_out : EL;
        ...
    );
end entity Queue;
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*son 3

是的,实现队列是这样做的经典原因之一!

自 VHDL-2008 以来,这一直在 VHDL 中。自 2012 年中期起,工具支持有所变化。谈论一个缓慢发展的行业!

  • Aldec完全支持它
  • Modelsim 提供部分支持 - 找不到其功能的公共链接。如果您安装了它,它位于 /technotes/vhdl2008.note
  • Xilinx (XST/ISIM) 不支持它,甚至VHDL-2002 也不支持。我找不到简单的链接,但这些 PDF有关于 VHDL 兼容性的部分,其中只讨论了 VHDL-1993。
  • Altera的工具有部分支持,但不支持类型泛型