Generics 是否可以用VHDL编写类型泛型实体?

Generics 是否可以用VHDL编写类型泛型实体?,generics,vhdl,type-parameter,Generics,Vhdl,Type Parameter,所以,我最近继承了一些VHDL代码,我的第一反应是,“VHDL有结构,为什么它们到处都使用位向量?”然后我意识到这是因为似乎没有任何方法可以编写这样的代码: entity Queue is generic ( EL : type ); port ( data_in : EL; data_out : EL; ... ); end entity Queue; 我真希望这是可能的。有哪怕是一点点接近它的

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

entity Queue is
    generic (
        EL : type
    );
    port (
        data_in  : EL;
        data_out : EL;
        ...
    );
end entity Queue;
我真希望这是可能的。有哪怕是一点点接近它的东西吗?即使我必须重新键入实体或组件声明,也可以通过某种方式避免为每种类型(以通用宽度为模)重新键入体系结构定义?

是和否

泛型类型是即将推出的VHDL-2008标准的一项新功能:

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


坚持VHDL-2002,一个解决方案是在包中声明接口类型和
mytypes
,并在
use work.mytypes.all

中需要的任何地方使用它。是的,实现队列是这样做的经典原因之一

自VHDL-2008以来,它一直使用VHDL。截至2012年年中,工具支持是可变的。谈论一个发展缓慢的行业

  • 阿尔代克
  • Modelsim提供部分支持-找不到指向其功能的公共链接。如果已安装,则位于/technotes/vhdl2008.note中
  • Xilinx(XST/ISIM)不支持它,甚至不支持VHDL-2002。我找不到一个简单的链接,但是有关于VHDL兼容性的章节,其中只谈到VHDL-1993
  • 奥特拉的工具

我不确定您对Xilinx的看法是否正确-我在代码中使用了2002构造,它模拟和合成得很好(使用XST和ISIM)。此外,ISE允许VHDL兼容性设置为“200X”。他们关于标准支持的官方文档可能已经过时了。@detly:谢谢你的更新,我已经有一段时间没有在“本世纪”用ISIM尝试任何东西了。“即将推出的VHDL-2008标准”-这让我笑了:)总有一天它会被描述为“当前的VHDL标准”,总有一天!