




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、EDA技术实用教程技术实用教程第第9 9章章 VHDL结构与要素结构与要素 9.1 实实 体体 9.1.1 实体语句结构实体语句结构 9.1 9.1 实体实体 9.1.2 参数传递说明语句 GENERIC语句是一种常数参数的端口界面,为所说明的环境提供了一种静态信息通道。语句是一种常数参数的端口界面,为所说明的环境提供了一种静态信息通道。类属与常数不同类属与常数不同:常数只能从常数只能从设计实体的内部设计实体的内部得到赋值得到赋值,且且不能再改变不能再改变;而类属的值而类属的值可以由可以由设计实体外部设计实体外部提供提供。因此设计者可以从外面通过类属参量的重新设定而容易地因此设计者可以从外面通
2、过类属参量的重新设定而容易地改变一个设计实体或一个元件的内部电路结构和规模改变一个设计实体或一个元件的内部电路结构和规模。被传递的参数(又称类属参量)可以由设计实体外部提供,并可以重新设定。被传递的参数(又称类属参量)可以由设计实体外部提供,并可以重新设定。 GENERIC( 常数名: 数据类型 : 设定值 ;常数名: 数据类型 : 设定值 ) ;9.1 实实 体体 9.1.2 参数传递说明语句参数传递说明语句 9.1 实实 体体 9.1.2 参数传递说明语句参数传递说明语句 9.1 实体 9.1.3 参数传递映射语句 GENERIC MAP(类属表)参数传递映射语句与端口映射语句参数传递映射
3、语句与端口映射语句PORT MAP()具有相似具有相似的功能和使用方法,它描述了相应元件类属参数间的连接和的功能和使用方法,它描述了相应元件类属参数间的连接和传送方式。它可用于设计从外部端口改变元件内部参数或结传送方式。它可用于设计从外部端口改变元件内部参数或结构规模的元件,又称类属元件。构规模的元件,又称类属元件。 9.1 实实 体体 9.1.3 参数传递映射语句参数传递映射语句 9.1 实实 体体 9.1.3 参数传递映射语句参数传递映射语句 9.1 实实 体体 9.1.3 参数传递映射语句参数传递映射语句 9.1 实实 体体 9.1.4 端口说明语句端口说明语句 9.2 结构体结构体 9
4、.2 结结 构构 体体 1. 结构体的一般语言格式结构体的一般语言格式 2. 结构体说明语句结构体说明语句 9.2 结结 构构 体体 3. 功能描述语句结构功能描述语句结构 进程语句进程语句 信号赋值语句信号赋值语句 子程序调用语句子程序调用语句 元件例化语句元件例化语句 9.3 VHDL子程序 子程序(SUBPROGRAM)是一个VHDL程序模块,它只能使用顺序语句顺序语句。 子程序不能像进程那样可以从本结构体的并行语句或进程结构中直接读取信号或象信号赋值。子程序的使用方式只能通过子程序调用及与子程序的界面端口进行通信。 子程序可以在程序包、结构体和进程中定义,只有在程序包中定义过的子程序才
5、可以被其他不同的设计调用。 子程序分为两大类:过程过程(PROCEDURE)和函数函数(FUNCTION)。9.3 子程序子程序 9.3.1 函数函数 函数参数的对象类型只能包括常量和信号,默认为常量。参数的端口模式只能是in,因此参数端口模式可以省略。函数的返回值只能有一个。9.3 子程序子程序 9.3.1 函数函数 接下页接下页9.3 子程序子程序 9.3.1 函数函数 接上页接上页9.3 子程序子程序 9.3.1 函数函数 9.3 子程序子程序 9.3.1 函数函数 9.3 子程序子程序 9.3.2 重载函数重载函数 VHDL允许同样名称的函数可以用不同的数据类型作为它的参数定义多次,以
6、此定义的函数称为重载函数。接下页接下页9.3 子程序子程序 9.3.2 重载函数重载函数 接上页接上页接下页接下页9.3 子程序子程序 9.3.2 重载函数重载函数 接上页接上页9.3 子程序子程序 9.3.2 重载函数重载函数 接下页接下页9.3 子程序子程序 9.3.2 重载函数重载函数 接上页接上页9.3 子程序子程序 9.3.3 转换函数转换函数 9.3 子程序子程序 9.3.3 转换函数转换函数 9.3 子程序子程序 9.3.3 转换函数转换函数 9.3 子程序子程序 9.3.3 转换函数转换函数 接下页接下页9.3 子程序子程序 9.3.3 转换函数转换函数 接上页接上页9.3 子
7、程序子程序 9.3.4 决断函数决断函数 决断函数不可综合,主要用于决断函数不可综合,主要用于VHDL仿真中解决信号被多个驱动源仿真中解决信号被多个驱动源驱动时,驱动信号间的竞争问题。驱动时,驱动信号间的竞争问题。当多个驱动源都同时产生一个处理事项,只有其中一个驱动源的当多个驱动源都同时产生一个处理事项,只有其中一个驱动源的信号值能赋给被驱动的信号。信号值能赋给被驱动的信号。决断函数输入一般是单一变量,多个驱动源的信号值组成非限定决断函数输入一般是单一变量,多个驱动源的信号值组成非限定数组,数组,多个信号驱动源,其信号值组成的未限定数组可依次类推。多个信号驱动源,其信号值组成的未限定数组可依次
8、类推。决断函数调用后返回的是单一信号值,称决断信号值。决断函数调用后返回的是单一信号值,称决断信号值。 9.3 子程序子程序 9.3.5 过程过程9.3 子程序子程序 9.3.5 过程过程信号流向方向若未指定则默认为IN。只定义了IN模式而未定义目标参量的数据类型,则默认为常量CONSTANT;只定义了OUT或INOUT模式而未定义目标参量的数据类型,则默认为变量。9.3 子程序子程序 9.3.5 过程过程9.3 子程序子程序 9.3.5 过程过程9.3 子程序子程序 9.3.5 过程过程9.3 子程序子程序 9.3.6 重载过程重载过程 函数和过程的区别l函数和过程的不同在于:l函数只有一个
9、输出,只能通过函数体内的RETURN语句来实现,函数体内不能有信号赋值语句;l而过程却可以有不止一个输出,而且是通过过程体内的信号赋值语句或者变量赋值语句来实现的,过程体内的RETURN语句没有用处,因此不少过程都将其省略了。l函数的调用只能通过表达式来实现,过程的调用则是通过过程调用语句来实现的。9.4 VHDL库库 9.4.1 库的种类库的种类 1. IEEE库库 std_logic_1164 Numeric_BitNumeric_Std Math _Real Math _Complex 2. STD库库 3. WORK库库 4. VITAL库库 9.4 VHDL库库 9.4.2 库的用法
10、库的用法 9.5 程序包程序包 (其他设计实体共享)(其他设计实体共享)定义程序包的一般语句结构如下:定义程序包的一般语句结构如下: PACKAGE 程序包名程序包名 IS - 程序包首程序包首 程序包首说明部分程序包首说明部分 END 程序包名程序包名; PACKAGE BODY 程序包名程序包名 IS - 程序包体程序包体 程序包体说明部分以及包体内程序包体说明部分以及包体内 END 程序包名程序包名; 9.5 VHDL程序包程序包 9.5 VHDL程序包程序包 9.5 VHDL程序包程序包 (1)STD_LOGIC_1164程序包。程序包。(2)STD_LOGIC_ARITH程序包。程序
11、包。(3)STD_LOGIC_UNSIGNED和和STD_LOGIC_SIGNED程序包。程序包。(4)STANDARD和和TEXTIO程序包。程序包。 9.6 配置配置 9.7 VHDL文字规则文字规则 9.7.1 数字数字 整数:整数: 实数实数 : 9.7 VHDL文字规则文字规则 9.7.2 字符串字符串 “B”、 “O” 、 “X” 9.7 VHDL文字规则文字规则 9.7.3 标识符及其表述规则标识符及其表述规则 9.7 VHDL文字规则文字规则 9.7.4 下标名下标名9.8 数数 据据 类类 型型 标量型标量型(Scalar Type):包括实数类型、整数类型、枚举类:包括实数
12、类型、整数类型、枚举类型、时间类型。型、时间类型。 复合类型复合类型(Composite Type):可以由小的数据类型复合而:可以由小的数据类型复合而成,如可由标量型复合而成。复合类型主要有数组型成,如可由标量型复合而成。复合类型主要有数组型(Array)和记录型和记录型(Record)。 存取类型存取类型(Access Type):为给定的数据类型的数据对象:为给定的数据类型的数据对象提供存取方式。提供存取方式。 文件类型文件类型(Files Type):用于提供多值存取类型。:用于提供多值存取类型。9.8 数数 据据 类类 型型 9.8.1 VHDL预定义数据类型预定义数据类型 1. 布
13、尔类型布尔类型2. 位数据类型位数据类型3. 位矢量类型位矢量类型9.8 数数 据据 类类 型型 9.8.1 VHDL预定义数据类型预定义数据类型 4. 字符类型字符类型 5. 整数类型整数类型 6. 实数类型实数类型21474836472147483647 9.8 数数 据据 类类 型型 9.8.1 VHDL预定义数据类型预定义数据类型 7. 字符串类型字符串类型8. 时间类型时间类型 9.8 数数 据据 类类 型型 9.8.1 VHDL预定义数据类型预定义数据类型 9. 文件类型文件类型 9.8 数数 据据 类类 型型 9.8.2 IEEE预定义标准逻辑位与矢量预定义标准逻辑位与矢量 1.
14、 标准逻辑位数据类型标准逻辑位数据类型 2. 标准逻辑矢量数据类型标准逻辑矢量数据类型 9.8 数数 据据 类类 型型 9.8.3 其他预定义标准数据类型其他预定义标准数据类型 1. 无符号数据类型无符号数据类型 9.8 数数 据据 类类 型型 9.8.3 其他预定义标准数据类型其他预定义标准数据类型 2. 有符号数据类型有符号数据类型 9.8 数数 据据 类类 型型 9.8.4 数据类型转换示例数据类型转换示例 9.8 数数 据据 类类 型型 9.8.4 数据类型转换示例数据类型转换示例 9.8 数数 据据 类类 型型 9.8.4 数据类型转换示例数据类型转换示例 9.8 数数 据据 类类
15、型型 9.8.4 数据类型转换示例数据类型转换示例 9.8 数数 据据 类类 型型 9.8.4 数据类型转换示例数据类型转换示例 9.8 数数 据据 类类 型型 9.8.4 数据类型转换示例数据类型转换示例 9.9 VHDL操作符操作符 9.9.1 逻辑操作符逻辑操作符 逻辑操作符逻辑操作符(Logical Operator)关系操作符关系操作符(Relational Operator)算术操作符算术操作符(Arithmetic Operator)符号操作符符号操作符(Sign Operator)重载操作符重载操作符(Overloading Operator)。 9.9 VHDL操作符操作符
16、9.9.1 逻辑操作符逻辑操作符 9.9 VHDL操作符操作符 9.9.1 逻辑操作符逻辑操作符 9.9 VHDL操作符操作符 9.9.1 逻辑操作符逻辑操作符 9.9 VHDL操作符操作符 9.9.1 逻辑操作符逻辑操作符 9.9 VHDL操作符操作符 9.9.2 关系操作符关系操作符 “ = ”(等于等于)、“/=”(不等于不等于)、“ ”(大于大于)、“=”(大于等于大于等于)和和“=”(小于等于小于等于) 9.9 VHDL操作符操作符 9.9.2 关系操作符关系操作符 9.9 VHDL操作符操作符 9.9.2 关系操作符关系操作符 9.9 VHDL操作符操作符 9.9.3 算术操作符算
17、术操作符 9.9 VHDL操作符操作符 9.9.3 算术操作符算术操作符 1. 求和操作符求和操作符 9.9 VHDL操作符操作符 9.9.3 算术操作符算术操作符 1. 求和操作符求和操作符 9.9 VHDL操作符操作符 9.9.3 算术操作符算术操作符 2. 求积操作符求积操作符 *(乘乘)、 /(除除)、 MOD(取模取模) 、 RED(取余取余) 3. 符号操作符符号操作符 “+”和和“” 4. 混合操作符混合操作符 “*” “ABS” 9.9 VHDL操作符操作符 9.9.3 算术操作符算术操作符 5. 移位操作符移位操作符 SLL、SRL、SLA、SRA、ROL 、ROR 习题习题
18、 9-1 说明实体、设计实体的概念。说明实体、设计实体的概念。9-2 举例说明举例说明GENERIC说明语句和说明语句和GENERIC映射语句有何用处。映射语句有何用处。9-3 说明端口模式说明端口模式INOUT和和BUFFER有何异同点。有何异同点。9-4 什么是重载?重载函数有何用处?什么是重载?重载函数有何用处?9-5 在在STRING、TIME、REAL、BIT数据类型中,数据类型中,VHDL综合器支持哪综合器支持哪些类型?些类型?9-6 详细说明例详细说明例9-29中的语句作用和程序实现的功能。中的语句作用和程序实现的功能。9-7 表达式表达式C= A + B中,中,A、B和和C的数
19、据类型都是的数据类型都是STD_LOGIC_VECTOR,是否能直接进行加法运算?说明原因和解决,是否能直接进行加法运算?说明原因和解决方法。方法。9-8 VHDL中有哪三种数据对象?详细说明它们的功能特点以及使用方中有哪三种数据对象?详细说明它们的功能特点以及使用方法,举例说明数据对象与数据类型的关系。法,举例说明数据对象与数据类型的关系。9-9 能把任意一种进制的值向一整数类型的数据对象赋值吗?如果能,能把任意一种进制的值向一整数类型的数据对象赋值吗?如果能,怎样做?怎样做? 习题习题 9-10 判断下列判断下列VHDL标识符是否合法,如果有误则指出原因:标识符是否合法,如果有误则指出原因
20、:160FA, 1012F, 8789, 8356, 2010101074HC245 , 74HC574, CLR/RESET, IN 4/SCLK, D1009-11 数据类型数据类型BIT、INTEGER和和BOOLEAN分别定义在哪个库中?哪分别定义在哪个库中?哪些库和程序包总是可见的?些库和程序包总是可见的?9-12 函数与过程的设计与功能有什么区别?调用上有什么区别?函数与过程的设计与功能有什么区别?调用上有什么区别?9-13 回答有关回答有关BIT和和BOOLEAN数据类型的问题:数据类型的问题:(1)解释)解释BIT和和BOOLEAN类型的区别。类型的区别。(2)对于逻辑操作应使
21、用哪种类型?)对于逻辑操作应使用哪种类型?(3)关系操作的结果为哪种类型?)关系操作的结果为哪种类型?(4)IF语句测试的表达式是哪种类型?语句测试的表达式是哪种类型?习题习题 9-14 运算符重载函数通常要调用转换函数,以便能够利用已有的数据类型。下运算符重载函数通常要调用转换函数,以便能够利用已有的数据类型。下面给出一个新的数据类型面给出一个新的数据类型AGE,并且下面的转换函数已经实现:,并且下面的转换函数已经实现:function CONV_INTEGER(ARG: AGE)return INTEGER;仿照本章中的示例,利用此函数编写一个仿照本章中的示例,利用此函数编写一个“+”运算
22、符重载函数,支持下面的运运算符重载函数,支持下面的运算:算:SIGNAL a,c : AGE;.c B时时E=1;当当AB时时F=1。第一种设计方案是常规的比较器设计方法,即直接利用关系操。第一种设计方案是常规的比较器设计方法,即直接利用关系操作符进行编程设计;第二种设计方案是利用减法器来完成,通过减法运算后的作符进行编程设计;第二种设计方案是利用减法器来完成,通过减法运算后的符号和结果来判别两个被比较值的大小。对两种设计方案的资源耗用情况进行符号和结果来判别两个被比较值的大小。对两种设计方案的资源耗用情况进行比较,并给以解释。比较,并给以解释。9-16 利用循环语句和移位操作符实现移位相加方
23、式的纯组合电路利用循环语句和移位操作符实现移位相加方式的纯组合电路8位乘法器设位乘法器设计。计。实验与设计实验与设计 9-1 乐曲硬件演奏电路设计乐曲硬件演奏电路设计(1)实验目的:)实验目的:(2)实验原理:)实验原理: 实验与设计实验与设计 9-1 乐曲硬件演奏电路设计乐曲硬件演奏电路设计(1)实验目的:)实验目的:(2)实验原理:)实验原理: 实验与设计实验与设计 9-1 乐曲硬件演奏电路设计乐曲硬件演奏电路设计(3)实验内容)实验内容1:(4)实验内容)实验内容2:(5)实验内容)实验内容3:(6)实验内容)实验内容4:(7)实验内容)实验内容5:(8)实验内容)实验内容6:(9)实验
24、内容)实验内容7:(10)实验报告:)实验报告:5E+系统的演示文件:系统的演示文件:/KX_7C5EE+/EXPERIMENTs/EXP4_Music/。 实验与设计实验与设计 9-1 乐曲硬件演奏电路设计乐曲硬件演奏电路设计(3)实验内容)实验内容1:(4)实验内容)实验内容2:(5)实验内容)实验内容3:(6)实验内容)实验内容4:(7)实验内容)实验内容5:(8)实验内容)实验内容6:(9)实验内容)实验内容7:(10)实验报告:)实验报告:5E+系统的演示文件:系统的演示文件:/KX_7C5EE+/EXPERIMENTs/EXP4_Music/。 实验与设计实验与设计 9-1 乐曲硬
25、件演奏电路设计乐曲硬件演奏电路设计(3)实验内容)实验内容1:(4)实验内容)实验内容2:(5)实验内容)实验内容3:(6)实验内容)实验内容4:(7)实验内容)实验内容5:(8)实验内容)实验内容6:(9)实验内容)实验内容7:(10)实验报告:)实验报告:5E+系统的演示文件:系统的演示文件:/KX_7C5EE+/EXPERIMENTs/EXP4_Music/。 实验与设计实验与设计 9-1 乐曲硬件演奏电路设计乐曲硬件演奏电路设计(3)实验内容)实验内容1:(4)实验内容)实验内容2:(5)实验内容)实验内容3:(6)实验内容)实验内容4:(7)实验内容)实验内容5:(8)实验内容)实验
26、内容6:(9)实验内容)实验内容7:(10)实验报告:)实验报告:5E+系统的演示文件:系统的演示文件:/KX_7C5EE+/EXPERIMENTs/EXP4_Music/。 实验与设计实验与设计 9-2 数字彩色液晶显示控制电路设计数字彩色液晶显示控制电路设计(1)实验任务)实验任务1:基于基于5E+系统的基本控制演示示例是:系统的基本控制演示示例是:/KX_7C5EE+/ EXPERIMENTs/EXP13_COLOR_LCD/(2)实验任务)实验任务2:(3)实验任务)实验任务3:(4)实验任务)实验任务4:(5)实验任务)实验任务5:(6)实验任务)实验任务6:演示示例:演示示例:/K
27、X_7C5EE+/DEMOs/EXPL9_Super_Mario2/,和和/DEMOs/EXP7_LCD_light_GAME/。实验与设计实验与设计 9-3 GPS应用的通信电路设计应用的通信电路设计实验任务:实验任务:参考参考GPS模块使用文件:模块使用文件:/KX_7C5EE+/GPS文件。常用的文件。常用的GPS模块是模块是UART通通信方式。可以用两种方式读取信方式。可以用两种方式读取GPS模块中的数据:模块中的数据:1、软件方式。可以根据实验、软件方式。可以根据实验6-8,使用,使用FPGA中的中的8051核与核与GPS通信,并将数通信,并将数据用液晶显示出来;据用液晶显示出来;2
28、、硬件方式,即不使用任何、硬件方式,即不使用任何CPU。可以根据实验。可以根据实验7-6的原理设计的原理设计UART硬件特硬件特性模块,读取性模块,读取GPS模块的数据,并显示于数码管或液晶屏上。演示示例:模块的数据,并显示于数码管或液晶屏上。演示示例:/KX_7C5EE+/EXPERIMENTs/EXP16_KX8051_FTEST_RS232/和和/EXP17_KX8051_GPS_FTEST/。 实验与设计实验与设计 9-3 GPS应用的通信电路设计应用的通信电路设计实验任务:实验任务:演示示例:演示示例:/KX_7C5EE+/EXPERIMENTs/EXP16_KX8051_FTEST_RS232/和和/EXP17_KX8051_GPS_FTEST/。 9-4 VGA动画图像显示控制电路设计动画图像显示控制电路设计实验任务:实验任务:相关演示示例有:鼠标控制的相关演示示例有:鼠标控制的VGA显示游戏:显示游戏:/KX_7C5EE+/DEMOs/ EXPL12_PS2Mouse_VGA_G
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 珠宝展售保证金合同
- 耐火材料在电力行业的应用案例考核试卷
- 真空泵在环保工程中的应用考核试卷
- 稀土金属压延加工的产业协同创新机制探讨考核试卷
- 体育用品生产自动化与智能制造考核试卷
- 稀有金属矿选矿厂产品质量安全管理与追溯考核试卷
- 新编语文课程与教学论
- 安全教育平台教师授课指南
- 大二入学教育主题班会:承前启后砥砺前行
- 2025现代版购销合同范本
- 译林版三年级上册英语书单词表
- 走进物理-走向统一的自然力(上)智慧树知到答案2024年广西师范大学
- 小学三年级数学两位数乘两位数笔算能力测验练习题
- 心理发展与教育智慧树知到期末考试答案章节答案2024年浙江师范大学
- MOOC 国情分析与商业设计-暨南大学 中国大学慕课答案
- MOOC 大学体育-华中科技大学 中国大学慕课答案
- 《光伏发电工程工程量清单计价规范》
- 国家卫生部《综合医院分级管理标准》
- DB64++1996-2024+燃煤电厂大气污染物排放标准
- 初中八年级数学课件-最短路径-将军饮马问题
- 信息论与编码期末考试题(全套)
评论
0/150
提交评论