超高速集成电路硬件描述语言VHDL_第1页
超高速集成电路硬件描述语言VHDL_第2页
超高速集成电路硬件描述语言VHDL_第3页
超高速集成电路硬件描述语言VHDL_第4页
超高速集成电路硬件描述语言VHDL_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

超高速集成电路硬件描述语言VHDL,概要,第一节VHDL语言的基本结构,第二节VHDL数据类型和属性,第三节VHDL的行为描述,第四节VHDL的结构描述,总结,VHDL的概要,设计方法现有的电路系统设计方法:纯硬件逻辑设计(试验法), 问题:系统规模增大,设计工作量大,设计周期长,设计电路体积大,功耗大,可靠性低,交流性差。 现代电路的设计方法:硬件设计软件设计从上到下的设计方法、HardwareDescriptionLanguage、HDL、 硬件描述语言ABELAHDLVerilogHDLVHDL美国国防部在80年代初提出了VH sic (veryhighespeedintegratedcircuit )计划,其目标之一是为了生产下一代集成电路,阶段性的过程限制1981年提出了新的HDL,称为vhsichardwaredescriptionlanguage,简称VHDL。 VHDL概述、VHDL语言的主要优点是多层次的硬件描述语言,复盖面广、描述能力强。 即,设计的原始描述可以是非常简单的描述,成为电路级别或布局的参数描述,其经过分级精简,最终可以直接转变成生产,并且整个过程可以在VHDL的环境中完成。 VHDL可读性高,即使被计算机接受,用VHDL写的原文件也容易理解,既是程序,也是文件,是技术人员之间交换信息的文件,也是签约者之间的文件。VHDL概述、VHDL本身寿命长。 由于VHDL的硬件记述与过程技术没有关系,所以记述不会因过程的变化而变旧。 可以利用VHDL所提供的属性来描述与过程技术相关联的参数,并且如果改变了过程,则可仅修改那些程序的属性参数。 支持大规模设计的分解和现有设计的再利用。 一个大设计不能独立完成。 那个由多人、多个项目组共同完成。 VHDL为分解设计和重复使用设计提供了强有力的支持。 VHDL成为IEEE认可的工业标准,实际上成为通用硬件记述语言。VHDL概述、VHDL语言的主要优点、第一节VHDL的基本配置、VHDL语言、参数部分包、接口部分-设计实体、描述部分-结构、库IEEE; USEieee.std_logic_1164.all; 另一方面,参数部包括:包、设计者自己设计的包、设计中的子例程和公共数据类型的集合。 调用数据类型标准软件包的VHDL语言描述位于VHDL程序的开头,指示将在以后用于实体或结构的数据类型软件包的数据类型。二、接口部分-提供设计实体、设计模块的共同信息是VHDL设计电路的最基本部分。 VHDL实体的描述方法: ENTITYkxorIS,PORT(a1,b1:INstd_logic; c1:OUTstd_logic;ENDkxor; 的双曲馀弦值。2,接口部分-设计图元,实体,IS,端口,IN,OUT, 在以END为关键字的ENTITY.END之间表示实体内容的kxor表示实体的名称,即电路的符号名称的PORT端口(管脚)信息关键字描述信号流的IN输入模式OUT输出模式ST ,ENTITYselISPORT(d0,d1,d2,d 3:位; s:ININTEGERRANGE0TO3; out1:OUTBIT; ENDsel; 二、接口部-描述设计实体,重复示例:三、描述部-描述结构、结构、物理硬件互连关系、数据传输和转换以及动态操作。 此外,实体可以对应于多个结构,每个结构可以指示硬件的一个方面的特性,例如工作特性、结构特性。 ARCHITECTUREkxor_arcOFkxorIS、BEGIN、c1:=;第二节VHDL数据类型和属性、目标:表示目标类型的字符串,多个目标由“、”分隔。=; 目标类型:信号、变量和常量。信号表示连接组件端口的互连。 变量:用于本地存储临时数据,变量仅在进程和子例程内定义。 常数:分配给特定类型数据的一次性数字。 表达式:表达式用于指定目标的初始值,这是默认部分。 目标类型:为了规定目标的特性,VHDL包含广泛的数据类型。 VHDL除了基本的数据类型外,设计者还可以建立自己的数据类型,类型说明部分规定了类型名称和类型范围,其一般格式为: VARIABLEa1:INTEGER:=3;TYPEIS;纯量型、复合型、子型、文件型、地址型。 纯量类型包括所有简单类型(如整数和实数),复合类型包括数组和记录,地址类型在常规编辑语言中等效于指针,文档类型是设计者定义的文档类型为设计者提供说明的文档对象,子类型主要限制现有类型。 VHDL提供了五种类型的数据类型:1、标量数据类型和标量数据类型是基本数据类型,包括整数类型、实数类型、物理类型和枚举类型。 中选择所需的墙类型。 物理类型指定基本单位,并为此基本单位定义多个或零个子单位。 每个子单位是基本单位的整数倍。 枚举类型定义了形式上用括号括起来的字符串文字表,一个字符串文字在枚举类型定义中只出现一次,但同一字符串文字可以出现在不同枚举类型的字符串文字表中。 枚举类型字符串文字表的文字由设计者定义,这些字符可以是单个字符,也可以是字符串,例如BREAKFAST、Lunch、a等。 列举VHDL程序来理解枚举类型的使用。 的双曲馀弦值。 一个目标的数字可能经常更改,或者可能包含多个值,但一个目标一次只能说明一种类型。 package meals _ pkgistypemealis (breakfast,lunch,dinner) ENDmeals_pkg; 例1 :USEwork.meals_pkg.all; architecture meals _ arcofilmlsisbeginwithprevious _ mealselectnext _ meal=breakfastwhindner、lunchwhybeakfast、dinnerWHENlunch; ENDmeals_arc; 自定义包的名称、枚举数据类型的名称、三个枚举数据、entitymealsisport (previous _ meal : in meal; next_meal:OUTmeal; ENDmeals;自定义包、枚举型数据、二、复合数据型、复合型由数组型和记录型构成,这些要素是标量型要素。 数组类型由相同的标量元素组成。 也就是说,对于同源复合类型,数组可以是一维的二维或多维。 例如,TYPEmatrixISARRAY(row,column)OFstd_logic; typer _ mais array (1to 10,1 to 40 ) of STD _ logic; typewordisarray (15 down to0) of bit; TYPEcolumnISRANGE1TO40; TYPErowISRANGE1TO10;constant rom : bit _ vector (0to 15 )、Word(15)word(0)有16个数据类型相同的要素。architecture rom _ arcofromisbeginprocess (cs,x1,x2,x3,x4 ) variable n : natural range0to 15; 常规rom 0: STD _ logic _ vector (0to 15 ) :=“010101010101”; 常规rom 1: STD _ logic _ vector (0to 15 ) :=“00110010011”; constant rom 2: STD _ logic _ vector (0to 15 ) :=“00001110001111”constant rom : STD _ logic _ vector (0to 15 ) :=“00000001111111111” 此外,列举VHDL程序,说明一维排列装置164的ROM。 LIBRARYieee; USEieee.std_logic_1164.all; ENTITYromISPORT(cs、x1、x2、x3、x4:INstd_logic; d0,d1,d2,d3:OUTstd_logic; ENDrom; 另外,rom0(0)=0,rom0(15)=1,BEGIN,IFCS=1thenn :=0; ifx1=1thenn :=n 1; ENDIF; if x2=1thenn :=N2; ENDIF; ifx3=1thenn :=n 4; ENDIF; ifx4=1thenn :=n 8; ENDIF; d0=rom0(n)AFTER10ns; d1=rom1(n)AFTER10ns; d2=rom2(n)AFTER10ns; d3=rom3(n)AFTER10ns; elsed0=zafter 10 ns; D1=zafter 10 ns; D2=zafter 10 ns; D3=zafter 10 ns; ENDIF; 结束流程; ENDrom_arc; 的双曲馀弦值。 地址n的4位数据被传送到输出d 0到d 3。 芯片不起作用时,将高电阻送至输出d0d3。在,结构体记述领域(ARCHITECTURE和BEGIN之间)记述的目标,只能在该结构体中参照,或者在结构体内的过程语句中参照。 这个目标被称为本地信号。 数据类型的全球化和本地化可以由VHDL描述语言的组成部分或包、实体、结构(结构具有过程)和子例程组成,其不同目标可以在指定组成部分中解释。 中选择所需的墙类型。 如果在实体描述部分中描述了目标,则实体和实体中的结构和进程都可以引用此目标,称为全局信号。纯量型:实体,结构,进程描述区域和包和子例程。 复杂类型:实体、结构、进程描述符、包和子程序。 文件类型:子例程和进程描述区域。 地址类型:进程语句的说明区域。 在VHDL中,不同的目标和类型的规定可以用不同的结构来说明。 信号:实体,结构说明区域,包装,子程序。 变量:进程描述区域和子例程。 常量:实体、结构、进程描述符、包和子例程。VHDL的属性,type bit1isarray (63 down to 32 ) of bit; VARIABLEleft_range,right_range,uprange,lowrange:INTEGER; begin left _ range :=bit 1left; -return s 63 right _ range :=bit 1right; -returns 32 up range :=bit 1high; -return s63 low range :=bit 1low; -returns32,值类属性:值类属性用于返回数组的边界或长度,首先以数组边界为例说明值类属性。 例8 :TYPEbit1ISARRAY(0TO7)OFBIT; TYPEbit2ISARRAY(8TO31)OFBIT; 可变len 1,len 2:集成器; begin len 1:=bit 1length; -return8len 2:=bit 2length; -return24,以下是返回数组范围总长度的值类数组属性的示例。 例如,它检查信号的变化,推定是刚发生变化,信号发生了跳跃。 函数信号属性:函数信号属性用于返回有关信号行为功能的信息,信号正好反映值的变化和事件的发生。 例如,在clkevent中,该属性为“event”,对于检查时钟的边缘触发是有效的。 以说明如何使用函数信号的属性。if clk=1and clkeventthenq=d; ENDIF; 并且,在上述文中使用函数信号属性clkevent,说明了在时钟信号clk为高电平、事件刚发生时,即时钟的上升有效的情况下,得到q为d的信号。第三节VHDL的行为记述,三个行为相互独立,成为单一的行为记述体或者相互联系,成为混合记述体,例如过程行为记述行为之间是并行行为,过程行为体的内部是依次行为。 在典型的编程语言,例如c或Pascal中,以规定的顺序、以接着一个或多个的顺序来执行、一、VHDL的并行动作,在源文件中决定执行的顺序。 而且,在VHDL中,在结构内没有规定语句的顺序,执行的顺序只由对语句中的敏感信号发生的事件决定,语句可以同时执行。 结构中并行赋值语句的一般格式为: 的双曲馀弦值。 在读取对象时,将表达式的信号值指定给对象,以便在表达式的信号值发生变化时执行语句。 每个表达式至少有一个敏感信号,每当敏感信号改变其值时,执行该信号代入语句。 在,所有的并列句子中,并非2个以上的并列代入句子按照文字顺序执行。 例如,以下两个结构在功能上是等价的。 ENTITYexeISPORT(a1,a 2:入位; b1,b 2:输出位; ENDexe; architecture exe _ a rc1 ofexeisbeginb1=a1 andb 2; b2=NOTa1ORa2; ENDexe_arc1;architecture exe _ arcr2ofexeisbeginb2=nota1ora 2; b1=a1ANDb2; ENDexe_arc2; 另一个并行信号赋值语句是选择信号赋值语句。 每个赋值语句都必须提供表达式以及与该表达式的每个可能值相关联的信号。选择信号赋值语句的一般形式如下:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论