U
umairsiddiqui
Guest
considerar este código ...
que é unidade de aritmética ALU:
suporta: ADD, SUB, ADC e SBB
problema é que, dado exigir código 17bit subtractor, 16-bit componente, e 16-bit componente com carry-in.por favor ajude a forma de reduzir este tamanho ...
<img src="http://www.edaboard.com/images/smiles/icon_confused.gif" alt="Confused" border="0" />
Código:library IEEE;
utilização IEEE.STD_LOGIC_1164.ALL;
utilização IEEE.STD_LOGIC_ARITH.ALL;
utilização IEEE.STD_LOGIC_UNSIGNED.ALL;entidade alumínio é
Porta (um: em std_logic_vector (15 virou 0);
b: em std_logic_vector (15 virou 0);
cin: em std_logic;
op: em std_logic_vector (1 virou 0);
c: out std_logic_vector (15 virou 0);
jurisdicional: out std_logic;
ofl: out std_logic);
final alumínio;Behavioral arquitetura de alumínio é
começoprocesso (a, b, cin, op)
variável c_select: std_logic;
a_temp variável,
b_temp,
c_temp: std_logic_vector (16 virou 0);começo
a_temp: = "0" e um;
b_temp: = "0" & b;
caso op (1) é
quando'0 '=> c_select: ='0';
quando'1 '=> c_select: = cin;
quando outros => c_select: ='0 ';
final caso;
caso op (0) é
quando'0 '=> c_temp: = a_temp b_temp c_select;
quando'1 '=> c_temp: = a_temp - (b_temp c_select);
quando outros => c_temp: = (others =>'0 ');
final caso;
c <= c_temp (15 virou 0);
cout <= c_temp (16);
ofl <= c_temp (15) XOR c_temp (14);
processo final;final Comportamental;
que é unidade de aritmética ALU:
suporta: ADD, SUB, ADC e SBB
problema é que, dado exigir código 17bit subtractor, 16-bit componente, e 16-bit componente com carry-in.por favor ajude a forma de reduzir este tamanho ...
<img src="http://www.edaboard.com/images/smiles/icon_confused.gif" alt="Confused" border="0" />
Código:library IEEE;
utilização IEEE.STD_LOGIC_1164.ALL;
utilização IEEE.STD_LOGIC_ARITH.ALL;
utilização IEEE.STD_LOGIC_UNSIGNED.ALL;entidade alumínio é
Porta (um: em std_logic_vector (15 virou 0);
b: em std_logic_vector (15 virou 0);
cin: em std_logic;
op: em std_logic_vector (1 virou 0);
c: out std_logic_vector (15 virou 0);
jurisdicional: out std_logic;
ofl: out std_logic);
final alumínio;Behavioral arquitetura de alumínio é
começoprocesso (a, b, cin, op)
variável c_select: std_logic;
a_temp variável,
b_temp,
c_temp: std_logic_vector (16 virou 0);começo
a_temp: = "0" e um;
b_temp: = "0" & b;
caso op (1) é
quando'0 '=> c_select: ='0';
quando'1 '=> c_select: = cin;
quando outros => c_select: ='0 ';
final caso;
caso op (0) é
quando'0 '=> c_temp: = a_temp b_temp c_select;
quando'1 '=> c_temp: = a_temp - (b_temp c_select);
quando outros => c_temp: = (others =>'0 ');
final caso;
c <= c_temp (15 virou 0);
cout <= c_temp (16);
ofl <= c_temp (15) XOR c_temp (14);
processo final;final Comportamental;