代码之家  ›  专栏  ›  技术社区  ›  Jichao

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

  •  1
  • Jichao  · 技术社区  · 16 年前

    ieee vhdl语言参考手册只定义了一组有限的标准包,没有定义标准类型的功能,如std_逻辑,因此没有标准和2,inv组件/操作员。

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

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

    谢谢。

    3 回复  |  直到 15 年前
        1
  •  2
  •   Hendrik    15 年前

    反转,和,或,…对于标准逻辑类型 由IEEE库支持:

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

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

    你应该总是试着写你的vhdl代码 技术独立 . 这允许你 重新使用 代码。

        2
  •  1
  •   Charles Steinkuehler    16 年前

    您要求的“组件”是VHDL中的操作员。

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

        3
  •  -2
  •   Jichao    16 年前

    由于FPGA设计软件与目标芯片高度相关,只有两个企业能够开发这种软件,Altera的Max+Plusii只能支持Altera的芯片,Xilinx也只能支持。这些供应商控制着从软件到硬件的整个FPGA设计进度,然后倾向于开发针对目标芯片的特定功能。因此,IEEE标准库不能像C++世界中的STL一样。

    AND2 primitive 但它不是 原始的 我们可以设计自己的组件 AND2 (哪些Xilinx选择在Unisim软件包中提供,但我们选择不加载该软件包)。

    INV 不是 原始的 对于Altera Max+Plusii,两者都不是Xlinx Webpack。