为什么IEEE vhdl标准库不是STL?

时间:2010-01-19 12:47:50

标签: vhdl xilinx ieee intel-fpga

IEEE vhdl语言参考手册仅定义了一组有限的标准包。它没有定义标准类型的功能,例如STD_LOGIC。因此没有标准的AND2,INV组件/运算符。

似乎Altera的MAX + Plus II不支持AND2,INV组件(如果有,请随时纠正我),但Xilinx基金会确实如此。

为什么IEEE vhdl标准库在C ++世界中不能像STL一样?

感谢。

3 个答案:

答案 0 :(得分:2)

反转,和,或者......对于IEEE库支持std_logic类型

a <= b and c
d <= not e
f <= g or h

您的综合工具会自动将这些表达式转换为目标技术的最佳实现(Xilinx FPGA,Altera FPGA,ASIC ......)。无需显式实例化特定于技术的组件。实例化特定于技术的组件甚至可能阻碍优化。

您应该始终尝试编写VHDL代码技术独立。这样您就可以重复使用代码。

答案 1 :(得分:1)

您要求的“组件”是VHDL中的运算符。

您也可以直接实例化AND2和INV组件之类的东西,但是您需要构建这些库(或者使用为您提供的库)。

答案 2 :(得分:-2)

由于fpga设计软件与目标芯片高度相关,只有两家企业能够开发此类软件.Altera的Max + PlusII只能支持Altera提供的芯片,Xilinx也是如此。这些供应商控制着fpga的全部进展设计,从软件到硬件。然后他们倾向于开发针对他们自己的平台的特定功能。所以IEEE标准库在C ++世界中不可能像STL。

AND2是Altera Max + PlusII的primitive,但它不是Xilinx Webpack的primitive。实际上我们可以设计我们自己的组件AND2(Xilinx选择在unisim包中提供它,但我们选择不加载thi包。)

INV不是Altera Max + PlusII的primitive,也不是Xilinx WebPack。