VHDL第4章基本数据类型与命令语句.ppt

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

第四章 VHDL语言基础 VHDL 概述 语法规则 VHDL 语言的基本结构 基本语句 应用举例 4.1 VHDL概述 硬件描述语言(Hardware Description Language,HDL),是电子系统硬件行为描述、结构描述、数据流描述的语言。 VHDL语言的英文全名是Very High Speed Integrated Circuit Hardware Description Language 美国国防部电子系统项目有众多的承包公司。由于各公司技术路线不一致,许多产品不兼容,他们使用各自的设计语言,造成了信息交换困难和维护困难。国防部为他们的超高速集成电路提供一种硬件描述语言,要求各公司的合同都用它来描述,以避免产生歧义。 VHDL工作小组于1981年6月成立,提出了满足电子设计要求的能够作为工业标准的HDL。1983年,提出语言版本和开发软件环境。1986年IEEE标准化组织开始工作,讨论VHDL语言标准,于1987年12月通过标准审查,并宣布实施,即IEEE STD 1076-1987[LRM87]。1993年VHDL重新修订,形成新的标准即IEEE STD 1076-1993[LRM93]。 美国国防部实施新的技术标准,要求电子系统开发商的合同文件一律采用VHDL文档。即第一个官方VHDL标准得到推广、实施和普及。 4.2 语法规则 4.3 基本结构 4.4 基本语句 并行语句 2.进程语句:描述顺序事件。 格式: 进程标号: PROCESS(信号敏感表)IS --说明区,声明局部变量、数据类型 BEGIN --进程开始 --顺序语句 END PROCESS进程标号;--进程结束 PROCESS(clk,nreset) BEGIN IF(nreset=‘0’) THEN qcnt=“0000”; ELSEIF(clk’EVENT and clk=‘1’) THEN qcnt=qcnt+1; END IF; END PROCESS; 并行语句 3.元件例化语句:元件的调用。 (1)元件声明 COMPONENT元件实体名 PORT(元件端口信息); END COMPONENT; (2)元件例化 例化名:实体名PORT MAP(端口列表); 并行语句 3.元件例化语句:元件的调用。 CI NRESET CLK CO QCNT[3..0] ADR[3..0] DECODEOUT[6..0] qout ci rd clk co ENTITY cntvh10 IS PORT(rd,ci,clk : IN std_logic; co : OUT std_logic; qout: OUT std_logic_vector(6 downto 0) ); ARCHITECTURE arch OF cntvh10 IS COMPONENT cntvh10 IS PORT(ci,nreset,clk :IN std_logic; co:OUT std_logic; qcnt:BUFFER std_logic_vector(3 downto 0)); END COMPONENT; COMPONENT decode47 IS PORT(adr :IN std_logic_vector(3 downto 0); decodeout:OUT std_logic_vector(6 downto 0)); END COMPONENT; SIGNAL qa:std_logic_vector(3 downto 0); BEGIN u1:cntm10 PORT MAP(ci,rd,clk,co,qa); u2:decode47 PORT MAP(decodeout=qout,adr=qa); END arch; 并行语句 4.过程语句:子程序的一种。 PROCEDURE 过程名(列出过程的输入/输出信 号端口)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’REVERSE_RANGE LOOP q:=q*2; IF z(i)=‘1’ THEN q:=q+1; ELSIF z(i)/=‘0’ THEN

文档评论(0)

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

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

1亿VIP精品文档

相关文档