【问题标题】:Why IEEE vhdl standard library is not STL?为什么 IEEE vhdl 标准库不是 STL?
【发布时间】:2010-01-19 12:47:50
【问题描述】:

IEEE vhdl语言参考手册只定义了一组有限的标准包,并没有定义标准类型的功能,例如STD_LOGIC。所以没有标准AND2,INV组件/操作符。

Altera 的 MAX+Plus II 好像不支持 AND2, INV 组件(如果有,请随时纠正我),但 Xilinx Foundation 支持。

为什么 IEEE vhdl 标准库不能成为 C++ 世界中的 STL?

谢谢。

【问题讨论】:

    标签: vhdl xilinx ieee intel-fpga


    【解决方案1】:

    对于 std_logic 类型的 Invert、And、Or,...受 IEEE 库支持:

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

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

    您应该始终尝试编写您的 VHDL 代码独立于技术。这允许您重用代码。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        因为fpga设计软件对目标芯片的相关性很高,只有两家企业有能力开发这样的软件。Altera的Max+PlusII只能支持Altera的芯片,Xilinx也一样。这些厂商控制着fpga的整个进度设计,从软件到硬件。然后他们倾向于针对自己的平台开发特定的功能。所以 IEEE 标准库不可能像 C++ 世界中的 STL。

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

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

        【讨论】:

        • 不完全正确。 FPGA 有 Actel 和 Lattice。还有一堆 ASIC 库,例如在 Synopsys 设计编译器下。
        猜你喜欢
        • 2011-07-09
        • 2013-08-24
        • 1970-01-01
        • 2011-11-16
        • 2017-06-23
        • 2013-04-20
        • 2015-05-31
        • 1970-01-01
        相关资源
        最近更新 更多