设计一个多功能的1位加法器,有控制信号M、S2、S1、S0。

时间:2019-05-15 13:08:01下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《设计一个多功能的1位加法器,有控制信号M、S2、S1、S0。》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《设计一个多功能的1位加法器,有控制信号M、S2、S1、S0。》。

第一篇:设计一个多功能的1位加法器,有控制信号M、S2、S1、S0。

设计一个多功能的1位加法器,有控制信号M、S2、S1、S0。

当M=1,做算术运算:

在S2、S1、S0的控制下能完成两个1位二进制数A、B的以下算术运算: A加B,A加1,A加B加低位来的进位,B加1,A加,A加0,A加A,A加加1。当M=0,做逻辑运算:

在S2、S1、S0的控制下能完成两个1位二进制数A、B的以下逻辑运算:A+B,A·B,,,,等。

用VHDL编程并仿真(时序)。

library ieee;

use ieee.std_logic_1164.all;

entity adder is

port(m,s2,s1,s0,a,b,ci:in std_logic;

f,co:out std_logic);

end adder;

architecture behave of adder is

signal f_i:std_logic_vector(3 downto 0);

begin

f_i<=m&s2&s1&s0;

process(f_i)

begin

case f_i is

when “1000”=> f<=a xor b;co<=a and b;

when “1001”=> f<=a xor'1';co<=a;

when “1010”=> f<=(a xor b)xor ci;co<=(a and b)or(ci and(a xor b));

when “1011”=> f<=b xor '1';co<=b;

when “1100”=> f<=a xor(not b);co<=a and(not b);

when “1101”=> f<=a xor '0';co<='0';

when “1110”=> f<=a xor a;co<=a;

when “1111”=> f<=a xor(not b)xor '1';co<=(a and b)or(a xor b);

when “0000”=> f<=a or b;

when “0001”=> f<=a and b;

when “0010”=> f<=not a;

when “0011”=> f<=not b;

when “0100”=> f<=a xor b;

when “0101”=> f<=a or(not b);

when “0110”=> f<=not(a xor b);

when “0111”=> f<=a and(not b);

when others=> f<='0';co<='0';

end case;

end process;

end behave;

下载设计一个多功能的1位加法器,有控制信号M、S2、S1、S0。word格式文档
下载设计一个多功能的1位加法器,有控制信号M、S2、S1、S0。.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐