U
umairsiddiqui
Guest
prendere in considerazione questo codice ...
aritmetica, che è unità di ALU:
sostiene: ADD, SUB, ADC e FFS
problema è che, dato il codice richiedono 17bit subtractor, 16-bit di tolleranza, e 16-bit con tolleranza carry-in.please help come ridurre la dimensione ...
<img src="http://www.edaboard.com/images/smiles/icon_confused.gif" alt="Confuso" border="0" />
Codice:libreria IEEE;
IEEE.STD_LOGIC_1164.ALL uso;
IEEE.STD_LOGIC_ARITH.ALL uso;
IEEE.STD_LOGIC_UNSIGNED.ALL uso;entità alluminio è
Port (a: in std_logic_vector (15 downto 0);
b: in std_logic_vector (15 downto 0);
CIN: in std_logic;
op: in std_logic_vector (1 downto 0);
c: out std_logic_vector (15 downto 0);
giudice: in std_logic;
OFL: out std_logic);
fine alluminio;architettura comportamentale è di alluminio
iniziareprocesso (a, b, cin, op)
variabile c_select: std_logic;
a_temp variabile,
b_temp,
c_temp: std_logic_vector (16 downto 0);iniziare
a_temp: = "0" e uno;
b_temp: = "0" & b;
op caso (1) è
quando'0 '=> c_select: ='0';
quando'1 '=> c_select: = cin;
quando gli altri => c_select: ='0 ';
fine caso;
op caso (0) è
quando'0 '=> c_temp: = a_temp b_temp c_select;
quando'1 '=> c_temp: = a_temp - (b_temp c_select);
quando gli altri => c_temp: = (altri =>'0 ');
fine caso;
c <= c_temp (15 downto 0);
cout <= c_temp (16);
OFL <= c_temp (15) xor c_temp (14);
fine processo;fine comportamentali;
aritmetica, che è unità di ALU:
sostiene: ADD, SUB, ADC e FFS
problema è che, dato il codice richiedono 17bit subtractor, 16-bit di tolleranza, e 16-bit con tolleranza carry-in.please help come ridurre la dimensione ...
<img src="http://www.edaboard.com/images/smiles/icon_confused.gif" alt="Confuso" border="0" />
Codice:libreria IEEE;
IEEE.STD_LOGIC_1164.ALL uso;
IEEE.STD_LOGIC_ARITH.ALL uso;
IEEE.STD_LOGIC_UNSIGNED.ALL uso;entità alluminio è
Port (a: in std_logic_vector (15 downto 0);
b: in std_logic_vector (15 downto 0);
CIN: in std_logic;
op: in std_logic_vector (1 downto 0);
c: out std_logic_vector (15 downto 0);
giudice: in std_logic;
OFL: out std_logic);
fine alluminio;architettura comportamentale è di alluminio
iniziareprocesso (a, b, cin, op)
variabile c_select: std_logic;
a_temp variabile,
b_temp,
c_temp: std_logic_vector (16 downto 0);iniziare
a_temp: = "0" e uno;
b_temp: = "0" & b;
op caso (1) è
quando'0 '=> c_select: ='0';
quando'1 '=> c_select: = cin;
quando gli altri => c_select: ='0 ';
fine caso;
op caso (0) è
quando'0 '=> c_temp: = a_temp b_temp c_select;
quando'1 '=> c_temp: = a_temp - (b_temp c_select);
quando gli altri => c_temp: = (altri =>'0 ');
fine caso;
c <= c_temp (15 downto 0);
cout <= c_temp (16);
OFL <= c_temp (15) xor c_temp (14);
fine processo;fine comportamentali;