VHDL硬件描述语言.ppt

上传人:sh****n 文档编号:8628556 上传时间:2020-03-30 格式:PPT 页数:245 大小:3.17MB
返回 下载 相关 举报
VHDL硬件描述语言.ppt_第1页
第1页 / 共245页
VHDL硬件描述语言.ppt_第2页
第2页 / 共245页
VHDL硬件描述语言.ppt_第3页
第3页 / 共245页
点击查看更多>>
资源描述
EDA技术与数字系统设计 1 第4章VHDL硬件描述语言 4 1概述4 2VHDL语言设计实体的基本结构4 3VHDL语言结构体的描述方式4 4VHDL语言的库 程序包及配置4 5VHDL语言的语言要素4 6VHDL语言的描述语句 EDA技术与数字系统设计 2 4 1概述 VHDL语言是一种在EDA设计中广泛流行的硬件描述语言 主要用于描述数字系统的结构 行为 功能和接口 除了含有许多具有硬件特征的语句外 VHDL语言的句法 语言形式和描述风格十分类似于一般的计算机高级语言 是目前硬件描述语言中应用最为广泛的一种 第4章VHDL硬件描述语言 EDA技术与数字系统设计 3 4 1 1VHDL语言简介 VHDL语言全称是 超高速集成电路硬件描述语言 它诞生于1982年 由美国国防部于20世纪七 八十年代组织研制开发 其目的首先是用这种语言描述复杂电路 其次是希望这种语言能够成为一种标准语言 第4章VHDL硬件描述语言 1987年底 VHDL语言被电气和电子工程师协会IEEE和美国国防部确认为标准硬件描述语言 版本为IEEE 1076 简称87版 此后在电子产业界被广泛地接受 并逐步取代了原有的非标准硬件描述语言 如CUPL ABEL等 EDA技术与数字系统设计 4 4 1 1VHDL语言简介 1993年 IEEE对VHDL进行了修订 增加了一些功能 并从更高的抽象层次和系统描述能力上扩展VHDL的内容 公布了VHDL新的版本 编号为IEEEStd1076 1993 简称93版 第4章VHDL硬件描述语言 1995年中国国家技术监督局组织编写并出版了 CAD通用技术规范 推荐VHDL语言作为我国电子自动化硬件描述语言的国家标准 1996年 IEEE1076 3成为VHDL综合标准 EDA技术与数字系统设计 5 4 1 1VHDL语言简介 目前 VHDL已经成为一个数字电路和硬件系统描述 综合 优化和布线的IEEE工业标准 已得到众多EDA公司的支持 越来越多的硬件电路设计工具向VHDL标准靠拢 支持VHDL语言 在电子工程领域中 无论ASIC设计人员 还是系统设计人员 都需要学习VHDL语言来提高自己的工作效率 有专家认为 在未来的IT行业中 VHDL语言和VerilogHDL语言将承担几乎全部的数字系统设计任务 第4章VHDL硬件描述语言 EDA技术与数字系统设计 6 4 1 2VHDL语言特点 VHDL语言作为一种标准的硬件描述语言 具有结构严谨 描述能力强的特点 支持从系统级到逻辑门级电路所有层次的设计 适合于复杂逻辑电路和系统的设计 第4章VHDL硬件描述语言 作为高级硬件描述语言 VHDL有如下特点 支持从系统级到逻辑门级电路的描述 具有很强的硬件描述能力 设计技术齐全 方法灵活 支持广泛 对设计描述具有相对的独立性 具有很强的移植能力 易于共享和复用 具有丰富的仿真语句和库函数 EDA技术与数字系统设计 7 4 1 2VHDL语言特点 第4章VHDL硬件描述语言 作为高级硬件描述语言 VHDL有如下特点 设计结构清晰 易读易懂 易实现系统的更新和升级 数据类型丰富 安全性好 EDA技术与数字系统设计 8 4 2VHDL语言设计实体的基本结构 用VHDL语言设计的电路无论规模大小 都要使用一个完整的VHDL程序结构 这个完整的程序结构称为设计实体或实体 设计实体是指能被VHDL语言综合器所接受 并能作为独立的设计单元 以元件的形式存在的VHDL语言程序 所谓的元件 既可以被高层次的系统调用 成为系统的一部分 也可以作为一个电路的功能模块 独立存在和运行 第4章VHDL硬件描述语言 EDA技术与数字系统设计 9 4 2 1VHDL语言设计实体的组成 VHDL语言的设计实体都由实体说明 Entity 和结构体 Architecture 两个最基本的部分组成 实体说明部分用来描述该模块或系统的接口信息 包括端口的数目 方向和类型 其作用相当于传统设计方法中所使用的元件符号 结构体部分则描述该模块的内部电路 对应于原理图 逻辑方程和模块的输入 输出特性 一个设计实体可以包含一个或多个结构体 用于描述其的逻辑结构和逻辑功能 第4章VHDL硬件描述语言 EDA技术与数字系统设计 10 1 VHDL设计实体的结构 第4章VHDL硬件描述语言 一个完整的VHDL设计实体 设计文件 通常包括 实体说明 Entity 结构体 Architecture 配置 Configuration 库 Library 和程序包 Package EDA技术与数字系统设计 11 1 VHDL设计实体的结构 第4章VHDL硬件描述语言 库 程序包 配置 设计实体 实体说明 结构体 进程或其他并行结构 基本结构 EDA技术与数字系统设计 12 2 设计实体举例 例4 2 1 试用VHDL语言设计一个四选一数据选择器 第4章VHDL硬件描述语言 数据输入 D3D2D1D0 数据输出 Y 选择控制 S1S0 EDA技术与数字系统设计 13 第4章VHDL硬件描述语言 VHDL程序如下 LIBRARYIEEE IEEE库USEIEEE STD LOGIC 1164 ALL 程序包USEIEEE STD LOGIC ARITH ALL USEIEEE STD LOGIC UNSIGNED ALL ENTITYmux41IS 定义实体名PORT S1 S0 INSTD LOGIC 定义输入信号D3 D2 D1 D0 INSTD LOGIC Y OUTSTD LOGIC 定义输出信号 ENDmux41 ARCHITECTUREbehaveiorOFmux41IS 定义结构体名BEGIN 逻辑功能描述Y D0WHENS1 0 ANDS0 0 ELSED1WHENS1 0 ANDS0 1 ELSED2WHENS1 1 ANDS0 0 ELSED3 ENDbehaveior 库 程序包 实体说明 结构体 EDA技术与数字系统设计 14 2 设计实体举例 库 是用来存放已设计好的程序包 数据集合体 元件的仓库 供用户进行VHDL设计时调用 第4章VHDL硬件描述语言 程序包 用VHDL语言编写的共享文件 定义了将要使用的常数 数据类型 子程序和设计好的电路单元等 实体说明 定义电路单元的输入 输出引脚信号 以标识符ENTITY开始 以END结束 结构体 用来描述电路内部结构和逻辑功能 并以标识符ARCHITECTURE开头 以END结尾 EDA技术与数字系统设计 15 4 2 2VHDL语言的实体说明 实体说明是VHDL程序设计中最基本的组成部分 主要用来描述设计实体的外部接口信号 定义设计单元的输入 输出端口 是设计实体对外的一个通信界面 但它不描述设计的具体功能 第4章VHDL硬件描述语言 实体说明语句的格式如下 ENTITY实体名IS GENERIC 类属表 PORT 端口表 END ENTITY 实体名 实体说明语句类属说明语句端口说明语句结束语句 规则 实体声明语句必须以 ENTITY实体名IS 开始 以 ENDENTITY实体名 结束 实体名是设计者给设计实体的命名 方括号内的语言描述可任选 EDA技术与数字系统设计 16 1 实体说明语句ENTITY 该语句是实体说明的引导语句 用来指明实体说明部分的开始 并定义实体名 第4章VHDL硬件描述语言 关键字 ENTITY格式 ENTITY实体名IS 在设计编程时 实体名必须与设计文件名相同 否则无法编译 EDA技术与数字系统设计 17 2 类属说明语句GENERIC 该语句用来确定设计实体中定义的局部常数 将外部环境的信息参数传递到设计实体 并用类属表的形式指明器件的一些特征 第4章VHDL硬件描述语言 关键字 GENERIC格式 GENERIC 常数名 常数名 数据类型 设定值 常数名 常数名 数据类型 设定值 常数名 是由设计者定义的类属常数名 数据类型 常取INTEGER或TIME的类型 设定值 为常数名所代表的数值 EDA技术与数字系统设计 18 2 类属说明语句GENERIC 例如 第4章VHDL硬件描述语言 类属表对数据总线的类型和宽度做了定义 类属参数datawith的数据类型为整数 数据宽度为8位 ENTITYbodyISGENERIC datawidth INTEGER 8 类属说明必须位于端口说明之前 用于指定设计实体和外部环境通信的参数 并以关键字GENERIC引导一个类属参数表 在表中提供时间参数 总线宽度等信息 EDA技术与数字系统设计 19 3 端口说明语句PORT 该语句是设计实体与外界接口的描述 用来指明实体的输入 输出信号及其模式 包括端口的名称 数据的类型和数据的传递方向 端口模式 第4章VHDL硬件描述语言 关键字 PORT格式 PORE 端口名 端口名 端口模式数据类型 端口名 端口名 端口模式数据类型 端口名 是赋予每个外部引脚的名称 通常用一个或几个英文字母 或者用英文字母加数字命名 端口模式 即端口方向 用来定义外部引脚的信号方向 共有五种模式 数据类型 用来指定每个端口信号的取值类型 共有10种 EDA技术与数字系统设计 20 3 端口说明语句PORT 端口模式说明 第4章VHDL硬件描述语言 EDA技术与数字系统设计 21 3 端口说明语句PORT 端口模式的符号 第4章VHDL硬件描述语言 IN端口模式 OUT端口模式 INOUT端口模式 BUFFER端口模式 EDA技术与数字系统设计 22 3 端口说明语句PORT 例4 2 2 编写2输入与非门的实体说明 第4章VHDL硬件描述语言 设与非门的输入为A和B 输出为Y ENTITYnand2ISGENERIC risew TIME 1ns fallw TIME 1ns PORT A INSTD LOGIC B INSTD LOGIC Y OUTSTD LOGIC ENDnand2 定义risew为上升沿 定义fallw为下降沿 定义A B和Y为逻辑位 EDA技术与数字系统设计 23 4 2 3VHDL语言的结构体 结构体是设计实体的核心 它具体指明了设计实体的行为 元件及内部连接关系 第4章VHDL硬件描述语言 结构体所承担的任务 定义结构体内部所使用的各项元素 通过VHDL提供的语句来描述设计实体所要求的具体行为和功能 描述各元件之间的连接 EDA技术与数字系统设计 24 4 2 3VHDL语言的结构体 结构体内部构造的描述层次和描述内容 第4章VHDL硬件描述语言 结构体 结构体说明 结构体功能描述 常数说明 数据类型说明 信号说明 例化元件说明 子程序说明 块语句 进程语句 信号赋值语句 子程序调用语句 元件例化语句 EDA技术与数字系统设计 25 4 2 3VHDL语言的结构体 第4章VHDL硬件描述语言 结构体由两个基本部分组成 结构体说明 用来对数据类型 常数 信号 子程序和元件等进行说明 结构体功能描述 用来描述设计实体的逻辑行为 可以用不同的描述风格来表达设计实体的逻辑功能 EDA技术与数字系统设计 26 第4章VHDL硬件描述语言 结构体的格式 1 结构体的基本格式 ARCHITECTURE结构体名OF实体名IS 结构体说明语句 BEGIN 功能描述语句 END ARCHITECTURE 结构体名 EDA技术与数字系统设计 27 第4章VHDL硬件描述语言 结构体引导语句用来引导结构体的开始 并定义结构体的名称 2 结构体引导语句 关键字 ARCHITECTURE格式 ARCHITECTURE结构体名OF实体名IS 结构体名是给予结构体的名称 是该结构体唯一的名字 用来表明该结构体所隶属于哪个实体 EDA技术与数字系统设计 28 第4章VHDL硬件描述语言 用于定义结构体中所用的数据对象和子程序 并对所引用的元件加以说明 如 3 结构体说明语句 信号 SIGNAL 类型 TYPE 常数 CONSTANT 元件 COMPONENT 函数 FUNCTION 过程 PROCEDURE EDA技术与数字系统设计 29 第4章VHDL硬件描述语言 4 功能描述语句 用于描述实体的逻辑功能 功能描述语句结构可以含有五种不同类型 EDA技术与数字系统设计 30 第4章VHDL硬件描述语言 4 功能描述语句 块语句 BLOCK 块语句结构是由若干个并行执行语句构成的组合体 其功能是将结构体中的并行语句包装在一起 组成一个或多个模块 即子模块 进程语句 PROCESS 定义顺序语句模块 其内部为顺序语句 将从外部获得的信号值 或内部的运算数据向其他信号进行赋值 信号赋值语句 SIGNAL 用来将设计实体内的处理结果向所定义的信号或界面端口进行赋值 EDA技术与数字系统设计 31 第4章VHDL硬件描述语言 4 功能描述语句 子程序调用语句由过程 PROCEDURE 和函数 FUNCTION 组成 其内部是顺序语句 用来调用过程和函数 并将结果赋值给信号 元件例化语句 COMPONENT 元件例化语句用来调用另一个设计实体所描述的电路 调用时 元件例化语句对其他的设计实体做元件调用说明 并将元件的端口与其他元件 信号或高层设计实体的界面端口进行连接 EDA技术与数字系统设计 32 第4章VHDL硬件描述语言 例4 2 3 编写一个四位二进制加法计数器的结构体 计数器共有三个输入和五个输出 输入 时钟输入端CLK 使能控制端EN和异步清零端Rd 输出 四位状态输出Q3 Q0和进位输出CO 设计程序的结构体如下 ARCHITECTUREbehaviorOFcounter16ISBEGINCO 1 WHEN Q 1111 ANDEN 1 ANDRd 1 ELSE 0 条件赋值语句PROCESS CLK Rd 进程语句BEGINIF Rd 0 THENQ 0000 IF语句ELSIF CLK EVENTANDCLK 1 THEN CLK上升沿计数IF EN 1 THENQ Q 1 ENDIF ENDIF ENDPROCESS ENDbehavior EDA技术与数字系统设计 33 4 3VHDL语言结构体的描述方式 VHDL语言的结构体可以用不同的语句类型和描述方式来表达电路所期望的逻辑行为 而对于相同的逻辑行为 可以有不同的语句表达方式 第4章VHDL硬件描述语言 在VHDL语言中 这些描述方式或建模方式称为VHDL语言的描述风格 常用的描述方式主要有 行为描述 数据流描述 结构描述 混合描述 EDA技术与数字系统设计 34 行为描述依据设计实体的功能或算法对结构体进行描述 不需要给出实现这些行为的硬件结构 只强调电路的行为和功能 在结构体中 行为描述主要用函数 过程和进程语句 以功能或算法的形式来描述数据的转换和传送 第4章VHDL硬件描述语言 4 3 1结构体的行为描述 EDA技术与数字系统设计 35 例4 3 1 试用行为描述完成二选一数据选择器的设计 第4章VHDL硬件描述语言 设数据输入为d0和d1 选择输入为s 输出为y 程序清单 ENTITYmux21ISPORT d1 d0 INSTD LOGIC s INSTD LOGIC y OUTSTD LOGIC ENDmux21 ARCHITECTUREbehaviorOFmux21ISBEGINy d1WHENs 1 ELSEd0 ENDbehavior EDA技术与数字系统设计 36 行为描述类似于高级编程语言 主要是对设计实体的功能或数学模型进行描述 其抽象程度远高于数据流描述和结构描述 其特点如下 第4章VHDL硬件描述语言 行为描述具有很高的抽象程度 远高于数据流描述和结构描述 行为描述只需描述清楚输入与输出的行为 而与它们的结构无关 描述程序大多采用算术运算 关系运算 惯性延时 传输延时等语句 结构体中的过程语句属于典型的行为描述 EDA技术与数字系统设计 37 即逻辑描述 它利用VHDL语言中的赋值符和逻辑运算符进行描述 既包含逻辑单元的结构信息 又隐含地表示某种行为 第4章VHDL硬件描述语言 4 3 2结构体的数据流描述 例如 y aNORb z NOT aXORb y等于a与b的或非运算 z等于a与b的同或运算 这种方式主要采用非结构化的并行语句描述 EDA技术与数字系统设计 38 例4 3 2 将例4 3 1中的数据选择器采用数据流描述 第4章VHDL硬件描述语言 逻辑表达式 程序清单 ENTITYmux21ISPORT d1 d0 INSTD LOGIC s INSTD LOGIC y OUTSTD LOGIC ENDmux21 ARCHITECTUREdataflowOFmux21ISSIGNALtmp1 tmp2 tmp3 STD LOGIC BEGINtmp1 d1ANDs tmp2 d0AND NOTs tmp3 tmp1ORtmp2 y tmp3 ENDdataflow EDA技术与数字系统设计 39 结构描述是从设计实体的内部结构对结构体进行描述的 并给出该实体所包含的模块或元件的相互连接关系 这种方式主要采用元件例化 COMPONENT 的形式对设计实体进行描述 可以用不同类型的结构来实现多层次的工程设计 从简单的门电路到复杂的元件来描述整个系统 元件之间的连接通过定义的端口界面来实现 第4章VHDL硬件描述语言 4 3 3结构体的结构描述 EDA技术与数字系统设计 40 结构描述建模的步骤如下 第4章VHDL硬件描述语言 4 3 3结构体的结构描述 元件说明 描述局部接口 元件例化 相对于其他元件放置元件 元件配置 指定元件所有的设计实体 结构描述用于层次化设计 高层次的设计模块调用低层次的设计模块 或直接用门电路来构成一个复杂的逻辑电路 EDA技术与数字系统设计 41 例4 3 3 将例4 3 1中的数据选择器采用结构描述 第4章VHDL硬件描述语言 程序清单 ENTITYmux21ISPORT d1 d0 INSTD LOGIC s INSTD LOGIC y OUTSTD LOGIC ENDmux21 ARCHITECTUREstructureOFmux21ISCOMPONENTand2PORT a b INSTD LOGIC c OUTSTD LOGIC ENDCOMPONENT COMPONENTor2PORT a b INSTD LOGIC c OUTSTD LOGIC ENDCOMPONENT EDA技术与数字系统设计 42 例4 3 3 将例4 3 1中的数据选择器采用结构描述 第4章VHDL硬件描述语言 程序清单 COMPONENTnot1PORT a INSTD LOGIC c OUTSTD LOGIC ENDCOMPONENT SIGNALaa ab ns STD LOGIC BEGINU1 not1PORTMAP s ns U2 and2PORTMAP d1 s aa U3 and2PORTMAP ns d0 ab U4 or2PORTMAP aa ab y ENDstructure EDA技术与数字系统设计 43 混合描述就是在结构体中同时使用多种不同的描述方式 它可以使描述简单灵活 例如 在同一结构体中 分别使用元件例化语句和并行语句 就可以构成由两种描述方式的混合描述 第4章VHDL硬件描述语言 4 3 4结构体的混合描述 EDA技术与数字系统设计 44 例4 3 4 用混合描述完成半加器的设计 第4章VHDL硬件描述语言 表达式 sn an bncn an bn 数据流描述结构描述 程序清单 ENTITYhalf adderISPORT an bn INSTD LOGIC sn cn OUTSTD LOGIC ENDhalf adder ARCHITECTUREmix haOFhalf adderISCOMPONENTand2PORT a b INSTD LOGIC c OUTSTD LOGIC ENDCOMPONENT BEGINsn anXORbn U1 and2PORTMAP an bn cn ENDmix ha EDA技术与数字系统设计 45 第4章VHDL硬件描述语言 4 4VHDL语言的库 程序包及配置 在VHDL设计实体中 除了实体说明和结构体外 还有库 程序包和配置三个各自独立的组成部分 依据VHDL语言的规则 VHDL程序所使用的文字 数据对象 数据类型都需要预先定义 将预先定义好的数据类型 元件调用声明及一些常用子程序收集在一起 形成程序包 供VHDL设计实体共享和调用 若干个程序包则形成库 EDA技术与数字系统设计 46 库 Library 是用于存放预先设计好的程序包和数据的集合体 第4章VHDL硬件描述语言 4 4 1VHDL库 1 常用的库 VHDL语言中常用的五种库 IEEE库 STD库 WORK库 VITAL库 用户自定义库 VHDL语言设计中最常见的库 VHDL语言的标准库 用户的VHDL语言工作库 VHDL语言的时序仿真库 用户自定义的资源库 EDA技术与数字系统设计 47 第4章VHDL硬件描述语言 EDA技术与数字系统设计 48 第4章VHDL硬件描述语言 2 资源库和设计库 VHDL语言所使用的库可以分成两类 资源库 设计库 用于存放常规元件 标准模块 预定义数据类型等 如 IEEE库 是一种符合VHDL标准的预定义库 如 STD库定义了一些基本的数据类型 子类型和函数等 WORK库存放用户设计和定义的设计单元及程序包等 EDA技术与数字系统设计 49 第4章VHDL硬件描述语言 3 库的使用 关键字 LIBRARY格式 LIBRARY库名称 库说明语句 说明 用来指明所使用的库 库名称为一系列由逗号分隔的库名 库说明语句总是位于设计实体的最前面 通常与USE语句一起使用 EDA技术与数字系统设计 50 第4章VHDL硬件描述语言 3 库的使用 格式1 USE库名 程序包名 项目名 USE语句用来指明库中的程序包 有两种格式 作用 为本设计实体开放指定库中的特定程序包内所选定的项目 例如 LIBRARYIEEE USEIEEE STD LOGIC 1164 STD ULOGIC USEIEEE STD LOGIC 1164 RISING EDGE EDA技术与数字系统设计 51 第4章VHDL硬件描述语言 3 库的使用 格式2 USE库名 程序包名 ALL 作用 为本设计实体开放指定库中的特定程序包内所有的内容 例如 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL USEIEEE STD LOGIC UNSIGNED ALL EDA技术与数字系统设计 52 在VHDL语言中 用户可以将已定义的常数 信号 函数 数据类型 元件和子程序等收集在一起形成一个程序包 以便更多的设计实体利用和共享 第4章VHDL硬件描述语言 4 4 2VHDL程序包 定义程序包的一般语句格式 PACKAGE程序包IS程序包首说明END程序包名 PACKAGEBODY程序包IS程序包体说明END程序包名 程序包首 程序包体 EDA技术与数字系统设计 53 程序包首收集了VHDL设计所需的公共信息 用来定义数据类型 元件和子程序等 第4章VHDL硬件描述语言 1 程序包首 一般格式 PACKAGE程序包ISTYPE语句 SUBTYPE语句 CONSTANT语句 SIGNAL语句 COMPONENT语句 FUNCTION语句 SUBPROGRAM语句 END程序包名 用来定义数据类型 用来定义子类型 用来定义常数 用来定义信号 用来定义元件 用来定义函数 用来定义子程序 EDA技术与数字系统设计 54 第4章VHDL硬件描述语言 例4 4 1 定义程序包 PACKAGEmy pkgISTYPEbyteISRANGE0TO255 SUBTYPEnibyteISbyteRANGE0TO15 CONSTANTbyte ff bcd 255 SIGNALaddend nibabc COMPONENTbyte adderPORT a b INbyte c OUTbyte overflow OUTBOOLEAN ENDCOMPONENT FUNCTIONmy fun a INbyte RETURNbyte ENDmy pkg 程序清单 程序包首 程序包名为my pkg 定义数据类型 byte的范围0 255 定义子类型nibyte 定义常数byte ff 定义信号addend 定义元件byte adder 定义函数my fun EDA技术与数字系统设计 55 用来描述已在程序包首中定义过的元件和子程序的内容 第4章VHDL硬件描述语言 2 程序包体 一般格式 PACKAGEBODY程序包IS程序包体说明END程序包名 程序包体说明可以是USE语句 子程序定义 子程序体 数据类型说明 子类型说明和常数说明等 EDA技术与数字系统设计 56 常用的预定义的程序包有 第4章VHDL硬件描述语言 3 VHDL常用的程序包 STD LOGIC 1164 STD LOGIC ARITH STD LOGIC UNSIGNED和STD LOGIC SIGNED STANDARD和TEXTIO EDA技术与数字系统设计 57 配置是将特定的结构体与一个确定的实体相关联 为大型系统的设计提供管理和工程组织 配置是设计实体VHDL语言描述的组成部分之一 但不是必不可少的 常用来描述层与层之间 实体与结构体之间的连接关系 第4章VHDL硬件描述语言 4 4 3配置 配置可分为三种类型 默认配置 元件配置 结构体配置 EDA技术与数字系统设计 58 默认配置是一种最为简单的配置 当设计实体中不含有任何其他元件和块语句时 可以使用默认配置 第4章VHDL硬件描述语言 1 默认配置 基本格式 CONFIGURATION配置名OF实体名ISFOR选配结构体名 ENDFOR END配置名 EDA技术与数字系统设计 59 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYCOUNTERISPORT CLK CLR INSTD LOGIC Q OUTINTEGER ENDCOUNTER 第4章VHDL硬件描述语言 例4 4 2 设计两个计数位宽分别为4位和8位的计数器 设两个计数器具有相同的功能和外部结构 只是计数位宽不同 用一个计数器实体来实现两个不同结构体的配置 程序清单 计数器的实体 EDA技术与数字系统设计 60 第4章VHDL硬件描述语言 例4 4 2 设计两个计数位宽分别为4位和8位的计数器 程序清单 ARCHITECTURECOUNT4OFCOUNTERISBEGINPROCESS CLK VARIABLEQQ INTEGER 0 BEGINIFCLR 0 THENQQ 0 ELSIF CLK EVENTANDCLK 1 THENIFQQ 15THENQQ 0 ELSEQQ QQ 1 ENDIF ENDIF Q QQ ENDPROCESS ENDCOUNT4 计数器COUNT4的结构体 EDA技术与数字系统设计 61 第4章VHDL硬件描述语言 例4 4 2 设计两个计数位宽分别为4位和8位的计数器 程序清单 ARCHITECTURECOUNT8OFCOUNTERISBEGINPROCESS CLK VARIABLEQQ INTEGER 0 BEGINIFCLR 0 THENQQ 0 ELSIF CLK EVENTANDCLK 1 THENIFQQ 255THENQQ 0 ELSEQQ QQ 1 ENDIF ENDIF Q QQ ENDPROCESS ENDCOUNT8 计数器COUNT8的结构体 EDA技术与数字系统设计 62 第4章VHDL硬件描述语言 例4 4 2 设计两个计数位宽分别为4位和8位的计数器 程序清单 CONFIGURATIONCOUNT 4OFCOUNTERISFORCOUNT4ENDFOR ENDCOUNT 4 CONFIGURATIONCOUNT 8OFCOUNTERISFORCOUNT8ENDFOR ENDCOUNT 8 计数器的配置 EDA技术与数字系统设计 63 当结构体中含有多个引用元件时 可以采用元件配置 以指明引用元件的具体位置 第4章VHDL硬件描述语言 2 元件配置 格式 CONFIGURATION配置名OF实体名ISFOR选配结构体名FOR元件例化标号 元件名USECONFIGURATION库名 元件配置名 或USEENTITY库名 实体名 结构体名 ENDFOR ENDFOR END配置名 EDA技术与数字系统设计 64 CONFIGURATIONmux cfgOFmux21ISFORstructureFORU2 U3 and2USECONFIGURATIONWORK and2 cfg ENDFOR FORU4 or2USECONFIGURATIONWORK or2 cfg ENDFOR ENDFOR ENDmux cfg 第4章VHDL硬件描述语言 例4 4 3 给例4 3 3中的二选一数据选择器进行元件配置 程序清单 EDA技术与数字系统设计 65 结构体配置与元件配置具有相同的特征 都是对结构体中所引用的元件进行配置 但它们所处的位置和书写格式有很大的不同 结构体配置通常直接放在结构体说明语句的位置 而元件配置则是与元件所在的结构体分开的 第4章VHDL硬件描述语言 3 结构体配置 格式 FOR元件例化标号 元件名USEENTITY库名 实体名 结构体名 或FOR元件例化标号 元件名USECONFIGURATION库名 元件配置名 EDA技术与数字系统设计 66 第4章VHDL硬件描述语言 3 结构体配置 例如 对例4 3 3中的元件可采用结构体配置 FORU2 U3 and2USECONFIGURATIONWORK and2 cfg FORU4 or2USECONFIGURATIONWORK or2 cfg EDA技术与数字系统设计 67 第4章VHDL硬件描述语言 4 5VHDL语言的语言要素 语言要素是组成编程语句的基本单元 主要有 数据对象 Object 数据类型 Type 操作数 Operands 运算操作符 Operator EDA技术与数字系统设计 68 任何一种程序设计语言都有自己的一套书写符号和语法规则 这些符号和语法规则构成了程序设计语言的文字规则 第4章VHDL硬件描述语言 4 5 1VHDL语言的文字规则 1 数字型文字 数字型文字有多种表达方式 包括 整数型文字 实数型文字 数制基数型文字 物理量型文字 EDA技术与数字系统设计 69 第4章VHDL硬件描述语言 1 数字型文字 1 整数型文字 整数型文字都是十进制数 由数字和下划线组成 例如 0 6 876 516E2 23 456 789156E2 1560023 456 789 23456789 EDA技术与数字系统设计 70 第4章VHDL硬件描述语言 1 数字型文字 2 实数型文字 也是十进制数 但必须带小数点 由数字 小数点和下划线组成 例如 98 76 12 345 678 986 54 3 055 66E 2 0 012 345 678 986 54 12345678 9865455 66E 2 0 5566 EDA技术与数字系统设计 71 第4章VHDL硬件描述语言 1 数字型文字 3 数值基数型文字 用数制基数表示的文字 格式 数制 数值 E数值 由五部分组成 用十进制数表明数制的基数 数制隔离符号 用数值表达的文字 指数隔离符号 用十进制表示的指数部分 EDA技术与数字系统设计 72 第4章VHDL硬件描述语言 1 数字型文字 3 数值基数型文字 用数制基数表示的文字 例如 10 234 2 1101 1110 8 374 16 E E116 F 01 E 2 十进制数表示 等于234 二进制数表示 等于222 八进制表示 等于252 十六进制数表示 等于224 十六进制数表示 等于3841 00 EDA技术与数字系统设计 73 第4章VHDL硬件描述语言 1 数字型文字 物理量型文字用来表示时间 长度等物理量 例如 50s100m1k 100mA 表示50秒 时间 表示100米 长度 表示1千欧姆 电阻 表示100毫安培 电流 4 物理量型文字 EDA技术与数字系统设计 74 第4章VHDL硬件描述语言 2 字符串型文字 字符是用单引号括起来的ASCII字符 可以是数字 也可以是字母或符号 例如 0 2 A a 等 字符串是一维的字符数组 用双引号括起来 分为文字字符串和数值字符串 1 文字字符串用双引号括起来的一维字符文字 例如 ABC ERROR A B EDA技术与数字系统设计 75 第4章VHDL硬件描述语言 2 数值字符串 数值字符串也称为矢量 是预定义的数据类型BIT的一位数组 格式 数制基数符号 数值字符串 数制基数符号 B 二进制基数符号 O 八进制基数符号 X 16进制基数符号 例如 B 111010110 位矢量数组 长度为9O 12 等效B 001010 长度为6X BC6 等效B 101111000110 长度为12 EDA技术与数字系统设计 76 第4章VHDL硬件描述语言 3 标识符 标识符是设计人员为书写程序所规定的一些词 用来给常数 变量 信号 端口 子程序 实体和结构体等定义的名称 VHDL语言的标准版本分为VHDL 87版和VHDL 93版 VHDL 87版的标识符称为短标识符或标识符 VHDL 93版的标识符是基于VHDL 87标准扩展后形成的 故称作扩展标识符 EDA技术与数字系统设计 77 第4章VHDL硬件描述语言 3 标识符 短标识符为VHDL 87版规定的标识符 但VHDL 93版同样支持短标识符 1 短标识符 规则 以字母开头 后跟若干字母 数字或下划线构成 标识符不能以下划线结尾 标识符中的下划线不能连续使用 标识符中的字母不分大小写 VHDL的保留字不能用作标识符 例如 h adder mux21 example为合法标识符2adder mux21 ful adder adder 为非法标识符 EDA技术与数字系统设计 78 第4章VHDL硬件描述语言 3 标识符 满足VHDL 93版标准的标识符 2 扩展标识符 规则 扩展标识符用反斜杠 定界 如 ABOY 扩展标识符允许以数字开头 如 74LS193 扩展标识符允许使用空格符 图形符号及两个以上的下划线 如 SIG N 扩展标识符仍区分大小写字母 如 END 不同于 end 扩展标识符允许使用保留字 如 END 扩展标识符与同名的短标识符不同 如 CAD 不同于CAD EDA技术与数字系统设计 79 第4章VHDL硬件描述语言 3 标识符 3 下标名 用于指示数组型变量或信号的某一元素 格式 标识符 表达式 注意 表达式的数值必须在数组元素下标号范围以内 并且必须是可计算的 例如 a 2 b n EDA技术与数字系统设计 80 第4章VHDL硬件描述语言 3 标识符 4 段名 多个下标名的组合 用于指示数组型变量或信号的某一段元素 格式 标识符 表达式方向表达式 标识符 数组类型信号或变量方向 TO 数组下标序号由低到高DOWNTO 数组下标序号由高到低 例如 D 7DOWNTO0 表示数据总线D7 D0D 0TO7 表示数据总线D0 D7D 4TO6 表示数据总线D4 D6 EDA技术与数字系统设计 81 第4章VHDL硬件描述语言 3 标识符 5 保留字 保留字又称关键字 是具有特殊含义的标识符 只能作为固定的用途 不能直接作为标识符 扩展标识符除外 EDA技术与数字系统设计 82 第4章VHDL硬件描述语言 3 标识符 5 保留字 EDA技术与数字系统设计 83 第4章VHDL硬件描述语言 4 注释 VHDL语言与其他程序设计语言一样 为了便于理解和阅读 常在编写的程序中加上注释 VHDL语言的注释符用双减号 表示 注释语句以注释符引导 到行尾结束 注释可以加在程序语句结束符 之后 也可以加在空行处 EDA技术与数字系统设计 84 VHDL语言除了具有一定的语法规则外 还定义了可以接受不同数据类型赋值的数据对象 第4章VHDL硬件描述语言 4 5 2VHDL语言的数据对象 常量 CONSTANT 变量 VARIABLE 信号 SIGNAL 文件 FILE 数据对象主要有四种类型 EDA技术与数字系统设计 85 常量为全局量 是指在设计描述过程中保持某一规定类型特定值不变的量 第4章VHDL硬件描述语言 1 常量 CONSTANT 定义格式 规则 常量的定义应在程序开始前进行 常量一旦被赋值就不能再改变 常量所赋的值应和定义的数据类型一致 定义在程序包中的常量 可在调用此程序包的所有设计实体中使用 定义在设计实体内的常量 仅在该实体内使用 定义在某结构体中的常量 只能在该结构体使用 定义在结构体中某单元的常量 只能用于该单元 CONSTANT常量名 数据类型 表达式 EDA技术与数字系统设计 86 第4章VHDL硬件描述语言 1 常量 CONSTANT 例如 CONSTANTwidth INTEGER 16 CONSTANTdelay TIME 20ns CONSTANTfbus BIT VECTOR 11010111 CONSTANTVcc REAL 5 0 width是整数类型常量 值为16 delay是时间型常量 值为20ns fbus是位矢量型常数其值为11010111 Vcc是实数型常量 其值为5 0 EDA技术与数字系统设计 87 变量为局部量 常用来存储中间数据 以便实现程序的算法 它只能在进程语句 函数语句和过程语句的结构中使用 变量的赋值是一种理想化的数据传输 即赋值是立即生效的 不存在任何延时的行为 第4章VHDL硬件描述语言 2 变量 VARIABLE 定义格式 VARIABLE变量名1 变量名2 数据类型 初始值 例如 VARIABLEb INTEGER VARIABLEa INTEGER 2 定义b为整数型变量 定义a为整数型变量 初值为2 EDA技术与数字系统设计 88 第4章VHDL硬件描述语言 2 变量 VARIABLE 变量的使用规则 变量不能用于硬件连线和存储元件 变量赋值和初始化赋值都用 表示 变量的初值不是预设的 某一时刻只能有一个值 变量不能用于在进程间传递数据 仿真时 变量用于建模 综合时 变量充当数据的暂存 EDA技术与数字系统设计 89 第4章VHDL硬件描述语言 2 变量 VARIABLE 变量数值的改变是通过变量赋值来实现 变量赋值语句的格式 目标变量名 表达式 例如 VARIABLEx y REAL VARIABLEa b BITVECTOR 7DOWNTO0 x 100 0 y 1 5 x a 1011101 a 4TO7 1 0 1 0 b 0TO5 a 2TO7 EDA技术与数字系统设计 90 信号是描述硬件系统的基本数据对象 它是电子电路内部硬件连接的抽象 可以作为设计实体中并行语句模块间的信息交流通道 信号是一个全局量 只有定义后才能使用 通常用于在结构体 程序包和实体说明中 第4章VHDL硬件描述语言 3 信号 SIGNAL 信号定义格式 SIGNAL信号名 数据类型 初值 例如 SIGNALS0 STDLOGIC 0 SIGNALFA FB BIT SIGNALD STDLOOGICVECTOR 0TO15 定义一个标准逻辑位信号S0 初值为0 定义两个BIT位信号FA和FB 定义标准逻辑16位矢量信号D EDA技术与数字系统设计 91 第4章VHDL硬件描述语言 3 信号 SIGNAL 信号赋值语句 目标信号名 表达式 例如 x 9 y x z xAFTER5ns EDA技术与数字系统设计 92 第4章VHDL硬件描述语言 3 信号 SIGNAL 信号与变量的区别 使用场合不同变量在进程 函数和过程中说明 信号在结构体中说明 赋值符号不同变量用 号赋值 其值被立即使用 无时间延时 信号用 赋值 其值可以附加延时 EDA技术与数字系统设计 93 VHDL是一种强类型语言 编程时非常注重数据类型的匹配问题 要求设计实体中的数据对象必须具有确定的数据类型 并且相同数据类型的量才能进行相互传递或赋值 第4章VHDL硬件描述语言 4 5 3VHDL语言的数据类型 标量型 ScalarType 复合型 CompositeType 存取型 AccessType 文件型 FilesType 1 数据类型的分类 VHDL语言与其他硬件描述语言相比有较多的数据类型 因此它能够创建高层次的系统和算法模型 根据数据用途的不同 VHDL中的数据类型可分为四大类 EDA技术与数字系统设计 94 第4章VHDL硬件描述语言 标量型 1 数据类型的分类 是单元素的最基本数据类型 通常用于描述一个单值数据对象 包括 实数类型 整数类型 枚举类型 时间类型 EDA技术与数字系统设计 95 第4章VHDL硬件描述语言 复合型 1 数据类型的分类 可以由最基本的数据类型复合而成 如可由标量复合而成 分为 数组型 Array 记录型 Record 存取型 为给定的数据对象提供存取方式 文件型 用于提供多值存取类型 EDA技术与数字系统设计 96 第4章VHDL硬件描述语言 1 数据类型的分类 上述的四种数据类型又可分为两大类 预定义数据类型 用户自定义数据类型 是VHDL中最常用 最基本的数据类型 这些数据类型都已在VHDL的标准库中作了定义 用户可在设计中随时调用 由用户根据需要而自定义的数据类型 EDA技术与数字系统设计 97 第4章VHDL硬件描述语言 是一种已在标准程序包 STANDARD 中预先定义的数据类型 在实际使用中能自动包含在VHDL的源文件中 2 VHDL的预定义数据类型 分为 布尔数据类型位数据类型位矢量数据类型字符数据类型整数数据类型自然数数据类型 正整数数据类型实数数据类型字符串数据类型时间数据类型错误等级数据类型 EDA技术与数字系统设计 98 第4章VHDL硬件描述语言 1 布尔 BOOLEAN 数据类型 是一个二值枚举型数据类型 常用于关系运算和逻辑判断 布尔数据量包括逻辑 假 FALSE 和逻辑 真 TRUE 两种取值 例如 在IFA B语句中 若A B成立 则布尔数据量为TRUE 否则布尔数据量为FALSE 定义格式 TYPEBOOLEANIS FALSE TRUE 若某个信号或变量被定义为布尔数据 则在仿真中将自动对其赋值进行核查 布尔数据没有数值的含义 不能进行算术运算 只能用于关系运算和逻辑判断 EDA技术与数字系统设计 99 第4章VHDL硬件描述语言 2 位 BIT 数据类型 位数据类型也属于二值枚举型 通常用来表示信号的取值 它的取值只有 0 和 1 定义格式 TYPEBITIS 0 1 位数据类型的数据对象为信号和变量 可以进行逻辑运算 其结果仍为位数据类型 EDA技术与数字系统设计 100 第4章VHDL硬件描述语言 3 位矢量 BIT VECTOR 数据类型 定义格式 TYPEBITVECTORISARRAY NATURALRANGE OFBIT 位矢量是基于位数据类型的数组 常用来表示总线的状态 位矢量是用双引号括起来的数字序列 如 1011 X 00EA 其中 表示数据范围未定界 规则 使用位矢量必须注明位宽 即数组中的元素个数和排列 例如 SIGNALb BITVECTOR 0TO7 定义b由b 0 b 7 构成的矢量 左为b 0 右为b 7 EDA技术与数字系统设计 101 第4章VHDL硬件描述语言 4 字符 CHARACTER 数据类型 定义格式 TYPECHARACTERIS ASCII码字符表中的全部字符 字符数据类型是用单引号括起来的ASCII码字符 如 X y 6 3 等 规则 字符型数据用单引号括起来 字符型数据的字母有大小写之分 字符型数据仅包括ASCII码字符表中的全部字符 EDA技术与数字系统设计 102 第4章VHDL硬件描述语言 5 字符串 STRING 数据类型 定义格式 TYPESTRINGISARRAY POSITIVERANGE OFCHARACTER 字符串数据类型是用双引号括起来的字符序列 是由字符型数据组成的数组 也称字符矢量或字符串数组 常用于程序的提示和说明 例如 ABOY 10101011 EDA技术与数字系统设计 103 第4章VHDL硬件描述语言 6 整数 INTEGER 数据类型 定义格式 TYPEINTEGERISRANGE 2147483647TO 2147483647 整数数据类型与数学中的整数定义相同 包括 正整数 负整数和零 取值范围 32位带符号数原码 231 1 231 1 即 2147483647 2147483647 规则 整数不能作为矢量 不能单独对某一位进行操作 整数不能用于逻辑运算 只能用于算术运算 如 15 10E3 16 D5 2 11011010 8 653 整数可以用进制来表示 整数可以用来抽象地表达总线的状态 EDA技术与数字系统设计 104 第4章VHDL硬件描述语言 7 正整数 POSITIVE 数据类型 定义格式 SUBTYPEPOSITIVEISINTEGERRANGE1TOINTEGER HIGH 正整数数据类型是整数数据类型的子类型 是不包括0的正整数 取值范围 32位带符号数原码 1 231 1 即1 2147483647 其中 INTEGER HIGH是数值类属性 表示整数的上限值231 1 EDA技术与数字系统设计 105 第4章VHDL硬件描述语言 8 自然数 NATURAL 数据类型 定义格式 SUBTYPENATURALISINTEGERRANGE0TOINTEGER HIGH 是整数数据类型的子类型 即非负的整数 包括 0和正整数 EDA技术与数字系统设计 106 第4章VHDL硬件描述语言 9 实数 REAL 数据类型 定义格式 TYPEREALISRANGE 1 0E38TO 1 0E38 实数数据类型类似于数学中的实数 也称为浮点数数据类型 只能在仿真中使用 取值范围 1 0E 38 1 0E 38由正号 负号 小数点和数字组成 例如 2 5 1 0E8 EDA技术与数字系统设计 107 第4章VHDL硬件描述语言 10 时间 TIME 数据类型 定义格式 TYPETIMEISRANGE 2147483647TO2147483647 用来表示时间的数据类型 由整数数据和单位两部分组成 取值范围是整数所定义的范围 仅在系统仿真时 用来表示信号延时的时间 不能用于逻辑综合 例如 55ms 20ns EDA技术与数字系统设计 108 第4章VHDL硬件描述语言 10 时间 TIME 数据类型 unitsfs 飞秒 10 15S ps 1000fs 皮秒ns 1000ps 纳秒us 1000ns 微秒ms 1000us 毫秒sec 1000ms 秒min 60sec 分hr 60min 时ENDunits EDA技术与数字系统设计 109 第4章VHDL硬件描述语言 11 错误等级 SEVERITY LEVEL 定义格式 TYPEseverity levelIS note warning error failure 错误等级数据用于表征系统的工作状态 包括 NOTE 注意 WARNING 警告 ERROR 出错 FAILURE 失败 在仿真过程中 可输出这4种值来提示被仿真系统当前的工作状态 EDA技术与数字系统设计 110 第4章VHDL硬件描述语言 3 IEEE预定义的标准逻辑位和标准逻辑矢量 在IEEE库的程序包STD LOGIC 1164中 定义了两个非常重要的数据类型 标准逻辑位STD LOGIC 标准逻辑矢量STD LOGIC VECTOR 使用时可打开IEEE库 调用STD LOGIC 1164程序包 如 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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