//: version "1.8.6" module soustr(s, b, a); //: interface /sz:(40, 40) /bd:[ ] input [7:0] b; //: /sn:0 {0}(171,287)(161,287)(161,297)(171,297)(171,309)(313,309)(313,322)(398,322){1} //: {2}(402,322)(606,322){3} //: {4}(400,320)(400,298)(389,298){5} supply1 [8:0] w45; //: /sn:0 {0}(361,639)(361,649)(396,649)(396,619){1} supply0 w7; //: /sn:0 {0}(816,234)(816,230)(805,230){1} supply1 w14; //: /sn:0 {0}(715,275)(715,306)(760,306)(760,294)(775,294)(775,304){1} supply0 w0; //: /sn:0 {0}(788,407)(799,407)(799,409){1} supply1 w24; //: /sn:0 {0}(852,143)(852,165)(831,165)(831,175){1} supply0 w44; //: /sn:0 {0}(388,605)(360,605)(360,615){1} output [7:0] s; //: /sn:0 /dp:1 {0}(93,407)(255,407)(255,363)(339,363){1} //: {2}(343,363)(349,363)(349,362)(353,362){3} //: {4}(341,361)(341,298)(373,298){5} input [7:0] a; //: /sn:0 /dp:1 {0}(232,189)(215,189)(215,217)(318,217)(318,198)(341,198){1} //: {2}(345,198)(460,198){3} //: {4}(343,196)(343,137)(374,137){5} supply0 w5; //: /sn:0 {0}(566,278)(566,268)(581,268)(581,312)(606,312){1} supply0 w33; //: /sn:0 {0}(753,113)(753,100)(768,100)(768,103){1} //: {2}(770,105)(821,105)(821,175){3} //: {4}(766,105)(765,105)(765,113){5} //: {6}(767,115)(811,115)(811,175){7} //: {8}(765,117)(765,121){9} //: {10}(767,123)(801,123)(801,175){11} //: {12}(765,125)(765,133){13} //: {14}(767,135)(791,135)(791,175){15} //: {16}(765,137)(765,146){17} //: {18}(767,148)(781,148)(781,175){19} //: {20}(765,150)(765,151)(758,151)(758,155){21} //: {22}(760,157)(771,157)(771,175){23} //: {24}(758,159)(758,166)(761,166)(761,175){25} wire [7:0] w6; //: /sn:0 {0}(476,198)(672,198){1} wire w32; //: /sn:0 {0}(589,453)(628,453)(628,438)(629,438){1} //: {2}(633,438)(636,438){3} //: {4}(640,438)(644,438){5} //: {6}(648,438)(650,438){7} //: {8}(654,438)(656,438){9} //: {10}(660,438)(661,438){11} //: {12}(665,438)(667,438){13} //: {14}(671,438)(684,438){15} //: {16}(669,440)(669,523)(585,523){17} //: {18}(663,440)(663,513)(585,513){19} //: {20}(658,440)(658,503)(585,503){21} //: {22}(652,440)(652,493)(586,493){23} //: {24}(646,440)(646,483)(585,483){25} //: {26}(638,440)(638,473)(587,473){27} //: {28}(631,440)(631,463)(588,463){29} wire w46; //: /sn:0 {0}(585,498)(692,498){1} //: {2}(696,498)(723,498){3} //: {4}(694,500)(694,648)(571,648){5} wire w61; //: /sn:0 {0}(552,621)(518,621)(518,623)(485,623){1} wire [8:0] w16; //: /sn:0 {0}(748,393)(748,317)(612,317){1} wire [7:0] w15; //: /sn:0 {0}(797,216)(797,200)(796,200)(796,181){1} wire w4; //: /sn:0 {0}(700,438)(703,438){1} //: {2}(707,438)(710,438){3} //: {4}(714,438)(723,438){5} //: {6}(712,436)(712,428)(541,428)(541,593)(485,593){7} //: {8}(705,440)(705,583)(659,583){9} //: {10}(655,583)(652,583){11} //: {12}(648,583)(647,583){13} //: {14}(643,583)(642,583){15} //: {16}(638,583)(636,583){17} //: {18}(632,583)(627,583){19} //: {20}(623,583)(618,583){21} //: {22}(614,583)(609,583)(609,603)(575,603){23} //: {24}(616,585)(616,613)(574,613){25} //: {26}(625,585)(625,623)(573,623){27} //: {28}(634,585)(634,633)(571,633){29} //: {30}(640,585)(640,643)(572,643){31} //: {32}(645,585)(645,653)(571,653){33} //: {34}(650,585)(650,663)(571,663){35} //: {36}(657,585)(657,673)(571,673){37} wire w38; //: /sn:0 {0}(361,517)(361,497)(351,497)(351,477)(361,477){1} wire [7:0] w51; //: /sn:0 {0}(393,486)(371,486)(371,517){1} wire w69; //: /sn:0 {0}(415,144)(389,144)(389,152)(380,152){1} wire [7:0] w3; //: /sn:0 {0}(781,245)(781,294)(785,294)(785,304){1} wire w64; //: /sn:0 {0}(550,671)(517,671)(517,673)(485,673){1} wire w66; //: /sn:0 {0}(415,129)(393,129)(393,122)(380,122){1} wire w37; //: /sn:0 {0}(587,468)(685,468){1} //: {2}(689,468)(713,468)(713,468)(723,468){3} //: {4}(687,470)(687,618)(573,618){5} wire w63; //: /sn:0 {0}(415,124)(403,124)(403,112)(380,112){1} wire w34; //: /sn:0 {0}(588,458)(679,458){1} //: {2}(683,458)(713,458)(713,458)(723,458){3} //: {4}(681,460)(681,608)(574,608){5} wire [8:0] w21; //: /sn:0 {0}(729,478)(764,478)(764,422){1} wire w43; //: /sn:0 {0}(586,488)(690,488){1} //: {2}(694,488)(723,488){3} //: {4}(692,490)(692,638)(572,638){5} wire w67; //: /sn:0 {0}(415,134)(389,134)(389,132)(380,132){1} wire w54; //: /sn:0 {0}(564,521)(486,521){1} wire w58; //: /sn:0 {0}(550,631)(517,631)(517,633)(485,633){1} wire w31; //: /sn:0 {0}(486,451)(568,451){1} wire w28; //: /sn:0 {0}(486,471)(566,471){1} wire [8:0] w36; //: /sn:0 {0}(479,633)(428,633)(428,619){1} wire [8:0] w41; //: /sn:0 {0}(366,523)(366,560)(412,560)(412,590){1} wire w23; //: /sn:0 {0}(550,661)(517,661)(517,663)(485,663){1} wire w65; //: /sn:0 {0}(338,278)(324,278)(324,178)(466,178){1} //: {2}(468,176)(468,171){3} //: {4}(468,167)(468,136)(436,136){5} //: {6}(466,169)(376,169)(376,377)(361,377)(361,367){7} //: {8}(468,180)(468,193){9} wire w40; //: /sn:0 {0}(585,478)(687,478){1} //: {2}(691,478)(713,478)(713,478)(723,478){3} //: {4}(689,480)(689,628)(571,628){5} wire w35; //: /sn:0 {0}(554,601)(519,601)(519,603)(485,603){1} wire w68; //: /sn:0 {0}(415,139)(389,139)(389,142)(380,142){1} wire w71; //: /sn:0 {0}(415,154)(389,154)(389,172)(380,172){1} wire w30; //: /sn:0 {0}(589,448)(674,448){1} //: {2}(678,448)(723,448){3} //: {4}(676,450)(676,598)(575,598){5} wire w22; //: /sn:0 {0}(436,605)(454,605)(454,597){1} wire [7:0] w59; //: /sn:0 {0}(369,362)(419,362)(419,394){1} wire [7:0] w53; //: /sn:0 {0}(409,486)(416,486)(416,415){1} wire w62; //: /sn:0 {0}(415,119)(411,119)(411,102)(380,102){1} wire [8:0] w12; //: /sn:0 {0}(780,393)(780,310){1} wire w11; //: /sn:0 {0}(486,511)(564,511){1} wire w49; //: /sn:0 {0}(585,508)(696,508){1} //: {2}(700,508)(723,508){3} //: {4}(698,510)(698,658)(571,658){5} wire w57; //: /sn:0 {0}(354,278)(366,278)(366,313)(381,313)(381,303){1} wire w70; //: /sn:0 {0}(415,149)(389,149)(389,162)(380,162){1} wire [7:0] w10; //: /sn:0 {0}(688,198)(765,198)(765,216){1} wire w13; //: /sn:0 {0}(757,230)(735,230)(735,221){1} wire w27; //: /sn:0 {0}(551,641)(518,641)(518,643)(485,643){1} wire w48; //: /sn:0 {0}(564,501)(486,501){1} wire w52; //: /sn:0 {0}(585,518)(699,518){1} //: {2}(703,518)(723,518){3} //: {4}(701,520)(701,668)(571,668){5} wire w29; //: /sn:0 {0}(486,461)(567,461){1} wire [7:0] w47; //: /sn:0 {0}(421,415)(421,486)(480,486){1} wire w50; //: /sn:0 {0}(550,651)(517,651)(517,653)(485,653){1} wire w42; //: /sn:0 {0}(564,481)(486,481){1} wire w9; //: /sn:0 {0}(740,407)(723,407)(723,398){1} wire w39; //: /sn:0 {0}(553,611)(519,611)(519,613)(485,613){1} wire w26; //: /sn:0 {0}(486,491)(565,491){1} //: enddecls //: joint g8 (w33) @(768, 105) /w:[ 2 1 4 -1 ] //: supply0 g4 (w33) @(753,119) /sn:0 /w:[ 0 ] and g61 (.I0(w37), .I1(w4), .Z(w61)); //: @(562,621) /sn:0 /R:2 /w:[ 5 27 0 ] //: output g3 (s) @(96,407) /sn:0 /R:2 /w:[ 0 ] //: joint g13 (a) @(343, 198) /w:[ 2 4 1 -1 ] or g86 (.I0(w53), .I1(w47), .Z(w59)); //: @(419,404) /sn:0 /R:1 /w:[ 1 0 1 ] and g58 (.I0(w43), .I1(w4), .Z(w27)); //: @(561,641) /sn:0 /R:2 /w:[ 5 31 0 ] and g55 (.I0(w30), .I1(w4), .Z(w35)); //: @(564,601) /sn:0 /R:2 /w:[ 5 23 0 ] //: joint g51 (w32) @(663, 438) /w:[ 12 -1 11 18 ] not g37 (.I(w4), .Z(w32)); //: @(694,438) /sn:0 /R:2 /w:[ 0 15 ] //: supply0 g34 (w5) @(566,284) /sn:0 /w:[ 0 ] not g89 (.I(w65), .Z(w57)); //: @(344,278) /sn:0 /w:[ 0 0 ] //: comment g2 /dolink:0 /link:"" @(457,409) /sn:0 /R:3 //: /line:"si le chiffre resultat est positif" //: /end //: joint g77 (w49) @(698, 508) /w:[ 2 -1 1 4 ] //: joint g76 (w46) @(694, 498) /w:[ 2 -1 1 4 ] //: joint g65 (w4) @(625, 583) /w:[ 19 -1 20 26 ] and g59 (.I0(w49), .I1(w4), .Z(w23)); //: @(560,661) /sn:0 /R:2 /w:[ 5 35 0 ] //: input g1 (b) @(173,287) /sn:0 /R:2 /w:[ 0 ] //: joint g72 (w34) @(681, 458) /w:[ 2 -1 1 4 ] //: joint g64 (w4) @(616, 583) /w:[ 21 -1 22 24 ] led g11 (.I(w9)); //: @(723,391) /sn:0 /w:[ 1 ] /type:0 //: comment g16 /dolink:0 /link:"" @(443,687) /sn:0 /R:3 //: /line:"si le chiffre resultat est negatif" //: /end //: comment g10 /dolink:0 /link:"" @(823,395) /sn:0 /R:3 //: /line:"addition du chiffre + le complement a2" //: /end led g87 (.I(w38)); //: @(368,477) /sn:0 /R:3 /w:[ 1 ] /type:0 //: joint g78 (w52) @(701, 518) /w:[ 2 -1 1 4 ] //: joint g50 (w32) @(658, 438) /w:[ 10 -1 9 20 ] //: joint g28 (w33) @(765, 123) /w:[ 10 9 -1 12 ] //: joint g27 (w33) @(765, 135) /w:[ 14 13 -1 16 ] //: supply0 g19 (w7) @(816,240) /sn:0 /w:[ 0 ] //: supply1 g32 (w14) @(726,275) /sn:0 /w:[ 0 ] //: joint g69 (w4) @(650, 583) /w:[ 11 -1 12 34 ] and g38 (.I0(w30), .I1(w32), .Z(w31)); //: @(578,451) /sn:0 /R:2 /w:[ 0 0 1 ] concat g9 (.I0(w71), .I1(w70), .I2(w69), .I3(w68), .I4(w67), .I5(w66), .I6(w63), .I7(w62), .Z(a)); //: @(375,137) /sn:0 /R:2 /w:[ 1 1 1 1 1 1 1 1 5 ] /dr:1 //: joint g75 (w43) @(692, 488) /w:[ 2 -1 1 4 ] and g57 (.I0(w46), .I1(w4), .Z(w50)); //: @(560,651) /sn:0 /R:2 /w:[ 5 33 0 ] concat g53 (.I0(w54), .I1(w11), .I2(w48), .I3(w26), .I4(w42), .I5(w28), .I6(w29), .I7(w31), .Z(w47)); //: @(481,486) /sn:0 /R:2 /w:[ 1 0 1 0 1 0 0 0 1 ] /dr:1 //: joint g71 (w30) @(676, 448) /w:[ 2 -1 1 4 ] led g20 (.I(w13)); //: @(735,214) /sn:0 /w:[ 1 ] /type:0 add g15 (.A(w10), .B(w15), .S(w3), .CI(w7), .CO(w13)); //: @(781,232) /sn:0 /w:[ 1 0 0 1 0 ] concat g31 (.I0(w3), .I1(w14), .Z(w12)); //: @(780,309) /sn:0 /R:3 /w:[ 1 1 1 ] /dr:1 //: joint g68 (w4) @(645, 583) /w:[ 13 -1 14 32 ] //: joint g67 (w4) @(640, 583) /w:[ 15 -1 16 30 ] and g39 (.I0(w34), .I1(w32), .Z(w29)); //: @(577,461) /sn:0 /R:2 /w:[ 0 29 1 ] //: joint g48 (w32) @(646, 438) /w:[ 6 -1 5 24 ] and g43 (.I0(w46), .I1(w32), .Z(w48)); //: @(574,501) /sn:0 /R:2 /w:[ 0 21 0 ] bufif1 g88 (.Z(s), .I(b), .E(w57)); //: @(383,298) /sn:0 /R:2 /w:[ 5 5 1 ] //: joint g73 (w37) @(687, 468) /w:[ 2 -1 1 4 ] and g62 (.I0(w52), .I1(w4), .Z(w64)); //: @(560,671) /sn:0 /R:2 /w:[ 5 37 0 ] //: joint g29 (w33) @(765, 115) /w:[ 6 5 -1 8 ] //: joint g25 (w33) @(758, 157) /w:[ 22 21 -1 24 ] not g17 (.I(w6), .Z(w10)); //: @(678,198) /sn:0 /w:[ 1 0 ] //: joint g63 (w4) @(705, 438) /w:[ 2 -1 1 8 ] //: joint g52 (w32) @(669, 438) /w:[ 14 -1 13 16 ] and g42 (.I0(w43), .I1(w32), .Z(w26)); //: @(575,491) /sn:0 /R:2 /w:[ 0 23 1 ] concat g83 (.I0(w51), .I1(w38), .Z(w41)); //: @(366,522) /sn:0 /R:3 /w:[ 1 0 0 ] /dr:1 //: joint g74 (w40) @(689, 478) /w:[ 2 -1 1 4 ] add g14 (.A(w16), .B(w12), .S(w21), .CI(w0), .CO(w9)); //: @(764,409) /sn:0 /w:[ 0 0 1 0 0 ] and g56 (.I0(w34), .I1(w4), .Z(w39)); //: @(563,611) /sn:0 /R:2 /w:[ 5 25 0 ] //: joint g95 (s) @(341, 363) /w:[ 2 4 1 -1 ] //: joint g94 (w65) @(468, 169) /w:[ -1 4 6 3 ] //: joint g47 (w32) @(638, 438) /w:[ 4 -1 3 26 ] and g44 (.I0(w49), .I1(w32), .Z(w11)); //: @(574,511) /sn:0 /R:2 /w:[ 0 19 1 ] concat g79 (.I0(w64), .I1(w23), .I2(w50), .I3(w27), .I4(w58), .I5(w61), .I6(w39), .I7(w35), .I8(w4), .Z(w36)); //: @(480,633) /sn:0 /R:2 /w:[ 1 1 1 1 1 1 1 1 7 0 ] /dr:1 //: joint g80 (w4) @(712, 438) /w:[ 4 6 3 -1 ] bufif1 g92 (.Z(s), .I(w59), .E(w65)); //: @(363,362) /sn:0 /R:2 /w:[ 3 0 7 ] led g85 (.I(w22)); //: @(454,590) /sn:0 /w:[ 1 ] /type:0 //: supply0 g84 (w44) @(360,621) /sn:0 /w:[ 1 ] concat g21 (.I0(w24), .I1(w33), .I2(w33), .I3(w33), .I4(w33), .I5(w33), .I6(w33), .I7(w33), .Z(w15)); //: @(796,180) /sn:0 /R:3 /w:[ 1 3 7 11 15 19 23 25 1 ] /dr:1 and g41 (.I0(w40), .I1(w32), .Z(w42)); //: @(574,481) /sn:0 /R:2 /w:[ 0 25 0 ] //: supply1 g23 (w24) @(863,143) /sn:0 /w:[ 0 ] //: joint g93 (b) @(400, 322) /w:[ 2 4 1 -1 ] bufif1 g54 (.Z(w6), .I(a), .E(w65)); //: @(466,198) /sn:0 /w:[ 0 3 9 ] and g60 (.I0(w40), .I1(w4), .Z(w58)); //: @(560,631) /sn:0 /R:2 /w:[ 5 29 0 ] and g40 (.I0(w37), .I1(w32), .Z(w28)); //: @(576,471) /sn:0 /R:2 /w:[ 0 27 1 ] add g81 (.A(w36), .B(w45), .S(w41), .CI(w44), .CO(w22)); //: @(412,603) /sn:0 /R:2 /w:[ 1 1 1 0 0 ] //: input g0 (a) @(234,189) /sn:0 /R:2 /w:[ 0 ] or g22 (.I0(w62), .I1(w63), .I2(w66), .I3(w67), .I4(w68), .I5(w69), .I6(w70), .I7(w71), .Z(w65)); //: @(426,136) /sn:0 /w:[ 0 0 0 0 0 0 0 0 5 ] not g90 (.I(w51), .Z(w53)); //: @(399,486) /sn:0 /w:[ 0 0 ]