finished exec & deleted reports in alu

This commit is contained in:
shaithan 2021-12-07 23:21:37 +01:00
parent 72cb0a963d
commit 0853e65042
3 changed files with 19 additions and 14 deletions

View File

@ -6,6 +6,8 @@ ARM barrel shifter (pour debug ROR et RRX) : http://www.davespace.co.uk/arm/intr
VHDL basics par Intel FPGA : https://www.youtube.com/watch?v=zm-RA6BsYmc&ab_channel=IntelFPGA VHDL basics par Intel FPGA : https://www.youtube.com/watch?v=zm-RA6BsYmc&ab_channel=IntelFPGA
Declaration VHDL : https://www.csee.umbc.edu/portal/help/VHDL/declare.html
# notice : # notice :
Utiliser uniquement ghdl-gcc (llvm et mcode abort lors des overflows dans les tbs) Utiliser uniquement ghdl-gcc (llvm et mcode abort lors des overflows dans les tbs)

View File

@ -40,24 +40,24 @@ begin
begin begin
case cmd is case cmd is
when "00" => when "00" =>
report "ADD"; -- report "ADD";
res_temp <= add; res_temp <= add;
cout_temp <= add_cout; cout_temp <= add_cout;
when "01" => when "01" =>
report "AND"; -- report "AND";
res_temp <= op1 and op2 ; res_temp <= op1 and op2 ;
cout_temp <= '0'; cout_temp <= '0';
when "10" => when "10" =>
report "OR "; -- report "OR ";
res_temp <= op1 or op2; res_temp <= op1 or op2;
cout_temp <= '0'; cout_temp <= '0';
when "11" => when "11" =>
report "XOR"; -- report "XOR";
res_temp <= op1 xor op2 ; res_temp <= op1 xor op2 ;
cout_temp <= '0'; cout_temp <= '0';
when others => when others =>
report "ERROR"; report "[ERROR] SWITCH CASE UNREACHABLE (Alu::cmd not initialised ?)";
end case; end case;
end process; end process;

View File

@ -240,15 +240,18 @@ architecture Behavior OF EXec is
-- carry flag -- carry flag
exe_c <= alu_value_cout; exe_c <= alu_value_cout;
-- sortie mutex entre ALU et fifo -- sortie du mutiplexeur entre ALU et fifo
mem_adr <= (dec_op1) when dec_pre_index='1' else alu_value_out; mem_adr <= (dec_op1) when dec_pre_index='1' else alu_value_out;
-- Sortie restante -- Synchronisation fifo
-- exe_pop <= dec2exe_empty; exe_pop <= '1' when (
(not dec2exe_empty='1') and (not exe2mem_full='1') -- verification dec2exe non vide et exe2mem non pleine
and (dec_mem_lb='1' or dec_mem_lw='1' or dec_mem_sb='1' or dec_mem_sw='1') -- si un acces memoire a lieu
) else '0';
-- exe_dest <= dec_exe_dest;
-- exe_wb <= dec_exe_wb; exe_dest <= dec_exe_dest;
-- exe_flag_wb <= dec_flag_wb; exe_wb <= '0' when dec2exe_empty ='1' else dec_exe_wb ;
exe_flag_wb <= '0' when dec2exe_empty ='1' else dec_flag_wb;
end Behavior; end Behavior;