//: version "2.0-b10" //: property encoding = "utf-8" //: property locale = "it" //: property prefix = "_GG" //: property title = "alu" //: property timingViolationMode = 2 //: property initTime = "0 ns" `timescale 1ns/1ns //: /netlistBegin main module main; //: root_module reg [3:0] w14; //: /sn:0 {0}(#:354,-10)(354,18){1} //: {2}(#:356,20)(422,20)(422,-5){3} //: {4}(#:352,20)(295,20)(295,-12){5} //: {6}(354,22)(354,142)(#:349,142)(349,152){7} //: {8}(351,154)(528,154){9} //: {10}(#:532,154)(729,154){11} //: {12}(#:733,154)(931,154)(931,226){13} //: {14}(731,156)(731,226){15} //: {16}(#:530,156)(530,226){17} //: {18}(347,154)(330,154)(#:330,226){19} reg [3:0] w3; //: /sn:0 {0}(#:546,-18)(546,10){1} //: {2}(#:548,12)(614,12)(614,-13){3} //: {4}(#:544,12)(487,12)(487,-20){5} //: {6}(546,14)(546,52)(485,52)(485,170){7} //: {8}(487,172)(560,172){9} //: {10}(#:564,172)(761,172){11} //: {12}(#:765,172)(963,172)(963,226){13} //: {14}(763,174)(763,226){15} //: {16}(#:562,174)(562,226){17} //: {18}(483,172)(362,172)(#:362,226){19} reg [4:0] w28; //: /sn:0 {0}(#:236,127)(236,170){1} //: {2}(238,172)(294,172)(294,182)(378,182)(378,189)(390,189){3} //: {4}(392,187)(392,185)(#:590,185){5} //: {6}(594,185)(#:791,185){7} //: {8}(795,185)(#:993,185)(993,226){9} //: {10}(793,187)(#:793,226){11} //: {12}(592,187)(592,226){13} //: {14}(392,191)(392,226){15} //: {16}(#:234,172)(180,172)(180,123){17} reg w1; //: /sn:0 {0}(244,197)(293,197)(293,200)(297,200){1} //: {2}(299,198)(299,196)(497,196){3} //: {4}(501,196)(698,196){5} //: {6}(702,196)(900,196)(900,226){7} //: {8}(700,198)(700,226){9} //: {10}(499,198)(499,226){11} //: {12}(299,202)(299,226){13} reg [3:0] w12; //: /sn:0 {0}(#:938,38)(938,56)(1005,56){1} //: {2}(#:1009,56)(1092,56)(1092,45){3} //: {4}(1007,54)(#:1007,39){5} //: {6}(1007,58)(#:1007,73){7} reg w13; //: /sn:0 {0}(251,290)(263,290)(263,289)(277,289){1} reg w5; //: /sn:0 {0}(1078,252)(1047,252){1} wire w6; //: /sn:0 {0}(477,252)(446,252){1} wire w32; //: /sn:0 {0}(908,333)(908,318){1} wire w7; //: /sn:0 {0}(277,252)(189,252)(189,234){1} wire w16; //: /sn:0 {0}(1002,79)(1002,128)(621,128)(621,226){1} wire [3:0] w19; //: /sn:0 {0}(#:884,413)(884,431)(949,431){1} //: {2}(#:953,431)(1038,431)(1038,420){3} //: {4}(#:951,429)(#:951,400){5} wire w4; //: /sn:0 {0}(992,79)(992,116)(421,116)(421,226){1} wire w34; //: /sn:0 {0}(1012,79)(1012,143)(822,143)(822,226){1} wire w21; //: /sn:0 {0}(946,394)(946,364)(565,364)(565,318){1} wire w43; //: /sn:0 {0}(708,333)(708,318){1} wire w31; //: /sn:0 {0}(966,394)(966,318){1} wire w20; //: /sn:0 {0}(507,333)(507,318){1} wire w23; //: /sn:0 {0}(678,289)(646,289){1} wire w8; //: /sn:0 {0}(235,326)(235,347)(307,347)(307,318){1} wire w18; //: /sn:0 {0}(678,252)(646,252){1} wire w17; //: /sn:0 {0}(1022,79)(1022,226){1} wire w11; //: /sn:0 {0}(477,289)(446,289){1} wire w27; //: /sn:0 {0}(847,252)(878,252){1} wire w33; //: /sn:0 {0}(1135,263)(1135,289)(1047,289){1} wire w29; //: /sn:0 {0}(878,289)(847,289){1} wire w9; //: /sn:0 {0}(936,394)(936,378)(365,378)(365,318){1} wire w42; //: /sn:0 {0}(956,394)(956,352)(766,352)(766,318){1} //: enddecls //: joint g8 (w3) @(562, 172) /w:[ 10 -1 9 16 ] ralu g4 (.E(w1), .SRC(w14), .DST(w3), .ALU(w28), .BUSi(w34), .Di(w23), .Ci(w27), .Co(w18), .O(w43), .BUSo(w42), .Do(w29)); //: @(679, 227) /sz:(167, 90) /sn:0 /p:[ Ti0>9 Ti1>15 Ti2>15 Ti3>11 Ti4>1 Li0>0 Ri0>0 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: LED g37 (w3) @(614,-20) /sn:0 /w:[ 3 ] /type:3 //: joint g34 (w14) @(349, 154) /w:[ 8 7 18 -1 ] assign {w4, w16, w34, w17} = w12; //: CONCAT g13 @(1007,74) /sn:0 /R:1 /w:[ 0 0 0 0 7 ] /dr:0 /tp:0 /drp:0 ralu g3 (.E(w1), .SRC(w14), .DST(w3), .ALU(w28), .BUSi(w17), .Di(w29), .Ci(w5), .Co(w27), .O(w32), .BUSo(w31), .Do(w33)); //: @(879, 227) /sz:(167, 90) /sn:0 /p:[ Ti0>7 Ti1>13 Ti2>13 Ti3>9 Ti4>1 Li0>0 Ri0>1 Lo0<1 Bo0<1 Bo1<1 Ro0<1 ] //: joint g2 (w1) @(700, 196) /w:[ 6 -1 5 8 ] ralu g1 (.E(w1), .SRC(w14), .DST(w3), .ALU(w28), .BUSi(w16), .Di(w11), .Ci(w18), .Co(w6), .O(w20), .BUSo(w21), .Do(w23)); //: @(478, 227) /sz:(167, 90) /sn:0 /p:[ Ti0>11 Ti1>17 Ti2>17 Ti3>13 Ti4>1 Li0>0 Ri0>1 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: SWITCH g16 (w5) @(1096,252) /sn:0 /R:2 /w:[ 0 ] /st:0 /dn:0 //: joint g11 (w14) @(731, 154) /w:[ 12 -1 11 14 ] //: joint g28 (w28) @(236, 172) /w:[ 2 1 16 -1 ] //: joint g10 (w14) @(530, 154) /w:[ 10 -1 9 16 ] //: LED g32 (w14) @(422,-12) /sn:0 /w:[ 3 ] /type:3 //: LED g27 (w28) @(180,116) /sn:0 /w:[ 17 ] /type:1 assign w19 = {w9, w21, w42, w31}; //: CONCAT g19 @(951,399) /sn:0 /R:3 /w:[ 5 0 0 0 0 ] /dr:1 /tp:0 /drp:1 //: joint g38 (w3) @(546, 12) /w:[ 2 1 4 6 ] //: joint g6 (w28) @(793, 185) /w:[ 8 -1 7 10 ] //: joint g9 (w3) @(763, 172) /w:[ 12 -1 11 14 ] //: joint g7 (w28) @(592, 185) /w:[ 6 -1 5 12 ] //: DIP g31 (w14) @(354,-20) /sn:0 /w:[ 0 ] /st:3 /dn:0 //: LED g20 (w19) @(884,406) /sn:0 /w:[ 0 ] /type:1 //: LED g15 (w7) @(189,227) /sn:0 /w:[ 1 ] /type:0 //: joint g39 (w3) @(485, 172) /w:[ 8 7 18 -1 ] //: joint g29 (w28) @(392, 189) /w:[ -1 4 3 14 ] //: joint g25 (w12) @(1007, 56) /w:[ 2 4 1 6 ] //: LED g17 (w33) @(1135,256) /sn:0 /w:[ 0 ] /type:0 //: SWITCH g14 (w13) @(234,290) /sn:0 /w:[ 0 ] /st:0 /dn:0 //: joint g5 (w1) @(499, 196) /w:[ 4 -1 3 10 ] //: DIP g36 (w3) @(546,-28) /sn:0 /w:[ 0 ] /st:1 /dn:0 //: LED g24 (w12) @(1092,38) /sn:0 /w:[ 3 ] /type:3 //: LED g21 (w19) @(1038,413) /sn:0 /w:[ 3 ] /type:3 //: joint g41 (w1) @(299, 200) /w:[ -1 2 1 12 ] //: LED g23 (w12) @(938,31) /sn:0 /w:[ 0 ] /type:1 //: SWITCH g40 (w1) @(227,197) /sn:0 /w:[ 0 ] /st:0 /dn:0 //: LED g35 (w3) @(487,-27) /sn:0 /w:[ 5 ] /type:1 //: DIP g26 (w28) @(236,117) /sn:0 /w:[ 0 ] /st:15 /dn:0 //: joint g22 (w19) @(951, 431) /w:[ 2 4 1 -1 ] ralu g0 (.E(w1), .SRC(w14), .DST(w3), .ALU(w28), .BUSi(w4), .Di(w13), .Ci(w6), .Co(w7), .O(w8), .BUSo(w9), .Do(w11)); //: @(278, 227) /sz:(167, 90) /sn:0 /p:[ Ti0>13 Ti1>19 Ti2>19 Ti3>15 Ti4>1 Li0>1 Ri0>1 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: LED g18 (w8) @(235,319) /sn:0 /w:[ 0 ] /type:0 //: DIP g12 (w12) @(1007,29) /sn:0 /w:[ 5 ] /st:0 /dn:0 //: joint g33 (w14) @(354, 20) /w:[ 2 1 4 6 ] //: LED g30 (w14) @(295,-19) /sn:0 /w:[ 5 ] /type:1 endmodule //: /netlistEnd //: /netlistBegin z module z(A, B, f, Ci, Co); //: interface /sz:(64, 53) /bd:[ Ti0>A(32/64) Ti1>B(52/64) Ti2>f(11/64) Ri0>Ci(22/53) Lo0E(21/167) Ti1>SRC[3:0](52/167) Ti2>DST[3:0](84/167) Ti3>ALU[4:0](114/167) Ti4>BUSi(143/167) Li0>Di(62/90) Ri0>Ci(25/90) Lo029 Li0>0 Bo0<0 Bo1<1 ] //: IN g64 (DST) @(258,131) /sn:0 /w:[ 0 ] //: comment g16 @(430,191) /sn:0 //: /line:"rA" //: /end //: OUT g11 (Do) @(583,381) /sn:0 /w:[ 1 ] //: joint g28 (BUSo) @(719, 172) /w:[ 12 -1 11 22 ] //: OUT g10 (O) @(500,433) /sn:0 /R:3 /w:[ 1 ] //: joint g19 (w0) @(484, 277) /w:[ 2 1 4 -1 ] //: comment g32 @(680,191) /sn:0 //: /line:"r1" //: /end d g27 (.D(BUSo), .E(w27), .Q(w18), ._Q(w30)); //: @(763, 191) /sz:(40, 40) /R:3 /sn:0 /p:[ Ti0>21 Li0>0 Bo0<0 Bo1<1 ] assign w2 = DST[3]; //: TAP g6 @(293,129) /sn:0 /R:1 /w:[ 0 1 2 ] /ss:1 //: comment g38 @(580,239) /sn:0 //: /line:"rY" //: /end //: comment g75 @(432,538) /sn:0 //: /line:"mux " //: /end _GGDECODER8 #(6, 6) g7 (.I(w5), .E(w6), .Z0(w9), .Z1(w4), .Z2(w22), .Z3(w14), .Z4(w25), .Z5(w27), .Z6(w32), .Z7(w29)); //: @(387,115) /sn:0 /R:1 /w:[ 1 1 1 0 1 1 1 1 0 1 ] /ss:0 /do:0 //: OUT g9 (Co) @(468,347) /sn:0 /R:2 /w:[ 0 ] d g31 (.D(BUSo), .E(w29), .Q(w42), ._Q(w36)); //: @(900, 191) /sz:(40, 40) /R:3 /sn:0 /p:[ Ti0>17 Li0>0 Bo0<0 Bo1<1 ] d g20 (.D(BUSo), .E(w14), .Q(w16), ._Q(w23)); //: @(626, 191) /sz:(40, 40) /R:3 /sn:0 /p:[ Ti0>25 Li0>0 Bo0<0 Bo1<1 ] //: joint g15 (BUSo) @(475, 172) /w:[ 6 -1 5 28 ] assign w13 = SRC[3]; //: TAP g39 @(357,561) /sn:0 /R:1 /w:[ 0 2 1 ] /ss:1 //: comment g43 @(403,79) /sn:0 //: /line:"7" //: /end d g29 (.D(BUSo), .E(w32), .Q(w19), ._Q(w35)); //: @(833, 191) /sz:(40, 40) /R:3 /sn:0 /p:[ Ti0>19 Li0>1 Bo0<0 Bo1<1 ] //: joint g25 (BUSo) @(649, 172) /w:[ 10 -1 9 24 ] //: comment g17 @(502,191) /sn:0 //: /line:"rB" //: /end //: comment g42 @(435,558) /sn:0 //: /line:"0" //: /end //: IN g63 (SRC) @(258,563) /sn:0 /w:[ 5 ] //: comment g74 @(470,511) /sn:0 //: /line:"7" //: /end _GGAND2 #(6) g5 (.I0(!w2), .I1(E), .Z(w6)); //: @(345,153) /sn:0 /w:[ 1 0 0 ] d g14 (.D(BUSo), .E(w4), .Q(w1), ._Q(w12)); //: @(520, 191) /sz:(40, 40) /R:3 /sn:0 /p:[ Ti0>27 Li0>1 Bo0<3 Bo1<1 ] //: comment g44 @(221,350) /sn:0 //: /line:". " //: /end //: comment g36 @(817,192) /sn:0 //: /line:"r3" //: /end d g24 (.D(BUSo), .E(w25), .Q(w17), ._Q(w15)); //: @(696, 191) /sz:(40, 40) /R:3 /sn:0 /p:[ Ti0>23 Li0>0 Bo0<0 Bo1<1 ] //: joint g21 (BUSo) @(543, 172) /w:[ 8 -1 7 26 ] //: comment g41 @(402,138) /sn:0 //: /line:"0" //: /end //: joint g23 (BUSo) @(455, 617) /w:[ 2 1 4 -1 ] //: comment g40 @(571,258) /sn:0 //: /line:"non usato" //: /end //: IN g60 (BUSi) @(577,560) /sn:0 /R:2 /w:[ 0 ] //: comment g46 @(467,558) /sn:0 //: /line:"1" //: /end _GGMUX2 #(8, 8) g22 (.I0(w44), .I1(BUSi), .S(w13), .Z(BUSo)); //: @(455,588) /sn:0 /w:[ 0 1 1 0 ] /ss:0 /do:0 //: joint g26 (BUSo) @(786, 172) /w:[ 14 -1 13 20 ] alu g0 (.f(ALU), .B(w1), .A(w0), .Di(Di), .Ci(Ci), .Co(Co), .Y(w7), .O(O), .Do(Do)); //: @(487, 326) /sz:(78, 81) /sn:0 /p:[ Ti0>1 Ti1>0 Ti2>3 Li0>1 Ri0>1 Lo0<1 Bo0<1 Bo1<0 Ro0<0 ] assign w3 = SRC[2:0]; //: TAP g35 @(335,561) /sn:0 /R:1 /w:[ 0 4 3 ] /ss:0 //: IN g66 (E) @(258,197) /sn:0 /w:[ 1 ] _GGMUX8 #(20, 20) g18 (.I0(w0), .I1(w1), .I2(w7), .I3(w16), .I4(w17), .I5(w18), .I6(w19), .I7(w42), .S(w3), .Z(w44)); //: @(445,542) /sn:0 /w:[ 5 5 0 1 1 1 1 1 1 1 ] /ss:0 /do:0 //: IN g12 (Di) @(468,379) /sn:0 /w:[ 0 ] //: comment g30 @(605,188) /sn:0 //: /line:"r0" //: /end //: joint g33 (BUSo) @(856, 172) /w:[ 16 -1 15 18 ] //: comment g49 @(442,586) /sn:0 //: /line:"mux " //: /end endmodule //: /netlistEnd //: /netlistBegin shr_non_compatibile module shr_non_compatibile(lr, O, S, Cr, A, rout, lin, rin, Cl, lout, la); //: interface /sz:(40, 40) /bd:[ ] /pd: 0 /pi: 0 /pe: 0 /pp: 1 output rout; //: /sn:0 {0}(429,463)(473,463)(473,463)(527,463){1} input A; //: /sn:0 {0}(413,463)(389,463)(389,516){1} //: {2}(391,518)(425,518)(425,640){3} //: {4}(387,518)(372,518){5} //: {6}(370,516)(370,428){7} //: {8}(372,426)(437,426)(437,349){9} //: {10}(368,426)(325,426){11} //: {12}(321,426)(294,426)(294,434){13} //: {14}(323,428)(323,619){15} //: {16}(321,621)(268,621)(268,649){17} //: {18}(323,623)(323,637){19} //: {20}(368,518)(348,518){21} input la; //: /sn:0 {0}(320,677)(320,666)(309,666)(309,413)(291,413){1} //: {2}(289,411)(289,349){3} //: {4}(289,415)(289,434){5} input lr; //: /sn:0 {0}(263,649)(263,605){1} //: {2}(265,603)(420,603)(420,640){3} //: {4}(263,601)(263,579){5} //: {6}(265,577)(347,577){7} //: {8}(261,577)(237,577)(237,411){9} //: {10}(239,409)(284,409)(284,434){11} //: {12}(237,407)(237,349){13} input lin; //: /sn:0 {0}(169,463)(284,463)(284,472){1} input rin; //: /sn:0 {0}(522,532)(380,532)(380,561){1} output O; //: /sn:0 {0}(322,725)(322,708)(322,708)(322,698){1} output Cl; //: /sn:0 {0}(265,670)(265,692)(229,692)(229,725){1} output lout; //: /sn:0 {0}(164,532)(245,532)(245,518)(332,518){1} output S; //: /sn:0 {0}(370,725)(370,677)(370,677)(370,628){1} //: {2}(370,624)(370,590){3} //: {4}(368,626)(328,626)(328,637){5} output Cr; //: /sn:0 {0}(423,661)(423,692)(423,692)(423,725){1} wire w6; //: /sn:0 {0}(289,472)(289,455){1} wire w4; //: /sn:0 {0}(286,493)(286,505)(360,505)(360,561){1} wire w13; //: /sn:0 {0}(325,677)(325,658){1} //: enddecls //: comment g37 @(264,427) /sn:0 //: /line:"[1]" //: /end //: comment g58 @(281,520) /sn:0 //: /line:"[3]" //: /end //: IN g112 (lr) @(237,347) /sn:0 /R:3 /w:[ 13 ] //: comment g77 @(383,548) /sn:0 //: /line:"0" //: /end //: OUT g110 (O) @(322,722) /sn:0 /R:3 /w:[ 0 ] //: OUT g111 (S) @(370,722) /sn:0 /R:3 /w:[ 0 ] _GGBUF #(4) g99 (.I(A), .Z(lout)); //: @(342,518) /sn:0 /R:2 /w:[ 21 1 ] //: joint g98 (A) @(370, 518) /w:[ 5 6 20 -1 ] _GGBUF #(4) g96 (.I(A), .Z(rout)); //: @(419,463) /sn:0 /w:[ 0 0 ] _GGAND2 #(6) g103 (.I0(A), .I1(!lr), .Z(Cl)); //: @(265,660) /sn:0 /R:3 /w:[ 17 0 0 ] _GGAND2 #(6) g121 (.I0(A), .I1(lr), .Z(Cr)); //: @(422,651) /sn:0 /R:3 /w:[ 3 3 0 ] //: joint g122 (lr) @(263, 603) /w:[ 2 4 -1 1 ] //: comment g27 @(530,510) /sn:0 //: /line:"right in" //: /end //: comment g113 @(191,347) /sn:0 //: /line:"0=left" //: /line:"1=right" //: /end _GGOR2 #(6) g102 (.I0(w6), .I1(lin), .Z(w4)); //: @(286,483) /sn:0 /R:3 /w:[ 0 1 0 ] //: comment g115 @(302,347) /sn:0 //: /line:"0=logic shift" //: /line:"1=arithmetic shift" //: /end //: comment g9 @(135,438) /sn:0 //: /line:"left in" //: /end //: comment g57 @(353,410) /sn:0 //: /line:"[3]" //: /end _GGMUX2 #(8, 8) g75 (.I0(rin), .I1(w4), .S(lr), .Z(S)); //: @(370,577) /sn:0 /w:[ 1 1 7 3 ] /ss:0 /do:1 //: joint g119 (lr) @(263, 577) /w:[ 6 -1 8 5 ] //: OUT g124 (Cr) @(422,722) /sn:0 /R:3 /w:[ 1 ] //: comment g67 @(439,448) /sn:0 //: /line:"[4]" //: /end //: comment g43 @(178,722) /sn:0 //: /line:"carry" //: /line:"lato" //: /line:"sinistro" //: /end //: joint g104 (lr) @(237, 409) /w:[ 10 12 -1 9 ] //: joint g106 (S) @(370, 626) /w:[ -1 2 4 1 ] //: joint g107 (A) @(323, 426) /w:[ 11 -1 12 14 ] _GGAND3 #(8) g100 (.I0(A), .I1(la), .I2(lr), .Z(w6)); //: @(289,445) /sn:0 /R:3 /w:[ 13 5 11 1 ] //: joint g109 (la) @(289, 413) /w:[ 1 2 -1 4 ] //: comment g44 @(268,719) /sn:0 //: /line:"overflow" //: /end //: IN g94 (A) @(437,347) /sn:0 /R:3 /w:[ 9 ] //: OUT g95 (rout) @(524,463) /sn:0 /w:[ 1 ] //: joint g117 (A) @(323, 621) /w:[ -1 15 16 18 ] //: comment g85 @(350,549) /sn:0 //: /line:"1" //: /end //: comment g24 @(126,509) /sn:0 //: /line:"left out" //: /end //: comment g36 @(605,407) /sn:0 //: /line:"[1] Controllo della rotazione aritmetica:" //: /line:" - lo scorrimento deve essere aritmetico;" //: /line:" - deve trattarsi di scorrimento a destra;" //: /line:" - il bit più significativo deve essere a uno." //: /line:"[2] Controllo dello straripamento:" //: /line:" - lo scorrimento deve essere aritmetico;" //: /line:" - il bit più significativo non deve essere cambiato." //: /line:"[3] Collegamento alla cifra più significativa o di segno." //: /line:"[4] Collegamento alla cifra meno significativa." //: /line:"[Cl] Riporto lato sinistro:" //: /line:" - lo scorrimento è verso sinistra;" //: /line:" - la cifra più significativa era 1." //: /line:"[Cr] Riporto lato destro:" //: /line:" - lo scorrimento è verso destra;" //: /line:" - la cifra meno significativa era 1." //: /line:"" //: /line:"" //: /end //: IN g92 (lin) @(167,463) /sn:0 /w:[ 0 ] _GGXOR2 #(8) g105 (.I0(S), .I1(A), .Z(w13)); //: @(325,648) /sn:0 /R:3 /w:[ 5 19 1 ] //: comment g125 @(439,722) /sn:0 //: /line:"carry" //: /line:"lato" //: /line:"destro" //: /end //: comment g54 @(328,660) /sn:0 //: /line:"[2]" //: /end //: IN g93 (rin) @(524,532) /sn:0 /R:2 /w:[ 0 ] //: joint g101 (A) @(370, 426) /w:[ 8 -1 10 7 ] //: OUT g116 (Cl) @(229,722) /sn:0 /R:3 /w:[ 1 ] //: joint g123 (A) @(389, 518) /w:[ 2 1 4 -1 ] //: comment g26 @(531,441) /sn:0 //: /line:"right out" //: /end //: OUT g97 (lout) @(167,532) /sn:0 /R:2 /w:[ 0 ] //: IN g114 (la) @(289,347) /sn:0 /R:3 /w:[ 3 ] //: comment g120 @(374,410) /sn:0 //: /line:"[4]" //: /end _GGAND2 #(6) g108 (.I0(w13), .I1(la), .Z(O)); //: @(322,688) /sn:0 /R:3 /w:[ 0 0 1 ] //: comment g118 @(272,624) /sn:0 //: /line:"[3]" //: /end endmodule //: /netlistEnd //: /netlistBegin ltgt module ltgt(Ci, f, B, Co, A); //: interface /sz:(74, 71) /bd:[ Ti0>A(38/74) Ti1>B(63/74) Ti2>f(9/74) Ri0>Ci(31/71) Lo03 Ti1>5 Ri0>3 Lo0<1 ] //: IN g10 (f) @(314,95) /sn:0 /R:3 /w:[ 0 ] //: joint g6 (A) @(367, 143) /w:[ 2 1 -1 4 ] //: IN g7 (B) @(496,95) /sn:0 /R:3 /w:[ 0 ] //: OUT g9 (Co) @(267,208) /sn:0 /R:2 /w:[ 0 ] //: IN g5 (A) @(367,95) /sn:0 /R:3 /w:[ 0 ] lt g0 (.A(A), .B(B), .Ci(Ci), .Co(w3)); //: @(353, 175) /sz:(57, 53) /sn:0 /p:[ Ti0>5 Ti1>3 Ri0>5 Lo0<1 ] endmodule //: /netlistEnd //: /netlistBegin shl module shl(B, SHL, O, f, A, Co, Ci); //: interface /sz:(66, 54) /bd:[ Ti0>f(8/66) Ti1>A(31/66) Ti2>B(52/66) Ri0>Ci(24/54) Lo0A(37/78) Ti1>B(65/78) Ti2>f[4:0](9/78) Li0>Di(53/81) Ri0>Ci(22/81) Lo015 Ti1>17 Ti2>1 Li0>1 Bo0<5 Ro0<1 ] assign w20 = f[2:0]; //: TAP g4 @(435,351) /sn:0 /R:1 /w:[ 0 5 6 ] /ss:1 //: IN g61 (Ci) @(1222,376) /sn:0 /R:2 /w:[ 0 ] _GGMUX8 #(20, 20) g3 (.I0(w44), .I1(w11), .I2(w11), .I3(w42), .I4(w42), .I5(w2), .I6(w44), .I7(w44), .S(w20), .Z(w8)); //: @(783,698) /sn:0 /w:[ 9 0 3 0 3 0 7 5 7 0 ] /ss:0 /do:0 _GGMUX8 #(20, 20) g13 (.I0(w21), .I1(w37), .I2(w37), .I3(w21), .I4(w21), .I5(w13), .I6(w21), .I7(w21), .S(w20), .Z(w49)); //: @(641,651) /sn:0 /w:[ 17 5 3 0 11 0 9 7 9 0 ] /ss:0 /do:0 _GGMUX2 #(8, 8) g37 (.I0(w36), .I1(w6), .S(w9), .Z(Co)); //: @(242,668) /sn:0 /R:3 /w:[ 1 0 3 1 ] /ss:0 /do:0 //: IN g51 (B) @(1053,245) /sn:0 /R:3 /w:[ 0 ] //: joint g55 (A) @(779, 319) /w:[ 8 -1 7 14 ] //: joint g58 (B) @(947, 303) /w:[ 3 -1 4 18 ] //: joint g34 (w37) @(624, 624) /w:[ 2 1 -1 4 ] //: comment g77 @(606,620) /sn:0 //: /line:"0" //: /end //: comment g76 @(467,619) /sn:0 //: /line:"0" //: /end //: IN g2 (f) @(153,353) /sn:0 /w:[ 0 ] //: joint g65 (w21) @(637, 614) /w:[ 2 -1 12 1 ] //: joint g59 (B) @(809, 303) /w:[ 5 -1 6 16 ] //: comment g72 @(232,661) /sn:0 //: /line:"mux " //: /end _GGMUX2 #(8, 8) g1 (.I0(w30), .I1(w8), .S(w9), .Z(Y)); //: @(376,746) /sn:0 /w:[ 0 1 7 0 ] /ss:0 /do:0 //: joint g64 (w11) @(766, 673) /w:[ 2 4 -1 1 ] //: OUT g11 (Y) @(376,810) /sn:0 /R:3 /w:[ 1 ] //: joint g16 (w20) @(435, 649) /w:[ 2 1 -1 4 ] //: comment g78 @(627,648) /sn:0 //: /line:"mux " //: /end assign w9 = f[4]; //: TAP g10 @(299,351) /sn:0 /R:1 /w:[ 0 1 2 ] /ss:1 //: IN g50 (A) @(365,245) /sn:0 /R:3 /w:[ 0 ] //: joint g28 (w7) @(483, 622) /w:[ 2 1 -1 4 ] //: GROUND g19 (w44) @(742,669) /sn:0 /w:[ 0 ] //: joint g27 (w21) @(617, 614) /w:[ 13 -1 14 16 ] assign w22 = f[3]; //: TAP g32 @(1012,351) /sn:0 /R:1 /w:[ 0 15 16 ] /ss:1 logic g6 (.A(A), .B(B), .f(w27), .LOGIC(w30)); //: @(340, 479) /sz:(50, 48) /sn:0 /p:[ Ti0>21 Ti1>11 Ti2>1 Bo0<1 ] //: GROUND g38 (w36) @(271,667) /sn:0 /w:[ 0 ] //: comment g69 @(-92,222) /sn:0 //: /line:"f:" //: /line:"" //: /line:"logic" //: /line:"0____ Co = 0" //: /line:"0____ O = 0" //: /line:"00000 Y = 0" //: /line:"00001 Y = NOR" //: /line:"00010 Y = A'·B" //: /line:"00011 Y = A'" //: /line:"00100 Y = A·B'" //: /line:"00101 Y = B'" //: /line:"00110 Y = XOR" //: /line:"00111 Y = NAND" //: /line:"01000 Y = AND" //: /line:"01001 Y = NXOR" //: /line:"01010 Y = B" //: /line:"01011 Y = A'+B" //: /line:"01100 Y = A" //: /line:"01101 Y = A+B'" //: /line:"01110 Y = OR" //: /line:"01111 Y = 1" //: /line:"" //: /line:"ltgt" //: /line:"10000 Co = A lt B" //: /line:"11000 Co = A gt B" //: /line:"1_000 Y = 0" //: /line:"1_000 O = 0" //: /line:"" //: /line:"shl" //: /line:"1_001 Y = Ci" //: /line:"10001 Co = A" //: /line:"11001 Co = B" //: /line:"1_001 O = 0" //: /line:"" //: /line:"1_010 Y = Ci" //: /line:"10010 Co = A" //: /line:"11010 Co = B" //: /line:"1_010 O = 0" //: /line:"" //: /line:"shr" //: /line:"1_011 Y = Di" //: /line:"10011 Do = A" //: /line:"11011 Do = B" //: /line:"1_011 O = 0" //: /line:"" //: /line:"1_100 Y = Di" //: /line:"10100 Do = A" //: /line:"11100 Do = B" //: /line:"1_100 O = 0" //: /line:"" //: /line:"as" //: /line:"10101 Y = A + B + Ci" //: /line:"11101 Y = A - B - Ci" //: /line:"1_101 Co = carry|borrow" //: /line:"1_101 O O overflow|underflow" //: /line:"" //: /line:"z" //: /line:"1_110 Y = 0" //: /line:"1_110 O = 0" //: /line:"10110 Co = A OR Ci" //: /line:"11110 Co = B OR Ci" //: /line:"" //: /line:"1_111 Y = 0" //: /line:"1_111 O = 0" //: /line:"10111 Co = 0" //: /line:"11111 Co = 1" //: /line:"" //: /line:"" //: /end //: comment g75 @(488,647) /sn:0 //: /line:"mux " //: /end shl g7 (.f(w33), .A(A), .B(B), .Ci(Ci), .Co(w7), .O(w37), .SHL(w11)); //: @(614, 447) /sz:(66, 54) /sn:0 /p:[ Ti0>1 Ti1>17 Ti2>15 Ri0>9 Lo0<0 Bo0<0 Bo1<5 ] assign w27 = f[3:0]; //: TAP g9 @(348,351) /sn:0 /R:1 /w:[ 0 3 4 ] /ss:1 //: joint g53 (A) @(541, 319) /w:[ 4 -1 3 18 ] //: joint g57 (B) @(1053, 303) /w:[ -1 1 2 20 ] //: comment g71 @(258,677) /sn:0 //: /line:"1" //: /end _GGMUX8 #(20, 20) g15 (.I0(w45), .I1(w7), .I2(w7), .I3(w1), .I4(w1), .I5(w59), .I6(w3), .I7(w10), .S(w20), .Z(w6)); //: @(500,649) /sn:0 /w:[ 1 5 3 0 3 1 1 1 3 1 ] /ss:0 /do:0 assign w38 = f[3]; //: TAP g31 @(748,351) /sn:0 /R:1 /w:[ 0 11 12 ] /ss:1 //: joint g20 (Ci) @(697, 376) /w:[ 5 -1 6 8 ] //: comment g68 @(618,766) /sn:0 //: /line:"mux " //: /end //: comment g67 @(643,738) /sn:0 //: /line:"1" //: /end //: joint g39 (w9) @(299, 623) /w:[ -1 1 2 4 ] //: joint g48 (w21) @(657, 614) /w:[ 6 -1 5 8 ] //: joint g43 (w42) @(779, 672) /w:[ 2 4 -1 1 ] //: comment g73 @(258,645) /sn:0 //: /line:"0" //: /end assign w14 = f[3]; //: TAP g17 @(512,351) /sn:0 /R:1 /w:[ 0 7 8 ] /ss:1 //: joint g25 (w9) @(299, 746) /w:[ 6 5 -1 8 ] //: IN g29 (Di) @(724,454) /sn:0 /R:3 /w:[ 0 ] //: joint g62 (Ci) @(1076, 376) /w:[ 1 -1 2 12 ] //: joint g42 (w21) @(644, 614) /w:[ 4 -1 3 10 ] //: joint g52 (A) @(365, 319) /w:[ 2 1 -1 20 ] //: joint g63 (B) @(566, 303) /w:[ 9 -1 10 12 ] //: comment g74 @(526,620) /sn:0 //: /line:"7" //: /end z g5 (.A(A), .B(B), .f(w22), .Ci(Ci), .Co(w3)); //: @(1001, 445) /sz:(64, 53) /sn:0 /p:[ Ti0>11 Ti1>21 Ti2>1 Ri0>13 Lo0<0 ] ltgt g14 (.A(A), .B(B), .f(w14), .Ci(Ci), .Co(w45)); //: @(503, 445) /sz:(74, 71) /sn:0 /p:[ Ti0>19 Ti1>13 Ti2>1 Ri0>7 Lo0<0 ] //: joint g56 (A) @(924, 319) /w:[ 10 -1 9 12 ] //: comment g80 @(750,669) /sn:0 //: /line:"0" //: /end //: comment g79 @(665,621) /sn:0 //: /line:"7" //: /end //: joint g47 (w44) @(799, 658) /w:[ 4 -1 3 6 ] //: GROUND g44 (w1) @(509,539) /sn:0 /w:[ 5 ] //: joint g21 (w20) @(595, 698) /w:[ 6 8 5 -1 ] _GGMUX2 #(8, 8) g24 (.I0(w12), .I1(w49), .S(w9), .Z(O)); //: @(631,767) /sn:0 /w:[ 1 1 9 1 ] /ss:0 /do:0 //: joint g36 (Ci) @(969, 376) /w:[ 3 -1 4 10 ] //: GROUND g23 (w12) @(592,752) /sn:0 /w:[ 0 ] assign w5 = f[3]; //: TAP g41 @(1109,351) /sn:0 /R:1 /w:[ 0 17 18 ] /ss:1 //: comment g81 @(771,697) /sn:0 //: /line:"mux " //: /end _GGBUF #(4) g40 (.I(w5), .Z(w10)); //: @(1109,431) /sn:0 /R:3 /w:[ 1 0 ] //: joint g54 (A) @(645, 319) /w:[ 6 -1 5 16 ] //: joint g60 (B) @(666, 303) /w:[ 7 -1 8 14 ] //: comment g70 @(611,738) /sn:0 //: /line:"0" //: /end //: comment g46 @(389,716) /sn:0 //: /line:"1" //: /end as g0 (.A(A), .B(B), .f(w0), .Ci(Ci), .Co(w59), .O(w13), .SUM(w2)); //: @(887, 441) /sz:(71, 65) /sn:0 /p:[ Ti0>13 Ti1>19 Ti2>1 Ri0>11 Lo0<0 Bo0<1 Bo1<1 ] //: OUT g22 (O) @(631,810) /sn:0 /R:3 /w:[ 0 ] //: GROUND g26 (w21) @(598,626) /sn:0 /w:[ 15 ] //: joint g35 (w44) @(759, 658) /w:[ 2 -1 1 8 ] //: joint g45 (w1) @(496, 621) /w:[ 2 4 -1 1 ] //: comment g82 @(809,670) /sn:0 //: /line:"7" //: /end //: comment g66 @(357,716) /sn:0 //: /line:"0" //: /end //: OUT g12 (Co) @(153,668) /sn:0 /R:2 /w:[ 0 ] assign w33 = f[3]; //: TAP g18 @(622,351) /sn:0 /R:1 /w:[ 0 9 10 ] /ss:1 //: OUT g30 (Do) @(837,488) /sn:0 /R:3 /w:[ 0 ] assign w0 = f[3]; //: TAP g33 @(898,351) /sn:0 /R:1 /w:[ 0 13 14 ] /ss:1 //: comment g49 @(364,744) /sn:0 //: /line:"mux " //: /end endmodule //: /netlistEnd //: /netlistBegin alu_test module alu_test(); //: interface /sz:(40, 40) /bd:[ ] /pd: 0 /pi: 0 /pe: 1 /pp: 1 reg w19; //: /sn:0 {0}(391,287)(444,287){1} reg [3:0] w3; //: /sn:0 {0}(#:497,57)(497,85){1} //: {2}(#:499,87)(565,87)(565,62){3} //: {4}(#:495,87)(438,87)(438,55){5} //: {6}(497,89)(#:497,119){7} reg [4:0] w27; //: /sn:0 {0}(#:329,150)(329,193){1} //: {2}(331,195)(452,195){3} //: {4}(456,195)(545,195){5} //: {6}(549,195)(638,195){7} //: {8}(642,195)(732,195)(#:732,233){9} //: {10}(640,197)(640,233){11} //: {12}(547,197)(547,233){13} //: {14}(#:454,197)(454,233){15} //: {16}(#:327,195)(273,195)(273,146){17} reg w9; //: /sn:0 {0}(830,256)(802,256){1} reg [3:0] w26; //: /sn:0 {0}(#:797,65)(797,92){1} //: {2}(#:799,94)(870,94)(870,72){3} //: {4}(#:795,94)(738,94)(738,64){5} //: {6}(797,96)(#:797,133){7} wire w6; //: /sn:0 {0}(733,377)(733,362)(485,362)(485,316){1} wire w7; //: /sn:0 {0}(379,323)(379,331)(458,331)(458,316){1} wire w14; //: /sn:0 {0}(812,139)(812,194)(788,194)(788,233){1} wire w16; //: /sn:0 {0}(551,331)(551,316){1} wire w4; //: /sn:0 {0}(537,256)(524,256){1} wire w15; //: /sn:0 {0}(743,377)(743,352)(578,352)(578,316){1} wire w21; //: /sn:0 {0}(736,331)(736,316){1} wire [3:0] w31; //: /sn:0 {0}(#:694,406)(694,416)(746,416){1} //: {2}(#:750,416)(804,416)(804,408){3} //: {4}(#:748,414)(#:748,383){5} wire w28; //: /sn:0 {0}(644,331)(644,316){1} wire w24; //: /sn:0 {0}(502,125)(502,156)(668,156)(668,233){1} wire w23; //: /sn:0 {0}(911,270)(911,289)(802,289){1} wire w20; //: /sn:0 {0}(722,256)(710,256){1} wire w1; //: /sn:0 {0}(782,139)(782,170)(510,170)(510,233){1} wire w25; //: /sn:0 {0}(802,139)(802,185)(696,185)(696,233){1} wire w18; //: /sn:0 {0}(722,287)(710,287){1} wire w8; //: /sn:0 {0}(537,287)(524,287){1} wire w22; //: /sn:0 {0}(763,377)(763,316){1} wire w17; //: /sn:0 {0}(630,287)(617,287){1} wire w12; //: /sn:0 {0}(512,125)(512,151)(760,151)(760,233){1} wire w2; //: /sn:0 {0}(482,125)(482,233){1} wire w11; //: /sn:0 {0}(492,125)(492,165)(575,165)(575,233){1} wire w10; //: /sn:0 {0}(792,139)(792,177)(603,177)(603,233){1} wire w13; //: /sn:0 {0}(630,256)(617,256){1} wire w5; //: /sn:0 {0}(411,234)(411,255)(444,255){1} wire w29; //: /sn:0 {0}(753,377)(753,344)(671,344)(671,316){1} //: enddecls //: SWITCH g8 (w9) @(848,256) /sn:0 /R:2 /w:[ 0 ] /st:0 /dn:0 alu g4 (.A(w24), .B(w25), .f(w27), .Di(w17), .Ci(w20), .Co(w13), .O(w28), .Y(w29), .Do(w18)); //: @(631, 234) /sz:(78, 81) /sn:0 /p:[ Ti0>1 Ti1>1 Ti2>11 Li0>0 Ri0>1 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: LED g13 (w23) @(911,263) /sn:0 /w:[ 0 ] /type:0 alu g3 (.A(w12), .B(w14), .f(w27), .Di(w18), .Ci(w9), .Co(w20), .O(w21), .Y(w22), .Do(w23)); //: @(723, 234) /sz:(78, 81) /sn:0 /p:[ Ti0>1 Ti1>1 Ti2>9 Li0>0 Ri0>1 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: joint g2 (w27) @(640, 195) /w:[ 8 -1 7 10 ] alu g1 (.A(w11), .B(w10), .f(w27), .Di(w8), .Ci(w13), .Co(w4), .O(w16), .Y(w15), .Do(w17)); //: @(538, 234) /sz:(78, 81) /sn:0 /p:[ Ti0>1 Ti1>1 Ti2>13 Li0>0 Ri0>1 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: LED g16 (w26) @(738,57) /sn:0 /w:[ 5 ] /type:1 //: LED g11 (w7) @(379,316) /sn:0 /w:[ 0 ] /type:0 //: joint g28 (w27) @(329, 195) /w:[ 2 1 16 -1 ] //: SWITCH g10 (w19) @(374,287) /sn:0 /w:[ 0 ] /st:0 /dn:0 //: LED g27 (w27) @(273,139) /sn:0 /w:[ 17 ] /type:1 //: joint g19 (w26) @(797, 94) /w:[ 2 1 4 6 ] assign {w1, w10, w25, w14} = w26; //: CONCAT g6 @(797,134) /sn:0 /R:1 /w:[ 0 0 0 0 7 ] /dr:0 /tp:0 /drp:0 //: LED g9 (w5) @(411,227) /sn:0 /w:[ 0 ] /type:0 assign {w2, w11, w24, w12} = w3; //: CONCAT g7 @(497,120) /sn:0 /R:1 /w:[ 0 0 0 0 7 ] /dr:0 /tp:0 /drp:0 //: LED g20 (w31) @(694,399) /sn:0 /w:[ 0 ] /type:1 //: DIP g15 (w26) @(797,55) /sn:0 /w:[ 0 ] /st:0 /dn:0 //: DIP g25 (w27) @(329,140) /sn:0 /w:[ 0 ] /st:0 /dn:0 //: LED g17 (w3) @(438,48) /sn:0 /w:[ 5 ] /type:1 //: DIP g14 (w3) @(497,47) /sn:0 /w:[ 0 ] /st:0 /dn:0 //: joint g5 (w27) @(547, 195) /w:[ 6 -1 5 12 ] //: joint g24 (w31) @(748, 416) /w:[ 2 4 1 -1 ] //: LED g21 (w3) @(565,55) /sn:0 /w:[ 3 ] /type:3 //: LED g23 (w31) @(804,401) /sn:0 /w:[ 3 ] /type:3 //: joint g26 (w27) @(454, 195) /w:[ 4 -1 3 14 ] //: LED g22 (w26) @(870,65) /sn:0 /w:[ 3 ] /type:3 alu g0 (.A(w2), .B(w1), .f(w27), .Di(w19), .Ci(w4), .Co(w5), .O(w7), .Y(w6), .Do(w8)); //: @(445, 234) /sz:(78, 81) /sn:0 /p:[ Ti0>1 Ti1>1 Ti2>15 Li0>1 Ri0>1 Lo0<1 Bo0<1 Bo1<1 Ro0<1 ] //: joint g18 (w3) @(497, 87) /w:[ 2 1 4 6 ] assign w31 = {w6, w15, w29, w22}; //: CONCAT g12 @(748,382) /sn:0 /R:3 /w:[ 5 0 0 0 0 ] /dr:1 /tp:0 /drp:1 endmodule //: /netlistEnd //: /netlistBegin shr module shr(B, Do, SHR, f, A, Di); //: interface /sz:(80, 60) /bd:[ Ti0>A(39/80) Ti1>B(69/80) Ti2>f(8/80) Li0>Di(29/60) Bo0E(14/151) Ti1>SRC[3:0](41/151) Ti2>DST[3:0](69/151) Ti3>ALU[4:0](98/151) Ti4>BUSi[31:0](129/151) Li0>Di(61/91) Ri0>Ci(27/91) Lo025 Ti1>25 Ti2>25 Ti3>25 Ti4>1 Li0>0 Ri0>1 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] ralu4 g8 (.E(E), .SRC(SRC), .DST(DST), .ALU(ALU), .BUSi(w70), .Di(w30), .Ci(w64), .Co(w26), .O(w74), .BUSo(w75), .Do(w63)); //: @(912, 233) /sz:(128, 86) /sn:0 /p:[ Ti0>21 Ti1>21 Ti2>21 Ti3>21 Ti4>1 Li0>0 Ri0>1 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] ralu4 g3 (.E(E), .SRC(SRC), .DST(DST), .ALU(ALU), .BUSi(w23), .Di(w25), .Ci(w26), .Co(w27), .O(w28), .BUSo(w29), .Do(w30)); //: @(778, 233) /sz:(128, 86) /sn:0 /p:[ Ti0>23 Ti1>23 Ti2>23 Ti3>23 Ti4>1 Li0>0 Ri0>1 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: joint g13 (E) @(1190, 210) /w:[ 14 -1 13 16 ] //: IN g34 (SRC) @(405,15) /sn:0 /R:3 /w:[ 0 ] //: joint g37 (DST) @(430, 189) /w:[ 2 1 -1 28 ] //: joint g2 (E) @(520, 210) /w:[ 4 -1 3 26 ] ralu4 g1 (.E(E), .SRC(SRC), .DST(DST), .ALU(ALU), .BUSi(w12), .Di(w10), .Ci(w17), .Co(w6), .O(w20), .BUSo(w19), .Do(w21)); //: @(510, 233) /sz:(128, 86) /sn:0 /p:[ Ti0>27 Ti1>27 Ti2>27 Ti3>27 Ti4>1 Li0>0 Ri0>1 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: joint g11 (E) @(922, 210) /w:[ 10 -1 9 20 ] //: joint g16 (SRC) @(941, 200) /w:[ 10 -1 9 20 ] //: joint g10 (E) @(788, 210) /w:[ 8 -1 7 22 ] //: joint g28 (DST) @(698, 189) /w:[ 6 -1 5 24 ] //: joint g19 (DST) @(1100, 189) /w:[ 12 -1 11 18 ] //: joint g27 (SRC) @(539, 200) /w:[ 4 -1 3 26 ] //: IN g32 (E) @(386,15) /sn:0 /R:3 /w:[ 0 ] ralu4 g6 (.E(E), .SRC(SRC), .DST(DST), .ALU(ALU), .BUSi(w52), .Di(w48), .Ci(Ci), .Co(w44), .O(w55), .BUSo(w56), .Do(Do)); //: @(1314, 233) /sz:(128, 86) /sn:0 /p:[ Ti0>15 Ti1>15 Ti2>15 Ti3>15 Ti4>1 Li0>0 Ri0>1 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: joint g38 (SRC) @(405, 200) /w:[ 2 1 -1 28 ] ralu4 g7 (.E(E), .SRC(SRC), .DST(DST), .ALU(ALU), .BUSi(w61), .Di(w63), .Ci(w45), .Co(w64), .O(w65), .BUSo(w66), .Do(w43)); //: @(1046, 233) /sz:(128, 86) /sn:0 /p:[ Ti0>19 Ti1>19 Ti2>19 Ti3>19 Ti4>1 Li0>0 Ri0>1 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: joint g9 (E) @(654, 210) /w:[ 6 -1 5 24 ] //: joint g15 (SRC) @(1075, 200) /w:[ 12 -1 11 18 ] //: joint g20 (DST) @(966, 189) /w:[ 10 -1 9 20 ] //: joint g31 (ALU) @(590, 176) /w:[ 4 -1 3 26 ] //: joint g39 (E) @(386, 210) /w:[ 2 1 -1 28 ] //: IN g43 (Di) @(343,287) /sn:0 /w:[ 0 ] //: OUT g48 (BUSo) @(1347,511) /sn:0 /R:3 /w:[ 0 ] //: joint g17 (SRC) @(807, 200) /w:[ 8 -1 7 22 ] //: joint g25 (ALU) @(858, 176) /w:[ 8 -1 7 22 ] //: joint g29 (DST) @(564, 189) /w:[ 4 -1 3 26 ] //: OUT g42 (Co) @(340,259) /sn:0 /R:2 /w:[ 0 ] ralu4 g5 (.E(E), .SRC(SRC), .DST(DST), .ALU(ALU), .BUSi(w41), .Di(w43), .Ci(w44), .Co(w45), .O(w46), .BUSo(w47), .Do(w48)); //: @(1180, 233) /sz:(128, 86) /sn:0 /p:[ Ti0>17 Ti1>17 Ti2>17 Ti3>17 Ti4>1 Li0>0 Ri0>1 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: joint g14 (SRC) @(1209, 200) /w:[ 14 -1 13 16 ] //: OUT g44 (O) @(397,361) /sn:0 /R:3 /w:[ 0 ] //: joint g21 (DST) @(832, 189) /w:[ 8 -1 7 22 ] //: joint g24 (ALU) @(992, 176) /w:[ 10 -1 9 20 ] //: joint g36 (ALU) @(456, 176) /w:[ 2 1 -1 28 ] //: joint g23 (ALU) @(1126, 176) /w:[ 12 -1 11 18 ] //: IN g41 (BUSi) @(1387,-15) /sn:0 /R:3 /w:[ 0 ] assign {w1, w12, w34, w23, w70, w61, w41, w52} = BUSi; //: CONCAT g40 @(1387,21) /sn:0 /R:1 /w:[ 0 0 0 0 0 0 0 0 1 ] /dr:0 /tp:0 /drp:0 ralu4 g0 (.E(E), .SRC(SRC), .DST(DST), .ALU(ALU), .BUSi(w1), .Di(Di), .Ci(w6), .Co(Co), .O(O), .BUSo(w8), .Do(w10)); //: @(376, 233) /sz:(128, 86) /sn:0 /p:[ Ti0>29 Ti1>29 Ti2>29 Ti3>29 Ti4>1 Li0>1 Ri0>1 Lo0<1 Bo0<1 Bo1<1 Ro0<1 ] //: joint g22 (ALU) @(1260, 176) /w:[ 14 -1 13 16 ] //: joint g26 (SRC) @(673, 200) /w:[ 6 -1 5 24 ] //: IN g35 (DST) @(430,15) /sn:0 /R:3 /w:[ 0 ] //: OUT g45 (Do) @(1482,287) /sn:0 /w:[ 0 ] //: IN g46 (Ci) @(1482,259) /sn:0 /R:2 /w:[ 0 ] //: joint g12 (E) @(1056, 210) /w:[ 12 -1 11 18 ] //: joint g18 (DST) @(1234, 189) /w:[ 14 -1 13 16 ] //: joint g30 (ALU) @(724, 176) /w:[ 6 -1 5 24 ] //: IN g33 (ALU) @(456,15) /sn:0 /R:3 /w:[ 0 ] assign BUSo = {w8, w19, w39, w29, w75, w66, w47, w56}; //: CONCAT g49 @(1347,475) /sn:0 /R:3 /w:[ 1 0 0 0 0 0 0 0 0 ] /dr:1 /tp:0 /drp:1 endmodule //: /netlistEnd //: /netlistBegin ralu4 module ralu4(Co, E, BUSo, Do, Di, ALU, BUSi, SRC, DST, O, Ci); //: interface /sz:(128, 86) /bd:[ Ti0>E(10/128) Ti1>SRC[3:0](29/128) Ti2>DST[3:0](54/128) Ti3>ALU[4:0](80/128) Ti4>BUSi[3:0](108/128) Li0>Di(54/86) Ri0>Ci(26/86) Lo09 Ti1>9 Ti2>9 Ti3>9 Ti4>0 Li0>0 Ri0>0 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: joint g8 (DST) @(560, 156) /w:[ 4 -1 3 10 ] ralu g3 (.E(E), .SRC(SRC), .DST(DST), .ALU(ALU), .BUSi(w17), .Di(w29), .Ci(Ci), .Co(w27), .O(w32), .BUSo(w31), .Do(Do)); //: @(835, 211) /sz:(167, 90) /sn:0 /p:[ Ti0>7 Ti1>7 Ti2>7 Ti3>7 Ti4>0 Li0>0 Ri0>1 Lo0<1 Bo0<1 Bo1<1 Ro0<1 ] assign {w4, w16, w34, w17} = BUSi; //: CONCAT g13 @(963,47) /sn:0 /R:1 /w:[ 1 1 1 1 1 ] /dr:0 /tp:0 /drp:0 //: joint g2 (E) @(677, 180) /w:[ 6 -1 5 8 ] ralu g1 (.E(E), .SRC(SRC), .DST(DST), .ALU(ALU), .BUSi(w16), .Di(w11), .Ci(w18), .Co(w6), .O(w20), .BUSo(w21), .Do(w23)); //: @(476, 211) /sz:(167, 90) /sn:0 /p:[ Ti0>11 Ti1>11 Ti2>11 Ti3>11 Ti4>0 Li0>0 Ri0>1 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: joint g11 (SRC) @(708, 138) /w:[ 6 -1 5 8 ] //: OUT g16 (Co) @(278,236) /sn:0 /R:2 /w:[ 1 ] //: joint g10 (SRC) @(528, 138) /w:[ 4 -1 3 10 ] //: joint g28 (E) @(319, 180) /w:[ 2 1 -1 12 ] assign BUSo = {w9, w21, w42, w31}; //: CONCAT g19 @(907,383) /sn:0 /R:3 /w:[ 0 0 0 0 0 ] /dr:1 /tp:0 /drp:1 //: IN g27 (E) @(319,13) /sn:0 /R:3 /w:[ 0 ] //: joint g6 (ALU) @(770, 169) /w:[ 6 -1 5 8 ] //: joint g7 (ALU) @(590, 169) /w:[ 4 -1 3 10 ] //: joint g9 (DST) @(740, 156) /w:[ 6 -1 5 8 ] //: OUT g15 (BUSo) @(907,418) /sn:0 /R:3 /w:[ 1 ] //: OUT g20 (Do) @(1030,273) /sn:0 /w:[ 0 ] //: IN g17 (Di) @(278,273) /sn:0 /w:[ 0 ] //: IN g25 (ALU) @(412,13) /sn:0 /R:3 /w:[ 0 ] //: joint g5 (E) @(497, 180) /w:[ 4 -1 3 10 ] //: IN g14 (BUSi) @(963,13) /sn:0 /R:3 /w:[ 0 ] //: IN g21 (SRC) @(350,13) /sn:0 /R:3 /w:[ 0 ] //: joint g24 (DST) @(382, 156) /w:[ 2 1 -1 12 ] //: IN g23 (DST) @(382,13) /sn:0 /R:3 /w:[ 0 ] ralu g0 (.E(E), .SRC(SRC), .DST(DST), .ALU(ALU), .BUSi(w4), .Di(Di), .Ci(w6), .Co(Co), .O(O), .BUSo(w9), .Do(w11)); //: @(298, 211) /sz:(167, 90) /sn:0 /p:[ Ti0>13 Ti1>13 Ti2>13 Ti3>13 Ti4>0 Li0>1 Ri0>1 Lo0<0 Bo0<0 Bo1<1 Ro0<1 ] //: joint g22 (SRC) @(350, 138) /w:[ 2 1 -1 12 ] //: joint g26 (ALU) @(412, 169) /w:[ 2 1 -1 12 ] //: OUT g12 (O) @(327,343) /sn:0 /R:3 /w:[ 1 ] //: IN g18 (Ci) @(1030,236) /sn:0 /R:2 /w:[ 0 ] endmodule //: /netlistEnd //: /netlistBegin alu32 module alu32(A, Co, rk, B, N, Z, Ci, F, Q, O); //: interface /sz:(40, 40) /bd:[ ] /pd: 0 /pi: 0 /pe: 1 /pp: 1 supply0 w32; //: /sn:0 {0}(211,670)(211,660)(245,660)(245,709){1} input [31:0] B; //: /sn:0 {0}(#:651,-18)(651,-71)(651,-71)(#:651,-122){1} supply0 w45; //: /sn:0 {0}(305,664)(305,661)(285,661)(285,709){1} supply0 w46; //: /sn:0 {0}(265,709)(265,589)(286,589)(286,590){1} input [7:0] F; //: /sn:0 {0}(#:59,143)(154,143){1} //: {2}(155,143)(176,143){3} //: {4}(177,143)(484,143){5} //: {6}(485,143)(528,143){7} //: {8}(529,143)(554,143){9} //: {10}(555,143)(569,143){11} //: {12}(570,143)(745,143){13} //: {14}(746,143)(766,143){15} //: {16}(767,143)(865,143){17} //: {18}(866,143)(886,143){19} //: {20}(887,143)(903,143){21} //: {22}(904,143)(1111,143){23} //: {24}(1112,143)(1119,143){25} supply0 w51; //: /sn:0 {0}(312,684)(312,681)(292,681)(292,709){1} output [31:0] Q; //: /sn:0 {0}(#:615,626)(615,650){1} //: {2}(613,652)(523,652)(523,871){3} //: {4}(615,654)(#:615,665){5} input [31:0] A; //: /sn:0 {0}(#:219,-21)(219,-72)(219,-72)(#:219,-122){1} output Z; //: /sn:0 {0}(826,871)(826,752)(630,752)(630,720){1} supply0 w31; //: /sn:0 {0}(414,518)(414,515)(394,515)(394,563){1} supply0 w28; //: /sn:0 {0}(399,471)(399,464)(381,464)(381,563){1} input [1:0] rk; //: /sn:0 {0}(#:677,-1)(690,-1){1} //: {2}(694,-1)(850,-1){3} //: {4}(854,-1)(977,-1){5} //: {6}(979,-3)(979,-61)(979,-61)(#:979,-122){7} //: {8}(979,1)(979,314)(#:945,314){9} //: {10}(852,1)(852,305)(#:825,305){11} //: {12}(692,1)(692,34){13} //: {14}(690,36)(464,36){15} //: {16}(460,36)(253,36)(253,-4)(#:245,-4){17} //: {18}(462,38)(462,212)(#:448,212){19} //: {20}(692,38)(692,274){21} //: {22}(690,276)(#:593,276){23} //: {24}(692,278)(692,675)(#:645,675){25} supply0 w30; //: /sn:0 {0}(421,538)(421,535)(401,535)(401,563){1} output Co; //: /sn:0 {0}(378,592)(378,731)(378,731)(378,871){1} output O; //: /sn:0 {0}(269,871)(269,804)(269,804)(269,738){1} input Ci; //: /sn:0 {0}(931,283)(931,230)(716,230){1} //: {2}(714,228)(714,53)(714,53)(714,-122){3} //: {4}(712,230)(504,230)(504,257)(448,257){5} supply0 w27; //: /sn:0 {0}(325,536)(325,526)(354,526)(354,563){1} supply0 w33; //: /sn:0 {0}(290,617)(290,610)(272,610)(272,709){1} supply0 w48; //: /sn:0 {0}(300,647)(300,637)(278,637)(278,709){1} supply0 w29; //: /sn:0 {0}(409,501)(409,491)(387,491)(387,563){1} output N; //: /sn:0 {0}(679,871)(679,795)(603,795)(603,720){1} wire w6; //: /sn:0 {0}(528,318)(528,450)(367,450)(367,563){1} wire [31:0] w7; //: /sn:0 {0}(598,597)(598,380)(#:404,380)(#:404,280){1} wire [31:0] w16; //: /sn:0 {0}(631,597)(631,505)(#:1293,505)(#:1293,245){1} wire [31:0] w15; //: /sn:0 {0}(638,597)(638,514)(#:1353,514)(#:1353,245){1} wire w4; //: /sn:0 {0}(555,243)(555,147){1} wire [31:0] w19; //: /sn:0 {0}(1201,295)(#:1201,314)(1206,314)(1206,329){1} wire w38; //: /sn:0 {0}(529,243)(529,147){1} wire [31:0] w0; //: /sn:0 {0}(#:1350,188)(1350,104)(1213,104){1} //: {2}(1209,104)(1080,104){3} //: {4}(1076,104)(954,104){5} //: {6}(950,104)(817,104){7} //: {8}(813,104)(653,104){9} //: {10}(#:651,102)(#:651,29){11} //: {12}(649,104)(623,104){13} //: {14}(619,104)(424,104){15} //: {16}(420,104)(259,104)(#:259,188){17} //: {18}(422,106)(422,157)(422,157)(#:422,188){19} //: {20}(621,106)(621,173){21} //: {22}(815,106)(815,174){23} //: {24}(952,106)(952,173){25} //: {26}(1078,106)(1078,143)(1078,143)(#:1078,188){27} //: {28}(1211,106)(1211,142)(1211,142)(#:1211,188){29} wire w3; //: /sn:0 {0}(448,235)(485,235)(485,147){1} wire w21; //: /sn:0 {0}(887,283)(887,147){1} wire [31:0] w43; //: /sn:0 {0}(#:920,351)(920,419){1} wire w54; //: /sn:0 {0}(793,419)(793,379)(897,379)(897,351){1} wire [63:0] w20; //: /sn:0 {0}(#:1196,289)(#:1196,245){1} wire [31:0] w23; //: /sn:0 {0}(#:942,202)(942,253)(909,253)(#:909,283){1} wire [31:0] w41; //: /sn:0 {0}(591,597)(591,394)(#:239,394)(239,254){1} wire [31:0] w24; //: /sn:0 {0}(900,419)(900,393)(#:808,393)(#:808,350){1} wire [31:0] w1; //: /sn:0 {0}(#:1293,188)(1293,74)(1176,74){1} //: {2}(1172,74)(1042,74){3} //: {4}(1038,74)(934,74){5} //: {6}(930,74)(797,74){7} //: {8}(793,74)(603,74){9} //: {10}(599,74)(#:386,74){11} //: {12}(382,74)(221,74){13} //: {14}(219,72)(#:219,26){15} //: {16}(219,76)(219,188){17} //: {18}(384,76)(384,139)(384,139)(#:384,188){19} //: {20}(601,76)(601,173){21} //: {22}(795,76)(795,174){23} //: {24}(932,76)(932,173){25} //: {26}(1040,76)(1040,128)(1040,128)(#:1040,188){27} //: {28}(1174,76)(1174,127)(1174,127)(#:1174,188){29} wire [31:0] w25; //: /sn:0 {0}(611,597)(611,476)(910,476)(#:910,448){1} wire [3:0] w40; //: /sn:0 {0}(#:177,147)(177,221)(198,221){1} wire w8; //: /sn:0 {0}(252,709)(252,419)(306,419)(306,250)(353,250){1} wire [31:0] w18; //: /sn:0 {0}(#:624,597)(624,495)(1196,495)(#:1196,358){1} wire w17; //: /sn:0 {0}(1112,147)(1112,345)(1173,345){1} wire w22; //: /sn:0 {0}(773,350)(773,419){1} wire w53; //: /sn:0 {0}(866,147)(866,433){1} //: {2}(868,435)(887,435){3} //: {4}(864,435)(806,435){5} wire [31:0] w11; //: /sn:0 {0}(618,597)(618,484)(#:1060,484)(#:1060,247){1} wire [31:0] w44; //: /sn:0 {0}(604,597)(604,365)(#:578,365)(#:578,318){1} wire w49; //: /sn:0 {0}(570,147)(570,189)(588,189){1} wire [31:0] w2; //: /sn:0 {0}(#:805,203)(#:805,283){1} wire w12; //: /sn:0 {0}(773,283)(773,201)(746,201)(746,147){1} wire w10; //: /sn:0 {0}(1283,214)(1259,214)(1259,56)(1134,56){1} //: {2}(1130,56)(1017,56){3} //: {4}(1013,56)(607,56){5} //: {6}(605,54)(605,-1)(620,-1){7} //: {8}(603,56)(176,56)(176,-4)(188,-4){9} //: {10}(1015,58)(1015,215)(1023,215){11} //: {12}(1132,58)(1132,217)(1156,217){13} wire [31:0] w13; //: /sn:0 {0}(#:1186,329)(1186,313)(1191,313)(1191,295){1} wire w5; //: /sn:0 {0}(258,709)(258,431)(555,431)(555,318){1} wire w52; //: /sn:0 {0}(767,147)(767,190)(782,190){1} wire w50; //: /sn:0 {0}(904,147)(904,189)(919,189){1} wire w9; //: /sn:0 {0}(361,563)(361,448)(321,448)(321,217)(353,217){1} wire [2:0] w42; //: /sn:0 {0}(#:155,147)(155,577){1} //: {2}(157,579)(355,579){3} //: {4}(#:155,581)(155,723){5} //: {6}(157,725)(246,725){7} //: {8}(155,727)(155,778)(470,778)(470,613)(592,613){9} wire w26; //: /sn:0 {0}(374,563)(374,463)(783,463)(783,448){1} wire [31:0] w39; //: /sn:0 {0}(#:611,202)(611,222)(577,222)(#:577,243){1} //: enddecls mul32 g4 (.A(w1), .B(w0), .sg(w10), .Q(w20)); //: @(1157, 189) /sz:(74, 55) /sn:0 /p:[ Ti0>29 Ti1>29 Li0>13 Bo0<1 ] //: IN g8 (A) @(219,-124) /sn:0 /R:3 /w:[ 1 ] assign w17 = F[0]; //: TAP g61 @(1112,141) /sn:0 /R:1 /w:[ 0 23 24 ] /ss:1 //: comment g86 @(214,868) /sn:0 //: /line:"overflow" //: /end logic32 g3 (.A(w1), .B(w0), .f(w40), .L(w41)); //: @(199, 189) /sz:(80, 64) /sn:0 /p:[ Ti0>17 Ti1>17 Li0>1 Bo0<1 ] //: joint g13 (rk) @(692, -1) /w:[ 2 -1 1 12 ] assign w50 = F[0]; //: TAP g34 @(904,141) /sn:0 /R:1 /w:[ 0 21 22 ] /ss:1 assign w42 = F[6:4]; //: TAP g37 @(155,141) /sn:0 /R:1 /w:[ 0 1 2 ] /ss:1 //: joint g51 (w10) @(1015, 56) /w:[ 3 -1 4 10 ] //: joint g55 (w0) @(1211, 104) /w:[ 1 -1 2 28 ] //: joint g58 (w42) @(155, 725) /w:[ 6 5 -1 8 ] //: comment g112 @(254,722) /sn:0 //: /line:"mux " //: /end //: comment g89 @(691,868) /sn:0 //: /line:"segno negativo" //: /end //: comment g111 @(366,579) /sn:0 //: /line:"mux " //: /end //: comment g110 @(765,407) /sn:0 //: /line:"0" //: /end div32 g2 (.A(w1), .B(w0), .sg(w10), .R(w16), .Q(w15)); //: @(1284, 189) /sz:(79, 55) /sn:0 /p:[ Ti0>0 Ti1>0 Li0>0 Bo0<1 Bo1<1 ] //: OUT g65 (Co) @(378,868) /sn:0 /R:3 /w:[ 1 ] assign w52 = F[0]; //: TAP g76 @(767,141) /sn:0 /R:1 /w:[ 0 15 16 ] /ss:1 assign w12 = F[1]; //: TAP g77 @(746,141) /sn:0 /R:1 /w:[ 1 13 14 ] /ss:1 assign {w13, w19} = w20; //: CONCAT g59 @(1196,290) /sn:0 /R:1 /w:[ 1 0 0 ] /dr:0 /tp:0 /drp:0 cmp32 g1 (.B(w0), .A(w1), .sg(w10), .M(w11)); //: @(1024, 189) /sz:(70, 57) /sn:0 /p:[ Ti0>27 Ti1>27 Li0>11 Bo0<1 ] _GGMUX2x32 #(8, 8) g72 (.I0(w1), .I1(w0), .S(w52), .Z(w2)); //: @(805,190) /sn:0 /w:[ 23 23 1 0 ] /ss:0 /do:0 //: comment g99 @(404,550) /sn:0 //: /line:"7" //: /end //: comment g98 @(237,696) /sn:0 //: /line:"0" //: /end //: joint g64 (Ci) @(714, 230) /w:[ 1 2 4 -1 ] //: comment g96 @(581,584) /sn:0 //: /line:"0" //: /end //: IN g11 (rk) @(979,-124) /sn:0 /R:3 /w:[ 7 ] assign w3 = F[0]; //: TAP g16 @(485,141) /sn:0 /R:1 /w:[ 1 5 6 ] /ss:1 //: comment g103 @(817,162) /sn:0 //: /line:"1" //: /end //: comment g87 @(390,868) /sn:0 //: /line:"carry in uscita" //: /end //: IN g10 (B) @(651,-124) /sn:0 /R:3 /w:[ 1 ] //: joint g28 (w10) @(605, 56) /w:[ 5 6 8 -1 ] //: GROUND g50 (w46) @(286,596) /sn:0 /w:[ 1 ] _GGMUX2 #(8, 8) g78 (.I0(w22), .I1(w54), .S(w53), .Z(w26)); //: @(783,435) /sn:0 /w:[ 1 0 5 1 ] /ss:1 /do:0 //: comment g113 @(601,611) /sn:0 //: /line:"mux " //: /end //: joint g19 (rk) @(462, 36) /w:[ 15 -1 16 18 ] //: joint g27 (rk) @(692, 36) /w:[ -1 13 14 20 ] //: joint g32 (w1) @(932, 74) /w:[ 5 -1 6 24 ] //: comment g102 @(921,407) /sn:0 //: /line:"1" //: /end //: comment g115 @(897,433) /sn:0 //: /line:"mux " //: /end assign w21 = F[1]; //: TAP g6 @(887,141) /sn:0 /R:1 /w:[ 1 19 20 ] /ss:1 //: GROUND g38 (w27) @(325,542) /sn:0 /w:[ 0 ] //: comment g69 @(-108,160) /sn:0 //: /line:"F:" //: /line:"" //: /line:"logic32" //: /line:"00000000 0" //: /line:"00000001 NOR" //: /line:"00000010 A'·B" //: /line:"00000011 A'" //: /line:"00000100 A·B'" //: /line:"00000101 B'" //: /line:"00000110 XOR" //: /line:"00000111 NAND" //: /line:"00001000 AND" //: /line:"00001001 NXOR" //: /line:"00001010 B" //: /line:"00001011 A'+B" //: /line:"00001100 A" //: /line:"00001101 A+B'" //: /line:"00001110 OR" //: /line:"00001111 1" //: /line:"" //: /line:"as32" //: /line:"00010000 A sum B" //: /line:"00010001 A minus B" //: /line:"" //: /line:"sh32" //: /line:"00100000 A << 1 logico" //: /line:"00100001 B << 1 logico" //: /line:"00100010 A >> 1 logico" //: /line:"00100011 B >> 1 logico" //: /line:"00100100 A << 1 aritmetico" //: /line:"00100101 B << 1 aritmetico" //: /line:"00100110 A >> 1 aritmetico" //: /line:"00100111 B >> 1 aritmetico" //: /line:"" //: /line:"ro32" //: /line:"00110000 A, rotazione a sinistra" //: /line:"00110001 B, rotazione a sinistra" //: /line:"00110010 A, rotazione a destra" //: /line:"00110011 B, rotazione a destra" //: /line:"" //: /line:"rc32" //: /line:"00110100 A, rotazione a sinistra con riporto" //: /line:"00110101 B, rotazione a sinistra con riporto" //: /line:"00110110 A, rotazione a destra con riporto" //: /line:"00110111 B, rotazione a destra con riporto" //: /line:"" //: /line:"cmp32" //: /line:"01000000 comparazione di A e B" //: /line:"" //: /line:"mul32" //: /line:"01010000 A x B, restituendo i 32 bit meno significativi" //: /line:"01010001 A x B, restituendo i 32 bit più significativi" //: /line:"" //: /line:"div32" //: /line:"01100000 A % B" //: /line:"01110000 A / B" //: /line:"" //: /line:"" //: /end //: comment g119 @(1183,343) /sn:0 //: /line:"mux " //: /end zn32 g7 (.D(Q), .rk(rk), .Z(Z), .N(N)); //: @(586, 666) /sz:(58, 53) /sn:0 /p:[ Ti0>5 Ri0>25 Bo0<1 Bo1<1 ] rk g9 (.in(A), .sg(w10), .rk(rk), .out(w1)); //: @(189, -20) /sz:(55, 45) /sn:0 /p:[ Ti0>0 Li0>9 Ri0>17 Bo0<15 ] //: joint g53 (w0) @(1078, 104) /w:[ 3 -1 4 26 ] _GGMUX8x32 #(20, 20) g57 (.I0(w41), .I1(w7), .I2(w44), .I3(w25), .I4(w11), .I5(w18), .I6(w16), .I7(w15), .S(w42), .Z(Q)); //: @(615,613) /sn:0 /w:[ 0 0 0 0 0 0 0 0 9 0 ] /ss:0 /do:0 //: joint g75 (w0) @(815, 104) /w:[ 7 -1 8 22 ] sh32 g15 (.A(w39), .la(w38), .lr(w4), .rk(rk), .C(w6), .O(w5), .S(w44)); //: @(514, 244) /sz:(78, 73) /sn:0 /p:[ Ti0>1 Ti1>0 Ti2>0 Ri0>23 Bo0<0 Bo1<1 Bo2<1 ] assign w38 = F[2]; //: TAP g20 @(529,141) /sn:0 /R:1 /w:[ 1 7 8 ] /ss:1 _GGMUX2x32 #(8, 8) g31 (.I0(w1), .I1(w0), .S(w50), .Z(w23)); //: @(942,189) /sn:0 /w:[ 25 25 1 0 ] /ss:0 /do:0 //: joint g71 (rk) @(852, -1) /w:[ 4 -1 3 10 ] //: GROUND g39 (w28) @(399,477) /sn:0 /w:[ 0 ] //: OUT g67 (N) @(679,868) /sn:0 /R:3 /w:[ 0 ] //: OUT g68 (Z) @(826,868) /sn:0 /R:3 /w:[ 0 ] //: GROUND g43 (w32) @(211,676) /sn:0 /w:[ 0 ] //: GROUND g48 (w48) @(300,653) /sn:0 /w:[ 0 ] //: comment g104 @(952,161) /sn:0 //: /line:"1" //: /end //: comment g88 @(537,868) /sn:0 //: /line:"risultato" //: /end //: joint g17 (w1) @(219, 74) /w:[ 13 14 -1 16 ] //: joint g25 (w1) @(384, 74) /w:[ 11 -1 12 18 ] //: joint g29 (w1) @(601, 74) /w:[ 9 -1 10 20 ] //: joint g62 (rk) @(692, 276) /w:[ -1 21 22 24 ] _GGMUX2x32 #(8, 8) g73 (.I0(w24), .I1(w43), .S(w53), .Z(w25)); //: @(910,435) /sn:0 /w:[ 0 1 3 1 ] /ss:0 /do:0 //: comment g107 @(1175,317) /sn:0 //: /line:"1" //: /end //: comment g106 @(640,584) /sn:0 //: /line:"7" //: /end //: GROUND g42 (w31) @(414,524) /sn:0 /w:[ 0 ] //: joint g52 (w1) @(1040, 74) /w:[ 3 -1 4 26 ] //: IN g63 (Ci) @(714,-124) /sn:0 /R:3 /w:[ 3 ] //: comment g83 @(23,111) /sn:0 //: /line:"funzione" //: /end //: comment g109 @(892,407) /sn:0 //: /line:"0" //: /end //: comment g100 @(293,697) /sn:0 //: /line:"7" //: /end //: joint g74 (w1) @(795, 74) /w:[ 7 -1 8 22 ] rc32 g5 (.A(w23), .Ci(Ci), .lr(w21), .rk(rk), .Co(w54), .S(w43)); //: @(874, 284) /sz:(70, 66) /sn:0 /p:[ Ti0>1 Ti1>0 Ti2>0 Ri0>9 Bo0<1 Bo1<0 ] //: IN g14 (F) @(57,143) /sn:0 /w:[ 0 ] //: joint g56 (w10) @(1132, 56) /w:[ 1 -1 2 12 ] //: comment g117 @(790,189) /sn:0 //: /line:"mux " //: /end //: comment g95 @(593,161) /sn:0 //: /line:"0" //: /end //: comment g94 @(924,162) /sn:0 //: /line:"0" //: /end //: GROUND g44 (w33) @(290,623) /sn:0 /w:[ 0 ] //: GROUND g47 (w51) @(312,690) /sn:0 /w:[ 0 ] assign w53 = F[2]; //: TAP g79 @(866,141) /sn:0 /R:1 /w:[ 0 17 18 ] /ss:1 //: joint g80 (w53) @(866, 435) /w:[ 2 1 4 -1 ] //: comment g105 @(623,161) /sn:0 //: /line:"1" //: /end //: comment g92 @(527,-140) /sn:0 //: /line:"secondo operando" //: /end //: comment g85 @(987,-120) /sn:0 //: /line:"rango richiesto:" //: /line:"0 = 8 bit" //: /line:"1 = 16 bit" //: /line:"2 = 24 bit" //: /line:"3 = 32 bit" //: /end //: comment g84 @(728,-142) /sn:0 //: /line:"carry precedente" //: /end assign w40 = F[3:0]; //: TAP g21 @(177,141) /sn:0 /R:1 /w:[ 0 3 4 ] /ss:1 assign w49 = F[0]; //: TAP g24 @(570,141) /sn:0 /R:1 /w:[ 0 11 12 ] /ss:1 _GGMUX8 #(20, 20) g36 (.I0(w27), .I1(w9), .I2(w6), .I3(w26), .I4(w28), .I5(w29), .I6(w31), .I7(w30), .S(w42), .Z(Co)); //: @(378,579) /sn:0 /w:[ 1 0 1 0 1 1 1 1 3 0 ] /ss:0 /do:0 _GGMUX2x32 #(8, 8) g23 (.I0(w1), .I1(w0), .S(w49), .Z(w39)); //: @(611,189) /sn:0 /w:[ 21 21 1 0 ] /ss:0 /do:0 //: GROUND g41 (w30) @(421,544) /sn:0 /w:[ 0 ] //: comment g116 @(930,186) /sn:0 //: /line:"mux " //: /end //: comment g101 @(794,407) /sn:0 //: /line:"1" //: /end //: comment g93 @(787,162) /sn:0 //: /line:"0" //: /end //: GROUND g40 (w29) @(409,507) /sn:0 /w:[ 0 ] //: joint g54 (w1) @(1174, 74) /w:[ 1 -1 2 28 ] _GGMUX2x32 #(8, 8) g60 (.I0(w19), .I1(w13), .S(w17), .Z(w18)); //: @(1196,345) /sn:0 /w:[ 1 0 1 1 ] /ss:0 /do:1 //: OUT g81 (Q) @(523,868) /sn:0 /R:3 /w:[ 3 ] //: comment g90 @(850,868) /sn:0 //: /line:"risultato pari a zero" //: /end //: joint g35 (rk) @(979, -1) /w:[ -1 6 5 8 ] as32 g0 (.A(w1), .B(w0), .rk(rk), .f(w3), .Ci(Ci), .Co(w9), .O(w8), .S(w7)); //: @(354, 189) /sz:(93, 90) /sn:0 /p:[ Ti0>19 Ti1>19 Ri0>19 Ri1>0 Ri2>5 Lo0<1 Lo1<1 Bo0<1 ] assign w4 = F[1]; //: TAP g22 @(555,141) /sn:0 /R:1 /w:[ 1 9 10 ] /ss:1 //: joint g26 (w0) @(621, 104) /w:[ 13 -1 14 20 ] //: GROUND g45 (w45) @(305,670) /sn:0 /w:[ 0 ] _GGMUX8 #(20, 20) g46 (.I0(w32), .I1(w8), .I2(w5), .I3(w46), .I4(w33), .I5(w48), .I6(w45), .I7(w51), .S(w42), .Z(O)); //: @(269,725) /sn:0 /w:[ 1 0 0 0 1 1 1 1 7 1 ] /ss:0 /do:0 ro32 g70 (.lr(w12), .A(w2), .rk(rk), .S(w24), .C(w22)); //: @(752, 284) /sz:(72, 65) /sn:0 /p:[ Ti0>0 Ti1>1 Ri0>11 Bo0<1 Bo1<0 ] //: comment g114 @(769,434) /sn:0 //: /line:"mux " //: /end //: comment g97 @(345,550) /sn:0 //: /line:"0" //: /end //: OUT g66 (O) @(269,868) /sn:0 /R:3 /w:[ 0 ] //: joint g82 (Q) @(615, 652) /w:[ -1 1 2 4 ] rk g12 (.in(B), .sg(w10), .rk(rk), .out(w0)); //: @(621, -17) /sz:(55, 45) /sn:0 /p:[ Ti0>0 Li0>7 Ri0>0 Bo0<11 ] //: joint g18 (w0) @(422, 104) /w:[ 15 -1 16 18 ] //: comment g108 @(1211,317) /sn:0 //: /line:"0" //: /end //: comment g91 @(235,-138) /sn:0 //: /line:"primo operando" //: /end //: joint g30 (w0) @(651, 104) /w:[ 9 10 12 -1 ] //: joint g33 (w0) @(952, 104) /w:[ 5 -1 6 24 ] //: comment g118 @(596,189) /sn:0 //: /line:"mux " //: /end //: joint g49 (w42) @(155, 579) /w:[ 2 1 -1 4 ] endmodule //: /netlistEnd //: /netlistBegin d module d(E, _Q, Q, D); //: interface /sz:(40, 40) /bd:[ Li0>D(17/40) Bi0>E(14/40) Ro0<_Q(31/40) Ro1A(37/71) Ti1>B(60/71) Ti2>f(11/71) Ri0>Ci(29/65) Lo09 Ti1>15 Ti2>15 Ti3>11 Ti4>1 Li0>0 Ri0>0 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: LED g37 (w3) @(570,-36) /sn:0 /w:[ 3 ] /type:3 //: joint g34 (w14) @(305, 138) /w:[ 8 7 18 -1 ] assign {w4, w16, w34, w17} = w12; //: CONCAT g13 @(963,58) /sn:0 /R:1 /w:[ 0 0 0 0 7 ] /dr:0 /tp:0 /drp:0 ralu g3 (.E(w1), .SRC(w14), .DST(w3), .ALU(w28), .BUSi(w17), .Di(w29), .Ci(w5), .Co(w27), .O(w32), .BUSo(w31), .Do(w33)); //: @(835, 211) /sz:(167, 90) /sn:0 /p:[ Ti0>7 Ti1>13 Ti2>13 Ti3>9 Ti4>1 Li0>0 Ri0>1 Lo0<1 Bo0<1 Bo1<1 Ro0<1 ] //: joint g2 (w1) @(656, 180) /w:[ 6 -1 5 8 ] ralu g1 (.E(w1), .SRC(w14), .DST(w3), .ALU(w28), .BUSi(w16), .Di(w11), .Ci(w18), .Co(w6), .O(w20), .BUSo(w21), .Do(w23)); //: @(434, 211) /sz:(167, 90) /sn:0 /p:[ Ti0>11 Ti1>17 Ti2>17 Ti3>13 Ti4>1 Li0>0 Ri0>1 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: SWITCH g16 (w5) @(1052,236) /sn:0 /R:2 /w:[ 0 ] /st:0 /dn:0 //: joint g11 (w14) @(687, 138) /w:[ 12 -1 11 14 ] //: joint g28 (w28) @(192, 156) /w:[ 2 1 16 -1 ] //: joint g10 (w14) @(486, 138) /w:[ 10 -1 9 16 ] //: LED g32 (w14) @(378,-28) /sn:0 /w:[ 3 ] /type:3 //: LED g27 (w28) @(136,100) /sn:0 /w:[ 17 ] /type:1 assign w19 = {w9, w21, w42, w31}; //: CONCAT g19 @(907,383) /sn:0 /R:3 /w:[ 5 0 0 0 0 ] /dr:1 /tp:0 /drp:1 //: joint g38 (w3) @(502, -4) /w:[ 2 1 4 6 ] //: joint g6 (w28) @(749, 169) /w:[ 8 -1 7 10 ] //: joint g9 (w3) @(719, 156) /w:[ 12 -1 11 14 ] //: joint g7 (w28) @(548, 169) /w:[ 6 -1 5 12 ] //: DIP g31 (w14) @(310,-36) /sn:0 /w:[ 0 ] /st:0 /dn:0 //: LED g20 (w19) @(840,390) /sn:0 /w:[ 0 ] /type:1 //: LED g15 (w7) @(145,211) /sn:0 /w:[ 1 ] /type:0 //: joint g39 (w3) @(441, 156) /w:[ 8 7 18 -1 ] //: joint g29 (w28) @(348, 173) /w:[ -1 4 3 14 ] //: joint g25 (w12) @(963, 40) /w:[ 2 4 1 6 ] //: LED g17 (w33) @(1091,240) /sn:0 /w:[ 0 ] /type:0 //: SWITCH g14 (w13) @(190,274) /sn:0 /w:[ 0 ] /st:0 /dn:0 //: joint g5 (w1) @(455, 180) /w:[ 4 -1 3 10 ] //: DIP g36 (w3) @(502,-44) /sn:0 /w:[ 0 ] /st:0 /dn:0 //: LED g24 (w12) @(1048,22) /sn:0 /w:[ 3 ] /type:3 //: LED g21 (w19) @(994,397) /sn:0 /w:[ 3 ] /type:3 //: joint g41 (w1) @(259, 180) /w:[ 2 1 12 -1 ] //: LED g23 (w12) @(894,15) /sn:0 /w:[ 0 ] /type:1 //: SWITCH g40 (w1) @(200,180) /sn:0 /w:[ 0 ] /st:0 /dn:0 //: LED g35 (w3) @(443,-43) /sn:0 /w:[ 5 ] /type:1 //: DIP g26 (w28) @(192,101) /sn:0 /w:[ 0 ] /st:0 /dn:0 //: joint g22 (w19) @(907, 415) /w:[ 2 4 1 -1 ] ralu g0 (.E(w1), .SRC(w14), .DST(w3), .ALU(w28), .BUSi(w4), .Di(w13), .Ci(w6), .Co(w7), .O(w8), .BUSo(w9), .Do(w11)); //: @(234, 211) /sz:(167, 90) /sn:0 /p:[ Ti0>13 Ti1>19 Ti2>19 Ti3>15 Ti4>1 Li0>1 Ri0>1 Lo0<0 Bo0<1 Bo1<1 Ro0<1 ] //: LED g18 (w8) @(191,303) /sn:0 /w:[ 0 ] /type:0 //: DIP g12 (w12) @(963,13) /sn:0 /w:[ 5 ] /st:0 /dn:0 //: joint g33 (w14) @(310, 4) /w:[ 2 1 4 6 ] //: LED g30 (w14) @(251,-35) /sn:0 /w:[ 5 ] /type:1 endmodule //: /netlistEnd //: /netlistBegin lt module lt(Ci, B, Co, A); //: interface /sz:(51, 48) /bd:[ Ti0>A(12/51) Ti1>B(38/51) Ri0>Ci(22/48) Lo0A(25/50) Ti1>B(41/50) Ti2>f[3:0](8/50) Bo0A(13/54) Ti1>B(40/54) Ri0>Ci(26/55) Lo0