GHDL 支持哪些版本的 VHDL 标准?

更新时间

GHDL 完整支持 IEEE 1076 标准的 1987、1993 和 2002 三个版本,对最新的 2008 版只提供部分支持——官方说明其支持程度足以使用 fixed_generic_pkg 或 float_generic_pkg。如果你的设计停留在 1987/1993/2002 语法范围内,可以放心使用;如果依赖 2008 版的其他新特性,需要先确认是否被覆盖。

各版本支持情况

VHDL 标准版本 支持程度 适用判断
IEEE 1076-1987 完整支持 可直接编译执行
IEEE 1076-1993 完整支持 可直接编译执行
IEEE 1076-2002 完整支持 可直接编译执行
IEEE 1076-2008 部分支持 足以支持 fixed_generic_pkg、float_generic_pkg,其余特性需逐项验证

这对实际使用意味着什么

GHDL 是一个开源 VHDL 仿真器,工作方式是把 VHDL 代码编译后在本地 PC 上直接执行,而不是逐行解释。它借助代码生成器(LLVM、GCC 或内置生成器)提升执行速度,官方称其比解释型仿真器快得多,并可运行在 Linux、Windows 和 Apple OS X 上。

版本支持直接决定你能否把现有工程交给它:

  • 老工程迁移:大量遗留 VHDL 代码基于 1987 或 1993 标准,属于完整支持范围,通常不需要改动即可编译。
  • 使用定点/浮点运算的设计:2008 版中的 fixed_generic_pkg 和 float_generic_pkg 是官方明确点名的可用部分,涉及定点或浮点类型的 2008 代码有较大概率能通过。
  • 依赖 2008 其他新语法的设计:例如其他新增的包、语法结构,官方没有承诺完整覆盖,需要实际编译验证,不能仅凭版本号假定可用。

如何确认自己的设计能否通过

  1. 确认代码所依据的 VHDL 标准版本(看工程设置或源码中的标准声明)。
  2. 若为 1987/1993/2002,直接尝试编译,预期可正常通过。
  3. 若为 2008,先检查是否只用到 fixed_generic_pkg / float_generic_pkg 相关特性;若是,可尝试编译;若涉及其他 2008 特性,以实际编译结果为准。
  4. 编译报错时,优先排查是否触碰了 2008 版未覆盖的部分,再考虑改写为受支持的写法。

获取方式

GHDL 提供各操作系统的二进制发行版,可自由下载;也可以从源码自行编译。发行版和源码均通过其 GitHub 仓库获取,使用指南同样在项目页面提供。