公务员期刊网 精选范文 vhdl语言范文

vhdl语言精选(九篇)

前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的vhdl语言主题范文,仅供参考,欢迎阅读并收藏。

vhdl语言

第1篇:vhdl语言范文

【关键词】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)

第2篇:vhdl语言范文

关键词: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已成为当代电子设计者们必须掌握的重要工具。

参考文献:

第3篇:vhdl语言范文

(西安邮电大学电子工程学院,陕西西安710121)

摘要:为了高效地利用Verilog HDL语言中always行为建模语句设计集成电路,采用比较和举例论证的方法,总结出always语句中事件控制敏感信号对设计仿真的影响。always语句中敏感信号分为时钟边沿信号和电平信号,对于敏感信号为时钟边沿信号,仿真结果直观简单;但是对于敏感信号为电平信号,敏感信号必须是所有的输入和判断语句的信号,否则仿真结果不确定。

关键词 :Verilog HDL;always语句;敏感信号;时钟边沿信号;时钟电平信号

中图分类号:TN911.6?34;TP312 文献标识码:A 文章编号:1004?373X(2015)15?0032?03

收稿日期:2015?02?26

基金项目:陕西省教育厅专项科研基金(2013JK0626);西安邮电大学青年教师科研基金资助项目(101?1215;101?0473)

0 引言

硬件描述语言(Hardware Description Language,HDL)是一种用形式化方法来描述数字电路和系统的语言。Verilog HDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的,两种HDL 均为IEEE 标准。但是Veriolg 语言的很多规定与C语言相似,代码简单,有大量支持仿真的语句与可综合语句,对于初学者设计简单的数字系统,更容易学习和掌握[1]。所以,Verilog HDL语言在大规模集成电路和现场可编程门阵列设计中得到了广泛的应用[2?4]。

在集成电路设计中,Verilog语言中的always语句经常用来描述时序逻辑电路和组合电路。always语句是一种结构化的过程语句,是行为级建模的基本语句,它的语句格式为:always@(敏感事件列表),敏感事件可以是时钟边沿信号也可以是电平信号,分别对应时序逻辑电路和组合逻辑电路[5]。敏感事件列表中可以包含多个敏感事件,只要所列举的任意一种情况发生,都将激活事件控制,各个敏感事件之间是“或”的关系;但不可以同时包括电平敏感事件和边沿敏感事件,也不可以同时包括同一个信号的上升沿和下降沿,这两个事件可以合并为一个电平敏感事件。而且,按照语法要求,在always块中只能给寄存器变量赋值。

在实际应用中,敏感信号为时钟边沿信号,仿真综合结果一般正确。但是当敏感信号为电平信号时,情况就会变得复杂,仿真综合结果会变得不确定。文献[6]对always敏感信号与仿真结果的这种不确定性问题也进行了肯定,但是并没有进一步的分析。本文对always语句中的事件控制敏感信号出现的各种情况进行对比探讨,发掘always语句中敏感信号分别为时钟边沿信号和电平信号的差异,并通过仿真图形去验证。

1 敏感信号为时钟边沿信号

Always语句中的敏感信号如果为时钟边沿敏感事件,一般用来表示时序逻辑电路,时序逻辑电路在逻辑功能上的特点是任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说,还与之前的输入有关。从电路行为上讲,不管输入如何变化,仅当时钟的沿(上升沿或下降沿)到达时,才有可能使输出发生变化[7]。这里以经常用到的D触发器为例,其仿真图如图1所示。

上面所述的D 触发器,赋值语句为q<=a|b,等式右端为wire型变量。再举个多敏感信号的时序逻辑电路的例子,比如带有清零端的16 分频,其仿真图如图2所示。

只要在always块的敏感信号表中定义有效的时钟沿,敏感词的作用立竿见影,然后使用过程赋值语句对信号赋值,就可以实现时序逻辑电路。

2 敏感信号为电平信号

always语句中的敏感信号如果为电平敏感事件,一般用来表示组合逻辑电路,组合逻辑电路的特点是输出信号只是当前时刻输入信号的函数,与其他时刻的输入状态无关,无存储电路。从电路行为上看,其特征就是输出信号的变化仅仅与输入信号的电平有关,不涉及对信号跳变沿的处理[8]。always电平敏感信号列表,必须将所有的输入信号和条件判断信号都列在信号列表中。有时不完整的信号列表会造成不同的仿真和综合结果,因此需要保证敏感信号的完备性。在实际的PLD 器件开发中,EDA 工具都会默认将所有的输入信号和条件判断语句作为触发信号,增减敏感信号列表中的信号不会对最终的执行结果产生影响,因此如果期望在设计中通过修改敏感信号来得到不同的逻辑,是不能实现的,这也是经常犯错的地方,这是因为仿真器在工作时不会自动补充敏感信号表。如果缺少信号,则无法触发和该信号相关的仿真进程,也就得不到正确的仿真结果。这里以一个2?4译码器为例,其仿真图如图3所示。

如果想用一个敏感信号来控制逻辑变化,比如当enable信号的电平发生变化时,再去译码,程序如下,仿真图如图4所示。

由图4 可以看出,这并不是所需的结果,这就是前面所说的,系统自动将所有的输入作为了敏感信号。

因此,在应用always块语句表述组合逻辑电路时,一定要注意敏感信号的完整性,要求触发为所有内部用到的信号,可以用always@(*),此时,综合工具和仿真工具会自动将所有的敏感信号自动加入敏感信号列表。

前面已经提到过always敏感信号不可以同时包括同一个信号的上升沿和下降沿,这两个事件可以合并为一个电平敏感事件。在设计中,一些初学的设计者经常在时钟的上升沿和下降沿都进行计数器加1,以为这样能实现倍频,仿真结果如图5所示。

从图5中可以发现并没有出现想要的结果,而是呈现出了高阻态。将直接加1运算改为直接的赋值语句,程序如下,仿真结果如图6所示。

从图6中可以看出,cnt8这个变量存储的是最后一次赋值,这时当always敏感信号为电平信号,系统默认为组合逻辑电路,虽然将信号定义为reg 型,但只是为了满足always 模块中的信号必须定义为reg 型的语法要求,最终的实现结果中并没有寄存器,在图5中出现高阻态,因为cnt8=cnt8+1是计数器,是时序逻辑电路。

3 结论

本文对Verilog语言中always块语句中的敏感信号进行了对比探讨,得到如下结论:

(1)如果敏感信号是时钟边沿触发信号,表示的是时序逻辑电路,而且在描述时序电路的always 块中的reg型信号都会被综合成寄存器,而且时序逻辑的敏感信号列表只需要加入所用的时钟触发沿即可。

(2)如果敏感信号是电平触发信号,表示的是组合逻辑电路,这里一定要注意敏感信号的完整性,即所有的输入和判断语句的信号都要加为敏感信号,否则,得不到想要的设计结果。

(3)在组合逻辑电路描述中,将信号定义为reg型,只是为了满足always模块中的信号必须定义为reg 型的语法要求,最终实现结果中并没有寄存器。

参考文献

[1] PALNITTKAR S.Verilog HDL 数字设计与综合[M].夏宇闻,胡燕祥,刁岚松,译.2版.北京:电子工业出版社,2009.

[2] 孙继荣,李志蜀,王莉,等.程序切片技术在软件测试中的应用[J].计算机应用研究,2007,24(5):210?213.

[3] 宁佐林,邱智亮.PCI桥接IP Core 的Verilog HDL 实现[J].电子科技,2006,19(4):43?46.

[4] 赵东,耿卫东,吴春亚,等.用FPGA 实现OLED 灰度级显示[J].光电子? 激光,2002,13(6):554?558.

[5] 罗杰.Verilog HDL与数字ASIC设计基础[M].武汉:华中科技大学出版社,2008.

[6] PADMANABHAN T R,SUNDARI B B T. Design through Verilog HDL [M]. New York:John Wiley & Sons,2013.

[7] CILETTI M D. Advanced digital design with the Verilog HDL [M]. 2nd ed. Beijing:Electronic Industry Press,2010.

第4篇:vhdl语言范文

【Keywords】metaphor,cognitive phenomenon,building metaphor

1. Research method

1. 1 Data collection

In this thesis a method of corpus qualitative analysis will be adopted. Cambridge Advanced Learner's Dictionary; Oxford Advanced Learner’ English-Chinese Dictionary of Current English; International dictionary of English, concrete programs and measures to be taken are as follows: (1) Professional tools to identify the basic terms and concepts on “building” in English and Chinese. (2) Basic terms and concepts on “building” in English as keywords of the corpus above, and retrieving the expression corpus relating to these terms and concepts. (3) Selecting the corpus collected to find out metaphorical expressions on “building” in English. There are many approaches to metaphor: philosophical approach, pragmatic approach, cognitive approach, etc. In this paper, the author mainly applies cognitive approaches to study the process of understanding metaphors.

1.2 Data analysis

There are many metaphorical expressions about building metaphor “Life is building, theories are buildings, relationships are buildings,” to get a clear analysis about them, the author chooses some typical building metaphors that people are familiar with, by summarizing these metaphorical expressions, identifying the conceptual metaphors which were hidden behind them, and comparing and studying these conceptual metaphors. In next section, the author will analyze these metaphorical expressions.

2. Building Metaphor

2. 1 Life is a building

Life is a building. We depend on hard-work and sweat, as a brick and watts, to build. When we were still children, we have to foster ideals and firm objectives. Russian writer Lev Tolstoy once said: “ideal is beacon. Without ideals, there is no firm direction; there is lack of direction, there is no life.” In fact, it is the same with construction. Before we can have the basic architectural model, we need to have the fundamental form of it. A great building derives from its design, only then there is a comprehensive envisage and plan, and development of the drawings. Later we can begin the construction.

2. 2 Theories are buildings

Theories are buildings. the metaphor is possible for us to use expressions (construct, foundation) from one domain (Building) to talk about corresponding concepts in the metaphorically defined domain (Theories). What foundation, for example, means in the metaphorically defined domain (Theory) will depend on the details of how the metaphorically concept “Theories are buildings” is used to structure the concept “Theory”.

Fig. Hypothesized correspondences between attributes of the concepts ‘‘theory’’ and

‘‘building’’.

As critical thinkers, however, we should be equipped with the necessary intellectual skills to test the strength of a theory to see where it collapses. Critical thinking helps us build a complex case, especially in those situations where more than one answer is plausible. Theory comes from practice, the practice also has great guide. Looking back the formation of building, the architectural design creation, a structure ergonomically environment and so on. The number of expressions “theories are building” is used in English and Chinese.

2. 3 Friendships are buildings

In our life common bridge is to need a wide range of materials for the construction, then the bridge of friendship between people? In fact, it is also the same as other bridges, as required “building materials.” These materials (common goal, in line with the character and also listen to the talk) are indispensable, With the lack of them, this bridge is not very strong.

2. 4 Society is a building

Social groups are buildings. People are based on the common material production activities, in accordance with a code of conduct with each other and form an organic whole. Constitute the basic elements of the society are the natural environment, population and culture. Through the relations of production derived all kinds of social relations, formed a community and conduct activities under the control of a certain code in order to continue normal operations and development in the community.

First, establish a harmonious concept. Thinking decides actions, concepts guide the development. To build a harmonious society, we must establish the start of harmonious concept. Our party has put forward the concept of scientific development and built strategic thinking of a harmonious socialist society, it is the succession, enrichment and development of scientific socialism theory, it is also deepen understanding of the Communist ruling Party law, socialist construction law, and the development law of human society, we must firmly establish the concept of development, a harmonious concept.

Adhere to the people-centered. The masses of the people are the fundamental force of building a socialist harmonious society, and are the true owner of a harmonious society. The essence of social development is human development. Study the progress of human society, we use productivity to measure the level of development, but also to evaluate by the degree of realization of the masses interests of the people, the two are unified.

Adhere to coordinated. Building a socialist harmonious society is a complex project, involving economic, political, cultural and social construction, in which all aspects of the party and the country are involved. This requires us to coordinate urban and rural development, regional development, economic and social development, the harmonious development of man and nature, and for domestic development and opening to the outside world, in order to adapt the mutual development of all aspects, coordinate between the various development sectors.

3. Discussion of the Results

As we know metaphor is a means of conceptualizing the foundation, framework, pillar, door, window of building understanding the life, theory, social groups, relationships, through which we can comprehend abstract concepts and perform abstract reasoning. Construction is an universal phenomena, “society, theory, civilization…” would experience such as construction, lay foundation, make a framework, train the talents, build relationship, open the door and window, since the construction is so pervasive and universal that we can easily gather the metaphors for the construction in English.

4. Conclusion

This paper presents a study of construction metaphors in English within a cognitive linguistic framework. Through the qualitative analysis, we have obtained such findings as First, “life, theory, friendships, social group” as basic abstract concepts which are important to our thinking and actions, are conceptualized through the metaphorical mapping from construct ontological and relatively concrete and highly-structured concepts. For example, “Life is building, theory is building, relationships are building, social groups are building.” These construction metaphors partially structure the concepts “life, theory, relationships, social group”, enrich our understanding “life, theory, relationships, social group” and consequently influence our reasoning and actions towards these concepts. This illustrates that our abstract experiences and reasoning are at least partially metaphorical.

参考文献:

[1] K.vecses, Zoltan. Metaphor: A Practical Introduction[M]. New York: Oxford University Press, 2002.

[2]Lakoff, G & Johnson, M. Metaphors We Live By[M]. Chicago: The University of Chicago Press, 1980.

[3]Lakoff, George. & K?vecses, Zoltán. The Cognitive Model of Anger Inherent in American English[M]. In Dorothy Holland and Naomi Quinn (eds.), 1987. 195---221.

[4]Lakoff, George. Women, Fire, and Dangerous Things[M]. Chicago: University of Chicago Press, 1987.

[5]蓝纯.《从认知角度看汉语和英语的空间隐喻》[M]。北京: 外语教学与研究出版社,2003.

第5篇:vhdl语言范文

《VHDL语言程序设计》作为一门数字电路硬件描述语言课程,VHDL语言虽然与计算机程序设计语言有相似之处,但是从严格意义上讲,VHDL程序不能称为“程序”,而应称为“代码”,其语句的运行也不能称为“执行”,而应称为“实现”,因此VHDL语言程序设计具有不同计算机编程语言的编程方法与技巧。数字电路既有简单的组合电路,也有复杂的片上系统,复杂的数字电路由简单基本电路组成。基本电路主要包括:多路选择电路、加法器(减法器)、D触发器、比较器、计数器、移位寄存器、三态门电路等。教学中采用实例安排组织教学,由简单到复杂,并综合考虑VHDL语法规则,对实例作恰当地取舍和教学顺序调整。课程教学分为三部分:简单实例讲解、VHDL语法规则归纳与补充、复杂实例讲解。1)简单实例讲解:简单实例是数字系统设计的基本电路实例,通过典型实例的讲解,使学生掌握VHDL语言规则和基本电路的设计。具体的讲解过程如下:a.二选一多路选择器通过该实例讲解简单组合电路的设计方法,同时讲解VHDL程序的基本结构,顺序语句(IF语句、赋值语句)、并行语句(进程语句、赋值语句),以及BIT数据类型、逻辑操作符等VHDL语法规则;b.D触发器通过该实例讲解时序电路的基本设计方法,同时讲解的VHDL语法规则中的标准逻辑位数据类型、标准库(程序包)、上升沿检测表达式等VHDL语法规则;c.全加器通过该实例讲解加法器(减法器)的基本设计方法,同时讲解CASE语句、例化语句、矢量数据类型等VHDL语法规则;d.计数器通过该实例讲解不同计数器的设计方法,同时介绍常用数据类型、重载运算符等VHDL语法规则;e.移位寄存器通过该实例讲解移位寄存器的设计方法,同时讲解VHDL的功能仿真、时序仿真;f.复杂多路选择器分析复杂多路选择器实例,讲解信号与变量的区别;g.三态门电路通过该实例讲解三态门电路的设计方法,以满足现实数字电路系统中数据总线设计的需要。2)VHDL语法规则总结和补充简单实例讲解中的实例不可能覆盖所有的VHDL语法规则,因此在实例讲解后,需要对VHDL语法规则总结和补充。在具体教学实施中,可以采用提问法对所学的VHDL语法规则归纳总结,同时补充遗漏的VHDL语法规则。3)16位CPU复杂实例讲解复杂实例能够深化和提升学生所学的知识,培养综合运用所学知识解决实际问题的能力。以16CPU设计为基础,讲解复杂数字电路的设计,同时讲解设计中所涉及的新知识,主要包括原理图设计方法、宏模块的调用、状态机设计。

(二)实例教学法实施的注意事项

在实例教学实施中,要注重学生的主体性,提出问题,解决问题,对所讲的实例做到深层次分析,举一反三,注重程序设计的灵活掌握。实例的讲解和VHDL语法规则的讲解是同步的过程,没有严格前后之分,语法规则的讲解融合在实例讲解中。

(三)实例教学法的教学效果

近四年来,本人一直负责该课程的教学工作,其中最近两年采用了实例教学法安排教学,实践表明实例教学法的应用有效提高了教学效果。根据学校的网上统计教学评价,近两年的学生教学评价效果由良好达到了优秀的水平;根据本文作者的课后不记名统计,非常满意和满意率由80上升到93%。本文来自于《学术论坛》杂志。学术论坛杂志简介详见

(四)结束语

第6篇:vhdl语言范文

关键词:数字逻辑;实验教学;实验课题设计;教学改革;VHDL

自20世纪90年代以来,随着电子科学技术的进步,大规模集成电路PLD芯片逐渐取代了数字系统中传统的分离元件和小规模集成电路。同时,数字系统和计算机系统的设计方法向“硬件设计软件化”转变。用硬件设计语言设计数字系统和计算机系统的技术日益成熟且越来越广泛地得到应用。虽然,高校数字逻辑课程的教学内容也有一些相应的调整,但是实验教学的改革往往明显落后。

数字逻辑是计算机科学与技术专业重要的基础课之一,也是学生感觉学习比较困难的课程之一。我校计算机专业的数字逻辑课程的实验教学过去一直是在实验箱上插接集成电路芯片和连接线的方式,实验内容以验证性实验为主,实验效果很不理想,实验教学与理论教学的衔接不好,没有真正起到“通过实验加深对理论知识的理解”和“理论与实际相结合”的作用。学生虽然在课堂上学习了VHDL编程并做了一些习题,但是并不知道究竟什么样的程序才是正确的,而要想知道VHDL程序是否正确的唯一方法是编译和仿真。为了提高数字逻辑课程的教学效果,并且与新增加的VHDL语言教学内容相呼应,笔者进行了数字逻辑课程的实验教学改革探索。通过“做中学”[1],使学生真正掌握用VHDL进行逻辑设计的方法。放弃在实验箱上插接集成电路芯片和连接线的方式,改变为在Quartus软件平台上用VHDL语言编程和仿真实验。从以验证性实验为主转变为以设计性实验为主,不仅使学生学到了最新的技术,而且为后继课程计算机组成原理的进一步教学改革奠定了基础。

1实验课题的设计

根据教学计划,本课程的实验为12学时,安排6个实验。除第1个实验是熟悉Quartus系统的使用外,其余5个实验都是设计性实验。

1.1设计思想

实验课题的设计是开展设计性实验教学必须妥善处理的关键问题之一。实验课题应该有合适的难度,使得大部分学生在现有基础上通过自己的分析和努力能够做出设计(不一定是完全正确的设计)。实验课题应该在本课程教学的重要知识点范围内,通过实验可以使学生更好地掌握相关知识点,实现理论教学与实验教学相辅相成。实验课题应该在书本或网络等其他信息源上没有现成的解答,学生必须自己进行分析设计才能得到解答。

在高度网络化和信息化的今天,各种教材、参考书和网络上已经有很多的VHDL语言程序的实例,为了保证学生是真正做设计,笔者在设计实验课题时也广泛查找了资料。有几个设想的课题就因为发现有相同的VHDL语言程序实例存在而被否定。最后确定的5个实验课题,到目前为止还没有发现有相同的VHDL语言程序实例。这5个实验课题包括2个组合逻辑设计实验课题和3个时序逻辑设计实验课题。实验课题的难度和复杂程度是逐渐增加的。除了基本实验外,还为少数学有余力的学生设计了选做题目。

1.2实验课题

1) 实验课题一。

设计一个代码转换逻辑电路。把7位的ASCII码转换成7段字符显示代码。能显示数字0~9,字母A、b、C、d、E、F、H、L、o、P、U、Γ和一些符号(-、_、=、┫、┣、、)等。用VHDL语言编程并仿真。

2) 实验课题二。

设计一个多功能的运算器,有控制信号M、S2、S1、S0。当M=1,在S2、S1、S0的控制下能完成两个1位二进制数A、B的以下算术运算:A加B,A加1,A加B和低位来的进位,B加1,A加 ,A加0,A加A,A加 加1。当M=0,作逻辑运算。在S2、S1、S0的控制下能完成两个1位二进制数A、B的以下逻辑运算:A+B,A•B, , , , , , ,等。用VHDL语言编程并仿真。

3) 实验课题三。

设计一个自动售饮料机的控制逻辑电路。该机器有一个投币口,每次只能投入1枚1元或5角的硬币。当投入了1元5角的硬币,机器自动给出1杯饮料。当投入了2元的硬币,机器在自动给出1杯饮料时,还找回1枚5角的硬币。

确定输入/输出变量、电路的状态并化简,做出状态转换图、状态转换表。在完成以上逻辑设计后,用VHDL语言编程并仿真。

4) 实验课题四。

用74HC163设计一个十九进制计数器。用VHDL层次结构设计方法设计程序并仿真,底层器件是74HC163。

完成以上题目后,还可以选做题:用74HC163设计一个余3码计数器。用VHDL层次结构设计方法设计程序并仿真,底层器件是74HC163。

5) 实验课题五。

实验课题五有两个题目,学生可以任选一个。

题目一:设计一个可控计数器,当控制信号S=0时,是五进制计数器,当控制信号S=1时,是十五进制计数器。设计出逻辑图。分别用两种不同的方法设计(行为描述,结构描述),用VHDL语言编程并仿真。

题目二:设计一个数字钟电路,要求能用7段数码管显示从0时0分0秒到23时59分59秒之间的所有时间。做出逻辑图。用VHDL语言编程并仿真。

2教学效果分析

实验课题一的目的是强化译码器、7段字符显示代码和ASCII码等知识点。学生可以参考书上的BCD码-7段字符显示译码器的VHDL程序做这个设计,但是要实现那些特殊符号的显示还是需要动脑筋的。实验结果显示,学生基本上都能做出数字和字母的显示代码设计,但是极少有能做出那些特殊符号的显示代码设计的。

实验课题二的目的是强化加法器、全加器、算术运算、进位和逻辑运算等知识点,并且考虑到与后继课程计算机组成原理的ALU等知识点教学的衔接。学生做设计时可以参考1位全加器的VHDL程序。很多学生在做实验之前认为这个题目很简单,只要用VHDL语言的算术运算符就可以了。开始做实验才发现根本不是那样,必须先推导出每个运算功能的逻辑表达式才能编程,而相当多的学生忘记了算术运算还有进位的逻辑表达式。这个实验确实达到了强化上述知识点的目的。

实验课题三的目的是强化状态机和Mealy型时序逻辑电路设计等知识点。学生做设计时可以参考状态机的VHDL程序。经过这个实验,大部分学生真正懂得了什么是状态机,时序逻辑电路是在时钟信号的作用下发生状态转变的,另外还有怎样确定有哪些状态和做状态化简。

实验课题四的目的是强化计数器、用集成计数器实现任意进制计数器和Moore型时序逻辑电路设计等知识点,也是学生第一次用VHDL结构描述的方法做设计。学生做设计时可以利用书上的74HC163的VHDL程序例子。通过这个实验学生进一步理解了触发器和计数器,掌握了用集成计数器实现任意进制计数器的方法和用VHDL结构描述做逻辑电路设计的基本方法。选做题是为少数学习好、能力强的学生准备的,使这部分学生有机会得到更多的训练和提高。选做题还可以使学生掌握余3码的概念,确实也有很少的几个学生完成了选做题。

实验课题二和实验课题三都是用行为描述的方法进行逻辑电路设计,比较容易掌握,实验成功率较高,而实验课题四要求用结构描述的方法做逻辑电路设计。在实验中间发现,相当多学生并没有理解结构描述的概念,也不知道应该怎样做。因此,实验课题五继续强化用结构描述的方法做逻辑电路设计。

实验课题五题目中的第一个,目的是巩固用集成计数器实现任意进制计数器和Mealy型时序逻辑电路设计等知识点。同时,也使学生进一步掌握用行为描述和结构描述进行设计的方法。虽然这个题目相对第二个题目要简单一些,但是由于要求分别用行为描述和结构描述两种方法进行设计,所以总的工作量比实验课题四要多。这两个题目中的第2个不仅难度更大、更复杂,而且其设计还要考虑如何仿真的问题,是一个有挑战性的题目。然而,选择这个题目的学生却出乎意料得多,而且有若干种不同的设计思想,既有用结构描述的也有用行为描述的。虽然在2个小时的时间内,几乎没有学生完全正确地完成这个高难度实验的设计和仿真,但是有个别学生在以后的几个星期里仍然继续探讨并最终正确地完成了这个实验。像数字钟这样的复杂实验,在过去想要用中小规模集成电路在实验箱上插接连线的方式完成是不可想象的,但是现在用Quartus系统上设计和仿真的方式却是可以完成的。

设计性实验比验证性实验的难度有明显提高,学生也要花更多的时间做预习、设计和写实验报告。在学习数字逻辑之前的各课程(物理、电路、模拟电子)实验都是验证性实验,大部分学生已经养成不做实验预习的习惯。在做第一个实验(熟悉Quartus系统)时就发现很多学生基本上是进了实验室才开始看实验指导。结果是两个小时过去了,一部分学生并没有掌握VHDL程序调试和仿真的基本方法,个别学生输入的源程序甚至连编译都没有通过。针对这个问题,我们采取了要求学生提前做实验预习,写出实验设计和程序才允许进实验室做实验的措施,并且在逐位点名时逐个检查实验预习。实验教学改革也在一定程度上调动了学生的积极性。

3结语

用VHDL语言设计组合逻辑电路和时序逻辑电路的方法与传统的用逻辑代数和逻辑图设计的方法有很大不同,特别是行为描述的方法很容易掌握。用软件工具对所做设计进行仿真以检验设计的正确性比在面包板上插接、连线、调试要方便容易,避免了接触不良造成的故障和连线错误损坏器件等问题,实验成功率高、消耗低。学生不仅要做逻辑设计,还要做仿真输入波形设计。仿真输出波形直观地表现了逻辑功能的正确与否。部分学生自己有计算机,可以提前做出设计并编程,在进入实验室后能够在比较短的时间里完成实验;也有一些学生由于设计错误,在实验室没有完成实验,是回去以后继续用自己的计算机改正程序、完成仿真的。

从实际教学效果看,上述实验课题的设计是成功的。大部分学生通过设计和实验都有不同程度的提高,基本上理解了有关的知识点,掌握了VHDL程序设计、调试和仿真方法。从后来的调查问卷的结果看,大部分学生认为数字逻辑实验“不是很难”(4个选项分别是太难、不是很难、很简单、不能理解),只有少数学生不喜欢这种设计性实验。

数字逻辑课程的实验教学改革探索取得了初步成功,今后还将继续改进,也希望与其他学校的教师交流教学改革的经验和教训,共同提高。

参考文献:

[1] 黎忠文,向兆山.“做中学”模式在计算机教学中的探索[J]. 计算机教育,2006(10):30-32.

Exploration of Experiment Teaching of Digital Logic

SHENG Jian-lun

(School of Computer, Qingdao Technological University, Qingdao 266033, China)

第7篇:vhdl语言范文

引言

VHDL是一种硬件描述语言,于1983年被IEEE制定为国际标准IEEE1076。近年来国内引进和出版了不少教材,使其在国内得到迅速推广。由于VHDL最初目的是为了实现硬件的建模而被提出的,所以其措施能力超越了数字逻辑集成电路的范围。而现有的EDA工具基本上只能支持VHDL的子集,特别是针对FPGA/CPLD器件进行的不同的综合工具,其综合子集并非统一,不少初学者很难掌握。即使是部分有经验的设计者,对于通常高级语言中都会涉及的循环语句,在VHDL中往往也不能运用自如,甚至无法表达此类逻辑,从而限制了VHDL的应用水平。例如,VHDL的并行堆排序描述就是一个比较典型的例子。该实例十分类似通常数据结构的描述,推广前景诱人;但只能通过仿真,却不能在目前任何一个EDA工具进行综合,导致无实用价值。

本文从高级语言涉及最多的Loop语句出发,讨论如何在VHDL中解决这类问题。

1 无法综合的Loop动态条件

VHDL中Loop表达式有三种体现形式:While……Loop、For……Loop和单独的Loop语句。它还支持Next、Exit和标号,因此,循环语句的表达能力大于常规的C或PASCAL语言。程序1是利用For语句和While语句描述插入算法的部分代码。

程序1 不可综合的VHDL循环语句

……

for I in 2 to Length loop ---Length为一个变量

Temp:=MyList(I);

J:=I;

While(j>1)and MyList(j-1)<Temp loop

MyList(j):=MyList(j-1);

j:=j-1;

End loop;

MyList(j):=Temp;

End loop;

……

对于第一个For语句,EDA工具Synplify综合时将会给出无边界的范围错误提示。

@E:"H:.vhd"|for loops with unbound ranges should contain w wait statement

即使部分优秀的综合工具,例如ORCAD Express、Mentor Grpahs QuickHDL等能够综合第一个For语句,也无法支持第二个While条例表达式。ORCAD Express将给出表达式不可静态计算的错误提示。

..vhd(45):Error,expression does not evaluate to a constant.

由于程序1在C程序员看来是没有问题的,因此,初学者往往不能解决好此类问题,从而使学习陷入困境,无法充分利用VHDL来表述逻辑。

2 直接代换法

对于第一类无边界的范围错误问题,可以用循环的综合机制转化为相应的语句。例如下面代码:

for I in 0 to 1 loop

Out_Bus(i)<=In_Bus(i);

End loop;

其对应综合后的电路见图1。

相应的,也可以用下列语句直接代入代换:

Out_Bus(0)<=In_Bus(0);

Out_Bus(1)<=In_Bus(1);

程序1可以采用下列VHDL代码表示:

K:=2;

Temp:=MyList(2);

If(MyList(1)<Temp then

MyList(2):=MyList(1);

J:=1;

End if;

MyList(J):=Temp;

J:=3;

Temp:=MyList(3);

If(MyList(2)<Temp then

MyList(3):=MyList(2);

J:=2;

End if;

If(MyList(1)<Temp then

MyList(2):=MyList(1);

J:=1;

End if;

MyList(J):=Temp;

……

然而,这种使用方法要求设计者清楚循环条件一定会执行的次数,否则将无法实施。当循环次数比较大时,代码编写工作量将十分庞大,因此可以采用第二种方法——边界扩充法。

3 边界扩充法

边界扩充法是指在边界未定时,可以将边界定为最大可能的范围,即用静态表达来替代。例如程序1的代码可以改写为:

constant MAX:integer=100; --MAX必须大于MyLen所有可能的取值

……

Out_loop:for I in 2 to MAX loop

Exit out_loop when I>MyLen; --MyLen为变量

Temp:=MyList(I);

countj:=I;

inter_loop:for j in I downto 2 loop

countj:=j;

exit inter_loop when MyList(j-1)<Temp; --退出循环

MyList(j):=MyList(j-1);

End loop;

MyList(countj):=Temp;

End loop;

尽管这种方法可以处理未知边界和未定表达式的情况,但十分消耗空间,特别是当MyLen相对MAX比较小的时候,代价非常大。此时,可以利用时间换空间的方法进行转换。

图1 For语句的综合示例

4 计数器法

计数器法是指引入时钟和计数器,用计数器对边界条件进行控制,也可以将动态表达式直接代入转化相应的静态表达式。例如,上述代码的For条件可以用下列代码替换:

if(Reset='1')then

I:=2;

Elsif clk='1'and clk'event then

Temp:=MyList(I);

J:=2;

While(j>1)and MyList(j-1)<Temp loop

MyList(j):=MyList(j-1);

j:=j-1;

End loop;

MyList(j):=Temp;

I:=(I+1);

If(I=MyLen+1)then I:=2;end if;

End if;

相比原来的代码,引入了1个时钟和1个复位。但综合开销最大的循环语句却被取代了,因此,综合产生门的数目将大幅度下降,但处理时间将相应延长到原来循环条件范围。

本刊网络补充版(dpj.com.cn)中发表了四个源代码,分别为不可综合例子、直接代换法、边界扩充法和计算器法,内部都有相应注释。其中计数器法改进为双计数器方法。

第8篇:vhdl语言范文

[关键词] EDA技术 空调控制系统 VHDL语言 仿真

引言

空调控制系统是智能建筑楼宇自动控制的一个重要组成部分。系统占据整个楼宇自动化系统的30%以上的监控点,而且空调的能耗也占整个建筑物能耗的50%以上。因此,空调控制系统的设计是整个楼宇自控系统设计的重点之一,也是节电节能的重点,特别对于大型建筑而言,更是如此。本文设计一种新型空调控制器,并采用了电子设计自动化(EDA)技术,用目前广泛应用的VHDL硬件电路描述语言,在Altera公司的MAX+PLUSⅡ集成开发环境下进行综合、仿真,并下载到可编程逻辑器件中,以实现控制功能。

一、空调控制系统结构

空调控制系统结构如图1所示,首先由传感器检测室内温度,并将采集来的数据传输到控制系统的预处理单元,在预处理单元将采集来的温度信号与设定值相比较,来判断当前的状态(太热、太冷或适中),然后将处理结果传输到控制单元,最后由执行机构接受控制单元输出的控制信号,控制室内空调。

二、控制单元的EDA实现

1.控制单元的芯片功能

控制芯片如图2,有三个输入端时钟端clk,temp_high和temp_low,两个输出端heat和cool,高电平有效。如果室内温度正常, temp_high和temp_low均为‘0’,则输出端heat和cool均为‘0’。如果室内温度过高,temp_high为‘1’,temp_low为‘0’,则heat和cool分别为‘1’和‘0’,空调制冷。如果室内温度过低,temp_high为‘0’,temp_low为‘1’,则heat和cool分别为‘0’和‘1’,空调制热。

2.控制单元芯片的VHDL代码

VHDL(Very-High-Speed integrated Circuit Hardware Description Language)是IEEE工业标准硬件描述语言,是随着可编程逻辑器件(PLD)的发展而发展起来的。这种用语言描述硬件电路的方式,容易修改和保存,且具有很强的行为描述能力,所以在电路设计中得到了广泛应用。以下是描述控制单元VHDL代码.

library ieee;

use ieee.std_logic_1164.all;

entity air_conditioner is

port (clk:in std_logic;--时钟输入信号

temp_low:in std_logic; --过冷传感器输入信号

temp_high:in std_logic;--过热传感器输入信号

heat:out std_logic;--制热输出信号

cool:out std_logic); --制冷输出信号

end air_conditioner;

architecture style_b of air_conditioner is

type state_type is (just_right,too_cold,too_hot);

attribute sequential_encoding :string;--定义state_type的属性sequential_encoding

attribute sequential_encoding of state_type:type is"00 01 10";

signal stvar:state_type;

attribute state_vector:string; --定义stvar的属性state_vector

attribute state_vector of style_b:architecture is "stvar";

begin

controller1:process

--clk是该进程的敏感信号,当clk变为‘1’时,激活进程

Begin

--等待clk变为‘1’

wait until clk=’1’;

--根据temp_low和temp_high的值决定stvar的值

if (temp_low=‘1’) then stvar

elsif (temp_high=‘1’) then stvar

else stvar

end if;

--根据stvar的值决定heat和cool的值,从而控制空调制冷、制热或保持不变

case stvar is

when just_right=>heat

when too_cold=>heat

when too_hot=>heat

end case;

end process controller1;

end style_b;

3.控制单元芯片的功能仿真

控制单元芯片系统采用ALTERA公司的EPF8282ALC84-2芯片,所有程序在MAX+PLUSⅡ中开发。设计输入完成后,进行整体的编译和逻辑仿真,然后进行转换、布局、布线,延时仿真生成配置文件,最后下载至FPGA器件,完成结构功能配置,实现其硬件功能。控制芯片的系统逻辑功能仿真波形如图3所示。各信号的逻辑功能和时序配置完全达到设计要求。

三、结束语

本文设计的空调控制系统,可以根据室温的变化控制空调制冷或制热,起到调节室内温度的作用,特别是大大降低了空调的能耗。本系统具有结构简单、性能稳定、实现方便,成本低的优点,因此极具市场竞争力。

参考文献:

[1]侯伯亨:VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社,1999

第9篇:vhdl语言范文

关键词:EDA;计算机组成实验课程;实验教学;创新

实验教学是将学生的书本知识转化为动手能力,深入理解理论知识的必不可少的一环。实验教学对于培养创新性人才,激发学生学习的热情和创新能力有着极为重要的作用。特别在知识日新月异的时代,创新性人才的培养势在必行[1-2]。

计算机组成原理是电子信息类各专业的专业基础课,重点在于讲授计算机的各部件的组成原理及部件之间有何种数据流和控制流以协调工作,建立整机的概念。计算机组成实验课程是配合这门课程学习的一门单列实验课,计算机组成实验是我校的四川省精品课程――计算机组成原理系列课程体系的一个重要组成部分。如何很好地组织计算机组成实验,从实验的内容、方式、激发学生的热情上,教学工作者都进行了大量的探讨[3-4]。

随着电子技术的不断发展,计算机组成实验平台从以软件平台的仿真为主,逐步向以硬件平台为主、软件仿真为辅的方向转变。在实验中,可以选择不同厂家生产的专用的实验器件进行,也可以基于EDA方式进行[5-7]。EDA(electronic design automatic)是现代电子设计的核心,它以计算机为基础,在EDA工具软件平台上,对以硬件描述语言HDL(hardware description language)为系统逻辑描述手段完成的设计文件,自动进行编译、优化、逻辑综合、结构综合[7],在调试编译正确后,再配置引脚下载到实验电路板上。基于EDA的计算机组成实验不仅可以更好地进行计算机硬件系统的逻辑设计,同时可以提高硬件设计水平及硬件实现效率,使学生学习到EDA的开发软件和开发语言,更好地适应电子设计的新技术,同时为将来就业奠定基础。在下载到实验板之前整个设计是在EDA工具软件环境中进行,学生可以进行反复的调试,不必担心硬件的损坏,并且在EDA环境中进行硬件设计,如同在使用真实的器件做实验,可以调用不同的器件。实验的题目从简单的验证型为主转化为综合型和设计型为主的题目。基于EDA的计算机组成实验的一个重要环节是编程语言的学习和EDA工具软件的使用,而这些软件和编程语言,大多数的学生在学习本门课程时还没有学习过,如何在较短的时间内迅速入门,本且为后续的进一步学习奠定基础,是教学中的难点。另外,不同的学生会对不同的EDA语言感兴趣,允许学生选择不同设计语言,并讲清不同设计语言的区别和联系,有助于学生从整体上更好的掌握设计的方式和方法。

1教学指导思想

由于EDA环境提供的设计具有便捷性,所以我们在计算机组成实验课程教学中有以下的教学指导思想:由浅入深,意在提高学生的积极性和主动性,排除畏难情绪;鼓励创新,鼓励学生以不同的方案解决问题,不拘泥于老师介绍的方式方法;设计不同难易程度的题目,给能力强的同学以较好的延伸空间;开发语言的介绍不拘泥于本门课程,将关键点讲到位,以便促进学习在完成该课程学习后进一步的学习,开发语言的使用允许学生在Verilog HDL、VHDL两种语言中任选一种,并讲清其区别和联系。

2EDA教学方式和方法

2.1开发环境和语言的选择

我们选择开发环境的是Altera公司的QUARTUS II软件,Altera公司提供有Web EDITION版本,可免费试用,并且学生可以从Altera公司的网站上下载license文件,这样学生在离开实验后可以在寝室里调试程序,更好地学习EDA软件。QUARTUS II支持三种硬件描述语言:AHDL、Verilog HDL、VHDL。其中,AHDL是Altera公司开发的硬件描述语言,仅在Altera公司的开发系统上支持,移植性不好。而Verilog HDL和VHDL都是IEEE的标准,那么这两种语言有何差异呢?在这两种语言中Verilog HDL是在C语言的基础上发展起来的,比较容易学习,但它更适合于元件级的描述,可以看作是电子元件和Verilog HDL语言的一一对应。而VHDL的抽象层次更高,它用实体和行为描述来抽象一个具体的逻辑电路,具有面向对象的特征。VHDL可以使我们将重点放在系统内部逻辑的实现上,而不是放在实现的细节上,其内部的实现交给EDA工具去完成。因此,在这门课程的学习中允许同学按照偏好选择使用VHDL语言或Verilog HDL,并鼓励他们分析两者的异同。当然,对于复杂系统的设计需要两种语言一起来完成任务。实验电路板可以选择Altera公司的DE2开发板或杭州康芯公司的计算机组成实验板等。

2.2教学内容和教学方式的设计

基于EDA的计算机组成实验课程,非计算机专业一般设置的课时为32学时,其中包括实验学时。教师需要在有限的课时中讲授以下内容:VHDL语言;QUARTUS II软件的使用;DE2开发板的使用;计算机组成实验内容涉及的原理;实验过程的演示。对于大多数同学而言,都是第一次接触EDA的概念,并要求在较短学习VHDL语言及其开发环境,如果按部就班的学习,势必有一定的难度,而且会在一定程度上挫伤学习的积极性。相反,如何能够较快地掌握该语言的特点,则能激发学生的学习热情。根据学生都至少学习过一门编程语言,我们进行了如下的教学设计。

1) 以实例为向导,讲解重点的语法要素。

VHDL语言一门硬件描述语言,它不同于一般的软件语言,它比较规整,具有面向对象的某些特征。它把任何逻辑对象作为实体进行描述,该实体包含输入、输出接口和行为逻辑的描述。如果系统地学习该语言需要较多的时间,而在计算机组成实验这门课程中,我们仅仅将其作为进行实验的一个平台,目的是快速切入,因此在讲解过程中采用了以同学们较为熟悉、简单地实例为向导。讲解在描述某一逻辑器件的过程中介绍出现的语法现象,并进行解释。例如:我们在讲述VHDL语言时,采用了D触发器这个例子。D触发器的代码如下:

LIBRARY IEEE; ――定义库

USE IEEE.STD_LOGIC_1164.ALL; ――定义包

ENTITY ddf IS

PORT(D,CLK: IN STD_LOGIC;

Q: OUT STD_LOGIC);

END ENTITY ddf; ――定义实体和输入输出接口

ARCHITECTURE behave OF ddf IS ――定义结构体

SIGNAL sig_save: STD_LOGIC; ――定义信号量类型内部变量

BEGIN

PROCESS(CLK) ――定义过程

BEGIN

IF CLK'EVENT AND CLK='1' THEN ――上升沿工作

Sig_save

END IF;

Q

END PROCESS;

END ARCHITECTURE behave;

对于D触发器,大部分同学都比较熟悉,我们以此为出发点讲述VHDL语言。通过该例子,我们讲述以下的重要语法现象:库、使用库、实体、输入输出接口定义、数据类型(包括如何定义向量数据类型)、结构、过程、敏感、上升沿的定义和使用、信号和变量、信号和变量的赋值,顺序语句与并行语句的讲解。并且,我们介绍了D触发器实现的不同方式,以促进学生进一步理解VHDL语言。在讲述完这样一个例子以后,我们要求学生完成一个简单的题目,2-4译码器的设计。因为在进行存储器的扩充实验当中要用到译码器,现在设计一方面熟悉语言的使用方式,另一方面方便以后调用进行层次化的设计。

2) 因材施教,鼓励创新。

对于我们的实验题目,一方面我们设置了必修题目和选修题目,以体现因材施教的目的,从演示型题目到设计型,综合型的题目。另一方面,对于设计的题目,讲解多种设计方案,不限定在指定的设计方法,鼓励学生开动脑筋,积极动手动脑。

3) 从浅入手,循序渐进。

毋庸讳言,有一部分同学对于编程有一定的畏惧感和挫败感,如何鼓励学生,调动学习的兴趣,加强其信心是我们实验题目设计中所要重点考虑的问题。我们对于实验题目的设计采用了由浅入深的顺序。从简单的一位加法器开始,给学生以成功感,以促使其主动的钻研下去。

4) 事前预习。

在每次实验之前,我们都要求学生预习实验题目,预先设计方案和代码,做好充分准备。然后再实验室中调试和验证。在实验过程中,我们会给出特定的要求,以测试同学的设计能力。

2.3教学重点内容

通过这门课程的学习,我们希望学生不仅仅加深对于计算机组成原理的学习,同时学习到EDA工具、语言和方法,为进一步学习奠定基础,并有助于学生将来的就业。所以,在实验课程中,我们循序渐进地安排了以下的方法和概念的学习和使用,以在最短的时间中最大化的掌握VHDL语言的精华。

1) 层次化设计方法。

对于复杂问题的设计方式有:自顶向下和自底向上两种设计方式。不论哪种设计方法都必须使用层次化的设计的概念和方法。层次化设计的实现有两种方式:原理图的方式、元件例化方式。在该课程的介绍中,我们首先介绍QUARTUS II软件的使用,同时介绍原理图的绘制和基于原理图方式的层次化设计方式。然后以实例为向导介绍VHDL语言,进一步介绍元件例化。

2) 状态机。

状态机是数字设计中重要的概念,是高效实现数字逻辑控制的重要途径。有一些问题的解决可以用状态机实现也可以用其它方式实现,但状态机能够更快捷、方便、概念清晰,有一些问题的解决则只能使用状态机。我们在进行时序发生器和运算器等简单题目设计时,介绍状态机的概念和典型构架,要求学生学习和使用。当然这些题目的实现也可以不用状态机实现,但是为了学生今后进一步学习,我们力求讲透状态机的概念和设计方法。同时也能为最后的综合性题目CPU的设计奠定基础。

3结语

通过计算机组成实验课程的学习,学生加强了对于计算机组成的理解,增强了动手能力和自学能力。特别是在设计同一个题目时出现多种方案,超出了教师讲解的可选范围。学习能力一般的同学,感觉自己也能完成给定的设计任务,增强了信心。能力较强的同学,一方面对于自己的设计不断精益求精,并对于EDA的设计、DE2开发板充满了兴趣,愿意进行进一步的深入学习。

参考文献:

[1] 蔡炳新,蔡炽,曾鸽鸣,等. 改革实验教育教学培养创新型人才[J]. 实验室研究与探索,2009,28(1):17-19.

[2] 付必谦,于志红,李春林. 开放实验,促进学生自主研究[J]. 实验技术与管理,2005,22(9):11-14.

[3] 杨学颖,苏光奎. 计算机硬件课程教学问题初探[J]. 河南教育学院学报:自然科学版,2006,15(1):86-88.

[4] 赵硕,杨欣宇. 计算机组成原理课程的设计性实验[J]. 高师理科学刊,2005,25(2):77-78.

[5] 白中英,张杰,靳秀国,等. TEC-5数字逻辑与计算机组成的实验系统[J]. 实验技术与管理,2007,24(11):49-51.

[6] 薛宏熙,胡秀珠.计算机组成与设计[M].北京:清华大学出版社,2007.

[7] 刘锦萍,潘云燕,谭召军. 利用MAX+PLUSII软件仿真计算机组成原理实验[J]. 嘉兴学院学报,2004,16(6):28-29.

Teaching of Computer Organization Experiment Based on EDA

CHEN Hongmei, MA Yongqiang, HE Rong

(School of Information Science & Technology, Southwest Jiaotong University, Chengdu 610031, China)

精选范文推荐