VHDL__硬件描述语言ztt

上传人:飞*** 文档编号:48572554 上传时间:2018-07-17 格式:PPT 页数:113 大小:545KB
返回 下载 相关 举报
VHDL__硬件描述语言ztt_第1页
第1页 / 共113页
VHDL__硬件描述语言ztt_第2页
第2页 / 共113页
VHDL__硬件描述语言ztt_第3页
第3页 / 共113页
VHDL__硬件描述语言ztt_第4页
第4页 / 共113页
VHDL__硬件描述语言ztt_第5页
第5页 / 共113页
点击查看更多>>
资源描述

《VHDL__硬件描述语言ztt》由会员分享,可在线阅读,更多相关《VHDL__硬件描述语言ztt(113页珍藏版)》请在金锄头文库上搜索。

1、上一页 下一页3.6 VHDL 硬件描述语言参考书籍 VHDL硬件描述语言与数字逻辑电路设计侯伯亨 顾新编著 西安电子科技大学出版社VHDL语言100例详解 清华大学出版社VHDL程序设计曾繁泰,陈美金著 清华大学出版社上一页 下一页上一页 下一页VHDL的概述VHDL主要用于描述数字系统的结构、 行为、功能和接口。除了含有许多硬件特 征的语句外,VHDL的语言形式和描述风格 与句法十分类似于一般的计算机高级语言 。VHDL的主要优点是:上一页 下一页VHDL的特点n 与其它硬件描述语言相比,VHDL具有更强的行为描 述能力。n VHDL丰富的仿真语句和库函数,使得在任何大系统 的设计早期就能

2、查验设计系统的功能可行性,随时可对 设计进行仿真模拟。 n VHDL的移植性很强。因为它是一种标准语言,所以 它的设计描述可以被不同的工具所支持。 n VHDL本身的生命周期长。因为VHDL的硬件描述与工 艺技术无关,不会因工艺变化而使描述过时。 上一页 下一页361 VHDL的模型结构 n一个完整的VHDL语言程序通常包含实体( Entity)、结构体(Architecture)、配置 (Configuration)、包集合(Package)和 库(Library)5个部分,如图333所示。 上一页 下一页VHDL文件库,程序包实体 结构体配置说明语句 功能描述语句实体用于描述所设计的 系统

3、的外部接口信号结构体用于描述系统内 部的结构和行为配置用于从库中选 取所需单元来组成 系统包集合存放各设计模块 能共享的数据类型、常 数、程序等库用于存放已编译的实体 、构造体、包集合、配置 。上一页 下一页1.实体(ENTITY) 实体是设计的基本模块和设计的初级单 元,在分层次设计中,顶层有顶级实体 ,含在顶级实体中的较低层次的描述为 低级实体。依靠配置把顶层实体和底层 实体连接起来。 上一页 下一页实体的一般格式ENTITY 实体名 IS GENERIC (类属表);PORT (端口表); END 根据实体的一般格式,可以看到实体中包 含有类属信息(GENERIC)和端口信息 (PORT

4、)。 上一页 下一页端口信息和类属信息n端口信息表示该设计单元与其它设计单 元相连接的端口名、端口模式和信号取 值的类型; n类属信息表示该设计单元的默认类属参 数值,例如规定端口的大小、实体中子 元件的数目、实体的定时特性等参数。 下面举几个简单的实体设计例子加以说 明。 上一页 下一页实体设计例题n例330如图334所示半加器的VHDL描述, 只有端口说明的实体描述。 ENTITY half_adder IS PORT(a,b:IN Bit; s,c:OUT Bit); END half_adder;半加器a bs c上一页 下一页说明实体类似于原理图中的模块符(Symbol),它 并不描

5、述模块的具体功能。实体的每一个通信 点(即I/O信号)被称为端口(PORT),它与 部件的输入/输出或器件的引脚相关联。在使 用中,每个端口必须被定义为信号和属性:信号名端口信号名在实体中必须是唯一的属 性包括模式(MODE)和类型(TYPE) 。模式是用来说明数据传输通过该端口的方向 。类型是端口所采用的数据类型上一页 下一页端口的模式v输入(IN):输入模式仅允许数据流入端口。 模式为输入的端口驱动源由外部向实体内进行 。它主要用于时钟输入、控制输入(如复位和 使能)和单向的数据输入 。v输出(OUT ):输出模式仅允许数据流从内部 流向实体输出端口。传输模式为输出,端口驱 动是从实体内部

6、向外进行。输出模式不能用于 反馈,因为这样的端口不能看作在实体内可读 。它主要用于计数输出 上一页 下一页端口的模式v缓冲(Buffer ):缓冲用于有内部反馈需求时 ,需要说明该端口为缓冲模式,或者需要指定一 个在构造体中的独立信号来使用(一个内部的信 号)。被定义为缓冲模式的端口和被定义为输出 模式的端口相类似,只是缓冲模式允许用作内部 反馈用。缓冲模式不允许用作双向端口使用 v双向(Inout ):对于双向信号,设计时必须定 义端口为双向模式,以允许数据可以流入或流出 该实体。换言之,信号驱动可以在实体内向外, 也可以从实体外向内。双向模式也允许用于内部 反馈 上一页 下一页端口的类型

7、布尔型(Boolean):布尔类型可以取值 “TRUE”(真)或“FALSE”(假) 。 位(Bit ):位可以取值“0”或“1” 。位矢量(Bit_Vector ):位矢量由IEEE 库中的标准包Numeric_Bit支持。该程序 包中定义的基本元素类型为Bit类型,而 不是Std_logic类型 。上一页 下一页端口的类型整数(Integer):整数可以用作循环的指针或 常数,通常不用于I/O信号 。 非标准逻辑(Std_ulogic)和标准逻辑( Std_logic):非标准逻辑和标准逻辑由 IEEE.std_logic_1164支持。程序包预先在 IEEE库中编译,该程序包中定义的数据

8、类型包 括Std_ulogic,Std_ulogic_vector, Std_logic,Std_logic_vector。包中还定义 了一些转换函数。访问IEEE.std_logic_1164 程序包中的项目需要由LIBRARY子句和USE子句 上一页 下一页实体的表述方法例331 对335所示3位全加器的实体描述。3位全加器a bciS iCi+1图335 3位全加器方框图上一页 下一页实体的表述方法 例331 如图335所示3位全加器的实体描述。 Library ieee; Use ieee.std_logic_1164.all; Entity adder3 is port(a,b:in

9、 std_logic_vector(2 downto 0); Ci:in std_logic; S i:out std_logic_vector(2 downto 0); Ci+1:out std_logic);End adder3; 上一页 下一页2.结构体(Architecture ) 所有能被仿真的实体都有一个结构体描 述,结构体描述主要用来描述实体的内 部结构,即描述一个实体的功能。VHDL 允许采用3种描述格式,即行为描述、数 据流和结构描述方式,或者是这些格式 的任意组合,并允许以不同层次的抽象 来描述设计,从算法运用到基本门级描 述。 上一页 下一页结构体的一般格式 ARCHIT

10、ECTURE (结构体名) OF (实体名) IS常量定义信号定义类型定义元件定义子程序定义BEGIN并行信号赋值语句 进程语句生成语句元件例化语句 END 结构体名;上一页 下一页(1)行为描述(Behavioral descriptions) 所谓行为描述是描述该设计单元的功能, 即该硬件能做什么,主要使用函数、过 程和进程语句,以算法形式描述数据的 变换和传送。上一页 下一页例331 一个一位等值比较器的 一种行为描述方式 解 library ieee; use ieee.std_logic_1164.all; entity eqcomp is port(a,b:in std_logic

11、;equals:out std_logic); end;上一页 下一页architecture behavioral of eqcomp is begin comp:process(a,b)beginif a=b then equals(大于)n=(大于等于)n其中 例如:a then end if;v If then else end if;vIf then elsif then elseend if;上一页 下一页以上if语句的3种形式中的任一种只 要规定的条件判断为True,关键词then 后面的顺序语句则执行;如果条件判断 为False,则else后面的顺序语句则执行 . 如: If

12、(xISWHEN WHEN WHEN WHEN END CASE;上一页 下一页CASE语句的说明v根据以上CASE语句的形式可知,如果表达式的 值落在某个分支所给出的离散范围内,那么该 分支的语句就要被执行。在CASE语句中的选择 必须是唯一的。vCASE语句中分支个数没有限制,各分支的次序 可以任意排列。但关键字OTHERS的分支例外, 一个CASE语句最多只能有一个OTHERS分支,而 且该分支必须放在CASE语句的最后一个分支的 位置上 上一页 下一页architecture sequent of mux4 is beginprocess(i0,i1,i2,i3,s)begincase

13、 s is WHEN“00“ z z z zreturn 0;when”01”=return 0;when”10”=return 0;when”11”=return 0;End case;上一页 下一页进程语句VHDL的描述语句分并行语句和顺序语句两种。 并行语句主要用来描述模块之间的连接关系, 顺序语句一般用来实现模型的算法部分。并行 语句是并行的关系,它不按书写的先后次序顺 序执行,而是当某个信号变化时,受此信号触 发的所有语句同时执行。顺序语句则是严格按 书写的先后次序顺序执行的。只有进程和子程 序内部才是顺序语句,其它语句都是并行语句 。进程与进程之间也是并行的关系 。上一页 下一页进

14、程语句的基本格式 : -可选项process -对行为的描述- 说明局部变量、信号、类型等begin-一段顺序程序,它定义该进程的行为end process; -描述进程的结束上一页 下一页说明从基本格式可以看出,进程语句包含 4部分:进程标号、进程、敏感表和结束 语句。其中值得说明的是:敏感表包括 进程的一些符号,当敏感表的某个信号 变化时进程被激活 上一页 下一页二输入与非门的进程描述Library ieee;Use ieee.std_logic_1164.all;Entity nand2 isPort(a,b:in std_logic;c:out std_logic);End nand2

15、;上一页 下一页Architecture behave_nand2 of nand2 isBeginProcess(a,b)variable temp:std_logic;Begintemp:=not (a and b);if (temp=1)then cif datain=1 then stateif datain=0 then stateif datain=1 then stateif datain=0 then statedataoutdataoutdataoutdataoutif datain=1 then stateif datain=0 then stateif datain=1 then stateif datain=0 then state if datain=1 then dataout if datain=0 then dataout if datain=1 then dataout if datain=0 then dataout=“00“;else dataout=“01“;end if;end case;end process; end a;

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

最新文档


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

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