资源描述
EDA技术实用教程,第9章 VHDL结构与要素,9.1 实 体,9.1.1 实体语句结构,9.1 实 体,9.1.2 参数传递说明语句,9.1 实 体,9.1.2 参数传递说明语句,9.1 实 体,9.1.2 参数传递说明语句,9.1 实 体,9.1.3 参数传递映射语句,9.1 实 体,9.1.3 参数传递映射语句,9.1 实 体,9.1.3 参数传递映射语句,9.1 实 体,9.1.4 端口说明语句,9.2 结 构 体,1. 结构体的一般语言格式,2. 结构体说明语句,9.2 结 构 体,3. 功能描述语句结构, 进程语句 信号赋值语句 子程序调用语句 元件例化语句,9.3 子程序,9.3.1 函数,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 重载函数,接下页,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 子程序,9.3.4 决断函数,决断函数不可综合,主要用于VHDL仿真中解决信号被多个驱动源驱动时,驱动信号间的竞争问题。 当多个驱动源都同时产生一个处理事项,只有其中一个驱动源的信号值能赋给被驱动的信号。 决断函数输入一般是单一变量,多个驱动源的信号值组成非限定数组, 多个信号驱动源,其信号值组成的未限定数组可依次类推。 决断函数调用后返回的是单一信号值,称决断信号值。,9.3 子程序,9.3.5 过程,9.3 子程序,9.3.5 过程,9.3 子程序,9.3.5 过程,9.3 子程序,9.3.5 过程,9.3 子程序,9.3.5 过程,9.3 子程序,9.3.6 重载过程,9.4 VHDL库,9.4.1 库的种类,1. IEEE库,std_logic_1164 Numeric_Bit Numeric_Std Math _Real Math _Complex,2. STD库,3. WORK库,4. VITAL库,9.4 VHDL库,9.4.2 库的用法,9.5 VHDL程序包,9.5 VHDL程序包,9.5 VHDL程序包,9.5 VHDL程序包,(1)STD_LOGIC_1164程序包。 (2)STD_LOGIC_ARITH程序包。 (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):包括实数类型、整数类型、枚举类型、时间类型。 复合类型(Composite Type):可以由小的数据类型复合而成,如可由标量型复合而成。复合类型主要有数组型(Array)和记录型(Record)。 存取类型(Access Type):为给定的数据类型的数据对象提供存取方式。 文件类型(Files Type):用于提供多值存取类型。,9.8 数 据 类 型,9.8.1 VHDL预定义数据类型,1. 布尔类型,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. 标准逻辑位数据类型,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 数 据 类 型,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操作符,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 算术操作符,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,习题,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的数据类型都是STD_LOGIC_VECTOR,是否能直接进行加法运算?说明原因和解决方法。 9-8 VHDL中有哪三种数据对象?详细说明它们的功能特点以及使用方法,举例说明数据对象与数据类型的关系。 9-9 能把任意一种进制的值向一整数类型的数据对象赋值吗?如果能,怎样做?,习题,9-10 判断下列VHDL标识符是否合法,如果有误则指出原因: 160FA, 1012F, 8789, 8356, 20101010 74HC245 , 74HC574, CLR/RESET, IN 4/SCLK, D100 9-11 数据类型BIT、INTEGER和BOOLEAN分别定义在哪个库中?哪些库和程序包总是可见的? 9-12 函数与过程的设计与功能有什么区别?调用上有什么区别? 9-13 回答有关BIT和BOOLEAN数据类型的问题: (1)解释BIT和BOOLEAN类型的区别。 (2)对于逻辑操作应使用哪种类型? (3)关系操作的结果为哪种类型? (4)IF语句测试的表达式是哪种类型?,习题,9-14 运算符重载函数通常要调用转换函数,以便能够利用已有的数据类型。下面给出一个新的数据类型AGE,并且下面的转换函数已经实现: function CONV_INTEGER(ARG: AGE)return INTEGER; 仿照本章中的示例,利用此函数编写一个“+”运算符重载函数,支持下面的运算: SIGNAL a,c : AGE; . c B时E=1;当AB时F=1。第一种设计方案是常规的比较器设计方法,即直接利用关系操作符进行编程设计;第二种设计方案是利用减法器来完成,通过减法运算后的符号和结果来判别两个被比较值的大小。对两种设计方案的资源耗用情况进行比较,并给以解释。 9-16 利用循环语句和移位操作符实现移位相加方式的纯组合电路8位乘法器设计。,实验与设计,9-1 乐曲硬件演奏电路设计 (1)实验目的: (2)实验原理:,实验与设计,9-1 乐曲硬件演奏电路设计 (1)实验目的: (2)实验原理:,实验与设计,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 乐曲硬件演奏电路设计 (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)实验内容6: (9)实验内容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-2 数字彩色液晶显示控制电路设计 (1)实验任务1: 基于5E+系统的基本控制演示示例是:/KX_7C5EE+/ EXPERIMENTs/EXP13_COLOR_LCD/ (2)实验任务2: (3)实验任务3: (4)实验任务4: (5)实验任务5: (6)实验任务6: 演示示例:/KX_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、硬件方式,即不使用任何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_GAME/;键盘控制的两个游戏: /KX_7C5EE+/DEMOs/EXPL1_VGA_GAME_ARK/;和/ EXPL2_VGA_GAME_pong/; 32位简单CPU设计:/KX_7C5EE+/DEMOs/ EXPL16_MIPS_COMPUTER_VGA/。,实验与设计,9-5 PS2键盘控制模型电子琴电路设计 (1)实验原理:,实验与设计,9-5 PS2键盘控制模型电子琴电路设计 (1)实验原理:,实验与设计,9-5 PS2键盘控制模型电子琴电路设计 (2)实验内容: 此实验基于5E+系统的示例演示:/KX_7C5EE+/DEMOs/EXPL12_PS2Mouse_VGA_GAME/。 PS/2鼠标接5E+系统的上方的PS/2接口,再接VGA显示器,按键K8复位;移动鼠标即可在VGA上显示鼠标光标,并做游戏。,实验与设计,9-6 乒乓球游戏电路设计 (1) 实验内容1: 演示文件:/KX_7C5EE+/DEMOs/EXPL15_PINPANG_GAME/PINPANG。 (2) 实验内容2:。,9-7 基于CPLD的FPGA PS模式编程配置控制电路设计 (1)实验目的: (2)实验原理: (3)实验任务1: (4)实验任务2: 示例评估板和示例演示程序:/KX_7C5EE+/DEMOs/EXPL17_FPGA_PS_CONFIG/,实验与设计,9-8 基于M9K RAM型LPM移位寄存器设计,9-9 基于FT245BM的USB通信控制模块设计 实验任务: 示例评估板和示例演示程序:/KX_7C5EE+/EXPERIMENTs/EXP38_USB_FT245/,
展开阅读全文