第8讲VHDL语言中的函数子程序包和库课件_第1页
第8讲VHDL语言中的函数子程序包和库课件_第2页
第8讲VHDL语言中的函数子程序包和库课件_第3页
第8讲VHDL语言中的函数子程序包和库课件_第4页
第8讲VHDL语言中的函数子程序包和库课件_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八讲 VHDL语言中的函数、子程序、包和库 第八讲 VHDL语言中的函数、子程序、包和库 提纲结构模型层次与抽象类属配置总结提纲函数(Function)函数(Function)函数(Function)函数的外部参量与模式默认的模式是in函数不能修改输入参量函数内部定义的变量在每一次调用时都要被初始化函数内部不允许出现Wait语句函数不能调用另一函数函数(Function)函数的外部参量与模式函数(Function)在结构或进程的定义区域加入函数代码函数(Function)函数举例:时钟沿判断函数函数举例:时钟沿判断函数函数举例:位矢量函数函数的一种用法:类型转换函数举例:位矢量函数函数举例:

2、 判决函数信号赋值语句的基本结构: signal = (value expression after time expression)右边的的部分常称为一个波形元素每一个信号和一个驱动器对应函数举例: 判决函数信号赋值语句的基本结构:函数举例: 判决函数在驱动器中保存了信号的当前值和未来时刻的值,即该信号的预期波形信号赋值语句的执行就是对一个信号的驱动器进行修改信号的当前值就是驱动器头部的值函数举例: 判决函数函数举例: 判决函数如何计算共享信号的值?引入判决函数函数举例: 判决函数函数举例: 判决函数当冲突的信号事件发生时就需要引用判决函数判决是一种隐式的关联操作函数举例: 判决函数函数举例

3、: 判决函数函数举例: 判决函数函数举例: 判决函数电路行为如果有任何其中一个控制信号打开了开关,则输出信号被拉低VHDL描述如果有任何一个信号驱动器试图将输出信号拉低(驱动器头部的值),则判决函数返回一个0值在任何一个驱动器试图对输出信号赋值时,判决函数将被调用函数举例: 判决函数函数举例: 判决类型std_logic函数举例: 判决类型std_logic函数举例: 判决类型std_logic函数举例: 判决类型std_logic函数举例: “线或”逻辑多个芯片共同驱动一个共享的出错指示信号结构值是各个驱动信号的逻辑或函数举例: “线或”逻辑函数举例: “线或”逻辑函数举例: “线或”逻辑函

4、数资源在IEEE包(package)中有标准函数定义,可以参考学习函数资源子程序(Procedure)参数的模式可以是 in (读) 和 out (写)默认的输入参数类型是常数默认的输出类型是变量子程序内部定义的变量在子程序每一次调用时将被初始化子程序(Procedure)子程序(Procedure)子程序(Procedure)子程序(Procedure)子程序(Procedure)子程序(Procedure)子程序的位置决定了它的可见性(visibility)和用途子程序(Procedure)子程序与信号子程序与信号子程序与信号子程序可以对作为输入参量的信号进行赋值按照设计中的层次划分,子程

5、序可以对来自高层的非参量表中的信号,如端口进行赋值按照设计中的层次划分,子程序中设计的信号可能在子程序之外定义子程序与信号并行与顺序的子程序调用并行与顺序的子程序调用并行子程序调用并行子程序调用等价的顺序子程序调用等价的顺序子程序调用子程序的重载电路单元在输入信号的数量和输入信号的类型上存在差异用不同的子程序来描述这些电路单元子程序的命名将变得很烦琐子程序的重载子程序的重载上述电路单元可以描述为: dff_bit (clk, d, q, qbar) asynch_dff_bit (clk, d,q,qbar,reset,clear) dff_std (clk,d,q,qbar) asynch_

6、dff_std (clk, d,q,qbar,reset,clear)所有的上述电路单元都采用相同的名字子程序重载通过调用时的参量表来找到正确的子程序子程序的重载子程序的重载VHDL是一种强类型语言重载是一种处理用户自定义类型的有效、方便的办法对重载操作和重载机制的管理导致了包(package)的概念的出现子程序的重载包(package)包的申明部分对包中所包含的函数,子程序和类型进行申明用作包的接口只有被申明的内容才可以被外部引用通过use子句来对包进行引用包体对包头中定义的函数和子程序进行实现实例化包头中定义的常数包(package)包的申明部分包举例:std_logic_1164包头包举

7、例:std_logic_1164包头包体包体是被编译到库(library)中的新定义的类型必须具有关于运算的定义,例如逻辑运算(如, and, or )和算术运算 (如, +, *)分析存储在IEEE 库中的std_logic_1164包包体库(library)设计单元最终被编译和存储在库中逻辑库的名字和其物理存储目录相对应STD库和WORK库是隐含定义的库(library)库:设计内容对基本设计单元和次级设计单元进行区分定义了编译顺序库:设计内容库:可见性规则库:可见性规则库:可见性规则When multiple design units are in the same file visib

8、ility of libraries and packages must be established for each primary design unit (entity, package header, configuration) separately! Secondary design units derive library information from associated primary design unitThe use clause may selectively establish visibility, e.g., only the function risin

9、g_edge() is visible within entity design-2 Secondary design inherit visibilityNote design unit descriptions are decoupled from file unit boundaries库:可见性规则When multiple design unSummary Functions Resolution functions Procedures Concurrent and sequential procedure calls Subprogram overloading Packages Packa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论