欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    硬件描述语言VHDL概述硬件描述语言VHDL概述ppt课件.ppt

    • 资源ID:88710948       资源大小:2.11MB        全文页数:160页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    硬件描述语言VHDL概述硬件描述语言VHDL概述ppt课件.ppt

    硬件描述语言VHDL概述硬件描述语言VHDL概述ppt课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望硬件描述语言VHDL概述HDL最早是最早是Iverson公司于公司于1962年提出,到上世纪年提出,到上世纪80年代年代被各个被各个ASIC芯片厂商广泛采用。芯片厂商广泛采用。1982年各年各ASIC芯片厂商相芯片厂商相继开发出自己的继开发出自己的HDL。如如Silvar-lisco公司的公司的HHDL、Zycad公司的公司的ISP、GatewayDesignAutomation(现改为(现改为CadenceDesignSystem)公司的公司的Verilog等等。另外,还有许多一些高等等。另外,还有许多一些高等院校及科研机构也开发了许多版本的等院校及科研机构也开发了许多版本的HDL,有名的有美有名的有美国国防部开发的国国防部开发的VHDL(VHSICHDL)、日本电子工业振兴日本电子工业振兴协会的协会的UDL/I等。等。硬件描述语言(硬件描述语言(HardwareDescriptionLanguage,HDL)为了标准化为了标准化HDL,1987年底,年底,IEEE确认美国国防部开发确认美国国防部开发的的VHDL为标准硬件描述语言为标准硬件描述语言(IEEE-1076)。之后,各之后,各EDA公公司研制的硬件电路设计工具逐渐向司研制的硬件电路设计工具逐渐向VHDL靠拢。靠拢。1993年,年,IEEE对对VHDL进行了修订,公布了新版本的进行了修订,公布了新版本的VHDL(即即IEEE-107-1993)。现在。现在VHDL和和Verilog作为作为IEEE的两个标准。的两个标准。硬件描述语言VHDL概述VHDL语言是美国国防部在语言是美国国防部在20世纪世纪80年代初为实现其高速年代初为实现其高速集成电路计划集成电路计划(VeryHighSpeedIntegratedCircuit,VHSIC)而而提出的硬件描述语言(提出的硬件描述语言(HardwareDescriptionLanguage,HDL),),称为称为VHDL。VHDL的主要优点是:的主要优点是:1.覆盖面广,描述能力强,是一个多层次的硬件描述语言。覆盖面广,描述能力强,是一个多层次的硬件描述语言。2.VHDL有有良良好好的的可可读读性性,即即可可以以被被计计算算机机接接受受,也也容容易易被被理解。理解。3.生命期长。生命期长。VHDL的硬件描述与工艺技术无关,不会因的硬件描述与工艺技术无关,不会因工艺变化而使描述过时。与工艺技术有关的参数可通过工艺变化而使描述过时。与工艺技术有关的参数可通过VHDL提供的属性加以描述,工艺改变时,只需修改相应提供的属性加以描述,工艺改变时,只需修改相应程序中的属性参数即可。程序中的属性参数即可。硬件描述语言VHDL概述4.支持大规模设计的分解和已有设计的再利用,一个大规模支持大规模设计的分解和已有设计的再利用,一个大规模设计不可能一个人独立完成,它将由多人,多项目组来共设计不可能一个人独立完成,它将由多人,多项目组来共同完成。同完成。VHDL为设计的分解和设计的再利用提供了有力的为设计的分解和设计的再利用提供了有力的支持。支持。5.VHDL已成为已成为IEEE承认的一个工业标准,事实上已成为承认的一个工业标准,事实上已成为通用硬件描述语言。目前,大多数的通用硬件描述语言。目前,大多数的EDA工具几乎在不同工具几乎在不同程度上都支持程度上都支持VHDL,这样给,这样给VHDL的进一步推广和应用的进一步推广和应用创造了良好的环境。创造了良好的环境。6.VHDL可以支持自上而下可以支持自上而下(TopDown)和基于库和基于库(Library-Based)的设计方法,而且还支持同步电路、异步电路、的设计方法,而且还支持同步电路、异步电路、FPGA等的设计。其范围之广是其它等的设计。其范围之广是其它HDL所不能比拟的。所不能比拟的。硬件描述语言VHDL概述-一、先看一个程序例子:先看一个程序例子:设计一个设计一个3-8译码器译码器library ieee;use ieee.std_logic_1164.all;entity dec isport(signal sel:in std_logic_vector(2 downto 0);signal en:in std_logic;signal y:out std_logic_vector(7 downto 0);end dec;1.参数部分参数部分库、程序包、配置库、程序包、配置2.接口部分接口部分实体说明实体说明硬件描述语言VHDL概述-一、architecture behavior of dec isbeginprocess(sel,en)beginyy(0)y(1)y(2)y(3)y(4)y(5)y(6)y(7)NULL;end case;end if;end process;end behavior;3.描述部分描述部分结构体结构体3-8译码器译码器ensel0sel1sel2y0y1y2y3y4y5y6y7电路示意图:电路示意图:硬件描述语言VHDL概述-一、VHDL语言把任意复杂的一个系统看成为一个模块。语言把任意复杂的一个系统看成为一个模块。一个模块可主要分为三个组成部分:一个模块可主要分为三个组成部分:1.参数部分参数部分库、程序包、配置库、程序包、配置2.接口部分接口部分实体说明实体说明3.描述部分描述部分结构体结构体或者说一个或者说一个VHDL程序总是包含三个部分:程序总是包含三个部分:1.参数部分参数部分库、程序包、配置库、程序包、配置2.接口部分接口部分实体说明实体说明3.描述部分描述部分结构体结构体硬件描述语言VHDL概述-一、一个一个VHDL程序的前面部分总是有语句:程序的前面部分总是有语句:有关库、程序包、配置的作用及使用方法在后面讲述。有关库、程序包、配置的作用及使用方法在后面讲述。LIBRARYieee;使用使用IEEE标准库标准库USEieee.std_logic_1164.all;打开一个程序包打开一个程序包 (程序包名为程序包名为ieee.std_logic_1164.all)有些程序还需要加以下语句:有些程序还需要加以下语句:USEieee.std_logic_arith.all;USEieee.std_logic_unsigned.all;硬件描述语言VHDL概述-一、数字系统中的基本单元,在数字系统中的基本单元,在VHDL中称做设计实中称做设计实体体(designentity)。一个基本设计单元,简单的可。一个基本设计单元,简单的可以是一个门,复杂一点的可以是一个微处理器、一以是一个门,复杂一点的可以是一个微处理器、一块印刷电路板上所有电路或者是整个数字系统。块印刷电路板上所有电路或者是整个数字系统。设计实体由两部分组成:实体说明和结构体。设计实体由两部分组成:实体说明和结构体。实体说明规定了设计单元的输入输出接口信号或实体说明规定了设计单元的输入输出接口信号或引脚。引脚。结构体定义了设计单元的具体构造和操作结构体定义了设计单元的具体构造和操作(行为行为)。硬件描述语言VHDL概述-一、基本格式:基本格式:ENTITY实体名实体名ISGENERIC(类属表类属表);PORT(端口表端口表);ENDENTITY实体名实体名;以以ENTITY开始开始以以END开始开始方括弧内可有可无方括弧内可有可无硬件描述语言VHDL概述-一、1.类属参数说明类属参数说明 类属参数说明必须放在端口说明之前,用于为设计实类属参数说明必须放在端口说明之前,用于为设计实体和其外部环境通信的体和其外部环境通信的静态静态信息提供通道,可以定义端信息提供通道,可以定义端口的大小、实体中子元件的数目、实体的定时特性等。口的大小、实体中子元件的数目、实体的定时特性等。例:例:GENERIC(m:Time:=1 ns);该语句指定了结构体内的该语句指定了结构体内的m为为Time类型,其值为类型,其值为ns。若随后的结构体内有语句:若随后的结构体内有语句:q=tmp after m;则表示则表示tmp送入送入q有一个延迟时间有一个延迟时间1ns。硬件描述语言VHDL概述-一、2.端口说明端口说明 端口说明用于为设计实体和其外部环境的端口说明用于为设计实体和其外部环境的动态动态通信提供通通信提供通道。也可以说是对外部引脚信号的名称、数据类型、输入输道。也可以说是对外部引脚信号的名称、数据类型、输入输出方向的描述。出方向的描述。一般书写格式为:一般书写格式为:1)端口名端口名PORT(端口名端口名,端口名,端口名:方向方向 数据类型名数据类型名);端口名端口名,端口名,端口名:方向方向 数据类型名数据类型名);端口名是赋予每个外部引脚的名称,通常用一个或几个端口名是赋予每个外部引脚的名称,通常用一个或几个英文字母,或者用英文字母加数字命名。英文字母,或者用英文字母加数字命名。硬件描述语言VHDL概述-一、端口方向用来定义外部引脚的信号方向是输入还是输出。端口方向用来定义外部引脚的信号方向是输入还是输出。2)端口方向端口方向不指定方向,无论哪一个方向都可连接不指定方向,无论哪一个方向都可连接LINKAGE输出输出(结构体内部能使用结构体内部能使用)BUFFER双向双向INOUT输出输出(结构体内部不能再使用结构体内部不能再使用)OUT输入输入IN含义含义方向定义方向定义 注意:注意:“OUT”和和“BUFFER”都可以定义输出端口,但它都可以定义输出端口,但它们之间是有区别的。们之间是有区别的。OUTDclkQ&clkD QBUFFER硬件描述语言VHDL概述-一、在在VHDL语言中有语言中有10中数据类型,但是在逻辑电路设计中中数据类型,但是在逻辑电路设计中只用到两种:只用到两种:BIT和和BIT_VECTOR。3)数据类型数据类型 BIT数据类型是位逻辑数据类型数据类型是位逻辑数据类型,其取值只能是两个逻辑其取值只能是两个逻辑值值(“1”和和“0”)中的一个。中的一个。BIT_VECTOR数据类型是数据类型是位数组位数组逻辑数据类型逻辑数据类型,其取值是其取值是一组二进制位的值。一组二进制位的值。例:例:PORT(d0,d1,sel:IN BIT;q:OUT BIT;bus:OUT BIT_VECTOR(0 TO 7);其中的其中的bus就是一个输出型的就是一个输出型的8位端口(总线)。位端口(总线)。硬件描述语言VHDL概述-一、基本格式:基本格式:该结构体唯一的名称,该结构体唯一的名称,缺省为缺省为behavioral该结构体对应的实体该结构体对应的实体方括弧内可有可无方括弧内可有可无ARCHITECTURE结构体名结构体名OF实体名实体名IS说明语句说明语句BEGIN并行语句并行语句;ENDARCHITECTURE结构体名结构体名硬件描述语言VHDL概述-一、1.结构体名称的命名结构体名称的命名 结构体名称是对本结构体的命名,它是该结构体的唯一结构体名称是对本结构体的命名,它是该结构体的唯一名称。名称。OF后面紧跟的实体名表明了该结构体所对应的是哪后面紧跟的实体名表明了该结构体所对应的是哪一个实体。用一个实体。用IS来结束结构体的命名。来结束结构体的命名。结构体的名称可以自由命名。但在大多数时候,通常把结结构体的名称可以自由命名。但在大多数时候,通常把结构体的名称命名为构体的名称命名为behavioral(行为行为)、dataflow(数据流数据流)或者或者structural(结构结构)。表示结构体的。表示结构体的3种描述方式。种描述方式。2.说明语句说明语句 定义语句位于定义语句位于ARCHITECTURE和和BEGIN之间,用于对之间,用于对结构体内部所使用的信号、常数、数据类型和函数进行定结构体内部所使用的信号、常数、数据类型和函数进行定义。义。硬件描述语言VHDL概述-一、3.并行语句并行语句 并行语句处于语句并行语句处于语句BEGIN和和END之间,具体描述了本之间,具体描述了本结构体的行为结构体的行为(功能功能)及其连接关系及其连接关系(内部结构内部结构)。并行语句的描述方式有并行语句的描述方式有4种:种:1)算法描述。算法描述。2)数据流描述。数据流描述。3)结构描述。结构描述。4)混合描述。混合描述。属行为描述(功能描述)属行为描述(功能描述)也属行为描述(功能描述)也属行为描述(功能描述)描述内部结构描述内部结构兼有功能描述和兼有功能描述和内部结构描述内部结构描述硬件描述语言VHDL概述-一、1)算法描述)算法描述(也有称为也有称为“行为描述行为描述”方方式式)算法描述属行为描述。是描述方式中较容易接受的。完算法描述属行为描述。是描述方式中较容易接受的。完全把硬件的设计软件化了。全把硬件的设计软件化了。行为描述表示输入与输出间转换的行为。无需包含任何行为描述表示输入与输出间转换的行为。无需包含任何结构信息。结构信息。D寄存器寄存器DQRESETPRESETCP例:例:定义一个有异步复位定义一个有异步复位/置位置位功能的功能的D触发器触发器功能功能:RESET=0,则则Q=0PRESET=0,则则Q=1当当RESET=1且且PRESET=1时时脉冲脉冲CP有正跳变时,有正跳变时,D送送Q硬件描述语言VHDL概述-一、算法描述如下:算法描述如下:ARCHITECTURE behavior OF reg ISBEGIN process(ck,reset,preset)begin if reset=0 then q=0;elsif preset=0 then q=1;elsif ckevent and ck=1 then qQPreset=0?CP正跳变?1=QD=Q开始结束NNNYYY硬件描述语言VHDL概述-一、2)数据流描述)数据流描述(也有称为也有称为“寄存器传输描述寄存器传输描述”方式方式)数据流描述表示行为,也隐含表示结构。它反映从输入数据流描述表示行为,也隐含表示结构。它反映从输入数据到输出数据之间所发生的逻辑变换。数据到输出数据之间所发生的逻辑变换。例:例:一个二选一的多路选择开关一个二选一的多路选择开关MUXENTITY mux IS PORT(d0,d1:IN BIT;sel:IN BIT;q:OUT BIT);END mux;ARCHITECTURE dataflow OF mux ISBEGIN q=(d0 AND sel)OR(NOT sel AND d1);END dataflow;二选一二选一MUXd0d1selq硬件描述语言VHDL概述-一、3)结构描述)结构描述 结构描述给出实体内部结构,即所包含的模块或元件及结构描述给出实体内部结构,即所包含的模块或元件及其互连关系以及与实体外部引线的对应关系。其互连关系以及与实体外部引线的对应关系。例:例:半加器的描述半加器的描述半半加加器器abcs&abcs和:和:s=a xor b进位:进位:c=a and b硬件描述语言VHDL概述-一、半加器的描述如下:半加器的描述如下:ARCHITECTURE struct_ha OF half_adder IS COMPONENT and_gate PORT(a1,a2:IN Bit;a3:OUT Bit);END COMPONENT;COMPONENT xor_gate PORT(x1,x2:IN Bit;x3:OUT Bit);END COMPONENT;BEGIN g1:and_gate PORT MAP(a,b,c);g2:xor_gate PORT MAP(a,b,s);END struct_ha;程序中程序中COMPONENT 为元件说明语句,说明元件的名称为元件说明语句,说明元件的名称及端口特性。该结构体中由两条并行的元件例化(引用)语及端口特性。该结构体中由两条并行的元件例化(引用)语句组成。句组成。PORT MAP为端口映射,指明所含元件之间以及元件与实为端口映射,指明所含元件之间以及元件与实体端口之间的连接关系。被例化的元件称为例元体端口之间的连接关系。被例化的元件称为例元(and_gate和和xor_gate)。硬件描述语言VHDL概述-一、4)混合描述)混合描述 在一个结构体中,行为描述与结构描述可以混合使用。在一个结构体中,行为描述与结构描述可以混合使用。即即元件例化语句可与其他并行语句共处于同一个结构体内。元件例化语句可与其他并行语句共处于同一个结构体内。例:例:半加器的描述改动为:半加器的描述改动为:ARCHITECTURE struct_ha OF half_adder IS COMPONENT and_gate PORT(a1,a2:IN Bit;a3:OUT Bit);END COMPONENT;BEGIN s=a XOR b;g1:and_gate PORT MAP(a,b,c);END struct_ha;硬件描述语言VHDL概述-二、在在VHDL语言中,有四类对象:语言中,有四类对象:1)CONSTANT(常量),可用于定义延迟、功耗、电源常量),可用于定义延迟、功耗、电源(即(即5V)、地地(0V)等参数。只能进行一次赋值。等参数。只能进行一次赋值。2)VARIABLE(变量),常用于高层次抽象的算法描述中。变量),常用于高层次抽象的算法描述中。可多次赋值。可多次赋值。3)SIGNAL(信号),对应某一条硬件连线,可多次赋值。信号),对应某一条硬件连线,可多次赋值。4)FILE(文件),相当于文件指针,用于对文件的读写操文件),相当于文件指针,用于对文件的读写操作。(很少用到)作。(很少用到)硬件描述语言VHDL概述-二、例:例:CONSTANT Vcc:Real:=5.0;CONSTANT fbus:Bit_vector:=“0101”;CONSTANT delay:Time:=5 ns;1.常量常量(CONSTANT)常量是一个固定值。所谓常量说明就是对某一常量名赋常量是一个固定值。所谓常量说明就是对某一常量名赋予一个固定值。通常赋值在程序开始前进行,该值的数据予一个固定值。通常赋值在程序开始前进行,该值的数据类型则在说明语句中指明。一般格式如下:类型则在说明语句中指明。一般格式如下:CONSTANT 常量名:常量名:数据类型:数据类型:=表达式;表达式;硬件描述语言VHDL概述-二、例:例:VARIABLE x,y:Integer;VARIABLE count:Integer RANGE 0 to 255:=10;VARIABLE i:Integer:=13;2.变量变量(VARIABLE)变量只能在进程语句、函数语句和过程语句结构中使用,变量只能在进程语句、函数语句和过程语句结构中使用,它是一个局部量。在仿真过程中,变量的赋值是立即生效。它是一个局部量。在仿真过程中,变量的赋值是立即生效。一般格式如下:一般格式如下:VARIABLE 变量名:变量名:数据类型:数据类型:约束条件:约束条件:=初始值初始值;方括弧内可有可无方括弧内可有可无硬件描述语言VHDL概述-二、例:例:SIGNAL sys_clk:Bit:=0;SIGNAL clock:Bit;SIGNAL U377Q:Std_logic_vector(7 downto 0);3.信号信号(SIGNAL)信号是电子电路内部硬件连接的抽象。它除了没有数据信号是电子电路内部硬件连接的抽象。它除了没有数据流动方向说明以外,其他性质几乎和前面所述的流动方向说明以外,其他性质几乎和前面所述的“端口端口”概念一样。信号通常在构造体、包集合和实体中说明。一概念一样。信号通常在构造体、包集合和实体中说明。一般格式如下:般格式如下:SIGNAL 信号名:信号名:数据类型:数据类型:约束条件:约束条件:=初始值初始值;方括弧内可有可无方括弧内可有可无硬件描述语言VHDL概述-二、4.关于信号和变量值代入的区别关于信号和变量值代入的区别 信号和变量值的代入不仅形式不同,而且其操作过程也信号和变量值的代入不仅形式不同,而且其操作过程也不同。不同。在变量的赋值语句中,该语句一旦被执行,其值立即被在变量的赋值语句中,该语句一旦被执行,其值立即被赋予变量。在执行下一条语句时,该变量的值就为上一句赋予变量。在执行下一条语句时,该变量的值就为上一句新赋的值。变量的赋值符为新赋的值。变量的赋值符为“:=”。信号代入语句采用信号代入语句采用“=”代入符,该语句即使被执行也代入符,该语句即使被执行也不会使信号立即发生代入。下一条语句执行时,仍使用原不会使信号立即发生代入。下一条语句执行时,仍使用原来的信号值。由于信号代入语句是同时进行处理的,因此,来的信号值。由于信号代入语句是同时进行处理的,因此,实际代入过程和代入语句的处理是分开进行的。实际代入过程和代入语句的处理是分开进行的。硬件描述语言VHDL概述-二、例:信号值的代入例:信号值的代入PROCESS(a,b,c,d)BEGIN d=a;x=b+d;d=c;y=b+d;END PROCESS;结果是结果是:x=b+c;y=b+c;上例中,虽然信号代入语句进行了处理,但实际代入过上例中,虽然信号代入语句进行了处理,但实际代入过程是在进程执行完后进行的,因此最后所代入的值作为最程是在进程执行完后进行的,因此最后所代入的值作为最终代入值。因为终代入值。因为d的最终值是的最终值是c,所以所以x的最终值是的最终值是b+c。硬件描述语言VHDL概述-二、例:变量值的代入例:变量值的代入PROCESS(a,b,c)VARIABLE D:Std_logic_vector(3 Downto 0);BEGIN d:=a;x=b+d;d:=c;y=b+d;END PROCESS;结果是结果是:x=b+a;y=b+c;上例中,变量的值一经赋值就变成新的值。因此上例中,变量的值一经赋值就变成新的值。因此x的最的最终值是终值是b+a。硬件描述语言VHDL概述-二、在在VHDL语言中,一个对象只能具有一个数据类型,施加语言中,一个对象只能具有一个数据类型,施加于该对象的操作必须与该类型相匹配。于该对象的操作必须与该类型相匹配。VHDL提供多种标准的数据类型。在此基础上,用户还可提供多种标准的数据类型。在此基础上,用户还可以自定义数据类型。以自定义数据类型。1.标准的数据类型标准的数据类型 有十种标准的数据类型,分别是整数、实数、位、位矢量、有十种标准的数据类型,分别是整数、实数、位、位矢量、布尔量、字符、字符串、时间、错误等级、大于等于零的布尔量、字符、字符串、时间、错误等级、大于等于零的整数或正整数。整数或正整数。硬件描述语言VHDL概述-二、1)整数)整数(Integer)整数与数学中的整数含义相同。整数与数学中的整数含义相同。VHDL中,整数的表示范中,整数的表示范围是围是-2 147 483 6472 147 483 647,即从,即从-(231-1)到(到(231-1)。)。VHDL是一个强类型语言,要求在赋值语句中的数据类型是一个强类型语言,要求在赋值语句中的数据类型必须匹配。整数的例子:必须匹配。整数的例子:+136,+12 456,-4572)实数)实数(Real)在进行算法研究或者实验时,作为对硬件方案的抽象手段,在进行算法研究或者实验时,作为对硬件方案的抽象手段,常用实数四则运算。实数的定义值范围是常用实数四则运算。实数的定义值范围是-1.0E+38 +1.0E+38。实数有正负数,书写时一定要有小数点。实数有正负数,书写时一定要有小数点。实数的例子:实数的例子:-1.0,+2.5,-1.0E38硬件描述语言VHDL概述-二、3)位)位(Bit)在数字系统中,信号值通常用一个位来表示。位值的表示在数字系统中,信号值通常用一个位来表示。位值的表示方法是,用字符方法是,用字符0或者或者1(将值放在单引号中)表(将值放在单引号中)表示之。位与整数中的示之。位与整数中的0和和1不同,不同,1和和0仅仅表示一仅仅表示一个位的两种取值。个位的两种取值。位数据可以用来描述系统中总线的值。位数据可以用来描述系统中总线的值。4)位矢量)位矢量(Bit_vector)位矢量是用双引号括起来的一组位数据。例如:位矢量是用双引号括起来的一组位数据。例如:“001100”X”00BB”X表示是十六进制。表示是十六进制。用位矢量数据表示总线状态最形象也最方便。用位矢量数据表示总线状态最形象也最方便。硬件描述语言VHDL概述-二、5)布尔量)布尔量(Boolean)一个布尔量具有两种状态,一个布尔量具有两种状态,“真真”或者或者“假假”。虽然布尔。虽然布尔量也是二值枚举量,但它和位不同,没有数值的含义,也量也是二值枚举量,但它和位不同,没有数值的含义,也不能进行算术运算。它能进行关系运算。例如,它可以在不能进行算术运算。它能进行关系运算。例如,它可以在IF语句中被测试,测试结果产生一个布尔量语句中被测试,测试结果产生一个布尔量TRUE或或FALSE。如果某个信号或者变量被定义为布尔量,那么在仿真中如果某个信号或者变量被定义为布尔量,那么在仿真中将自动地对其赋值进行核查。一般这一类型的数据的初始将自动地对其赋值进行核查。一般这一类型的数据的初始值总为值总为FALSE。硬件描述语言VHDL概述-二、6)字符)字符(Character)字符也是一种数据类型,所定义的字符量通常用单引号括字符也是一种数据类型,所定义的字符量通常用单引号括起来,如起来,如A。一般情况下一般情况下VHDL对大小写不敏感,但是对大小写不敏感,但是对字符量中的大、小写字符则认为是不一样的。例如,对字符量中的大、小写字符则认为是不一样的。例如,B不同于不同于b。字符量中的字符可以是字符量中的字符可以是az中的任一个字母,中的任一个字母,09中的任中的任一个数以及空白或者特殊字符,如一个数以及空白或者特殊字符,如$,%等等。等等。包集合包集合STANDARD中给出了预定义的中给出了预定义的128个个ASCII码字码字符类型,不能打印的用标识符给出。字符符类型,不能打印的用标识符给出。字符1与整数与整数1和和实数实数1.0都是不同的。都是不同的。7)字符串)字符串(String)字符串是用双引号括起来的一个字符序列,它也称字符字符串是用双引号括起来的一个字符序列,它也称字符矢量或字符串数组。常用于程序的提示和说明。矢量或字符串数组。常用于程序的提示和说明。硬件描述语言VHDL概述-二、8)时间)时间(Time)时间是一个物理量数据。完整的时间量数据应包含整数和时间是一个物理量数据。完整的时间量数据应包含整数和单位两部分,而且整数和单位之间至少应留以后、个空格单位两部分,而且整数和单位之间至少应留以后、个空格的位置。例的位置。例 55 sec,2 min等。在包集合等。在包集合STANDARD中中给出了时间的预定义,其单位是给出了时间的预定义,其单位是fs,ps,ns,s,ms,sec,min,hr。(。(飞秒,皮秒,纳秒,微秒,毫秒,秒,飞秒,皮秒,纳秒,微秒,毫秒,秒,分钟,小时)分钟,小时)9)错误等级)错误等级(Severity level)错误等级类型数据用来表征系统的状态,它共有错误等级类型数据用来表征系统的状态,它共有4种:种:NOTE(注意),注意),WARNING(警告),警告),ERROR(出错出错),FAILURE(失败)。在系统仿真过程中可以用这失败)。在系统仿真过程中可以用这4种状种状态来提示系统当前的工作情况。态来提示系统当前的工作情况。硬件描述语言VHDL概述-二、10)大于等于零的整数)大于等于零的整数(Natural),正整数(正整数(Positive)这两类数据是整数的子类,这两类数据是整数的子类,Natural类数据只能取值类数据只能取值0和和0以上的正整数;而以上的正整数;而Positive则只能为正整数。则只能为正整数。以上这以上这10种标准的数据类型,在编程中可直接引用。如果种标准的数据类型,在编程中可直接引用。如果用户需使用这用户需使用这10种以外的数据类型,则必须进行自定义。种以外的数据类型,则必须进行自定义。由于由于VHDL语言属于强类型语言,在仿真过程中,首先要语言属于强类型语言,在仿真过程中,首先要检查赋值语句中的类型和区间,任何一个信号和变量的赋检查赋值语句中的类型和区间,任何一个信号和变量的赋值均须落入给定的约束区间中,也就是说要落入有效数值值均须落入给定的约束区间中,也就是说要落入有效数值的范围中。约束区间的说明通常跟在数据类型说明的后面。的范围中。约束区间的说明通常跟在数据类型说明的后面。例如:例如:Integer RANGE 100 DOWNTO 1Bit_vector(3 DOWNTO 0)Real RANGE 2.0 to 30.0DOWNTO表示下降。表示下降。硬件描述语言VHDL概述-二、2.用户定义的数据类型用户定义的数据类型 在在VHDL语言中,使用户最感兴趣的一个特点是,可以由语言中,使用户最感兴趣的一个特点是,可以由用户自己来定义数据类型。右用户定义的数据类型的定义用户自己来定义数据类型。右用户定义的数据类型的定义书写格式为:书写格式为:TYPE 数据类型名数据类型名 ,数据类型名,数据类型名 数据类型定义数据类型定义可由用户定义的数据类型有:可由用户定义的数据类型有:.枚举枚举(Enumerated)类型类型 .整数型整数型(Integer)类型类型.实数实数(Real)类型类型 .浮点数浮点数(Floating)类型类型.数组数组(Array)类型类型 .存取存取(Access)类型类型.文件文件(File)类型类型 .记录记录(Recode)类型类型.时间时间(Time)类型类型 硬件描述语言VHDL概述-二、1)枚举)枚举(Enumerated)类型类型 在逻辑电路中,所有的数据都是用在逻辑电路中,所有的数据都是用“1”和和“0”来表示的,来表示的,但是人们在考虑逻辑关系时,只有数字往往是不方便的。但是人们在考虑逻辑关系时,只有数字往往是不方便的。在在VHDL语言中,可以用符号名来代替数字。例如,在表示语言中,可以用符号名来代替数字。例如,在表示一周每一天状态的逻辑电路中,可以假定一周每一天状态的逻辑电路中,可以假定“000”为星期天,为星期天,“001”为星期一。这对阅读程序是不太方便的。为此,可为星期一。这对阅读程序是不太方便的。为此,可以定义一个叫以定义一个叫“week”的数据类型。的数据类型。TYPE week IS(sun,mon,tue,wed,thu,fri,sat);由于上述的定义,凡是用于代表星期二的日子都可以用由于上述的定义,凡是用于代表星期二的日子都可以用tue来代替,阅读比较直观,使用时也不易出错。来代替,阅读比较直观,使用时也不易出错。枚举类型数据的定义格式为:枚举类型数据的定义格式为:TYPE 数据类型名数据类型名 IS(元素元素,元素元素,);如如:TYPE std_logic IS(U,X,0,1,Z,W,L,H,-);硬件描述语言VHDL概述-二、2)整数类型,实数类型)整数类型,实数类型(Integer,Real)整数类型在整数类型在VHDL语言中已存在,这里定义的是用户所定语言中已存在,这里定义的是用户所定义的整数类型,实际上可以认为是整数的一个子类。例如,义的整数类型,实际上可以认为是整数的一个子类。例如,在一个数码管上显示数字,其值只能取在一个数码管上显示数字,其值只能取09的整数。如果的整数。如果由用户定义一个用于数码显示的数据类型,则可写为:由用户定义一个用于数码显示的数据类型,则可写为:TYPE digit IS Integer RANGE 0 TO 9 由此,可以总结出整数或实数用户定义数据类型的格式由此,可以总结出整数或实数用户定义数据类型的格式可写为:可写为:TYPE 数据类型名数据类型名 IS 数据类型定义数据类型定义 约束范围约束范围;硬件描述语言VHDL概述-二、3)用户定义的数据类型例子)用户定义的数据类型例子TYPE bit3 IS(0,1,Z);定义枚举类型定义枚举类型TYPE word IS ARRAY(31 DOWNTO 0)OF Bit;定义数组类型定义数组类型TYPE matrix IS ARRAY(1 TO 8,1 TO 8)OF Real;定义二维数组定义二维数组TYPE voltage IS RANGE 0.0 TO 10.0;定义子类型定义子类型(实型实型)TYPE complex IS RECORD re:Real;im:Real;END RECORD;定义记录类型定义记录类型硬件描述语言VHDL概述-二、4)IEEE标准标准“STD_LOGIC”、”STD_LOGIC_VECTOR”在在VHDL语言中,标准的数据类型语言中,标准的数据类型“BIT”是一个逻辑型是一个逻辑型的数据类型,这类数据取值只能是的数据类型,这类数据取值只能是0或或1。由于不。由于不存在不定状态存在不定状态X,故不便于仿真。另外,由于它也不存故不便于仿真。另外,由于它也不存在高阻状态,因此也很难用它来描述双向数据总线。在高阻状态,因此也很难用它来描述双向数据总线。为此为此IEEE在在1993年制订出新的标准年制订出新的标准(IEEE STD1164),使得使得“STD_LOGIC”型型(标准逻辑数据类型标准逻辑数据类型)数据可以具有如数据可以具有如下的下的9种不同的值:种不同的值:U,未初始化的未初始化的 X,强未知的强未知的 强强 强强 Z,高阻态高阻态 W,弱未知弱未知 L,弱弱 H,弱弱 _,忽略忽略硬件描述语言VHDL概述-二、5)IEEE标准标准”STD_LOGIC_ARITH”在在VHDL语言中,综合工具配带的扩展包集合中,定义了语言中,综合工具配带的扩展包集合中,定义了一些有用的数据类型,如无符号数据类型一些有用的数据类型,如无符号数据类型UNSINGED、有有符号数据类型符号数据类型SIGNED等。等。这些类型在这些类型在”STD_LOGIC_ARITH”中定义。中定义。有符号数据类型(有符号数据类型(SIGNED)SIGNED数据类型表示一个有符号的数值,综合器数据类型表示一个有符号的数值,综合器进行综合时将其解释成补码,它的最高位是符号位,进行综合时将其解释成补码,它的最高位是符号位,例如:例如:SIGNED(“1010”)代表代表-6SIGNED(“0101”)代表代表+5,5VARIABLE var:SIGNED(0 TO 10)表示变量表示变量var有有11 位,最左位位,最左位var(0)是符号位是符号位硬件描述语言VHDL概述-二、无符号数据类型(无符号数据类型(UNSIGNED)UNSIGNED数据类型代表一个无符号的数值,在数据类型代表一个无符号的数值,在综合中将其解释为二进制数,其最左位是最高位。例综合中将其解释为二进制数,其最左位是最高位。例如:如:UNSIGNED(“1011”)代表十进制的代表十进制的11SIGNAL sig:UNSIGNED(5 DOWNTO 0)最高位最高位sig(5)VARIABLE var:UNSIGNED(0 TO 15)最高位为最高位为var(0)如果要定义一个变量或信号的数据类型为如果要定义一个变量或信号的数据类型为UNSIGNED,则其位矢量长度越长,所代表的数值也越大。如一个则其位矢量长度越长,所代表的数值也越大。如一个4位变量的最大值为位变量的最大值为15,一个,一个8位变量的最大值为位变量的最大值为255,0是它们的最小值。是它们的最小值。不能用不能用UNSIGNED定义负数。定义负数。硬件描述语言VHDL概述-二、5)数据类型的转换)数据类型的转换 在在VHDL语言中,数据类型的定义是相当严格的,不同类语言中,数据类型的定义是相当严格的,不同类型

    注意事项

    本文(硬件描述语言VHDL概述硬件描述语言VHDL概述ppt课件.ppt)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开