% Progetto ALU
%
% Programma elaborato da
%
% Giovanni DI CECCA & Virginia BELLINO
% 50 / 887 408 / 466
%
% http://www.dicecca.net
% Unit aritmetica ( in grado di eseguire addizioni e sottrazioni)
function [y,c_out]=arith_unit(a,b,c_arith,c_flag)
% Associa alle variabili il valore di C_ARITH a 5 bit fornito dal decoder
c_and=c_arith(1);
c_or =c_arith(2);
c_xor=c_arith(3);
sel_c=c_arith(4);
c_in =c_arith(5);
% Calcola i valori di a et b modificati
am=modify_a(a,c_and);
bm=modify_b(b,c_or,c_xor);
% Calcola il nuovo Carry In
c_in=muxn2_1(c_in,c_flag,sel_c);
% Calcola il valore di a et b mediante un Addizionatore binario
[y,c_out]=bin_adder(am,bm,c_in);