Commit 1d615620 by Daru13

### Commented away useless code to make the ALU netlist much smaller!

parent e43a6bc8
 ... ... @@ -8,7 +8,7 @@ require alu/utils *) ALU(input1:[32], input2:[32], alu_control:[4]) = (alu_zero, result:[32]) where result_aux = result = mux_n(alu_control[0], (* if 1 then shift or HI/Lo, else logical or artih*) (* 1... *) mux_n(alu_control[2], (* if 1 then HI/LO, else logical shift *) ... ... @@ -50,6 +50,8 @@ ALU(input1:[32], input2:[32], alu_control:[4]) = (alu_zero, result:[32]) where ) ) ); (* Inutilisée par l'ALU (* Traitement de la multiplication *) write_hilo = equal_n<3>(0.0.1, alu_control[..2]); read_hilo = alu_control[0] & alu_control[2]; ... ... @@ -61,6 +63,10 @@ ALU(input1:[32], input2:[32], alu_control:[4]) = (alu_zero, result:[32]) where result_aux, mux_n(alu_control[3], hi_val, lo_val) ); (* Signal pour les branchements *) alu_zero = equal_zero_n<32>(result); *) (* Signal pour les branchements *) alu_zero = equal_zero_n<32>(result); end where
 ... ... @@ -61,6 +61,7 @@ end where (* ------------------------------------------------------------------------- *) (* Opérations booléennes *) (* or_n(a:[n], b:[n]) = (o:[n]) where if n = 0 then o = [] ... ... @@ -68,15 +69,17 @@ or_n(a:[n], b:[n]) = (o:[n]) where o = (a[0] or b[0]).(or_n(a[1..], b[1..])) end if end where *) or_ALU(a:[32], b:[32]) = (o:[32]) where o = or_n<32>(a, b) end where (* Inutilisée par l'ALU ori_ALU(a:[32], c:[16]) = (o:[32]) where o = a[..15].(or_n<16>(a[16..], c)) end where *) and_n(a:[n], b:[n]) = (o:[n]) where if n = 0 then ... ... @@ -90,10 +93,11 @@ and_ALU(a:[32], b:[32]) = (o:[32]) where o = and_n<32>(a, b) end where (* Inutilisée par l'ALU andi_ALU(a:[32], c:[16]) = (o:[32]) where o = a[..15].(and_n<16>(a[16..], c)) end where *) xor_n(a:[n], b:[n]) = (o:[n]) where if n = 0 then ... ... @@ -107,10 +111,11 @@ xor_ALU(a:[32], b:[32]) = (o:[32]) where o = xor_n<32>(a, b) end where (* Inutilisée par l'ALU xori_ALU(a:[32], c:[16]) = (o:[32]) where o = a[..15].(xor_n<16>(a[16..], c)) end where *) (* Négation d'une nappe de n fils *) not_n(a:[n]) = (o:[n]) where ... ... @@ -126,7 +131,7 @@ nor_ALU(a:[32], b:[32]) = (o:[32]) where end where (* ------------------------------------------------------------------------- *) (*Opérations arithmétiques *) (* Opérations arithmétiques *) fulladder(a,b,c) = (s, r) where s = (a xor b) xor c; ... ... @@ -150,13 +155,13 @@ change_sign_n(input:[n]) = (out:[n]) where (out, flag) = adder_n(value, extend_left_n<1,n-1>(1, 0), 0); end where (* Fonction d'addition, qui fait la soustraction si le drapeau vaut 1 *) (* flag est le drapeau d'overflow, sub le drapeau de soustraction *) add_ALU(a:[32], b:[32], sub) = (o:[32]) where (o, flag) = adder_n<32>(a, mux_n<32>(sub, change_sign_n<32>(b), b), 0); end where (* Inutilisée par l'ALU (* Une fonction multiplication absolument peu pratique *) mul_n(a:[n], b:[m], carry:[n-1]) = (o:[n+m]) where if m = 1 then ... ... @@ -170,8 +175,7 @@ mul_n(a:[n], b:[m], carry:[n-1]) = (o:[n+m]) where o = (mul_n(a, b[..m-2], carry_bis)).r; end if end where *) (* ------------------------------------------------------------------------- *) (* Comparaisons*) ... ... @@ -193,6 +197,8 @@ slt_ALU(a:[32], b:[32]) = (o) where o = mux(a[0]^b[0], a[0], res & fin) end where (* Inutilisée par l'ALU slti_ALU(a:[32], c:[16]) = (o) where o = slt_ALU(a, extend_const_n<16,16>(c)) end where *)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!