IEEE vhdl语言参考手册仅定义了一组有限的标准包。它没有定义标准类型的功能,例如STD_LOGIC。因此没有标准的AND2,INV组件/运算符。
似乎Altera的MAX + Plus II不支持AND2,INV组件(如果有,请随时纠正我),但Xilinx基金会确实如此。
为什么IEEE vhdl标准库在C ++世界中不能像STL一样?
感谢。
答案 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。