Created
October 22, 2013 00:52
-
-
Save kylelk/7093491 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
typedef char pin_t; | |
#define IN const pin_t * | |
#define OUT pin_t * | |
#define PIN(X) pin_t _##X; pin_t *X = & _##X; | |
#define V(X) (*(X)) | |
#define NOT(X) (~(X)&1) | |
#define XOR(X,Y) ((NOT(X)&(Y)) | ((X)&NOT(Y))) | |
void halfadder(IN a, IN b, OUT s, OUT c) | |
{ | |
V(s) = XOR(V(a), V(b)); | |
V(c) = V(a) & V(b); | |
} | |
void fulladder(IN a, IN b, IN ic, OUT s, OUT oc) | |
{ | |
PIN(ps); PIN(pc); PIN(tc); | |
halfadder(/*INPUT*/a, b, /*OUTPUT*/ps, pc); | |
halfadder(/*INPUT*/ps, ic, /*OUTPUT*/s, tc); | |
V(oc) = V(tc) | V(pc); | |
} | |
void fourbitsadder( IN a0, IN a1, IN a2, IN a3, IN a4, IN a5, IN a6, IN a7, IN a8, IN a9, IN a10, IN a11, IN a12, IN a13, IN a14, IN a15, IN a16, IN a17, IN a18, IN a19, IN a20, IN a21, IN a22, IN a23, IN a24, IN a25, IN a26, IN a27, IN a28, IN a29, IN a30, IN a31, IN a32, IN a33, IN a34, IN a35, IN a36, IN a37, IN a38, IN a39, IN a40, IN a41, IN a42, IN a43, IN a44, IN a45, IN a46, IN a47, IN a48, IN a49, IN a50, IN a51, IN a52, IN a53, IN a54, IN a55, IN a56, IN a57, IN a58, IN a59, IN a60, IN a61, IN a62, IN a63, IN a64, IN a65, IN a66, IN a67, IN a68, IN a69, IN a70, IN a71, IN a72, IN a73, IN a74, IN a75, IN a76, IN a77, IN a78, IN a79, IN a80, IN a81, IN a82, IN a83, IN a84, IN a85, IN a86, IN a87, IN a88, IN a89, IN a90, IN a91, IN a92, IN a93, IN a94, IN a95, IN a96, IN a97, IN a98, IN a99, IN a100, IN a101, IN a102, IN a103, IN a104, IN a105, IN a106, IN a107, IN a108, IN a109, IN a110, IN a111, IN a112, IN a113, IN a114, IN a115, IN a116, IN a117, IN a118, IN a119, IN a120, IN a121, IN a122, IN a123, IN a124, IN a125, IN a126, IN a127, IN a128, IN a129, IN a130, IN a131, IN a132, IN a133, IN a134, IN a135, IN a136, IN a137, IN a138, IN a139, IN a140, IN a141, IN a142, IN a143, IN a144, IN a145, IN a146, IN a147, IN a148, IN a149, IN a150, IN a151, IN a152, IN a153, IN a154, IN a155, IN a156, IN a157, IN a158, IN a159, IN a160, IN a161, IN a162, IN a163, IN a164, IN a165, IN a166, IN a167, IN a168, IN a169, IN a170, IN a171, IN a172, IN a173, IN a174, IN a175, IN a176, IN a177, IN a178, IN a179, IN a180, IN a181, IN a182, IN a183, IN a184, IN a185, IN a186, IN a187, IN a188, IN a189, IN a190, IN a191, IN a192, IN a193, IN a194, IN a195, IN a196, IN a197, IN a198, IN a199, IN a200, IN a201, IN a202, IN b0, IN b1, IN b2, IN b3, IN b4, IN b5, IN b6, IN b7, IN b8, IN b9, IN b10, IN b11, IN b12, IN b13, IN b14, IN b15, IN b16, IN b17, IN b18, IN b19, IN b20, IN b21, IN b22, IN b23, IN b24, IN b25, IN b26, IN b27, IN b28, IN b29, IN b30, IN b31, IN b32, IN b33, IN b34, IN b35, IN b36, IN b37, IN b38, IN b39, IN b40, IN b41, IN b42, IN b43, IN b44, IN b45, IN b46, IN b47, IN b48, IN b49, IN b50, IN b51, IN b52, IN b53, IN b54, IN b55, IN b56, IN b57, IN b58, IN b59, IN b60, IN b61, IN b62, IN b63, IN b64, IN b65, IN b66, IN b67, IN b68, IN b69, IN b70, IN b71, IN b72, IN b73, IN b74, IN b75, IN b76, IN b77, IN b78, IN b79, IN b80, IN b81, IN b82, IN b83, IN b84, IN b85, IN b86, IN b87, IN b88, IN b89, IN b90, IN b91, IN b92, IN b93, IN b94, IN b95, IN b96, IN b97, IN b98, IN b99, IN b100, IN b101, IN b102, IN b103, IN b104, IN b105, IN b106, IN b107, IN b108, IN b109, IN b110, IN b111, IN b112, IN b113, IN b114, IN b115, IN b116, IN b117, IN b118, IN b119, IN b120, IN b121, IN b122, IN b123, IN b124, IN b125, IN b126, IN b127, IN b128, IN b129, IN b130, IN b131, IN b132, IN b133, IN b134, IN b135, IN b136, IN b137, IN b138, IN b139, IN b140, IN b141, IN b142, IN b143, IN b144, IN b145, IN b146, IN b147, IN b148, IN b149, IN b150, IN b151, IN b152, IN b153, IN b154, IN b155, IN b156, IN b157, IN b158, IN b159, IN b160, IN b161, IN b162, IN b163, IN b164, IN b165, IN b166, IN b167, IN b168, IN b169, IN b170, IN b171, IN b172, IN b173, IN b174, IN b175, IN b176, IN b177, IN b178, IN b179, IN b180, IN b181, IN b182, IN b183, IN b184, IN b185, IN b186, IN b187, IN b188, IN b189, IN b190, IN b191, IN b192, IN b193, IN b194, IN b195, IN b196, IN b197, IN b198, IN b199, IN b200, IN b201, IN b202, OUT o0, OUT o1, OUT o2, OUT o3, OUT o4, OUT o5, OUT o6, OUT o7, OUT o8, OUT o9, OUT o10, OUT o11, OUT o12, OUT o13, OUT o14, OUT o15, OUT o16, OUT o17, OUT o18, OUT o19, OUT o20, OUT o21, OUT o22, OUT o23, OUT o24, OUT o25, OUT o26, OUT o27, OUT o28, OUT o29, OUT o30, OUT o31, OUT o32, OUT o33, OUT o34, OUT o35, OUT o36, OUT o37, OUT o38, OUT o39, OUT o40, OUT o41, OUT o42, OUT o43, OUT o44, OUT o45, OUT o46, OUT o47, OUT o48, OUT o49, OUT o50, OUT o51, OUT o52, OUT o53, OUT o54, OUT o55, OUT o56, OUT o57, OUT o58, OUT o59, OUT o60, OUT o61, OUT o62, OUT o63, OUT o64, OUT o65, OUT o66, OUT o67, OUT o68, OUT o69, OUT o70, OUT o71, OUT o72, OUT o73, OUT o74, OUT o75, OUT o76, OUT o77, OUT o78, OUT o79, OUT o80, OUT o81, OUT o82, OUT o83, OUT o84, OUT o85, OUT o86, OUT o87, OUT o88, OUT o89, OUT o90, OUT o91, OUT o92, OUT o93, OUT o94, OUT o95, OUT o96, OUT o97, OUT o98, OUT o99, OUT o100, OUT o101, OUT o102, OUT o103, OUT o104, OUT o105, OUT o106, OUT o107, OUT o108, OUT o109, OUT o110, OUT o111, OUT o112, OUT o113, OUT o114, OUT o115, OUT o116, OUT o117, OUT o118, OUT o119, OUT o120, OUT o121, OUT o122, OUT o123, OUT o124, OUT o125, OUT o126, OUT o127, OUT o128, OUT o129, OUT o130, OUT o131, OUT o132, OUT o133, OUT o134, OUT o135, OUT o136, OUT o137, OUT o138, OUT o139, OUT o140, OUT o141, OUT o142, OUT o143, OUT o144, OUT o145, OUT o146, OUT o147, OUT o148, OUT o149, OUT o150, OUT o151, OUT o152, OUT o153, OUT o154, OUT o155, OUT o156, OUT o157, OUT o158, OUT o159, OUT o160, OUT o161, OUT o162, OUT o163, OUT o164, OUT o165, OUT o166, OUT o167, OUT o168, OUT o169, OUT o170, OUT o171, OUT o172, OUT o173, OUT o174, OUT o175, OUT o176, OUT o177, OUT o178, OUT o179, OUT o180, OUT o181, OUT o182, OUT o183, OUT o184, OUT o185, OUT o186, OUT o187, OUT o188, OUT o189, OUT o190, OUT o191, OUT o192, OUT o193, OUT o194, OUT o195, OUT o196, OUT o197, OUT o198, OUT o199, OUT o200, OUT o201, OUT o202, OUT overflow) | |
{ | |
PIN(zero); V(zero) = 0; | |
PIN(tc0); PIN(tc1); PIN(tc2); PIN(tc3); PIN(tc4); PIN(tc5); PIN(tc6); PIN(tc7); PIN(tc8); PIN(tc9); PIN(tc10); PIN(tc11); PIN(tc12); PIN(tc13); PIN(tc14); PIN(tc15); PIN(tc16); PIN(tc17); PIN(tc18); PIN(tc19); PIN(tc20); PIN(tc21); PIN(tc22); PIN(tc23); PIN(tc24); PIN(tc25); PIN(tc26); PIN(tc27); PIN(tc28); PIN(tc29); PIN(tc30); PIN(tc31); PIN(tc32); PIN(tc33); PIN(tc34); PIN(tc35); PIN(tc36); PIN(tc37); PIN(tc38); PIN(tc39); PIN(tc40); PIN(tc41); PIN(tc42); PIN(tc43); PIN(tc44); PIN(tc45); PIN(tc46); PIN(tc47); PIN(tc48); PIN(tc49); PIN(tc50); PIN(tc51); PIN(tc52); PIN(tc53); PIN(tc54); PIN(tc55); PIN(tc56); PIN(tc57); PIN(tc58); PIN(tc59); PIN(tc60); PIN(tc61); PIN(tc62); PIN(tc63); PIN(tc64); PIN(tc65); PIN(tc66); PIN(tc67); PIN(tc68); PIN(tc69); PIN(tc70); PIN(tc71); PIN(tc72); PIN(tc73); PIN(tc74); PIN(tc75); PIN(tc76); PIN(tc77); PIN(tc78); PIN(tc79); PIN(tc80); PIN(tc81); PIN(tc82); PIN(tc83); PIN(tc84); PIN(tc85); PIN(tc86); PIN(tc87); PIN(tc88); PIN(tc89); PIN(tc90); PIN(tc91); PIN(tc92); PIN(tc93); PIN(tc94); PIN(tc95); PIN(tc96); PIN(tc97); PIN(tc98); PIN(tc99); PIN(tc100); PIN(tc101); PIN(tc102); PIN(tc103); PIN(tc104); PIN(tc105); PIN(tc106); PIN(tc107); PIN(tc108); PIN(tc109); PIN(tc110); PIN(tc111); PIN(tc112); PIN(tc113); PIN(tc114); PIN(tc115); PIN(tc116); PIN(tc117); PIN(tc118); PIN(tc119); PIN(tc120); PIN(tc121); PIN(tc122); PIN(tc123); PIN(tc124); PIN(tc125); PIN(tc126); PIN(tc127); PIN(tc128); PIN(tc129); PIN(tc130); PIN(tc131); PIN(tc132); PIN(tc133); PIN(tc134); PIN(tc135); PIN(tc136); PIN(tc137); PIN(tc138); PIN(tc139); PIN(tc140); PIN(tc141); PIN(tc142); PIN(tc143); PIN(tc144); PIN(tc145); PIN(tc146); PIN(tc147); PIN(tc148); PIN(tc149); PIN(tc150); PIN(tc151); PIN(tc152); PIN(tc153); PIN(tc154); PIN(tc155); PIN(tc156); PIN(tc157); PIN(tc158); PIN(tc159); PIN(tc160); PIN(tc161); PIN(tc162); PIN(tc163); PIN(tc164); PIN(tc165); PIN(tc166); PIN(tc167); PIN(tc168); PIN(tc169); PIN(tc170); PIN(tc171); PIN(tc172); PIN(tc173); PIN(tc174); PIN(tc175); PIN(tc176); PIN(tc177); PIN(tc178); PIN(tc179); PIN(tc180); PIN(tc181); PIN(tc182); PIN(tc183); PIN(tc184); PIN(tc185); PIN(tc186); PIN(tc187); PIN(tc188); PIN(tc189); PIN(tc190); PIN(tc191); PIN(tc192); PIN(tc193); PIN(tc194); PIN(tc195); PIN(tc196); PIN(tc197); PIN(tc198); PIN(tc199); PIN(tc200); PIN(tc201); PIN(tc202); | |
fulladder(/*INPUT*/a0, b0, zero, /*OUTPUT*/o0, tc0); | |
fulladder(/*INPUT*/a1, b1, tc0, /*OUTPUT*/o1, tc1); | |
fulladder(/*INPUT*/a2, b2, tc1, /*OUTPUT*/o2, tc2); | |
fulladder(/*INPUT*/a3, b3, tc2, /*OUTPUT*/o3, tc3); | |
fulladder(/*INPUT*/a4, b4, tc3, /*OUTPUT*/o4, tc4); | |
fulladder(/*INPUT*/a5, b5, tc4, /*OUTPUT*/o5, tc5); | |
fulladder(/*INPUT*/a6, b6, tc5, /*OUTPUT*/o6, tc6); | |
fulladder(/*INPUT*/a7, b7, tc6, /*OUTPUT*/o7, tc7); | |
fulladder(/*INPUT*/a8, b8, tc7, /*OUTPUT*/o8, tc8); | |
fulladder(/*INPUT*/a9, b9, tc8, /*OUTPUT*/o9, tc9); | |
fulladder(/*INPUT*/a10, b10, tc9, /*OUTPUT*/o10, tc10); | |
fulladder(/*INPUT*/a11, b11, tc10, /*OUTPUT*/o11, tc11); | |
fulladder(/*INPUT*/a12, b12, tc11, /*OUTPUT*/o12, tc12); | |
fulladder(/*INPUT*/a13, b13, tc12, /*OUTPUT*/o13, tc13); | |
fulladder(/*INPUT*/a14, b14, tc13, /*OUTPUT*/o14, tc14); | |
fulladder(/*INPUT*/a15, b15, tc14, /*OUTPUT*/o15, tc15); | |
fulladder(/*INPUT*/a16, b16, tc15, /*OUTPUT*/o16, tc16); | |
fulladder(/*INPUT*/a17, b17, tc16, /*OUTPUT*/o17, tc17); | |
fulladder(/*INPUT*/a18, b18, tc17, /*OUTPUT*/o18, tc18); | |
fulladder(/*INPUT*/a19, b19, tc18, /*OUTPUT*/o19, tc19); | |
fulladder(/*INPUT*/a20, b20, tc19, /*OUTPUT*/o20, tc20); | |
fulladder(/*INPUT*/a21, b21, tc20, /*OUTPUT*/o21, tc21); | |
fulladder(/*INPUT*/a22, b22, tc21, /*OUTPUT*/o22, tc22); | |
fulladder(/*INPUT*/a23, b23, tc22, /*OUTPUT*/o23, tc23); | |
fulladder(/*INPUT*/a24, b24, tc23, /*OUTPUT*/o24, tc24); | |
fulladder(/*INPUT*/a25, b25, tc24, /*OUTPUT*/o25, tc25); | |
fulladder(/*INPUT*/a26, b26, tc25, /*OUTPUT*/o26, tc26); | |
fulladder(/*INPUT*/a27, b27, tc26, /*OUTPUT*/o27, tc27); | |
fulladder(/*INPUT*/a28, b28, tc27, /*OUTPUT*/o28, tc28); | |
fulladder(/*INPUT*/a29, b29, tc28, /*OUTPUT*/o29, tc29); | |
fulladder(/*INPUT*/a30, b30, tc29, /*OUTPUT*/o30, tc30); | |
fulladder(/*INPUT*/a31, b31, tc30, /*OUTPUT*/o31, tc31); | |
fulladder(/*INPUT*/a32, b32, tc31, /*OUTPUT*/o32, tc32); | |
fulladder(/*INPUT*/a33, b33, tc32, /*OUTPUT*/o33, tc33); | |
fulladder(/*INPUT*/a34, b34, tc33, /*OUTPUT*/o34, tc34); | |
fulladder(/*INPUT*/a35, b35, tc34, /*OUTPUT*/o35, tc35); | |
fulladder(/*INPUT*/a36, b36, tc35, /*OUTPUT*/o36, tc36); | |
fulladder(/*INPUT*/a37, b37, tc36, /*OUTPUT*/o37, tc37); | |
fulladder(/*INPUT*/a38, b38, tc37, /*OUTPUT*/o38, tc38); | |
fulladder(/*INPUT*/a39, b39, tc38, /*OUTPUT*/o39, tc39); | |
fulladder(/*INPUT*/a40, b40, tc39, /*OUTPUT*/o40, tc40); | |
fulladder(/*INPUT*/a41, b41, tc40, /*OUTPUT*/o41, tc41); | |
fulladder(/*INPUT*/a42, b42, tc41, /*OUTPUT*/o42, tc42); | |
fulladder(/*INPUT*/a43, b43, tc42, /*OUTPUT*/o43, tc43); | |
fulladder(/*INPUT*/a44, b44, tc43, /*OUTPUT*/o44, tc44); | |
fulladder(/*INPUT*/a45, b45, tc44, /*OUTPUT*/o45, tc45); | |
fulladder(/*INPUT*/a46, b46, tc45, /*OUTPUT*/o46, tc46); | |
fulladder(/*INPUT*/a47, b47, tc46, /*OUTPUT*/o47, tc47); | |
fulladder(/*INPUT*/a48, b48, tc47, /*OUTPUT*/o48, tc48); | |
fulladder(/*INPUT*/a49, b49, tc48, /*OUTPUT*/o49, tc49); | |
fulladder(/*INPUT*/a50, b50, tc49, /*OUTPUT*/o50, tc50); | |
fulladder(/*INPUT*/a51, b51, tc50, /*OUTPUT*/o51, tc51); | |
fulladder(/*INPUT*/a52, b52, tc51, /*OUTPUT*/o52, tc52); | |
fulladder(/*INPUT*/a53, b53, tc52, /*OUTPUT*/o53, tc53); | |
fulladder(/*INPUT*/a54, b54, tc53, /*OUTPUT*/o54, tc54); | |
fulladder(/*INPUT*/a55, b55, tc54, /*OUTPUT*/o55, tc55); | |
fulladder(/*INPUT*/a56, b56, tc55, /*OUTPUT*/o56, tc56); | |
fulladder(/*INPUT*/a57, b57, tc56, /*OUTPUT*/o57, tc57); | |
fulladder(/*INPUT*/a58, b58, tc57, /*OUTPUT*/o58, tc58); | |
fulladder(/*INPUT*/a59, b59, tc58, /*OUTPUT*/o59, tc59); | |
fulladder(/*INPUT*/a60, b60, tc59, /*OUTPUT*/o60, tc60); | |
fulladder(/*INPUT*/a61, b61, tc60, /*OUTPUT*/o61, tc61); | |
fulladder(/*INPUT*/a62, b62, tc61, /*OUTPUT*/o62, tc62); | |
fulladder(/*INPUT*/a63, b63, tc62, /*OUTPUT*/o63, tc63); | |
fulladder(/*INPUT*/a64, b64, tc63, /*OUTPUT*/o64, tc64); | |
fulladder(/*INPUT*/a65, b65, tc64, /*OUTPUT*/o65, tc65); | |
fulladder(/*INPUT*/a66, b66, tc65, /*OUTPUT*/o66, tc66); | |
fulladder(/*INPUT*/a67, b67, tc66, /*OUTPUT*/o67, tc67); | |
fulladder(/*INPUT*/a68, b68, tc67, /*OUTPUT*/o68, tc68); | |
fulladder(/*INPUT*/a69, b69, tc68, /*OUTPUT*/o69, tc69); | |
fulladder(/*INPUT*/a70, b70, tc69, /*OUTPUT*/o70, tc70); | |
fulladder(/*INPUT*/a71, b71, tc70, /*OUTPUT*/o71, tc71); | |
fulladder(/*INPUT*/a72, b72, tc71, /*OUTPUT*/o72, tc72); | |
fulladder(/*INPUT*/a73, b73, tc72, /*OUTPUT*/o73, tc73); | |
fulladder(/*INPUT*/a74, b74, tc73, /*OUTPUT*/o74, tc74); | |
fulladder(/*INPUT*/a75, b75, tc74, /*OUTPUT*/o75, tc75); | |
fulladder(/*INPUT*/a76, b76, tc75, /*OUTPUT*/o76, tc76); | |
fulladder(/*INPUT*/a77, b77, tc76, /*OUTPUT*/o77, tc77); | |
fulladder(/*INPUT*/a78, b78, tc77, /*OUTPUT*/o78, tc78); | |
fulladder(/*INPUT*/a79, b79, tc78, /*OUTPUT*/o79, tc79); | |
fulladder(/*INPUT*/a80, b80, tc79, /*OUTPUT*/o80, tc80); | |
fulladder(/*INPUT*/a81, b81, tc80, /*OUTPUT*/o81, tc81); | |
fulladder(/*INPUT*/a82, b82, tc81, /*OUTPUT*/o82, tc82); | |
fulladder(/*INPUT*/a83, b83, tc82, /*OUTPUT*/o83, tc83); | |
fulladder(/*INPUT*/a84, b84, tc83, /*OUTPUT*/o84, tc84); | |
fulladder(/*INPUT*/a85, b85, tc84, /*OUTPUT*/o85, tc85); | |
fulladder(/*INPUT*/a86, b86, tc85, /*OUTPUT*/o86, tc86); | |
fulladder(/*INPUT*/a87, b87, tc86, /*OUTPUT*/o87, tc87); | |
fulladder(/*INPUT*/a88, b88, tc87, /*OUTPUT*/o88, tc88); | |
fulladder(/*INPUT*/a89, b89, tc88, /*OUTPUT*/o89, tc89); | |
fulladder(/*INPUT*/a90, b90, tc89, /*OUTPUT*/o90, tc90); | |
fulladder(/*INPUT*/a91, b91, tc90, /*OUTPUT*/o91, tc91); | |
fulladder(/*INPUT*/a92, b92, tc91, /*OUTPUT*/o92, tc92); | |
fulladder(/*INPUT*/a93, b93, tc92, /*OUTPUT*/o93, tc93); | |
fulladder(/*INPUT*/a94, b94, tc93, /*OUTPUT*/o94, tc94); | |
fulladder(/*INPUT*/a95, b95, tc94, /*OUTPUT*/o95, tc95); | |
fulladder(/*INPUT*/a96, b96, tc95, /*OUTPUT*/o96, tc96); | |
fulladder(/*INPUT*/a97, b97, tc96, /*OUTPUT*/o97, tc97); | |
fulladder(/*INPUT*/a98, b98, tc97, /*OUTPUT*/o98, tc98); | |
fulladder(/*INPUT*/a99, b99, tc98, /*OUTPUT*/o99, tc99); | |
fulladder(/*INPUT*/a100, b100, tc99, /*OUTPUT*/o100, tc100); | |
fulladder(/*INPUT*/a101, b101, tc100, /*OUTPUT*/o101, tc101); | |
fulladder(/*INPUT*/a102, b102, tc101, /*OUTPUT*/o102, tc102); | |
fulladder(/*INPUT*/a103, b103, tc102, /*OUTPUT*/o103, tc103); | |
fulladder(/*INPUT*/a104, b104, tc103, /*OUTPUT*/o104, tc104); | |
fulladder(/*INPUT*/a105, b105, tc104, /*OUTPUT*/o105, tc105); | |
fulladder(/*INPUT*/a106, b106, tc105, /*OUTPUT*/o106, tc106); | |
fulladder(/*INPUT*/a107, b107, tc106, /*OUTPUT*/o107, tc107); | |
fulladder(/*INPUT*/a108, b108, tc107, /*OUTPUT*/o108, tc108); | |
fulladder(/*INPUT*/a109, b109, tc108, /*OUTPUT*/o109, tc109); | |
fulladder(/*INPUT*/a110, b110, tc109, /*OUTPUT*/o110, tc110); | |
fulladder(/*INPUT*/a111, b111, tc110, /*OUTPUT*/o111, tc111); | |
fulladder(/*INPUT*/a112, b112, tc111, /*OUTPUT*/o112, tc112); | |
fulladder(/*INPUT*/a113, b113, tc112, /*OUTPUT*/o113, tc113); | |
fulladder(/*INPUT*/a114, b114, tc113, /*OUTPUT*/o114, tc114); | |
fulladder(/*INPUT*/a115, b115, tc114, /*OUTPUT*/o115, tc115); | |
fulladder(/*INPUT*/a116, b116, tc115, /*OUTPUT*/o116, tc116); | |
fulladder(/*INPUT*/a117, b117, tc116, /*OUTPUT*/o117, tc117); | |
fulladder(/*INPUT*/a118, b118, tc117, /*OUTPUT*/o118, tc118); | |
fulladder(/*INPUT*/a119, b119, tc118, /*OUTPUT*/o119, tc119); | |
fulladder(/*INPUT*/a120, b120, tc119, /*OUTPUT*/o120, tc120); | |
fulladder(/*INPUT*/a121, b121, tc120, /*OUTPUT*/o121, tc121); | |
fulladder(/*INPUT*/a122, b122, tc121, /*OUTPUT*/o122, tc122); | |
fulladder(/*INPUT*/a123, b123, tc122, /*OUTPUT*/o123, tc123); | |
fulladder(/*INPUT*/a124, b124, tc123, /*OUTPUT*/o124, tc124); | |
fulladder(/*INPUT*/a125, b125, tc124, /*OUTPUT*/o125, tc125); | |
fulladder(/*INPUT*/a126, b126, tc125, /*OUTPUT*/o126, tc126); | |
fulladder(/*INPUT*/a127, b127, tc126, /*OUTPUT*/o127, tc127); | |
fulladder(/*INPUT*/a128, b128, tc127, /*OUTPUT*/o128, tc128); | |
fulladder(/*INPUT*/a129, b129, tc128, /*OUTPUT*/o129, tc129); | |
fulladder(/*INPUT*/a130, b130, tc129, /*OUTPUT*/o130, tc130); | |
fulladder(/*INPUT*/a131, b131, tc130, /*OUTPUT*/o131, tc131); | |
fulladder(/*INPUT*/a132, b132, tc131, /*OUTPUT*/o132, tc132); | |
fulladder(/*INPUT*/a133, b133, tc132, /*OUTPUT*/o133, tc133); | |
fulladder(/*INPUT*/a134, b134, tc133, /*OUTPUT*/o134, tc134); | |
fulladder(/*INPUT*/a135, b135, tc134, /*OUTPUT*/o135, tc135); | |
fulladder(/*INPUT*/a136, b136, tc135, /*OUTPUT*/o136, tc136); | |
fulladder(/*INPUT*/a137, b137, tc136, /*OUTPUT*/o137, tc137); | |
fulladder(/*INPUT*/a138, b138, tc137, /*OUTPUT*/o138, tc138); | |
fulladder(/*INPUT*/a139, b139, tc138, /*OUTPUT*/o139, tc139); | |
fulladder(/*INPUT*/a140, b140, tc139, /*OUTPUT*/o140, tc140); | |
fulladder(/*INPUT*/a141, b141, tc140, /*OUTPUT*/o141, tc141); | |
fulladder(/*INPUT*/a142, b142, tc141, /*OUTPUT*/o142, tc142); | |
fulladder(/*INPUT*/a143, b143, tc142, /*OUTPUT*/o143, tc143); | |
fulladder(/*INPUT*/a144, b144, tc143, /*OUTPUT*/o144, tc144); | |
fulladder(/*INPUT*/a145, b145, tc144, /*OUTPUT*/o145, tc145); | |
fulladder(/*INPUT*/a146, b146, tc145, /*OUTPUT*/o146, tc146); | |
fulladder(/*INPUT*/a147, b147, tc146, /*OUTPUT*/o147, tc147); | |
fulladder(/*INPUT*/a148, b148, tc147, /*OUTPUT*/o148, tc148); | |
fulladder(/*INPUT*/a149, b149, tc148, /*OUTPUT*/o149, tc149); | |
fulladder(/*INPUT*/a150, b150, tc149, /*OUTPUT*/o150, tc150); | |
fulladder(/*INPUT*/a151, b151, tc150, /*OUTPUT*/o151, tc151); | |
fulladder(/*INPUT*/a152, b152, tc151, /*OUTPUT*/o152, tc152); | |
fulladder(/*INPUT*/a153, b153, tc152, /*OUTPUT*/o153, tc153); | |
fulladder(/*INPUT*/a154, b154, tc153, /*OUTPUT*/o154, tc154); | |
fulladder(/*INPUT*/a155, b155, tc154, /*OUTPUT*/o155, tc155); | |
fulladder(/*INPUT*/a156, b156, tc155, /*OUTPUT*/o156, tc156); | |
fulladder(/*INPUT*/a157, b157, tc156, /*OUTPUT*/o157, tc157); | |
fulladder(/*INPUT*/a158, b158, tc157, /*OUTPUT*/o158, tc158); | |
fulladder(/*INPUT*/a159, b159, tc158, /*OUTPUT*/o159, tc159); | |
fulladder(/*INPUT*/a160, b160, tc159, /*OUTPUT*/o160, tc160); | |
fulladder(/*INPUT*/a161, b161, tc160, /*OUTPUT*/o161, tc161); | |
fulladder(/*INPUT*/a162, b162, tc161, /*OUTPUT*/o162, tc162); | |
fulladder(/*INPUT*/a163, b163, tc162, /*OUTPUT*/o163, tc163); | |
fulladder(/*INPUT*/a164, b164, tc163, /*OUTPUT*/o164, tc164); | |
fulladder(/*INPUT*/a165, b165, tc164, /*OUTPUT*/o165, tc165); | |
fulladder(/*INPUT*/a166, b166, tc165, /*OUTPUT*/o166, tc166); | |
fulladder(/*INPUT*/a167, b167, tc166, /*OUTPUT*/o167, tc167); | |
fulladder(/*INPUT*/a168, b168, tc167, /*OUTPUT*/o168, tc168); | |
fulladder(/*INPUT*/a169, b169, tc168, /*OUTPUT*/o169, tc169); | |
fulladder(/*INPUT*/a170, b170, tc169, /*OUTPUT*/o170, tc170); | |
fulladder(/*INPUT*/a171, b171, tc170, /*OUTPUT*/o171, tc171); | |
fulladder(/*INPUT*/a172, b172, tc171, /*OUTPUT*/o172, tc172); | |
fulladder(/*INPUT*/a173, b173, tc172, /*OUTPUT*/o173, tc173); | |
fulladder(/*INPUT*/a174, b174, tc173, /*OUTPUT*/o174, tc174); | |
fulladder(/*INPUT*/a175, b175, tc174, /*OUTPUT*/o175, tc175); | |
fulladder(/*INPUT*/a176, b176, tc175, /*OUTPUT*/o176, tc176); | |
fulladder(/*INPUT*/a177, b177, tc176, /*OUTPUT*/o177, tc177); | |
fulladder(/*INPUT*/a178, b178, tc177, /*OUTPUT*/o178, tc178); | |
fulladder(/*INPUT*/a179, b179, tc178, /*OUTPUT*/o179, tc179); | |
fulladder(/*INPUT*/a180, b180, tc179, /*OUTPUT*/o180, tc180); | |
fulladder(/*INPUT*/a181, b181, tc180, /*OUTPUT*/o181, tc181); | |
fulladder(/*INPUT*/a182, b182, tc181, /*OUTPUT*/o182, tc182); | |
fulladder(/*INPUT*/a183, b183, tc182, /*OUTPUT*/o183, tc183); | |
fulladder(/*INPUT*/a184, b184, tc183, /*OUTPUT*/o184, tc184); | |
fulladder(/*INPUT*/a185, b185, tc184, /*OUTPUT*/o185, tc185); | |
fulladder(/*INPUT*/a186, b186, tc185, /*OUTPUT*/o186, tc186); | |
fulladder(/*INPUT*/a187, b187, tc186, /*OUTPUT*/o187, tc187); | |
fulladder(/*INPUT*/a188, b188, tc187, /*OUTPUT*/o188, tc188); | |
fulladder(/*INPUT*/a189, b189, tc188, /*OUTPUT*/o189, tc189); | |
fulladder(/*INPUT*/a190, b190, tc189, /*OUTPUT*/o190, tc190); | |
fulladder(/*INPUT*/a191, b191, tc190, /*OUTPUT*/o191, tc191); | |
fulladder(/*INPUT*/a192, b192, tc191, /*OUTPUT*/o192, tc192); | |
fulladder(/*INPUT*/a193, b193, tc192, /*OUTPUT*/o193, tc193); | |
fulladder(/*INPUT*/a194, b194, tc193, /*OUTPUT*/o194, tc194); | |
fulladder(/*INPUT*/a195, b195, tc194, /*OUTPUT*/o195, tc195); | |
fulladder(/*INPUT*/a196, b196, tc195, /*OUTPUT*/o196, tc196); | |
fulladder(/*INPUT*/a197, b197, tc196, /*OUTPUT*/o197, tc197); | |
fulladder(/*INPUT*/a198, b198, tc197, /*OUTPUT*/o198, tc198); | |
fulladder(/*INPUT*/a199, b199, tc198, /*OUTPUT*/o199, tc199); | |
fulladder(/*INPUT*/a200, b200, tc199, /*OUTPUT*/o200, tc200); | |
fulladder(/*INPUT*/a201, b201, tc200, /*OUTPUT*/o201, tc201); | |
fulladder(/*INPUT*/a202, b202, tc201, /*OUTPUT*/o202, overflow); | |
} | |
int main() | |
{ | |
PIN(a0); PIN(a1); PIN(a2); PIN(a3); PIN(a4); PIN(a5); PIN(a6); PIN(a7); PIN(a8); PIN(a9); PIN(a10); PIN(a11); PIN(a12); PIN(a13); PIN(a14); PIN(a15); PIN(a16); PIN(a17); PIN(a18); PIN(a19); PIN(a20); PIN(a21); PIN(a22); PIN(a23); PIN(a24); PIN(a25); PIN(a26); PIN(a27); PIN(a28); PIN(a29); PIN(a30); PIN(a31); PIN(a32); PIN(a33); PIN(a34); PIN(a35); PIN(a36); PIN(a37); PIN(a38); PIN(a39); PIN(a40); PIN(a41); PIN(a42); PIN(a43); PIN(a44); PIN(a45); PIN(a46); PIN(a47); PIN(a48); PIN(a49); PIN(a50); PIN(a51); PIN(a52); PIN(a53); PIN(a54); PIN(a55); PIN(a56); PIN(a57); PIN(a58); PIN(a59); PIN(a60); PIN(a61); PIN(a62); PIN(a63); PIN(a64); PIN(a65); PIN(a66); PIN(a67); PIN(a68); PIN(a69); PIN(a70); PIN(a71); PIN(a72); PIN(a73); PIN(a74); PIN(a75); PIN(a76); PIN(a77); PIN(a78); PIN(a79); PIN(a80); PIN(a81); PIN(a82); PIN(a83); PIN(a84); PIN(a85); PIN(a86); PIN(a87); PIN(a88); PIN(a89); PIN(a90); PIN(a91); PIN(a92); PIN(a93); PIN(a94); PIN(a95); PIN(a96); PIN(a97); PIN(a98); PIN(a99); PIN(a100); PIN(a101); PIN(a102); PIN(a103); PIN(a104); PIN(a105); PIN(a106); PIN(a107); PIN(a108); PIN(a109); PIN(a110); PIN(a111); PIN(a112); PIN(a113); PIN(a114); PIN(a115); PIN(a116); PIN(a117); PIN(a118); PIN(a119); PIN(a120); PIN(a121); PIN(a122); PIN(a123); PIN(a124); PIN(a125); PIN(a126); PIN(a127); PIN(a128); PIN(a129); PIN(a130); PIN(a131); PIN(a132); PIN(a133); PIN(a134); PIN(a135); PIN(a136); PIN(a137); PIN(a138); PIN(a139); PIN(a140); PIN(a141); PIN(a142); PIN(a143); PIN(a144); PIN(a145); PIN(a146); PIN(a147); PIN(a148); PIN(a149); PIN(a150); PIN(a151); PIN(a152); PIN(a153); PIN(a154); PIN(a155); PIN(a156); PIN(a157); PIN(a158); PIN(a159); PIN(a160); PIN(a161); PIN(a162); PIN(a163); PIN(a164); PIN(a165); PIN(a166); PIN(a167); PIN(a168); PIN(a169); PIN(a170); PIN(a171); PIN(a172); PIN(a173); PIN(a174); PIN(a175); PIN(a176); PIN(a177); PIN(a178); PIN(a179); PIN(a180); PIN(a181); PIN(a182); PIN(a183); PIN(a184); PIN(a185); PIN(a186); PIN(a187); PIN(a188); PIN(a189); PIN(a190); PIN(a191); PIN(a192); PIN(a193); PIN(a194); PIN(a195); PIN(a196); PIN(a197); PIN(a198); PIN(a199); PIN(a200); PIN(a201); PIN(a202); PIN(b0); PIN(b1); PIN(b2); PIN(b3); PIN(b4); PIN(b5); PIN(b6); PIN(b7); PIN(b8); PIN(b9); PIN(b10); PIN(b11); PIN(b12); PIN(b13); PIN(b14); PIN(b15); PIN(b16); PIN(b17); PIN(b18); PIN(b19); PIN(b20); PIN(b21); PIN(b22); PIN(b23); PIN(b24); PIN(b25); PIN(b26); PIN(b27); PIN(b28); PIN(b29); PIN(b30); PIN(b31); PIN(b32); PIN(b33); PIN(b34); PIN(b35); PIN(b36); PIN(b37); PIN(b38); PIN(b39); PIN(b40); PIN(b41); PIN(b42); PIN(b43); PIN(b44); PIN(b45); PIN(b46); PIN(b47); PIN(b48); PIN(b49); PIN(b50); PIN(b51); PIN(b52); PIN(b53); PIN(b54); PIN(b55); PIN(b56); PIN(b57); PIN(b58); PIN(b59); PIN(b60); PIN(b61); PIN(b62); PIN(b63); PIN(b64); PIN(b65); PIN(b66); PIN(b67); PIN(b68); PIN(b69); PIN(b70); PIN(b71); PIN(b72); PIN(b73); PIN(b74); PIN(b75); PIN(b76); PIN(b77); PIN(b78); PIN(b79); PIN(b80); PIN(b81); PIN(b82); PIN(b83); PIN(b84); PIN(b85); PIN(b86); PIN(b87); PIN(b88); PIN(b89); PIN(b90); PIN(b91); PIN(b92); PIN(b93); PIN(b94); PIN(b95); PIN(b96); PIN(b97); PIN(b98); PIN(b99); PIN(b100); PIN(b101); PIN(b102); PIN(b103); PIN(b104); PIN(b105); PIN(b106); PIN(b107); PIN(b108); PIN(b109); PIN(b110); PIN(b111); PIN(b112); PIN(b113); PIN(b114); PIN(b115); PIN(b116); PIN(b117); PIN(b118); PIN(b119); PIN(b120); PIN(b121); PIN(b122); PIN(b123); PIN(b124); PIN(b125); PIN(b126); PIN(b127); PIN(b128); PIN(b129); PIN(b130); PIN(b131); PIN(b132); PIN(b133); PIN(b134); PIN(b135); PIN(b136); PIN(b137); PIN(b138); PIN(b139); PIN(b140); PIN(b141); PIN(b142); PIN(b143); PIN(b144); PIN(b145); PIN(b146); PIN(b147); PIN(b148); PIN(b149); PIN(b150); PIN(b151); PIN(b152); PIN(b153); PIN(b154); PIN(b155); PIN(b156); PIN(b157); PIN(b158); PIN(b159); PIN(b160); PIN(b161); PIN(b162); PIN(b163); PIN(b164); PIN(b165); PIN(b166); PIN(b167); PIN(b168); PIN(b169); PIN(b170); PIN(b171); PIN(b172); PIN(b173); PIN(b174); PIN(b175); PIN(b176); PIN(b177); PIN(b178); PIN(b179); PIN(b180); PIN(b181); PIN(b182); PIN(b183); PIN(b184); PIN(b185); PIN(b186); PIN(b187); PIN(b188); PIN(b189); PIN(b190); PIN(b191); PIN(b192); PIN(b193); PIN(b194); PIN(b195); PIN(b196); PIN(b197); PIN(b198); PIN(b199); PIN(b200); PIN(b201); PIN(b202); PIN(s0); PIN(s1); PIN(s2); PIN(s3); PIN(s4); PIN(s5); PIN(s6); PIN(s7); PIN(s8); PIN(s9); PIN(s10); PIN(s11); PIN(s12); PIN(s13); PIN(s14); PIN(s15); PIN(s16); PIN(s17); PIN(s18); PIN(s19); PIN(s20); PIN(s21); PIN(s22); PIN(s23); PIN(s24); PIN(s25); PIN(s26); PIN(s27); PIN(s28); PIN(s29); PIN(s30); PIN(s31); PIN(s32); PIN(s33); PIN(s34); PIN(s35); PIN(s36); PIN(s37); PIN(s38); PIN(s39); PIN(s40); PIN(s41); PIN(s42); PIN(s43); PIN(s44); PIN(s45); PIN(s46); PIN(s47); PIN(s48); PIN(s49); PIN(s50); PIN(s51); PIN(s52); PIN(s53); PIN(s54); PIN(s55); PIN(s56); PIN(s57); PIN(s58); PIN(s59); PIN(s60); PIN(s61); PIN(s62); PIN(s63); PIN(s64); PIN(s65); PIN(s66); PIN(s67); PIN(s68); PIN(s69); PIN(s70); PIN(s71); PIN(s72); PIN(s73); PIN(s74); PIN(s75); PIN(s76); PIN(s77); PIN(s78); PIN(s79); PIN(s80); PIN(s81); PIN(s82); PIN(s83); PIN(s84); PIN(s85); PIN(s86); PIN(s87); PIN(s88); PIN(s89); PIN(s90); PIN(s91); PIN(s92); PIN(s93); PIN(s94); PIN(s95); PIN(s96); PIN(s97); PIN(s98); PIN(s99); PIN(s100); PIN(s101); PIN(s102); PIN(s103); PIN(s104); PIN(s105); PIN(s106); PIN(s107); PIN(s108); PIN(s109); PIN(s110); PIN(s111); PIN(s112); PIN(s113); PIN(s114); PIN(s115); PIN(s116); PIN(s117); PIN(s118); PIN(s119); PIN(s120); PIN(s121); PIN(s122); PIN(s123); PIN(s124); PIN(s125); PIN(s126); PIN(s127); PIN(s128); PIN(s129); PIN(s130); PIN(s131); PIN(s132); PIN(s133); PIN(s134); PIN(s135); PIN(s136); PIN(s137); PIN(s138); PIN(s139); PIN(s140); PIN(s141); PIN(s142); PIN(s143); PIN(s144); PIN(s145); PIN(s146); PIN(s147); PIN(s148); PIN(s149); PIN(s150); PIN(s151); PIN(s152); PIN(s153); PIN(s154); PIN(s155); PIN(s156); PIN(s157); PIN(s158); PIN(s159); PIN(s160); PIN(s161); PIN(s162); PIN(s163); PIN(s164); PIN(s165); PIN(s166); PIN(s167); PIN(s168); PIN(s169); PIN(s170); PIN(s171); PIN(s172); PIN(s173); PIN(s174); PIN(s175); PIN(s176); PIN(s177); PIN(s178); PIN(s179); PIN(s180); PIN(s181); PIN(s182); PIN(s183); PIN(s184); PIN(s185); PIN(s186); PIN(s187); PIN(s188); PIN(s189); PIN(s190); PIN(s191); PIN(s192); PIN(s193); PIN(s194); PIN(s195); PIN(s196); PIN(s197); PIN(s198); PIN(s199); PIN(s200); PIN(s201); PIN(s202); | |
PIN(overflow); | |
V(a0) = 1; V(b0) = 1; | |
V(a1) = 1; V(b1) = 0; | |
V(a2) = 0; V(b2) = 1; | |
V(a3) = 0; V(b3) = 0; | |
V(a4) = 0; V(b4) = 0; | |
V(a5) = 1; V(b5) = 1; | |
V(a6) = 0; V(b6) = 1; | |
V(a7) = 0; V(b7) = 1; | |
V(a8) = 0; V(b8) = 1; | |
V(a9) = 0; V(b9) = 1; | |
V(a10) = 1; V(b10) = 1; | |
V(a11) = 1; V(b11) = 0; | |
V(a12) = 0; V(b12) = 0; | |
V(a13) = 1; V(b13) = 1; | |
V(a14) = 1; V(b14) = 0; | |
V(a15) = 0; V(b15) = 0; | |
V(a16) = 0; V(b16) = 0; | |
V(a17) = 0; V(b17) = 0; | |
V(a18) = 0; V(b18) = 0; | |
V(a19) = 0; V(b19) = 0; | |
V(a20) = 0; V(b20) = 0; | |
V(a21) = 1; V(b21) = 0; | |
V(a22) = 1; V(b22) = 1; | |
V(a23) = 1; V(b23) = 1; | |
V(a24) = 0; V(b24) = 0; | |
V(a25) = 0; V(b25) = 1; | |
V(a26) = 0; V(b26) = 1; | |
V(a27) = 1; V(b27) = 0; | |
V(a28) = 1; V(b28) = 1; | |
V(a29) = 1; V(b29) = 1; | |
V(a30) = 1; V(b30) = 0; | |
V(a31) = 1; V(b31) = 0; | |
V(a32) = 1; V(b32) = 0; | |
V(a33) = 1; V(b33) = 0; | |
V(a34) = 0; V(b34) = 0; | |
V(a35) = 0; V(b35) = 0; | |
V(a36) = 0; V(b36) = 0; | |
V(a37) = 0; V(b37) = 0; | |
V(a38) = 0; V(b38) = 0; | |
V(a39) = 1; V(b39) = 0; | |
V(a40) = 0; V(b40) = 0; | |
V(a41) = 0; V(b41) = 1; | |
V(a42) = 0; V(b42) = 0; | |
V(a43) = 0; V(b43) = 0; | |
V(a44) = 0; V(b44) = 0; | |
V(a45) = 0; V(b45) = 0; | |
V(a46) = 0; V(b46) = 0; | |
V(a47) = 0; V(b47) = 1; | |
V(a48) = 1; V(b48) = 0; | |
V(a49) = 0; V(b49) = 0; | |
V(a50) = 1; V(b50) = 1; | |
V(a51) = 1; V(b51) = 1; | |
V(a52) = 0; V(b52) = 1; | |
V(a53) = 1; V(b53) = 1; | |
V(a54) = 1; V(b54) = 1; | |
V(a55) = 0; V(b55) = 1; | |
V(a56) = 1; V(b56) = 0; | |
V(a57) = 1; V(b57) = 0; | |
V(a58) = 0; V(b58) = 0; | |
V(a59) = 1; V(b59) = 1; | |
V(a60) = 0; V(b60) = 1; | |
V(a61) = 1; V(b61) = 0; | |
V(a62) = 0; V(b62) = 0; | |
V(a63) = 1; V(b63) = 1; | |
V(a64) = 0; V(b64) = 0; | |
V(a65) = 0; V(b65) = 0; | |
V(a66) = 1; V(b66) = 0; | |
V(a67) = 1; V(b67) = 1; | |
V(a68) = 0; V(b68) = 0; | |
V(a69) = 0; V(b69) = 0; | |
V(a70) = 1; V(b70) = 1; | |
V(a71) = 0; V(b71) = 1; | |
V(a72) = 0; V(b72) = 0; | |
V(a73) = 1; V(b73) = 0; | |
V(a74) = 0; V(b74) = 1; | |
V(a75) = 1; V(b75) = 1; | |
V(a76) = 0; V(b76) = 0; | |
V(a77) = 0; V(b77) = 1; | |
V(a78) = 0; V(b78) = 1; | |
V(a79) = 0; V(b79) = 0; | |
V(a80) = 0; V(b80) = 1; | |
V(a81) = 1; V(b81) = 1; | |
V(a82) = 0; V(b82) = 0; | |
V(a83) = 0; V(b83) = 0; | |
V(a84) = 0; V(b84) = 0; | |
V(a85) = 1; V(b85) = 0; | |
V(a86) = 0; V(b86) = 0; | |
V(a87) = 1; V(b87) = 1; | |
V(a88) = 0; V(b88) = 1; | |
V(a89) = 1; V(b89) = 0; | |
V(a90) = 0; V(b90) = 1; | |
V(a91) = 0; V(b91) = 0; | |
V(a92) = 0; V(b92) = 0; | |
V(a93) = 0; V(b93) = 0; | |
V(a94) = 1; V(b94) = 1; | |
V(a95) = 0; V(b95) = 0; | |
V(a96) = 1; V(b96) = 0; | |
V(a97) = 1; V(b97) = 0; | |
V(a98) = 1; V(b98) = 0; | |
V(a99) = 1; V(b99) = 1; | |
V(a100) = 1; V(b100) = 0; | |
V(a101) = 0; V(b101) = 1; | |
V(a102) = 0; V(b102) = 0; | |
V(a103) = 0; V(b103) = 0; | |
V(a104) = 0; V(b104) = 0; | |
V(a105) = 0; V(b105) = 0; | |
V(a106) = 1; V(b106) = 0; | |
V(a107) = 0; V(b107) = 0; | |
V(a108) = 0; V(b108) = 0; | |
V(a109) = 0; V(b109) = 1; | |
V(a110) = 1; V(b110) = 1; | |
V(a111) = 1; V(b111) = 0; | |
V(a112) = 1; V(b112) = 0; | |
V(a113) = 1; V(b113) = 1; | |
V(a114) = 0; V(b114) = 1; | |
V(a115) = 0; V(b115) = 1; | |
V(a116) = 1; V(b116) = 1; | |
V(a117) = 1; V(b117) = 0; | |
V(a118) = 0; V(b118) = 0; | |
V(a119) = 0; V(b119) = 1; | |
V(a120) = 1; V(b120) = 1; | |
V(a121) = 1; V(b121) = 0; | |
V(a122) = 0; V(b122) = 0; | |
V(a123) = 0; V(b123) = 0; | |
V(a124) = 1; V(b124) = 1; | |
V(a125) = 0; V(b125) = 1; | |
V(a126) = 0; V(b126) = 0; | |
V(a127) = 0; V(b127) = 1; | |
V(a128) = 0; V(b128) = 1; | |
V(a129) = 1; V(b129) = 1; | |
V(a130) = 1; V(b130) = 1; | |
V(a131) = 0; V(b131) = 1; | |
V(a132) = 0; V(b132) = 0; | |
V(a133) = 0; V(b133) = 1; | |
V(a134) = 0; V(b134) = 0; | |
V(a135) = 0; V(b135) = 1; | |
V(a136) = 0; V(b136) = 0; | |
V(a137) = 0; V(b137) = 0; | |
V(a138) = 1; V(b138) = 1; | |
V(a139) = 1; V(b139) = 0; | |
V(a140) = 1; V(b140) = 1; | |
V(a141) = 1; V(b141) = 1; | |
V(a142) = 0; V(b142) = 0; | |
V(a143) = 1; V(b143) = 1; | |
V(a144) = 1; V(b144) = 0; | |
V(a145) = 0; V(b145) = 0; | |
V(a146) = 0; V(b146) = 0; | |
V(a147) = 0; V(b147) = 1; | |
V(a148) = 1; V(b148) = 1; | |
V(a149) = 0; V(b149) = 0; | |
V(a150) = 1; V(b150) = 1; | |
V(a151) = 0; V(b151) = 1; | |
V(a152) = 1; V(b152) = 0; | |
V(a153) = 0; V(b153) = 1; | |
V(a154) = 0; V(b154) = 0; | |
V(a155) = 1; V(b155) = 0; | |
V(a156) = 0; V(b156) = 1; | |
V(a157) = 1; V(b157) = 0; | |
V(a158) = 0; V(b158) = 0; | |
V(a159) = 0; V(b159) = 0; | |
V(a160) = 0; V(b160) = 1; | |
V(a161) = 0; V(b161) = 0; | |
V(a162) = 0; V(b162) = 1; | |
V(a163) = 0; V(b163) = 1; | |
V(a164) = 0; V(b164) = 0; | |
V(a165) = 0; V(b165) = 0; | |
V(a166) = 1; V(b166) = 1; | |
V(a167) = 0; V(b167) = 1; | |
V(a168) = 0; V(b168) = 0; | |
V(a169) = 0; V(b169) = 1; | |
V(a170) = 0; V(b170) = 0; | |
V(a171) = 0; V(b171) = 0; | |
V(a172) = 0; V(b172) = 0; | |
V(a173) = 1; V(b173) = 0; | |
V(a174) = 1; V(b174) = 1; | |
V(a175) = 0; V(b175) = 0; | |
V(a176) = 1; V(b176) = 1; | |
V(a177) = 1; V(b177) = 0; | |
V(a178) = 0; V(b178) = 0; | |
V(a179) = 1; V(b179) = 1; | |
V(a180) = 0; V(b180) = 0; | |
V(a181) = 0; V(b181) = 0; | |
V(a182) = 0; V(b182) = 1; | |
V(a183) = 1; V(b183) = 1; | |
V(a184) = 1; V(b184) = 1; | |
V(a185) = 1; V(b185) = 1; | |
V(a186) = 1; V(b186) = 1; | |
V(a187) = 1; V(b187) = 1; | |
V(a188) = 1; V(b188) = 0; | |
V(a189) = 1; V(b189) = 1; | |
V(a190) = 1; V(b190) = 0; | |
V(a191) = 1; V(b191) = 0; | |
V(a192) = 1; V(b192) = 0; | |
V(a193) = 1; V(b193) = 0; | |
V(a194) = 0; V(b194) = 1; | |
V(a195) = 1; V(b195) = 0; | |
V(a196) = 1; V(b196) = 1; | |
V(a197) = 0; V(b197) = 1; | |
V(a198) = 1; V(b198) = 1; | |
V(a199) = 1; V(b199) = 0; | |
V(a200) = 0; V(b200) = 0; | |
V(a201) = 1; V(b201) = 0; | |
V(a202) = 0; V(b202) = 0; | |
fourbitsadder( a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, a61, a62, a63, a64, a65, a66, a67, a68, a69, a70, a71, a72, a73, a74, a75, a76, a77, a78, a79, a80, a81, a82, a83, a84, a85, a86, a87, a88, a89, a90, a91, a92, a93, a94, a95, a96, a97, a98, a99, a100, a101, a102, a103, a104, a105, a106, a107, a108, a109, a110, a111, a112, a113, a114, a115, a116, a117, a118, a119, a120, a121, a122, a123, a124, a125, a126, a127, a128, a129, a130, a131, a132, a133, a134, a135, a136, a137, a138, a139, a140, a141, a142, a143, a144, a145, a146, a147, a148, a149, a150, a151, a152, a153, a154, a155, a156, a157, a158, a159, a160, a161, a162, a163, a164, a165, a166, a167, a168, a169, a170, a171, a172, a173, a174, a175, a176, a177, a178, a179, a180, a181, a182, a183, a184, a185, a186, a187, a188, a189, a190, a191, a192, a193, a194, a195, a196, a197, a198, a199, a200, a201, a202, | |
b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49, b50, b51, b52, b53, b54, b55, b56, b57, b58, b59, b60, b61, b62, b63, b64, b65, b66, b67, b68, b69, b70, b71, b72, b73, b74, b75, b76, b77, b78, b79, b80, b81, b82, b83, b84, b85, b86, b87, b88, b89, b90, b91, b92, b93, b94, b95, b96, b97, b98, b99, b100, b101, b102, b103, b104, b105, b106, b107, b108, b109, b110, b111, b112, b113, b114, b115, b116, b117, b118, b119, b120, b121, b122, b123, b124, b125, b126, b127, b128, b129, b130, b131, b132, b133, b134, b135, b136, b137, b138, b139, b140, b141, b142, b143, b144, b145, b146, b147, b148, b149, b150, b151, b152, b153, b154, b155, b156, b157, b158, b159, b160, b161, b162, b163, b164, b165, b166, b167, b168, b169, b170, b171, b172, b173, b174, b175, b176, b177, b178, b179, b180, b181, b182, b183, b184, b185, b186, b187, b188, b189, b190, b191, b192, b193, b194, b195, b196, b197, b198, b199, b200, b201, b202, | |
s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, s17, s18, s19, s20, s21, s22, s23, s24, s25, s26, s27, s28, s29, s30, s31, s32, s33, s34, s35, s36, s37, s38, s39, s40, s41, s42, s43, s44, s45, s46, s47, s48, s49, s50, s51, s52, s53, s54, s55, s56, s57, s58, s59, s60, s61, s62, s63, s64, s65, s66, s67, s68, s69, s70, s71, s72, s73, s74, s75, s76, s77, s78, s79, s80, s81, s82, s83, s84, s85, s86, s87, s88, s89, s90, s91, s92, s93, s94, s95, s96, s97, s98, s99, s100, s101, s102, s103, s104, s105, s106, s107, s108, s109, s110, s111, s112, s113, s114, s115, s116, s117, s118, s119, s120, s121, s122, s123, s124, s125, s126, s127, s128, s129, s130, s131, s132, s133, s134, s135, s136, s137, s138, s139, s140, s141, s142, s143, s144, s145, s146, s147, s148, s149, s150, s151, s152, s153, s154, s155, s156, s157, s158, s159, s160, s161, s162, s163, s164, s165, s166, s167, s168, s169, s170, s171, s172, s173, s174, s175, s176, s177, s178, s179, s180, s181, s182, s183, s184, s185, s186, s187, s188, s189, s190, s191, s192, s193, s194, s195, s196, s197, s198, s199, s200, s201, s202, overflow); | |
printf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d + %d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d = %d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d, overflow = %d", | |
V(a202), V(a201), V(a200), V(a199), V(a198), V(a197), V(a196), V(a195), V(a194), V(a193), V(a192), V(a191), V(a190), V(a189), V(a188), V(a187), V(a186), V(a185), V(a184), V(a183), V(a182), V(a181), V(a180), V(a179), V(a178), V(a177), V(a176), V(a175), V(a174), V(a173), V(a172), V(a171), V(a170), V(a169), V(a168), V(a167), V(a166), V(a165), V(a164), V(a163), V(a162), V(a161), V(a160), V(a159), V(a158), V(a157), V(a156), V(a155), V(a154), V(a153), V(a152), V(a151), V(a150), V(a149), V(a148), V(a147), V(a146), V(a145), V(a144), V(a143), V(a142), V(a141), V(a140), V(a139), V(a138), V(a137), V(a136), V(a135), V(a134), V(a133), V(a132), V(a131), V(a130), V(a129), V(a128), V(a127), V(a126), V(a125), V(a124), V(a123), V(a122), V(a121), V(a120), V(a119), V(a118), V(a117), V(a116), V(a115), V(a114), V(a113), V(a112), V(a111), V(a110), V(a109), V(a108), V(a107), V(a106), V(a105), V(a104), V(a103), V(a102), V(a101), V(a100), V(a99), V(a98), V(a97), V(a96), V(a95), V(a94), V(a93), V(a92), V(a91), V(a90), V(a89), V(a88), V(a87), V(a86), V(a85), V(a84), V(a83), V(a82), V(a81), V(a80), V(a79), V(a78), V(a77), V(a76), V(a75), V(a74), V(a73), V(a72), V(a71), V(a70), V(a69), V(a68), V(a67), V(a66), V(a65), V(a64), V(a63), V(a62), V(a61), V(a60), V(a59), V(a58), V(a57), V(a56), V(a55), V(a54), V(a53), V(a52), V(a51), V(a50), V(a49), V(a48), V(a47), V(a46), V(a45), V(a44), V(a43), V(a42), V(a41), V(a40), V(a39), V(a38), V(a37), V(a36), V(a35), V(a34), V(a33), V(a32), V(a31), V(a30), V(a29), V(a28), V(a27), V(a26), V(a25), V(a24), V(a23), V(a22), V(a21), V(a20), V(a19), V(a18), V(a17), V(a16), V(a15), V(a14), V(a13), V(a12), V(a11), V(a10), V(a9), V(a8), V(a7), V(a6), V(a5), V(a4), V(a3), V(a2), V(a1), V(a0), V(b202), V(b201), V(b200), V(b199), V(b198), V(b197), V(b196), V(b195), V(b194), V(b193), V(b192), V(b191), V(b190), V(b189), V(b188), V(b187), V(b186), V(b185), V(b184), V(b183), V(b182), V(b181), V(b180), V(b179), V(b178), V(b177), V(b176), V(b175), V(b174), V(b173), V(b172), V(b171), V(b170), V(b169), V(b168), V(b167), V(b166), V(b165), V(b164), V(b163), V(b162), V(b161), V(b160), V(b159), V(b158), V(b157), V(b156), V(b155), V(b154), V(b153), V(b152), V(b151), V(b150), V(b149), V(b148), V(b147), V(b146), V(b145), V(b144), V(b143), V(b142), V(b141), V(b140), V(b139), V(b138), V(b137), V(b136), V(b135), V(b134), V(b133), V(b132), V(b131), V(b130), V(b129), V(b128), V(b127), V(b126), V(b125), V(b124), V(b123), V(b122), V(b121), V(b120), V(b119), V(b118), V(b117), V(b116), V(b115), V(b114), V(b113), V(b112), V(b111), V(b110), V(b109), V(b108), V(b107), V(b106), V(b105), V(b104), V(b103), V(b102), V(b101), V(b100), V(b99), V(b98), V(b97), V(b96), V(b95), V(b94), V(b93), V(b92), V(b91), V(b90), V(b89), V(b88), V(b87), V(b86), V(b85), V(b84), V(b83), V(b82), V(b81), V(b80), V(b79), V(b78), V(b77), V(b76), V(b75), V(b74), V(b73), V(b72), V(b71), V(b70), V(b69), V(b68), V(b67), V(b66), V(b65), V(b64), V(b63), V(b62), V(b61), V(b60), V(b59), V(b58), V(b57), V(b56), V(b55), V(b54), V(b53), V(b52), V(b51), V(b50), V(b49), V(b48), V(b47), V(b46), V(b45), V(b44), V(b43), V(b42), V(b41), V(b40), V(b39), V(b38), V(b37), V(b36), V(b35), V(b34), V(b33), V(b32), V(b31), V(b30), V(b29), V(b28), V(b27), V(b26), V(b25), V(b24), V(b23), V(b22), V(b21), V(b20), V(b19), V(b18), V(b17), V(b16), V(b15), V(b14), V(b13), V(b12), V(b11), V(b10), V(b9), V(b8), V(b7), V(b6), V(b5), V(b4), V(b3), V(b2), V(b1), V(b0), V(s202), V(s201), V(s200), V(s199), V(s198), V(s197), V(s196), V(s195), V(s194), V(s193), V(s192), V(s191), V(s190), V(s189), V(s188), V(s187), V(s186), V(s185), V(s184), V(s183), V(s182), V(s181), V(s180), V(s179), V(s178), V(s177), V(s176), V(s175), V(s174), V(s173), V(s172), V(s171), V(s170), V(s169), V(s168), V(s167), V(s166), V(s165), V(s164), V(s163), V(s162), V(s161), V(s160), V(s159), V(s158), V(s157), V(s156), V(s155), V(s154), V(s153), V(s152), V(s151), V(s150), V(s149), V(s148), V(s147), V(s146), V(s145), V(s144), V(s143), V(s142), V(s141), V(s140), V(s139), V(s138), V(s137), V(s136), V(s135), V(s134), V(s133), V(s132), V(s131), V(s130), V(s129), V(s128), V(s127), V(s126), V(s125), V(s124), V(s123), V(s122), V(s121), V(s120), V(s119), V(s118), V(s117), V(s116), V(s115), V(s114), V(s113), V(s112), V(s111), V(s110), V(s109), V(s108), V(s107), V(s106), V(s105), V(s104), V(s103), V(s102), V(s101), V(s100), V(s99), V(s98), V(s97), V(s96), V(s95), V(s94), V(s93), V(s92), V(s91), V(s90), V(s89), V(s88), V(s87), V(s86), V(s85), V(s84), V(s83), V(s82), V(s81), V(s80), V(s79), V(s78), V(s77), V(s76), V(s75), V(s74), V(s73), V(s72), V(s71), V(s70), V(s69), V(s68), V(s67), V(s66), V(s65), V(s64), V(s63), V(s62), V(s61), V(s60), V(s59), V(s58), V(s57), V(s56), V(s55), V(s54), V(s53), V(s52), V(s51), V(s50), V(s49), V(s48), V(s47), V(s46), V(s45), V(s44), V(s43), V(s42), V(s41), V(s40), V(s39), V(s38), V(s37), V(s36), V(s35), V(s34), V(s33), V(s32), V(s31), V(s30), V(s29), V(s28), V(s27), V(s26), V(s25), V(s24), V(s23), V(s22), V(s21), V(s20), V(s19), V(s18), V(s17), V(s16), V(s15), V(s14), V(s13), V(s12), V(s11), V(s10), V(s9), V(s8), V(s7), V(s6), V(s5), V(s4), V(s3), V(s2), V(s1), V(s0), V(overflow)); | |
printf("\n"); | |
return 0; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
number1 = "9853093589043580589459084359084598530930973983758934780935898" | |
number2 = "8430934890348304983409834098340084309348748093470934738903408" | |
#number1 = "100" | |
#number2 = "100" | |
number1 = '{0:b}'.format(int(number1)) | |
number2 = '{0:b}'.format(int(number2)) | |
count = len(number1) | |
number1 = str(number1) | |
number2 = str(number2) | |
print """ | |
#include <stdio.h> | |
typedef char pin_t; | |
#define IN const pin_t * | |
#define OUT pin_t * | |
#define PIN(X) pin_t _##X; pin_t *X = & _##X; | |
#define V(X) (*(X)) | |
#define NOT(X) (~(X)&1) | |
#define XOR(X,Y) ((NOT(X)&(Y)) | ((X)&NOT(Y))) | |
void halfadder(IN a, IN b, OUT s, OUT c) | |
{ | |
V(s) = XOR(V(a), V(b)); | |
V(c) = V(a) & V(b); | |
} | |
void fulladder(IN a, IN b, IN ic, OUT s, OUT oc) | |
{ | |
PIN(ps); PIN(pc); PIN(tc); | |
halfadder(/*INPUT*/a, b, /*OUTPUT*/ps, pc); | |
halfadder(/*INPUT*/ps, ic, /*OUTPUT*/s, tc); | |
V(oc) = V(tc) | V(pc); | |
} | |
""" | |
print "void fourbitsadder(", | |
for n in range(0,count): | |
print "IN "+"a"+str(n)+", ", | |
for n in range(0,count): | |
print "IN "+"b"+str(n)+", ", | |
for n in range(0,count): | |
print "OUT "+"o"+str(n)+", ", | |
print "OUT overflow)" | |
print """ | |
{ | |
\tPIN(zero); V(zero) = 0; | |
""" | |
for num in range(0,count): | |
print "PIN(tc"+str(num)+");", | |
print "\n\tfulladder(/*INPUT*/a0, b0, zero, /*OUTPUT*/o0, tc0);" | |
for num in range(1,count-1): | |
print "\t"+"fulladder(/*INPUT*/"+"a"+str(num)+", "+"b"+str(num)+", "+"tc"+str(num-1)+", "+"/*OUTPUT*/"+"o"+str(num)+", "+"tc"+str(num)+");" | |
print "\tfulladder(/*INPUT*/a"+str(count-1)+", "+"b"+str(count-1)+", "+"tc"+str(count-2)+", /*OUTPUT*/o"+str(count-1)+", "+ "overflow);" | |
print "}" | |
print """ | |
int main() | |
{ | |
""" | |
for num in range(0,count): | |
print "\tPIN(a"+str(num)+");", | |
for num in range(0,count): | |
print "\tPIN(b"+str(num)+");", | |
for num in range(0,count): | |
print "\tPIN(s"+str(num)+");", | |
print "\n\tPIN(overflow);" | |
for num in range(0,count): | |
print "\t"+"V(a"+str(num)+") = "+str(number1[num])+"; V(b"+str(num)+") = "+str(number2[num])+";" | |
print "\n\tfourbitsadder(", | |
for num in range(0,count): | |
print "a"+str(num)+", ", | |
print "\n" | |
for num in range(0,count): | |
print "b"+str(num)+", ", | |
print "\n" | |
for num in range(0,count): | |
print "s"+str(num)+", ", | |
print "overflow);" | |
print "\tprintf(\""+count*"%d"+" + "+count*"%d"+" = "+count*"%d"+", overflow = %d\"," | |
print "\t", | |
for num in range(0,count): | |
print "V(a"+str((count-1)-num)+"), ", | |
for num in range(0,count): | |
print "V(b"+str((count-1)-num)+"), ", | |
for num in range(0,count): | |
print "V(s"+str((count-1)-num)+"), ", | |
print "V(overflow));" | |
print "\tprintf(\"\\n\");" | |
print "\treturn 0;" | |
print "}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment