X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=hwmod.git;a=blobdiff_plain;f=src%2Falu.vhd;h=3a8f54c67ff4d20a9cdc55c74f32ca0da61b878a;hp=014fc766c6f0210f219d1cddd57373cebc9c9304;hb=67bd159bb1c72ba8eaf46e072932a6f19c8347b6;hpb=2a30006fc558b9224ab54b4f68025d1b0149e071 diff --git a/src/alu.vhd b/src/alu.vhd index 014fc76..3a8f54c 100644 --- a/src/alu.vhd +++ b/src/alu.vhd @@ -215,7 +215,15 @@ begin aktdiv_int_next <= op1_var srl (dividend_msb_var - laengediv_var + 1); - if op1_var < op2_var then + -- anmerkung: xst (xilinx) kann folgende zeile nicht uebersetzen + -- > if op1 = to_signed(-2147483648, CBITS) then + -- darum folgende schreibweise -> + if op1 = x"80000000" then + -- so ziemlich das boeseste was passieren kann + div_calc_done2_int <= '1'; + quo_next <= to_signed(-214748364,CBITS); + aktdiv_int_next <= to_signed(8,CBITS); + elsif (op1_var < op2_var) then div_calc_done2_int <= '1'; quo_next <= to_signed(0,CBITS); aktdiv_int_next <= op1_var;