《任务2+全加器设计》由会员分享,可在线阅读,更多相关《任务2+全加器设计(10页珍藏版)》请在金锄头文库上搜索。
1、任务2 全加器设计,任务2 1位二进制全加器电路设计,知识点 1.用case语句设计全加器 2.用混合法设计全加器(层次设计) 3.用元件例化语句设计全加器 技能点 1.掌握各种输入法 2.掌握QuartusII软件设计流程,【任务分析】,即考虑两个1位二进制数相加及高位进位,又考虑来自低位进位数相加的运算电路,称为1位全加器。,全加器真值表,SABCi CoABCi(A+B),【相关知识】,1、利用case语句进行设计,case语句是分支语句的一种,case语句不同于if语句,它是根据所满足的条件直接执行多项顺序语句中的一项,没有优先级。case语句常用来描述总线、编码和译码的行为。 cas
2、e语句的结构如下: case 表达式 is when选择值=顺序语句; when选择值=顺序语句; when others=顺序语句; end case;,使用case语句需注意以下几点: 1)条件句中的选择值必须在表达式的取值范围内。 2)除非所有条件句中的选择值能完整覆盖case语句中表达式的取值,否则最末一个条件句中的选择必须用“others表示。 3)case-语句中每一条语句的选择只能出现一次,不能有相同选择值的条件语句出现。 4)case语句执行中必须选中,且只能选中所列条件语句中的一条。这表明case语句中至少要包含一个条件语句。,library ieee; use ieee.s
3、td_logic_1164.all; entity fadder is port (Ai : in bit_vector(2 downto 0); Bi : out bit_vector(1 downto 0); end fadder; architecture rt1l of fadder is begin process(Ai) begin case Ai is when “000“ = Bi Bi Bi Bi Bi Bi Bi Bi null; end case; end process; end rt1l;,全加器case语句设计源程序,2、全加器的混合输入法设计,从任务1设计半加器可
4、以知道,其逻辑运算为:,SAB CoAB,而全加器的逻辑运算式为:,SABCi CoABCi(A+B),其对应的符号为:,从全加器的逻辑运算式可以看出,在设计时完全可以考虑用两个半加器的符号 加一个或门构成全加器。,因此可以这样设计全加器,先建立全加器的项目文件,在其底层设计好半加器(这里用文本输入,也可以采用原理图输入),并生成其对应的符号,以供用原理图设计全加器的顶层文件时调用。 设计好的全加器原理图如下图所示。,3、用元件例化语句设计全加器,元件例化就是一种连接关系,将预先设计好的设计实体定义为一个元件,然后利用特定的语句将此元件与当前设计实体中的端口相连接,从而为当前设计实体引入一个新的低层的设计单元。 元件例化语句由元件声明和元件例化两部分组成。元件声明是将一个现成的设计实体定义为元件,即完成元件的封装;元件例化是对元件声明中定义的元件端口与当前设计实体端口或信号连接关系的说明。其格式如下: 元件声明 component 元件名 generic(类属表) port(端口名表); end component: 元件例化 例化名:元件名 port map(端口名= 连接端口名,);,