网站大量收购独家精品文档,联系QQ:2885784924

第四章第二节D触发器电路、全加器.ppt

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

4.2 VHDL程序设计举例 目的 掌握VHDL程序的基本结构 掌握VHDL程序的设计特点 主要内容 DFF的VHDL描述 全加器的VHDL描述 数据类型 STD_LOGIC标准逻辑位数据类型 STD_LOGIC比BIT包含的内容丰富和完整 BIT:’0’、’1’ STD_LOGIC 库、程序包 std_logic、std_logic_vector: 定义在std_logic_1164.all程序包中,而此包由IEEE定义。 所以,使用到这两种数据类型时,需包含 library ieee; use ieee.std_logic_1164.all; 数据对象 SIGNAL 信号名: 数据类型 [:= 初始值] ; 区别: signal:描述实体内部节点,不定义输入输出方向,在结构体中作为一个数据的暂存器,进行赋值。 端口:描述实体与外界的接口 上升沿检测表达方式和信号属性 不完整条件语句与时序电路 if(clkevent and clk=1)then q1=d; end if; 由波形可见,Q的变化发生在clk的上升沿时刻D的取值。 clk=0时,Q值不变。 由图可见,当CLK=1时,Q随D变化而变化。 clk=0时,Q保持不变。 元件例化语句 元件例化语句:即将从前设计的实体当作本设计的一个元件,然后用VHDL语句将各元件之间的连接关系描述出来; COMPONENT 元件名 IS 【GENERIC (类属表);】 PORT(端口名表); END COMPONENT 元件名; 例化名:元件名 PORT MAP( [元件端口名=]连接端口名,…); [元件端口名=]连接端口名 其中,元件端口名是元件定义语句中的端口名表中已定义好的; 连接端口名是当前系统与准备接入的元件对应端口相连的通信端口; 端口名和当前系统的连接端口名的接口表达 名字关联:端口名和关联符号”=”必须存在 位置关联:只需列出连接端口 std_logic 标准位类型 std_logic_vector 标准一维数组 使用std_logic_vector 表示多通道端口或者总线。 使用std_logic_vector 时要注明其数组宽度: 如: B: out std_logic_vector(7 downto 0); downto 表示最左边为最高位,位数向右依次递减。 如: A:out std_logic_vector(1 to 4); to 表示最左边为最低位,位数向右递增。 前例中定义内部信号P为两个元素的std_logic_vector 一种计数器的设计 entity cnt4 is port(clk:in bit; Q:buffer integer range 15 downto 0); end; architecture bhv of cnt4 is begin process(clk) begin if clk’event and clk=‘1’ then Q=Q+1; end if; end process; end bhv; 数据对象:Buffer 在“=”的左右两边都出现Q,表明Q应具有输入和输出两种端口模式,同时它的输入特性应是反馈方式,即传输符号“=”的右边Q应该来自左边的Q的反馈。 BUFFER与INTOUT的区别在于buffer的输入来自反馈,所以这里将Q定义为buffer类型最为合适。 数据类型:integer 对应“+、-”的操作数必须定义为整数类型(integer)。 表达式:Q=Q+1;式中“Q”和“1”都是整数,满足“=”左右两边都是整数(类型相同),“+”左右两边都是整数的条件。 VHDL综合器要求必须使用“RANGE”句子为所定义的数限定范围,再根据所定义的范围来决定表示此信号或变量的二进制数的位数。 Q:buffer integer ranger 15 downto 0; 定义了Q的取值范围是0~15;可以用四位二进制数表示。 整数的表达式不加引号,如:1,0,25;而逻辑位的数据要加引号,如:’1’,’0’,”0”,”1111”。 自然数:natural:0~正整数; 正整数:positive:比自然数少个0; 另一种计数器表达方式 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt4 is port(cl

文档评论(0)

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

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

1亿VIP精品文档

相关文档