Menu Close

VHDL 语言简介

VHDL 的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language(超高速集成电路硬件描述语言),是20世纪80年代初美国国防部的资助下始创的,并最终导致了VHDL语言的出现。 1987 年底 VHDL 被 IEEE (The Institute of Electrical and Electronics Engineers)和美国国防部确认为标准硬件描述语言 。IEEE 与1987年公布了VHDL 的标准版本IEEE-1076 ,之后 各 EDA 公司相继推出了自己的 VHDL 设计环境 或宣布自己的设计工具可以和 VHDL 接口; 此后 VHDL 在电子设计领域得到了广泛的接受 并逐步取代了原有的非标准硬件描述语言。

1993 年 IEEE 对 VHDL 进行了修订, 从更高的抽象层次和系统描述能力上扩展 VHDL 的内容 ,公布了版本的 VHDL 即 IEEE 标准的 1076-1993版本 。之后又经过了多次版本的修订,使VHDL语言逐渐称为功能强大,接口丰富,语法严谨,描述能力强的硬件描述语言。目前VHDL ,Verilog以及System Verilog 作为 IEEE 的工业标准硬件描述语言 。VHDL语言由于是最早成为IEEE标准的硬件描述语言,在全球应用及其广泛,几乎得到所有著名 EDA 软件的支持, 在电子工程领域 已成为事实上的通用硬件描述语言。

1. VHDL语言的版本及标准化

谈到VHDL语言,必然要谈到版本更替。知道各个版本之间的差异,新版本带来哪些新特性,可以做到自觉使用。同时在使用EDA软件进行综合与仿真时也要注意该EDA软件目前所支持的最新版本。VHDL语言版本更替如下:

(1)版本演进

  • IEEE 1076-1987  First standardized revision of ver 7.2 of the language from the United States Air Force.
IEEE 1076-1987 --美国空军对该语言 7.2 版的第一次标准化修订,由于IEEE 1076-1993成功应用,目前IEEE 1076-1987已经被后续版本所替代。
  • IEEE 1076-1993 (also published with ISBN 1-55937-376-8). Significant improvements resulting from several years of feedback. Probably the most widely used version with the greatest vendor tool support.
IEEE 1076-1993,经过多年来的反馈,此次修订带来了显着的改进。可能是使用最广泛的版本,具有最大的供应商工具支持。
  • IEEE 1076-2000.  Minor revision. Introduces the use of protected types.

IEEE 1076-2000,较小修订,增加了保护类型。

  • IEEE 1076-2002.  Minor revision of 1076-2000. Rules with regard to buffer ports are relaxed.

IEEE 1076-2002, 较小修订,放松了对端口缓冲规则要求。

  • IEEE 1076c-2007.[9] Introduced VHPI, the VHDL procedural interface, which provides software with the means to access the VHDL model. The VHDL language required minor modifications to accommodate the VHPI.

IEEE 1076c-2007 ,该版本介绍VHPI,即VHDL程序接口。该接口可以实现软件对VHDL model的访问,使仿真和验证更加灵活。因此VHDL语言需要改动以便支持VHPI。

  • IEEE 1076-2008 (previously referred to as 1076-200x). Major revision released on 2009-01-26. Among other changes, this standard incorporates a basic subset of PSL, allows for generics on packages and subprograms and introduces the use of external names.

IEEE 1076-2008 主要修订版,于 2009-01-26 发布。除其他更改外,该标准包含 PSL 的基本子集,允许对包和子程序进行泛型(即使用generic 进行参数传递),并引入了外部名称的使用。

目前主流的EDA软件大多数都支持该版本。

  • IEEE 1076-2019. Major revision. 64-bit integer is default data type, not an option to be specified.

IEEE 1076-2019也是主要修订版。64位的整数类型是基本设定,而不再是特定的选项。

(2)VHDL的相关标准

  • IEEE 1076.1 VHDL Analog and Mixed-Signal (VHDL-AMS)

VHDL-AMS 是硬件描述语言 VHDL(IEEE 标准 1076-1993)派生出来的。它包括模拟和混合信号扩展 (AMS),以定义模拟和混合信号系统的行为 (IEEE 1076.1-1999)。 创建 VHDL-AMS 标准的目的是使模拟和混合信号系统和集成电路的设计人员能够创建和使用封装高级行为描述以及系统和组件的结构描述的模块。VHDL-AMS 是一种用于混合信号的建模语言。它提供连续时间和事件驱动的建模语义,因此适用于模拟、数字和混合模拟/数字电路。它特别适用于非常复杂的模拟、混合信号和射频集成电路的验证。

  • IEEE 1076.1.1 VHDL-AMS Standard Packages (stdpkgs)

VHDL-AMS标准包

  • IEEE 1076.2 VHDL Math Package

 数学函数包,

  • IEEE 1076.3 VHDL Synthesis Package (vhdlsynth) (numeric std)
numeric_std 是为VHDL定义的库包。它为向量提供算术函数。为有符号和无符号算术定义了std_logic_vector的覆盖。它定义了用于综合工具的数字类型和算术函数。
定义了两种数字类型:UNSIGNED(无符号数)和SIGNED(有符号数)。该包还包含有用的类型转换功能。
  • IEEE 1076.3 VHDL Synthesis Package – Floating Point (fphdl)

浮点运算包。

  • IEEE 1076.4 Timing (VHDL Initiative Towards ASIC Libraries: vital)

时序包(非常接近ASIC的vital库)

  • IEEE 1164 VHDL Multivalue Logic (std_logic_1164) Packages

     多值逻辑库,VHDL的基本逻辑类型的定义与使用。

2. VHDL 的特点

VHDL 主要用于描述数字系统的结构 、行为 、功能和接口。除了含有许多具有硬件特征的语句外, VHDL 的语言形式和描述风格与句法十分类似于一般的计算机高级语言。特别是与硬件描述语言的另外两个分支Verilog, System Verilog语言的风格很像。如果有Verilog或System Verilog的基础,VHDL的学习也相对变得比较容易。其主要特点如下:

  •  VHDL是硬件描述语言,这不同意一般的计算机软件语言。VHDL语言实际是逻辑电路的描述及验证,因此VHDL称为描述语言而不是编程语言。
  •  语法严格,是强语法类的语言。不同类型的数据不能实现相互赋值或运算,因此库函数进行数据类型转换。
  • 大量的预定义的接口与函数可以使用,加速设计进程。如VHDL提供了浮点库,在浮点运算时可以调用库函数,简化设计难度。
  • 层次化设计语言,代码的重用便捷。
  • 丰富的验证库和函数可以使用,使验证的广度和深度都方便实现。
  • 逻辑类型比同类的描述语言更丰富,描述的内容更丰富。如VHDL语言提供9值逻辑类型,而Verilog及System  Verilog指提供4值逻辑类型。因此VHDL比Verilog,System Verilog的描述更贴近实际电路。
    • VHDL 9值逻辑类型:
      • 'U': uninitialized. This signal hasn’t been set yet.
      • 'X': unknown. Impossible to determine this value/result.
      • '0': logic 0
      • '1': logic 1
      • 'Z': High Impedance
      • 'W': Weak signal, can’t tell if it should be 0 or 1
      • 'L': Weak signal that should probably go to 0
      • 'H': Weak signal that should probably go to 1
      • '-': Don’t care.
    • Verilog 4值逻辑类型
      • ‘X’     unknown
      • ‘Z’     ‘High Impedance
      • ‘1’     logic 1 (high voltage level)
      • ‘0’    logic 0 (low voltage level)
  • 应用广泛,目前在世界范围内,接近一半的IC 工程师和FPGA工程师选择使用VHDL进行电路设计。特别是IP核的设计更多的是由VHDL语言完成的。
  • 由于VHDL语言语法要求严格,因此在设计,综合和验证方面都有一定的优势,避免了一些因语法宽松带来的兼容性错误。
  • 学习难度偏高,由于语法要求严格,数据类型丰富,库函数多,运算需要类型匹配,因此VHDL语言是学习曲线较陡的语言。是缺点也是优点,一旦掌握并能熟练使用,VHDL语言在电路设计方面具有更多的优势。

3. VHDL语言学习的必要性

  • VHDL语言是完善的语言体系,学会VHDL语言后,可以使用VHDL进行逻辑电路设计,并能对设计的电路进行仿真验证。
  • 交叉多语言完成项目设计,即使采用Verilog进行IC或FPGA的的设计工作,也有可能继承或引用来自其他工程师采用VHDL语言设计的部分电路,子模块或IP核。
  • 多数EDA软件支持VHDL与Verilog的接口,及VHDL语言设计的模块可以在Verilog组织的工程中进行例化,反之亦然。

4. VHDL语言的学习方法

  • 跟随本教程由浅入深,循序渐进。
  • 做好本教程中提供的各个案例及练习,反复实践,反复摸索,逐步加深。
  • 对比学习,如果已经掌握了Verilog,可以与Verilog对比学习。
  • 选择合适的EDA软件以及硬件调试工具,在仿真中和硬件调试中积累经验。初学者建议使用Vivado,Quartus 等开发工具,同时选择一套合适的FPGA开发板进行实操。
  • 多学、多问、多想,多练是学号VHDL语言的必经之路。
  • 本课程后续会提供相关的视频教程帮助大家克服学习中的困难与瓶颈。

Posted in FPGA, FPGA 教材教案, IC, IC 教材教案, VHDL, VHDL, 开发语言, 教材与教案, 文章, 编程语言, 资料区

发表回复

相关链接