《EDA技术与VHDL实用教程》第5章 VHDL设计深入.pptVIP

  • 4
  • 0
  • 约9.91千字
  • 约 10页
  • 2025-09-04 发布于广东
  • 举报

《EDA技术与VHDL实用教程》第5章 VHDL设计深入.ppt

(2)过程声明的地方可在结构体的声明部分、进程的声明部分或程序包中声明过程。在结构体或进程中声明的过程,只能在结构体或进程中调用,而在程序包中生命的过程则可通过声明引用程序包,在不同的实体的各个结构体内调用。(3)过程的调用过程调用有两种方式,即顺序语句方式和并行语句方式。在顺序语句环境中,一个过程被执行,则属于顺序语句方式;在并行语句环境中,过程体中定义的任一IN或INOUT的目标参量发生改变时,将启动过程的调用,这时的调用是属于并行语句方式。过程与函数一样可以重复调用或嵌套式调用。例5.2其仿真波形如下图:上例描述的是一个全减器,先在结构体说明部分声明半减器halfsub过程体和或门orgate过程体,然后通过在结构体并行语句部分用这两个过程来实现全减器。从上例可看出过程调用格式如下:其中过程参数表可以是位置连接映射形式(a1,a2,….an)或者指名连接映射形式(x1=a1,x2=a2,……xn=an)。[标号:]过程名(实际函数参数表);二、VHDL库与程序包VHDL库(library)是用来存储编译好的VHDL设计文件的仓库。常见的库有IEEE库、STD库、ASIC矢量库、WORK库和用户自定义库。VHDL库中存放的VHDL设计文件包含一个或多个VHDL设计单元,这些设计单元可以是实体声明、结构体、配置声明、程序包声明和程序包体等。下面重点介绍程序包声明、程序包体和各种VHDL设计单元的特点及其在文件中的组织和库中存储。(一)程序包程序包包括程序包声明和程序包体两部分。1.程序包声明程序包声明亦称程序包首,是用来进行一系列共用的声明。在VHDL设计文件中,除了实体声明、结构体等设计单元外,还有程序包声明、程序包体这两种设计单元。一个程序包声明和与它对应的程序包体一起保存了一些经常用到的或在一个效大的工程项目中许多文件要用到的已定义的常数、数据类型、元件调用说明以及子程序接口等内容。程序包声明包含一系列可供其他设计单元共享的声明,它定义了程序包的接口,即定义了对其设计单元可见的条目。其声明格式如下:PACKAGE程序包名IS程序包首声明部分END[PACKAGE]程序包名;2.程序包体程序包体用来存储在相应的程序包声明中声明了的函数或过程的定义即函数或过程体,也可以用来存储出现的相应的程序包声明中的完整的常量声明。程序包体总是与程序包声明相对应的,并且一个程序包声明只能对应一个程序包体。程序包声明与对应一个程序包体的名字应相同。其格式如下:PACKAGEBODY程序包名IS程序包体说明部分程序包体内容部分END[PACKAGEBODY]程序包名;(二)各种VHDL设计单元的特点及其在文件中组织和库中存储VHDL设计单元有实体声明、结构体、配置声明、程序包声明和程序包体等类型。1.VHDL设计单元的特点(1)实体声明:在一个实体声明中声明的条目在与它相关联的各个结构体中是隐式可见的。(2)结构体:可以有多个结构体同属一个实体,或者说与同一个实体声明相关联。在一个结构体内声明的信号不能被其他设计单元引用。(3)配置声明:可以有多个结构体同属于一个实体时,应有配置声明。(4)程序包声明:在一个程序包声明的条目可通过LIBRARY和USE子句来提供给其他设计单元。程序包声明中声明的条目在相应的程序包体中隐式可见。(5)程序包体:程序包体名必须和它所对应的程序声明名字相同,因此一个程序包声明最多只有一个程序包体。一个程序包体内部声明的条目的作用范围局限在该程序包体的内部。2.各种设计单元的文件的组织VHDL设计文件是一个包含VHDL源代码的文件,它可包含一个或多个设计单元,设计单元可以是上述的5种单元。(1)以上每种设计单元都可以放在一个独立的VHDL设计文件中。(2)一个VHDL设计实体的实体声明、结构体可以分开放在不同VHDL设计文件中,但值得推荐的做法是把一个VHDL设计实体的实体声明、结构体、配置声明可以放在同一个VHDL设计文件中,并且这个文件以实体名为名。(3)一个VHDL设计文件可包含多个设计实体的实体声明、结构体、配置声明,但若有顶层实体,这

文档评论(0)

1亿VIP精品文档

相关文档