摘 要:简要介绍了EDA技术,分析了VHDL语言及其基本特点,通过一个简单的例子介绍了VHDL语言在数字电路设计中的应用,给出了功能仿真波形。
1、引言
EDA(Electronics Design Automation)技术是随着集成电路和计算机技术的飞速发展应运而生的一种高级、快速、有效的电子设计自动化工具。随着计算机、集成电路、电子系统设计的发展,先后经历了计算机辅助设计CAD(Computer Assist Design)、计算机辅助工程设计CAE(Computer Assist Engineering Design)及电子系统设计自动化ESDA(Electronic System Design Automation)三个发展阶段。
EDA关键技术之一就是采用硬件描述语言对硬件电路进行描述,且具有系统级仿真和综合能力。目前应用比较广泛的硬件描述语言就是VHDL(Very High Speed Integrated Circuit Hardware Description Language),它最早是由美国国防部提出来的。
VHDL简介
VHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计,支持结构、数据流、行为三种描述形式的混合描述,覆盖面广,抽象能力强,因此在实际应用中越来越广泛。
2、VHDL的主要特点
①作为硬件描述语言的第一个国际标准,VHDL具有很强的可移植性。
②具有丰富的模拟仿真语句和库函数,随时可对设计进行仿真模拟,因而能将设计中逻辑上的错误消灭在组装之前,在大系统的设计早期就能查验设计系统功能的可行性。
③设计层次较高,用于较复杂的计算时,能尽早发现存在的问题,从而缩短设计周期。
④VHDL的设计不依赖于特定的器件,方便了工艺的转换。
⑤支持大规模设计的分解和已有设计的再利用。
⑥对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动地把VHDL描述设计转变成门级网表。
⑦ VHDL用源代码描述来进行复杂控制逻辑的设计,灵活又方便,同时也便于设计结果的交流、保存和重用。
3、设计实例
3.1 编写VHDL程序
如今,彩灯作为一种景观已成为我们生活中不可缺少的一部分,城市的夜晚彩灯的闪亮无疑是一道最靓丽的风景,而彩灯在舞台上的应用同样能增强晚会的灯光效果。以下设计就是用VHDL编写的四色彩灯控制电路程序,使用的开发平台是美国ALTERA公司的MAX+PLUSⅡ软件。
源程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity color4 is
port(clk: in std_logic;
q : out std_logic_vector(3 downto 0));
end color4;
architecture color of color4 is
signal u: std_logic_vector(18 downto 0);
signal v: std_logic;
signal w: std_logic;
signal s: std_logic_vector(3 downto 0);
begin
p1: process(clk)
begin
if clk'event and clk='1' then
v<=u(18);
u<=u+1;
w<=not v and u(18);
end if;
end process;
p2:process(w)
begin
if w'event and w='1' then
if s="1111" then
s<="0000";
else s<=s+1;
end if;
case s is
when "0000"=>q<="1000";
when "0001"=>q<="0100";
when "0010"=>q<="0010";
when "0011"=>q<="0001";
when "0100"=>q<="1100";
when "0101"=>q<="0110";
when "0110"=>q<="0011";
when "0111"=>q<="1001";
when "1000"=>q<="0101";
when "1001"=>q<="1010";
when "1010"=>q<="1110";
when "1011"=>q<="0111";
when "1100"=>q<="1011";
when "1101"=>q<="1101";
when "1110"=>q<="1111";
when "1111"=>q<="0000";
when others=>null;
end case;
end if;
end process;
end color;
3.2 仿真验证VHDL程序
对源程序进行编译,检查语法,检查逻辑功能是否正确,称为仿真。因模拟时间只有1μs,为便于看到仿真结果,我们将此例中控制灯闪速度的信号U的位数改为:1 downto 0。经验证此例的系统逻辑功能正确,其仿真波形如图1所示
图1 仿真波形图
3.3 实例扩展
该程序所表示的图案花样为:四色彩灯红、黄、绿、蓝依次点亮,双灯亮,三灯亮,全亮,全灭,循环往复。该程序中,可通过改变输出变量Q的位数来改变彩灯的数目。其中,P1进程代表灯闪的速度控制,有两种方式可改变灯闪的速度:一是改变外部时钟的赋值,二是改变信号U的位数。P2进程能进行彩灯的图案控制,改变s的位数即可改变要控制图案的数目,改变输出变量Q的组合即可变幻彩灯图案。
4、结束语
本文以使用VHDL语言编写彩灯控制程序为例,简要介绍了VHDL在数字电路设计中的应用,体现了VHDL语言的灵活方便及无穷“魅力”。代表了当今电子设计技术的最新发展方向,它彻底改变了数字系统的设计方法和实现手段。随着硬件描述语言VHDL的普及以及CPLD/FPGA器件的广泛应用,它必将在硬件设计领域发挥更为重要的作用。
录入时间:2007-10-06 来源:EDA资讯网 作者:艾 莉,李江涛,闫 森
相关文章:
• 射频EDA仿真软件介绍