vhdl基本语法(简略共34页)

上传人:枫** 文档编号:432895184 上传时间:2023-01-22 格式:DOCX 页数:49 大小:165.53KB
返回 下载 相关 举报
vhdl基本语法(简略共34页)_第1页
第1页 / 共49页
vhdl基本语法(简略共34页)_第2页
第2页 / 共49页
vhdl基本语法(简略共34页)_第3页
第3页 / 共49页
vhdl基本语法(简略共34页)_第4页
第4页 / 共49页
vhdl基本语法(简略共34页)_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《vhdl基本语法(简略共34页)》由会员分享,可在线阅读,更多相关《vhdl基本语法(简略共34页)(49页珍藏版)》请在金锄头文库上搜索。

1、VHDL硬件描述语言1.1 VHDL概述1.1.1 VHDL的特点VHDL语言作为一种标准的硬件描述语言,具有结构严谨、描述能力强的特点,由于VHDL语言来源于C、 Fortran 等计算机高级语言,在VHDL 语言中保留了部分高级语言的原语句,如if 语句、子程序和函数等,便于阅读和应用。具体特点如下:1. 支持从系统级到门级电路的描述,既支持自底向上(bottom-up )的设计也支持从顶向下( top-down )的设计,同时也支持结构、行为和数据流三种形式的混合描述。2. VHDL 的设计单元的 基本组成部分是实体( entity )和结构体( architecture),实体包含设计

2、系统单元的输入和输出端口信息,结构体描述设计单元的组成和行为,便于各模块之间数据传送。 利用单元( componet)、块( block )、过程( procure)和函数( function )等语句,用结构化层次化的描述方法,使复杂电路的设计更加简便。采用包的概念,便于标准设计文档资料的保存和广泛使用。3. VHDL 语言有常数、信号和变量三种数据对象,每一个数据对象都要指定数据类型, VHDL的数据类型丰富,有数值数据类型和逻辑数据类型,有位型和位向量型。既支持预定义的数据类型,又支持自定义的数据类型,其定义的数据类型具有明确的物理意义,VHDL是强类型语言。4. 数字系统有组合电路和时

3、序电路,时序电路又分为同步和异步,电路的动作行为有并行和串行动作, VHDL 语言常用语句分为并行语句和顺序语句,完全能够描述复杂的电路结构和行为状态。1.1.2 VHDL语言的基本结构VHDL语言是数字电路的硬件描述语言,在语句结构上吸取了Fortran 和 C 等计算机高级语言的语句,如IF 语句、循环语句、函数和子程序等,只要具备高级语言的编程技能和数字逻辑电路的设计基础,就可以在较短的时间内学会VHDL 语言。但是VHDL毕竟是一种描述数字电路的工业标准语言,该种语言的标识符号、数据类型、数据对象以及描述各种电路的语句形式和程序结构等方面具有特殊的规定,如果一开始就介绍它的语法规定,会

4、使初学者感到枯燥无味,不得要领。较好的办法是选取几个具有代表性的VHDL 程序实例,先介绍整体的程序结构,再逐步介绍程序中的语法概念。一个 VHDL 语言的设计程序描述的是一个电路单元,这个电路单元可以是一个门电路,或者是一个计数器,也可以是一个CPU。一般情况下,一个完整的VHDL 语言程序至少要包含程序包、实体和结构体三个部分。实体给出电路单元的外部输入输出接口信号和引脚信息,结构体给出了电路单元的内部结构和信号的行为特点, 程序包定义在设计结构体和实体中将用到的常数、数据类型、子程序和设计好的电路单元等。一位全加器的逻辑表达式是:S=A B CiCo=AB+ACi+BCi全加器的 VHD

5、L 程序的文件名称是 fulladder.VHD ,其中 VHD 是 VHDL 程序的文件扩展名,程序如下:LIBRARY IEEE;-IEEE 标准库USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fulladder IS- fulladder 是实体名称PORT(A, B, Ci : IN STD_LOGIC; -定义输入 /输出信号Co, S : OUT STD_LOGIC);END fulladder;是结构体名BEGINS = A XOR B

6、 XOR Ci;Co = (A AND B) OR (A AND Ci) OR (B AND Ci);END addstr;从这个例子中可以看出,一段完整的VHDL代码主要由以下几部分组成:第一部分是程序包,程序包是用VHDL 言 写的共享文件,定 在 构体和 体中将用到的常数、数据 型、子程序和 好的 路 元等,放在文件目 名称 IEEE 的程序包 中。第二部分是程序的 体,定 路 元的 入/ 出引脚信号。程序的 体名称fulladder是任意取的,但是必 与VHDL 程序的文件名称相同。 体的 符是ENTITY , 体以ENTITY 开 ,以 END 束。 其中,定 A 、B 、 Ci 是

7、 入信号引脚,定 Co 和 S 是 出信号引脚。第三部分是程序的 构体,具体描述 路的内部 构和 功能。 构体有三种描述方式,分 是行 ( BEHA VIOR )描述、数据流( DATAFLOW )描述方式和 构 (STRUCTURE)描述方式, 其中数据流( DA TAFLOW )描述方式又称 寄存器(RTL )描述方式,例中 构体的描述方式属于数据流描述方式。 构体以 符ARCHITECTURE开 ,以 END 结尾。 构体的名称 addstr 是任意取的。小提示:VHDL 每条 句是以分号“; ”作 束符的,并且VHDL 空格是不敏感的,所以符合之 空格的数目是可以自己 定的。可以按自己

8、的 任意添加,增 代 可 性。1.1.3 VHDL 言的 体( ENTITY ) 明 句 体是 VHDL程序 中最基本的 成部分,在 体中定 了 芯片中所需要的 入 / 出信号引脚。 端口信号名称表示芯片的 入 / 出信号的引脚名, 种端口信号通常被称 外部信号,信号的 入 / 出状 被称 端口模式, 在 体中 定 信号的数据 型。 体 明 句的格式 :ENTITY 体名称 ISGENERIC (常数名称1: 型 := 缺省 ;常数名称2: 型 := 缺省 ;常数名称 N : 型 := 缺省 ;);PORT(端口信号名称1: 入 / 出状 数据 型;端口信号名称2: 入 / 出状 数据 型;端

9、口信号名称N: 入 / 出状 数据 型);END 体名称;小提示:VHDL 言具有 87 准与 93 准两种格式,以上 VHDL 的 87 准, 于 93 准 要使用 END ENTITY 体名称; 束 体。 注意 了保 代 的可 合性与通用性,最好采用 87 准的 VHDL 格式,有些 EDA 工具不一定支持 93 准的 VHDL 言格式。( Quartus II 支持 VHDL93 、 87 准) 属 GENERIC 常用来定 体端口大小,数据 度,元件例化数目等。一般在 的 中不常用。例 1-1-2 一个同步十六 制加法 数器, 有 数控制、异步清零、和 位 出等功能。 路有三个 入端和

10、五个 出端,分 是 脉冲 入端CLK , 数器状 控制端 EN ,异步清零控制端Rd,四位 数 出端 Q0, Q1, Q2, Q3和一个 位 出端 Co 。当 数器 出0000 1110 , Co=0,只有当 数器 出 1111 , Co=1。 的 体部分如下:ENTITY cntm16 ISPORT(EN : IN STD_LOGIC;Rd : IN STD_LOGIC;CLK : IN STD_LOGIC;Co : OUT STD_LOGIC;Q : BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END cntm16;1. 体名称表示所 路的 路名称,必 与VHD

11、L 文件名相同, 体名称是“ cntm16 ”,所存的 VHDL文件名必 是 “ cntm16.VHD ”。2. 端口信号名称表示芯片的 入/ 出信号的引脚名, 种端口信号通常被称 外部信号,端口信号名称可以表示一个信号,也可以表示一 信号(BUS ),由数据 型定 ,如EN , Rd, CLK , Co 分 表示 数允 信号,异步清零信号, 入信号和 位 出信号, Q 是一 出信号,用来表示四位同步二 制 数器的四位 数 出信号。3. 端口信号输入 /输出状态有以下几种状态: IN 信号进入电路单元。OUT 信号从电路单元输出。INOUT 信号是双向的,既可以进入电路单元也可以从电路单元输出

12、。BUFFER信号从电路单元输出,同时在电路单元内部可以使用该输出信号。小提示:OUT 与 BUFFER 信号的区别就在于信号是否往内部有反馈,将输出端口定义为BUFFER 型,可以省去一个用于中间运算的一个临时信号,但是并不推荐这么做。4. 端口数据类型( TYPE )定义端口信号的数据类型,在 VHDL 中,常用的端口信号数据类型如下:( 1) 位( BIT )型:表示一位信号的值,可以取值 0和 1,放在单引号里面表示,如 X = 1, Y = 0。( 2) 位向量( BIT_VECTOR )型:表示一组位型信号值,在使用时必须标明位向量的宽度(个数)和位向量的排列顺序,例如: Q :

13、OUT BIT_VECTOR(3 downto 0),表示Q3, Q2, Q1, Q0 四个位型信号。位向量的信号值放在双引号里面表示,例如 Q =“ 0000”;( 3) 标准逻辑位( STD_LOGIC )型: IEEE 标准的逻辑类型, 它是 BIT 型数据类型的扩展,可以取值 U, X , 0, 1,Z ,W , L , H, -等。( 4) 标准逻辑位向量( STD_LOGIC_VECTOR )型: IEEE 标准的逻辑向量,表示一组标准逻辑位型信号值。VHDL是与类型高度相关的语言,不允许将一种数据类型的信号赋予另一种数据类型的信号。除了上述介绍的数据类型外,还有其他多种数据类型用于定义内部信号和变量,请参见 1-2 节。小提示:相同类型(模型相同,数据类型相同)的端口可以写在同一行,如:

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

当前位置:首页 > 外语文库 > 英语学习

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