- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8讲:VHDL语言中的函数、子程序、包和库
第八讲 VHDL语言中的函数、子程序、包和库 提纲 结构模型 层次与抽象 类属 配置 总结 函数(Function) 函数(Function) 函数的外部参量与模式 默认的模式是in 函数不能修改输入参量 函数内部定义的变量在每一次调用时都要被初始化 函数内部不允许出现Wait语句 函数不能调用另一函数 函数(Function) 在结构或进程的定义区域加入函数代码 函数举例:时钟沿判断函数 函数举例:位矢量函数 函数的一种用法:类型转换 函数举例: 判决函数 信号赋值语句的基本结构: signal = (value expression after time expression) 右边的的部分常称为一个波形元素 每一个信号和一个驱动器对应 函数举例: 判决函数 在驱动器中保存了信号的当前值和未来时刻的值,即该信号的预期波形 信号赋值语句的执行就是对一个信号的驱动器进行修改 信号的当前值就是驱动器头部的值 函数举例: 判决函数 如何计算共享信号的值?引入判决函数 函数举例: 判决函数 当冲突的信号事件发生时就需要引用判决函数 判决是一种隐式的关联操作 函数举例: 判决函数 函数举例: 判决函数 电路行为 如果有任何其中一个控制信号打开了开关,则输出信号被拉低 VHDL描述 如果有任何一个信号驱动器试图将输出信号拉低(驱动器头部的值),则判决函数返回一个0值 在任何一个驱动器试图对输出信号赋值时,判决函数将被调用 函数举例: 判决类型std_logic 函数举例: 判决类型std_logic 函数举例: “线或”逻辑 多个芯片共同驱动一个共享的出错指示信号 结构值是各个驱动信号的逻辑或 函数举例: “线或”逻辑 函数资源 在IEEE包(package)中有标准函数定义,可以参考学习 子程序(Procedure) 参数的模式可以是 in (读) 和 out (写) 默认的输入参数类型是常数 默认的输出类型是变量 子程序内部定义的变量在子程序每一次调用时将被初始化 子程序(Procedure) 子程序(Procedure) 子程序(Procedure) 子程序的位置决定了它的可见性(visibility)和用途 子程序与信号 子程序与信号 子程序可以对作为输入参量的信号进行赋值 按照设计中的层次划分,子程序可以对来自高层的非参量表中的信号,如端口进行赋值 按照设计中的层次划分,子程序中设计的信号可能在子程序之外定义 并行与顺序的子程序调用 并行子程序调用 等价的顺序子程序调用 子程序的重载 电路单元在输入信号的数量和输入信号的类型上存在差异 用不同的子程序来描述这些电路单元 子程序的命名将变得很烦琐 子程序的重载 上述电路单元可以描述为: dff_bit (clk, d, q, qbar) asynch_dff_bit (clk, d,q,qbar,reset,clear) dff_std (clk,d,q,qbar) asynch_dff_std (clk, d,q,qbar,reset,clear) 所有的上述电路单元都采用相同的名字→子程序重载 通过调用时的参量表来找到正确的子程序 子程序的重载 VHDL是一种强类型语言 重载是一种处理用户自定义类型的有效、方便的办法 对重载操作和重载机制的管理导致了包(package)的概念的出现 包(package) 包的申明部分 对包中所包含的函数,子程序和类型进行申明 用作包的接口 只有被申明的内容才可以被外部引用 通过use子句来对包进行引用 包体 对包头中定义的函数和子程序进行实现 实例化包头中定义的常数 包举例:std_logic_1164包头 包体 包体是被编译到库(library)中的 新定义的类型必须具有关于运算的定义,例如逻辑运算(如, and, or )和算术运算 (如, +, *) 分析存储在IEEE 库中的std_logic_1164包 库(library) 设计单元最终被编译和存储在库中 逻辑库的名字和其物理存储目录相对应 STD库和WORK库是隐含定义的 库:设计内容 对基本设计单元和次级设计单元进行区分 定义了编译顺序 库:可见性规则 库:可见性规则 When multiple design units are in the same file visibility of libraries and packages must be establish
您可能关注的文档
最近下载
- 迈富时 上市招股说明书.pdf VIP
- 年产3500吨对羟基苯甲酸乙酯(食品添加剂)项目可行性研究报告.docx VIP
- HMMT_-_哈佛-MIT数学竞赛题.pdf
- 资金平衡表.doc VIP
- 小学生四年级上册暑假练字电子字帖生字写字表提前学习练习楷书字帖pdf可打印文件.pdf VIP
- 氢氟酸安全标签.doc VIP
- 2025年全国统一高考生物试卷(江西卷)含答案 .pdf VIP
- 《义务教育数学课程标准(2022年版)》【试题】题库及答案汇总.docx VIP
- 八年级上册历史《中华民族的抗日战争》单元作业设计 (优质案例50页) .pdf VIP
- 商务日语函电第2课 支払い遅延の依頼と回答.ppt VIP
文档评论(0)