VHDL语言程序的基本结构 电子技术 .docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE PAGE 1 VHDL语言程序的基本结构 - 电子技术 一、VHDL语言设计的基本单元及其构成l 构造体的组织 l 例 entity COUNTER3 is port( clk: in bit; reset : in bit; count: out integer range 0 to 7); end COUNTER3; architecture MY_ARCH of COUNTER3 is signal count_tmp : integer range 0 to 7; begin process begin wait until (clkevent and clk=1); if reset=1 or count_tmp =7 then count_tmp=0; else count_tmp=count_tmp + 1; end if; end process; count=count_tmp; end MY_ARCH; 注:构造体中的信号和常数名不能与实体端口名相同。 二、语言结构体的子结构描述 1. block语句结构 l 语句结构: 块结构名: block begin . . . end block 块结构名; 2. 进程(process)语句结构 l 进程语句的结构: [进程名]:process(信号1,信号2,……) {说明 内部变量} begin   {挨次语句}  end process; l 进程的组织 l 功能独立的电路可用进程来描述 l 进程中语句的挨次性 l 进程的启动 *敏感表 *敏感表中信号的变化将启动进程语句 *启动后,语句从上到下逐句执行,最终一个语句执行完毕后,返回进程开头的语句,等待下一次敏感表的变化。 l 进程的同步描述 同一结构体中有多个进程存在时,进程之间可一边进行通信,一边并行同步执行。 3.子程序(subprogram)语句结构描述 两种类型:过程(procedure) 函数 (function) l 过程语句 结构: procedure 过程名(参数1,参数2,…) is [定义语句]; begin [挨次处理语句]; end 过程名; *参数可以是输入也可以是输出 *例: 将位矢量转换为整数 procedure vector_to_int (z : in std_logic_vector; x_flag : out boolean; q : inout integer) is begin q:=0; x_flag:=false; for i in z range loop q:=q*2; if (z(i)=1) then q:=q+1; elsif(z(i)/=0) then x_flag:=true; end if; end loop; end vector_to_int; 循环次数由z的位数打算,z(0)为最高位。 l 函数语句 结构: function 函数名(参数1,参数2,…) return 数据类型名 is [定义语句]; begin [挨次处理语句]; return 返回变量名 end 函数名; *参数为输入参数 *通常集中在包集合中 *例:将boolean型信号转换到 bit型 function b12bit(a: Boolean) return BIT is begin if a then return 1; else return 0; end if; end b12bit; 三、包集合、库与配置 1.库 库(Library)是经编译后的数据的集合,库说明总是放在设计单元的最前面。 1) 库的种类: l IEEE 库 包含:STD_LOGIC_1164 STD_LOGIC_ARITH STD_LOGIC_UNSIGNED l STD库 包含:STANDARD包集合 TEXTIO 包集合 TEXTIO 包集合使用例: LIBRARY STD; USE STD.TEXTIO. ALL; l ASIC矢量库 各公司供应的ASIC称规律门库 l WORK 库 为现行作业库,存放设计者的VHDL语言程序 l 用户定义的库 用户为自身设计需要所开发的共用包集合和实体。 2) 库的使用 l 除WORK、STD库外,首先要说明。格式: library [库名]; use [库名.包名.项目名]; 例: library ieee; use ieee.std_logic_1164.all; l 库说明的作用范围: 从

文档评论(0)

liuxiyuliuxingyu + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档