VHDL语言学习

上传人:野鹰 文档编号:3191585 上传时间:2017-07-31 格式:DOC 页数:25 大小:2.21MB
返回 下载 相关 举报
VHDL语言学习_第1页
第1页 / 共25页
VHDL语言学习_第2页
第2页 / 共25页
VHDL语言学习_第3页
第3页 / 共25页
VHDL语言学习_第4页
第4页 / 共25页
VHDL语言学习_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《VHDL语言学习》由会员分享,可在线阅读,更多相关《VHDL语言学习(25页珍藏版)》请在金锄头文库上搜索。

1、18第二章 VHDL 语言简介21 VHDL 语言的优点和设计特点211 VHDL 语言的优点传统的硬件电路设计方法是采用自下而上的设计方法,即根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图;然后根据技术规格书和系统控制流图,对系统的功能进行细化,合理地划分功能模块,并画出系统的功能框图;接着就进行各功能模块的细化和电路设计;各功能模块电路设计、调试完成后,将各功能模块的硬件电路连接起来再进行系统的调试,最后完成整个系统的硬件设计。采用传统方法设计数字系统,特别是当电路系统非常庞大时,设计者必须具备较好的设计经验,而且繁杂多样的原理图的阅读和修改也给设计者带来诸多的不便。为了提高

2、开发的效率,增加已有开发成果的可继承性以及缩短开发周期,各 ASIC 研制和生产厂家相继开发了具有自己特色的电路硬件描述语言(Hardware Description Language,简称 HDL) 。但这些硬件描述语言差异很大,各自只能在自己的特定设计环境中使用,这给设计者之间的相互交流带来了极大的困难。因此,开发一种强大的、标准化的硬件描述语言作为可相互交流的设计环境已势在必行。于是,美国于 1981 年提出了一种新的、标准化的 HDL,称之为 VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,

3、简称 VHDL。这是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。设计者可以利用这种语言来描述自己的设计思想,然后利用电子设计自动化工具进行仿真,再自动综合到门级电路,最后用PLD 实现其功能。综合起来讲,VHDL 语言具有如下优点:1 覆盖面广,描述能力强,是一个多层次的硬件描述语言。在 VHDL 语言中,设计的原始描述可以非常简练,经过层层加强后,最终可成为直接付诸生产的电路或版图参数描述。2 具有良好的可读性,即容易被计算机接受,也容易被读者理解。3 使用期长,不会因工艺变化而使描述过时。因为 VHDL 的硬件描述与工艺无关,当工艺改变时,只需修改相应程序中的属性参数即可。4

4、支持大规模设计的分解和已有设计的再利用。一个大规模的设计不可能由一个人独立完成,必须由多人共同承担,VHDL 为设计的分解和设计的再利用提供了有力的支持。212 利用 VHDL 语言设计数字系统的特点当电路系统采用 VHDL 语言设计其硬件时,与传统的电路设计方法相比较,具有如下的特点:一采用自上而下的设计方法。即从系统总体要求出发,自上而下地逐步将设计的内容细化,最后完成系统硬件的整体设计。在设计的过程中,对系统自上而下分成三个层次进行设计:第一层次是行为描述。所谓行为描述,实质上就是对整个系统的数学模型的描述。一19般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为

5、描述的仿真来发现设计中存在的问题。在行为描述阶段,并不真正考虑其实际的操作和算法用何种方法来实现,而是考虑系统的结构及其工作的过程是否能到达系统设计的要求。第二层次是 RTL 方式描述。这一层次称为寄存器传输描述(又称数据流描述) 。如前所述,用行为方式描述的系统结构的程序,其抽象程度高,是很难直接映射到具体逻辑元件结构的。要想得到硬件的具体实现,必须将行为方式描述的 VHDL 语言程序改写为RTL 方式描述的 VHDL 语言程序。也就是说,系统采用 RTL 方式描述,才能导出系统的逻辑表达式,才能进行逻辑综合。第三层次是逻辑综合。即利用逻辑综合工具,将 RTL 方式描述的程序转换成用基本逻辑

6、元件表示的文件(门级网络表) 。此时,如果需要,可将逻辑综合的结果以逻辑原理图的方式输出。此后可对综合的结果在门电路级上进行仿真,并检查其时序关系。应用逻辑综合工具产生的门级网络表,将其转换成 PLD 的编程码点,即可利用 PLD实现硬件电路的设计。由自上而下的设计过程可知,从总体行为设计开始到最终的逻辑综合,每一步都要进行仿真检查,这样有利于尽早发现设计中存在的问题,从而可以大大缩短系统的设计周期。二系统可大量采用 PLD 芯片。由于目前众多制造 PLD 芯片的厂家,其工具软件均支持 VHDL 语言的编程。所以利用 VHDL 语言设计数字系统时,可以根据硬件电路的设计需要,自行利用 PLD

7、设计自用的 ASIC 芯片,而无须受通用元器件的限制。三采用系统早期仿真。从自上而下的设计过程中可以看到,在系统设计过程中要进行三级仿真,即行为层次仿真、RTL 层次仿真和门级层次仿真。这三级仿真贯穿系统设计的全过程,从而可以在系统设计的早期发现设计中存在的问题,大大缩短系统设计的周期,节约大量的人力和物力。四降低了硬件电路设计难度。在传统的设计方法中,往往要求设计者在设计电路之前写出该电路的逻辑表达式或真值表(或时序电路的状态表) 。这一工作是相当困难和繁杂的,特别是当系统比较复杂时更是如此。而利用 VHDL 语言设计硬件电路时,就可以使设计者免除编写逻辑表达式或真值表之苦,从而大大降低了设

8、计的难度,也缩短了设计的周期。五主要设计文件是用 VHDL 语言编写的源程序。与传统的电路原理图相比,使用 VHDL 源程序有许多好处:其一是资料量小,便于保存。其二是可继承性好。当设计其他硬件电路时,可使用文件中的某些库、进程和过程等描述某些局部硬件电路的程序。其三是阅读方便。阅读程序比阅读电路原理图要更容易一些,阅读者很容易在程序中看出某一电路的工做原理和逻辑关系。而要从电路原理图中推知其工作原理则需要较多的硬件知识和经验。22 VHDL 设计概览本节仅讲述几个 VHDL 的实例,通过比较 PLD 的 VHDL 设计方法与传统的电路设计20方法,使读者从总体上初步理解 VHDL。例 2-1

9、 用 VHDL 语言设计二选一数据选择器。二选一数据选择器的器件图如下:图 2-1 二选一数据选择器器件图二选一数据选择器的 VHDL 程序如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 ISPORT( A,B : IN STD_LOGIC;S : IN STD_LOGIC;Y : OUT STD_LOGIC);END mux21;ARCHITECTURE one OF 21mux ISBEGINY 大于= 大于等于+ 加低关 减32& 连接+ 正 负* 乘/ 除MOD 求模REM 取余* * 指数ABS 取绝对值高系运算符N

10、OT 取反通常,在一个表达式中有两个以上的算符时,需要使用括号将这些操作分组。如果一串操作的算符相同,且是 AND、OR、XOR 这三个算符中的一种,则不需要使用括号,如果一串操作中的算符不同或有除这三种算符之外的算符,则必须使用括号。如:a AND b AND c AND d(a OR b) NAND c关系运算符=、/=、=的两边类型必须相同,因为只有相同的数据类型才能比较,其比较的结果为 BOOLEAN 型。正(+)负(-)号和加减号的意义与一般算术运算相同。连接运算符用于一维数组,“&”符号右边的内容连接之后形成一个新的数组,也可以在数组后面连接一个新的元素,或将两个单元素连接形成数组

11、。连接操作常用于字符串。乘除运算符用于整形、浮点数与物理类型。取模、取余只能用于整数类型。取绝对值运算用于任何数值类型。乘方运算的左边可以是整数或浮点数,但右边必须为整数,且只有在左边为浮点时,其右边才可以为负数。244 VHDL 语言的主要描述语句在用 VHDL 语言描述系统的硬件行为时,按语句执行的顺序可分为顺序语句和并行语句。顺序语句主要用来实现模型的算法部分;而并行语句则基本上用来表示黑盒的连接关系。黑盒中所包含的内容可以是算法描述或一些相互连接的黑盒。一顺序语句VHDL 提供了一系列丰富的顺序语句,用来定义进程、过程或函数的行为。所谓“顺序” ,意味着完全按照程序中出现的顺序执行各条

12、语句,而且还意味着在结构层次中前面语句的执行结果可能直接影响后面语句的结果。顺序语句包括: WAIT 语句 变量赋值语句 信号赋值语句 IF 语句 CASE 语句 LOOP 语句33 NEXT 语句 EXIT 语句 RETURN 语句 NULL 语句 过程调用语句 断言语句 REPORT 语句下面逐个介绍其中常用的一些语句:1. 等待(WAIT)语句进程在运行中总是处于两种状态之一:执行或挂起。当进程执行到 WAIT 语句时,就将被挂起来,并设置好再执行的条件。WAIT 语句可以设置四种不同的条件:无限等待、时间到、条件满足以及敏感信号量变化。这几类条件可以混用。语句格式如下:(1)WAIT;

13、 (2)WAIT ON 信号 ; (3)WAIT UNTIL 条件表达式 ;(4)WAIT FOR 时间表达式; 第 1 种格式为无限等待,通常不用;第 2 种当指定的信号发生变化时,进程结束挂起状态,继续执行;第 3 种当条件表达式的值为 TRUE 时,进程才被启动;第 4 种当等待的时间到时,进程结束挂起状态。断言(ASSERT )语句ASSERT 语句主要用于程序仿真、调试中的人 -机对话,它可以给出一串文字作为警告和错误信息。ASSERT 语句的格式如下:ASSERT条件 REPORT 输出信息 SEVERITY 级别当执行 ASSERT 语句时,会对条件进行判断。如果条件为“真” ,

14、则执行下一条语句;若条件为“假” ,则输出错误信息和错误严重程度的级别。3信号赋值语句信号赋值语句的格式如下:信号量 zzzz= 9) THENcount x,c =z,b =y); 名称映射u3:and2 PORT MAP(x, y,c =z ) 混合形式VHDL 语言是一门比较复杂的硬件设计语言,除了本章所述的有关内容外,它还包含许多别的东西,鉴于篇幅有限,在此不再一一罗列,有兴趣者可自行参考有关 VHDL 语言方面的书籍和资料。习题:1. 判断下面的操作是否正确,若不正确,请修正:(1) op1 和 op2 的数据类型是 BIT,result 是整数,做 VHDL 程序加法result=

15、op1+op2;(2) 模块 1 的输出 a 是无符号数,实体 2 的输入 b 是实数,能否将两实体如下图相连?2. 端口 BUFFER 和 INOUT 有何不同?3. 一个 VHDL 设计程序是否必须有一个结构体?结构体的目的是什么?一个设计可以有多个结构体吗?4. 用 VHDL 语言写出下面符号的实体(ENTITY)描述。其中符号的左边是输入端,右边是输出端:实体1实体241(1) (2)5. 下面是一个简单的 VHDL 描述,请画出其实体(ENTITY )所对应的原理图符号和构造体(ARCHITECTURE)所对应的电路原理图:ENTITY nand ISPORT( a:IN STD_LOGIC;b:IN STD_LOGIC;c:IN STD_LOGIC;q1:OUT STD_LOGIC;q2:OUT STD_LOGIC) ;END nand;ARCHITECTURE one OF nand ISBEGINq1 = NOT(a AND b) ;q2 = NOT(c AND b) ;END one;6由下面的电路原理图,写出相应的 VHDL 设计程序(内部信号名由自己定义) 。7 分析下面的 VHDL 程序,说明电路功能,并绘出电路原理图:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;42EN

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号