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

下载本文档

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

文档简介

第一节VHDL语言的基本组成 第二节VHDL数据类型和属性 第三节VHDL的行为描述 第四节VHDL的结构描述 1 掌握用VHDL语言描述电路系统的行为和结构 2 初步理解现代电路的设计方法 从上到下的设计方法 3 借助软件平台使用VHDL语言进行电路系统的综合设计 本章的教学目标 给定电路与系统 设计方法 传统的电路系统设计方法 纯硬件逻辑设计试凑法 存在的问题 当系统规模增大 设计烦琐 设计工作量大 设计周期长 设计电路的体积大 功耗大 可靠性较低 交流性较差 现代电路的设计方法 硬件设计 软件设计从上至下的设计方法 出现HardwareDescriptionLanguage HDL AHDL HIHDL TEXAS DSL Lattice Verilog GatawayDesignAutomayion VHDL美国国防部在80年代初提出了VHSIC VeryHighSpeedIntegratedCircuit 计划 其目标之一是为下一代集成电路的生产 实现阶段性的工艺极限以及完成10万门级以上的设计 建立一项新的描述方法 1981年提出了一种新的HDL 称之为VHSICHardwareDescriptionLanguage 简称为VHDL VHDL概述 一 硬件描述语言 二 VHDL语言的主要优点 是一种多层次的硬件描述语言 覆盖面广 描述能力强 即设计的原始描述可以是非常简练的描述 经过层层细化求精 最终成为可直接付诸生产的电路级或版图参数描述 整个过程都可以在VHDL的环境下进行 VHDL有良好的可读性 即可以被计算机接受 也容易被理解用VHDL书写的原文件 即是程序 又是文挡 即是技术人员之间交换信息的文件 又可作为合同签约者之间的文件 VHDL概述 VHDL本身的生命期长 因为VHDL的硬件描述与工艺技术无关 不会因工艺变化而使描述过时 与工艺技术有关的参数可通过VHDL提供的属性加以描述 工艺改变时 只需修改相应程序中的属性参数即可 支持大规模设计的分解和已有设计的再利用 一个大规模设计不可能一个人独立完成 它将由多人 多项目组来共同完成 VHDL为设计的分解和设计的再利用提供了有力的支持 VHDL已成为IEEE承认的一个工业标准 事实上已成为通用硬件描述语言 二 VHDL语言的主要优点 VHDL概述 相同点 都是形式语言不同之处 增加了并行处理和延时 功耗参数说明等语句 三 VHDL语言与传统程序语言的比较 VHDL概述 第一节VHDL的基本组成 任何电路系统 参数部分 程序包 接口部分 设计实体 描述部分 结构体 第一节VHDL的基本组成 LIBRARYieee USEieee std logic 1164 all 一 参数部分 程序包 程序包 IEEE标准的标准程序包 设计者自身设计的程序包 设计中的子程序和公用数据类型的集合 调用数据类型标准程序包的VHDL语言描述 注意 设置在VHDL程序的前面 表示以后在实体或结构体中要用到数据类型包中的数据类型 二 接口部分 设计实体 设计实体 提供设计模块的公共信息 是VHDL设计电路的最基本部分 一个模块中仅有一个设计实体 ENTITYkxorIS PORT a1 b1 INstd logic c1 OUTstd logic ENDkxor 第一节VHDL的基本组成 ENTITY IS PORT IN OUT和END为关键字 ENTITY END之间表示实体内容 kxor表示实体的名称 即电路的符号名 PORT 端口 引脚 信息关键字 描述了信号的流向 IN 输入模式 OUT 输出模式 std logic表示信号取值的类型为标准逻辑位 二 接口部分 设计实体 第一节VHDL的基本组成 ENTITYselISPORT d0 d1 d2 d3 INBIT s ININTEGERRANGE0TO3 out1 OUTBIT ENDsel 二 接口部分 设计实体 第一节VHDL的基本组成 第一节VHDL的基本组成 三 描述部分 结构体 结构体 描述实体硬件的互连关系 数据的传输和变换以及动态行为 一个实体可以对应多个结构体 每个结构体可以代表该硬件的某一方面特性 例如行为特性 结构特性 ARCHITECTUREkxor arcOFkxorIS BEGIN c1 NOTa1ANDb1 OR a1ANDNOTb1 ENDkxor arc LIBRARYieee USEieee std logic 1164 all ENTITYkxorIS PORT a1 b1 INstd logic ENDkxor c1 OUTstd logic ARCHITECTUREkxor arcOFkxorIS BEGIN c1 NOTa1ANDb1 OR a1ANDNOTb1 ENDkxor arc 第一节VHDL的基本组成 VHDL的基本组成 第二节VHDL数据类型和属性 操作目标 信号 SIGNAL 变量 VARIABLE 常量 CONSTANT 文件量 FILE 一 VHDL操作目标 信号 它可以表示把元件的端口连接在一起的互连线 变量 用于对暂时数据的局部存储 变量只在进程和子程序内部定义 常量 对某些特定类型数据赋予的数值 文件量 文件的指针 文件的内部名 用于对文件的读 写操作 第二节VHDL数据类型和属性 一 VHDL操作目标 SIGNALclock BIT VARIABLEi INTEGER 13 CONSTANTdelay TIME 5ns FILEinput file TEXTOPENread modeIS STD INPUT FILE 目标的描述形式 第二节VHDL数据类型和属性 一 VHDL操作目标 表达式 规定目标的初始值 这是缺省部分 目标类型 规定目标的特征 VHDL含有很宽范围的数据类型 可以是自定义类型 定义方法 TYPEIS 目标 是一个或多个代表着目标种类的字符串 多个目标时用 号分开 VHDL有大量与类型兼容的有关规则 1 赋予目标的表达式数据类型必须和目标数据类型相同 2 许多预先确定的运算符的操作数必须具有相同的类型 3 一个实体的类型和它连接到的形式的类型相同 第二节VHDL数据类型和属性 一 VHDL操作目标 VHDL中常用三类目标 信号 变量和常量 信号和变量可以赋予一系列的值 而常量一次仅被分配一个值 变量和信号又有不同 赋予信号的数值要到未来的某个时刻 信号才接受当前的数值 而赋予变量的数值 变量立即接受当前的数值 变量赋值语句变量名 表达式信号赋值语句信号名 表达式 第二节VHDL数据类型和属性 一 VHDL操作目标 标量类型 复合类型 子类型 文件类型 寻址类型 二 VHDL数据类型 包括所有的简单类型 如整数 实数等 包括数组和记录 主要是对现有类型加以限制 在一般编辑语言中等价为指针 用设计者定义的文件类型为设计者提供说明的文件对象 VHDL有大量与类型兼容的有关规则 1 赋予目标的表达式数据类型必须和目标数据类型相同 2 许多预先确定的运算符的操作数必须具有相同的类型 3 一个实体的类型和它连接到的形式的类型相同 第二节VHDL数据类型和属性 标量数据类型是基本的数据类型 它包括整数类型 实数类型 物理类型和枚举类型 物理类型 提供一个基本单位 然后在这个基本单位上定义多个或零个次级单位 每个次级单位都是基本单位的整数倍 在形式上是定义括弧括起来的字符串文字表 一个字符串文字在枚举类型定义中只能出现一次 允许同样一个字符串文字出现在不同的枚举类型的字符串文字表中 枚举类型 一 标量数据类型 二 VHDL数据类型 第二节VHDL数据类型和属性 例1 TYPEcurrentISRANGE0TO1000000000 UNITSna ua 1000na ma 1000ua a 1000ma ENDUNITS ENTITYscale1ISPORT out1 OUTcurrent load1 INload ENDscale1 PACKAGEscaleIS TYPEloadIS small med big ENDscale USEwork scale all ARCHITECTUREscale1 arcOFscale1ISBEGINout1 100uaWHEN load1 small ELSE1maWHEN load1 med ELSE10maWHEN load1 big ELSE100ua ENDscale1 arc PACKAGEmeals pkgISTYPEmealIS breakfast lunch dinner ENDmeals pkg ENTITYmealsISPORT previous meal INmeal next meal OUTmeal ENDmeals ARCHITECTUREmeals arcOFmealsISBEGINWITHprevious mealSELECTnext meal breakfastWHENdinner lunchWHENbreakfast dinnerWHENlunch ENDmeals arc 例2 USEwork meals pkg all VHDL的基本组成 数组类型 相同类型的标量元素组成 数组可以是一维二维或多维 可以是限定的也可是非限定的 记录类型 把物理 整数 实数 枚举元素归成一个目标组 记录的每个元素由它的字段名访问 元素类型可以相同也可不同 二 复合数据类型 二 VHDL数据类型 第二节VHDL数据类型和属性 TYPEmatrixISARRAY row column OFstd logic TYPEr maISARRAY 1TO10 1TO40 OFstd logic TYPEwordISARRAY 15DOWNTO0 OFBIT TYPEcolumnISRANGE1TO40 TYPErowISRANGE1TO10 CONSTANTROM BIT VECTOR 0TO15 二 复合数据类型 二 VHDL数据类型 第二节VHDL数据类型和属性 用VHDL设计一维数组实现16 4的ROM程序 LIBRARYieee USEieee std logic 1164 all ENTITYromISPORT cs x1 x2 x3 x4 INstd logic d0 d1 d2 d3 OUTstd logic ENDrom ROM 例 0000 1011 0111 1111 x3x2x1x0 d0d1d2d3 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 ROM存储表 rom0 rom1 rom2 rom3 问题一如何定义存储表 问题二如何根据地址取出存储内容 ARCHITECTURErom arcOFromISBEGINPROCESS cs x1 x2 x3 x4 VARIABLEn NATURALRANGE0TO15 CONSTANTrom0 std logic vector 0TO15 0101010101010101 CONSTANTrom1 std logic vector 0TO15 0011001100110011 CONSTANTrom2 std logic vector 0TO15 0000111100001111 CONSTANTrom3 std logic vector 0TO15 0000000011111111 LIBRARYieee USEieee std logic 1164 all ENTITYromISPORT cs x1 x2 x3 x4 INstd logic d0 d1 d2 d3 OUTstd logic ENDrom BEGINIFcs 1 THENn 0 IFx1 1 THENn n 1 ENDIF IFx2 1 THENn n 2 ENDIF IFx3 1 THENn n 4 ENDIF IFx4 1 THENn n 8 ENDIF d0 rom0 n AFTER10ns d1 rom1 n AFTER10ns d2 rom2 n AFTER10ns d3 rom3 n AFTER10ns ELSEd0 Z AFTER10ns d1 Z AFTER10ns d2 Z AFTER10ns d3 Z AFTER10ns ENDIF ENDPROCESS ENDrom arc 在结构体说明区 ARCHITECTURE和BEGIN之间 被说明的目标 仅可以在此结构体中引用或在结构体中的任何进程语句中被引用 称此目标为局部信号 如果一个目标在实体说明部分被说明 那么在本实体和本实体内部的任何结构体和任何进程中都可以引用在实体中说明的目标 称为全局信号 全局信号 局部信号 二 VHDL数据类型 第二节VHDL数据类型和属性 三 数据类型的全局化和局部化 程序包 实体 结构体 进程 子程序 VHDL模块 被说明的目标 VHDL中目标类型规定在不同的模块中可以被说明 标量类型 复合类型 子类型可在所有的模块中说明 文件类型 子程序和进程语句说明区 寻址类型 进程语句说明区 目标类型与VHDL模块的对应关系 二 VHDL数据类型 第二节VHDL数据类型和属性 三 数据类型的全局化和局部化 VHDL的属性 信号类属性函数类属性值类属性类型类属性范围类属性 三 VHDL的属性 第二节VHDL数据类型和属性 TYPEbitISARRAY 63DOWNTO32 OFBIT VARIABLEleft range right range uprange lowrange INTEGER BEGINleft range bit LEFT right range bit RIGHT uprange bit HIGH lowrange bit LOW 一 值类属性值类属性用于返回数组的边界或长度 returns63 returns32 returns63 returns32 三 VHDL的属性 第二节VHDL数据类型和属性 例1 TYPEbitISARRAY 0TO7 OFBIT TYPEbit1ISARRAY 8TO31 OFBIT VARIABLElen1 len2 INTEGER BEGINlen1 bit LENGTH len2 bit1 LENGTH 返回数组范围的总长度 例2 return8 return24 一 值类属性 三 VHDL的属性 第二节VHDL数据类型和属性 用来检查一个信号的变化 并且变化刚刚发生 既推断出在信号上发生了一个跳变 二 函数信号属性函数信号属性用来返回有关信号行为功能的信息 它反映一个信号是否正好有值的变化或事件的发生 如时钟事件 clk EVENT 这个属性为 EVENT 对检查时钟边沿触发是很有效的 IFclk 1 ANDclk EVENTTHENq d ENDIF 三 VHDL的属性 第二节VHDL数据类型和属性 行为描述 在VHDL中 描述电路逻辑的程序 三个行为即可以是相互独立 成为单一的行为描述体 又可以相互联系 成为混合描述体 如进程行为描述行为之间是并行行为 进程行为体的内部是顺序行为 并行行为描述进程行为描述顺序行为描述 第三节VHDL的行为描述 在典型的编程语言如C或Pascal中 每个赋值语句按规定的次序 一个接在另一个之后顺序执行 执行的次序由源文件决定 在VHDL中 结构体的内部没有规定语句的次序 执行的次序仅由对语句中的敏感信号发生的事件决定 且语句是同时执行 产生其并行型 一 VHDL的并行行为 第三节VHDL的行为描述 1 并行赋值语句的一般格式如下 信号 信号名 表达式变量 变量名 表达式 作用 将表达式的信号值分配给对象 也就是说每当表达式的信号值变化时执行该语句 注意 每个表达式都至少有一个敏感信号 每当敏感信号改变其值时 赋值语句就执行 一 VHDL的并行行为 第三节VHDL的行为描述 在所有的并行语句中 两个以上的并行赋值语句在字面上的顺序并不表明它们的执行顺序 ENTITYexeISPORT a1 a2 INBIT b1 b2 OUTBIT ENDexe ARCHITECTUREexe arc1OFexeISBEGINb1 a1ANDb2 b2 NOTa1ORa2 ENDexe arc1 ARCHITECTUREexe arc2OFexeISBEGINb2 NOTa1ORa2 b1 a1ANDb2 ENDexe arc2 例 2 选择信号赋值语句每一个赋值语句都需要给出一个表达式 同时给出与该表达式的每个可能值相关联的信号 选择信号赋值语句的一般形式如下 WITHSELECTWHEN WHEN WHEN 一 VHDL的并行行为 第三节VHDL的行为描述 ARCHITECTUREsels arcOFselsISBEGINWITHsSELECTout1 d0WHEN0 d1WHEN1 d2WHEN2 d3WHEN3 ENDsels arc ENTITYselsISPORT d0 d1 d2 d3 INBIT s ININTEGERRANGE0TO3 out1 OUTBIT ENDsels 例 LIBRARYieee USEieee std logic 1164 all ENTITYmux4ISPORT I0 I1 I2 I3 A B INstd logic Q OUTstd logic ENDmux4 ARCHITECTUREmux4 arcOFmux4ISSIGNALsel INTEGER BEGINQ I0AFTER10nsWHENsel 0ELSEI1AFTER10nsWHENsel 1ELSEI2AFTER10nsWHENsel 2ELSEI3AFTER10ns sel 0WHENA 0 ANDB 0 ELSE1WHENA 1 ANDB 0 ELSE2WHENA 0 ANDB 1 ELSE3 ENDmux4 arc 例 顺序行为 执行的顺序是一个接在另一个之后严格执行 顺序行为的语句存在于VHDL程序中的进程行为之中 进程行为之间是并行行为语句 进程行为语句的一般形式如下 PROCESSBEGINWAITON WAITUNTIL WAITFOR ENDPROCESS 二 VHDL的进程行为 第三节VHDL的行为描述 进程行为的说明区定义该进程所需要的局部数据环境 它包括子程序说明 属性说明和变量说明等 变量说明的一般形式为 VARIABLE 下面进程说明区中说明了变量count 进程也可对变量赋值 PROCESSVARIABLEcount INTEGER 0 BEGINcount count 1 WAITFOR1000ns ENDPROCESS 二 VHDL的进程行为 第三节VHDL的行为描述 整个实体模块中的每个进程行为语句 可以在任何时候被激活 所有被激活的进程是并行执行的 下面举一个三八通用译码器程序的例子 说明进程语句如何工作 LIBRARYieee USEieee std logic 1164 all USEieee std logic arith all ENTITYdecoderISPORT sel INUNSIGNED 2DOWNTO0 dout OUTUNSIGNED 7DOWNTO0 ENDdecoder ARCHITECTUREdecoder arcOFdecoderISSIGNALsel1 INTEGER BEGINPROCESS sel BEGIN WHEN1 doutdoutdoutdoutdoutdoutdout 1 0 0 0 0 0 0 0 AFTER5ns ENDCASE ENDPROCESS ENDdecoder arc sel1dout 0 0 0 0 0 0 0 1 AFTER5ns 下例是另一种激活进程的方式 ENTITYregISPORT d clk INBIT q1 q2 OUTBIT ENDreg ARCHITECTUREreg arcOFregISBEGIN PROCESSBEGINWAITUNTILclk 1 q1 d ENDPROCESS PROCESSBEGINWAITUNTILclk 0 q2 d ENDPROCESS ENDreg arc 进程行为语句之间是并行关系 进程行为语句内部是顺序关系 VHDL的每个结构体中可以有多个进程行为语句 它的关键之处是 并行行为 结构体的内部没有规定语句的次序 执行的次序仅由对语句中的敏感信号发生的事件决定 且语句是同时执行 产生其并行型 常用的语句 选择信号赋值语句 小结 进程行为 行为描述的基本单元 只有当进程所需的敏感信号或敏感条件满足是 进程才被激活 进程中语句的执行是顺序执行的 进程之间是并行的 给定一个复杂模块该怎样描述 顺序行为语句可分为两大类 条件控制类 循环控制类 在这两类中选出六种IF CASE FOR WHILE LOOP EXIT和ASSERT进行讨论 三 VHDL的顺序行为 第三节VHDL的行为描述 IFTHEN ELSIFTHEN ELSIFTHEN ELSE ENDIF 1 IF语句 IF语句的一般形式为 三 VHDL的顺序行为 第三节VHDL的行为描述 ARCHITECTUREalarm arcOFalarmISBEGIN 用VHDL设计一家用告警系统的控制逻辑 它有来自传感器的三个输入信号smoke door water和准备传输到告警设备的三个输出触发信号fire alarm burg alarm water alarm以及使能信号en和alarm en VHDL程序描述如下 LIBRARYieee USEieee std logic 1164 all ENTITYalarmISPORT smoke door water INstd logic en alarm en INstd logic fire alarm burg alarm water alarm OUTstd logic ENDalarm 例 PROCESS smoke door water en alarm en BEGINIF smoke 1 AND en 0 THENfire alarm 1 ELSEfire alarm 0 ENDIF IF door 1 AND en 0 AND alarm en 0 THENburg alarm 1 ELSEburg alarm 0 ENDIF IF water 1 AND en 0 THENwater alarm 1 ELSEwater alarm 0 ENDIF ENDPROCESS ENDalarm arc 2 CASE语句 CASE语句的一般形式 CASEISWHEN WHEN WHEN WHENOTHERS ENDCASE 三 VHDL的顺序行为 第三节VHDL的行为描述 1 关键字WHEN的数量不作限制 但不容许两个语句用一个值 2 所有WHEN后面的值在CASE语句中合起来的值域中的全部 3 WHEN的次序可以任意排定 注意 每当单个表达式的值在多个起作用的项中选择时 用CASE语句语句是较合适的 它根据所给表达式的值域 选择 后面的执行语句 2 CASE语句 三 VHDL的顺序行为 第三节VHDL的行为描述 3 FOR语句FOR循环语句的一般形式为 FORINLOOP ENDLOOP FORiIN1TO3LOOPa i i i ENDLOOP 循环语句变量为i 循环范围为 1TO3 语句部分是乘方 例 三 VHDL的顺序行为 第三节VHDL的行为描述 4 WHILE LOOP语句WHILE LOOP循环语句的一般形式为 WHILELOOP ENDLOOP 循环的条件是布尔表达式 在每次执行循环前检查条件为真时执行循环 为假时结束循环 WHILE X 10 LOOPX X 1 ENDLOOP 例 三 VHDL的顺序行为 第三节VHDL的行为描述 5 断言语句ASSERTASSERT语句等价于一个进程语句 它不作任何操作 仅用于判断某个条件是否成立 当条件为真 该语句任何事都不做 如果为假 则报告一串信息给设计者 例 RS触发器 当r和s同时等于1时 触发器处于不定状态 ENTITYRSFFISPORT r s INBIT q not q OUTBIT ENDRSFF 三 VHDL的顺序行为 第三节VHDL的行为描述 ARCHITECTURERSFF arcOFRSFFISBEGINPROCESS r s VARIABLElast state BIT 0 BEGINASSERTNOT r 1 ANDs 1 REPORT BothrANDsequalto 1 SEVERITYerror IFr 0 ANDs 0 THENlast state last state ELSIFr 1 ANDs 0 THENlast state 0 ELSE r 0 ANDs 1 last state 1 ENDIF q last stateAFTER10ns not q NOT last state AFTER20ns ENDPROCESS ENDRSFF arc 给定一个复杂模块该怎样描述 信号可被看作两个元件之间数据传输的通路 第四节VHDL的结构描述 实体主要描述元件 端口与信号 元件是硬件的描述 即门 芯片或者电路板 端口是元件与外界的连接点 数据通过端口进入或流出元件 信号则是作为硬件连线的一种抽象描述 它即能保持变化的数据 又可以连接各个子元件 对一个硬件的结构进行描述 就是要描述它由哪些子元件组成 以及各个子元件之间

温馨提示

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

评论

0/150

提交评论