全加器设计范文.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
全加器设计 顶层实体: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY f_adder IS PORT(a,b,cin:IN STD_LOGIC; sum,cout:OUT STD_LOGIC); END ENTITY; ARCHITECTURE struct OF f_adder IS COMPONENT h_adder PORT(a,b:IN STD_LOGIC; s,c:OUT STD_LOGIC); END COMPONENT; COMPONENT or_2 PORT(a,b:IN STD_LOGIC; c:OUT STD_LOGIC); Si=Ai⊕Bi⊕Ci-1 END COMPONENT; SIGNAL s1,c1,c2:STD_LOGIC; BEGIN u1:h_adder PORT MAP(a,b,s1,c1); --位置映射 u2:h_adder PORT MAP(s1,cin,sum,c2); u3:or_2 PORT MAP(c2,c1,cout); --u1:h_adder PORT MAP(a=>a,b=>b,s=>s1,c=>c1); 名称映射 --u2:h_adder PORT MAP(a=>s1,b=>cin,s=>sum,c=>c2); --u3:h_adder PORT MAP(a=>c2,b=>c1,c=>cout); END ARCHITECTURE; 半加器: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT(a,b:IN STD_LOGIC; s,c:OUT STD_LOGIC); END ENTITY; ARCHITECTURE behav OF h_adder IS BEGIN s<=a XOR b; c<=a AND b; END behav; 或门电路: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY or_2 IS PORT(a,b:IN STD_LOGIC; c:OUT STD_LOGIC); ENd ENTITY; ARCHITECTURE behav OF or_2 IS BEGIN c<=a or b; END behav; 元件例化即元件调用,将预先设计好的设计实体定义为一个元件,利用元件例化语句将此元件与当前设计实体中的指定端口相连接,从而为当前设计实体引入一个新的低一级的设计层次。 元件例化可以是多层次的,一个调用了较低层次元件的顶层设计实体本身也可以被更高层次设计实体调用,成为该设计实体中的一个元件。 元件例化语句包括元件说明语句COMPONENT 和端口映射语句PORT MAP。元件说明语句将一个现成的设计实体定义为一个元件,即对待调用的元件做出调用声明,或对一个现成的设计实体进行封装,只留出对外的接口界面。端口说明可以使用与待调用元件相同的端口名,也可以不一样,但是端口信号的数据类型必须与原设计实体文件一致。 端口映射语句是待调用元件与当前设计实体(顶层文件)中元件间及端口的连接说明。端口映射有三种方式:位置映射、名称映射、混合映射。位置映射是指PORT MAP语句中的实际信号的书写顺序及位置与被调用元件的端口的书写顺序与位置保持一致;名称映射是指将被调用元件的各信号名称赋值给结构体中需要使用的信号名;混合映射指在多个端口中,某些端口采用位置映射,某些端口采用名称映射。,表示调用元件端口信号与系统的外部端口名相连,=>是连接符号,左面放置内部元件的端口名,右面放置内部元件以外需要连接的端口名或信号名。 混合编辑(自底向上)实例:十六进制计数器 Cnt4.vhd文件 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt4 is port(clk:in std_logic; rst:in std_logic; en:in std_logic; q:out std_logic_vector(3 downto 0)); end; architecture one of cnt4 is signal q1:std_logic_vector(3 downto 0); begin process(clk,en,rst) begin if en='1' then if rst='1' then q

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档