《可编程逻辑器件(EDA):第9章 VHDL结构与要素-ST》由会员分享,可在线阅读,更多相关《可编程逻辑器件(EDA):第9章 VHDL结构与要素-ST(32页珍藏版)》请在金锄头文库上搜索。
1、EDA技术实用教程技术实用教程第第9 9章章 VHDL结构与要素结构与要素 9.1 实实 体体 9.1.1 实体语句结构 VHDL实体的功能是对设计实体与外部电路进行接口描述。参数传递说明语句:GENERIC ()9.1 实实 体体 9.1.2 参数传递说明语句 参数传递说明语句是一种常数参数的端口界面,放置于实体或块结构体中的说明部分GENERIC语句传递的参数(也称类属参量)与一般常数不同一般地,常数只能从设计实体的内部被赋值,且不能改变类属参量值可以由设计实体外部提供,设计者可以通过设定此参数值来便捷迅速地改变电路的结构与规模参数传递说明语句定义的器件 类似于可接受外部赋值的输入端口(数
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.4 端口说明语句 PORT说明语句是对一个设计实体界面的说明及对设计实体与外部电路的接口通道的说明,包括对每一接口的输入输出模式和数据类型的定义。9.2 结结 构构 体体 1. 结构体的一般语言格式 2. 结构体说明语句 说明语句是对结构体功能语句中用到的信号、常数、数据类型、元件、状态机、
3、函数和过程等加以说明。9.2 结结 构构 体体 3. 功能描述语句结构 进程语句进程语句 信号赋值语句信号赋值语句 子程序调用语句子程序调用语句 函数与过程函数与过程 元件例化语句元件例化语句9.3 子程序子程序 子程序是一个VHDL程序模块子程序只能使用顺序语句子程序不能从本结构体的并行语句或其他进程中直接读取信号值或向信号赋值子程序只能通过子程序调用及子程序界面端口进行通信子程序可以在程序包、结构体和进程中定义(可视性)子程序允许有重名,但参数类型和返回值数据类型必须不同(可重载)子程序包括过程PROCEDURE和函数FUNCTION9.3 子程序子程序 9.3.1 函数 函数定义包括函数
4、首和函数体两部分,在程序包中必须定义函数首函数首包括函数名、参数表(定义输出值,参数默认为常数)和返回值的数据类型三部分在程序包中定义,函数首必须放置在程序包的说明部分,函数体必须放置在程序包的包体内。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 子程序子程序 9.3.2 重载函数重载函数 接上页接上页9.3 子
5、程序子程序 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 转换函数转换函数 将0255范围内的自然数转换成8位二进制数9.3 子程序子程序 9.3.4 决断函数 决断函数不可综合,主要用于VHDL仿真中解决信号被多个驱动源驱动时,驱动信号间的竞争问题。当多个驱动源都同时产生一个处理事项,只有其中一个驱动源的信号值能赋给被驱动的信号。在VHDL
6、中,一个信号带多个驱动源时,没有附加决断条件是不合法的。决断函数调用后返回的是单一信号值,称决断信号值。 9.3 子程序子程序 9.3.5 过程过程定义包括过程首和过程体两部分,在程序包中必须定义过程首过程首包括过程名和参数表(显式定义工作模式:IN、OUT和INOUT),过程没有返回值过程能够以顺序语句方式或并行语句方式被调用9.3 子程序子程序 9.3.5 过程9.3 子程序子程序 9.3.5 过程9.3 子程序子程序 9.3 子程序子程序 函数与过程:函数与过程均属于子程序,其目的在于能够有效地完成重复性的设计工作;子程序不能从进程结构中直接读取信号值或者向信号赋值,只能通过子程序调用及与子程序的界面端口进行通信过程的调用可获得多个返回值;函数只能返回一个值函数中所有参数都是输入参数;过程有输入参数、输出参数和双向参数过程一般被看作一种语句结构,可以单独存在;函数通常作为语句或表达式的一部分被调用