首页 > 文章中心 > vhdl语言

vhdl语言范文精选

vhdl语言范文第1篇

关键词: vhdl数字电路设计流程

VHDL是超高速集成电路硬件描述语言(Very High Speed Integrated circuit Hardware Description Language)的英文缩写。它的开发始于美国国防部1981年的超高速集成电路计划,其目的是为了给出一种与工艺无关的、支持大规模系统设计的标准方法和手段。通过不断的发展和完善,VHDL于1987年成为IEFE的一种标准语言。VHDL是一种面向设计的、多领域、多层次的IEEE标准硬件描述语言,是目前十分流行的硬件描述工具,并且被大多数EDA工具支持。

1.VHDL的特点

1.1功能强大。与其它的硬件描述语言相比,VHDL具有更强的描述能力和语言结构,可以用简洁的源代码描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后直接生成电路级描述。

1.2系统硬件描述能力强。VHDL具有丰富的数据类型、丰富的仿真语句和库函数,它在任何大系统的设计早期就能查验设计系统功能的可行性,随时可对设计进行仿真模拟。

1.3设计与工艺无关。用VHDL进行硬件电路设计时,我们并不需要首先考虑选择完成设计的器件。VHDL的硬件描述与具体的工艺和硬件结构无关,因此VHDL设计程序的硬件实现目标器件有广阔的选择范围。

1.4设计方法灵活,易于修改。VHDL语言标准、规范,大多数EDA工具都支持VHDL。在硬件设计过程中,用VHDL语言编写的源程序便于管理,VHDL易读、结构模块化、方便修改、交流和保存。

1.5支持广泛,移植能力强。VHDL是一个标准语言,在电子设计领域为众多的EDA工具支持,因此移植能力好。

2.VHDL的基本结构

完整的VHDL程序一般由库、实体、结构体三个最基本的部分构成。

2.1库(Library)。在库内存放了可被其他VHDL程序调用的数据定义、器件说明、程序包等资源,库的种类很多,在安装元件库的目录下有VHDL87或VHDL93文件夹,里面包括IEEE、Altera、IPM、STD四个库。

2.2实体(Entity)。它仅定义设计模块输入/输出信号,不涉及模块内部逻辑功能的实现。

2.3结构体(Architectrue)。它描述设计模块的逻辑功能,结构体必须和实体相联系,确定实体定义的输入与输出信号的逻辑关系,一个设计实体可以有多个结构体。

3.VHDL的设计流程

在VHDL的设计过程中,我们采用自顶向下的方法,首先从系统设计入手,在顶层进行功能方框图的划分,其次对各模块进行设计并仿真,再次综合进行门级仿真,如果没有错误即可下载,最后实现电路。用VHDL设计数字系统的流程如下:

输入源程序编译源程序仿真综合门级仿真物理设计时序仿真

4.VHDL的应用实例――24进制计数器

我们可以通过MAX+Plusll平台的编译、仿真,得到仿真波形图(图1),在仿真无误的情况下,编程下载到器件芯片(图2)。

24进制计数器VHDL程序描述如下:

通过以上实例,我们可以看到,VHDL语言具有良好的电路行为描述能力和系统描述能力,利用VHDL语言设计数字电路更为灵活方便,设计周期也大大减小。目前,国际上用VHDL进行系统逻辑设计成为流行方式,学会VHDL及其设计方法也是新的潮流。VHDL将成为数字系统设计领域中所有技术人员必须掌握的一种语言。

参考文献:

[1]程云长.可编程逻辑器件与VHDL语言.北京科学出版社,2002.

vhdl语言范文第2篇

【关键词】数字电路;传统方式;VHDL

1.引言

随着计算机以及大规模集成电路应用的普及,电子行业正在迅速的发展。目前采用小中规模的数字电路逻辑设计已经不能满足数字电子技术发展的需要。例如传统的TTL电路或者COMS电路设计任务繁琐,设计效率低,所以迫切的需要我们做出调整,适应社会对数字电子技术发展的要求。伴随着集成电子工艺的发展,新型的逻辑器件也应运而生,到目前为止,市场上的逻辑器件大致可分为三类:第一是标准的逻辑芯片如COMS/TTL等系列芯片;第二是微型计算机芯片和各种微处理器;第三种就是应用规格芯片ASIC,其中ASIC芯片中就有我们接下来介绍的可编程逻辑器件(PLD)[1]。而使用可编程逻辑芯片就必须要求我们掌握编写VHDL语言的技术。这种设计数字电路实验的方法大大克服了传统数字电路设计出现的缺点,更加适应现在社会的发展。

2.传统数字电路设计优缺点

传统的数字电路设计过程大致经过以下几个步骤:一是分析问题画出状态转换图以及状态转换表,二是进行状态化简,三是状态编码,四是写出输入方程、驱动方程以及输出方程,五是画出逻辑电路图,经过这一系列步骤之后,还要在电路板上焊接电路,或者在面包板上拼接电路。传统的设计方法是数字电路设计的基础,它的优点是能够反映了数字电路的基本工作原理,系统内部构成的各个细节也能够很直观的反映出来,各部分之间的联系显而易见。因此,通过对设计的原理图的观察我们可以验证系统的合理性,同时也奠定了数字电路设计的基础。它的缺点是设计步骤复杂,在整个过程中需要用到大量的芯片和连线。而且传统的方法出错率高而且不易修复,在焊接电路板的时候如果不注意就会导致接触不良或者出现某个芯片损坏的情况,这就导致整个电路板都不起作用。

3.PLD器件芯片的出现

PLD又称可编程逻辑器件,PLD芯片上的金属引线和电路都是厂家做好的,但是器件的逻辑功能在出厂时是没有确定的,用户可以根据自己的需要合理的编程设计确定想要的功能。而编程用到的语言就是我们接下来要介绍的VHDL语言。目前PLD器件芯片具有微处理器灵活等优点,芯片的引脚也从一开始的20多个引脚发展到现在的200引脚[2]。可编程逻辑器件的出现从很大程度上使得数字电路设计发生了根本性变革。采用PLD设计电路不再是对电路板设计,而是对芯片设计,使之实现我们预想的功能。一般的PLD的集成度很高,可以满足一般的数字系统的需要。设计人员只需要自己编程到一块PLD上,而不用去供应商那儿买特定功能的芯片。我们可以对芯片内部的逻辑和外部的引脚进行设计。这样就克服了传统方式中对电路板进行焊接所花费的大量时间,克服了工作量大,难以调试等缺点,用户只需要编写适当合理的程序就可以实现预想的功能。如此大大简化了设计步骤,更加适应社会发展的需要。

4.VHDL简介

VHDL语言是一种应用于描述数字系统的功能、结构和接口的语言。VHDL含有许多具有硬件特征的语句而且语言的描述也更类似于一般计算机的高级语言。在编程上简单可行性高。VHDL的程序结构特点是将一项工程设计,或称设计实体。分成外部和内部,在对一个设计实体定义了外部界面后,当其内部开发完成后,其他的设计也能够直接调用这个实体。VHDL系统设计的基本点是将设计实体分成内外部分。VHDL语言之所以能够成为标准化的硬件描述语言并且获得广泛应用,正是因为它本身具有其他硬件描述语言不具有的优点。归纳起来,VHDL语言主要具有以下优点:

(1)VHDL语言设计多样:VHDL语言结构很强大,而且设计方法多样,既支持层次化设计也支持模块化设计,既可以采用自顶向下设计方式,也可以采用自底向上的设计方法。

(2)VHDL语言的设计是针对于芯片而并非器件,传统的硬件拼接的方法针对的是器件,但是VHDL语言是直接对芯片而言的,在设计电路时,用户可以不必考虑所选用的器件。设计者也可以不必考虑系统硬件结构,而进行独立的设计。

(3)VHDL语言可移植性强,对于同一个硬件的VHDL语言来说,它可以从一个工作平台移植到另一个工作平台上。

(4)VHDL语言有非常丰富的库函数和仿真语句,用户可以随时对系统进行仿真。

由此可见传统方式与应用VHDL的区别有以下几点:第一,传统的方法采用自上至下的设计方式,而应用VHDL语言则采用自下至上的设计方法;第二,传统方式采用的是通用的逻辑元器件,系统硬件的后期进行调试和仿真,而应用VHDL语言采用的芯片则是PLD(可编程逻辑器件),系统的设计早期进行调试与仿真;第三,传统的设计方式主要采用电路原理图的方式设计,而本文提出的设计方式主要则以VHDL语言描述为主,从而降低了硬件设计电路的难度。

5.VHDL语言结构及语言设计步骤

VHDL语言结构由library(库)定义区,entity(实体)定义区,architecture(构造体)定义区package(包集合)configuration(配置)组成,其中library,entity和architecture也是一个VHDL语言所必有的。

VHDL语言设计步骤大致可以分为以下三步:第一,分析系统结构并划分模块;第二,输入VHDL语言的代码,编写程序,并且将其编译,在此过程中如果有错误要及时修正;第三,对编译的后的VHDL文件进行仿真。

6.VHDL举例

下面介绍一个简单分频器的例子:

Library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity fenpin is

port(clk,clear:in std_logic;

q:out_std_logic);

end fenpin;

architecture behave of fenpin is

signal m:interge range 0 to11

begin

p1:process(clear,clk)

begin

if clear =’0’then m<=’0’;

elsif “clk event and clk=’1’”then

if m=11 then m<=’0’;

else m<=m+1;

end if;

end if;

end process p1;

p2:process(m)

begin

if temp<6 then q<=’0’;

else q<=’1’;

end if;

end process p2;

end behave;

由例题可以看出,在设计分频器是可以不用硬件搭连的方式,用VHDL语言进行编程更简单易行。

7.小结

本文针对目前传统数字电路设计中存在的若干弊端,提出用VHDL语言编写适当合理程序来设计数字电路实验的方法,避免了硬件电路中若干繁琐的问题,使得系统简单明了,可维护性强,芯片也可以反复使用。传统的硬件设计方法已不能满足现代电子工业的发展,在数字电路的应用中,VHDL语言必将会被广泛的使用。

参考文献

[1]张有志.可编程逻辑器件PLD原理与应用[M].北京:中国铁道出版社,1996:1-3,91

vhdl语言范文第3篇

【关键词】VHDL语言 电子设计 自动化应用

中图分类号:F407文献标识码: A

一、前言

近些年,随着电子技术及计算机技术的不断发展,使用原来的方法进行系统及芯片的设计已经不能满足要求了,需要具有更高效率的设计方法,运用VHDL语言进行电子设计就是在这种情况下开发的,而且被越来越广泛地应用到电子设计自动化中,显著地提高了开发效率及产品的可靠性。

二、电子设计自动化和VHDL语言概述

1、电子设计自动化概述。电子设计自动化又称为EDA技术,它是在上世纪70年代的集成电路技术茂盛发展下诞生的,与集成电路的复杂度是紧密相关的。在第一代电子设计自动化EDA中,其主要功能是进行图形编辑交互及设计规则检查,所要解决的问题是进行PCB布局布线或者晶体管级版图的设计;第二代电子自动化设计EDA系统,主要包括逻辑图的设计输入、逻辑综合、芯片布图、模拟验证及印刷电路的版布图等,随着集成电路尺寸越来越小、规模越来越大、速度及频率越来越高、设计越来越复杂,HDL的设计方案应运而生,随后具有描述语言的VHDL被提出来了。

2、VHDL语言概述。VHDL语言是指超高速集成电路的硬件描述语言,它是一种很快的电路设计工具,其功能主要包括电路合成、电路描述及电路仿真等电路设计工作。VHDL语言是由抽象及具体硬件级别进行描述的工业标准语言,它已经成为了一种通用硬件设计的交换媒介,很多工程软件供应商已经把VHDL语言当做了EDA或CAD软件的输入/输出标准,很多EDA厂商还提供了VHDL语言编译器,同时在方针工工具、布图工具及综合工具中对VHDL语言提供了支持。

三、VHDL语言的特点

1、VHDL语言具有较强的描述功能,能够对支持系统的行为级、门级及寄存器传输级这三个层次进行设计,和其它硬件描述语言相比,VHDL语言的行为描述能力更强,这种较强的行为描述力能够有效地避开具体器件结构。对大规模的电子系统的逻辑行为进行描述与设计,VHDL语言已经成为高层次设计中的核心,也是它成为了电子设计系统领域最好的硬件语言描述。

2、VHDL语言能够支持大规模的设计分解,及已有设计再利用,大规模的设计不可能有一个人独立地完成,需要多个项目共同的组成,VHDL语言中的设计实体概念、设计库概念、程序包概念为设计的分解及再利用提供了有力的支持。

3、VHDL语言具有较为丰富的模拟库函数及仿真语句。这使它能够在任何设计系统中,很早地就能对设计系统功能中的可行性进行查验,并随时可以对设计进行模拟仿真,将设计中的逻辑错误消除在组装前,由于大规模集成电路及应用多层的印刷技术器件组装完毕之后。很难进行修改,这就使得逻辑模拟变得不可缺少,运用逻辑模拟还能够减少成本缩短调试及设计周期。对于中小规模的集成电路,仅运用模拟就能够获得成功数字系统设计;而大规模集成电路,则需要运用逻辑模拟进行逻辑网络设计的检查与分析。逻辑模拟系统对于集成电路来说,是不可缺少的重要手段。

4、VHDL语言本身生命周期就较长,在VHDL语言设计中,并不包含和工艺相关的信息,其设计和最终工艺实现是无关的,能够使设计通过门级仿真之后,在用合适的工具映射到不同的工艺当中,当工艺进行更新时,就不需要进行原设计的修改了,仅改变映射工具就可以了,对于已经完成的设计,尤其是和工艺技术相关的参数可以运用VHDL语言所提供的类属进行描述,或者进行子程序功能的调用,可以在源程序不改变的情况下,仅修改类属的函数及参量就可以了,这样就可以改变电子设计的规模及结构了。当然在VHDL语言也有些不足之处,像没有WAIT语句、不能处理动态结构、不能等待时序等,但它整体还是有很多优点的,并为硬件设计带来了很大地方便,被很多用户所接受,也得到了很多厂商的有力支持。

四、电子设计自动化应用VHDL语言的开发流程

VHDL语言的开发流程主要为文本编辑、功能仿真、逻辑综合、布局布线、时序仿真及编程下载。其中文本编辑器能够进行VHDL语言环境的编辑,其文件保存为,功能仿真是指将文件调入VHDL的仿真软件中,并进行功能的仿真,对其逻辑功能进行检查以验证是否正确,也称为前仿真,对于那些相对简单的电子设计可以忽略这一步,在布线完成之后直接进行时序仿真:逻辑综合是指将文件进行逻辑综合并在设定的约束条件下进行综合。就是把语言综合成布尔表达式及信号连接关系,综合之后会生成,电子设计自动化的工业标准文件:布局布线则是将文件调到PLD厂家所提供的软件之中进行布局布线,这样就可以把已设计好的逻辑安放到PLD 内了;时序仿真是指利用布局布线时所获得的精确参数进行后仿真的验证:编程下载所指当确认方针没有错误后,就将文件储存到目标芯片中。

五、VHDL语言在电子设计自动化应用中的作用

VHDL语言在电子设计自动化中的应用,能够有效地打破传统硬件电路的设计界限,借助硬件的描述语言设计出与相关要求相符合的硬件系统,运用VHDL语言对电子设计自动化的应用,与C语言的语法类型是相似的,具有很好的可读性,掌握起来也较为简单,运用VHDL语言进行硬件电路的设计打破了原有地先画出电路的原理图,再进行元器件及实际电路定式的搭建,可以灵活地御用VHDL语言描述的硬件电路功能进行信号的连接和定时关系,在总体行为的设计一直到最终逻辑形成网络表的文件,对于每一步都要进行仿真的检查,在仿真结果分析中,能够发现电子自动化系统的设计中所存存在的问题,这样更有利于电子设计自动化应用的完整,并且其设计效率更高,时间周期更短,VHDL语言已经被广泛地应用在电子设计自动化中了。

六、VHDL 语言在电子设计自动化应用中所要注意的问题

1、文件名和实体名要相同,其后缀均为.Vhd,程序的存储路径不能有汉字出现,变量要放在结构体之中,变量并不是全局量,仅能在进程语句及子程序中进行使用。

2、关于顺序语句和并行语句问题,要把并行语句直接放人结构体里就可以了,而顺序语句就要放在process里了,虽然process自身是并行语句,但它的内部确是顺序语句。

3、在条件语句中,条件的覆盖是不完整的,综合器会把多余的锁存器引入进来,一定要对条件所覆盖的范围进行考虑,通常的处理方法是加上else语句进行条件补全,顶层的文件在进行存盘时,其文件名是不能和底层的文件名相同的。

七、结束语

随着电子技术和计算机技术的不断发展,电子产品也在迅速发展着,电子设计自动化技术改变了传统的数字系统设计方法及实现手段,而VHDL国际标准语言与电子设计自动化技术工具的结合,能够有效地降低设计的风险,缩短设计的时间周期,提高设计效率,随着VHDL语言在电子设计自动化的应用越来越广泛,并将会给硬件的设计领域带来很大的变革。

参考文献:

[1]王锁萍.电子设计自动化教程[M].成都:电子科技大学出版社,2000

[2]丁明威.李引新.黄培中.VHDL与电子自动化[J].计算机应用与研究,1999,13(1):24-25

[3]平.张振荣.VHDL编程与仿真[M].北京:人民邮电出版社,2000

[4]万军华.刘瑞通.基于VHDL的多功能数字闹钟设计[J].湖南理工学院学报(自然科学版),2011(01)

vhdl语言范文第4篇

关键词:VHDL;教学;关键问题分析

The discussion of several key problems in VHDL language teaching

Zhao Hang1, Zhang Wenting2

1.Sanjiang university, Nanjing , 210012, China

2.Nanjing panneng technology development co., Nanjing , 210061, China

Abstract: This paper attempt to discuss several key problems in VHDL language teaching. On this basis, the author comes up with the importance of problems, which include the features of hardware description language, the description style distinction of the combinational circuit and sequential circuit, use in signal and variable. The author has carried on the detailed analysis to these problems by way of examples, so as to achieve an effect of visual and easily understand. Seeing from the several rounds of teaching effect, the proposed approach has a certain guidance meaning in VHDL language and VHDL language programming.

Key words: VHDL; teaching; key problem analysis

VHDL(Very high speed intergated circuit Hardware Description Language)是指超高速集成电路硬件描述语言。它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级方式相比,它更适合大规模系统的设计。因此很多高校的信息技术、计算机技术等专业都开出了VHDL设计课程[1]。笔者在教学过程中发现学生学习VHDL语言时会受到已经学习过的其他软件语言的影响,对VHDL语言作为硬件语言的一些特性和语法问题理解不够,往往会影响到对VHDL语言的灵活合理运用。本文结合多轮课程教学实践,针对学生最难掌握的几个问题做了深入探讨。

1 对VHDL作为硬件描述语言的特征的理解

学好VHDL的关键是充分理解VHDL语句和硬件电路的关系。 编写VHDL,就是在描述一个电路,我们写完一段程序后,应当对生成的电路有一些大体上的了解, 而不能用纯软件的设计思路来编写硬件描述语言[2]。

下面以四选一数据选择器的设计为例来加以说明。四选一数据选择器是一种常用的组合逻辑电路,用VHDL语言设计比较简单,可以用when_else语句实现,也可以用with_select语句实现,两者仿真结果相同,但综合的结果不同。具体情况如下:

【程序1】

library ieee;

use ieee.std_logic_1164.all;

entity mux41a is

port(a,b,c,d: in std_logic;

s: in std_logic_vector(1 downto 0);

y: out std_logic);

end;

architecture one of mux41a is

begin

y

b when (s = “01”) else

c when (s = “10”) else

d ;

end;

使用Quartus II软件对程序1进行编译仿真,仿真结果如图1所示。

将程序1中的when_else语句实现改成with_select语句实现,修改后的部分程序如下:

【程序2】

with s select

y

b when“01”,

c when“10”,

d when others;

同样使用Quartus II软件对程序2进行编译仿真,仿真结果与图1完全相同。说明程序1和程序2都能完成四选一数据选择器的功能,仿真结果一致。

但是如果对程序1和程序2进行综合,得出它们对应的RTL电路,分别如图2和图3所示。从图2和图3的比较看,电路差别比较大。根据四选一数据选择器的功能,应该是图3的电路更合适。

综合来看,虽然when_else语句和with_select_when语句都能实现四选一数据选择器功能,但是实现的硬件电路完全不同,这就告诉我们在设计某一功能的电路时要尽量使用合适的语句来表达,这样才能得到最优的结果,而不能仅仅满足于功能实现。因为这是硬件电路的设计,要考虑最后实现的电路的合理性。

2 组合电路和时序电路的区别

组合电路和时序电路是数字电路系统的两大种类,在设计中至少要用到它们中的一种或两种都会用到,这就要求正确掌握它们各自的设计要领。在VHDL语言中,组合电路和时序电路是以完整条件语句和不完整条件语句来区别的,如果在组合电路设计中使用了不完整条件语句,会使设计结果出现意想不到的问题,影响设计的正确性,设计时要加以注意[3]。比如程序3是一个数值比较器的设计,数值比较器属于组合电路,应该使用完整条件语句来描述,但是程序中if语句判断了a>b和a

【程序3】

library ieee;

use ieee.std_logic_1164.all;

entity comp is

port(a,b:in std_logic;

y:out std_logic);

end;

architecture one of comp is

begin

process (a,b)

begin

if a>b then y

else if a

end if;

end process;

end;

【程序4】

if a>b then y

else y

end if;

图5 程序4的RTL电路

3 信号和变量的区别

在VHDL中,数据对象(Data objects)有3类:信号(signal)、变量(variable)和常量(constant)。变量和常量与软件语言中的变量和常量的含义相似,而信号则具有更多的硬件特征,是硬件描述语言所特有的数据对象。由于信号和变量在使用上有很多相似的地方,但又存在本质的区别,学生比较容易混淆,在设计中常常不注意区分它们的区别,造成错误[4]。在变量和信号的使用过程中,有时可以互换,有时候又不能互换。两者从形式上差别并不大,所以学生在没弄清其本质区别前往往按照例子生搬硬套,这样做有时候系统也能正常运转,但是在系统需要利用到变量和信号的根本特性时,错误地使用数据对象往往会导致系统的逻辑错误,使设计结果与预期有很大差距,而学生很难发现其中的错误。所以,如何使学生分清两者,并正确的使用,成为影响VHDL语言教学的关键问题之一。

为了更好地区分信号和变量,需要通过一定数量的实例分析,通过对比,使学生对两者之间的物理含义、使用范围及值代入的区别有较明确的认识。下面给出用中间变量和信号表达四选一数据选择器的VHDL源程序,从中可以看出信号、变量的定义和使用方法之间的不同以及它们对系统的影响。

【程序5】

library ieee;

use ieee.std_logic_1164.all;

entity mux41a is

port(i0,i1,i2,i3,a,b:in std_logic;

q:out std_logic);

end;

architecture one of mux41a is

signal muxval: integer range 3 downto 0;

begin

process (i0,i1,i2,i3,a,b)

begin

muxval

if a='1' then muxval

if b='1' then muxval

case muxval is

when 0 => q

when 1 => q

when 2 => q

when 3 => q

when others => null;

end case;

end process;

end;

程序5的仿真结果如图6所示。从图6中可以看出,输出信号q并没有得到预想的波形,而是未知数据,这是因为muxval在程序中被定义为信号,而信号的含义是电路的实际硬件连接,因此对信号赋值存在延时[5]。故此在case语句中根据muxval值去选择不同的信号进行输出时,muxval的值还没有产生,因此结果不对。为了产生正确的结果,对本程序,只需要把muxval的定义改为变量,其他地方做适当修改,则可得到如图7所示的正确仿真结果。

4 结束语

在VHDL设计课程教学中,笔者特别注意上述几个问题的讲解和举例说明,力求使学生对这些问题理解透彻,让学生真正认识到运用VHDL语言进行电路设计,不仅要熟悉VHDL语言的基本语法和常用语句,还要对硬件描述语言的本质有深刻的认识,对所设计的电路有深刻理解,在此基础上才能更好地使用掌握这门硬件描述语言进行电路设计。

参考文献

[1] 朱奕丹.VHDL设计课程教学改革实践[J].电气电子教学学报,2007,29(2):22-23

[2] 潘松,黄继业.EDA技术与VHDL[M].北京:清华大学出版社,2009

[3] 夏炎,师卫.硬件描述语言与数字电路设计[J].电力学报,2009,24(2):156-158

vhdl语言范文第5篇

关键词:VHDL硬件描述语言;电子技术设计;设计流程

VHDL硬件描述语言在数字电路与系统描述、模拟和设计中应用比较普遍,属于电子技术设计的核心[1]。尤其是随着集成电路技术的进步,人们对电子技术设计效率和设计水平的要求不断提升,因此选择合理的硬件描述语言具有必要性,而VHDL硬件描述语言能够有效降低电子技术设计难度,且具有通用性高、支持面广的特征,并获得了市场和电子电力公司的肯定与支持,可以有效促进电子技术设计想着自动化方向发展,缩短开发周期。

1 VHDL语言在电子设计中应用的构成

VHDL(Very-High-Speed Inte-grated Circuit Hardware Description Languagea)硬件描述语言,即超高速集成电路硬件描述语言,主要是应用于数字电路系统性能描述和模拟的语言[2]。VHDL硬件描述语言是在1983年由美国国防部创建,并在后期的发展和应用中,成为硬件描述语言的标准之一。随着IEEE对VHDL硬件描述语言的修订,VHDL硬件描述语言的内容得到的进一步的扩展,主要是从更高的抽象层次和系统描述能力进行扩展。当前VHDL硬件描述语言已经成为通用性硬件描述语言。

VHDL硬件描述语言的语法具有高度严格的特征,与Ada风格比较相近,即一段完整的VHDL代码包含实体语句、构造体语句、配置说明语句等。其中实体语句主要是针对设计单元的外部接口信号进行描述,构造体语句主要是针对设计单元内部的结构和行为进行描述。根据研究可知,利用构造体语句进行设计单元内部功能描述又可以分为三种方式,即行为级描述、寄存器传输级描述和结构描述等。配置说明依据主要是针对选取不同元件构成设计单元版本的描述。此外VHDL代码还包含库说明语句和包说明语句。其中库是进行编译实体、构造体、包和配置数据的存放,而包则是用来存在共享数据类型、常量和子程序等。常见的库类型主要分为IEEE库、STD库、ASIC矢量库等[3]。

2 VHDL语言在电子设计中应用主要特点

VHDL硬件描述语言主要是进行数字系统结构、行为、功能和接口的描述,其与其他语言相比,具有很多明显的优势和特点,主要表现在以下几个方面。

2.1 VHDL硬件描述语言描述能力强

VHDL硬件描述语言具有电路描述能力强和建模能力强等优势,主要表现在其能够从多个层次实现对数字系统的建模与描述,有效简化硬件设计任务,降低硬件设计难度,继而提高电子技术设计效率和设计可靠性。

2.2 VHDL硬件描述语言设计优化能力

VHDL硬件描述语言应用在电子技术设计中,能够脱离具体硬件电路、设计平台等特性,且其电路行为描述能力和系统描述能力优良,且其生命力和应用潜力非常强大,尤其是在语言易读性方便、层次性方面和结构化设计方面等。

2.3 VHDL硬件描述语言全新设计方法

VHDL硬件描述语言主要采用自上而下的设计方法,且包含库,有效应用在电子产品生命周期缩短的环境中,面对重新设计、融入全新技术和改变工艺等,均具有良好的适应性。自上而下的设计方法,可以将较大的系统分解成若干个模块,在分工合作时更加简单方便。此外设计人员在利用VHDL硬件描述语言进行电子技术设计时,可以单纯进行功能的设计,对于其他不会影响功能的因素,且无需耗费太多的精力[4]。

3 VHDL语言在电子设计中的应用策略

在电子技术设计中,VHDL硬件描述语言属于比较高层次的设计方法。技术人员在利用VHDL硬件描述语言进行电子技术设计时,首先要利用VHDL硬件描述语言进行电路系统的表达,并输入至计算机。随后利用HDL综合器对设计进行综合,将软件设计的HDL描述与硬件结构挂钩,实现软件转化为硬件电路。综合的作用主要是将VHDL硬件描述语言转换为低级语言,确保实现与FPGA/CPLD的基本结构相应的网表文件[5]。再利用适配器将综合器产生的网标文件配置目标器件中,产生下载文件。适配器又称之为结构综合器,主要是将网标文件针对的目标器件进行逻辑映射操作,如逻辑分割、优化等。而且由于电子技术设计的模拟仿真主要是在高层上实现,能够进一步提高错误发生效率,提升电子技术设计效率。

仿真主要是利用计算机对设计进行模拟,包含时序仿真、功能仿真。其中时序仿真中,文件包含器件硬件特性参数,即基于真实器件的特性进行仿真,仿真精度高。功能仿真主要是针对逻辑功能进行模式,不涉及具体器件的硬件特性。仿真后,将适配后生成的下载文件或配置文件,利用编程器进行下载,以实现硬件调试和验证。最后需要对硬件系统进行测试,确保设计项目在目标系统上的工作情况满足要求,针对存在错误的地方需要及时进行改进。

4 结束语

综上所述,将VHDL硬件描述语言应用与电子技术设计中,能够实现从多个层次进行数字系统的设计,有效降低设计难度,缩短设计周期,提高设计效率。如今VHDL硬件描述语言在电子技术设计应用中主要表现为自上而下应用方向,体现出逻辑综合和优化的重要性。

参考文献

[1]李要球,卢璐.VHDL硬件描述语言在数字电路设计中的应用[J].实验室科学,2011,05:97-99+103.

[2]夏莉莉.浅议VHDL语言在电子设计自动化中的应用[J].信息安全与技术,2012,07:44-46.

[3]张苹珍,王俊峰,仲涛.VHDL在数字逻辑电路设计中的应用方法[J].信息通信,2012,05:96-97.

vhdl语言范文第6篇

关键词:VHDL;教学改革;项目化教学

作者简介:周殿凤(1978-),女,江苏宝应人,盐城师范学院物理科学与电子技术学院,讲师;康素成(1966-),男,江苏滨海人,盐城师范学院物理科学与电子技术学院,副教授。(江苏 盐城 224002)

基金项目:本文系盐城师范学院高校发展研究项目(项目编号:13YCFZ006)的研究成果。

中图分类号:G642 文献标识码:A 文章编号:1007-0079(2014)09-0111-02

VHDL语言及应用是电子信息工程专业的一门重要的技术类应用型课程,主要讲解VHDL语言以及它的应用。但在多年的教学实践中,笔者发现要想让学生在短时间内接受大量的语法知识,学生很难充分理解与掌握,这样在随后的编程过程中非常容易犯错,并感觉难以入手,更不用说形成良好的编程习惯和程序风格。[1]大多数大学生毕业后或许精通C语言,可是由于各方面的原因,精通VHDL语言的少之又少,但是企业单位对此方面的人才的需求却越来越多,笔者出于对VHDL语言的挚爱及多年教学经验,探索了该课程项目化教学的具体实施方法。

一、改变传统教学方法

VHDL语言及应用这门课程的终极目标是使学生掌握VHDL语言并能用之进行相关的电子设计。如果教师将大量的时间用于讲解枯涩的语法、语句、复杂的算法,学生在学习时也不知它们有何用途,学、用脱节,只是为学而学,不能激发学生学习和应用知识的兴趣和积极性,效果很差,[2]因此教师不能按部就班地讲解知识。教师可以通过多个实例讲解语法,效果会好得多。这就要求老师上课全部现场编写程序,并且故意犯一些学生经常犯的错误,编程中的错误基本上都是语法和语句使用不当引起的,教师恰好可以利用这些错误来讲解语法、语句。这门课程的硬件基础是FPGA和CPLD芯片,CPLD/FPGA内部没有CPU,只需要用1课时简单讲解即可,并不需要详细分析。因为对于设计者而言只要会用这些芯片即可,而且CPLD/FPGA芯片本身就像一张白纸,只要学生的单片机和硬件描述语言足够好,学生就可以任意发挥,所以本课程的关键还是掌握VHDL语言本身。

二、理论教学环节的项目化实施

1.通过最简单的例子引导学生入门

以二极管闪烁为例,分成几个层次,一步一步引导学生入门。

先问学生:如何让一个二极管亮?学生学过数字电路,知道当二极管的阳极为高电平且阴极为低电平时二极管亮。然后讲解在VHDL语言里是如何实现的,接着现场编写程序,最后下载到开发板上并且演示。

接着问:如何让二极管闪烁呢?当阴极接地且阳极的高、低电平等间隔出现时二极管闪烁,在VHDL里如何实现呢?在刚才程序里稍作修改即可,同样要演示给学生看,并可顺势讲一点这个程序里出现的语法和学习VHDL语言的一些注意事项,如工程名、顶层文件名和实体名要一致,命名时字母的大小写没有区别等。做到在不知不觉中自然而然地讲解语法知识,学生记得也牢固。[2]

为了让学生语法学得更扎实,所有程序教师都随堂编写,一边编程序一边讲解语法语句,还可以插入算法的讲解。经过实践,笔者发现现场编程的讲解方法可以让学生较好地记住一些难以理解的语法、词法和算法。

2.设计巧妙的项目引导学生深入学习

在开展项目化教学时,项目的设计非常关键,设计的好坏直接影响教学效果。项目设计应遵循如下原则:一是围绕课程的重点展开,项目内容应覆盖基本的教学知识点。二是为了调动学生的积极性,应尽量选择学生感兴趣的项目。三是难度适中,项目过于简单,学生会很快完成,达不到思考的效果;太难,支撑的理论知识就会过多,教学组织比较困难,不能达到预期的教学效果。VHDL语言及应用共48课时,其中12节为实验课,理论学时只有36课时,需要用4课时按照传统的教学方式讲解一些在项目中不好讲解的知识,如CPLD/FPGA的硬件知识、VHDL语言的部分语法等,故选择9个小项目讲解各种知识。

在9个项目讲解的过程中,还要教会学生如何阅读英文datasheets。在进行真正的项目设计时,必定要用到不少陌生的芯片,要想会用这些芯片,必须看它们的datasheets。datasheets总是长达几十页,学生不容易看懂,需要教师引导他们如何抓住其中的重点,快速准确阅读。

在项目的讲解和设计后期,教师作为领队将学生分成小组学习,分组合作的学习方法激发了学生学习的动力,增强了各成员的责任感。互相之间积极配合、互动,培养学生多角度、多渠道获得信息,有利于促进学生发展,完善自我,也将学生评价变成了主动参与、自我反思、自我教育的过程。[3]

三、实践教学环节的项目化改革

1.布置型教学改为开放式教学

传统的实验教学是教师讲解实验原理,然后演示一下实验,学生只需按实验讲义中的步骤进行,“依葫芦画瓢”,通过反复训练让学生形成一定的基本技能。这种实验教学模式,学生动手机会少,不能自主学习,不利于个性发展,阻碍了学生的学习积极性、主动性、创造性以及现代科学思维方式的形成。[4]学生进入实验室后,教师可以提供大量实验,让学生根据各自兴趣选择想做的实验。也可以由学生根据教学要求自己拟定实验内容,教师加以适当指导,减少实验的盲目性,使学生真正参与到实验中来,提高实验教学效果,培养学生的动手能力和创新思维能力。

学生的实验成绩采取过程记录法,教师为每一位学生准备一张记录卡,实时记录学生的实验情况。

2.统一实验变为层次化实验

另外传统的实验教学中,所有学生做的实验是一样的。实际上学生到了大三,基础已各不相同,可以根据学生的基础采取层次化实验教学。教师可以根据学生的具体情况将一个班分为4组,假设1组的学生基础最好,2组次之,4组最差;每组的学生人数可以不一样多,该课程成绩想得优秀的学生必须选择1组或2组。针对4组学生要求教师准备4套实验内容供学生选择,每组的要求不一样,具体安排如表2所示。因为盐城师范学院要求一次实验为25人左右(半个班级),所以教师需要同时指导2组学生,实际操作时可以1组和4组一起做实验,2组和3组一起做实验。如果教师愿意加班,第一次实验可以只辅导一组学生,第二次及以后就可以2个组同时做实验,交叉辅导了。

对于基础较差的第4组同学,实验难度不宜太大,要留给学生一定的思考空间。同样是设计性实验,不同组别的具体内容也可以不同,1组难度加大,而4组则简单一些。如此训练下来,学生各有所得,不管基础好坏,总能学到一定的知识,甚至有助于基础差的学生学到更多的知识。

四、考核方式改革

项目化教学需要改变传统教学中一张试卷定成绩的考核办法,[5]学生成绩主要由项目的设计决定,要注意到学生的设计思路。理论知识学完后教师可以选择几个综合性项目,学生从中任选一个进行设计,这样可以培养学生发现问题和解决问题的能力,也可提高其设计能力。

五、小结

本文根据VHDL语言及应用的特点,探索了适于它的项目化教学。通过项目化教学,废除注入式教学方法,建立以学生为本,教师启发引导的教学方法。通过一个个项目和层次化实验,学生不仅可以熟悉VHDL语言的基本语法和常用语句,还对硬件描述语言的本质有了深刻的认识,对所设计的电路有深刻理解,在此基础上才能更好地使用VHDL语言进行电路设计。通过多个项目的训练,学生的设计能力、创造能力和团队合作能力都可以得到很大提高,因此说项目化教学是应用性强的课程的首选教学方法。

参考文献:

[1]胡小玲,翟秀艳,袁颖.VHDL的模块化教学方法反思与总结[J].中国电力教育,2013,29(2):112-113.

[2]周殿凤.片上可编程系统项目化教学探讨[J].轻工科技,2013,

15(5):190-191.

[3]姚培.教师在理实一体化教学学生评价中的角色研究[J].中国电力教育,2013,29(25):180-181.

vhdl语言范文第7篇

关键词:VHDL;MAX+PLUSⅡ;仿真;数字电路

中图分类号:TP331文献标识码:A文章编号:1009-3044(2008)21-30573-02

Application of VHDL in Digital Circuit Teaching

WU Xi-qin

(School of Computer and Information,Hefei University of Technology,Hefei 230009,China)

Abstract:VHDL,as a new type of hardware description language,is used to describe ,stimulate and automatically design digital system.Nowdays, it becomes a key technology in electronic design automatic(EDA).The method and process using VHDL to design digital system is presented through an example of modulo-16 counter .The anticipative target is achieved through stimulation.The result shows that VHDL is strong in hardware description and flexible in design method.It could reduce the design difficulty of digital system and improve efficiency.

Key words:VHDL;MAX+PLUSⅡ;stimulation;digital circuit

1 引言

随着电子技术的发展,数字系统的设计正朝着高速度、大容量、小体积的方向发展,用传统的自底而上的设计方法已不能满足要求,迫切需要提高设计效率。VHDL语言是一种对数字电路和数字系统进行性能描述和模拟的语言,是美国国防部在20世纪70年展的电路设计工具,并于1987年成为IEEE的一种标准语言。VHDL是一种面向设计的多领域、多层次IEEE标准硬件描述语言,是目前十分流行的硬件描述工具,并且被大多数EDA工具支持。

2 VHDL优点

1)功能强大,描述力强。可用于门级、电路级甚至系统级的描述、仿真和设计。

2)可移植性好。对于设计和仿真工具采用相同的描述,对于不同的平台也采用相同的描述。

3)研制周期短,成本低。这主要是由于VHDL支持大规模设计的分解和对已有设计的利用,因此加快了设计流程。

4)可以延长设计的生命周期。因为VHDL的硬件描述与工艺技术无关,不会因工艺变化而使描述过时。

5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。

3 VHDL的设计流程

VHDL在设计过程中,采用自顶向下的方法,首先从系统设计入手,在顶层进行功能方框图的划分,然后对各模块进行设计并仿真,再进一步综合进行门级仿真,如果没有错误即可下载,最后实现电路,用VHDL设计数字系统的流程如下:

输入源程序编译源程序仿真综合门级仿真物理设计时序仿真

VHDL语言已日益成为一种通用的硬件描述语言,计算机辅助工程软件的供应商已把VHDL作为其CAD或EDA软件输入与输出的标准,其中ALTEKA公司提供了一套十分有特色的综合工具MAX+PLUSⅡ,它提供了全面的逻辑设计能力,从编辑、综合、布线到仿真、下载一气呵成,十分方便。

4 VHDL设计实例及仿真结果

4.1 设计方案

计数器根据时钟信号的作用分为同步计数器和异步计数器。同步计数器是指构成计数器的各触发器状态在同一时钟信号的控制下同时发生变化。下面设计一个具有异步清零功能的四位二进制同步可逆计数器。该计数器有一个上升沿有效的时钟输入端CLK;一个异步清零端CR(CR低有效);一个计数方向控制器UPDOWN(UPDOWN=1时,进行加法运算;UPDOWN=0时,进行减法运算);一个四位数据输出端COUNT;一个进位输出端CO。

4.2VHDL语言设计的源程序如下:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITY cnt4b IS

PORT(CLK:IN STD_LOGIC;

CR:IN STD_LOGIC;

UPDOWN:IN STD_LOGIC;

CO: OUT STD_LOGIC;

COUNT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));

END cnt4b;

ARCHITECTURE behave OF cnt4b IS

SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

CQI

PROCESS(CLK,CR)

BEGIN

IF (CR='0')THENCQI

ELSIF (CLK'EVENT AND CLK = '1')THEN

IF (UPDOWN='1')THEN

IF (CQI>"1111")THENCQI

ELSE

CQI

END IF;

IF (CQI="1111") THEN

CO

ELSE

CO

END IF;

ELSE

IF (CQI

CQI

ELSE

CQI

END IF;

IF (CQI="0000") THEN CO

ELSECO

END IF;

END IF;

END IF;

COUNT

END PROCESS;

END behave;

在程序输入完成后,经MAX+PLUSⅡ中的Compiler编译通过后,可用Stimulator进行仿真。

4.3 仿真结果

仿真结果说明:1)CR为0使计数从0开始;

2)UPDOWN为0时,在每个时钟上升沿使计数器减1;

3)UPDOWN为1时,在每个时钟上升沿使计数器加1;(下转第576页)

(上接第574页)

4)CO滞后于COUNT一个时钟。

5 结束语

VHDL语言具有与硬件无关和与设计平台无关的特性,并具有很强的电路描述和建模能力。目前,VHDL已成为电子设计自动化领域进行自上向下设计的应用方向,是专用数字集成电路设计描述的有力工具,同时也是逻辑综合和优化的重要基础,作为一种重要的高层设计技术,VHDL已成为当代电子设计者们必须掌握的重要工具。

参考文献:

vhdl语言范文第8篇

关键词:EDA技术;VHDL语言;交通控制器;波形仿真

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)10-2404-03

Abstract: This paper presents a traffic controller design based on VHDL language, using QuartusII as software development platform, the paper focuses on the design principle and design procedure of the traffic controller. On this basis, given the realization of system source code and simulation results based on VHDL hardware description language, the simulation results further validate the correctness of the traffic controller program, thus demonstrating strong structural and excellent features of VHDL language.

Key words: EDA technology;VHDL language;traffic controller;waveform simulation

EDA电子设计自动化技术已成为电子设计领域一种重要的电子系统设计手段,通过EDA技术能够实现利用软件的方式来设计硬件系统。电子工程技术人员能够在EDA软件平台上,根据硬件描述语言所编写的文件完成程序的编辑、仿真、综合、优化、布局布线和下载,最终实现系统硬件功能的描述。与传统的数字系统设计过程不同,其需要经过设计输入、仿真调试、制作样机、样机调试、完成,这5个步骤,将传统的硬件调试过程移交给计算机,由计算机给出调试结果和错误类型,使得调试工作变得轻松。

VHDL语言为现今电子设计的主流硬件描述语言,诞生于1982年,并于1987年底被IEEE和美国国防部确认为标准的硬件描述语言。VHDL硬件描述语言,其语言结构强大,能够利用简明的代码描述复杂的控制逻辑设计,具有多层次的电路设计描述功能,既能够描述系统级电路,也可以描述门级电路,此外能够将同一个硬件电路的VHDL语言描述进行移植。

应用VHDL语言设计数字系统,能够减小硬件电路设计的工作量,缩短系统开发周期,提高工作效率,该文将介绍基于VHDL语言的交通控制器设计,在给出源代码和仿真结果的基础上进一步验证EDA技术以及VHDL语言的优势。

1 系统功能与要求

高速公路与小路交叉口处车辆较多,极易出现交通事故,对于交叉路口的红绿灯设计极为重要,此处要求,只有在小路发现汽车时,高速公路上的交通灯才能变为红灯,当小路上有汽车行进时,小路的交通灯保持为绿灯,但不能超过给定的延迟时间,当高速上的红绿灯转为绿灯后,即使小路上再有汽车出现,而此时公路上没有汽车,也要保证高速上的绿灯持续一定的间隔。

2 系统设计与实现

2.1 系统设计

根据系统要求,需要在此公路和小路上各设了一个红绿灯分别为:grgy,xrgy,来控制各自道路上通行车辆,同时在系统设计中作为输出,在系统设置中设置了三个输入端分别为:clk,che,rest且都为标准逻辑类型,其中clk作为两灯需进行变化时的时钟,在时钟上升沿时控制相应的计数信号进行计数,che作为使能信号当其为‘1’表明小路有车,rest作为复位输入,当有特殊情况时或红绿灯出现错误时rest置‘1’可使红绿灯自动回到公路上绿灯,小路上红灯的情况。

同时,根据需要可以用一状态机来表示公路,小路上各红绿灯的情况,其大体由四种状态,我们在结构体中定义一状态机stx用其四种状态st0,st1,st2,st3来分别表示:公路绿灯小路红灯、公路黄灯小路红灯、公路红灯小路绿灯、公路红灯小路黄灯四种状态。并且在结构体中定义状态信号current_state作为表示表示当前状态的信号,之后定义四个整数类型计数信号:clkg,clkx,clky1,clky2来分别为公路上绿灯持续时间,小路上绿灯持续时间,公路上黄灯持续时间,小路上黄灯持续时间计数。

2.2 系统实现

根据系统要求,按照上述设计方案,将系统的实现过程进行分析,具体是:

当时钟在上升沿时如果che为‘1’且rest为‘0’(说明小路上有车且交通灯正常工作)时:如果current_state为st0即当前公路上为绿灯小路上为红灯时,公路上的绿灯计数器clkg计数(此处设计绿灯持续时间应为23秒,又因为计数是从0开始则此处要求计数终止点在22)当计数小于22时公路上绿灯计数信号一直计数,直到计数等于22时,状态可以转换到下一状态及st1状态。

如果current_state为st1即当前公路上为黄灯小路上为红灯时,公路上黄灯计数信号clky1计数(此处设黄灯持续时间为5秒,即设终止点位4)当计数小于4时公路上黄灯计数信号一直计数,直到计数等于4时,状态转换到下一状态st2。

如果current_state为st2时即当前公路上为红灯小路上为绿灯时,小路上绿灯计数信号clkx计数(此处设计小路上绿灯持续时间为17秒,且计数终止时间为16)当计数小于16时小路上路灯计数信号计数,直到计数等于16时,状态可以转换到下一状态st3。

如果current_state为st3时即当前公路上为红灯小路上为黄灯时,小路黄灯计数信号clky2计数(同样设黄灯持续时间为5秒,即设终止点位4)当计数小于4时小路上黄灯计数信号一直计数,直到计数等于4时,状态返回到st0。

而对于任何其他情况例如小路上无车che为‘0’还有其他错误地方则设current_state都为st0状态。

具体的交通控制器VHDL源代码如下:

通过对仿真波形的结果,可以知道,图 1显示的为当小路上有车时公路绿灯小路红灯状态到公路黄灯小路红灯状态再到公路红灯小路绿灯状态的转换过程。由图可以看出在状态转换过程中,时间控制方面满足要求,稍有一些延迟现象。且在接触点时偶尔会有一丝毛刺。其原因一是在整个结构体中存在两个进程,在状态机体应用中,若使用多进程方式由于其自身特点容易发生延迟和多毛刺现象,而在此已将最初设计的三进程改为两进程基本解决毛刺现象。图 2则为将各灯每一时刻的具体数字电平加以显示,可以具体观察毛刺现象。由图2可以看出在公路红灯小路绿灯到公路红灯小路黄灯等状态转换时的具体波形。图 3为在最初阶段che为‘0’即小路无车时公路小路交通灯的具体情况,此时公路绿灯小路红灯,与设计符合。

4 结论

通过该系统的设计可以进一步领会VHDL 语言强大的行为描述能力和丰富的仿真语句及库函数,VHDL语言的优势决定了它具有支持大规模设计的分析和已有设计的再利用功能。使用QuartusII软件平台进行编译和仿真验证,表明该交通控制器能够符合预定设计目标。

参考文献:

[1] 潘松,黄继业.EDA技术与VHDL[M]. 3版.北京:清华大学出版社,2009.

[2] 詹仙宁.VHDL开发精解与实例剖析[M].北京:电子工业出版社,2009.

[3] 谭会生,瞿遂春.EDA 技术综合应用实例与分析[M].西安:西安电子科技大学出版社,2004.

vhdl语言范文第9篇

【关键词】数字电路;VHDL;教学改革;设计方法

1.引言

数字电路是理工科中的电类专业和计算机专业必修的专业基础课程,也是信息类各专业的平台课程。该课程在介绍有关数字系统基本知识、基本理论、基本电路的基础上,重点讨论数字系统中各种逻辑电路分析与设计的基本方法,以及该领域的发展现状及最新的技术。设置该课程的主要目的是为了让学生了解各种基本逻辑电路,能熟练地运用有关知识和理论对各类逻辑电路进行分析设计。目前, 大多数高等院校仍是采用传统的数字电路教学模式, 以教材为中心,过于强调基本原理、公式的推导以及波形的分析,往往让学生觉得抽象,不能够很好地理解电路、集成芯片的功能及应用。而实验环节主要在实验箱上完成,开设的是一些验证性的实验,对各实验项目的电路设计以手工为主,一般遵循自底向上的设计方法,从电路的功能分析,真值表、表达式、逻辑电路图到器件的选择、连线、测试等,学生的认识仅仅停留在局部小部件上,复杂的系统设计思想受到限制。在数字电子技术飞速发展的今天,大规模以及超大规模集成电路的广泛应用,这种缺乏实用性和创新性的传统教学模式,已不再适应现代应用型人才的培养。因此,教学需要融入新技术 、突破传统教学模式,引入VHDL语言的数字电路教学改革就成为一个重要的研究课题。

2.VHDL语言及其特点

超高速集成电路硬件描述语言(VHDL) 是一种用于数字电路设计的高级语言,是被IEEE和美国国防部确认为标准的硬件描述语言,其主要用于描述数字电路的结构,行为,功能和接口。基于这种描述结合相关的软件工具,可以得到所期望的实际数字电路。利用VHDL语言进行电路设计具有以下几个特点:

(1)VHDL可用于设计复杂的、多层次的设计,并且支持设计库和设计的重复使用;

(2)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力;

(3)VHDL有丰富的仿真语句和库函数,使其在设计的早期就能查验设计系统的功能可行性,借助于相关仿真器随时可对设计进行仿真模拟;

(4)对于VHDL完成的一个确定的设计,一般可进行逻辑综合和优化,并能自动的把VHDL描述设计转变成门级网表;

(5)VHDL语言支持电路描述由高层向低层的综合变换,便于文档管理,易于理解和设计的再利用;

(6)VHDL对于设计的描述具有相对独立性,设计者可以不懂硬件的结构,最终实现的目标器件设计。

3.VHDL语言较传统设计方法的优点

通过上述特点,我们了解到VHDL语言功能强大、设计灵活、容易掌握。将VHDL语言引入数字电路教学中,有利于增强学生对电路设计的认识,掌握更多的设计方法,提高分析设计能力。本文针对六进制约翰逊计数器的设计,分别采用了传统设计方法和VHDL方法进行设计,通过对比可得出,VHDL可以显著提升数字电路的教学效果。

3.1 传统设计方法

传统电路设计采用自底向上的设计方法如图1所示。本文选用JK、D触发器及门电路来实现,采用3个触发器连接产生8个状态,六进制约翰逊计数器只有6个状态,将其中的010,011两个状态禁止掉,具体状态转换表如表1所示。

图1 自底向上设计方法

表1 状态转换表

CLK Q2n'Q1n'Q0n Q2n+1'Q1n+1'Q0n+1

1 0..0..0 0...0...1

2 0..0..1 0...1...1

3 0..1..1 1...1...1

4 1..1..1 1...1...0

5 1..1..0 1...0...0

6 1..0..0 0...0...0

由状态转换表得出状态方程:

,,

将Q2,Q1选用D触发器,Q0选用JK触发器,得出驱动方程:

,,,

根据驱动方程最终画出逻辑原理图如图2所示。

图2 逻辑原理图

在得到逻辑原路图后,还需要进行逻辑验证,验证无误后再对逻辑原理图进行逻辑验证无误后,在PCB版上完成布线、装配、焊接及调试,如有问题,再进行局部修改,直至整个电路调试完毕为止。

图3 自顶向下设计方法

3.2 VHDL设计方法

VHDL设计采用自顶向下的设计方法如图3所示。首先根据设计要求对电路功能进行行为级描述和仿真,然后再进行RTL级描述和仿真,达到预期结果后再进行逻辑综合、布局布线,最终完成电路设计。

(1)行为描述,也就是对计数器数学模型的描述,通过代码描述出输入、输出引脚和计数过程中状态变化时序及关系,具体程序如下:

LIBRARY ieee;

USE ieee.std_logic_1164.all;

entity counter6 is

port(clk,reset:in std_logic;

count_out:out std_logic_vector(2 downto 0));

end counter6;

architecture rtl Of counter6 is

signal next_count:std_logic_vector(2 downto 0);

begin count_proc:process(clk,reset)

begin if reset='0' then

next_count<="000";

elsif clk'event and clk='1' then

case next_count is

when "000"=>next_count<="001";

when "001"=>next_count<="011";

when "011"=>next_count<="111";

when "111"=>next_count<="110";

when "110"=>next_count<="100";

when "100"=>next_count<="000";

when others=>next_count<="000";

end case;

end if;

count_out<=next_count;

end process;

end rtl;

利用Max+plusⅡ软件对上述程序进行编译、仿真,仿真结果如图4所示,结果表明,该方案符合设计要求。

图4 仿真结果

(2)RTL描述,即用具体门电路、运算器等来描述行为部分。行为描述程序抽象程度较高,故需转化为RTL方式描述的VDHL程序,以便于映射到具体的逻辑元件,得到硬件的具体实现。对于改写后的RTL程序同样需要进行仿真,检查正确性。

(3)逻辑综合,利用MAX+PLUS II Advanced Synthsis ALtera将其转换为门级网络表,输出逻辑原理图并进行仿真、检查定时关系。最后根据需要利用门级网表做出ASIC芯片或生成FPGA码点,完成电路设计。

3.3 VHDL与传统设计方法比较

相较于传统设计方法,VHDL采用自顶向下的设计方法,可进行结构化、模块化设计,更利于分工合作,再加上各层次的仿真检查,便于早期发现错误并改正,提高了设计效率;同时设计描述的相对独立性,使得学生设计时不必写表达式、真值表,不必考虑所用器件,降低了设计难度;另外VHDL语言简单易学,MAX+PLUS II界面友好,通过仿真波形分析,学生能更形象、更深刻的理解所学内容。

4.结束语

数字电路作为专业基础课程,其教学效果的好坏,将直接影响后续相关专业课程的学习。在数字电路教学中引入VHDL描述语言,利用MAX+PLUS II进行编译、仿真、演示,不但丰富了教学内容,改进了教学手段,提高学习兴趣,还有助于学生消除“抽象感”;另外VHDL能将传统教学中较难实现的电路设计转换为软件设计,不仅简化了设计工作,还有利于增强学生对集成芯片的认识,提高分析设计能力,掌握更多的设计方法,以适应现代应用型人才培养要求。

参考文献

[1]张天瑜.基于VHDL的数字电路课程改革研究[J].湖北广播电视大学学报:2010(02):25-26.

[2]黄红霞.基于VHDL提升数字电路教学效果的研究[J].黄石理工学院学报,2010(03):66-70.

[3]谭勇,朱斌.基于EDA技术的数字电路实验教学改革[J].中国现代教育装备,2012(17):43-44.

vhdl语言范文第10篇

关键词:VHDL;CPLD/FPGA;电路设计;优化

中图分类号:TP930 文献标识码:A

文章编号:1004-373X(2010)03-191-03

Optimized Design of Circuits in VHDL Based on CPLD/FPGA

DU Zhichuan,ZHENG Jianli

(School of Medical Instrument and Food Engineering,University of Shanghai for Science and Technology,Shanghai,200093,China)

Abstract:The optimized design of VHDL is for making full use of hardware resources provided by CPLD/FPGA,making the design suit for certain scale of CPLD/FPGA chip,increasing the system′s speed and reducing system′s costs.The advantages of VHDL language are analysed and the circuit design is optimized from the design idea,the use of statements,coding style.In this paper,serial design methods and the use of E2PROM to optimize the circuit design are proposed,these two methods are proved to be effective in reducing Macro Cell occupied by the program.

Keywords:VHDL;CPLD/FPGA;circuit design;optimization

0 引 言

VHDL(Very High Speed Integrated Circuit Hardware Description Language)是IEEE工业标准硬件描述语言,是随着可编程逻辑器件(PLD)的发展而发展起来的[1]。它是一种面向设计、多层次的硬件描述语言,是集行为描述、RTL描述、门级描述功能为一体的语言,并已成为描述、验证和设计数字系统中最重要的标准语言之一[2,3]。由于VHDL在语法和风格上类似于高级编程语言,可读性好,描述能力强,设计方法灵活,可移植性强,因此它已成为广大EDA工程师的首选。目前,使用VHDL语言进行CPLD/FPGA设计开发,Altera和Lattice已经在开发软件方面提供了基于本公司芯片的强大开发工具。但由于VHDL设计是行为级设计,所带来的问题是设计者的设计思想与电路结构相脱节,而且其在设计思路和编程风格等方面也存在差异,这些差异会对系统综合后的电路整体性能产生重要的影响。

在VHDL语言电路优化设计当中,优化问题主要包括面积优化和速度优化[4]。面积优化是指CPLD/FPGA的资源利用率优化,即用尽可能少的片内资源实现更多电路功能;速度优化是指设计系统满足一定的速度要求,即用更多的片内资源换取更快的处理速度,常用于视频信号采集系统和通信系统之中。面积优化和速度优化通常是一对矛盾,一般情况下,速度指标是首要的,在满足速度要求的前提下,尽可能实现面积优化[5]。因此,本文结合在设计超声探伤数据采集卡过程中的CPLD编程经验,提出串行设计、防止不必要锁存器的产生、使用状态机简化电路描述、资源共享[6],利用E2PROM芯片节省片内资源等方法对VHDL电路进行优化。

1 VHDL电路优化设计的方法

优化设计是可编成逻辑设计的精华所在,如何节省所占用的面积、如何提高设计的性能是可编成逻辑设计的核心,这两点往往也成为一个设计甚至项目成败的关键因素[7]。下面结合超声探伤数据采集卡设计过程中,并基于Altera公司的EPM7192 CPLD芯片的编程经历来论述VHDL电路的优化方法。

1.1 采用串行设计代替并行设计

串行设计是指把原来单个时钟周期内完成的并行操作的逻辑功能分割出来,提取相同的功能单元,在时间上分时复用这些功能单元,在满足系统速度要求的前提下,用多个时钟周期来完成单个时钟周期即可完成的功能。

根据项目的要求,超声探伤数据采集卡要有5个模拟通道,每隔125 μs就会采集到330个点。如果等5个超声通道采样结束后再进行数据处理和传输,几乎是不可能满足该超声探伤系统的实时性要求,而且数据量也远远超过ARM板上总线接口的传输速率2 MB/s。对于这么高的实时性要求,最好的解决办法是在CPLD内部进行数据压缩,即边采集边压缩,以满足系统使用的ARM板的总线速率要求。经过系统评估,每个超声通道只需保留一个最大值即可满足系统的性能要求。在这里,通过在三个8位数A,B,C中找出最大值的例子来说明串行设计方法的优势,代码如下所示。

程序一:

signal A:std_logic_vector(7 downto 0);

signal B:std_logic_vector(7 downto 0);

signal C:std_logic_vector ( 7 downto 0);

process(clk)

begin

if( clk′event and clk=′1′) then

A

B

C

else

null;

end if;

end process;

process(A,B,C)

variable max : std_logic_vector (7 downto 0);

begin

if(A > B) then

if (A < = C) then

max :=C;

else

max :=A;

end if;

else

if(B < = C)then

max:=C;

else

max:=B;

end if;

end if;

end process;

程序二:

signal max : std_logic_vector(7 downto 0);

process(clk)

variable temp: std_logic_vector(7 downto 0);

begin

if( clk′event and clk=′1′ ) then

temp:=AD_RESULT;

if(temp >= max)then

max

else

null;

end if;

else

null;

end if;

end process;

程序一是用并行方法设计,而程序二是采用串行方法设计。从表1的实验数据可见,采用串行方法以后,电路的优化效果比较明显。优化前,程序一需要消耗38个宏单元(Micro Cell),一个时钟周期即可完成找最大值操作;优化后,实现相同的逻辑功能程序二仅需要12个宏单元,但需要3个时钟周期才能完成一次运算,优化率达68.4%。值得注意的是,此方法是以速度换取资源的方法,只适用于对速度要求不高的系统。

表1 优化前后资源使用情况

程序名称实验平台器件消耗宏单元个数 /个

程序一程序二

Quartus II 7.2EPM7192SQC160-1538

12

1.2 防止不必要锁存器的产生

在VHDL设计中,使用语句不当也是导致电路复杂化的原因之一,这使得综合后的电路当中存在很多不必要的锁存器,降低电路的工作速度[8]。因此,在设计一个逻辑电路时,设计人员应该避免由于VHDL使用习惯的问题,无意识地在电路中添加不必要的锁存器。由于IF或者CASE语句较容易引入锁存器,所以当语句的判断条件不能覆盖所有可能的输入值的时候,逻辑反馈就容易形成一个锁存器。当然,随着高级编译软件的出现,如Quartus Ⅱ 7.2,这样的问题通过编译软件已经得到很好的解决。对一个设计人员而言,有意识地防止不必要锁存器的产生可以加快编译速度。

在超声探伤数据采集卡VHDL程序设计当中,涉及10 MHz系统时钟clk的同步D触发器的设计,即每当clk时钟信号的上升沿到来时,将输入信号in的值赋给输出信号out,代码如下所示。

程序三:

process ( clk )

begin

if ( clk′event and clk=′1′ ) then

out

end if;

end process;

程序四:

process(clk)

begin

if ( clk′event and clk=′1′ ) then

out

else

null;

end if;

end process;

通过对比,程序四比程序三只多了一条空语句,但这样做可有效防止综合器生成不必要锁存器,并提高电路的工作速度。

1.3 使用状态机简化电路描述

由于状态机的结构模式简单,有相对固定的设计模板,特别是VHDL支持定义符号化枚举类型状态,这就为VHDL综合器充分发挥其强大的优化功能提供了有利条件[9]。因此采用状态机比较容易地设计出高性能的时序逻辑模块,在超声探伤数据采集卡的CPLD程序设计中,使用有限元状态机(FSM)设计CY7C4225 1K×16 b FIFO芯片的读写控制模块,并且达到很好的效果,逻辑转换图如图1所示。实践证明,实现相同的逻辑功能,使用状态机设计能使设计的电路得到更好的优化。

图1 写FIFO逻辑转换图

1.4 资源共享

资源共享的思想是通过使用数据缓冲器或多路选择器等方法来共享数据通道中占用资源较多的模块[10],如算法单元。通过共享电路单元模块可有效提高芯片内部资源的利用率,达到优化电路的目的。

1.5 利用E2PROM芯片节省片内资源

在用VHDL进行项目开发的过程中,经常需要存储一些配置参数值。理论上讲,每存储一个字节的配置参数需要使用8个CPLD宏单元,因此在CPLD内部存储这些参数并不是好的方案,除非使用的CPLD芯片已集成了E2PROM存储单元。例如,在设计超声探伤系统的数据采集卡的过程中,每个通道的采样数都需要保存在CPLD里面。由于项目初期芯片选型不当,

选择一款EPM7192S160-15,该款芯片内部只有192个宏单元,因此考虑把参数存储在外扩的E2PROM芯片24WC02中。经实验证明,在CPLD内部实现┮桓I2C控制器仅需要43个宏单元。由此可见,当初始化参数大于5个的时候,通过外扩E2PROM芯片来存储配置参数是可行的,只需在CPLD/FPGA芯片内实现I2C控制器即可方便地读写E2PROM存储芯片。

2 结 语

使用VHDL进行CPLD/FPGA电路设计时,要根据实际项目的具体情况,合理地划分项目功能,并用VHDL实现相应的功能模块。用模块来构建系统,可有效地优化模块间的结构和减少系统的冗余度,并在模块设计过程中始终贯彻以上的优化设计原则,借助于强大的综合开发软件进行优化,才能达到最优化电路的目的。

参考文献

[1]赵桂青,于会山,穆健,等.VHDL编码中面积优化探讨[J].嵌入式软件应用,2007,23(1):116-117.

[2]吴继华,王诚.Altera FPGA/CPLD设计[M].北京:人民邮电出版社,2005.

[3]Steve Carison.VHDL Design(Representation & Synthesis)[M].New Jersey:Prentice Hall,2000.

[4]潘松.EDA技术实用教程[M].北京:科学出版社,2004.

[5]沈祖斌.基于FPGA/CPLD的数字系统设计优化[J].江汉大学学报,2006,34(1):47-49.

[6]Bhasker J.VHDL Primer[M].3rd Edition.NJ:Prentice Hall,1999.

[7]杨鲜艳,王珊珊,李萍,等.VHDL电路优化设计及方法[J].航船电子工程,2007,(2):112-114.

[8]邬杨波,王曙光,胡建平.有限状态机的VHDL设计及优化[J].信息技术,2004,28(1):75-78.