书签 分享 收藏 举报 版权申诉 / 108
上传文档赚钱

类型第三章-VHDL程序结构与要素课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2984428
  • 上传时间:2022-06-19
  • 格式:PPT
  • 页数:108
  • 大小:704.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第三章-VHDL程序结构与要素课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第三 VHDL 程序结构 要素 课件
    资源描述:

    1、第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 第三章第三章 VHDL程序结构与要素程序结构与要素3.1 VHDL程序基本结构3.2 VHDL文字规则3.3 VHDL 基本数据对象与数据类型3.4 VHDL表达式与运算符第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 3.1 VHDL程序基本结构程序基本结构一个一个VHDL程序的基本单元是设计实体程序的基本单元是设计实体,它可以是一个简单的门电路,也可以是一个复杂的数字系统。它既能作为一个电路的功能模块而单独存在和运行,也可以被其它数字系统所调用,从而成为这个系统的一部分。不管其功能复杂程度,不管其功能复杂程度,VH

    2、DL程序的结构基本相同,程序的结构基本相同,一般由库、程序包、实体、结构体及配置语句构成。一般由库、程序包、实体、结构体及配置语句构成。其中实体和结构两部分是必需的,由这二部分即可构实体和结构两部分是必需的,由这二部分即可构成一个简单的成一个简单的VHDL程序。程序。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 为了便于程序的阅读和调试,对VHDL程序设计作如下约定:(1) 语句结构描述中方括号“ ”内的内容为可选内容。(2) 对于VHDL的编译器和综合器来说,程序文字的大小程序文字的大小写是不加区分的写是不加区分的。关键字一般使用大写。(3) 程序中的注释使用双横线“-”。在

    3、VHDL程序的任何一行中,双横线双横线“-”后的文字都不参加编译和综合后的文字都不参加编译和综合。 VHDL程序设计约定第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 2选选1数据选择器的数据选择器的VHDL程序程序2选1多路选择器是典型的组合电路,以此电路的VHD表述与设计说明相关的VHDL结构、语句表述、数据规则、语法特点。a和b分别为两个数据输入的端口名s为通道选择控制信号输入端的端口名y为输出端的端口名 “mux21a”是此器件的名称第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 SY 0a1b D 1 0 D Y n 位地址选择信号 D 2-1 输 据 据

    4、 输 数 数 出 入 n 第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 【例【例3-1】 2选选1多路选择器程序多路选择器程序 LIBRARY IEEE; -IEEE库使用说明语句库使用说明语句USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 IS -实体说明部分实体说明部分PORT(a,b : IN STD_LOGIC;s: IN STD_LOGIC;y: OUT STD_LOGIC);END ENTITY mux21;第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 【例【例3-1】 2选选1多路选择器程序多路选择器程序ARCHI

    5、TECTURE mux21a OF mux21 IS BEGINPROCESS(a,b,s)BEGINIF s=0 THEN y=a; ELSEy3)第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 3端口说明端口说明(PORT) 在电路图上,端口对应于元件符号的外部引脚端口对应于元件符号的外部引脚。端口说明语句是对一个实体界面的说明,也是对端口信号名、数据类型和端口模式的描述。语句的一般格式如下: PORT(端口名端口名,端口名端口名:端口模式:端口模式 数据类型数据类型); 或 PORT(端口名端口名 :端口模式:端口模式 数据类型;数据类型; 端口名端口名 :端口模式:端口模

    6、式 数据类型数据类型 . );第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 端口名为自己定义的端口名称,端口名为自己定义的端口名称,端口模式说明端口模式说明数据通过该端口的流动方向,数据类型说明通过该数据通过该端口的流动方向,数据类型说明通过该端口的数据类型端口的数据类型如 PORT( a,b : IN STD_LOGIC;s: IN STD_LOGIC;y: OUT STD_LOGIC );第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 端口模式端口模式 方向定义含 义IN输入OUT输出(结构体内不能再使用)INOUT双向(可以输入,也可以输出)BUFFER输出

    7、(结构体内可再使用),可以读或写第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 BUFFER与与INOUT的区别在于:的区别在于:INOUT是双向信号,是双向信号,既可以输入,也可以输出,而既可以输入,也可以输出,而BUFFER也是实体的输出信号,也是实体的输出信号,但作输入用时,信号不是由外部驱动,而是从输出反馈得到但作输入用时,信号不是由外部驱动,而是从输出反馈得到,即BUFFER类的信号在输出外部电路的同时,也可以被实体本身的结构体读入,这种类型的信号常用来描述带反馈的逻辑电路,如计数器等。INOUTBUFFERINOUT第第3 3章章 VHDLVHDL程序结构与要素程序结

    8、构与要素 3.1.2 结构体结构体结构体是一个实体的组成部分,是对实体功能的结构体是一个实体的组成部分,是对实体功能的具体描述。具体描述。在电路中,如果实体代表一个器件符号,在电路中,如果实体代表一个器件符号,则结构体描述了这个符号的内部行为。则结构体描述了这个符号的内部行为。结构体主要是描述实体的硬件结构、元件之间的结构体主要是描述实体的硬件结构、元件之间的互连关系、实体所完成的逻辑功能以及数据的传输变互连关系、实体所完成的逻辑功能以及数据的传输变换等方面的内容。具体编写结构体时,可以从其中的换等方面的内容。具体编写结构体时,可以从其中的某一方面来描述,也可综合各个方面来进行描述。某一方面来

    9、描述,也可综合各个方面来进行描述。结构体不能单独存在,它必须有一个界面说明,结构体不能单独存在,它必须有一个界面说明,即一个实体。即一个实体。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 结构体的一般语句格式结构体的一般语句格式 ARCHITECTURE 结构体名结构体名 OF 实体名实体名 IS 说明语句说明语句 BEGIN 功能描述语句功能描述语句 END ARCHITECTURE 结构体名结构体名;其中,实体名必须是所在设计实体的名字,实体名必须是所在设计实体的名字,而而结构体名可以由设计者自己选择,结构体名可以由设计者自己选择,但当一个实体具但当一个实体具有多个结构体时

    10、,结构体的取名不可重复。有多个结构体时,结构体的取名不可重复。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 结构体说明语句结构体中的说明语句是对结构体的功能描述语句结构体中的说明语句是对结构体的功能描述语句中将要用到的信号中将要用到的信号(SIGNAL)、数据类型、数据类型(TYPE)、常、常数数(CONSTANT)、元件、元件(COMPONENT)、函数、函数(FUNCTION)和过程和过程(PROCEDURE)等加以说明的语等加以说明的语句。句。在一个结构体中说明和定义的数据类型、常数、在一个结构体中说明和定义的数据类型、常数、元件、函数和过程只能用于这个结构体中,若希望其

    11、元件、函数和过程只能用于这个结构体中,若希望其能用于其他的实体或结构体中,则需要将其作为程序能用于其他的实体或结构体中,则需要将其作为程序包来处理。包来处理。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 ARCHITECTURE behavioral OF example_dairu IS SIGNAL a, b, c, d : BIT ; SIGNAL temp0, temp1 : STD_LOGIC ;BEGIN . . .END ARCHITECTURE behavioral ;结构体的信号定义和端口说明语句相类似结构体的信号定义和端口说明语句相类似,应有应有信号的名称和

    12、数据类型的说明信号的名称和数据类型的说明,但不需要定义信号但不需要定义信号的模式,因为它是内部信号。的模式,因为它是内部信号。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 功能描述语句功能描述语句功能描述语句位于功能描述语句位于和和之间;具体描述结之间;具体描述结构体的行为及其连接关系。构体的行为及其连接关系。语句结构可以含有五种不同类型的,以并行方语句结构可以含有五种不同类型的,以并行方式工作。而在式工作。而在每一语句结构的内部可能含有并行运每一语句结构的内部可能含有并行运行的逻辑描述语句或顺序运行的逻辑描述语句。行的逻辑描述语句或顺序运行的逻辑描述语句。第第3 3章章 VH

    13、DLVHDL程序结构与要素程序结构与要素 半加器半加器输输 入入输出输出被加数被加数A 加数加数 B和数和数S 进位数进位数C0 00 00 10 11 01 01 11 10 00 01 01 01 01 00 10 1 半加器的真值表中的半加器的真值表中的A和和B分别表示被加数和加数分别表示被加数和加数输入,输入,S为本位和输出,为本位和输出,C为向相邻高位的进位输出。为向相邻高位的进位输出。 BABABASBABABASABC 第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 半加器的完整半加器的完整VHDL描述描述例例3-4 其中其中x、y为加数与被加数,为加数与被加数,s

    14、为和信号,为和信号,c为进位信号为进位信号ENTITY half_adder IS PORT( x,y : IN BIT; s: OUT BIT; c: OUT BIT);END ENTITY half_adder;ARCHITECTURE dataflow OF half_adder IS BEGIN s = x XOR y; c = x AND y;END ARCHITECTURE dataflow;第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 3.1.3 描述风格描述风格在在VHDL程序中,结构体具体描述了设计实体程序中,结构体具体描述了设计实体的行为和逻辑功能,对于相同

    15、的逻辑功能可以有不的行为和逻辑功能,对于相同的逻辑功能可以有不同的描述方式或实现方案。同的描述方式或实现方案。这些不同的描述方式或者说是建模方法,被称这些不同的描述方式或者说是建模方法,被称为描述风格,为描述风格,VHDL中一般有种常用的描述风格:中一般有种常用的描述风格:行为描述、数据流描述、结构描述、混合描述。行为描述、数据流描述、结构描述、混合描述。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 .行为描述行为描述如果程序的结构体只描述了所期望电路的功能或行为,如果程序的结构体只描述了所期望电路的功能或行为,即电路输入、输出间的转换行为,而没有包含任务实现这即电路输入、输出

    16、间的转换行为,而没有包含任务实现这些功能的硬件信息,这种描述风格称为行为描述。些功能的硬件信息,这种描述风格称为行为描述。行为描述是一种高层次的描述方式,设计者只需要关行为描述是一种高层次的描述方式,设计者只需要关注设计实体即功能单元正确的行为描述,无需关心硬件电注设计实体即功能单元正确的行为描述,无需关心硬件电路的结构形式,即编程与硬件无关,类似于高级编程语言路的结构形式,即编程与硬件无关,类似于高级编程语言的编程方式。的编程方式。将将VHDL的行为描述语句转换为门级电路由的行为描述语句转换为门级电路由VHDL开开发工具自动完成,是综合器的任务。不同的综合器对于相发工具自动完成,是综合器的任

    17、务。不同的综合器对于相同的行为描述,有时会综合出的结果有较大的差别。同的行为描述,有时会综合出的结果有较大的差别。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 选数据选择器的行为描述程序选数据选择器的行为描述程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 ISPORT(a,b,s : IN STD_LOGIC; y: OUT STD_LOGIC );END ENTITY mux21;ARCHITECTURE behav OF mux21 IS BEGIN PROCESS(a,b,s) BEGIN IF s=0 TH

    18、EN y=a; ELSE y=b; END IF; END PROCESS;END ARCHITECTURE behav;第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 2. 数据流描述数据流描述数据流描述也称为数据流描述也称为RTL(寄存器传输级)描述(寄存器传输级)描述行为,行为,类似于布尔方程类似于布尔方程,它既表示某种行为,又隐,它既表示某种行为,又隐含结构信息,主要是指非结构化的并行描述语句。含结构信息,主要是指非结构化的并行描述语句。这种描述方式主要是反映数据经过一定的逻辑这种描述方式主要是反映数据经过一定的逻辑运算后在输入、输出间的传递,可以清楚地看到数运算后在输入

    19、、输出间的传递,可以清楚地看到数据的流动方向、路径和结果。据的流动方向、路径和结果。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 2选选1多路选择器数据流描述程序多路选择器数据流描述程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 IS PORT(a,b,s : IN STD_LOGIC; y: OUT STD_LOGIC );END ENTITY mux21;ARCHITECTURE dataflow OF mux21 IS BEGIN y=(a AND (NOT s) OR (b AND s);END ARC

    20、HITECTURE dataflow;第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 3.结构描述结构描述结构描述主要心元件或已完成的功能模块为基结构描述主要心元件或已完成的功能模块为基础,础,应用于采用元件例化的应用于采用元件例化的VHDL程序设计中。通程序设计中。通过描述元件及它们之间的相互连接关系,可以将各过描述元件及它们之间的相互连接关系,可以将各种子模块连接成更为复杂的功能模块或系统。种子模块连接成更为复杂的功能模块或系统。在结构描述中,元件间的连接是通过定义的端在结构描述中,元件间的连接是通过定义的端口界面来实现的,主要描述端口及其互联关系,因口界面来实现的,主要描述

    21、端口及其互联关系,因此,结构描述电能提高设计的效率,因为它可以将此,结构描述电能提高设计的效率,因为它可以将已有的设计成果方便的应用新的设计中,且结构清已有的设计成果方便的应用新的设计中,且结构清晰。晰。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 2选选1多路选择器结构描述程序多路选择器结构描述程序 -二输入与门二输入与门LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY and21 IS PORT(i0,i1 : IN STD_LOGIC; q: OUT STD_LOGIC );END ENTITY and21;ARCHITEC

    22、TURE one OF and21 IS BEGIN q=i0 AND i1; END ARCHITECTURE one;第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 -二输入或门二输入或门LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY or21 IS PORT(i0,i1 : IN STD_LOGIC; q: OUT STD_LOGIC );END ENTITY or21;ARCHITECTURE one OF or21 IS BEGIN q=i0 OR i1; END ARCHITECTURE one;第第3 3章章 VHD

    23、LVHDL程序结构与要素程序结构与要素 -非门非门LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY inv21 IS PORT(i0 : IN STD_LOGIC; q: OUT STD_LOGIC );END ENTITY inv21;ARCHITECTURE one OF inv21 IS BEGIN q= (NOT i0); END ARCHITECTURE one;第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 IS

    24、 PORT(a,b,s : IN STD_LOGIC; y: OUT STD_LOGIC );END ENTITY mux21;ARCHITECTURE struct OF mux21 IS COMPONENT and21PORT (i0,i1 : IN STD_LOGIC; q: OUT STD_LOGIC); END COMPONENT;COMPONENT or21PORT (i0,i1 : IN STD_LOGIC; q: OUT STD_LOGIC);END COMPONENT;COMPONENT inv21 PORT (i0: IN STD_LOGIC; q: OUT STD_LOG

    25、IC); END COMPONENT;SIGNAL tmp1,tmp2,tmp3:STD_LOGIC;BEGIN u1: and21 PORT MAP (b, s,tmp1); u2: inv21 PORT MAP(s,tmp2); u3: and21 PORT MAP (a,tmp2,tmp3); u4: or21 PORT MAP(tmp1,tmp3,y);END ARCHITECTURE struct; 第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 4. 混合描述混合描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xor

    26、21 IS PORT(i0,i1:IN STD_LOGIC; q: OUT STD_LOGIC);END ENTITY xor21;ARCHITECTURE behav OF xor21 IS BEGIN q=i0 XOR i1; END ARCHITECTURE behav;第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY half_adder IS PORT(a,b:IN STD_LOGIC; c,s: OUT STD_LOGIC);END ENTITY half_adder;ARC

    27、HITECTURE mix OF half_adder ISCOMPONENT xor21 IS PORT(i0,i1:IN STD_LOGIC; q:OUT STD_LOGIC); END COMPONENT; BEGIN c = a AND b; u1: xor21 PORT MAP(a,b,s); END ARCHITECTURE mix;第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 3.2 VHDL文字规则文字规则VHDL文字主要包括数值和标识符。文字主要包括数值和标识符。数值型文字数值型文字主要有数值型、字符串型、位串型。主要有数值型、字符串型、位串型。1数值型文字数

    28、值型文字 数字型文字的值有多种表达方式,现列举如下:数字型文字的值有多种表达方式,现列举如下:(1) 整数型文字整数型文字:整数文字都是十进制的数,如:整数文字都是十进制的数,如: 5,678,0,156E2(=15600), 45_234_287(=45234287) 数字间的下划线仅仅是为了提高文字的可读性,数字间的下划线仅仅是为了提高文字的可读性,相当于一个空的间隔符,而没有其他的意义,因而不相当于一个空的间隔符,而没有其他的意义,因而不影响文字本身的数值影响文字本身的数值第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 (2) 实数文字实数文字:实数文字也都是十进制的数,但

    29、必:实数文字也都是十进制的数,但必须带有小数点,如:须带有小数点,如: 188.993, 88_670_551.453_909(=88670551.453909), 1.0,44.99E-2(=0.4499),1.335,0.0(3) 以数制基数表示的文字:以数制基数表示的文字:用这种方式表示的数用这种方式表示的数由五个部分组成。第一部分,用十进制数标明数制由五个部分组成。第一部分,用十进制数标明数制进位的基数;第二部分,数制隔离符号进位的基数;第二部分,数制隔离符号“#”;第三;第三部分,表达的文字;第四部分,指数隔离符号部分,表达的文字;第四部分,指数隔离符号“#”;第五部分,用十进制表示

    30、的指数部分,这一部分的第五部分,用十进制表示的指数部分,这一部分的数如果是数如果是0可以省去不写。可以省去不写。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 例如:例如:10#170# -(十进制数表示,等于十进制数表示,等于170)2#1111_1110# -(二进制数表示,等于二进制数表示,等于254)16#F.01#E+2 -(十六进制数表示,等于十六进制数表示,等于16#F01, 3841.00)(4) 物理量文字物理量文字(VHDL综合器不接受此类文字综合器不接受此类文字)。如:。如:60s(60秒秒),100m(100米米),k(千欧姆千欧姆),177A(177安安

    31、培培)第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 2. 字符串型文字 字符是用单引号引起来的字符是用单引号引起来的ASCII字符,可以是字符,可以是数值,也可以是符号或字母,如:数值,也可以是符号或字母,如:R,A,*,Z。 而字符串则是一维的字符数组,须放在双引号而字符串则是一维的字符数组,须放在双引号中。中。VHDL中有两种类型的字符串:文字字符串和中有两种类型的字符串:文字字符串和数位字符串。数位字符串。 (1) 文字字符串:文字字符串是用双引号引起文字字符串:文字字符串是用双引号引起来的一串文字,如:来的一串文字,如: “ERROR”,“BOTH S AND Q EQ

    32、UAL TO L”,“BB$CC”第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 (2) 数位字符串:数位字符串也称位矢量,是预数位字符串:数位字符串也称位矢量,是预定义的数据类型定义的数据类型BIT的一位数组,它们所代表的是的一位数组,它们所代表的是二进制、八进制或十六进制的数组,二进制、八进制或十六进制的数组,其位矢量的长其位矢量的长度即为等值的二进制数的位数。数位字符串的表示度即为等值的二进制数的位数。数位字符串的表示首先要有数制基数,然后将该基数表示的值放在双首先要有数制基数,然后将该基数表示的值放在双引号中,基数符以引号中,基数符以“B”、“O”和和“X”表示,并放表示

    33、,并放在字符串的前面。它们的含义分别是:在字符串的前面。它们的含义分别是: B:二进制基数符号,表示二进制数位:二进制基数符号,表示二进制数位0或或1,在字符串中每一个位表示一个在字符串中每一个位表示一个BIT。 O:八进制基数符号,在字符串中的第一个:八进制基数符号,在字符串中的第一个数代表一个八进制数,即代表一个数代表一个八进制数,即代表一个3位位(BIT)的二进的二进制数。制数。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 X:十六进制基数符号:十六进制基数符号(0F),代表一个十,代表一个十六进制数,即代表一个六进制数,即代表一个4位的二进制数。位的二进制数。 例如:例

    34、如:B“1_1101_1110” -二进制数数组,位矢数组二进制数数组,位矢数组长度是长度是9X“AD0” -十六进制数数组,位矢数组长度十六进制数数组,位矢数组长度是是12第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 下标下标用于指示数组型变量或信号的某一元素,下标语下标用于指示数组型变量或信号的某一元素,下标语句的书写格式是:句的书写格式是:标识符标识符(下标表达式下标表达式),其中标识符就是数,其中标识符就是数组型变量或信号的名称,组型变量或信号的名称,下标表达式的值必须是数组下标下标表达式的值必须是数组下标范围内的一个值,可以是可计算的(此操作数可很容易地范围内的一个值

    35、,可以是可计算的(此操作数可很容易地进行综合)进行综合) ,也可以是不可计算的(只能在特定的情况下,也可以是不可计算的(只能在特定的情况下综合,且耗费资源较大),综合,且耗费资源较大),如:如:SIGNAL A,B,C:BIT_VECTOR(0 TO 7);SIGNAL M:INTEGER RANGE 0 TO 3;SIGNAL Y,Z :BIT;Y=A(M); -M是不可计算型下标表示是不可计算型下标表示Z=B(3); -3是可计算型下标表示是可计算型下标表示第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 .下标段名下标段名下标段名则用于指示数组型变量或信号的某一段下标段名则用

    36、于指示数组型变量或信号的某一段元素元素,其语句格式如下:,其语句格式如下:标识符标识符(表达式表达式1 TO/DOWNTO 表达式表达式2);其中标识符就是数组型变量或信号的名称,下标其中标识符就是数组型变量或信号的名称,下标表达式的值必须是数组下标范围内的一个值,必须表达式的值必须是数组下标范围内的一个值,必须是可计算的。是可计算的。TO表示数组下标序列由低到高;表示数组下标序列由低到高;DOWNTO表示数组下标序列由高到低,表示数组下标序列由高到低,符合且要求符合且要求下标段中的两个表达式值的方向必须与原数组一致。下标段中的两个表达式值的方向必须与原数组一致。第第3 3章章 VHDLVHD

    37、L程序结构与要素程序结构与要素 SIGNAL b :STD_LOGIC_VECTOR(DOWNTO);SIGNAL c,e :STD_LOGIC_VECTOR(0 TO 9);SIGNAL f :STD_LOGIC_VECTOR(0 TO 7);SIGNAL q :STD_LOGIC_VECTOR(4 DOWNTO);.q= b (DOWNTO 3); c(0 TO 3)=“1011”; e(0 TO 5)=f (2 TO 7);第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 5.注释注释为了增加程序的可读性,要在程序中增加注释行,以字符-开始的文字不参加程序的编译,仅仅是对程序

    38、的说明第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 3.2.2 标识符标识符标识符用来定义常数、变量、信号、端口、子程序或标识符用来定义常数、变量、信号、端口、子程序或参数的名字。参数的名字。.有效字符:有效字符:26个大小写英文字母、数字个大小写英文字母、数字09、下、下划线划线“_”。 2. 基本标识符:基本标识符:以英文字母开头,不连续使用下划以英文字母开头,不连续使用下划线线“_”,不以下划线,不以下划线“_”结尾的字符串,标识符中的结尾的字符串,标识符中的英语字母不分大小写。英语字母不分大小写。 3. VHDL的保留字不能用于作为标识符使用。的保留字不能用于作为标识符

    39、使用。如:如:DECODER_1,FFT,Sig_N,NOT_ACK,State0,Idle是合法的标识符;而是合法的标识符;而_DECODER_1,2FFT,SIGNal,NOT,RETURN则是非法的标识符。则是非法的标识符。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 3.3 VHDL基本数据对象和数据类型基本数据对象和数据类型 VHDL是一种强类型语言,是一种强类型语言,要求设计实体中的要求设计实体中的每一个常数、信号、变量、函数以及设定的各种参每一个常数、信号、变量、函数以及设定的各种参量都必须具有确定的数据类型,量都必须具有确定的数据类型,并且相同数据类型并且相同数

    40、据类型的量才能互相传递和作用。的量才能互相传递和作用。VHDL作为强类型语言作为强类型语言的好处是使的好处是使VHDL编译或综合工具很容易地找出设编译或综合工具很容易地找出设计中的各种常见错误。计中的各种常见错误。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 3.3. VHDL数据对象数据对象VHDL主要有类基本的数据对象:主要有类基本的数据对象:常量常量(CONSTANT)、变量变量(VARIABLE)、信号、信号(SIGNAL)和文件。和文件。前三种数据对象是设计中常用的基本数据对象,都可以进前三种数据对象是设计中常用的基本数据对象,都可以进行赋值,只有文件类型的数据对象不

    41、能通过赋值来更新内容,行赋值,只有文件类型的数据对象不能通过赋值来更新内容,文件可以作为参数向子程序传递,也可通过子程序对文件进行文件可以作为参数向子程序传递,也可通过子程序对文件进行读和写操作。读和写操作。常量只能在说明的时候赋值,且只能赋值一次;常量只能在说明的时候赋值,且只能赋值一次;变量和信变量和信号都可以连续赋值号都可以连续赋值,常量和变量可以从传统的计算机高级语言,常量和变量可以从传统的计算机高级语言中找到对应的数据类型,其语言行为与高级语言中的变量和常中找到对应的数据类型,其语言行为与高级语言中的变量和常量十分相似。量十分相似。但信号是具有更多的硬件特征的特殊数据对象,但信号是具

    42、有更多的硬件特征的特殊数据对象,是是VHDL中最有特色的语言要素之一中最有特色的语言要素之一.第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 从设计的硬件电路系统来看,信号和变量相当从设计的硬件电路系统来看,信号和变量相当于电路系统中的门级连线或连线上的信号值。于电路系统中的门级连线或连线上的信号值。从语法、功能以及在仿真综合中的表现来看,从语法、功能以及在仿真综合中的表现来看,变量和信号有明显的区别;变量更多的体现为一种变量和信号有明显的区别;变量更多的体现为一种局部量,一种信息过渡的暂时载体,最终的信息传局部量,一种信息过渡的暂时载体,最终的信息传输以及模块界面间的通信都是由

    43、信号来完成的。信输以及模块界面间的通信都是由信号来完成的。信号更多地体现出一种全局的对象,对应更多的硬件号更多地体现出一种全局的对象,对应更多的硬件结构。结构。在许多情况下,综合后所对应的电路中信号和在许多情况下,综合后所对应的电路中信号和变量并没有很大的区别,在满足一定条件的进程中,变量并没有很大的区别,在满足一定条件的进程中,二者综合后都能引入寄存器。二者综合后都能引入寄存器。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 1. 常量常量常量的定义和设置主要是为了使设计实体中的常常量的定义和设置主要是为了使设计实体中的常数更容易阅读和修改。数更容易阅读和修改。如模块中需要多次

    44、使用某一个固定值,就可以定如模块中需要多次使用某一个固定值,就可以定义一个常数,只要修改常量定义处的值,然后重新编义一个常数,只要修改常量定义处的值,然后重新编译后就可方便地改变设计实体的硬件结构。例如,将译后就可方便地改变设计实体的硬件结构。例如,将总线的宽度定义为一个常量,只要修改这个常量就能总线的宽度定义为一个常量,只要修改这个常量就能很容易地改变总线宽度,从而改变硬件结构。很容易地改变总线宽度,从而改变硬件结构。常量在使用前必须要加以定义说明,一旦说明赋常量在使用前必须要加以定义说明,一旦说明赋值后,在程序中就不能再改变,是一个恒定不变的值,值后,在程序中就不能再改变,是一个恒定不变的

    45、值,具有全局意义。具有全局意义。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 常量的定义形式如下:常量的定义形式如下:CONSTANT 常量名:数据类型常量名:数据类型=表达式;表达式;常量名由设计者自行定义,表达式的数据类型必须和常量名由设计者自行定义,表达式的数据类型必须和定义的数据类型一致定义的数据类型一致例如:例如:CONSTANTFBUSBIT_VECTOR=“01011”;CONSTANT VCCREAL=5.0;CONSTANT DELYTIME=25ns;CONSTANT widthinteger=16;第第3 3章章 VHDLVHDL程序结构与要素程序结构与要

    46、素 常量定义语句所允许的设计单元有实体、结构体、常量定义语句所允许的设计单元有实体、结构体、程序包、块、进程和子程序。程序包、块、进程和子程序。常量的可视性(即常量的使用范围),取决于它常量的可视性(即常量的使用范围),取决于它被定义的位置:被定义的位置:在在程序包程序包中中定义的常量具有最大全局化特征,可定义的常量具有最大全局化特征,可以用在调用此程序包的所有设计实体中;以用在调用此程序包的所有设计实体中;定义在设计定义在设计实体中实体中的常量,其有效范围为这个实的常量,其有效范围为这个实体定义的所有的结构体;体定义的所有的结构体;定义在设计实体的某一定义在设计实体的某一结构体中结构体中的常

    47、量,则只能的常量,则只能用于此结构体;用于此结构体;定义在结构体的某一单元的常量,如一个定义在结构体的某一单元的常量,如一个进程中进程中,则这个常量只能用在这一进程中。则这个常量只能用在这一进程中。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 .变量变量变量是一个在程序中数值可以改变的数据对象。变量是一个在程序中数值可以改变的数据对象。1. 变量是一个局部量,只能在进程和子程序中使用;变量是一个局部量,只能在进程和子程序中使用;变量不能将信息带出对它作出定义的当前设计单元。变量不能将信息带出对它作出定义的当前设计单元。2. 变量的赋值是一种理想化的数据传输,是立即发变量的赋值是

    48、一种理想化的数据传输,是立即发生,不存在任何延时的行为。生,不存在任何延时的行为。3. 变量常用在实现某种算法的赋值语句中变量常用在实现某种算法的赋值语句中。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 定义变量的语法格式如下:定义变量的语法格式如下:VARIABLE 变量名:数据类型:变量名:数据类型:=初始值;初始值;初始值不是必需的,设定的初始值只在仿真时有初始值不是必需的,设定的初始值只在仿真时有效,在综合过程中综合器将略去所有的初始值。效,在综合过程中综合器将略去所有的初始值。VARIABLE A:INTEGER; -定义定义A为整数型为整数型变量变量VARIABLE

    49、 B,C:INTEGER:=2; -定义定义B和和C为整型变量,初始值为为整型变量,初始值为2第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 在程序中,在程序中,变量数值的改变是通过变量赋值来变量数值的改变是通过变量赋值来实现的实现的,其赋值语句的语法格式如下:,其赋值语句的语法格式如下:目标变量名目标变量名:=表达式;表达式;VARIABLE a,e : REAL :=1.0 ;VARIABLE b : STD_LOGIC(0 TO 3) ;VARIABLE c : INTEGER ;e := 2.25;b := “1001” ;b(o TO 1) := (1 , 0 ) ;变

    50、量作为局部量,其适用范围仅限于定义了变变量作为局部量,其适用范围仅限于定义了变量的进程或子程序中。量的进程或子程序中。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 3. 信号信号 信号是描述硬件系统的基本数据对象,它更多信号是描述硬件系统的基本数据对象,它更多地对应于硬件结构,主要用于实体、结构体、或设地对应于硬件结构,主要用于实体、结构体、或设计实体间的信息交流,它类似于电路中的导线。计实体间的信息交流,它类似于电路中的导线。 信号的使用和定义范围是实体、结构体和程序信号的使用和定义范围是实体、结构体和程序包。在进程和子程序中不允许定义信号。包。在进程和子程序中不允许定义信号

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第三章-VHDL程序结构与要素课件.ppt
    链接地址:https://www.163wenku.com/p-2984428.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库