[2017年整理]硬件描述语言VHDL

上传人:豆浆 文档编号:918344 上传时间:2017-05-21 格式:DOC 页数:64 大小:275.16KB
返回 下载 相关 举报
[2017年整理]硬件描述语言VHDL_第1页
第1页 / 共64页
[2017年整理]硬件描述语言VHDL_第2页
第2页 / 共64页
[2017年整理]硬件描述语言VHDL_第3页
第3页 / 共64页
[2017年整理]硬件描述语言VHDL_第4页
第4页 / 共64页
[2017年整理]硬件描述语言VHDL_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《[2017年整理]硬件描述语言VHDL》由会员分享,可在线阅读,更多相关《[2017年整理]硬件描述语言VHDL(64页珍藏版)》请在金锄头文库上搜索。

1、太原理工大学 夏路易0第 1 章 硬件描述语言 VHDL数字系统设计分为硬件设计和软件设计, 但是随着计算机技术、超大规模集成电路(CPLD、FPGA)的发展和硬件描述语言(HDL, Hardware Description Language)的出现,软、硬件设计之间的界限被打破,数字系统的硬件设计可以完全用软件来实现,只要掌握了 HDL 语言就可以设计出各种各样的数字逻辑电路。1.1 老的硬件设计方法老的硬件设计方法有如下几个特征:(1)采用自下而上的设计方法使用该方法进行硬件设计是从选择具体元器件开始,并用这些元器件进行逻辑电路设计,从而完成系统的硬件设计,然后再将各功能模块连接起来,完成

2、整个系统的硬件设计,(2)采用通用逻辑元器件通常采用 74 系列和 CMOS4000 系列的产品进行设计(3)在系统硬件设计的后期进行调试和仿真太原理工大学 夏路易1只有在部分或全部硬件电路连接完毕,才可以进行电路调试,一旦考虑不周到,系统设计存在较大缺陷,则要重新设计,使设计周期延长。(4)设计结果是一张电路图当设计调试完毕后,形成电原理图,该图包括元器件型号和信号之间的互连关系等等。老的硬件设计方法已经使用了几十年,是广大电子工程师熟悉和掌握的一种方法,但是现在这种方法老了,不仅方法老了,就连使用的元器件也老了。1.2 使用 HTL 的硬件设计方法所谓硬件描述语言,就是利用一种人和计算机都

3、能识别的语言来描述硬件电路的功能,信号连接关系及定时关系,它可以比电原理图更能表示硬件电路的特性。该方法有如下特征:(1)支持自顶向下的设计方法所谓自顶向下的设计方法就是从系统的总体要求出发,自顶向下分三个层次对系统硬件进行设计。第一个层次是行为描述,所谓行为描述,实际就是对整个系统的数学模型的描述,在行为描述阶段,并不真正考虑其实际操作和算法怎么实现,而是考虑系统的结构和工作过程是否能达到系统设计规格书的要求。第二个层次是数据流描述,又称为寄存器描述或 RTL 方式描述,该描述比行为描述更注重硬件的具体实现,通过该描述可以导出系统的逻辑表达式,为逻辑综合作准备,当然进行逻辑综合和逻辑综合工具

4、的能力有关,当然设计人员还必须了解逻辑综合工具的说明和规定,第三个层次为逻辑综合。该层次把 RTL 描述的程序转换成基本逻辑元件表示的文件,该文件就象老的设计方法中的电原理图。(2)采用大量的 ASIC 芯片(3)早期仿真以确定系统的可行性(4)使设计更容易只需写出系统的 HDL 源程序文件,其它由计算机去做(5)全部设计文件就是 HDL 源程序文件1.3 VHTL 硬件设计语言当前 ASIC 制造商都自己开发了 HDL 语言,但是都不通用,只有美国国防部开发的VHDL 语言成为了 IEEE. STD_1076 标准,并在全世界得到了承认。该语言集成了各种 HDL 语言的优点,使数字系统设计更

5、加简单和容易。VHDL 语言是一个规模庞大的语言,在使用它之前完全学会它是很难的,本书介绍的只是 VHDL 语言的一部太原理工大学 夏路易2分。 1.4 VHDL 语言的基本结构VHDL 语言通常包含实体(Entity),构造体(Architecture),配置(Configuration),包集合(Package),和库(Library)五部分.其中实体用于描述所设计的系统的外部接口信号;构造体用于描述系统内部的结构和行为;建立输入和输出之间的关系;配置语句安装具体元件到实体结构体对,可以被看作是设计的零件清单;包集合存放各个设计模块共享的数据类型、常数和子程序等;库是专门存放预编译程序包的

6、地方。如下详细介绍。1.4.1 基本设计单元VHDL 的基本设计单元就是实体,无论数字电路复杂还是简单,都是由实体和构造体组成。(1)实体说明实体说明有如下结构:ENTITY 实体名 IS端口说明END 实体名;(VHDL 语言中不分大小写字母)其中:端口说明是对设计实体中输入和输出借口进行描述,格式如下:PORT(端口名(,端口名):方向 数据类型名;:端口名(,端口名):方向 数据类型名);端口名是赋予每个系统引脚的名称,一般用几个英文字母组成。端口方向是定义引脚是输入还是输出,见下表:方向 说明IN 输入到实体OUT 从实体输出输出INOUT 双向BUFFER 输出(但可以反馈到实体内部

7、)LINKAGE 不指定方向常用的端口数据类型有两种:BIT 和 BIT_VECTOR,当端口被说明为 BIT 时,只能取值“1”或“0” ,当端口被说明为 BIT_VECTOR 时,它可能是一组二进制数。例:太原理工大学 夏路易3PORT(n0, n1, select: IN BIT;q: OUT BIT;bus: OUT BIT_VECTOR(7 DOWNTO 0);本例中,n0, n1, select 是输入引脚,属于 BIT 型,q 是输出引脚,BIT 型,bus 是一组 8 位二进制总线,属于 BIT_VECTOR, 例:LIBRARY IEEE;USE IEEE.STD_LOGIC

8、.1164.ALL;ENTITY mm ISPORT(n0,n1,select: IN STD_LOGIC;Q : OUT STD_LOGIC;Bus : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END mm;在此例中端口数据类型取自 IEEE 标准库(该库中有数据类型和函数的说明) ,其中STD_LOGIC 取值为“0” , “1”, “X”和“Z”。因为使用了库所以在实体说明前要增加库说明语句。(2) 构造体构造体是实体的一个重要部分,每一个实体都有一个或一个以上的构造体。1) 一般说明构造体格式如下:ARCHITECTURE 构造体名 OF 实体名 IS定义语句

9、 内部信号,常数,数据类型,函数等的定义BEGIN并行处理语句END 构造体名;例:ENTITY nax ISPORT(a0,a1 : IN BIT;Sel : IN BIT;Sh : OUT BIT);END nax;ARCHITECTURE dataflow OF nax ISBEGINsh RETURN 1;WHEN 1 = RETURN 0; WHEN Z = RETURN Z;END CASE;END invert;END logic该包使用例:USE logic.three_level_logic, logic.invert; /使用数据类型和函数两个项目ENTITY invert

10、er ISPORT(x: IN three_level_logic ;y: OUT three_level_logic);END inverter;ARCHITECTURE inverter_body OF inverter IS太原理工大学 夏路易10BEGINkk: PROCESSBEGINYset, b=qb, c=q)U2:nand2 PORT MAP(a=reset, b=q, c=qb)太原理工大学 夏路易11END rsff1;ARCHITECTURE rsff2 OF rs ISBEGINq 大于= 大于等于+ 加- 减加、减、并置运算符& 并置+ 正正负运算符- 负* 乘/

11、除MOD 取模乘除法运算符REM 取余* 指数ABS 取绝对值低 NOT 取反(1)逻辑运算符要求运算符左右的数据类型必须相同,例:xn1.b=n2,c=m);1.4.6 VHDL 语言的主要描述语句(1) 顺序描述语句太原理工大学 夏路易21顺序描述语句只能用在进程和子程序中,它和其他高级语言一样,其语句是按照语句的出现的顺序加以执行的.如下分别介绍有关的顺序描述语句.1. WAIT 语句进程在执行过程中总是处于两种状态:执行或挂起,进程的状态变化受等待语句的控制,当进程执行到等待语句,就被挂起,并等待再次执行进程.等待语句的格式:WAIT 无限等待WAIT ON 敏感信号变化格式:WAIT

12、 ON 信号,信号例: PROCESS(a,b)BEGINy顺序处理语句ENDCASE;其中 WHEN 的条件表达式可以有 4 种形式:WHEN 值=顺序处理语句WHEN 值|值|值|值=顺序处理语句WHEN 值 TO 值=顺序处理语句WHEN OTHERS=顺序处理语句例:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux43 ISPORT(a,b,i0,i1,i2,i3 :IN STD_LOGIC;q : OUT STD_LOGIC);END mux43;ARCHITECTURE mux4_behave OF mux43 ISSIGNAL

13、 sel: INTEGER RANGE 0 TO 3;BEGINnn: PROCESS(a,b,i0,i1,i2,i3)BEGINselqqqqyyyyyyyyydata, q = q_out, clk = clock, clrn = clearn, prn = presetn);-TTL74151mux : a_74151b PORT MAP (c, b, a, d, gn, y, wn);END a;14)选择信号如果 sel 信号为”1”时,选择信号 input1,否则选择信号 input0.ENTITY condsig ISPORT(input0, input1, sel : IN B

14、IT;output : OUT BIT);END condsig;ARCHITECTURE maxpld OF condsig ISBEGINoutput IF (updown = 0) THENnext_state IF (updown = 0) THENnext_state IF (updown = 0) THENnext_state IF (updown = 0) THENnext_state state IF input = 1 THENstate = s0;太原理工大学 夏路易63ELSEstate = s1;END IF;END CASE;END IF;END PROCESS;output = 1 WHEN state = s1 ELSE 0;END a;

展开阅读全文
相关资源
相关搜索

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

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