VHDL在数字逻辑设计课程实验中应用
2017-12-27方育红江汉大学数学与计算机科学学院
文/方育红,江汉大学数学与计算机科学学院
VHDL在数字逻辑设计课程实验中应用
文/方育红,江汉大学数学与计算机科学学院
VHDL语言是一种用于硬件电路设计的高级语言。它在80年代初期出现,最初是由美国国防部开发出来供美国军队用来提高设计的可靠性和缩减开发周期的一种适用范围较小的设计语言。作为一种硬件电路设计语言,VHDL在数字逻辑设计课程实验的应用,发挥着十分重要的作用。
VHDL;数字逻辑设计;硬件描述语言
1 引言
VHDL全名Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE-1076(简称87版)之后,各EDA公司相继推出自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,简称93版。VHDL作为IEEE的工业标准硬件描述语言,得到众多EDA公司支持,在电子工程领域,已成为事实上的通用硬件描述语言。
2 VHDL特点
VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。
3 实例说明
下面用一个实例来说明采用VHDL语言设计一个四位可控的Johnson计数器,从中可以领略一下采用VHDL方法的风格和特点,此例所反映的设计过程也是笔者所指的软实验台所包含的具体内容。设计模块端口信号有:LEPT,左移控制;RIGHT,右移控制;STOP,停止计数控制;CLK,时钟输入端,Q3-Q0,计数器输出端。设计采用VHDL输入方式。该设计的VHDL代码如下:
library IEEE;
use IEEE.std_logic_1164.all;
entity johnson is
port ( LEFT : in STD_LOGIC;
RIGHT : in STD_LOGIC;
STOP : in STD_LOGIC;
CLK : in STD_LOGIC;
Q : buffer STD_LOGIC_VECTOR (3 downto 0));
end johnson;
architecture johnson_arch of Johnson is
signal DIR: STD_LOGIC;
signal RUN: STD_LOGIC;
begin
process (CLK)
begin
if (CLK'event and CLK='1') then
if (RIGHT='0') then
DIR <= '0';
elsif (LEFT='0') then
DIR <= '1';
end if;
if (STOP='0') then
RUN <= '0';
elsif (LEFT='0' or RIGHT='0') then
RUN <= '1';
end if;
if (RUN='1') then
if (DIR='1') then
Q(3 downto 1) <= Q(2 downto 0);
Q(0) <= not Q(3);
else
Q(2 downto 0) <= Q(3 downto 1);
Q(3) <= not Q(0);
end if;
end if;
end if;
end process;
end johnson_arch;
从上面的VHDL的设计代码可见:VHDL的设计文档由三大部分组成,即库的声明,端口说明和结构体设计描述。其中端口说明清晰的反映了所设计器件的输入输出性质,在结构体设计描述中也清楚的描述了器件所完成的逻辑功能。这是传统的采用SSI,MSI等标准规格器件设计所没有的优点。
4 结束语
VHDL学习过程中,应加强硬件概念的理解,没有硬件概念或是硬件概念不强,在设计时,往往会将VHDL设计以软件编程的方式来处理,而得出一些不可思议的结果。
作为一门硬件描述语言,VHDL几乎可以用来描述现有的大型系统数字电路、算法以及其它设计。但是,限于目前综合工具的水平,VHDL中的许多语法还不能支持,综合时就无法达到如此精度,因此这条语句主要用来编写测试激励,而很少出现在设计实体中。类似的情况还有很多,目前VHDL设计使用的也只是整个标准中的一部分,这也正是VHDL的“可综合子集”性质,它一定程度上限制了VHDL的广泛应用,但是随着综合技术的发展,这种情况会逐渐得以改善,VHDL也将在各个领域中发挥出愈来愈重要的作用。
[1]任晓东等编著,CPLD/FPGA高级应用开发指南[M].北京:电子工业出版社,2003.
[2]李国丽等编著,EDA与数字系统设计[M].北京:机械工业出版社,2004.