From afde4c4fb3a2c4b98c5a024bab6e6946e594cded Mon Sep 17 00:00:00 2001 From: dopamane Date: Thu, 8 Aug 2024 08:29:36 +0200 Subject: [PATCH 1/3] Apply signal rotation to buffering --- lib/Bayeux/Buffer.hs | 3 +- .../Bayeux/Ice40/Led/golden/ledCtrl.pretty | 545 +++++++------ test/Test/Bayeux/Uart/golden/echo.pretty | 417 +++++----- .../Bayeux/Uart/golden/spramReverse.pretty | 743 +++++++++--------- 4 files changed, 835 insertions(+), 873 deletions(-) diff --git a/lib/Bayeux/Buffer.hs b/lib/Bayeux/Buffer.hs index f253f5b..685bec7 100644 --- a/lib/Bayeux/Buffer.hs +++ b/lib/Bayeux/Buffer.hs @@ -56,7 +56,8 @@ instance MonadBuffer Rtl where b <- process $ \b -> do let shamt :: Word8 shamt = fromIntegral w - shiftedBuf <- shr b $ sig shamt + shiftedBuf = sliceRotate 1 b +-- shiftedBuf <- shr b $ sig shamt let la = fromIntegral $ width (undefined :: Array (Finite n) e) le = fromIntegral w input' :: Sig (Array (Finite n) e) diff --git a/test/Test/Bayeux/Ice40/Led/golden/ledCtrl.pretty b/test/Test/Bayeux/Ice40/Led/golden/ledCtrl.pretty index 6e72900..00b873f 100644 --- a/test/Test/Bayeux/Ice40/Led/golden/ledCtrl.pretty +++ b/test/Test/Bayeux/Ice40/Led/golden/ledCtrl.pretty @@ -206,51 +206,38 @@ module \top wire width 8 \wire42 wire width 8 \wire44 - cell $shr $cell45 + cell $and $cell45 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 8 parameter \Y_WIDTH 8 - connect \A \wire42 - connect \B 8'00000001 + connect \A { \wire42 [0:0] \wire42 [7:7] \wire42 [6:6] \wire42 [5:5] \wire42 [4:4] \wire42 [3:3] \wire42 [2:2] \wire42 [1:1] } + connect \B 8'01111111 connect \Y \wire44 end wire width 8 \wire46 - cell $and $cell47 + cell $or $cell47 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 8 parameter \Y_WIDTH 8 - connect \A \wire44 - connect \B 8'01111111 + connect \A { { \wire26 \rx } [0:0] 7'0000000 } + connect \B \wire44 connect \Y \wire46 end wire width 8 \wire48 - cell $or $cell49 - parameter \A_SIGNED 0 - parameter \A_WIDTH 8 - parameter \B_SIGNED 0 - parameter \B_WIDTH 8 - parameter \Y_WIDTH 8 - connect \A { { \wire26 \rx } [0:0] 7'0000000 } - connect \B \wire46 - connect \Y \wire48 - end - - wire width 8 \wire50 - - cell $mux $cell51 + cell $mux $cell49 parameter \WIDTH 8 connect \A \wire42 - connect \B \wire48 + connect \B \wire46 connect \S { \wire26 \rx } [1:1] - connect \Y \wire50 + connect \Y \wire48 end @@ -259,13 +246,13 @@ module \top sync posedge \clk - update \wire42 \wire50 + update \wire42 \wire48 end + wire width 1 \wire50 wire width 1 \wire52 - wire width 1 \wire54 - cell $logic_and $cell55 + cell $logic_and $cell53 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 @@ -273,21 +260,21 @@ module \top parameter \Y_WIDTH 1 connect \A \wire41 connect \B { \wire26 \rx } [1:1] - connect \Y \wire54 + connect \Y \wire52 end - process $proc53 + process $proc51 sync posedge \clk - update \wire52 \wire54 + update \wire50 \wire52 end - wire width 1 \wire56 + wire width 1 \wire54 - cell $logic_and $cell57 + cell $logic_and $cell55 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 @@ -295,12 +282,12 @@ module \top parameter \Y_WIDTH 1 connect \A \wire4 connect \B \wire11 - connect \Y \wire56 + connect \Y \wire54 end - wire width 1 \wire58 + wire width 1 \wire56 - cell $logic_and $cell59 + cell $logic_and $cell57 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 @@ -308,25 +295,25 @@ module \top parameter \Y_WIDTH 1 connect \A \wire4 connect \B \wire21 - connect \Y \wire58 + connect \Y \wire56 end - wire width 1 \wire60 + wire width 1 \wire58 - cell $logic_and $cell61 + cell $logic_and $cell59 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A { \wire52 \wire42 } [8:8] + connect \A { \wire50 \wire42 } [8:8] connect \B \wire17 - connect \Y \wire60 + connect \Y \wire58 end - wire width 1 \wire62 + wire width 1 \wire60 - cell $logic_and $cell63 + cell $logic_and $cell61 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 @@ -334,12 +321,12 @@ module \top parameter \Y_WIDTH 1 connect \A \wire5 connect \B \wire21 - connect \Y \wire62 + connect \Y \wire60 end - wire width 2 \wire64 + wire width 2 \wire62 - cell $eq $cell65 + cell $eq $cell63 parameter \A_SIGNED 0 parameter \A_WIDTH 2 parameter \B_SIGNED 0 @@ -347,34 +334,44 @@ module \top parameter \Y_WIDTH 2 connect \A \wire7 [1:0] connect \B 2'11 - connect \Y \wire64 + connect \Y \wire62 end - wire width 1 \wire66 - connect \wire66 \wire64 [0] - wire width 1 \wire67 + wire width 1 \wire64 + connect \wire64 \wire62 [0] + wire width 1 \wire65 - cell $logic_and $cell68 + cell $logic_and $cell66 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 connect \A \wire25 - connect \B \wire66 - connect \Y \wire67 + connect \B \wire64 + connect \Y \wire65 end - wire width 1 \wire69 + wire width 1 \wire67 - cell $logic_or $cell70 + cell $logic_or $cell68 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire62 - connect \B \wire67 + connect \A \wire60 + connect \B \wire65 + connect \Y \wire67 + end + + wire width 2 \wire69 + + cell $mux $cell70 + parameter \WIDTH 2 + connect \A \wire7 [1:0] + connect \B 2'00 + connect \S \wire67 connect \Y \wire69 end @@ -382,9 +379,9 @@ module \top cell $mux $cell72 parameter \WIDTH 2 - connect \A \wire7 [1:0] - connect \B 2'00 - connect \S \wire69 + connect \A \wire69 + connect \B 2'11 + connect \S \wire58 connect \Y \wire71 end @@ -393,8 +390,8 @@ module \top cell $mux $cell74 parameter \WIDTH 2 connect \A \wire71 - connect \B 2'11 - connect \S \wire60 + connect \B 2'10 + connect \S \wire56 connect \Y \wire73 end @@ -403,24 +400,14 @@ module \top cell $mux $cell76 parameter \WIDTH 2 connect \A \wire73 - connect \B 2'10 - connect \S \wire58 - connect \Y \wire75 - end - - wire width 2 \wire77 - - cell $mux $cell78 - parameter \WIDTH 2 - connect \A \wire75 connect \B 2'01 - connect \S \wire56 - connect \Y \wire77 + connect \S \wire54 + connect \Y \wire75 end - wire width 1 \wire79 + wire width 1 \wire77 - cell $logic_or $cell80 + cell $logic_or $cell78 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 @@ -428,25 +415,25 @@ module \top parameter \Y_WIDTH 1 connect \A \wire11 connect \B \wire21 - connect \Y \wire79 + connect \Y \wire77 end - wire width 1 \wire81 + wire width 1 \wire79 - cell $logic_or $cell82 + cell $logic_or $cell80 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire79 + connect \A \wire77 connect \B \wire25 - connect \Y \wire81 + connect \Y \wire79 end - wire width 16 \wire83 + wire width 16 \wire81 - cell $add $cell84 + cell $add $cell82 parameter \A_SIGNED 0 parameter \A_WIDTH 16 parameter \B_SIGNED 0 @@ -454,17 +441,17 @@ module \top parameter \Y_WIDTH 16 connect \A \wire7 [17:2] connect \B 1'1 - connect \Y \wire83 + connect \Y \wire81 end - wire width 16 \wire85 + wire width 16 \wire83 - cell $mux $cell86 + cell $mux $cell84 parameter \WIDTH 16 - connect \A \wire83 + connect \A \wire81 connect \B 16'0000000000000000 - connect \S \wire81 - connect \Y \wire85 + connect \S \wire79 + connect \Y \wire83 end @@ -473,426 +460,426 @@ module \top sync posedge \clk - update \wire7 { \wire85 \wire77 } + update \wire7 { \wire83 \wire75 } end + wire width 2 \wire85 wire width 2 \wire87 - wire width 2 \wire89 - cell $eq $cell90 + cell $eq $cell88 parameter \A_SIGNED 0 parameter \A_WIDTH 2 parameter \B_SIGNED 0 parameter \B_WIDTH 2 parameter \Y_WIDTH 2 - connect \A \wire87 + connect \A \wire85 connect \B 2'10 - connect \Y \wire89 + connect \Y \wire87 end - wire width 1 \wire91 - connect \wire91 \wire89 [0] - wire width 2 \wire92 + wire width 1 \wire89 + connect \wire89 \wire87 [0] + wire width 2 \wire90 - cell $add $cell93 + cell $add $cell91 parameter \A_SIGNED 0 parameter \A_WIDTH 2 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 2 - connect \A \wire87 + connect \A \wire85 connect \B 1'1 - connect \Y \wire92 + connect \Y \wire90 end - wire width 2 \wire94 + wire width 2 \wire92 - cell $mux $cell95 + cell $mux $cell93 parameter \WIDTH 2 - connect \A \wire92 - connect \B \wire87 - connect \S \wire91 - connect \Y \wire94 + connect \A \wire90 + connect \B \wire85 + connect \S \wire89 + connect \Y \wire92 end - process $proc88 + process $proc86 sync posedge \clk - update \wire87 \wire94 + update \wire85 \wire92 end - wire width 2 \wire96 + wire width 2 \wire94 - cell $eq $cell97 + cell $eq $cell95 parameter \A_SIGNED 0 parameter \A_WIDTH 2 parameter \B_SIGNED 0 parameter \B_WIDTH 2 parameter \Y_WIDTH 2 - connect \A \wire87 + connect \A \wire85 connect \B 2'00 - connect \Y \wire96 + connect \Y \wire94 end - wire width 1 \wire98 - connect \wire98 \wire96 [0] - wire width 2 \wire99 + wire width 1 \wire96 + connect \wire96 \wire94 [0] + wire width 2 \wire97 - cell $eq $cell100 + cell $eq $cell98 parameter \A_SIGNED 0 parameter \A_WIDTH 2 parameter \B_SIGNED 0 parameter \B_WIDTH 2 parameter \Y_WIDTH 2 - connect \A \wire87 + connect \A \wire85 connect \B 2'01 - connect \Y \wire99 + connect \Y \wire97 end - wire width 1 \wire101 - connect \wire101 \wire99 [0] - wire width 9 \wire102 + wire width 1 \wire99 + connect \wire99 \wire97 [0] + wire width 9 \wire100 - cell $eq $cell103 + cell $eq $cell101 parameter \A_SIGNED 0 parameter \A_WIDTH 9 parameter \B_SIGNED 0 parameter \B_WIDTH 9 parameter \Y_WIDTH 9 - connect \A { \wire52 \wire42 } + connect \A { \wire50 \wire42 } connect \B 9'101110010 - connect \Y \wire102 + connect \Y \wire100 end - wire width 1 \wire104 - connect \wire104 \wire102 [0] - wire width 9 \wire105 + wire width 1 \wire102 + connect \wire102 \wire100 [0] + wire width 9 \wire103 - cell $eq $cell106 + cell $eq $cell104 parameter \A_SIGNED 0 parameter \A_WIDTH 9 parameter \B_SIGNED 0 parameter \B_WIDTH 9 parameter \Y_WIDTH 9 - connect \A { \wire52 \wire42 } + connect \A { \wire50 \wire42 } connect \B 9'101100111 - connect \Y \wire105 + connect \Y \wire103 end - wire width 1 \wire107 - connect \wire107 \wire105 [0] - wire width 9 \wire108 + wire width 1 \wire105 + connect \wire105 \wire103 [0] + wire width 9 \wire106 - cell $eq $cell109 + cell $eq $cell107 parameter \A_SIGNED 0 parameter \A_WIDTH 9 parameter \B_SIGNED 0 parameter \B_WIDTH 9 parameter \Y_WIDTH 9 - connect \A { \wire52 \wire42 } + connect \A { \wire50 \wire42 } connect \B 9'101100010 - connect \Y \wire108 + connect \Y \wire106 end - wire width 1 \wire110 - connect \wire110 \wire108 [0] - wire width 40 \wire111 + wire width 1 \wire108 + connect \wire108 \wire106 [0] + wire width 40 \wire109 - cell $mux $cell112 + cell $mux $cell110 parameter \WIDTH 40 connect \A 40'0000000000000000000000000000000000000000 connect \B 40'1100010000000010010000000001001111111111 - connect \S \wire110 - connect \Y \wire111 + connect \S \wire108 + connect \Y \wire109 end - wire width 40 \wire113 + wire width 40 \wire111 - cell $mux $cell114 + cell $mux $cell112 parameter \WIDTH 40 - connect \A \wire111 + connect \A \wire109 connect \B 40'1100010000000010010111111111001100000000 - connect \S \wire107 - connect \Y \wire113 + connect \S \wire105 + connect \Y \wire111 end - wire width 40 \wire115 + wire width 40 \wire113 - cell $mux $cell116 + cell $mux $cell114 parameter \WIDTH 40 - connect \A \wire113 + connect \A \wire111 connect \B 40'1100011111111110010000000001001100000000 - connect \S \wire104 - connect \Y \wire115 + connect \S \wire102 + connect \Y \wire113 end - wire width 43 \wire117 - wire width 1 \wire119 + wire width 43 \wire115 + wire width 1 \wire117 - cell $eq $cell120 + cell $eq $cell118 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire117 [42:42] + connect \A \wire115 [42:42] connect \B 1'0 - connect \Y \wire119 + connect \Y \wire117 end - wire width 1 \wire121 - connect \wire121 \wire119 [0] - wire width 1 \wire122 + wire width 1 \wire119 + connect \wire119 \wire117 [0] + wire width 1 \wire120 - cell $eq $cell123 + cell $eq $cell121 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire117 [42:42] + connect \A \wire115 [42:42] connect \B 1'1 - connect \Y \wire122 + connect \Y \wire120 end - wire width 1 \wire124 - connect \wire124 \wire122 [0] - wire width 2 \wire125 + wire width 1 \wire122 + connect \wire122 \wire120 [0] + wire width 2 \wire123 - cell $eq $cell126 + cell $eq $cell124 parameter \A_SIGNED 0 parameter \A_WIDTH 2 parameter \B_SIGNED 0 parameter \B_WIDTH 2 parameter \Y_WIDTH 2 - connect \A \wire117 [41:40] + connect \A \wire115 [41:40] connect \B 2'10 - connect \Y \wire125 + connect \Y \wire123 end - wire width 1 \wire127 - connect \wire127 \wire125 [0] - wire width 1 \wire128 + wire width 1 \wire125 + connect \wire125 \wire123 [0] + wire width 1 \wire126 - cell $logic_and $cell129 + cell $logic_and $cell127 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire124 - connect \B \wire127 - connect \Y \wire128 + connect \A \wire122 + connect \B \wire125 + connect \Y \wire126 end - wire width 1 \wire130 + wire width 1 \wire128 - cell $logic_and $cell131 + cell $logic_and $cell129 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire121 - connect \B \wire115 [39:39] - connect \Y \wire130 + connect \A \wire119 + connect \B \wire113 [39:39] + connect \Y \wire128 end - wire width 1 \wire132 + wire width 1 \wire130 - cell $mux $cell133 + cell $mux $cell131 parameter \WIDTH 1 - connect \A \wire117 [42:42] + connect \A \wire115 [42:42] connect \B 1'1 - connect \S \wire130 - connect \Y \wire132 + connect \S \wire128 + connect \Y \wire130 end - wire width 1 \wire134 + wire width 1 \wire132 - cell $mux $cell135 + cell $mux $cell133 parameter \WIDTH 1 - connect \A \wire132 + connect \A \wire130 connect \B 1'0 - connect \S \wire128 - connect \Y \wire134 + connect \S \wire126 + connect \Y \wire132 end - wire width 2 \wire136 + wire width 2 \wire134 - cell $eq $cell137 + cell $eq $cell135 parameter \A_SIGNED 0 parameter \A_WIDTH 2 parameter \B_SIGNED 0 parameter \B_WIDTH 2 parameter \Y_WIDTH 2 - connect \A \wire117 [41:40] + connect \A \wire115 [41:40] connect \B 2'10 - connect \Y \wire136 + connect \Y \wire134 end - wire width 1 \wire138 - connect \wire138 \wire136 [0] - wire width 1 \wire139 + wire width 1 \wire136 + connect \wire136 \wire134 [0] + wire width 1 \wire137 - cell $logic_or $cell140 + cell $logic_or $cell138 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire130 - connect \B \wire138 - connect \Y \wire139 + connect \A \wire128 + connect \B \wire136 + connect \Y \wire137 end - wire width 2 \wire141 + wire width 2 \wire139 - cell $add $cell142 + cell $add $cell140 parameter \A_SIGNED 0 parameter \A_WIDTH 2 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 2 - connect \A \wire117 [41:40] + connect \A \wire115 [41:40] connect \B 1'1 - connect \Y \wire141 + connect \Y \wire139 end - wire width 2 \wire143 + wire width 2 \wire141 - cell $mux $cell144 + cell $mux $cell142 parameter \WIDTH 2 - connect \A \wire141 + connect \A \wire139 connect \B 2'00 - connect \S \wire139 - connect \Y \wire143 + connect \S \wire137 + connect \Y \wire141 end - wire width 39 \wire145 + wire width 39 \wire143 - cell $shr $cell146 + cell $shr $cell144 parameter \A_SIGNED 0 parameter \A_WIDTH 39 parameter \B_SIGNED 0 parameter \B_WIDTH 8 parameter \Y_WIDTH 39 - connect \A \wire117 [39:0] [38:0] + connect \A \wire115 [39:0] [38:0] connect \B 8'00001101 - connect \Y \wire145 + connect \Y \wire143 end - wire width 1 \wire147 + wire width 1 \wire145 - cell $eq $cell148 + cell $eq $cell146 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire117 [42:42] + connect \A \wire115 [42:42] connect \B 1'0 - connect \Y \wire147 + connect \Y \wire145 end - wire width 1 \wire149 - connect \wire149 \wire147 [0] - wire width 40 \wire150 + wire width 1 \wire147 + connect \wire147 \wire145 [0] + wire width 40 \wire148 - cell $mux $cell151 + cell $mux $cell149 parameter \WIDTH 40 - connect \A { 1'1 \wire145 } - connect \B \wire115 - connect \S \wire149 - connect \Y \wire150 + connect \A { 1'1 \wire143 } + connect \B \wire113 + connect \S \wire147 + connect \Y \wire148 end - wire width 40 \wire152 + wire width 40 \wire150 - cell $mux $cell153 + cell $mux $cell151 parameter \WIDTH 40 - connect \A \wire150 + connect \A \wire148 connect \B 40'0000000000000000000000000000000000000000 - connect \S \wire128 - connect \Y \wire152 + connect \S \wire126 + connect \Y \wire150 end - process $proc118 + process $proc116 sync posedge \clk - update \wire117 { \wire134 \wire143 \wire152 } + update \wire115 { \wire132 \wire141 \wire150 } end - wire width 1 \wire154 + wire width 1 \wire152 - cell $logic_and $cell155 + cell $logic_and $cell153 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A { \wire124 \wire117 [39:0] [12:0] } [13:13] - connect \B { \wire124 \wire117 [39:0] [12:0] } [12:0] [12:12] - connect \Y \wire154 + connect \A { \wire122 \wire115 [39:0] [12:0] } [13:13] + connect \B { \wire122 \wire115 [39:0] [12:0] } [12:0] [12:12] + connect \Y \wire152 end - wire width 13 \wire156 + wire width 13 \wire154 - cell $mux $cell157 + cell $mux $cell155 parameter \WIDTH 13 - connect \A { \wire154 { \wire124 \wire117 [39:0] [12:0] } [12:0] [11:0] } + connect \A { \wire152 { \wire122 \wire115 [39:0] [12:0] } [12:0] [11:0] } connect \B 13'1000111111111 - connect \S \wire101 - connect \Y \wire156 + connect \S \wire99 + connect \Y \wire154 end - wire width 13 \wire158 + wire width 13 \wire156 - cell $mux $cell159 + cell $mux $cell157 parameter \WIDTH 13 - connect \A \wire156 + connect \A \wire154 connect \B 13'1100010000000 - connect \S \wire98 - connect \Y \wire158 + connect \S \wire96 + connect \Y \wire156 end + wire width 1 \wire158 + wire width 1 \wire159 wire width 1 \wire160 wire width 1 \wire161 - wire width 1 \wire162 - wire width 1 \wire163 attribute \module_not_derived 1 cell \SB_LEDDA_IP \SB_LEDDA_IP_INST connect \LEDDCS 1'1 connect \LEDDCLK \clk - connect \LEDDDAT7 \wire158 [11:0] [7:0] [7:7] - connect \LEDDDAT6 \wire158 [11:0] [7:0] [6:6] - connect \LEDDDAT5 \wire158 [11:0] [7:0] [5:5] - connect \LEDDDAT4 \wire158 [11:0] [7:0] [4:4] - connect \LEDDDAT3 \wire158 [11:0] [7:0] [3:3] - connect \LEDDDAT2 \wire158 [11:0] [7:0] [2:2] - connect \LEDDDAT1 \wire158 [11:0] [7:0] [1:1] - connect \LEDDDAT0 \wire158 [11:0] [7:0] [0:0] - connect \LEDDADDR3 \wire158 [11:0] [11:8] [3:3] - connect \LEDDADDR2 \wire158 [11:0] [11:8] [2:2] - connect \LEDDADDR1 \wire158 [11:0] [11:8] [1:1] - connect \LEDDADDR0 \wire158 [11:0] [11:8] [0:0] - connect \LEDDDEN \wire158 [12:12] + connect \LEDDDAT7 \wire156 [11:0] [7:0] [7:7] + connect \LEDDDAT6 \wire156 [11:0] [7:0] [6:6] + connect \LEDDDAT5 \wire156 [11:0] [7:0] [5:5] + connect \LEDDDAT4 \wire156 [11:0] [7:0] [4:4] + connect \LEDDDAT3 \wire156 [11:0] [7:0] [3:3] + connect \LEDDDAT2 \wire156 [11:0] [7:0] [2:2] + connect \LEDDDAT1 \wire156 [11:0] [7:0] [1:1] + connect \LEDDDAT0 \wire156 [11:0] [7:0] [0:0] + connect \LEDDADDR3 \wire156 [11:0] [11:8] [3:3] + connect \LEDDADDR2 \wire156 [11:0] [11:8] [2:2] + connect \LEDDADDR1 \wire156 [11:0] [11:8] [1:1] + connect \LEDDADDR0 \wire156 [11:0] [11:8] [0:0] + connect \LEDDDEN \wire156 [12:12] connect \LEDDEXE 1'1 - connect \PWMOUT0 \wire160 - connect \PWMOUT1 \wire161 - connect \PWMOUT2 \wire162 - connect \LEDDON \wire163 + connect \PWMOUT0 \wire158 + connect \PWMOUT1 \wire159 + connect \PWMOUT2 \wire160 + connect \LEDDON \wire161 end + wire width 1 \wire162 + wire width 1 \wire163 wire width 1 \wire164 - wire width 1 \wire165 - wire width 1 \wire166 attribute \module_not_derived 1 cell \SB_RGBA_DRV \RGBA_DRIVER parameter \CURRENT_MODE "0b1" @@ -900,19 +887,19 @@ module \top parameter \RGB1_CURRENT "0b111111" parameter \RGB2_CURRENT "0b111111" connect \CURREN 1'1 - connect \RGB0 \wire164 - connect \RGB0PWM { \wire160 \wire161 \wire162 \wire163 } [3:1] [2:2] - connect \RGB1 \wire165 - connect \RGB1PWM { \wire160 \wire161 \wire162 \wire163 } [3:1] [1:1] - connect \RGB2 \wire166 - connect \RGB2PWM { \wire160 \wire161 \wire162 \wire163 } [3:1] [0:0] + connect \RGB0 \wire162 + connect \RGB0PWM { \wire158 \wire159 \wire160 \wire161 } [3:1] [2:2] + connect \RGB1 \wire163 + connect \RGB1PWM { \wire158 \wire159 \wire160 \wire161 } [3:1] [1:1] + connect \RGB2 \wire164 + connect \RGB2PWM { \wire158 \wire159 \wire160 \wire161 } [3:1] [0:0] connect \RGBLEDEN 1'1 end - wire output 167 \red - connect \red \wire164 - wire output 168 \green - connect \green \wire165 - wire output 169 \blue - connect \blue \wire166 + wire output 165 \red + connect \red \wire162 + wire output 166 \green + connect \green \wire163 + wire output 167 \blue + connect \blue \wire164 end diff --git a/test/Test/Bayeux/Uart/golden/echo.pretty b/test/Test/Bayeux/Uart/golden/echo.pretty index c3348dc..b1c7067 100644 --- a/test/Test/Bayeux/Uart/golden/echo.pretty +++ b/test/Test/Bayeux/Uart/golden/echo.pretty @@ -206,51 +206,38 @@ module \top wire width 8 \wire42 wire width 8 \wire44 - cell $shr $cell45 + cell $and $cell45 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 8 parameter \Y_WIDTH 8 - connect \A \wire42 - connect \B 8'00000001 + connect \A { \wire42 [0:0] \wire42 [7:7] \wire42 [6:6] \wire42 [5:5] \wire42 [4:4] \wire42 [3:3] \wire42 [2:2] \wire42 [1:1] } + connect \B 8'01111111 connect \Y \wire44 end wire width 8 \wire46 - cell $and $cell47 + cell $or $cell47 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 8 parameter \Y_WIDTH 8 - connect \A \wire44 - connect \B 8'01111111 + connect \A { { \wire26 \rx } [0:0] 7'0000000 } + connect \B \wire44 connect \Y \wire46 end wire width 8 \wire48 - cell $or $cell49 - parameter \A_SIGNED 0 - parameter \A_WIDTH 8 - parameter \B_SIGNED 0 - parameter \B_WIDTH 8 - parameter \Y_WIDTH 8 - connect \A { { \wire26 \rx } [0:0] 7'0000000 } - connect \B \wire46 - connect \Y \wire48 - end - - wire width 8 \wire50 - - cell $mux $cell51 + cell $mux $cell49 parameter \WIDTH 8 connect \A \wire42 - connect \B \wire48 + connect \B \wire46 connect \S { \wire26 \rx } [1:1] - connect \Y \wire50 + connect \Y \wire48 end @@ -259,13 +246,13 @@ module \top sync posedge \clk - update \wire42 \wire50 + update \wire42 \wire48 end + wire width 1 \wire50 wire width 1 \wire52 - wire width 1 \wire54 - cell $logic_and $cell55 + cell $logic_and $cell53 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 @@ -273,21 +260,21 @@ module \top parameter \Y_WIDTH 1 connect \A \wire41 connect \B { \wire26 \rx } [1:1] - connect \Y \wire54 + connect \Y \wire52 end - process $proc53 + process $proc51 sync posedge \clk - update \wire52 \wire54 + update \wire50 \wire52 end - wire width 1 \wire56 + wire width 1 \wire54 - cell $logic_and $cell57 + cell $logic_and $cell55 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 @@ -295,12 +282,12 @@ module \top parameter \Y_WIDTH 1 connect \A \wire4 connect \B \wire11 - connect \Y \wire56 + connect \Y \wire54 end - wire width 1 \wire58 + wire width 1 \wire56 - cell $logic_and $cell59 + cell $logic_and $cell57 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 @@ -308,25 +295,25 @@ module \top parameter \Y_WIDTH 1 connect \A \wire4 connect \B \wire21 - connect \Y \wire58 + connect \Y \wire56 end - wire width 1 \wire60 + wire width 1 \wire58 - cell $logic_and $cell61 + cell $logic_and $cell59 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A { \wire52 \wire42 } [8:8] + connect \A { \wire50 \wire42 } [8:8] connect \B \wire17 - connect \Y \wire60 + connect \Y \wire58 end - wire width 1 \wire62 + wire width 1 \wire60 - cell $logic_and $cell63 + cell $logic_and $cell61 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 @@ -334,12 +321,12 @@ module \top parameter \Y_WIDTH 1 connect \A \wire5 connect \B \wire21 - connect \Y \wire62 + connect \Y \wire60 end - wire width 2 \wire64 + wire width 2 \wire62 - cell $eq $cell65 + cell $eq $cell63 parameter \A_SIGNED 0 parameter \A_WIDTH 2 parameter \B_SIGNED 0 @@ -347,34 +334,44 @@ module \top parameter \Y_WIDTH 2 connect \A \wire7 [1:0] connect \B 2'11 - connect \Y \wire64 + connect \Y \wire62 end - wire width 1 \wire66 - connect \wire66 \wire64 [0] - wire width 1 \wire67 + wire width 1 \wire64 + connect \wire64 \wire62 [0] + wire width 1 \wire65 - cell $logic_and $cell68 + cell $logic_and $cell66 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 connect \A \wire25 - connect \B \wire66 - connect \Y \wire67 + connect \B \wire64 + connect \Y \wire65 end - wire width 1 \wire69 + wire width 1 \wire67 - cell $logic_or $cell70 + cell $logic_or $cell68 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire62 - connect \B \wire67 + connect \A \wire60 + connect \B \wire65 + connect \Y \wire67 + end + + wire width 2 \wire69 + + cell $mux $cell70 + parameter \WIDTH 2 + connect \A \wire7 [1:0] + connect \B 2'00 + connect \S \wire67 connect \Y \wire69 end @@ -382,9 +379,9 @@ module \top cell $mux $cell72 parameter \WIDTH 2 - connect \A \wire7 [1:0] - connect \B 2'00 - connect \S \wire69 + connect \A \wire69 + connect \B 2'11 + connect \S \wire58 connect \Y \wire71 end @@ -393,8 +390,8 @@ module \top cell $mux $cell74 parameter \WIDTH 2 connect \A \wire71 - connect \B 2'11 - connect \S \wire60 + connect \B 2'10 + connect \S \wire56 connect \Y \wire73 end @@ -403,24 +400,14 @@ module \top cell $mux $cell76 parameter \WIDTH 2 connect \A \wire73 - connect \B 2'10 - connect \S \wire58 - connect \Y \wire75 - end - - wire width 2 \wire77 - - cell $mux $cell78 - parameter \WIDTH 2 - connect \A \wire75 connect \B 2'01 - connect \S \wire56 - connect \Y \wire77 + connect \S \wire54 + connect \Y \wire75 end - wire width 1 \wire79 + wire width 1 \wire77 - cell $logic_or $cell80 + cell $logic_or $cell78 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 @@ -428,25 +415,25 @@ module \top parameter \Y_WIDTH 1 connect \A \wire11 connect \B \wire21 - connect \Y \wire79 + connect \Y \wire77 end - wire width 1 \wire81 + wire width 1 \wire79 - cell $logic_or $cell82 + cell $logic_or $cell80 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire79 + connect \A \wire77 connect \B \wire25 - connect \Y \wire81 + connect \Y \wire79 end - wire width 16 \wire83 + wire width 16 \wire81 - cell $add $cell84 + cell $add $cell82 parameter \A_SIGNED 0 parameter \A_WIDTH 16 parameter \B_SIGNED 0 @@ -454,17 +441,17 @@ module \top parameter \Y_WIDTH 16 connect \A \wire7 [17:2] connect \B 1'1 - connect \Y \wire83 + connect \Y \wire81 end - wire width 16 \wire85 + wire width 16 \wire83 - cell $mux $cell86 + cell $mux $cell84 parameter \WIDTH 16 - connect \A \wire83 + connect \A \wire81 connect \B 16'0000000000000000 - connect \S \wire81 - connect \Y \wire85 + connect \S \wire79 + connect \Y \wire83 end @@ -473,210 +460,220 @@ module \top sync posedge \clk - update \wire7 { \wire85 \wire77 } + update \wire7 { \wire83 \wire75 } end + wire width 1 \wire85 wire width 1 \wire87 - wire width 1 \wire89 - cell $eq $cell90 + cell $eq $cell88 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire87 + connect \A \wire85 connect \B 1'0 - connect \Y \wire89 + connect \Y \wire87 end - wire width 1 \wire91 - connect \wire91 \wire89 [0] + wire width 1 \wire89 + connect \wire89 \wire87 [0] + wire width 16 \wire90 wire width 16 \wire92 - wire width 16 \wire94 - cell $eq $cell95 + cell $eq $cell93 parameter \A_SIGNED 0 parameter \A_WIDTH 16 parameter \B_SIGNED 0 parameter \B_WIDTH 16 parameter \Y_WIDTH 16 - connect \A \wire92 + connect \A \wire90 connect \B 16'0000001001110000 - connect \Y \wire94 + connect \Y \wire92 end - wire width 1 \wire96 - connect \wire96 \wire94 [0] - wire width 1 \wire97 + wire width 1 \wire94 + connect \wire94 \wire92 [0] + wire width 1 \wire95 - cell $logic_or $cell98 + cell $logic_or $cell96 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire91 - connect \B \wire96 - connect \Y \wire97 + connect \A \wire89 + connect \B \wire94 + connect \Y \wire95 end - wire width 16 \wire99 + wire width 16 \wire97 - cell $add $cell100 + cell $add $cell98 parameter \A_SIGNED 0 parameter \A_WIDTH 16 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 16 - connect \A \wire92 + connect \A \wire90 connect \B 1'1 - connect \Y \wire99 + connect \Y \wire97 end - wire width 16 \wire101 + wire width 16 \wire99 - cell $mux $cell102 + cell $mux $cell100 parameter \WIDTH 16 - connect \A \wire99 + connect \A \wire97 connect \B 16'0000000000000000 - connect \S \wire97 - connect \Y \wire101 + connect \S \wire95 + connect \Y \wire99 end - process $proc93 + process $proc91 sync posedge \clk - update \wire92 \wire101 + update \wire90 \wire99 end - wire width 16 \wire103 + wire width 16 \wire101 - cell $eq $cell104 + cell $eq $cell102 parameter \A_SIGNED 0 parameter \A_WIDTH 16 parameter \B_SIGNED 0 parameter \B_WIDTH 16 parameter \Y_WIDTH 16 - connect \A \wire92 + connect \A \wire90 connect \B 16'0000001001110000 - connect \Y \wire103 + connect \Y \wire101 end - wire width 1 \wire105 - connect \wire105 \wire103 [0] - wire width 1 \wire106 + wire width 1 \wire103 + connect \wire103 \wire101 [0] + wire width 1 \wire104 - cell $logic_not $cell107 + cell $logic_not $cell105 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire105 - connect \Y \wire106 + connect \A \wire103 + connect \Y \wire104 end + wire width 8 \wire106 wire width 8 \wire108 - wire width 8 \wire110 - cell $eq $cell111 + cell $eq $cell109 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 8 parameter \Y_WIDTH 8 - connect \A \wire108 + connect \A \wire106 connect \B 8'00001001 - connect \Y \wire110 + connect \Y \wire108 end - wire width 1 \wire112 - connect \wire112 \wire110 [0] - wire width 8 \wire113 + wire width 1 \wire110 + connect \wire110 \wire108 [0] + wire width 8 \wire111 - cell $add $cell114 + cell $add $cell112 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 8 - connect \A \wire108 + connect \A \wire106 connect \B 1'1 - connect \Y \wire113 + connect \Y \wire111 end - wire width 8 \wire115 + wire width 8 \wire113 - cell $mux $cell116 + cell $mux $cell114 parameter \WIDTH 8 - connect \A \wire113 + connect \A \wire111 connect \B 8'00000000 - connect \S \wire112 - connect \Y \wire115 + connect \S \wire110 + connect \Y \wire113 end - wire width 8 \wire117 + wire width 8 \wire115 - cell $mux $cell118 + cell $mux $cell116 parameter \WIDTH 8 - connect \A \wire115 - connect \B \wire108 - connect \S \wire106 - connect \Y \wire117 + connect \A \wire113 + connect \B \wire106 + connect \S \wire104 + connect \Y \wire115 end - process $proc109 + process $proc107 sync posedge \clk - update \wire108 \wire117 + update \wire106 \wire115 end - wire width 8 \wire119 + wire width 8 \wire117 - cell $eq $cell120 + cell $eq $cell118 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 8 parameter \Y_WIDTH 8 - connect \A \wire108 + connect \A \wire106 connect \B 8'00000000 - connect \Y \wire119 + connect \Y \wire117 end - wire width 1 \wire121 - connect \wire121 \wire119 [0] - wire width 8 \wire122 + wire width 1 \wire119 + connect \wire119 \wire117 [0] + wire width 8 \wire120 - cell $eq $cell123 + cell $eq $cell121 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 8 parameter \Y_WIDTH 8 - connect \A \wire108 + connect \A \wire106 connect \B 8'00001001 - connect \Y \wire122 + connect \Y \wire120 end - wire width 1 \wire124 - connect \wire124 \wire122 [0] + wire width 1 \wire122 + connect \wire122 \wire120 [0] + wire width 8 \wire123 wire width 8 \wire125 - wire width 8 \wire127 - cell $shr $cell128 + cell $shr $cell126 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 8 - connect \A \wire125 + connect \A \wire123 connect \B 1'1 + connect \Y \wire125 + end + + wire width 8 \wire127 + + cell $mux $cell128 + parameter \WIDTH 8 + connect \A \wire125 + connect \B \wire123 + connect \S \wire104 connect \Y \wire127 end @@ -685,8 +682,8 @@ module \top cell $mux $cell130 parameter \WIDTH 8 connect \A \wire127 - connect \B \wire125 - connect \S \wire106 + connect \B \wire123 + connect \S \wire119 connect \Y \wire129 end @@ -695,104 +692,94 @@ module \top cell $mux $cell132 parameter \WIDTH 8 connect \A \wire129 - connect \B \wire125 - connect \S \wire121 + connect \B { \wire50 \wire42 } [7:0] + connect \S \wire89 connect \Y \wire131 end - wire width 8 \wire133 - - cell $mux $cell134 - parameter \WIDTH 8 - connect \A \wire131 - connect \B { \wire52 \wire42 } [7:0] - connect \S \wire91 - connect \Y \wire133 - end - - process $proc126 + process $proc124 sync posedge \clk - update \wire125 \wire133 + update \wire123 \wire131 end - wire width 1 \wire135 - connect \wire135 \wire125 [0] - wire width 1 \wire136 + wire width 1 \wire133 + connect \wire133 \wire123 [0] + wire width 1 \wire134 - cell $mux $cell137 + cell $mux $cell135 parameter \WIDTH 1 - connect \A \wire135 + connect \A \wire133 connect \B 1'1 - connect \S \wire124 - connect \Y \wire136 + connect \S \wire122 + connect \Y \wire134 end - wire width 1 \wire138 + wire width 1 \wire136 - cell $mux $cell139 + cell $mux $cell137 parameter \WIDTH 1 - connect \A \wire136 + connect \A \wire134 connect \B 1'0 - connect \S \wire121 - connect \Y \wire138 + connect \S \wire119 + connect \Y \wire136 end - wire width 1 \wire140 + wire width 1 \wire138 - cell $mux $cell141 + cell $mux $cell139 parameter \WIDTH 1 - connect \A \wire138 + connect \A \wire136 connect \B 1'1 - connect \S \wire91 - connect \Y \wire140 + connect \S \wire89 + connect \Y \wire138 end - wire output 142 \tx - connect \tx \wire140 - wire width 1 \wire143 + wire output 140 \tx + connect \tx \wire138 + wire width 1 \wire141 - cell $logic_and $cell144 + cell $logic_and $cell142 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire105 - connect \B \wire124 - connect \Y \wire143 + connect \A \wire103 + connect \B \wire122 + connect \Y \wire141 end - wire width 1 \wire145 + wire width 1 \wire143 - cell $logic_not $cell146 + cell $logic_not $cell144 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire143 - connect \Y \wire145 + connect \A \wire141 + connect \Y \wire143 end - wire width 1 \wire147 + wire width 1 \wire145 - cell $mux $cell148 + cell $mux $cell146 parameter \WIDTH 1 - connect \A \wire145 - connect \B { \wire52 \wire42 } [8:8] - connect \S \wire91 - connect \Y \wire147 + connect \A \wire143 + connect \B { \wire50 \wire42 } [8:8] + connect \S \wire89 + connect \Y \wire145 end - process $proc88 + process $proc86 sync posedge \clk - update \wire87 \wire147 + update \wire85 \wire145 end end diff --git a/test/Test/Bayeux/Uart/golden/spramReverse.pretty b/test/Test/Bayeux/Uart/golden/spramReverse.pretty index 45206b1..836926d 100644 --- a/test/Test/Bayeux/Uart/golden/spramReverse.pretty +++ b/test/Test/Bayeux/Uart/golden/spramReverse.pretty @@ -206,51 +206,38 @@ module \top wire width 8 \wire42 wire width 8 \wire44 - cell $shr $cell45 + cell $and $cell45 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 8 parameter \Y_WIDTH 8 - connect \A \wire42 - connect \B 8'00000001 + connect \A { \wire42 [0:0] \wire42 [7:7] \wire42 [6:6] \wire42 [5:5] \wire42 [4:4] \wire42 [3:3] \wire42 [2:2] \wire42 [1:1] } + connect \B 8'01111111 connect \Y \wire44 end wire width 8 \wire46 - cell $and $cell47 + cell $or $cell47 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 8 parameter \Y_WIDTH 8 - connect \A \wire44 - connect \B 8'01111111 + connect \A { { \wire26 \rx } [0:0] 7'0000000 } + connect \B \wire44 connect \Y \wire46 end wire width 8 \wire48 - cell $or $cell49 - parameter \A_SIGNED 0 - parameter \A_WIDTH 8 - parameter \B_SIGNED 0 - parameter \B_WIDTH 8 - parameter \Y_WIDTH 8 - connect \A { { \wire26 \rx } [0:0] 7'0000000 } - connect \B \wire46 - connect \Y \wire48 - end - - wire width 8 \wire50 - - cell $mux $cell51 + cell $mux $cell49 parameter \WIDTH 8 connect \A \wire42 - connect \B \wire48 + connect \B \wire46 connect \S { \wire26 \rx } [1:1] - connect \Y \wire50 + connect \Y \wire48 end @@ -259,13 +246,13 @@ module \top sync posedge \clk - update \wire42 \wire50 + update \wire42 \wire48 end + wire width 1 \wire50 wire width 1 \wire52 - wire width 1 \wire54 - cell $logic_and $cell55 + cell $logic_and $cell53 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 @@ -273,21 +260,21 @@ module \top parameter \Y_WIDTH 1 connect \A \wire41 connect \B { \wire26 \rx } [1:1] - connect \Y \wire54 + connect \Y \wire52 end - process $proc53 + process $proc51 sync posedge \clk - update \wire52 \wire54 + update \wire50 \wire52 end - wire width 1 \wire56 + wire width 1 \wire54 - cell $logic_and $cell57 + cell $logic_and $cell55 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 @@ -295,12 +282,12 @@ module \top parameter \Y_WIDTH 1 connect \A \wire4 connect \B \wire11 - connect \Y \wire56 + connect \Y \wire54 end - wire width 1 \wire58 + wire width 1 \wire56 - cell $logic_and $cell59 + cell $logic_and $cell57 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 @@ -308,25 +295,25 @@ module \top parameter \Y_WIDTH 1 connect \A \wire4 connect \B \wire21 - connect \Y \wire58 + connect \Y \wire56 end - wire width 1 \wire60 + wire width 1 \wire58 - cell $logic_and $cell61 + cell $logic_and $cell59 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A { \wire52 \wire42 } [8:8] + connect \A { \wire50 \wire42 } [8:8] connect \B \wire17 - connect \Y \wire60 + connect \Y \wire58 end - wire width 1 \wire62 + wire width 1 \wire60 - cell $logic_and $cell63 + cell $logic_and $cell61 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 @@ -334,12 +321,12 @@ module \top parameter \Y_WIDTH 1 connect \A \wire5 connect \B \wire21 - connect \Y \wire62 + connect \Y \wire60 end - wire width 2 \wire64 + wire width 2 \wire62 - cell $eq $cell65 + cell $eq $cell63 parameter \A_SIGNED 0 parameter \A_WIDTH 2 parameter \B_SIGNED 0 @@ -347,34 +334,44 @@ module \top parameter \Y_WIDTH 2 connect \A \wire7 [1:0] connect \B 2'11 - connect \Y \wire64 + connect \Y \wire62 end - wire width 1 \wire66 - connect \wire66 \wire64 [0] - wire width 1 \wire67 + wire width 1 \wire64 + connect \wire64 \wire62 [0] + wire width 1 \wire65 - cell $logic_and $cell68 + cell $logic_and $cell66 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 connect \A \wire25 - connect \B \wire66 - connect \Y \wire67 + connect \B \wire64 + connect \Y \wire65 end - wire width 1 \wire69 + wire width 1 \wire67 - cell $logic_or $cell70 + cell $logic_or $cell68 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire62 - connect \B \wire67 + connect \A \wire60 + connect \B \wire65 + connect \Y \wire67 + end + + wire width 2 \wire69 + + cell $mux $cell70 + parameter \WIDTH 2 + connect \A \wire7 [1:0] + connect \B 2'00 + connect \S \wire67 connect \Y \wire69 end @@ -382,9 +379,9 @@ module \top cell $mux $cell72 parameter \WIDTH 2 - connect \A \wire7 [1:0] - connect \B 2'00 - connect \S \wire69 + connect \A \wire69 + connect \B 2'11 + connect \S \wire58 connect \Y \wire71 end @@ -393,8 +390,8 @@ module \top cell $mux $cell74 parameter \WIDTH 2 connect \A \wire71 - connect \B 2'11 - connect \S \wire60 + connect \B 2'10 + connect \S \wire56 connect \Y \wire73 end @@ -403,24 +400,14 @@ module \top cell $mux $cell76 parameter \WIDTH 2 connect \A \wire73 - connect \B 2'10 - connect \S \wire58 - connect \Y \wire75 - end - - wire width 2 \wire77 - - cell $mux $cell78 - parameter \WIDTH 2 - connect \A \wire75 connect \B 2'01 - connect \S \wire56 - connect \Y \wire77 + connect \S \wire54 + connect \Y \wire75 end - wire width 1 \wire79 + wire width 1 \wire77 - cell $logic_or $cell80 + cell $logic_or $cell78 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 @@ -428,25 +415,25 @@ module \top parameter \Y_WIDTH 1 connect \A \wire11 connect \B \wire21 - connect \Y \wire79 + connect \Y \wire77 end - wire width 1 \wire81 + wire width 1 \wire79 - cell $logic_or $cell82 + cell $logic_or $cell80 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire79 + connect \A \wire77 connect \B \wire25 - connect \Y \wire81 + connect \Y \wire79 end - wire width 16 \wire83 + wire width 16 \wire81 - cell $add $cell84 + cell $add $cell82 parameter \A_SIGNED 0 parameter \A_WIDTH 16 parameter \B_SIGNED 0 @@ -454,17 +441,17 @@ module \top parameter \Y_WIDTH 16 connect \A \wire7 [17:2] connect \B 1'1 - connect \Y \wire83 + connect \Y \wire81 end - wire width 16 \wire85 + wire width 16 \wire83 - cell $mux $cell86 + cell $mux $cell84 parameter \WIDTH 16 - connect \A \wire83 + connect \A \wire81 connect \B 16'0000000000000000 - connect \S \wire81 - connect \Y \wire85 + connect \S \wire79 + connect \Y \wire83 end @@ -473,376 +460,386 @@ module \top sync posedge \clk - update \wire7 { \wire85 \wire77 } + update \wire7 { \wire83 \wire75 } end - wire width 8 \wire87 + wire width 8 \wire85 - cell $eq $cell88 + cell $eq $cell86 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 8 parameter \Y_WIDTH 8 connect \A 8'00001010 - connect \B { \wire52 \wire42 } [7:0] - connect \Y \wire87 + connect \B { \wire50 \wire42 } [7:0] + connect \Y \wire85 end - wire width 1 \wire89 - connect \wire89 \wire87 [0] - wire width 1 \wire90 + wire width 1 \wire87 + connect \wire87 \wire85 [0] + wire width 1 \wire88 - cell $logic_not $cell91 + cell $logic_not $cell89 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire89 - connect \Y \wire90 + connect \A \wire87 + connect \Y \wire88 end - wire width 15 \wire92 - wire width 14 \wire94 + wire width 15 \wire90 + wire width 14 \wire92 - cell $sub $cell95 + cell $sub $cell93 parameter \A_SIGNED 0 parameter \A_WIDTH 14 parameter \B_SIGNED 0 parameter \B_WIDTH 14 parameter \Y_WIDTH 14 - connect \A \wire92 [14:1] + connect \A \wire90 [14:1] connect \B 14'00000000000001 - connect \Y \wire94 + connect \Y \wire92 end - wire width 14 \wire96 + wire width 14 \wire94 - cell $eq $cell97 + cell $eq $cell95 parameter \A_SIGNED 0 parameter \A_WIDTH 14 parameter \B_SIGNED 0 parameter \B_WIDTH 14 parameter \Y_WIDTH 14 - connect \A \wire94 + connect \A \wire92 connect \B 14'00000000000000 - connect \Y \wire96 + connect \Y \wire94 end + wire width 1 \wire96 + connect \wire96 \wire94 [0] + wire width 1 \wire97 wire width 1 \wire98 - connect \wire98 \wire96 [0] - wire width 1 \wire99 - wire width 1 \wire100 - cell $logic_not $cell101 + cell $logic_not $cell99 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire99 - connect \Y \wire100 + connect \A \wire97 + connect \Y \wire98 end - wire width 1 \wire102 + wire width 1 \wire100 - cell $logic_and $cell103 + cell $logic_and $cell101 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A { \wire52 \wire42 } [8:8] - connect \B \wire90 - connect \Y \wire102 + connect \A { \wire50 \wire42 } [8:8] + connect \B \wire88 + connect \Y \wire100 end - wire width 1 \wire104 + wire width 1 \wire102 - cell $eq $cell105 + cell $eq $cell103 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire92 [0:0] + connect \A \wire90 [0:0] connect \B 1'0 - connect \Y \wire104 + connect \Y \wire102 end - wire width 1 \wire106 - connect \wire106 \wire104 [0] - wire width 1 \wire107 + wire width 1 \wire104 + connect \wire104 \wire102 [0] + wire width 1 \wire105 - cell $eq $cell108 + cell $eq $cell106 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire92 [0:0] + connect \A \wire90 [0:0] connect \B 1'1 - connect \Y \wire107 + connect \Y \wire105 end - wire width 1 \wire109 - connect \wire109 \wire107 [0] - wire width 36 \wire110 + wire width 1 \wire107 + connect \wire107 \wire105 [0] + wire width 36 \wire108 - cell $mux $cell111 + cell $mux $cell109 parameter \WIDTH 36 - connect \A { \wire100 1'0 \wire94 20'00000000000000000000 } - connect \B { \wire102 1'1 \wire92 [14:1] 8'00000000 { \wire52 \wire42 } [7:0] 4'0011 } - connect \S \wire106 - connect \Y \wire110 + connect \A { \wire98 1'0 \wire92 20'00000000000000000000 } + connect \B { \wire100 1'1 \wire90 [14:1] 8'00000000 { \wire50 \wire42 } [7:0] 4'0011 } + connect \S \wire104 + connect \Y \wire108 end - wire width 16 \wire113 + wire width 16 \wire111 attribute \module_not_derived 1 - cell \SB_SPRAM256KA \SB_SPRAM256KA_INST112 - connect \ADDRESS \wire110 [34:0] [33:20] - connect \DATAIN \wire110 [34:0] [19:4] - connect \MASKWREN \wire110 [34:0] [3:0] - connect \WREN \wire110 [34:0] [34:34] - connect \CHIPSELECT \wire110 [35:35] + cell \SB_SPRAM256KA \SB_SPRAM256KA_INST110 + connect \ADDRESS \wire108 [34:0] [33:20] + connect \DATAIN \wire108 [34:0] [19:4] + connect \MASKWREN \wire108 [34:0] [3:0] + connect \WREN \wire108 [34:0] [34:34] + connect \CHIPSELECT \wire108 [35:35] connect \CLOCK \clk connect \STANDBY 1'0 connect \SLEEP 1'0 connect \POWEROFF 1'1 - connect \DATAOUT \wire113 + connect \DATAOUT \wire111 end + wire width 1 \wire112 wire width 1 \wire114 - wire width 1 \wire116 - cell $logic_not $cell117 + cell $logic_not $cell115 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire110 [34:0] [34:34] - connect \Y \wire116 + connect \A \wire108 [34:0] [34:34] + connect \Y \wire114 end - wire width 1 \wire118 + wire width 1 \wire116 - cell $logic_and $cell119 + cell $logic_and $cell117 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire110 [35:35] - connect \B \wire116 - connect \Y \wire118 + connect \A \wire108 [35:35] + connect \B \wire114 + connect \Y \wire116 end - process $proc115 + process $proc113 sync posedge \clk - update \wire114 \wire118 + update \wire112 \wire116 end + wire width 1 \wire118 wire width 1 \wire120 - wire width 1 \wire122 - cell $eq $cell123 + cell $eq $cell121 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire120 + connect \A \wire118 connect \B 1'0 - connect \Y \wire122 + connect \Y \wire120 end - wire width 1 \wire124 - connect \wire124 \wire122 [0] + wire width 1 \wire122 + connect \wire122 \wire120 [0] + wire width 16 \wire123 wire width 16 \wire125 - wire width 16 \wire127 - cell $eq $cell128 + cell $eq $cell126 parameter \A_SIGNED 0 parameter \A_WIDTH 16 parameter \B_SIGNED 0 parameter \B_WIDTH 16 parameter \Y_WIDTH 16 - connect \A \wire125 + connect \A \wire123 connect \B 16'0000001001110000 - connect \Y \wire127 + connect \Y \wire125 end - wire width 1 \wire129 - connect \wire129 \wire127 [0] - wire width 1 \wire130 + wire width 1 \wire127 + connect \wire127 \wire125 [0] + wire width 1 \wire128 - cell $logic_or $cell131 + cell $logic_or $cell129 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire124 - connect \B \wire129 - connect \Y \wire130 + connect \A \wire122 + connect \B \wire127 + connect \Y \wire128 end - wire width 16 \wire132 + wire width 16 \wire130 - cell $add $cell133 + cell $add $cell131 parameter \A_SIGNED 0 parameter \A_WIDTH 16 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 16 - connect \A \wire125 + connect \A \wire123 connect \B 1'1 - connect \Y \wire132 + connect \Y \wire130 end - wire width 16 \wire134 + wire width 16 \wire132 - cell $mux $cell135 + cell $mux $cell133 parameter \WIDTH 16 - connect \A \wire132 + connect \A \wire130 connect \B 16'0000000000000000 - connect \S \wire130 - connect \Y \wire134 + connect \S \wire128 + connect \Y \wire132 end - process $proc126 + process $proc124 sync posedge \clk - update \wire125 \wire134 + update \wire123 \wire132 end - wire width 16 \wire136 + wire width 16 \wire134 - cell $eq $cell137 + cell $eq $cell135 parameter \A_SIGNED 0 parameter \A_WIDTH 16 parameter \B_SIGNED 0 parameter \B_WIDTH 16 parameter \Y_WIDTH 16 - connect \A \wire125 + connect \A \wire123 connect \B 16'0000001001110000 - connect \Y \wire136 + connect \Y \wire134 end - wire width 1 \wire138 - connect \wire138 \wire136 [0] - wire width 1 \wire139 + wire width 1 \wire136 + connect \wire136 \wire134 [0] + wire width 1 \wire137 - cell $logic_not $cell140 + cell $logic_not $cell138 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire138 - connect \Y \wire139 + connect \A \wire136 + connect \Y \wire137 end + wire width 8 \wire139 wire width 8 \wire141 - wire width 8 \wire143 - cell $eq $cell144 + cell $eq $cell142 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 8 parameter \Y_WIDTH 8 - connect \A \wire141 + connect \A \wire139 connect \B 8'00001001 - connect \Y \wire143 + connect \Y \wire141 end - wire width 1 \wire145 - connect \wire145 \wire143 [0] - wire width 8 \wire146 + wire width 1 \wire143 + connect \wire143 \wire141 [0] + wire width 8 \wire144 - cell $add $cell147 + cell $add $cell145 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 8 - connect \A \wire141 + connect \A \wire139 connect \B 1'1 - connect \Y \wire146 + connect \Y \wire144 end - wire width 8 \wire148 + wire width 8 \wire146 - cell $mux $cell149 + cell $mux $cell147 parameter \WIDTH 8 - connect \A \wire146 + connect \A \wire144 connect \B 8'00000000 - connect \S \wire145 - connect \Y \wire148 + connect \S \wire143 + connect \Y \wire146 end - wire width 8 \wire150 + wire width 8 \wire148 - cell $mux $cell151 + cell $mux $cell149 parameter \WIDTH 8 - connect \A \wire148 - connect \B \wire141 - connect \S \wire139 - connect \Y \wire150 + connect \A \wire146 + connect \B \wire139 + connect \S \wire137 + connect \Y \wire148 end - process $proc142 + process $proc140 sync posedge \clk - update \wire141 \wire150 + update \wire139 \wire148 end - wire width 8 \wire152 + wire width 8 \wire150 - cell $eq $cell153 + cell $eq $cell151 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 8 parameter \Y_WIDTH 8 - connect \A \wire141 + connect \A \wire139 connect \B 8'00000000 - connect \Y \wire152 + connect \Y \wire150 end - wire width 1 \wire154 - connect \wire154 \wire152 [0] - wire width 8 \wire155 + wire width 1 \wire152 + connect \wire152 \wire150 [0] + wire width 8 \wire153 - cell $eq $cell156 + cell $eq $cell154 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 8 parameter \Y_WIDTH 8 - connect \A \wire141 + connect \A \wire139 connect \B 8'00001001 - connect \Y \wire155 + connect \Y \wire153 end - wire width 1 \wire157 - connect \wire157 \wire155 [0] + wire width 1 \wire155 + connect \wire155 \wire153 [0] + wire width 8 \wire156 wire width 8 \wire158 - wire width 8 \wire160 - cell $shr $cell161 + cell $shr $cell159 parameter \A_SIGNED 0 parameter \A_WIDTH 8 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 8 - connect \A \wire158 + connect \A \wire156 connect \B 1'1 + connect \Y \wire158 + end + + wire width 8 \wire160 + + cell $mux $cell161 + parameter \WIDTH 8 + connect \A \wire158 + connect \B \wire156 + connect \S \wire137 connect \Y \wire160 end @@ -851,8 +848,8 @@ module \top cell $mux $cell163 parameter \WIDTH 8 connect \A \wire160 - connect \B \wire158 - connect \S \wire139 + connect \B \wire156 + connect \S \wire152 connect \Y \wire162 end @@ -861,334 +858,324 @@ module \top cell $mux $cell165 parameter \WIDTH 8 connect \A \wire162 - connect \B \wire158 - connect \S \wire154 + connect \B { { \wire112 \wire111 } [16:16] { \wire112 \wire111 } [15:0] [7:0] } [7:0] + connect \S \wire122 connect \Y \wire164 end - wire width 8 \wire166 - - cell $mux $cell167 - parameter \WIDTH 8 - connect \A \wire164 - connect \B { { \wire114 \wire113 } [16:16] { \wire114 \wire113 } [15:0] [7:0] } [7:0] - connect \S \wire124 - connect \Y \wire166 - end - - process $proc159 + process $proc157 sync posedge \clk - update \wire158 \wire166 + update \wire156 \wire164 end - wire width 1 \wire168 - connect \wire168 \wire158 [0] - wire width 1 \wire169 + wire width 1 \wire166 + connect \wire166 \wire156 [0] + wire width 1 \wire167 - cell $mux $cell170 + cell $mux $cell168 parameter \WIDTH 1 - connect \A \wire168 + connect \A \wire166 connect \B 1'1 - connect \S \wire157 - connect \Y \wire169 + connect \S \wire155 + connect \Y \wire167 end - wire width 1 \wire171 + wire width 1 \wire169 - cell $mux $cell172 + cell $mux $cell170 parameter \WIDTH 1 - connect \A \wire169 + connect \A \wire167 connect \B 1'0 - connect \S \wire154 - connect \Y \wire171 + connect \S \wire152 + connect \Y \wire169 end - wire width 1 \wire173 + wire width 1 \wire171 - cell $mux $cell174 + cell $mux $cell172 parameter \WIDTH 1 - connect \A \wire171 + connect \A \wire169 connect \B 1'1 - connect \S \wire124 - connect \Y \wire173 + connect \S \wire122 + connect \Y \wire171 end - wire output 175 \tx - connect \tx \wire173 - wire width 1 \wire176 + wire output 173 \tx + connect \tx \wire171 + wire width 1 \wire174 - cell $logic_and $cell177 + cell $logic_and $cell175 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire138 - connect \B \wire157 - connect \Y \wire176 + connect \A \wire136 + connect \B \wire155 + connect \Y \wire174 end - wire width 1 \wire178 + wire width 1 \wire176 - cell $logic_not $cell179 + cell $logic_not $cell177 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire176 - connect \Y \wire178 + connect \A \wire174 + connect \Y \wire176 end - wire width 1 \wire180 + wire width 1 \wire178 - cell $mux $cell181 + cell $mux $cell179 parameter \WIDTH 1 - connect \A \wire178 - connect \B { { \wire114 \wire113 } [16:16] { \wire114 \wire113 } [15:0] [7:0] } [8:8] - connect \S \wire124 - connect \Y \wire180 + connect \A \wire176 + connect \B { { \wire112 \wire111 } [16:16] { \wire112 \wire111 } [15:0] [7:0] } [8:8] + connect \S \wire122 + connect \Y \wire178 end - process $proc121 + process $proc119 sync posedge \clk - update \wire120 \wire180 + update \wire118 \wire178 end - connect \wire99 \wire120 + connect \wire97 \wire118 + wire width 1 \wire180 wire width 1 \wire182 - wire width 1 \wire184 - cell $logic_not $cell185 + cell $logic_not $cell183 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire99 - connect \Y \wire184 + connect \A \wire97 + connect \Y \wire182 end - process $proc183 + process $proc181 sync posedge \clk - update \wire182 \wire184 + update \wire180 \wire182 end - wire width 1 \wire186 + wire width 1 \wire184 - cell $logic_and $cell187 + cell $logic_and $cell185 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A { \wire52 \wire42 } [8:8] - connect \B \wire90 - connect \Y \wire186 + connect \A { \wire50 \wire42 } [8:8] + connect \B \wire88 + connect \Y \wire184 end - wire width 1 \wire188 + wire width 1 \wire186 - cell $logic_and $cell189 + cell $logic_and $cell187 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire99 - connect \B \wire182 - connect \Y \wire188 + connect \A \wire97 + connect \B \wire180 + connect \Y \wire186 end - wire width 14 \wire190 + wire width 14 \wire188 - cell $add $cell191 + cell $add $cell189 parameter \A_SIGNED 0 parameter \A_WIDTH 14 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 14 - connect \A \wire92 [14:1] + connect \A \wire90 [14:1] connect \B 1'1 - connect \Y \wire190 + connect \Y \wire188 end - wire width 14 \wire192 + wire width 14 \wire190 - cell $mux $cell193 + cell $mux $cell191 parameter \WIDTH 14 - connect \A \wire92 [14:1] - connect \B \wire190 - connect \S \wire186 - connect \Y \wire192 + connect \A \wire90 [14:1] + connect \B \wire188 + connect \S \wire184 + connect \Y \wire190 end - wire width 1 \wire194 + wire width 1 \wire192 - cell $eq $cell195 + cell $eq $cell193 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire92 [0:0] + connect \A \wire90 [0:0] connect \B 1'0 - connect \Y \wire194 + connect \Y \wire192 end - wire width 1 \wire196 - connect \wire196 \wire194 [0] - wire width 14 \wire197 + wire width 1 \wire194 + connect \wire194 \wire192 [0] + wire width 14 \wire195 - cell $sub $cell198 + cell $sub $cell196 parameter \A_SIGNED 0 parameter \A_WIDTH 14 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 14 - connect \A \wire92 [14:1] + connect \A \wire90 [14:1] connect \B 1'1 - connect \Y \wire197 + connect \Y \wire195 end - wire width 14 \wire199 + wire width 14 \wire197 - cell $mux $cell200 + cell $mux $cell198 parameter \WIDTH 14 - connect \A \wire92 [14:1] - connect \B \wire197 - connect \S \wire188 - connect \Y \wire199 + connect \A \wire90 [14:1] + connect \B \wire195 + connect \S \wire186 + connect \Y \wire197 end - wire width 1 \wire201 + wire width 1 \wire199 - cell $eq $cell202 + cell $eq $cell200 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire92 [0:0] + connect \A \wire90 [0:0] connect \B 1'1 - connect \Y \wire201 + connect \Y \wire199 end - wire width 1 \wire203 - connect \wire203 \wire201 [0] - wire width 14 \wire204 + wire width 1 \wire201 + connect \wire201 \wire199 [0] + wire width 14 \wire202 - cell $mux $cell205 + cell $mux $cell203 parameter \WIDTH 14 - connect \A \wire199 - connect \B \wire192 - connect \S \wire196 - connect \Y \wire204 + connect \A \wire197 + connect \B \wire190 + connect \S \wire194 + connect \Y \wire202 end - wire width 9 \wire206 + wire width 9 \wire204 - cell $eq $cell207 + cell $eq $cell205 parameter \A_SIGNED 0 parameter \A_WIDTH 9 parameter \B_SIGNED 0 parameter \B_WIDTH 9 parameter \Y_WIDTH 9 - connect \A { \wire52 \wire42 } + connect \A { \wire50 \wire42 } connect \B 9'100001010 - connect \Y \wire206 + connect \Y \wire204 end - wire width 1 \wire208 - connect \wire208 \wire206 [0] - wire width 1 \wire209 + wire width 1 \wire206 + connect \wire206 \wire204 [0] + wire width 1 \wire207 - cell $mux $cell210 + cell $mux $cell208 parameter \WIDTH 1 - connect \A \wire92 [0:0] + connect \A \wire90 [0:0] connect \B 1'1 - connect \S \wire208 - connect \Y \wire209 + connect \S \wire206 + connect \Y \wire207 end - wire width 1 \wire211 + wire width 1 \wire209 - cell $eq $cell212 + cell $eq $cell210 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire92 [0:0] + connect \A \wire90 [0:0] connect \B 1'0 - connect \Y \wire211 + connect \Y \wire209 end - wire width 1 \wire213 - connect \wire213 \wire211 [0] - wire width 1 \wire214 + wire width 1 \wire211 + connect \wire211 \wire209 [0] + wire width 1 \wire212 - cell $logic_and $cell215 + cell $logic_and $cell213 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire188 - connect \B \wire98 - connect \Y \wire214 + connect \A \wire186 + connect \B \wire96 + connect \Y \wire212 end - wire width 1 \wire216 + wire width 1 \wire214 - cell $mux $cell217 + cell $mux $cell215 parameter \WIDTH 1 - connect \A \wire92 [0:0] + connect \A \wire90 [0:0] connect \B 1'0 - connect \S \wire214 - connect \Y \wire216 + connect \S \wire212 + connect \Y \wire214 end - wire width 1 \wire218 + wire width 1 \wire216 - cell $eq $cell219 + cell $eq $cell217 parameter \A_SIGNED 0 parameter \A_WIDTH 1 parameter \B_SIGNED 0 parameter \B_WIDTH 1 parameter \Y_WIDTH 1 - connect \A \wire92 [0:0] + connect \A \wire90 [0:0] connect \B 1'1 - connect \Y \wire218 + connect \Y \wire216 end - wire width 1 \wire220 - connect \wire220 \wire218 [0] - wire width 1 \wire221 + wire width 1 \wire218 + connect \wire218 \wire216 [0] + wire width 1 \wire219 - cell $mux $cell222 + cell $mux $cell220 parameter \WIDTH 1 - connect \A \wire216 - connect \B \wire209 - connect \S \wire213 - connect \Y \wire221 + connect \A \wire214 + connect \B \wire207 + connect \S \wire211 + connect \Y \wire219 end - process $proc93 + process $proc91 sync posedge \clk - update \wire92 { \wire204 \wire221 } + update \wire90 { \wire202 \wire219 } end end From 390e84ca9a3eab62a42dce27a9197aa63cc36d6b Mon Sep 17 00:00:00 2001 From: dopamane Date: Thu, 8 Aug 2024 09:18:15 +0200 Subject: [PATCH 2/3] Rename EchoLine.pcf to SpramReverse.pcf --- data/{EchoLine.pcf => SpramReverse.pcf} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename data/{EchoLine.pcf => SpramReverse.pcf} (100%) diff --git a/data/EchoLine.pcf b/data/SpramReverse.pcf similarity index 100% rename from data/EchoLine.pcf rename to data/SpramReverse.pcf From afafc2c221adde8e128320e6fb6cb2a7dfcc5d69 Mon Sep 17 00:00:00 2001 From: dopamane Date: Thu, 8 Aug 2024 22:05:38 +0200 Subject: [PATCH 3/3] Cleanup --- lib/Bayeux/Buffer.hs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/Bayeux/Buffer.hs b/lib/Bayeux/Buffer.hs index 685bec7..f97ca3a 100644 --- a/lib/Bayeux/Buffer.hs +++ b/lib/Bayeux/Buffer.hs @@ -54,11 +54,8 @@ instance MonadBuffer Rtl where ] isFull <- i === sig maxBound b <- process $ \b -> do - let shamt :: Word8 - shamt = fromIntegral w - shiftedBuf = sliceRotate 1 b --- shiftedBuf <- shr b $ sig shamt - let la = fromIntegral $ width (undefined :: Array (Finite n) e) + let shiftedBuf = sliceRotate 1 b + la = fromIntegral $ width (undefined :: Array (Finite n) e) le = fromIntegral w input' :: Sig (Array (Finite n) e) input' = Sig $ mconcat