From ca3cbd6b226036bc73f7d3cac36d93b6475c31b5 Mon Sep 17 00:00:00 2001 From: Alessandro Mauri Date: Sun, 20 Nov 2022 18:48:16 +0100 Subject: [PATCH] Sun Nov 20 06:48:16 PM CET 2022 --- alu.dig | 761 +++++++++++++++-------------------------------- main.dig | 6 +- multiply-add.dig | 134 +++++---- signed_mul.dig | 110 ++++--- sreg.dig | 72 ++++- 5 files changed, 454 insertions(+), 629 deletions(-) diff --git a/alu.dig b/alu.dig index 0df437c..fd4922f 100644 --- a/alu.dig +++ b/alu.dig @@ -86,7 +86,7 @@ multiply-add.dig - + In @@ -100,7 +100,7 @@ 32 - + Neg @@ -158,12 +158,7 @@ XOr - - - wideShape - true - - + @@ -236,7 +231,7 @@ 32 - + Out @@ -330,12 +325,7 @@ And - - - wideShape - true - - + @@ -345,21 +335,12 @@ rotation - - wideShape - true - And - - - wideShape - true - - + @@ -386,8 +367,8 @@ 0000 -> ADD 0001 -> SUB -0010 -> MAD -0011 -> MADS +0010 -> MADUU +0011 -> MADSS 0100 -> AND 0101 -> OR 0110 -> XOR @@ -399,7 +380,7 @@ 1100 -> ROL 1101 -> ROR 1110 -> ASR -1111 -> NOP +1111 -> MADSU @@ -432,23 +413,6 @@ - - And - - - inverterConfig - - In_1 - In_2 - - - - Inputs - 4 - - - - Tunnel @@ -457,21 +421,7 @@ mad_s - - - - Splitter - - - Input Splitting - 1*3 - - - Output Splitting - 3 - - - + Tunnel @@ -481,7 +431,7 @@ shift_op - + Tunnel @@ -509,24 +459,7 @@ mad_s - - - - And - - - inverterConfig - - In_1 - In_2 - - - - Inputs - 3 - - - + Tunnel @@ -536,7 +469,7 @@ long_z - + Multiplexer @@ -554,164 +487,126 @@ - And - - + Tunnel + + + NetName + sel + + + - And + XOr - + - Or + Out - Inputs - 3 + Label + S - + - Splitter + LookUpTable - Input Splitting - 1*3 + Bits + 3 - Output Splitting - 3 + Inputs + 4 + + + Data + 0,1,2,2,3,4,5,6,7*7,2 - + - And - - - - - And + LookUpTable - inverterConfig - - In_2 - In_3 - - - - Inputs + Bits 3 - - - - - And - - inverterConfig - - In_1 - In_2 - + Data + 9*0,1,2,3,4,5,6 Inputs - 3 + 4 - + - Or + LookUpTable Inputs 4 + + Data + 0,0,1,1,11*0,1 + - + - And + Splitter - inverterConfig - - In_1 - In_2 - + Input Splitting + 2 - Inputs - 3 + Output Splitting + 1,1 - + - And + LookUpTable - inverterConfig - - In_1 - In_3 - + Bits + 2 - Inputs - 3 + Data + 0,0,0,3,11*0,2 - - - - - Or - Inputs - 3 - - - - - - Tunnel - - - NetName - sel + 4 - + - - + + - - - - - - - - @@ -721,20 +616,20 @@ - - + + - - + + - - + + - - + + @@ -749,12 +644,8 @@ - - - - - - + + @@ -765,44 +656,28 @@ - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - + + @@ -817,15 +692,15 @@ - - + + - - + + - + @@ -854,52 +729,32 @@ - + - - - - - - - - - - - - - - + + - - - - - - + + - - + + - - - - @@ -913,20 +768,20 @@ - - + + - - + + - - + + - - + + @@ -941,48 +796,44 @@ - + - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + @@ -997,20 +848,16 @@ - - - - - - + + - - + + @@ -1032,61 +879,45 @@ - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -1108,25 +939,21 @@ - - - - - - + + - - + + - - + + @@ -1156,10 +983,6 @@ - - - - @@ -1169,48 +992,40 @@ - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -1225,20 +1040,8 @@ - - - - - - - - - - - - - - + + @@ -1249,12 +1052,12 @@ - - + + - - + + @@ -1268,10 +1071,6 @@ - - - - @@ -1285,15 +1084,15 @@ - + - + - + @@ -1309,72 +1108,76 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + @@ -1389,17 +1192,13 @@ - + - - - - @@ -1422,7 +1221,7 @@ - + @@ -1437,7 +1236,7 @@ - + @@ -1453,52 +1252,40 @@ - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - + + @@ -1526,7 +1313,7 @@ - + @@ -1553,45 +1340,13 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1613,36 +1368,24 @@ - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - + + @@ -1653,33 +1396,17 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + \ No newline at end of file diff --git a/main.dig b/main.dig index d6c1323..b3d21fe 100644 --- a/main.dig +++ b/main.dig @@ -31,7 +31,7 @@ decode.dig - + RAMSinglePort @@ -98,6 +98,10 @@ + + + + diff --git a/multiply-add.dig b/multiply-add.dig index df728f6..f60b80f 100644 --- a/multiply-add.dig +++ b/multiply-add.dig @@ -8,10 +8,10 @@ Label - S + S_a - + In @@ -25,7 +25,7 @@ 32 - + In @@ -39,7 +39,7 @@ 32 - + Splitter @@ -53,7 +53,7 @@ 32,32 - + Out @@ -67,7 +67,7 @@ 32 - + Out @@ -81,7 +81,7 @@ 32 - + Add @@ -91,7 +91,7 @@ 64 - + In @@ -105,7 +105,7 @@ 32 - + BitExtender @@ -119,7 +119,7 @@ 64 - + In @@ -129,7 +129,7 @@ C_i - + Out @@ -139,114 +139,128 @@ C_o - + signed_mul.dig + + In + + + Label + S_b + + + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + diff --git a/signed_mul.dig b/signed_mul.dig index 4709ca4..7b4d881 100644 --- a/signed_mul.dig +++ b/signed_mul.dig @@ -18,10 +18,10 @@ Label - S + S_a - + In @@ -147,7 +147,7 @@ true - + And @@ -157,7 +157,7 @@ true - + Neg @@ -218,6 +218,26 @@ + + In + + + Label + S_b + + + + + + Or + + + wideShape + true + + + + @@ -241,8 +261,12 @@ - - + + + + + + @@ -252,25 +276,25 @@ + + + + - - - - - - + + - - + + @@ -282,16 +306,12 @@ - + - - - - @@ -302,10 +322,10 @@ - + - + @@ -325,13 +345,17 @@ - + + + + + @@ -345,8 +369,8 @@ - - + + @@ -378,7 +402,11 @@ - + + + + + @@ -388,6 +416,10 @@ + + + + @@ -404,6 +436,10 @@ + + + + @@ -412,10 +448,6 @@ - - - - @@ -432,18 +464,6 @@ - - - - - - - - - - - - @@ -452,6 +472,14 @@ + + + + + + + + \ No newline at end of file diff --git a/sreg.dig b/sreg.dig index 4254b39..405e4dd 100644 --- a/sreg.dig +++ b/sreg.dig @@ -155,6 +155,42 @@ + + In + + + Label + S_i + + + + + + Out + + + Label + S_o + + + + + + Text + + + Description + Status Register + +Z : Zero flag +C : Carry flag +N : Negative flag (bit 31) +V : Two's Complement Overflow flag +S : True Sign (V xor N) + + + + @@ -185,6 +221,10 @@ + + + + @@ -257,10 +297,6 @@ - - - - @@ -269,6 +305,10 @@ + + + + @@ -317,6 +357,10 @@ + + + + @@ -329,6 +373,10 @@ + + + + @@ -358,8 +406,8 @@ - - + + @@ -409,10 +457,6 @@ - - - - @@ -481,6 +525,14 @@ + + + + + + + +