1//: version "2.1" 2//: property encoding = "utf-8" 3//: property locale = "en" 4//: property prefix = "_GG" 5//: property title = "Standard Logic Microcircuits" 6//: property timingViolationMode = 2 7//: property initTime = "0 ns" 8//: require "74xx" 9 10`timescale 1ns/1ns 11 12//: /netlistBegin main 13module main; //: root_module 14reg [15:0] A_NET; //: {0}(#:80,174)(145,174)(145,174)(213,174){1} 15//: {2}(1:217,174)(271,174){3} 16//: {4}(#:215,176)(215,352)(268,352){5} 17reg [3:0] OP_NET; //: {0}(#:80,416)(91,416)(91,416)(109,416){1} 18//: {2}(-18:113,416)(268,416){3} 19//: {4}(111,414)(111,238)(271,238){5} 20reg w0; //: /sn:0 {0}(59,380)(105,380)(105,380)(149,380){1} 21//: {2}(151,378)(151,222)(271,222){3} 22//: {4}(151,382)(151,400)(268,400){5} 23reg w3; //: /sn:0 {0}(59,323)(111,323)(111,323)(163,323){1} 24//: {2}(165,321)(165,206)(271,206){3} 25//: {4}(165,325)(165,384)(268,384){5} 26reg [15:0] B_NET; //: {0}(#:80,228)(103,228)(64:103,190)(178,190){1} 27//: {2}(182,190)(271,190){3} 28//: {4}(#:180,192)(180,368)(268,368){5} 29wire [15:0] pulse; //: /sn:0 {0}(#:514,190)(415,190){1} 30wire [15:0] propagation; //: /sn:0 {0}(#:514,368)(466,368){1} 31wire w11; //: /sn:0 {0}(479,325)(479,352)(466,352){1} 32wire w5; //: /sn:0 {0}(415,174)(479,174)(479,148){1} 33//: enddecls 34 35 //: SWITCH M (w0) @(42,380) /w:[ 0 ] /st:0 /dn:1 36 //: joint g4 (A_NET) @(215, 174) /w:[ 2 -1 1 4 ] 37 //: joint g8 (w0) @(151, 380) /w:[ -1 2 1 4 ] 38 //: comment back_link @(11,11) /sn:0 /anc:1 39 //: /line:"<a href=\"../index.v\">[BACK]</a>" 40 //: /end 41 //: LED g1 (w5) @(479,141) /sn:0 /w:[ 1 ] /type:0 42 //: DIP B_DIP (B_NET) @(42,228) /R:1 /w:[ 0 ] /st:10818 /dn:1 43 //: DIP OP_DIP (OP_NET) @(42,416) /R:1 /w:[ 0 ] /st:2 /dn:1 44 //: LED g11 (propagation) @(521,368) /sn:0 /R:3 /w:[ 0 ] /type:2 45 //: LED g10 (w11) @(479,318) /sn:0 /w:[ 0 ] /type:0 46 ALU16_74181 ALU_OSC (.A(A_NET), .B(B_NET), .CI(w3), .M(w0), .S(OP_NET), .CO(w5), .F(pulse)); //: @(272, 158) /sz:(142, 96) /sn:0 /p:[ Li0>3 Li1>3 Li2>3 Li3>3 Li4>5 Ro0<0 Ro1<1 ] 47 //: LED g6 (pulse) @(521,190) /sn:0 /R:3 /w:[ 0 ] /type:2 48 //: joint g7 (w3) @(165, 323) /w:[ -1 2 1 4 ] 49 //: joint g9 (OP_NET) @(111, 416) /w:[ 2 4 1 -1 ] 50 //: comment REF_ARITH @(230,7) /sn:0 /anc:1 51 //: /line:"Arithmetic (M=0)" 52 //: /line:"<b>A</b>" 53 //: /line:"<b>A</b> OR <b>B</b>" 54 //: /line:"<b>A</b> OR NOT <b>B</b>" 55 //: /line:"(<b>A</b> OR <b>B</b>)+(<b>A</b> AND NOT <b>B</b>)" 56 //: /line:"<b>A</b> - <b>B</b> - 1" 57 //: /line:"<b>A</b> + <b>B</b>" 58 //: /line:"<b>A</b> AND <b>B</b> - 1" 59 //: /line:"<b>A</b> OR <b>B</b>" 60 //: /end 61 //: SWITCH CI (w3) @(42,323) /w:[ 0 ] /st:1 /dn:1 62 //: joint g5 (B_NET) @(180, 190) /w:[ 2 -1 1 4 ] 63 //: comment REF_LOGIC @(90,7) /sn:0 /anc:1 64 //: /line:"Logical (M=1)" 65 //: /line:"00 - NOT <b>A</b>" 66 //: /line:"01 - <b>A</b> NOR <b>B</b>" 67 //: /line:"02 - NOT <b>A</b> AND <b>B</b>" 68 //: /line:"05 - NOT <b>B</b>" 69 //: /line:"06 - <b>A</b> XOR <b>B</b>" 70 //: /line:"09 - <b>A</b> XNOR <b>B</b>" 71 //: /line:"0B - <b>A</b> AND <b>B</b>" 72 //: /line:"0E - <b>A</b> OR <b>B</b>" 73 //: /end 74 //: DIP A_DIP (A_NET) @(42,174) /R:1 /w:[ 0 ] /st:28555 /dn:1 75 ALU16_74181_74182 ALU_PROP (.A(A_NET), .B(B_NET), .CI(w3), .M(w0), .OP(OP_NET), .CO(w11), .F(propagation)); //: @(269, 336) /sz:(196, 96) /sn:0 /p:[ Li0>5 Li1>5 Li2>5 Li3>5 Li4>3 Ro0<1 Ro1<1 ] 76 77endmodule 78//: /netlistEnd 79 80//: /netlistBegin ALU16_74181 81module ALU16_74181(F, S, M, B, CI, CO, A); 82//: interface /sz:(142, 96) /bd:[ Li0>A[15:0](16/96) Li1>B[15:0](32/96) Li2>CI(48/96) Li3>M(64/96) Li4>S[3:0](80/96) Ro0<CO(16/96) Ro1<F[15:0](32/96) ] /pd: 0 /pi: 0 /pe: 1 /pp: 1 83input M; //: {0}(425,559)(258,559)(258,657)(18,657)(18,566){1} 84//: {2}(20,564)(70,564)(70,559)(120,559){3} 85//: {4}(18,562)(18,370){5} 86//: {6}(18,366)(18,327){7} 87//: {8}(20,325)(335,325)(335,188)(425,188){9} 88//: {10}(18,323)(18,188)(120,188){11} 89//: {12}(16,368)(-114,368)(-114,369)(99:-147,369){13} 90input [15:0] B; //: /sn:0 {0}(#:-90,505)(-111,505)(-111,506)(#:-147,506){1} 91output [15:0] F; //: /sn:0 {0}(50:746,254)(715,254)(715,254)(#:689,254){1} 92input [15:0] A; //: {0}(#:80:-147,79)(-117,79)(-117,79)(#:58:-86,79){1} 93output CO; //: /sn:0 {0}(746,491)(633,491)(633,495)(520,495){1} 94input CI; //: /sn:0 {0}(120,172)(112,172)(112,172)(-147,172){1} 95input [3:0] S; //: {0}(#:70:-147,290)(-125,290)(-125,290)(-105,290){1} 96//: {2}(-101,290)(321,290){3} 97//: {4}(#:70:323,288)(323,229)(#:371,229){5} 98//: {6}(323,292)(323,596)(#:375,596){7} 99//: {8}(#:70:-103,288)(-103,230)(#:69,230){9} 100//: {10}(#:70:-103,292)(-103,604)(#:64,604){11} 101wire [3:0] w6; //: /sn:0 {0}(#:-84,520)(-68,520)(-68,662)(340,662)(340,500)(#:372,500){1} 102wire w32; //: /sn:0 {0}(120,463)(89,463)(89,458)(66,458){1} 103wire [3:0] w7; //: /sn:0 {0}(#:64,510)(-84,510){1} 104wire w45; //: /sn:0 {0}(120,236)(94,236)(94,235)(75,235){1} 105wire [3:0] w96; //: /sn:0 {0}(#:585,434)(596,434)(596,269)(683,269){1} 106wire w46; //: /sn:0 {0}(120,220)(94,220)(94,225)(75,225){1} 107wire w99; //: /sn:0 {0}(579,419)(543,419)(543,415)(520,415){1} 108wire w61; //: /sn:0 {0}(520,108)(535,108){1} 109wire w60; //: /sn:0 {0}(120,543)(39,543)(39,370)(552,370)(552,124)(520,124){1} 110wire w56; //: /sn:0 {0}(425,60)(404,60)(404,64)(377,64){1} 111wire w16; //: /sn:0 {0}(215,124)(246,124)(246,172)(425,172){1} 112wire w14; //: /sn:0 {0}(215,156)(230,156){1} 113wire w19; //: /sn:0 {0}(573,64)(528,64)(528,60)(520,60){1} 114wire [3:0] w89; //: /sn:0 {0}(#:272,67)(292,67)(292,7)(654,7)(654,239)(#:683,239){1} 115wire w81; //: /sn:0 {0}(520,511)(535,511){1} 116wire w15; //: /sn:0 {0}(215,140)(230,140){1} 117wire w38; //: /sn:0 {0}(215,495)(289,495)(289,543)(425,543){1} 118wire w106; //: /sn:0 {0}(267,428)(239,428)(239,415)(215,415){1} 119wire w69; //: /sn:0 {0}(425,575)(395,575)(395,581)(381,581){1} 120wire w51; //: /sn:0 {0}(425,140)(406,140)(406,136)(377,136){1} 121wire w3; //: /sn:0 {0}(425,447)(380,447)(380,442)(373,442){1} 122wire [3:0] w97; //: /sn:0 {0}(#:60,443)(-22,443)(-22,84)(#:-80,84){1} 123wire w0; //: /sn:0 {0}(120,252)(96,252)(96,245)(75,245){1} 124wire w64; //: /sn:0 {0}(120,44)(95,44)(95,49)(75,49){1} 125wire w66; //: /sn:0 {0}(425,236)(397,236)(397,234)(377,234){1} 126wire w37; //: /sn:0 {0}(215,511)(230,511){1} 127wire w104; //: /sn:0 {0}(579,429)(533,429)(533,431)(520,431){1} 128wire w63; //: /sn:0 {0}(425,252)(398,252)(398,244)(377,244){1} 129wire w34; //: /sn:0 {0}(120,431)(99,431)(99,438)(66,438){1} 130wire w76; //: /sn:0 {0}(70,515)(95,515)(95,511)(120,511){1} 131wire [3:0] w21; //: /sn:0 {0}(#:683,249)(643,249)(643,69)(#:579,69){1} 132wire w87; //: /sn:0 {0}(266,82)(240,82)(240,92)(215,92){1} 133wire w67; //: /sn:0 {0}(425,220)(411,220)(411,224)(377,224){1} 134wire w54; //: /sn:0 {0}(120,623)(91,623)(91,619)(70,619){1} 135wire w58; //: /sn:0 {0}(520,156)(535,156){1} 136wire w31; //: /sn:0 {0}(120,479)(79,479)(79,495)(70,495){1} 137wire w20; //: /sn:0 {0}(120,140)(109,140)(109,139)(75,139){1} 138wire w41; //: /sn:0 {0}(425,92)(400,92)(400,84)(377,84){1} 139wire w24; //: /sn:0 {0}(425,156)(399,156)(399,146)(377,146){1} 140wire w36; //: /sn:0 {0}(215,527)(230,527){1} 141wire w1; //: /sn:0 {0}(75,215)(94,215)(94,204)(120,204){1} 142wire [3:0] S0; //: {0}(#:367,437)(332,437)(332,359)(70:-68,359)(-68,94)(#:-80,94){1} 143wire w25; //: /sn:0 {0}(378,505)(406,505)(406,511)(425,511){1} 144wire w82; //: /sn:0 {0}(425,623)(397,623)(397,611)(381,611){1} 145wire w65; //: /sn:0 {0}(120,495)(93,495)(93,505)(70,505){1} 146wire w98; //: /sn:0 {0}(267,458)(237,458)(237,463)(215,463){1} 147wire [3:0] w8; //: /sn:0 {0}(#:371,131)(308,131)(308,281)(-32,281)(-32,500)(-84,500){1} 148wire w18; //: /sn:0 {0}(120,124)(96,124)(96,129)(75,129){1} 149wire w103; //: /sn:0 {0}(267,448)(228,448)(228,447)(215,447){1} 150wire w92; //: /sn:0 {0}(573,84)(538,84)(538,92)(520,92){1} 151wire w91; //: /sn:0 {0}(573,74)(524,74)(524,76)(520,76){1} 152wire w35; //: /sn:0 {0}(120,415)(86,415)(86,428)(66,428){1} 153wire w71; //: /sn:0 {0}(425,607)(406,607)(406,601)(381,601){1} 154wire w68; //: /sn:0 {0}(425,204)(396,204)(396,214)(377,214){1} 155wire w101; //: /sn:0 {0}(579,439)(535,439)(535,447)(520,447){1} 156wire w22; //: /sn:0 {0}(75,149)(91,149)(91,156)(120,156){1} 157wire w17; //: /sn:0 {0}(215,108)(230,108){1} 158wire w84; //: /sn:0 {0}(425,527)(394,527)(394,515)(378,515){1} 159wire w59; //: /sn:0 {0}(520,140)(535,140){1} 160wire w85; //: /sn:0 {0}(266,62)(226,62)(226,60)(215,60){1} 161wire [3:0] w62; //: /sn:0 {0}(#:273,443)(283,443)(283,382)(584,382)(584,259)(683,259){1} 162wire w2; //: /sn:0 {0}(120,108)(92,108)(92,119)(75,119){1} 163wire w49; //: /sn:0 {0}(120,607)(92,607)(92,609)(70,609){1} 164wire w44; //: /sn:0 {0}(70,599)(94,599)(94,591)(120,591){1} 165wire w57; //: /sn:0 {0}(425,44)(397,44)(397,54)(377,54){1} 166wire w12; //: /sn:0 {0}(75,59)(113,59)(113,60)(120,60){1} 167wire w11; //: /sn:0 {0}(120,76)(109,76)(109,69)(75,69){1} 168wire w77; //: /sn:0 {0}(70,525)(83,525)(83,527)(120,527){1} 169wire w105; //: /sn:0 {0}(579,449)(542,449)(542,463)(520,463){1} 170wire w70; //: /sn:0 {0}(425,591)(407,591)(407,591)(381,591){1} 171wire w83; //: /sn:0 {0}(520,479)(535,479){1} 172wire w78; //: /sn:0 {0}(425,431)(397,431)(397,432)(373,432){1} 173wire w10; //: /sn:0 {0}(120,92)(98,92)(98,79)(75,79){1} 174wire w94; //: /sn:0 {0}(267,438)(228,438)(228,431)(215,431){1} 175wire w27; //: /sn:0 {0}(377,116)(399,116)(399,108)(425,108){1} 176wire [3:0] w13; //: /sn:0 {0}(#:69,64)(-80,64){1} 177wire w5; //: /sn:0 {0}(373,452)(398,452)(398,463)(425,463){1} 178wire w95; //: /sn:0 {0}(573,54)(533,54)(533,44)(520,44){1} 179wire w86; //: /sn:0 {0}(266,72)(226,72)(226,76)(215,76){1} 180wire w48; //: /sn:0 {0}(266,52)(240,52)(240,44)(215,44){1} 181wire w52; //: /sn:0 {0}(377,126)(406,126)(406,124)(425,124){1} 182wire w33; //: /sn:0 {0}(120,447)(98,447)(98,448)(66,448){1} 183wire [3:0] w107; //: /sn:0 {0}(#:371,69)(316,69)(316,16)(-41,16)(-41,74)(#:-80,74){1} 184wire w47; //: /sn:0 {0}(425,479)(392,479)(392,485)(378,485){1} 185wire w29; //: /sn:0 {0}(378,495)(402,495)(402,495)(425,495){1} 186wire w80; //: /sn:0 {0}(520,527)(574,527){1} 187wire [3:0] w9; //: /sn:0 {0}(-84,490)(-13,490)(#:-13,134)(#:69,134){1} 188wire w42; //: /sn:0 {0}(120,575)(89,575)(89,589)(70,589){1} 189wire w79; //: /sn:0 {0}(425,415)(392,415)(392,422)(373,422){1} 190wire w55; //: /sn:0 {0}(425,76)(403,76)(403,74)(377,74){1} 191wire w39; //: /sn:0 {0}(215,479)(230,479){1} 192//: enddecls 193 194 //: joint g8 (S) @(323, 290) /w:[ -1 4 3 6 ] 195 //: OUT g4 (F) @(743,254) /sn:0 /w:[ 0 ] 196 assign {w77, w76, w65, w31} = w7; //: CONCAT g34 @(65,510) /sn:0 /R:2 /w:[ 0 0 1 1 0 ] /dr:0 /tp:1 /drp:0 197 //: joint g13 (S) @(-103, 290) /w:[ 2 8 1 10 ] 198 //: IN g3 (S) @(-149,290) /sn:0 /w:[ 0 ] 199 //: IN g2 (M) @(-149,369) /sn:0 /w:[ 13 ] 200 //: IN g1 (B) @(-149,506) /sn:0 /w:[ 1 ] 201 assign w89 = {w87, w86, w85, w48}; //: CONCAT g16 @(271,67) /sn:0 /w:[ 0 0 0 0 0 ] /dr:1 /tp:1 /drp:1 202 H74181 g11 (._A0(w35), ._A1(w34), ._A2(w33), ._A3(w32), ._B0(w31), ._B1(w65), ._B2(w76), ._B3(w77), .Cn(w60), .M(M), .S0(w42), .S1(w44), .S2(w49), .S3(w54), ._F0(w106), ._F1(w94), ._F2(w103), ._F3(w98), .AEB(w39), .CnP4(w38), ._G(w37), ._P(w36)); //: @(121, 399) /sz:(93, 240) /sn:0 /p:[ Li0>0 Li1>0 Li2>0 Li3>0 Li4>0 Li5>0 Li6>1 Li7>1 Li8>0 Li9>3 Li10>0 Li11>1 Li12>0 Li13>0 Ro0<1 Ro1<1 Ro2<1 Ro3<1 Ro4<0 Ro5<0 Ro6<0 Ro7<0 ] 203 assign {w10, w11, w12, w64} = w13; //: CONCAT g28 @(70,64) /sn:0 /R:2 /w:[ 1 1 0 1 0 ] /dr:0 /tp:1 /drp:0 204 assign {S0, w97, w107, w13} = A; //: CONCAT A_C @(-85,79) /sn:0 /R:2 /w:[ 1 1 1 1 1 ] /dr:0 /tp:1 /drp:0 205 H74181 g10 (._A0(w57), ._A1(w56), ._A2(w55), ._A3(w41), ._B0(w27), ._B1(w52), ._B2(w51), ._B3(w24), .Cn(w16), .M(M), .S0(w68), .S1(w67), .S2(w66), .S3(w63), ._F0(w95), ._F1(w19), ._F2(w91), ._F3(w92), .AEB(w61), .CnP4(w60), ._G(w59), ._P(w58)); //: @(426, 28) /sz:(93, 240) /sn:0 /p:[ Li0>0 Li1>0 Li2>0 Li3>0 Li4>1 Li5>1 Li6>0 Li7>0 Li8>1 Li9>9 Li10>0 Li11>0 Li12>0 Li13>0 Ro0<1 Ro1<1 Ro2<1 Ro3<1 Ro4<0 Ro5<1 Ro6<0 Ro7<0 ] 206 assign w21 = {w92, w91, w19, w95}; //: CONCAT g19 @(578,69) /sn:0 /w:[ 1 0 0 0 0 ] /dr:1 /tp:1 /drp:1 207 assign {w0, w45, w46, w1} = S; //: CONCAT g32 @(70,230) /sn:0 /R:2 /w:[ 1 1 1 0 9 ] /dr:0 /tp:1 /drp:0 208 //: joint g6 (M) @(18, 325) /w:[ 8 10 -1 7 ] 209 assign {w63, w66, w67, w68} = S; //: CONCAT g7 @(372,229) /sn:0 /R:2 /w:[ 1 1 1 1 5 ] /dr:0 /tp:1 /drp:0 210 H74181 g9 (._A0(w79), ._A1(w78), ._A2(w3), ._A3(w5), ._B0(w47), ._B1(w29), ._B2(w25), ._B3(w84), .Cn(w38), .M(M), .S0(w69), .S1(w70), .S2(w71), .S3(w82), ._F0(w99), ._F1(w104), ._F2(w101), ._F3(w105), .AEB(w83), .CnP4(CO), ._G(w81), ._P(w80)); //: @(426, 399) /sz:(93, 240) /sn:0 /p:[ Li0>0 Li1>0 Li2>0 Li3>1 Li4>0 Li5>1 Li6>1 Li7>0 Li8>1 Li9>0 Li10>0 Li11>0 Li12>0 Li13>0 Ro0<1 Ro1<1 Ro2<1 Ro3<1 Ro4<0 Ro5<1 Ro6<0 Ro7<0 ] 211 assign {w84, w25, w29, w47} = w6; //: CONCAT g15 @(373,500) /sn:0 /R:2 /w:[ 1 0 0 1 1 ] /dr:0 /tp:1 /drp:0 212 assign {w24, w51, w52, w27} = w8; //: CONCAT g31 @(372,131) /sn:0 /R:2 /w:[ 1 1 0 0 0 ] /dr:0 /tp:1 /drp:0 213 //: IN g20 (CI) @(-149,172) /sn:0 /w:[ 1 ] 214 assign {w5, w3, w78, w79} = S0; //: CONCAT g25 @(368,437) /sn:0 /R:2 /w:[ 0 1 1 1 0 ] /dr:0 /tp:1 /drp:0 215 //: joint g17 (M) @(18, 368) /w:[ -1 6 12 5 ] 216 H74181 g29 (._A0(w64), ._A1(w12), ._A2(w11), ._A3(w10), ._B0(w2), ._B1(w18), ._B2(w20), ._B3(w22), .Cn(CI), .M(M), .S0(w1), .S1(w46), .S2(w45), .S3(w0), ._F0(w48), ._F1(w85), ._F2(w86), ._F3(w87), .AEB(w17), .CnP4(w16), ._G(w15), ._P(w14)); //: @(121, 28) /sz:(93, 240) /sn:0 /p:[ Li0>0 Li1>1 Li2>0 Li3>0 Li4>0 Li5>0 Li6>0 Li7>1 Li8>0 Li9>11 Li10>1 Li11>0 Li12>0 Li13>0 Ro0<1 Ro1<1 Ro2<1 Ro3<1 Ro4<0 Ro5<0 Ro6<0 Ro7<0 ] 217 //: OUT g5 (CO) @(743,491) /sn:0 /w:[ 0 ] 218 assign {w82, w71, w70, w69} = S; //: CONCAT g14 @(376,596) /sn:0 /R:2 /w:[ 1 1 1 1 7 ] /dr:0 /tp:1 /drp:0 219 assign w62 = {w98, w103, w94, w106}; //: CONCAT g21 @(272,443) /sn:0 /w:[ 0 0 0 0 0 ] /dr:1 /tp:1 /drp:1 220 //: joint g24 (M) @(18, 564) /w:[ 2 4 -1 1 ] 221 assign F = {w96, w62, w21, w89}; //: CONCAT g23 @(688,254) /sn:0 /w:[ 1 1 1 0 1 ] /dr:1 /tp:1 /drp:1 222 assign w96 = {w105, w101, w104, w99}; //: CONCAT g22 @(584,434) /sn:0 /w:[ 0 0 0 0 0 ] /dr:1 /tp:1 /drp:1 223 //: IN g0 (A) @(-149,79) /sn:0 /w:[ 0 ] 224 assign {w41, w55, w56, w57} = w107; //: CONCAT g26 @(372,69) /sn:0 /R:2 /w:[ 1 1 1 1 0 ] /dr:0 /tp:1 /drp:0 225 assign {w54, w49, w44, w42} = S; //: CONCAT g18 @(65,604) /sn:0 /R:2 /w:[ 1 1 0 1 11 ] /dr:0 /tp:1 /drp:0 226 assign {w6, w7, w8, w9} = B; //: CONCAT B_C @(-89,505) /sn:0 /R:2 /w:[ 0 1 1 0 0 ] /dr:0 /tp:0 /drp:0 227 assign {w22, w20, w18, w2} = w9; //: CONCAT g33 @(70,134) /sn:0 /R:2 /w:[ 0 1 1 1 1 ] /dr:0 /tp:1 /drp:0 228 assign {w32, w33, w34, w35} = w97; //: CONCAT g30 @(61,443) /sn:0 /R:2 /w:[ 1 1 1 1 0 ] /dr:0 /tp:1 /drp:0 229 230endmodule 231//: /netlistEnd 232 233//: /netlistBegin ALU16_74181_74182 234module ALU16_74181_74182(CI, F, OP, B, M, CO, A); 235//: interface /sz:(196, 96) /bd:[ Li0>A[15:0](16/96) Li1>B[15:0](32/96) Li2>CI(48/96) Li3>M(64/96) Li4>OP[3:0](80/96) Ro0<CO(16/96) Ro1<F[15:0](32/96) ] /pd: 0 /pi: 0 /pe: 1 /pp: 1 236input M; //: /sn:0 {0}(689,368)(571,368)(571,185){1} 237//: {2}(571,181)(571,90)(689,90){3} 238//: {4}(569,183)(314,183){5} 239//: {6}(312,181)(312,87)(351,87){7} 240//: {8}(310,183)(14,183){9} 241//: {10}(312,185)(312,380)(347,380){11} 242input [15:0] B; //: /sn:0 {0}(#:50:105,553)(79,553)(79,553)(#:56,553){1} 243output [15:0] F; //: /sn:0 {0}(#:1017,62)(1053,62){1} 244input [15:0] A; //: /sn:0 {0}(#:14,18)(39,18)(39,18)(#:63,18){1} 245output CO; //: /sn:0 {0}(994,307)(799,307)(799,304)(784,304){1} 246input [3:0] OP; //: /sn:0 {0}(#:628,411)(595,411)(595,211){1} 247//: {2}(595,207)(595,130)(#:628,130){3} 248//: {4}(593,209)(220,209){5} 249//: {6}(218,207)(218,127)(#:242,127){7} 250//: {8}(216,209)(#:19,209){9} 251//: {10}(218,211)(218,421)(#:247,421){11} 252input CI; //: /sn:0 {0}(351,71)(325,71)(325,655){1} 253//: {2}(323,657)(135,657)(135,658)(58,658){3} 254//: {4}(325,659)(325,771)(727,771){5} 255wire w32; //: /sn:0 {0}(488,-28)(457,-28)(457,-25)(446,-25){1} 256wire w6; //: /sn:0 {0}(727,675)(485,675)(485,332)(442,332){1} 257wire w45; //: /sn:0 {0}(689,-54)(649,-54)(649,-42)(634,-42){1} 258wire w73; //: /sn:0 {0}(153,599)(118,599)(118,598)(111,598){1} 259wire w96; //: /sn:0 {0}(634,308)(662,308)(662,304)(689,304){1} 260wire w7; //: /sn:0 {0}(784,42)(851,42)(851,484)(697,484)(697,659)(727,659){1} 261wire w93; //: /sn:0 {0}(634,257)(654,257)(654,256)(689,256){1} 262wire w112; //: /sn:0 {0}(248,142)(335,142)(335,151)(351,151){1} 263wire w46; //: /sn:0 {0}(784,58)(861,58)(861,496)(659,496)(659,723)(727,723){1} 264wire w61; //: /sn:0 {0}(69,23)(207,23)(207,236)(347,236){1} 265wire w60; //: /sn:0 {0}(1011,97)(916,97){1} 266wire w99; //: /sn:0 {0}(689,352)(583,352)(583,565)(879,565)(879,675)(834,675){1} 267wire [3:0] w16; //: /sn:0 {0}(#:628,313)(550,313)(550,614)(#:159,614){1} 268wire [3:0] w14; //: /sn:0 {0}(#:125,78)(150,78)(150,199)(607,199)(607,252)(#:628,252){1} 269wire w56; //: /sn:0 {0}(916,67)(1011,67){1} 270wire w4; //: /sn:0 {0}(727,707)(507,707)(507,55)(446,55){1} 271wire w19; //: /sn:0 {0}(351,55)(298,55)(298,508)(111,508){1} 272wire w89; //: /sn:0 {0}(481,275)(472,275)(472,284)(442,284){1} 273wire w81; //: /sn:0 {0}(634,237)(643,237)(643,224)(689,224){1} 274wire w15; //: /sn:0 {0}(634,30)(665,30)(665,26)(689,26){1} 275wire w38; //: /sn:0 {0}(153,547)(113,547)(113,548)(111,548){1} 276wire w51; //: /sn:0 {0}(1011,47)(929,47)(929,-22)(784,-22){1} 277wire w69; //: /sn:0 {0}(111,558)(179,558)(179,300)(347,300){1} 278wire w106; //: /sn:0 {0}(1011,117)(964,117)(964,240)(784,240){1} 279wire w109; //: /sn:0 {0}(784,288)(799,288){1} 280wire w0; //: /sn:0 {0}(69,-17)(237,-17){1} 281wire w3; //: /sn:0 {0}(634,115)(661,115)(661,106)(689,106){1} 282wire w114; //: /sn:0 {0}(248,122)(340,122)(340,119)(351,119){1} 283wire w97; //: /sn:0 {0}(634,318)(657,318)(657,320)(689,320){1} 284wire w37; //: /sn:0 {0}(689,74)(561,74)(561,573)(857,573)(857,643)(834,643){1} 285wire w64; //: /sn:0 {0}(69,53)(172,53)(172,284)(347,284){1} 286wire w66; //: /sn:0 {0}(119,73)(69,73){1} 287wire w104; //: /sn:0 {0}(634,426)(670,426)(670,432)(689,432){1} 288wire w111; //: /sn:0 {0}(784,336)(794,336)(794,462)(638,462)(638,755)(727,755){1} 289wire w63; //: /sn:0 {0}(347,268)(183,268)(183,43)(69,43){1} 290wire w34; //: /sn:0 {0}(1011,-3)(977,-3){1} 291wire w75; //: /sn:0 {0}(153,619)(118,619)(118,618)(111,618){1} 292wire w21; //: /sn:0 {0}(111,488)(278,488)(278,23)(351,23){1} 293wire w43; //: /sn:0 {0}(237,3)(69,3){1} 294wire w76; //: /sn:0 {0}(153,629)(118,629)(118,628)(111,628){1} 295wire w87; //: /sn:0 {0}(481,255)(458,255)(458,252)(442,252){1} 296wire w102; //: /sn:0 {0}(634,406)(676,406)(676,400)(689,400){1} 297wire w54; //: /sn:0 {0}(347,412)(331,412)(331,416)(253,416){1} 298wire w67; //: /sn:0 {0}(119,83)(69,83){1} 299wire w90; //: /sn:0 {0}(442,300)(457,300){1} 300wire [3:0] w100; //: /sn:0 {0}(#:628,35)(538,35)(538,532)(#:159,532){1} 301wire w31; //: /sn:0 {0}(446,-9)(466,-9)(466,-18)(488,-18){1} 302wire w58; //: /sn:0 {0}(153,537)(113,537)(113,538)(111,538){1} 303wire w28; //: /sn:0 {0}(689,-22)(663,-22)(663,-22)(634,-22){1} 304wire w36; //: /sn:0 {0}(347,444)(329,444)(329,436)(253,436){1} 305wire w20; //: /sn:0 {0}(111,498)(287,498)(287,39)(351,39){1} 306wire w23; //: /sn:0 {0}(69,-27)(319,-27)(319,-9)(351,-9){1} 307wire w41; //: /sn:0 {0}(153,517)(113,517)(113,518)(111,518){1} 308wire w24; //: /sn:0 {0}(69,-37)(327,-37)(327,-25)(351,-25){1} 309wire [3:0] w1; //: /sn:0 {0}(#:243,-2)(272,-2)(272,-78)(613,-78)(613,-27)(#:628,-27){1} 310wire w108; //: /sn:0 {0}(784,272)(985,272)(985,137)(1011,137){1} 311wire w82; //: /sn:0 {0}(347,396)(328,396)(328,406)(253,406){1} 312wire w25; //: /sn:0 {0}(69,-47)(335,-47)(335,-41)(351,-41){1} 313wire w74; //: /sn:0 {0}(153,609)(118,609)(118,608)(111,608){1} 314wire w65; //: /sn:0 {0}(119,63)(69,63){1} 315wire w98; //: /sn:0 {0}(634,328)(644,328)(644,336)(689,336){1} 316wire [3:0] w116; //: /sn:0 {0}(#:494,-33)(559,-33)(559,-93)(963,-93)(963,2)(#:971,2){1} 317wire w35; //: /sn:0 {0}(689,-6)(649,-6)(649,-12)(634,-12){1} 318wire w8; //: /sn:0 {0}(727,643)(517,643)(517,39)(446,39){1} 319wire w91; //: /sn:0 {0}(442,316)(457,316){1} 320wire w103; //: /sn:0 {0}(634,416)(661,416)(661,416)(689,416){1} 321wire w18; //: /sn:0 {0}(634,50)(663,50)(663,58)(689,58){1} 322wire w40; //: /sn:0 {0}(153,527)(113,527)(113,528)(111,528){1} 323wire w92; //: /sn:0 {0}(634,247)(660,247)(660,240)(689,240){1} 324wire w71; //: /sn:0 {0}(347,332)(198,332)(198,578)(111,578){1} 325wire w101; //: /sn:0 {0}(634,396)(667,396)(667,384)(689,384){1} 326wire w30; //: /sn:0 {0}(446,7)(461,7){1} 327wire w68; //: /sn:0 {0}(119,93)(69,93){1} 328wire w17; //: /sn:0 {0}(634,40)(686,40)(686,42)(689,42){1} 329wire w22; //: /sn:0 {0}(351,7)(267,7)(267,478)(111,478){1} 330wire w53; //: /sn:0 {0}(1011,27)(951,27)(951,-54)(784,-54){1} 331wire w84; //: /sn:0 {0}(634,135)(672,135)(672,138)(689,138){1} 332wire [3:0] w117; //: /sn:0 {0}(#:487,260)(497,260)(497,176)(888,176)(888,82)(#:910,82){1} 333wire w59; //: /sn:0 {0}(1011,87)(916,87){1} 334wire w62; //: /sn:0 {0}(69,33)(195,33)(195,252)(347,252){1} 335wire w85; //: /sn:0 {0}(634,145)(664,145)(664,154)(689,154){1} 336wire w113; //: /sn:0 {0}(248,132)(345,132)(345,135)(351,135){1} 337wire w2; //: /sn:0 {0}(727,739)(473,739)(473,348)(442,348){1} 338wire w12; //: /sn:0 {0}(347,364)(227,364)(227,607)(867,607)(867,659)(834,659){1} 339wire w44; //: /sn:0 {0}(69,-7)(237,-7){1} 340wire w49; //: /sn:0 {0}(784,10)(799,10){1} 341wire w57; //: /sn:0 {0}(916,77)(1011,77){1} 342wire w11; //: /sn:0 {0}(488,-48)(467,-48)(467,-57)(446,-57){1} 343wire w115; //: /sn:0 {0}(248,112)(336,112)(336,103)(351,103){1} 344wire w83; //: /sn:0 {0}(634,125)(669,125)(669,122)(689,122){1} 345wire w70; //: /sn:0 {0}(347,316)(188,316)(188,568)(111,568){1} 346wire w105; //: /sn:0 {0}(1011,107)(952,107)(952,224)(784,224){1} 347wire w10; //: /sn:0 {0}(834,691)(849,691){1} 348wire w78; //: /sn:0 {0}(1011,-13)(977,-13){1} 349wire w27; //: /sn:0 {0}(689,-38)(656,-38)(656,-32)(634,-32){1} 350wire w72; //: /sn:0 {0}(111,588)(209,588)(209,348)(347,348){1} 351wire w88; //: /sn:0 {0}(481,265)(462,265)(462,268)(442,268){1} 352wire w94; //: /sn:0 {0}(634,267)(644,267)(644,272)(689,272){1} 353wire w13; //: /sn:0 {0}(977,7)(1011,7){1} 354wire w52; //: /sn:0 {0}(1011,37)(942,37)(942,-38)(784,-38){1} 355wire w86; //: /sn:0 {0}(481,245)(467,245)(467,236)(442,236){1} 356wire w95; //: /sn:0 {0}(634,298)(644,298)(644,288)(689,288){1} 357wire w5; //: /sn:0 {0}(727,691)(678,691)(678,470)(804,470)(804,320)(784,320){1} 358wire w33; //: /sn:0 {0}(488,-38)(458,-38)(458,-41)(446,-41){1} 359wire w48; //: /sn:0 {0}(784,26)(799,26){1} 360wire w29; //: /sn:0 {0}(446,23)(461,23){1} 361wire w47; //: /sn:0 {0}(347,428)(334,428)(334,426)(253,426){1} 362wire w107; //: /sn:0 {0}(1011,127)(975,127)(975,256)(784,256){1} 363wire w42; //: /sn:0 {0}(69,13)(237,13){1} 364wire w50; //: /sn:0 {0}(1011,57)(920,57)(920,-6)(784,-6){1} 365wire w9; //: /sn:0 {0}(834,707)(849,707){1} 366wire w39; //: /sn:0 {0}(634,20)(654,20)(654,10)(689,10){1} 367wire w26; //: /sn:0 {0}(69,-57)(351,-57){1} 368wire w55; //: /sn:0 {0}(977,17)(1011,17){1} 369//: enddecls 370 371 //: IN g4 (CI) @(56,658) /sn:0 /w:[ 3 ] 372 H74181 g8 (._A0(w26), ._A1(w25), ._A2(w24), ._A3(w23), ._B0(w22), ._B1(w21), ._B2(w20), ._B3(w19), .Cn(CI), .M(M), .S0(w115), .S1(w114), .S2(w113), .S3(w112), ._F0(w11), ._F1(w33), ._F2(w32), ._F3(w31), .AEB(w30), .CnP4(w29), ._G(w8), ._P(w4)); //: @(352, -73) /sz:(93, 240) /sn:0 /p:[ Li0>1 Li1>1 Li2>1 Li3>1 Li4>0 Li5>1 Li6>1 Li7>0 Li8>0 Li9>7 Li10>1 Li11>1 Li12>1 Li13>1 Ro0<1 Ro1<1 Ro2<1 Ro3<0 Ro4<0 Ro5<0 Ro6<1 Ro7<1 ] 373 assign w100 = {w38, w58, w40, w41}; //: CONCAT g34 @(158,532) /sn:0 /w:[ 1 0 0 0 0 ] /dr:1 /tp:1 /drp:1 374 //: OUT g3 (F) @(1050,62) /sn:0 /w:[ 1 ] 375 assign {w76, w75, w74, w73, w72, w71, w70, w69, w38, w58, w40, w41, w19, w20, w21, w22} = B; //: CONCAT g13 @(106,553) /sn:0 /R:2 /w:[ 1 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 ] /dr:0 /tp:1 /drp:0 376 //: IN g2 (OP) @(17,209) /sn:0 /w:[ 9 ] 377 //: IN g1 (B) @(54,553) /sn:0 /w:[ 1 ] 378 assign {w36, w47, w54, w82} = OP; //: CONCAT g16 @(248,421) /sn:0 /R:2 /w:[ 1 1 1 1 11 ] /dr:0 /tp:1 /drp:0 379 assign {w68, w67, w66, w65, w64, w63, w62, w61, w42, w43, w44, w0, w23, w24, w25, w26} = A; //: CONCAT g11 @(64,18) /sn:0 /R:2 /w:[ 1 1 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 ] /dr:0 /tp:1 /drp:0 380 assign {w35, w28, w27, w45} = w1; //: CONCAT g28 @(629,-27) /sn:0 /R:2 /w:[ 1 1 1 1 1 ] /dr:0 /tp:1 /drp:0 381 H74181 g10 (._A0(w45), ._A1(w27), ._A2(w28), ._A3(w35), ._B0(w39), ._B1(w15), ._B2(w17), ._B3(w18), .Cn(w37), .M(M), .S0(w3), .S1(w83), .S2(w84), .S3(w85), ._F0(w53), ._F1(w52), ._F2(w51), ._F3(w50), .AEB(w49), .CnP4(w48), ._G(w7), ._P(w46)); //: @(690, -70) /sz:(93, 240) /sn:0 /p:[ Li0>0 Li1>0 Li2>0 Li3>0 Li4>1 Li5>1 Li6>1 Li7>1 Li8>0 Li9>3 Li10>1 Li11>1 Li12>1 Li13>1 Ro0<1 Ro1<1 Ro2<1 Ro3<1 Ro4<0 Ro5<0 Ro6<0 Ro7<0 ] 382 assign {w98, w97, w96, w95} = w16; //: CONCAT g32 @(629,313) /sn:0 /R:2 /w:[ 0 0 0 0 0 ] /dr:0 /tp:1 /drp:0 383 assign w1 = {w42, w43, w44, w0}; //: CONCAT g27 @(242,-2) /sn:0 /w:[ 0 1 0 1 1 ] /dr:1 /tp:1 /drp:1 384 H74181 g19 (.S3(w36), .S2(w47), .S1(w54), .S0(w82), .M(M), .Cn(w12), ._B3(w72), ._B2(w71), ._B1(w70), ._B0(w69), ._A3(w64), ._A2(w63), ._A1(w62), ._A0(w61), ._P(w2), ._G(w6), .CnP4(w91), .AEB(w90), ._F3(w89), ._F2(w88), ._F1(w87), ._F0(w86)); //: @(348, 220) /sz:(93, 240) /sn:0 /p:[ Li0>0 Li1>0 Li2>0 Li3>0 Li4>11 Li5>0 Li6>1 Li7>0 Li8>0 Li9>1 Li10>1 Li11>0 Li12>1 Li13>1 Ro0<1 Ro1<1 Ro2<0 Ro3<0 Ro4<1 Ro5<1 Ro6<1 Ro7<1 ] 385 //: IN g6 (M) @(12,183) /sn:0 /w:[ 9 ] 386 H74182 g7 (._G0(w8), ._G1(w7), ._G2(w6), ._G3(w5), ._P0(w4), ._P1(w46), ._P2(w2), ._P3(w111), .Cn(CI), .CnPx(w37), .CnPy(w12), .CnPz(w99), ._G(w10), ._P(w9)); //: @(728, 627) /sz:(105, 160) /sn:0 /p:[ Li0>0 Li1>1 Li2>0 Li3>0 Li4>0 Li5>1 Li6>0 Li7>1 Li8>5 Ro0<1 Ro1<1 Ro2<1 Ro3<0 Ro4<0 ] 387 //: joint g9 (CI) @(325, 657) /w:[ -1 1 2 4 ] 388 //: joint g15 (OP) @(218, 209) /w:[ 5 6 8 10 ] 389 assign w16 = {w76, w75, w74, w73}; //: CONCAT g31 @(158,614) /sn:0 /w:[ 1 0 0 0 0 ] /dr:1 /tp:1 /drp:1 390 H74181 g20 (.S3(w104), .S2(w103), .S1(w102), .S0(w101), .M(M), .Cn(w99), ._B3(w98), ._B2(w97), ._B1(w96), ._B0(w95), ._A3(w94), ._A2(w93), ._A1(w92), ._A0(w81), ._P(w111), ._G(w5), .CnP4(CO), .AEB(w109), ._F3(w108), ._F2(w107), ._F1(w106), ._F0(w105)); //: @(690, 208) /sz:(93, 240) /sn:0 /p:[ Li0>1 Li1>1 Li2>1 Li3>1 Li4>0 Li5>0 Li6>1 Li7>1 Li8>1 Li9>1 Li10>1 Li11>1 Li12>1 Li13>1 Ro0<0 Ro1<1 Ro2<1 Ro3<0 Ro4<0 Ro5<1 Ro6<1 Ro7<1 ] 391 assign {w55, w13, w34, w78} = w116; //: CONCAT g25 @(972,2) /sn:0 /R:2 /w:[ 0 0 1 1 1 ] /dr:0 /tp:1 /drp:0 392 assign {w85, w84, w83, w3} = OP; //: CONCAT g17 @(629,130) /sn:0 /R:2 /w:[ 0 0 0 0 3 ] /dr:0 /tp:1 /drp:0 393 assign w14 = {w68, w67, w66, w65}; //: CONCAT g29 @(124,78) /sn:0 /w:[ 0 0 0 0 0 ] /dr:1 /tp:1 /drp:1 394 assign {w112, w113, w114, w115} = OP; //: CONCAT g14 @(243,127) /sn:0 /R:2 /w:[ 0 0 0 0 7 ] /dr:0 /tp:1 /drp:0 395 //: OUT g5 (CO) @(991,307) /sn:0 /w:[ 0 ] 396 assign w117 = {w89, w88, w87, w86}; //: CONCAT g24 @(486,260) /sn:0 /w:[ 0 0 0 0 0 ] /dr:1 /tp:1 /drp:1 397 assign {w104, w103, w102, w101} = OP; //: CONCAT g21 @(629,411) /sn:0 /R:2 /w:[ 0 0 0 0 0 ] /dr:0 /tp:1 /drp:0 398 assign {w60, w59, w57, w56} = w117; //: CONCAT g23 @(911,82) /sn:0 /R:2 /w:[ 1 1 0 0 1 ] /dr:0 /tp:1 /drp:0 399 assign w116 = {w31, w32, w33, w11}; //: CONCAT g35 @(493,-33) /sn:0 /w:[ 0 1 0 0 0 ] /dr:1 /tp:1 /drp:1 400 //: joint g22 (OP) @(595, 209) /w:[ -1 2 4 1 ] 401 //: joint g26 (M) @(571, 183) /w:[ -1 2 4 1 ] 402 //: IN g0 (A) @(12,18) /sn:0 /w:[ 0 ] 403 //: joint g12 (M) @(312, 183) /w:[ 5 6 8 10 ] 404 assign F = {w108, w107, w106, w105, w60, w59, w57, w56, w50, w51, w52, w53, w55, w13, w34, w78}; //: CONCAT g18 @(1016,62) /sn:0 /w:[ 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 ] /dr:1 /tp:1 /drp:1 405 assign {w18, w17, w15, w39} = w100; //: CONCAT g33 @(629,35) /sn:0 /R:2 /w:[ 0 0 0 0 0 ] /dr:0 /tp:1 /drp:0 406 assign {w94, w93, w92, w81} = w14; //: CONCAT g30 @(629,252) /sn:0 /R:2 /w:[ 0 0 0 0 1 ] /dr:0 /tp:1 /drp:0 407 408endmodule 409//: /netlistEnd 410 411