VHDL语言的程序结构.ppt

上传人:sh****n 文档编号:8628423 上传时间:2020-03-30 格式:PPT 页数:76 大小:649.55KB
返回 下载 相关 举报
VHDL语言的程序结构.ppt_第1页
第1页 / 共76页
VHDL语言的程序结构.ppt_第2页
第2页 / 共76页
VHDL语言的程序结构.ppt_第3页
第3页 / 共76页
点击查看更多>>
资源描述
1 7 2VHDL语言的程序结构 第7章VHDL语言基础 2 1 USE定义区 定义元件库 2 PACKAGE定义区 定义使用哪些自定义元件库 3 ENTITY定义区 定义电路实体的外观 I O接口的规格 4 ARCHITECTRUE定义区 描述电路内部的功能 说明电路执行什么动作或功能 5 CONFIGURATION定义区 描述各种设计实体和元件之间的连接关系以及设计实体和结构体之间的连接关系 第7章VHDL语言基础 3 VHDL基本结构 第7章VHDL语言基础 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYmux21ISPORT a b INSTD LOGIC s INSTD LOGIC y OUTSTD LOGIC ENDENTITYmux21 ARCHITECTUREbehaveOFmux21ISBEGINPROCESS a b s BEGINIFs 0 THENy a ELSEy b ENDIF ENDPROCESS ENDARCHITECTUREbehave IEEE说明 自定义元件库 定义一个实体 描述输入输出 信号 结构体说明 4 1 库 Library 库是经编译后的数据的集合 存放包集合定义 实体定义 结构体定义和配置定义 库的功能类似于UNIX和MS DOS操作系统中的目录 库中存放设计的数据 在VHDL中 库的说明总放在设计单元的最前面 库中的各个设计单元可以用作进行其他设计的资源 一个设计可以使用多个库中的设计单元 7 2 1库 第7章VHDL语言基础 5 1 库的使用首先在设计的开头说明要引用的库 然后使用use子句指明要使用库中的哪一个设计单元 其书写格式为 Library库名 Use库名 程序包名 all 其中 程序包名就是实际设计要使用的库中的设计单元 all表示使用程序包中的所有项目 第7章VHDL语言基础 6 引用库和程序包中的说明语句有以下4种形式 假定设计实体中的信号类型为std logic 其类型说明在ieee库的std logic 1164程序包中定义 形式一 Libraryieee Entityand2isPort a inieee Std logic 1164 Std logic b inieee Std logic 1164 Std logic c outieee Std logic 1164 Std logic Endand2 库说明 程序包 数据类型 第7章VHDL语言基础 7 形式2 Libraryieee Useieee all Entityand2isPort a inStd logic 1164 Std logic b inStd logic 1164 Std logic c outStd logic 1164 Std logic Endand2 形式3 Libraryieee Useieee std logic 1164 all Entityand2isPort a instd logic b instd logic c outstd logic Endand2 第7章VHDL语言基础 8 引用库和程序包中的说明语句有以下4种形式 假定设计实体中的信号类型为std logic 其类型说明在ieee库的std logic 1164程序包中定义 形式4 Libraryieee Useieee std logic 1164 std logic Entityand2isPort a instd logic b instd logic c outstd logic Endand2 第7章VHDL语言基础 9 2 库的种类VHDL提供的库可分为两大类 设计库 对当前设计是永远可见的 不需在程序开头对它们进行说明 一般包括std库和work库 资源库 用来存放常规元件和常用模块的库 在使用时要进行说明 资源库的内容与厂商直接相关 现在的VHDL厂商和EDA工具厂商都有自己的资源库 其中含有厂商自定义的程序包 应用最广泛的资源库是ieee库 vital库和用户自定义的库 第7章VHDL语言基础 10 1 std库是VHDL的标准库 包含程序包standard和textio 程序包standard中定义了bit bit vector character和time等数据类型 程序包textio主要包含了对文本文件进行读写操作的过程和函数 注意 使用程序包textio时要对库和程序包进行说明 Librarystd Usestd textio all 使用程序包standard时 由于VHDL规定standard程序包总是可见的 因此不必进行说明 第7章VHDL语言基础 11 2 work库 是VHDL的工作库 在编译一VHDL的时候 默认其保存在work库中 因此work库可以用来临时保存设计人员以前编译过的元件和模块 也可以通过该库来使用其中的元件和模块 VHDL标准中规定了work库也是永远可见的 因此在使用work库的时候不需要对它进行说明 第7章VHDL语言基础 12 3 ieee库 是应用最广泛的资源库 主要包括程序包std logic 1164 numeric bit numeric std math complex和math real 其中程序包std logic 1164 numeric bit numeric std是ieee标准化组织认可的程序包 现在有些公司 如synopsys公司提供了程序包std logic arith std logic signed和std logic unsigned等 虽没得到ieee标准化组织的认可 但仍然定义在ieee库中 使用ieee库时必须进行说明 Libraryieee Useieee std logic 1164 all 第7章VHDL语言基础 13 4 vital库 是应用比较广泛的资源库 主要包括程序包vital timing和vital primitives 其中vital timing是一个时序程序包 vital primitives是一个基本元件程序包 它们可以提高VHDL门级时序模拟精度 5 用户自定义库 用来存放设计中共用的一些程序包 这是设计人员自己建立的资源库 可以提高设计的灵活性 在VHDL的开头要对库进行说明 第7章VHDL语言基础 14 第7章VHDL语言基础 VHDL设计中的基本单元就是设计实体 它用以描述完整系统 电路板 芯片 逻辑单元或门电路 设计实体的组成部分 实体说明 EntityDeclaration 描述一个设计的外貌 即对外的输入输出接口以及一些用于结构体的参数定义 结构体或构造体 ArchitectureBody 描述的是设计的行为和结构 指定输入和输出之间的行为 7 2 2VHDL程序的实体 15 设计实体 实体说明和结构体之间的关系 设计实体 结构体1 结构体2 第7章VHDL语言基础 例 一个二输入门电路的VHDL描述 Entityand gateisPort a inbit b inbit c outbit Endand gate Architecturebehaveofand gateisBeginc aandb Endbehave 保留字 实体名 实体说明 结构体 说明 VHDL是不区分大小写的 可根据习惯书写 17 2 一般格式ENTITY实体名IS GENERIC 类型表 PORT 端口表 实体说明部分 BEGIN实体语句部分 END ENTITY 实体名 一 实体说明 ENTITYor gateISGENERIC delay time 1ns PORT a inbit b inbit c outbit ENDor gate 第7章VHDL语言基础 1 功能 描述设计模块的输入 输出信号或引脚 并给出设计模块与外界的接口 实体类似一个 黑盒 实体描述了 黑盒 的输入输出口 18 实体名实际上是器件名 最好根据相应的电路功能确定 如4位2进制计数器用counter4b 8位加法器用add8b 3 8译码器用ym 38 实体名必须与文件名相同 否则无法编译 实体名不能用工具库中定义好的元件名 实体名不能用中文 也不能用数字开头 实体名 第7章VHDL语言基础 19 二 类型说明 1 作用为设计实体和其外部环境通信的静态信息提供通道 可以定义端口的大小 实体中元件的数目以及实体的定时特性等 2 一般格式GENERIC CONSTANT 名字表 IN 子类型标识 静态表达式 第7章VHDL语言基础 ENTITYnand2ISGENERIC t rise time 1ns t fall time 1ns PORT a inbit b inbit c outbit ENDnand2 20 使用类属参数说明语句易于使设计具有通用性 ENTITYand gateISGENERIC delay time PORT a inbit b inbit c outbit ENDand gate ARCHITECTUREbehaveOFand gateISBEGINc aandbafter delay ENDbehave 第7章VHDL语言基础 例 在电路中多次使用二输入与门电路 但延迟时间不同 二输入与门电路的VHDL程序 现在要求实现这样一个设计 由三个二输入与门电路组成下图所示的四输入与门功能 要求门1的延迟时间为5ns 门2的延迟时间为6ns 门2的延迟时间为7ns 在设计过程中通常遇到一些参数不确定的情况 参数是待定的 在模拟时 只要用GENERICMAP语句将待定参数初始化即可 22 ENTITYor3ISPORT a b c inbit q outbit ENDor3 ARCHITECTRUEbehaveOFor3ISCOMPONENTand gateGENERIC delay time PORT a b inbit c outbit ENDCOMPONENT SIGNALq1 q2 bit BEGINU1 and gateGENERICMAP 5ns PORTMAP a b q1 U2 and gateGENERICMAP 6ns PROTMAP c d q2 U3 and gateGENERICMAP 7ns PROTMAP q1 q2 q ENDbehave 第7章VHDL语言基础 23 三 端口说明 1 作用是对设计实体与外部接口的描述 是设计实体和外部环境动态通信的通道 其功能对应于电路图符号的一个引脚 2 一般格式PORT 端口名 端口模式数据类型 端口名 端口模式数据类型 第7章VHDL语言基础 24 三 端口说明 1 端口名称是端口的标识符 是赋予每个外部引脚的名称由字母 数字和下划线组成 其命名规则为 1 第一个字符必须是字母 2 下划线不能连用 3 最后一个字符不能是下划线 4 不区分大小写 5 命名不能与保留字相同 如 不合法的例子 clk 8mclk data bus buffer data 第7章VHDL语言基础 25 输入IN 输入信号的驱动源由外部向该设计实体内进行 主要用于时钟输入 控制输入和单向的数据输入 输出OUT 允许数据流从实体内部输出 用于计数输出 单方向数据输出 设计实体产生的控制其他实体的信号等 缓冲BUFFER 允许内部引用该端口的信号 既能用于输出 也可用于反馈 只能连接内部信号和具有缓冲模式的端口 双向模式INOUT 可以代替IN OUT BUFFER 第7章VHDL语言基础 2 端口模式 用来说明数据 信号通过该端口的传输方向 模式有IN OUT BUFFER INOUT 26 说明 1 双向模式可以代替输入 输出和缓冲模式的任何一种 2 out 和 buffer 都可以定义输出端口 图 a 只能用于输出 图 b 构造体内部也要使用该信号时 只能定义成 buffer 其区别 3 数据类型 布尔型 boolean 位型 bit 位矢量型 bit vector 整数型 integer 枚举型 物理类型等10种数据类型 在逻辑电路中用到两种 bit 位 和bit vector 位向量 1 bit 为位逻辑数据类型 信号取值是逻辑值 1 和 0 2 bit vector 取值是一组二进制位的值 如 8位数据总线数端口Port d0 d1 sel inbit q outbit bus outbit vector 7downto0 3 在VHDL程序中 设计人员常使用的数据类型为IEEE STD Logic 1164程序包所给定的 标准逻辑类型STD Logic STD Logic vector LibraryIEEE UseIEEE STD Logic 1164 all EntitymuisPort d0 d1 sel inSTD Logic q outSTD Logic bus outSTD Logic vector 7downto0 28 主要用于定义该设计实体接口中的公共信息 比如定义新的数据类型和常量定义等 四 实体说明部分 五 实体语句部分 是设计实体接口的共同部分 只能由如下并行语句构成 并行断言语句 并行过程调用语句和被动进程语句等 这些语句应该是被动语句 即在语句中不含有信号赋值 第7章VHDL语言基础 ENTITYexampleISPORT a b INSTD LOGIC c OUTSTD LOGIC TYPEcolourISARRAY 6downto0 ofSTD LOGIC ENDexample 实体举例 ENTITYblack boxISGeneric constantwidth integer 7 PORT clk rst instd logic d instd logic vector widthdownto0 q outstd logic vector widthdownto0 co outstd logic ENDblack box 练习 编写包含以下内容的实体代码 端口D为12位输入总线 端口OE和CLK都是1位输入 端口AD为12位双向总线 端口A为12位输出总线 端口INT是1位输出 端口AS是一位输出同时被用作内部反馈 练习答案 Libraryieee Useieee std logic 1164 ALL Entitymy designisPORT d instd logic vector 11downto0 oe clk in std logic ad inoutstd logic vector 11downto0 a outstd logic vector 7downto0 int outstd logic as bufferstd logic Endmy design 32 一 结构体的作用 描述了基本设计单元 实体 的结构 行为 元件及内部连接关系 也就是说它定义了设计实体的功能 规定了设计实体的数据流程 制定了实体内部元件的连接关系 通过若干并行语句来描述设计实体的逻辑功能 行为描述 或内部电路结构 结构描述 从而建立设计实体输出与输入之间的关系 一个设计实体可以有多个结构体 7 3 3VHDL程序的结构体 第7章VHDL语言基础 33 二 结构体的一般格式 ARCHITECTURE结构体名OF实体名IS定义语句 内部信号 常数 数据类型 函数定义BEGIN 并行处理语句 进程语句 END结构体名 第7章VHDL语言基础 ARCHITECTUREaOF entity nameISSIGNALsignal name STD LOGIC SIGNALsignal name STD LOGIC BEGINENDa 结构体说明 并行处理语句 ProcessStatement ConcurrentProcedureCall ConcurrentSignalAssignment ConditionalSignalAssignment SelectedSignalAssignment ComponentInstantiationStatement GenerateStatement 35 1 结构体命名结构体名由设计者自行定义 OF后面的实体名指明了该结构体所对应的是哪个实体 由于一个设计有行为描述 数据流描述和结构描述3种方式 一般建议用behave dataflow structure为结构体命名 2 结构体说明语句结构体说明语句必须放在关键词ARCHITECTURE和BEGIN之间 用于对结构体内部将要使用的信号 常数 数据类型 元件 函数和过程加以说明 最常见的是对内部流动的信号的定义 但不能定义变量 实体说明中定义的信号是外部信号 而结构体定义的信号为该结构体的内部信号 它只能用于这个结构体中 结构体中的信号定义和端口说明一样 应有信号名称和数据类型定义 因为它是内部连接用的信号 因此不需要方向说明 第7章VHDL语言基础 36 3 结构体功能描述语句结构体功能描述语句位于BEGIN和END之间 具体地描述了构造体的行为及其连接关系 结构体的功能描述语句可以含有5种不同类型的并行语句 每一语句结构内部可以使用并行语句 也可以是顺序语句 第7章VHDL语言基础 ENTITYhalf adderISPORT x y INSTD LOGIC s c OUTSTD LOGIC ENDhalf adder ARCHITECTUREdataflowOFhalf adderISBEGINs xxory c xandy ENDdataflow 37 并行处理语句 并行处理语句具体地描述了结构体的行为和结构 并行处理语句位于结构体中begin和end之间 并行语句有五种类型 可以把它们看成结构体的五种子结构 这五种语句结构本身是并行语句 但内部可能含有并行运行的逻辑描述语句或顺序运行的逻辑描述语句 如进程内部包含的即为顺序语句 五种语句结构分别为块语句 进程语句 信号赋值语句 子程序调用语句和元件例化语句 例 进程 process 语句 进程标号 PROCESS 敏感信号表 is 进程语句说明部分 BEGIN ENDPROCESS 进程标号 38 三 结构体的四种描述形式 第7章VHDL语言基础 1 行为描述形式2 数据流描述形式3 结构描述形式4 混合描述形式 39 1 行为描述形式 类似于数字中的真值表 就是对系统数学模型的描述 常采用算术运算 关系运算和惯性延时等 主要用于系统数学模型的仿真或者是系统工作原理的仿真 其优点是无须知道具体电路的结构 只需要一组状态来描述即可 即只描述所希望电路的功能或者电路行为 输入输出间转换的行为 而没有指明或涉及实现这些行为的硬件结构 第7章VHDL语言基础 40 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYmux21ISPORT a b INSTD LOGIC s INSTD LOGIC y OUTSTD LOGIC ENDmux21 ARCHITECTUREbehaveOFmux21ISBEGINPROCESS a b s BEGINIFs 0 THENy a ELSEy b ENDIF ENDPROCESS ENDbehave 第7章VHDL语言基础 41 2 数据流描述形式 类似于数字中的逻辑表达式 也称为寄存器传输描述形式 是对信号到信号的数据流的路径形式进行描述 因此要求设计者不但要对设计实体的功能实现有一定的了解 而且还需要对内部的逻辑电路结构有清楚的认识 第7章VHDL语言基础 42 2 数据流描述形式 类似于数字中的逻辑表达式 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYmux21ISPORT a b INSTD LOGIC s INSTD LOGIC y OUTSTD LOGIC ENDENTITYmux21 ARCHITECTUREdataflowOFmux21ISBEGINy aAND NOTs OR bANDs ENDARCHITECTUREdataflow 第7章VHDL语言基础 43 第7章VHDL语言基础 例 试用VHDL编写用数据流描述结构的全加器程序 ENTITYfull adderISPORT A B Cin INSTD LOGIC S Co OUTSTD LOGIC ENDfull adder ARCHITECTUREdataflowOFfull adderISSIGNALtmp1 tmp2 STD LOGIC BEGINtmp1 AxorB tmp2 tmp1andCin S tmp1xorCin Co tmp2or AandB ENDdataflow 44 3 结构描述形式 类似于数字中的逻辑图 就是在多层次的设计中 高层次的设计模块调用低层次的设计模块 或者直接用门电路设计单元来构成一个复杂的逻辑电路的描述方法 具体实现就是在多层次的设计中 通过调用库中的元件或者是已经设计好的模块来描述元件 或模块 和元件 或模块 之间的互连关系 就像网表一样 注意 当引用库中不存在的元件时 必须首先进行元件的创建 然后放在工作库中 通过调用工作库来引用元件 同时在引用元件时 要先在结构体的说明部分进行元件的说明 然后在使用元件时进行元件例化 第7章VHDL语言基础 45 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYand21ISPORT i0 i1 INSTD LOGIC q OUTSTD LOGIC ENDENTITYand21 ARCHITECTUREoneOFand21ISBEGINq i0ANDi1 ENDARCHITECTUREone 第7章VHDL语言基础 46 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYor21ISPORT i0 i1 INSTD LOGIC q OUTSTD LOGIC ENDENTITYor21 ARCHITECTUREoneOFor21ISBEGINq i0ORi1 ENDARCHITECTUREone 第7章VHDL语言基础 47 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYinv21ISPORT i0 INSTD LOGIC q OUTSTD LOGIC ENDENTITYinv21 ARCHITECTUREoneOFinv21ISBEGINq NOTi0 ENDARCHITECTUREone 第7章VHDL语言基础 48 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYmux21ISPORT a b INSTD LOGIC s INSTD LOGIC y OUTSTD LOGIC ENDmux21 第7章VHDL语言基础 49 ARCHITECTUREstructOFmux21ISCOMPONENTand21PORT i0 i1 INSTD LOGIC q OUTSTD LOGIC ENDCOMPONENT COMPONENTor21PORT i0 i1 INSTD LOGIC q OUTSTD LOGIC ENDCOMPONENT COMPONENTinv21PORT i0 INSTD LOGIC q OUTSTD LOGIC ENDCOMPONENT 第7章VHDL语言基础 50 SIGNALtmp1 tmp2 tmp3 STD LOGIC BEGINu1 and21PORTMAP b s tmp1 u2 inv21PORTMAP s tmp2 u3 and21PORTMAP a tmp2 tmp3 u4 or21PORTMAP tmp1 tmp3 y ENDARCHITECTUREstruct 第7章VHDL语言基础 51 4 混合描述方式就是指上述3种描述方式的任意组合 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYxor21ISPORT i0 i1 INSTD LOGIC q OUTSTD LOGIC ENDENTITYxor21 ARCHITECTUREbehaveOFxor21ISBEGINq i0XORi1 ENDARCHITECTUREbehave 第7章VHDL语言基础 52 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYhalf adderISPORT a b INSTD LOGIC c s OUTSTD LOGIC ENDENTITYhalf adder ARCHITECTUREmixOFhalf adderISCOMPONENTxor21ISPORT i0 i1 INSTD LOGIC q OUTSTD LOGIC ENDCOMPONENT BEGINc aANDb u1 xor21PORTMAP a b s ENDARCHITECTUREmix 第7章VHDL语言基础 53 在VHDL中 设计的实体和结构体中定义的数据类型 常量 子程序说明和元件说明等部分只能在该设计实体中使用 而对其他设计实体是不可见的 程序包说明像C语言中include语句一样 用来单纯地罗列VHDL中所要用到的信号定义 常量定义 数据类型 子程序说明和元件说明等 是一个可编译的设计单元 要使用程序包中的某些说明和定义 要用use语句说明 各种VHDL编译系统都含有多个标准程序包 如Std Logic 1164和Standard程序包 用户也可已自行设计程序包 保存到WORK下 7 3 4VHDL程序的程序包 54 程序包由两个独立的单元组成 程序包说明部分和程序包包体部分构成 1 程序包说明部分的一般格式 PACKAGE程序包名IS说明语句END 程序包名 其中说明语句为 数据类型说明 常量说明 子程序说明 信号定义及元件说明等 2 程序包体单元的一般格式 PACKAGEBODY程序包名IS包体语句END 程序包名 第7章VHDL语言基础 55 PACKAGEfunISSUBTYPEsegmentISBIT Vector 0to6 TYPEBCDISRANGE0to9 ENDfun ENTITYdecoderISPORT INPUT BCD DRIVE OUTSEGMENT ENDdecoder ARCHITECTUREartOFdecoderISBEGINWITHINPUTSELECT DRIVE B 1111110 WHEN0 B 0110000 WHEN1 B 1101101 WHEN2 B 1111001 WHEN3 B 0110011 WHEN4 B 1011011 WHEN5 B 1011111 WHEN6 B 1110000 WHEN7 B 1111111 WHEN8 B 1111011 WHEN9 B 0000000 WHENOTHERS ENDart 例 在现行WORK库中定义程序包并立即使用实例 第7章VHDL语言基础 56 几种应用较广的程序包 1 Standard预先在std库中编译 主要定义了布尔类型 bit类型 character类型 出错级别 实数类型 整数类型 时间类型 延迟长度子类型 自然数子类型 正整数子类型 string类型 bit vector子类型 文件打开方式类型和文件打开状态类型 对所有设计模块可见 2 textio预先在std库中编译 定义了line类型 text类型 side类型 操作宽度width子类型 文件input 文件output readline过程 对应于不同数据类型的read过程 writeline过程和对应于不同数据类型的write过程 对所有设计模块都不可见 使用时要进行说明 第7章VHDL语言基础 57 3 std logic 1164预先在ieee库中编译 是使用最广泛的程序包 定义了设计人员长采用的一些数据类型和函数 定义了std ulogic类型 std ulogic vector类型 std logic子类型 std logic vector类型 决断函数resolved X01Z子类型 UX01子类型 UX01Z子类型 对应于不同数据类型的and nand or nor xor xnor not函数 对应于不同数据类型的To bot To bitvector To stdulogic To stdlogicvector To stdulogicvector To X01 To X01Z To UX01转换函数 上升沿函数rising edge 下降沿函数falling edge和对应于不同类型的Is X函数 对所有设计模块都不可见 使用时要进行说明 第7章VHDL语言基础 58 4 numeric std已被定义为标准程序包 定义了用于综合的数据类型和算术函数 定义了两种数据类型 unsigned和signed 其中unsigned表示无符号的位矢量 signed表示带符号的位矢量 其最左端是最高位 还含有所有unsigned和signed类型的重载算术运算 还含有一些有用的类型转换函数 时钟检测函数和其他一些使用的函数 5 numeric bit与程序包numeric std基本相同 不同之处在于它的基本元素类型是bit 而不是std logic 第7章VHDL语言基础 59 配置语句用于描述各种设计实体和元件之间的连接关系以及设计实体和结构体之间的连接关系 设计者可以利用这种配置语句来选择不同的结构体 使其与要设计的实体相对应 仿真某一时实体时 可以利用配置来选择不同的结构体 进行性能对比实验以得到性能最佳的结构体 例如 要设计一个二输入四输出的译码器 如果一种结构中的基本元件采用反相器和三输入与门 而另一种结构中的基本元件都采用与非门 它们各自的结构体是不一样的 并且放在各自不同的库中 要设计译码器就可以利用配置语句实现对两种不同的结构体的选择 7 3 4配置 第7章VHDL语言基础 60 1 默认配置配置语句的基本格式 Configurationofis 语句说明 End 配置语句根据不同的情况 其说明语句有简有繁 最简单的缺省配置格式 ConfigurationofisForEndfor End 教材中128页例题 默认配置只能用来选择不含有任何块语句和元件的结构体 第7章VHDL语言基础 61 Libraryieee Useieee std logic 1164 all Entityexampleisport a b instd logic y outstd logic Endexample Architectureand2 arcofexampleisBeginprocess a b variablecomb std vector 1downto0 Begincomb a Architectureor2 arcofexampleisBeginprocess a b variablecomb std vector 1downto0 Begincomb a 第7章VHDL语言基础 62 Architecturexor2 arcofexampleisBeginprocess a b variablecomb std vector 1downto0 Begincomb a Architecturenor2 arcofexampleisBeginprocess a b variablecomb std vector 1downto0 Begincomb a 第7章VHDL语言基础 63 Architecturenand2 arcofexampleisBeginprocess a b variablecomb std vector 1downto0 Begincomb a 第7章VHDL语言基础 64 Configurationcfg1ofexampleisforand2 arcendfor Endcfg1 Configurationcfg2ofexampleisforor2 arcendfor Endcfg2 Configurationcfg3ofexampleisfornand2 arcendfor Endcfg3 Configurationcfg4ofexampleisfornor2 arcendfor Endcfg4 Configurationcfg5ofexampleisforxor2 arcendfor Endcfg5 配置语句cfg1将进行逻辑与操作的结构体配置给实体 配置语句cfg2将进行逻辑或操作的结构体配置给实体 第7章VHDL语言基础 65 2 元件配置 为了避免混淆 需要给出所说明元件属于哪一个设计库里的哪一个设计实体 以及设计实体所对应的是哪一个结构体 低级的配置实体 结构体对的配置 第7章VHDL语言基础 66 基本书写结构 CONFIGURATION配置名OF实体名ISFOR选配结构体名FOR元件例化标号名 元件名USECONFIGURATION库名 元件配置名 ENDFOR FOR元件例化标号名 元件名USECONFIGURATION库名 元件配置名 ENDFOR ENDFOREND配置名 注意 所规定的低级配置一定要在当前配置库中已经存在时才能编译 低级的配置 第7章VHDL语言基础 67 ARCHITECTUREstructureOFfull adderISCOMPONENTor2PORT a b INstd logic c OUTstd logic ENDCOMPONENT COMPONENTand2PORT a b INstd logic c OUTstd logic ENDCOMPONENT COMPONENTxor2PORT a b INstd logic c OUTstd logic ENDCOMPONENT SIGNALtmp1 tmp2 tmp3 std logic BEGINU1 xor2PORTMAP a b tmp1 例题 全加器的实现LIBRARYIEEE USEIEEE sti logic 1164 all ENTITYfull adderISPORT a b Cin INstd logic Co S OUTstd logic ENDfull adder 第7章VHDL语言基础 68 U2 and2PORTMAP tmp1 Cin tmp2 U3 xor2PORTMAP tmp1 Cin S U4 and2PORTMAP a b tmp3 U5 or2PORTMAP tmp2 tmp3 Co ENDsturcture CONFIGURATIONfull adder cfgOFfull adderISFORstructureFORU1 U3 xor2USECONFIGURATIONwork xor2 cfg ENDFOR FORU2 U4 and2USECONFIGURATIONwork and2 cfg ENDFOR FORU5 or2USECONFIGURATIONwork or2 cfg ENDFOR ENDFOR Endfull adder cfg 元件例化标名号为U1和U3所指定的是元件库work中的设计实体xor2 其结构体为低级配置xor2 cfg指定的结构体 第7章VHDL语言基础 69 实体 结构体对的配置 基本书写结构 CONFIGURATION配置名OF实体名ISFOR选配结构体名FOR元件调用标号名 元件名USEENTITY库名 实体名 结构体名 ENDFOR FOR元件调用标号名 元件名USEENTITY库名 实体名 结构体名 ENDFOR ENDFOREND配置名 注意 所规定的元件实体和其对应的结构体一定要在当前的配置库中已经存在 否则编译会出错 就是在配置的过程中为每一个元件直接指定实体的结构体 而不是指定该实体的低级配置 第7章VHDL语言基础 70 CONFIGURATIONfull adder cfgOFfull adderISFORstuctureFORU1 U3 xor2USEENTITYwork xor2 xor2 arc ENDFOR FORU2 U4 and2USEENTITYwork and2 and2 arc ENDFOR FORU5 or2USEENTITYwork or2 or2 arc ENDFOR ENDFOR ENDfull adder cfg 第7章VHDL语言基础 71 3 块的配置 要指明元件所在的块 块配置在结构体和元件之间分出另一层次 若对某个含有块语句的结构体进行文件配置时 必须指明是哪一个块的配置 与元件配置相同 块配置也有两种不同的形式 低级的配置形式和实体 结构体对的配置形式 第7章VHDL语言基础 72 低级块配置格式 CONFIGURATION配置名OF实体名ISFOR选配结构体名FOR块名FOR元件调用标号名 元件名USECONFIGURATION库名 元件配置名 ENDFOR ENDFOR FOR块名FOR元件调用标号名 元件名USECONFIGURATION库名 元件配置名 ENDFOR ENDFOR ENDFOR END配置名 73 实体 结构体对的块配置格式 CONFIGURATION配置名OF实体名ISFOR选配结构体名FOR块名FOR元件调用标号名 元件名USEENTITY库名 实体名 结构体名 ENDFOR ENDFOR FOR块名FOR元件调用标号名 元件名USEENTITY库名 实体名 结构体名 ENDFOR ENDFOR ENDFOR END配置名 74 BEGINsum BLOCKBEGINU1 xor2PORTMAP a b tmp1 U2 xor2PORTMAP tmp1 Cin S ENDBLOCKsum carry BLOCKBEGINU3 or2PORTMAP tmp2 tmp3 Co middle BLCOKBEGINU4 and2PORTMAP tmp1 Cin tmp2 U5 and2PORTMAP a b tmp3 ENDBLOCKmiddle ENDBLOCKcarry ENDstructure 第7章VHDL语言基础 75 FORstructureFORsumFORall xor2USECONFIGURATIONwork xor2 cfg ENDFOR ENDFOR FORcarryFORU3 or2USECONFIGURATIONwork or2 cfg ENDFOR FORmiddleFORall and2USECONFIGURATIONwork and2 cfg ENDFOR ENDFOR ENDFOR ENDFOR ENDfull adder cfg CONFIGURATIONfull adder cfgOFfull adderIS 第7章VHDL语言基础 76 4 结构体的配置 结构体配置也是对结构体中所引用的元件进行配置 但是这种配置与元件配置有很大的区别 元件配置是使用专门的配置语句来完成的 配置语句与元件所在的结构体是分开的 而结构体配置则是放在结构体的说明语句部分 它是一种配置说明不需要与元件所在的结构体分开的配置类型 低级配置格式 for useconfiguation 实体 结构体对配置格式 for useentity 第7章VHDL语言基础
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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