第三章VHDL语言基础.ppt

  1. 1、本文档共99页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章VHDL语言基础

VHDL程序的其它构件 VHDL程序的其它构件 块 块(BLOCK)是VHDL中的一种划分机制,它允许设计者将一个模块划分成数个区域 注意:BLOCK方式的划分结构只是形式上的,在综合后硬件结构的逻辑层次不会增加,跟元件例化是不同的 块标号:BLOCK [(防护表达式)] 接口说明 类属说明 块说明部分; BEGIN 并行语句 END BLOCK[块标号]; VHDL程序的其它构件——块 块——example library ieee; use ieee.std_logic_1164.all; entity example3 is port ( d , clk : in bit ; q, qb: out bit); end example3; architecture latch_bus of example3 is begin b1: block ( clk =‘1’) --()是防护表达式为布尔型 begin q = guarded d after 5 ns; --由保留字guarded引导防护语句 qb = not (d) after 7 ns; end block b1; end latch_bus; VHDL程序的其它构件——块 块——example仿真 分析:防护条件为真时,防护表达式才起作用,而对非防护表达式不起作用 VHDL程序的其它构件 函数 在VHDL中有多种函数形式,包括用户自定义的函数和库中现成的具有专用功能的预定义函数 注意:参数表可以使信号或常数,参数表需要放在关键字CONSTANT或SIGNAL之后如果没有特别说明,默认为常数 FUNCTION 函数名(参数表)RETURN 数据类型; FUNCTION 函数名(参数表)RETURN 数据类型 IS [说明部分]; BEGIN 顺序语句; END 函数名; VHDL程序的其它构件——函数 函数——example library ieee; use ieee.std_logic_1164.all; entity func is port ( a : in bit_vector (0 to 2) ; m : out bit_vector (0 to 2)); end func; architecture demo of func is function sam (x, y, z : bit) return bit is begin return (x and y) or y; end sam; begin process (a) begin m(0) = sam ( a(0), a(1), a(2) ); m(1) = sam ( a(2), a(0), a(1) ); m(2) = sam ( a(1), a(2), a(0) ); end process; end demo; VHDL程序的其它构件——函数 函数——example仿真 注意:如果将一个已编制好的函数并入程序包,函数首必须放在程序包的说明部分,而函数体需放在程序包的包体内。如果只在一个结构体中定义并调用函数,则仅需函数体。 VHDL程序的其它构件——过程 过程 过程(PROCEDURE)与函数一样,也有两部分组成,过程首和过程体 过程参数表中的参数需要IN、OUT、INOUT定义其工作模式。 如果一个过程是在进程中调用,且这个进程已列出敏感参数表,则不能在此过程中使用WAIT语句。 PROCEDURE 过程名(参数表); PROCEDURE 过程名(参数表)IS [定义语句]; BEGIN [顺序语句]; END 过程名; VHDL程序的其它构件 函数和过程的异同点 两者都可用于数值计算、类型转换、或有关设计中的描述; 两者里面都必须是顺序语句,并且不能说明信号 过程参数表一般要定义参量的流向模式,如果没有指定,默认为IN 过程中可以有WAIT语句(但综合器一般不支持),函数中不能 过程有多个返回值,函数只有一个返回值; VHDL程序的其它构件 程序包 程序包(PACKAGE)是一种使已定义的常数、数据类型、函数、过程等能被其他设计共享的一种数据结构 PACKAGE 程序包名 IS 程序包首说明; END 程序包名; PACKAGE BODY 程序包名 IS 程序包体说明部分以及包体; END 程序包名; VHDL程序的其它构件 程序包——Example 定

文档评论(0)

peain + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档