From 6bbe9eb253687196cfc16efa0176fda9e107a03c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Klh=C5=AFfek?= Date: Fri, 24 Feb 2023 13:34:35 +0100 Subject: [PATCH] Implemented new parallel prefix adders and added the possibility for better configuration of partial product accumulators (adders) used in multipliers. (#18) --- README.md | 2 +- ariths_gen/__init__.py | 2 +- .../core/arithmetic_circuits/__init__.py | 2 +- .../arithmetic_circuits/arithmetic_circuit.py | 6 +- .../arithmetic_circuits/general_circuit.py | 62 +- ariths_gen/core/cgp_circuit.py | 4 +- ariths_gen/core/one_bit_circuits/__init__.py | 4 + .../four_input_one_bit_circuit.py | 215 +++ .../two_input_one_bit_circuit.py | 2 +- .../multi_bit_circuits/adders/__init__.py | 46 + .../adders/brent_kung_adder.py | 215 +++ .../adders/carry_increment_adder.py | 169 ++ .../adders/carry_lookahead_adder.py | 91 +- .../adders/carry_save_adder.py | 8 +- .../adders/carry_select_adder.py | 180 ++ .../adders/carry_skip_adder.py | 26 +- .../adders/conditional_sum_adder.py | 282 +++ .../adders/han_carlson_adder.py | 245 +++ .../adders/knowles_adder.py | 204 ++ .../adders/kogge_stone_adder.py | 188 ++ .../adders/ladner_fischer_adder.py | 249 +++ .../adders/pg_ripple_carry_adder.py | 38 +- .../adders/ripple_carry_adder.py | 4 +- .../adders/sklansky_adder.py | 191 ++ .../approximate_multipliers/__init__.py | 2 +- .../broken_array_multiplier.py | 3 +- .../broken_carry_save_multiplier.py | 3 +- .../truncated_array_multiplier.py | 3 +- .../truncated_carry_save_multiplier.py | 3 +- .../dividers/array_divider.py | 1 - .../multipliers/array_multiplier.py | 5 +- .../multipliers/carry_save_multiplier.py | 7 +- .../multipliers/dadda_multiplier.py | 7 +- .../multipliers/wallace_multiplier.py | 11 +- .../one_bit_components/__init__.py | 13 +- .../four_input_one_bit_components.py | 59 + .../three_input_one_bit_components.py | 154 +- .../two_input_one_bit_components.py | 22 +- ariths_gen/pdk.py | 12 +- ariths_gen/wire_components/buses.py | 2 +- ariths_gen/wire_components/wires.py | 3 +- c_circuits_simulation_tests/README.md | 15 - .../c_circuits/flat/adders/f_fa.c | 33 - .../c_circuits/flat/adders/f_ha.c | 25 - .../c_circuits/flat/adders/f_s_cla4.c | 102 - .../c_circuits/flat/adders/f_s_cla8.c | 198 -- .../c_circuits/flat/adders/f_s_cska4.c | 88 - .../c_circuits/flat/adders/f_s_cska8.c | 154 -- .../c_circuits/flat/adders/f_s_pg_rca4.c | 70 - .../c_circuits/flat/adders/f_s_pg_rca8.c | 114 -- .../c_circuits/flat/adders/f_s_rca4.c | 70 - .../c_circuits/flat/adders/f_s_rca8.c | 114 -- .../c_circuits/flat/adders/f_u_cla4.c | 90 - .../c_circuits/flat/adders/f_u_cla8.c | 186 -- .../c_circuits/flat/adders/f_u_cska4.c | 76 - .../c_circuits/flat/adders/f_u_cska8.c | 142 -- .../c_circuits/flat/adders/f_u_pg_rca4.c | 58 - .../c_circuits/flat/adders/f_u_pg_rca8.c | 102 - .../c_circuits/flat/adders/f_u_rca4.c | 58 - .../c_circuits/flat/adders/f_u_rca8.c | 102 - .../c_circuits/flat/dividers/f_arrdiv4.c | 277 --- .../c_circuits/flat/dividers/f_arrdiv8.c | 1217 ------------ .../c_circuits/flat/multipliers/f_s_arrmul4.c | 169 -- .../c_circuits/flat/multipliers/f_s_arrmul8.c | 689 ------- .../flat/multipliers/f_s_dadda_cla4.c | 211 -- .../flat/multipliers/f_s_dadda_cla8.c | 835 -------- .../flat/multipliers/f_s_dadda_cska4.c | 201 -- .../flat/multipliers/f_s_dadda_cska8.c | 765 -------- .../flat/multipliers/f_s_dadda_pg_rca4.c | 169 -- .../flat/multipliers/f_s_dadda_pg_rca8.c | 689 ------- .../flat/multipliers/f_s_dadda_rca4.c | 169 -- .../flat/multipliers/f_s_dadda_rca8.c | 689 ------- .../flat/multipliers/f_s_wallace_cla4.c | 211 -- .../flat/multipliers/f_s_wallace_cla8.c | 835 -------- .../flat/multipliers/f_s_wallace_cska4.c | 201 -- .../flat/multipliers/f_s_wallace_cska8.c | 765 -------- .../flat/multipliers/f_s_wallace_pg_rca4.c | 169 -- .../flat/multipliers/f_s_wallace_pg_rca8.c | 689 ------- .../flat/multipliers/f_s_wallace_rca4.c | 169 -- .../flat/multipliers/f_s_wallace_rca8.c | 689 ------- .../c_circuits/flat/multipliers/f_u_arrmul4.c | 155 -- .../c_circuits/flat/multipliers/f_u_arrmul8.c | 675 ------- .../flat/multipliers/f_u_dadda_cla4.c | 197 -- .../flat/multipliers/f_u_dadda_cla8.c | 821 -------- .../flat/multipliers/f_u_dadda_cska4.c | 187 -- .../flat/multipliers/f_u_dadda_cska8.c | 751 ------- .../flat/multipliers/f_u_dadda_pg_rca4.c | 155 -- .../flat/multipliers/f_u_dadda_pg_rca8.c | 675 ------- .../flat/multipliers/f_u_dadda_rca4.c | 155 -- .../flat/multipliers/f_u_dadda_rca8.c | 675 ------- .../flat/multipliers/f_u_wallace_cla4.c | 197 -- .../flat/multipliers/f_u_wallace_cla8.c | 821 -------- .../flat/multipliers/f_u_wallace_cska4.c | 187 -- .../flat/multipliers/f_u_wallace_cska8.c | 751 ------- .../flat/multipliers/f_u_wallace_pg_rca4.c | 155 -- .../flat/multipliers/f_u_wallace_pg_rca8.c | 675 ------- .../flat/multipliers/f_u_wallace_rca4.c | 155 -- .../flat/multipliers/f_u_wallace_rca8.c | 675 ------- .../c_circuits/hierarchical/adders/h_fa.c | 45 - .../c_circuits/hierarchical/adders/h_ha.c | 33 - .../c_circuits/hierarchical/adders/h_s_cla4.c | 130 -- .../c_circuits/hierarchical/adders/h_s_cla8.c | 226 --- .../hierarchical/adders/h_s_cska4.c | 132 -- .../hierarchical/adders/h_s_cska8.c | 168 -- .../hierarchical/adders/h_s_pg_rca4.c | 98 - .../hierarchical/adders/h_s_pg_rca8.c | 142 -- .../c_circuits/hierarchical/adders/h_s_rca4.c | 96 - .../c_circuits/hierarchical/adders/h_s_rca8.c | 116 -- .../c_circuits/hierarchical/adders/h_u_cla4.c | 118 -- .../c_circuits/hierarchical/adders/h_u_cla8.c | 214 -- .../hierarchical/adders/h_u_cska4.c | 120 -- .../hierarchical/adders/h_u_cska8.c | 156 -- .../hierarchical/adders/h_u_pg_rca4.c | 86 - .../hierarchical/adders/h_u_pg_rca8.c | 130 -- .../c_circuits/hierarchical/adders/h_u_rca4.c | 84 - .../c_circuits/hierarchical/adders/h_u_rca8.c | 104 - .../hierarchical/dividers/h_arrdiv4.c | 168 -- .../hierarchical/dividers/h_arrdiv8.c | 452 ----- .../hierarchical/multipliers/h_s_arrmul4.c | 169 -- .../hierarchical/multipliers/h_s_arrmul8.c | 449 ----- .../hierarchical/multipliers/h_s_dadda_cla4.c | 287 --- .../hierarchical/multipliers/h_s_dadda_cla8.c | 743 ------- .../multipliers/h_s_dadda_cska4.c | 239 --- .../multipliers/h_s_dadda_cska8.c | 575 ------ .../multipliers/h_s_dadda_pg_rca4.c | 245 --- .../multipliers/h_s_dadda_pg_rca8.c | 597 ------ .../hierarchical/multipliers/h_s_dadda_rca4.c | 199 -- .../hierarchical/multipliers/h_s_dadda_rca8.c | 503 ----- .../multipliers/h_s_wallace_cla4.c | 287 --- .../multipliers/h_s_wallace_cla8.c | 743 ------- .../multipliers/h_s_wallace_cska4.c | 239 --- .../multipliers/h_s_wallace_cska8.c | 575 ------ .../multipliers/h_s_wallace_pg_rca4.c | 245 --- .../multipliers/h_s_wallace_pg_rca8.c | 597 ------ .../multipliers/h_s_wallace_rca4.c | 199 -- .../multipliers/h_s_wallace_rca8.c | 503 ----- .../hierarchical/multipliers/h_u_arrmul4.c | 151 -- .../hierarchical/multipliers/h_u_arrmul8.c | 431 ----- .../hierarchical/multipliers/h_u_dadda_cla4.c | 269 --- .../hierarchical/multipliers/h_u_dadda_cla8.c | 725 ------- .../multipliers/h_u_dadda_cska4.c | 225 --- .../multipliers/h_u_dadda_cska8.c | 561 ------ .../multipliers/h_u_dadda_pg_rca4.c | 227 --- .../multipliers/h_u_dadda_pg_rca8.c | 579 ------ .../hierarchical/multipliers/h_u_dadda_rca4.c | 181 -- .../hierarchical/multipliers/h_u_dadda_rca8.c | 485 ----- .../multipliers/h_u_wallace_cla4.c | 269 --- .../multipliers/h_u_wallace_cla8.c | 725 ------- .../multipliers/h_u_wallace_cska4.c | 225 --- .../multipliers/h_u_wallace_cska8.c | 561 ------ .../multipliers/h_u_wallace_pg_rca4.c | 227 --- .../multipliers/h_u_wallace_pg_rca8.c | 579 ------ .../multipliers/h_u_wallace_rca4.c | 181 -- .../multipliers/h_u_wallace_rca8.c | 485 ----- .../c_circuits/logic_gates/and_gate.c | 16 - .../c_circuits/logic_gates/nand_gate.c | 16 - .../c_circuits/logic_gates/nor_gate.c | 16 - .../c_circuits/logic_gates/not_gate.c | 14 - .../c_circuits/logic_gates/or_gate.c | 16 - .../c_circuits/logic_gates/xnor_gate.c | 16 - .../c_circuits/logic_gates/xor_gate.c | 16 - c_circuits_simulation_tests/c_tests.sh | 1719 ----------------- generate_axmuls.py | 30 +- generate_mac.py | 2 + generate_test.py | 403 +++- tests/test_all.py | 204 +- tests/test_cgp.py | 310 ++- tests/test_circuits.sh | 248 ++- tests/test_circuits_cgp.sh | 250 ++- tests/test_circuits_verilog.sh | 93 +- 170 files changed, 3970 insertions(+), 39109 deletions(-) create mode 100644 ariths_gen/core/one_bit_circuits/four_input_one_bit_circuit.py create mode 100644 ariths_gen/multi_bit_circuits/adders/brent_kung_adder.py create mode 100644 ariths_gen/multi_bit_circuits/adders/carry_increment_adder.py create mode 100644 ariths_gen/multi_bit_circuits/adders/carry_select_adder.py create mode 100644 ariths_gen/multi_bit_circuits/adders/conditional_sum_adder.py create mode 100644 ariths_gen/multi_bit_circuits/adders/han_carlson_adder.py create mode 100644 ariths_gen/multi_bit_circuits/adders/knowles_adder.py create mode 100644 ariths_gen/multi_bit_circuits/adders/kogge_stone_adder.py create mode 100644 ariths_gen/multi_bit_circuits/adders/ladner_fischer_adder.py create mode 100644 ariths_gen/multi_bit_circuits/adders/sklansky_adder.py create mode 100644 ariths_gen/one_bit_circuits/one_bit_components/four_input_one_bit_components.py delete mode 100644 c_circuits_simulation_tests/README.md delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_fa.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_ha.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cla4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cla8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cska4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cska8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_s_pg_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_s_pg_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_s_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_s_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cla4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cla8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cska4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cska8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_u_pg_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_u_pg_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_u_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/adders/f_u_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/dividers/f_arrdiv4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/dividers/f_arrdiv8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_arrmul4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_arrmul8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cla4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cla8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cska4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cska8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_pg_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_pg_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cla4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cla8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cska4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cska8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_pg_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_pg_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_arrmul4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_arrmul8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cla4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cla8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cska4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cska8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_pg_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_pg_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cla4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cla8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cska4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cska8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_pg_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_pg_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_fa.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_ha.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cla4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cla8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cska4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cska8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_pg_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_pg_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cla4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cla8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cska4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cska8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_pg_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_pg_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/dividers/h_arrdiv4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/dividers/h_arrdiv8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_arrmul4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_arrmul8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cla4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cla8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cska4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cska8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_pg_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_pg_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cla4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cla8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cska4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cska8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_pg_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_pg_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_arrmul4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_arrmul8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cla4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cla8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cska4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cska8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_pg_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_pg_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cla4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cla8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cska4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cska8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_pg_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_pg_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_rca4.c delete mode 100644 c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_rca8.c delete mode 100644 c_circuits_simulation_tests/c_circuits/logic_gates/and_gate.c delete mode 100644 c_circuits_simulation_tests/c_circuits/logic_gates/nand_gate.c delete mode 100644 c_circuits_simulation_tests/c_circuits/logic_gates/nor_gate.c delete mode 100644 c_circuits_simulation_tests/c_circuits/logic_gates/not_gate.c delete mode 100644 c_circuits_simulation_tests/c_circuits/logic_gates/or_gate.c delete mode 100644 c_circuits_simulation_tests/c_circuits/logic_gates/xnor_gate.c delete mode 100644 c_circuits_simulation_tests/c_circuits/logic_gates/xor_gate.c delete mode 100644 c_circuits_simulation_tests/c_tests.sh diff --git a/README.md b/README.md index d4c8fd6..a454f66 100644 --- a/README.md +++ b/README.md @@ -139,7 +139,7 @@ print("Mean average error", np.abs(r - (va * vb)).mean()) ## Formal verification The `yosys_equiv_check.sh` script enables to formally check the equivalence of generated Verilog and BLIF representations of the same circuit. -It uses the Yosys Open SYnthesis Suite tool by Claire Xenia Wolf. For further information, please visit: http://bygone.clairexen.net/yosys/documentation.html. +It uses the Yosys Open SYnthesis Suite tool by Claire Xenia Wolf. For further information, please visit: https://yosyshq.readthedocs.io/projects/yosys/en/latest/index.html. ## Execute permission ```bash diff --git a/ariths_gen/__init__.py b/ariths_gen/__init__.py index 0a92cd8..1434e1d 100644 --- a/ariths_gen/__init__.py +++ b/ariths_gen/__init__.py @@ -15,4 +15,4 @@ from .multi_bit_circuits import ( dividers ) -from .pdk import * \ No newline at end of file +from .pdk import * diff --git a/ariths_gen/core/arithmetic_circuits/__init__.py b/ariths_gen/core/arithmetic_circuits/__init__.py index cf0a676..1119134 100644 --- a/ariths_gen/core/arithmetic_circuits/__init__.py +++ b/ariths_gen/core/arithmetic_circuits/__init__.py @@ -3,7 +3,7 @@ from .arithmetic_circuit import ( ThreeInputArithmeticCircuit ) -from .general_circuit import (GeneralCircuit ) +from .general_circuit import (GeneralCircuit) from .multiplier_circuit import ( MultiplierCircuit diff --git a/ariths_gen/core/arithmetic_circuits/arithmetic_circuit.py b/ariths_gen/core/arithmetic_circuits/arithmetic_circuit.py index e20699d..2be0cf8 100644 --- a/ariths_gen/core/arithmetic_circuits/arithmetic_circuit.py +++ b/ariths_gen/core/arithmetic_circuits/arithmetic_circuit.py @@ -127,7 +127,7 @@ class ThreeInputArithmeticCircuit(GeneralCircuit): a=Bus("a"), b=Bus("b"), c=Bus("c")).prefix + str(self.N) circuit_block = self.__class__(a=Bus(N=self.N, prefix="a"), b=Bus( N=self.N, prefix="b"), c=Bus( - N=self.N, prefix="c"), name=circuit_prefix) + N=self.N, prefix="c"), name=circuit_prefix, **self._parent_kwargs) return f"{circuit_block.get_circuit_c()}\n\n" def get_declaration_c_hier(self): @@ -178,7 +178,7 @@ class ThreeInputArithmeticCircuit(GeneralCircuit): circuit_prefix = self.__class__( a=Bus("a"), b=Bus("b"), c=Bus("c")).prefix + str(self.N) circuit_block = self.__class__(a=Bus(N=self.N, prefix="a"), b=Bus( - N=self.N, prefix="b"), c=Bus(N=self.N, prefix="c"), name=circuit_prefix) + N=self.N, prefix="b"), c=Bus(N=self.N, prefix="c"), name=circuit_prefix, **self._parent_kwargs) return f"{circuit_block.get_circuit_v()}\n\n" def get_declaration_v_hier(self): @@ -261,5 +261,5 @@ class ThreeInputArithmeticCircuit(GeneralCircuit): circuit_prefix = self.__class__( a=Bus("a"), b=Bus("b"), c=Bus("c")).prefix + str(self.N) circuit_block = self.__class__(a=Bus(N=self.N, prefix="a"), b=Bus( - N=self.N, prefix="b"), c=Bus(N=self.N, prefix="c"), name=circuit_prefix) + N=self.N, prefix="b"), c=Bus(N=self.N, prefix="c"), name=circuit_prefix, **self._parent_kwargs) return f"{circuit_block.get_circuit_blif()}" diff --git a/ariths_gen/core/arithmetic_circuits/general_circuit.py b/ariths_gen/core/arithmetic_circuits/general_circuit.py index 0d73e03..232774c 100644 --- a/ariths_gen/core/arithmetic_circuits/general_circuit.py +++ b/ariths_gen/core/arithmetic_circuits/general_circuit.py @@ -17,7 +17,7 @@ class GeneralCircuit(): that are later used for generation into various representations. """ - def __init__(self, prefix: str, name: str, out_N: int, inner_component: bool = False, inputs: list = [], signed: bool = False, outname=None): + def __init__(self, prefix: str, name: str, out_N: int, inner_component: bool = False, inputs: list = [], signed: bool = False, outname=None, **kwargs): if prefix == "": self.prefix = name else: @@ -34,6 +34,7 @@ class GeneralCircuit(): self.signed = signed self.c_data_type = "int64_t" if self.signed is True else "uint64_t" self.pyc = None # Python compiled function + self.kwargs = kwargs def __call__(self, *args): if not self.pyc: @@ -49,7 +50,7 @@ class GeneralCircuit(): def __str__(self): return f"<{type(self).__name__} prefix={self.prefix} " + (", ".join([f"input={i}" for i in self.inputs])) + ">" - #super().__init__(prefix, name, out_N, inner_component, inputs=[a, b], signed=signed, **kwargs) + # super().__init__(prefix, name, out_N, inner_component, inputs=[a, b], signed=signed, **kwargs) def add_component(self, component): """Adds a component into list of circuit's inner subcomponents. @@ -166,22 +167,6 @@ class GeneralCircuit(): all_components = gate_comps + one_bit_comps + multi_bit_comps return all_components - def get_sum_wire(self): - """Get output wire carrying sum value. - - Returns: - Wire: Return sum wire. - """ - return self.out.get_wire(0) - - def get_carry_wire(self): - """Get output wire carrying carry out value. - - Returns: - Wire: Return carry out wire. - """ - return self.out.get_wire(1) - def save_wire_id(self, wire: Wire): """Returns appropriate wire index position within the circuit. @@ -198,7 +183,7 @@ class GeneralCircuit(): if wire.is_const(): return wire.cgp_const else: - return len([w[0] for w in self.circuit_wires if w[0].is_const() is False]) + 2 + return len(self.circuit_wires)+2 def get_cgp_wires(self): """Gets a list of all wires in circuit along with their index position for cgp chromosome generation and stores them inside `self.circuit_wires` list. @@ -208,35 +193,45 @@ class GeneralCircuit(): Other wires indexes start counting from 2 and up. """ self.circuit_wires = [] + circuit_wires_names = [] if isinstance(self.a, Bus): [self.circuit_wires.append( (w, f"{w.name}", self.save_wire_id(wire=w))) for w in self.a.bus] [self.circuit_wires.append( (w, f"{w.name}", self.save_wire_id(wire=w))) for w in self.b.bus] + [circuit_wires_names.append(w.name) for w in self.a.bus] + [circuit_wires_names.append(w.name) for w in self.b.bus] if hasattr(self, 'c'): [self.circuit_wires.append( (w, f"{w.name}", self.save_wire_id(wire=w))) for w in self.c.bus] + [circuit_wires_names.append(w.name) for w in self.c.bus] else: self.circuit_wires.append( (self.a, f"{self.a.name}", self.save_wire_id(wire=self.a))) self.circuit_wires.append( (self.b, f"{self.b.name}", self.save_wire_id(wire=self.b))) + circuit_wires_names.append(self.a.name) + circuit_wires_names.append(self.b.name) if hasattr(self, 'c'): self.circuit_wires.append( (self.c, f"{self.c.name}", self.save_wire_id(wire=self.c))) + circuit_wires_names.append(self.c.name) for gate in self.circuit_gates: - if not [item for item in self.circuit_wires if gate.a.name == item[1]]: + if gate.a.name not in circuit_wires_names: self.circuit_wires.append( (gate.a, gate.a.name, self.save_wire_id(wire=gate.a))) + circuit_wires_names.append(gate.a.name) - if hasattr(gate, 'b') and not [item for item in self.circuit_wires if gate.b.name == item[1]]: + if hasattr(gate, 'b') and gate.b.name not in circuit_wires_names: self.circuit_wires.append( (gate.b, gate.b.name, self.save_wire_id(wire=gate.b))) + circuit_wires_names.append(gate.b.name) - if not [item for item in self.circuit_wires if gate.out.name == item[1]]: + if gate.out.name not in circuit_wires_names: self.circuit_wires.append( (gate.out, gate.out.name, self.save_wire_id(wire=gate.out))) + circuit_wires_names.append(gate.out.name) def get_circuit_wire_index(self, wire: Wire): """Searches for circuit's wire unique index position within the circuit. Used for cgp chromosome generation. @@ -288,8 +283,8 @@ class GeneralCircuit(): file_object (TextIOWrapper): Destination file object where circuit's representation will be written to. """ file_object.write(self.get_prototype_python()) - #file_object.write(self.out.get_declaration_python()) - #file_object.write(self.get_declaration_python_flat()+"\n") + # file_object.write(self.out.get_declaration_python()) + # file_object.write(self.get_declaration_python_flat()+"\n") file_object.write(self.get_init_python_flat()+"\n") file_object.write(self.get_function_out_python_flat()) file_object.write(self.out.return_bus_wires_sign_extend_python_flat()) @@ -361,8 +356,10 @@ class GeneralCircuit(): Returns: str: Hierarchical C code of all subcomponents function blocks description. """ - # Retrieve all unique component types composing this circuit + # Retrieve all unique component types composing this circuit and add them kwargs from the parent circuit to allow propagatation of config settings for subcomponents self.component_types = self.get_component_types() + for c in self.component_types: + c._parent_kwargs = self.kwargs return "".join([c.get_function_block_c() for c in self.component_types]) def get_function_block_c(self): @@ -374,8 +371,9 @@ class GeneralCircuit(): # Obtain proper circuit name with its bit width circuit_prefix = self.__class__( a=Bus("a"), b=Bus("b")).prefix + str(self.N) + print(self._parent_kwargs) circuit_block = self.__class__(a=Bus(N=self.N, prefix="a"), b=Bus( - N=self.N, prefix="b"), name=circuit_prefix) + N=self.N, prefix="b"), name=circuit_prefix, **self._parent_kwargs) return f"{circuit_block.get_circuit_c()}\n\n" def get_declarations_c_hier(self): @@ -510,8 +508,10 @@ class GeneralCircuit(): Returns: str: Hierarchical Verilog code of all subcomponents function blocks description. """ - # Retrieve all unique component types composing this circuit + # Retrieve all unique component types composing this circuit and add them kwargs from the parent circuit to allow propagatation of config settings for subcomponents self.component_types = self.get_component_types() + for c in self.component_types: + c._parent_kwargs = self.kwargs return "".join([c.get_function_block_v() for c in self.component_types]) def get_function_block_v(self): @@ -524,7 +524,7 @@ class GeneralCircuit(): circuit_prefix = self.__class__( a=Bus("a"), b=Bus("b")).prefix + str(self.N) circuit_block = self.__class__(a=Bus(N=self.N, prefix="a"), b=Bus( - N=self.N, prefix="b"), name=circuit_prefix) + N=self.N, prefix="b"), name=circuit_prefix, **self._parent_kwargs) return f"{circuit_block.get_circuit_v()}\n\n" def get_declarations_v_hier(self): @@ -699,9 +699,11 @@ class GeneralCircuit(): Returns: str: Hierarchical Blif code of all subcomponents function blocks description. """ - # Retrieve all unique component types composing this circuit + # Retrieve all unique component types composing this circuit and add them kwargs from the parent circuit to allow propagatation of config settings for subcomponents # (iterating backwards as opposed to other representations so the top modul is always above its subcomponents) self.component_types = self.get_component_types() + for c in self.component_types: + c._parent_kwargs = self.kwargs return "\n".join([c.get_function_block_blif() for c in self.component_types[::-1]]) def get_function_block_blif(self): @@ -714,7 +716,7 @@ class GeneralCircuit(): circuit_prefix = self.__class__( a=Bus("a"), b=Bus("b")).prefix + str(self.N) circuit_block = self.__class__(a=Bus(N=self.N, prefix="a"), b=Bus( - N=self.N, prefix="b"), name=circuit_prefix) + N=self.N, prefix="b"), name=circuit_prefix, **self._parent_kwargs) return f"{circuit_block.get_circuit_blif()}" # Generating hierarchical BLIF code representation of circuit diff --git a/ariths_gen/core/cgp_circuit.py b/ariths_gen/core/cgp_circuit.py index 9fc444f..075155d 100644 --- a/ariths_gen/core/cgp_circuit.py +++ b/ariths_gen/core/cgp_circuit.py @@ -13,9 +13,7 @@ from ariths_gen.core.logic_gate_circuits import ( ) from ariths_gen.one_bit_circuits.one_bit_components import ( HalfAdder, - PGLogicBlock, - FullAdder, - FullAdderPG + FullAdder ) from ariths_gen.one_bit_circuits.logic_gates import ( AndGate, diff --git a/ariths_gen/core/one_bit_circuits/__init__.py b/ariths_gen/core/one_bit_circuits/__init__.py index ba847ce..1eeebf9 100644 --- a/ariths_gen/core/one_bit_circuits/__init__.py +++ b/ariths_gen/core/one_bit_circuits/__init__.py @@ -5,3 +5,7 @@ from .two_input_one_bit_circuit import ( from .three_input_one_bit_circuit import ( ThreeInputOneBitCircuit ) + +from .four_input_one_bit_circuit import ( + FourInputOneBitCircuit +) diff --git a/ariths_gen/core/one_bit_circuits/four_input_one_bit_circuit.py b/ariths_gen/core/one_bit_circuits/four_input_one_bit_circuit.py new file mode 100644 index 0000000..4c8a262 --- /dev/null +++ b/ariths_gen/core/one_bit_circuits/four_input_one_bit_circuit.py @@ -0,0 +1,215 @@ +from .two_input_one_bit_circuit import ( + TwoInputOneBitCircuit +) + +from ariths_gen.wire_components.wires import Wire + + +class FourInputOneBitCircuit(TwoInputOneBitCircuit): + """Class represents a general four input one bit circuit and implements their generation to various representations. It is derived from `TwoInputOneBitCircuit` class. + + Description of the __init__ method. + + Args: + a (Wire): First input wire. + b (Wire): Second input wire. + c (Wire): Third input wire. + d (Wire): Fourth input wire. + prefix (str, optional): Prefix name of circuit. Defaults to "four_input_one_bit_circuit". + """ + def __init__(self, a: Wire = Wire(name="a"), b: Wire = Wire(name="b"), c: Wire = Wire(name="c"), d: Wire = Wire(name="d"), prefix: str = "four_input_one_bit_circuit"): + super().__init__() + self.c_data_type = "uint8_t" + self.prefix = prefix + self.a = a + self.b = b + self.c = c + self.d = d + + """ C CODE GENERATION """ + # FLAT C # + # Function prototype with four inputs + def get_prototype_c(self): + """Generates C code function header to describe corresponding four input one bit circuit's interface in C code. + + Returns: + str: Function's name and parameters in C code. + """ + return f"{self.c_data_type} {self.prefix}({self.c_data_type} {self.a.prefix}, {self.c_data_type} {self.b.prefix}, {self.c_data_type} {self.c.prefix}, {self.c_data_type} {self.d.prefix})" + "{" + "\n" + + # HIERARCHICAL C # + # Subcomponent generation (four inputs) + def get_out_invocation_c(self, *args, **kwargs): + """Generates hierarchical C code invocation of corresponding four input one bit circuit's generated function block. + + Assigns output values from invocation of the corresponding function block into inner wires present inside the upper + component from which function block has been invoked. + + Returns: + str: Hierarchical C code subcomponent's C function invocation and output assignment. + """ + # Used to retrieve proper component's output wire offset position within the output bus + output_bus_wire_names = [] + [output_bus_wire_names.append(w.prefix) for w in self.out.bus] + circuit_block = self.__class__() + return "".join([f" {c.out.prefix} = ({circuit_block.prefix}({self.a.get_wire_value_c_hier()}, {self.b.get_wire_value_c_hier()}, {self.c.get_wire_value_c_hier()}, {self.d.get_wire_value_c_hier()}) >> {output_bus_wire_names.index(c.out.prefix)}) & 0x01;\n" for c in self.components if c.disable_generation is False and c.out.prefix in output_bus_wire_names]) + + """ VERILOG CODE GENERATION """ + # FLAT VERILOG # + # Module prototype with four inputs + def get_prototype_v(self): + """Generates Verilog for flat module header to describe corresponding four input one bit circuit's interface in Verilog. + + It is adapted for generation of general description of four input one bit circuits as well as their modified versions when some inputs are desired as constant values. + In such cases the inner module logic is also modified accordingly. It is used for self four input one bit circuit flat generation. + + Returns: + str: Flat module's name and parameters in Verilog. + """ + unique_out_wires = [] + [unique_out_wires.append(o.name+"_outid"+str(self.out.bus.index(o))) if o.is_const() or o.name in [self.a.name, self.b.name, self.c.name, self.d.name] else unique_out_wires.append(o.name) for o in self.out.bus] + return f"module {self.prefix}(input {self.a.name}, input {self.b.name}, input {self.c.name}, input {self.d.name}" + \ + "".join([f", output {o}" for o in unique_out_wires]) + ");\n" + + def get_self_init_v_flat(self): + """Generates Verilog for self flat module initialization and assignment of corresponding four input one bit circuit's input/output wires. + + It is adapted for generation of general description of four input one bit circuits as well as their modified versions when some inputs are desired as constant values. + In such cases the inner module prototype is also modified accordingly. It is used for self four input one bit circuit flat generation. + + Returns: + str: Verilog flat module's inner circuit wires initialization and assignment. + """ + unique_out_wires = [] + [unique_out_wires.append(o.name+"_outid"+str(self.out.bus.index(o))) if o.is_const() or o.name in [self.a.name, self.b.name, self.c.name, self.d.name] else unique_out_wires.append(o.name) for o in self.out.bus] + return "".join([c.get_assign_v_flat() if c.disable_generation is False else + f" assign {unique_out_wires.pop(unique_out_wires.index(c.out.name+'_outid'+str(c.outid)))} = {c.out.v_const};\n" if f"{c.out.name+'_outid'+str(c.outid)}" in unique_out_wires and c.out.is_const() else + f" assign {unique_out_wires.pop(unique_out_wires.index(c.out.name+'_outid'+str(c.outid)))} = {c.out.name};\n" if f"{c.out.name+'_outid'+str(c.outid)}" in unique_out_wires else + f"" for c in self.components]) + + # HIERARCHICAL VERILOG # + # Self circuit hierarchical generation + def get_prototype_v_hier(self): + """Generates Verilog for hierarchical module header to describe corresponding four input one bit circuit's interface in Verilog. + + It is adapted for generation of general description of four input one bit circuits as well as their modified versions when some inputs are desired as constant values. + In such cases the inner module logic is also modified accordingly. It is used for self four input one bit circuit hierarchical generation. + + Returns: + str: Hierarchical module's name and parameters in Verilog. + """ + unique_out_wires = [] + [unique_out_wires.append(o.name+"_outid"+str(self.out.bus.index(o))) if o.is_const() or o.name in [self.a.name, self.b.name, self.c.name, self.d.name] else unique_out_wires.append(o.name) for o in self.out.bus] + return f"module {self.prefix}(input [0:0] {self.a.name}, input [0:0] {self.b.name}, input [0:0] {self.c.name}, input [0:0] {self.d.name}" + \ + "".join([f", output [0:0] {o}" for o in unique_out_wires]) + ");\n" + + def get_self_init_v_hier(self): + """Generates Verilog for hierarchical module's inner initialization and assignment of corresponding arithmetic circuit's input/output wires. + + It is adapted for generation of general description of four input one bit circuits as well as their modified versions when some inputs are desired as constant values. + In such cases the inner module prototype is also modified accordingly. It is used for self four input one bit circuit hierarchical generation. + + Returns: + str: Verilog hierarchical module's inner circuit wires initialization and assignment. + """ + unique_out_wires = [] + [unique_out_wires.append(o.name+"_outid"+str(self.out.bus.index(o))) if o.is_const() or o.name in [self.a.name, self.b.name, self.c.name, self.d.name] else unique_out_wires.append(o.name) for o in self.out.bus] + return "".join([c.get_gate_invocation_v() if c.disable_generation is False else + f" assign {unique_out_wires.pop(unique_out_wires.index(c.out.name+'_outid'+str(c.outid)))}[0] = {c.out.v_const};\n" if f"{c.out.name+'_outid'+str(c.outid)}" in unique_out_wires and c.out.is_const() else + f" assign {unique_out_wires.pop(unique_out_wires.index(c.out.name+'_outid'+str(c.outid)))}[0] = {c.out.name}[0];\n" if f"{c.out.name+'_outid'+str(c.outid)}" in unique_out_wires else + f"" for c in self.components]) + + # Subcomponent generation + def get_out_invocation_v(self, *args, **kwargs): + """Generates hierarchical Verilog code invocation of corresponding four input one bit circuit's generated function block. + + Assigns output values from invocation of the corresponding function block into inner wires present inside the upper + component from which function block has been invoked. + + Returns: + str: Hierarchical Verilog code subcomponent's module invocation and output assignment. + """ + circuit_block = self.__class__() + return f" {circuit_block.prefix} {circuit_block.prefix}_{self.out.prefix}(.{circuit_block.a.prefix}({self.a.get_wire_value_v_hier()}), .{circuit_block.b.prefix}({self.b.get_wire_value_v_hier()}), .{circuit_block.c.prefix}({self.c.get_wire_value_v_hier()}), .{circuit_block.d.prefix}({self.d.get_wire_value_v_hier()}){self.out.get_unique_assign_out_wires_v(circuit_block)});\n" + + """ BLIF CODE GENERATION """ + # FLAT BLIF # + # Model prototype with four inputs + def get_declaration_blif(self): + """Generates Blif code declaration of four input one bit circuit's input/output wires. + + It is adapted for generation of general description of four input one bit circuits as well as their modified versions when some inputs are desired as constant values. + In such cases the inner modul logic is also modified accordingly. It is used for self four input one bit circuit flat/hierarchical generation. + + Returns: + str: Blif code containing declaration of circuit's input/output wires. + """ + unique_out_wires = [] + [unique_out_wires.append(o.name+"_outid"+str(self.out.bus.index(o))) if o.is_const() or o.name in [self.a.name, self.b.name, self.c.name, self.d.name] else unique_out_wires.append(o.name) for o in self.out.bus] + return f".inputs {self.a.get_declaration_blif()} {self.b.get_declaration_blif()} {self.c.get_declaration_blif()} {self.d.get_declaration_blif()}\n" + \ + f".outputs" + \ + "".join([f" {o}" for o in unique_out_wires]) + "\n" + \ + f".names vdd\n1\n" + \ + f".names gnd\n0\n" + + def get_function_blif_flat(self, top_modul: bool = False): + """Generates flat Blif code with invocation of subcomponents logic gates Boolean functions via their corresponding truth tables. + + It is adapted for generation of general description of four input one bit circuits as well as their modified versions when some inputs are desired as constant values. + In such cases the inner modul prototype is also modified accordingly. It is used for self four input one bit circuit flat generation. + + Args: + top_modul (bool, optional): Specifies whether the described circuit represents top modul component (self one bit circuit generation). Defaults to False. + + Returns: + str: Flat Blif code containing invocation of inner subcomponents logic gates Boolean functions. + """ + if top_modul: + unique_out_wires = [] + [unique_out_wires.append(o.name+"_outid"+str(self.out.bus.index(o))) if o.is_const() or o.name in [self.a.name, self.b.name, self.c.name, self.d.name] else unique_out_wires.append(o.name) for o in self.out.bus] + return "".join([c.get_function_blif_flat() if c.disable_generation is False else + c.out.get_assign_blif(prefix=f"{unique_out_wires.pop(unique_out_wires.index(c.out.name+'_outid'+str(c.outid)))}", output=True) if f"{c.out.name+'_outid'+str(c.outid)}" in unique_out_wires else + "" for c in self.components]) + else: + return "".join([c.get_function_blif_flat() for c in self.components]) + + # HIERARCHICAL BLIF # + # Subcomponent generation (4 inputs) + def get_invocations_blif_hier(self): + """Generates hierarchical Blif code with invocation of subcomponents function blocks. + + It is adapted for generation of general description of four input one bit circuits as well as their modified versions when some inputs are desired as constant values. + In such cases the inner modul prototype is also modified accordingly. It is used for self four input one bit circuit hierarchical generation. + + Returns: + str: Hierarchical Blif code containing invocation of inner subcomponents function blocks. + """ + unique_out_wires = [] + [unique_out_wires.append(o.name+"_outid"+str(self.out.bus.index(o))) if o.is_const() or o.name in [self.a.name, self.b.name, self.c.name, self.d.name] else unique_out_wires.append(o.name) for o in self.out.bus] + return "".join([c.get_invocation_blif_hier() if c.disable_generation is False else + c.out.get_assign_blif(prefix=f"{unique_out_wires.pop(unique_out_wires.index(c.out.name+'_outid'+str(c.outid)))}", output=True) if f"{c.out.name+'_outid'+str(c.outid)}" in unique_out_wires else + "" for c in self.components]) + + def get_invocation_blif_hier(self, *args, **kwargs): + """Generates hierarchical Blif code invocation of corresponding four input one bit circuit's generated function block. + + Returns: + str: Hierarchical Blif code subcomponent's model invocation. + """ + circuit_block = self.__class__() + return f".subckt {circuit_block.prefix} {circuit_block.a.prefix}={self.a.get_wire_value_blif()} {circuit_block.b.prefix}={self.b.get_wire_value_blif()} {circuit_block.c.prefix}={self.c.get_wire_value_blif()} {circuit_block.d.prefix}={self.d.get_wire_value_blif()}{self.out.get_unique_assign_out_wires_blif(function_block_out_bus=circuit_block.out)}\n" + + """ CGP CODE GENERATION """ + # FLAT CGP # + # Chromosome prototype with four inputs + def get_parameters_cgp(self): + """Generates CGP chromosome parameters of corresponding four input one bit circuit. + + In total seven parameters represent: total inputs, total outputs, number of rows, number of columns (gates), + number of each gate's inputs, number of each gate's outputs, quality constant value. + + Returns: + str: CGP chromosome parameters of described circuit. + """ + self.circuit_gates = self.get_circuit_gates() + return f"{{4,{self.out.N},1,{len(self.circuit_gates)},2,1,0}}" diff --git a/ariths_gen/core/one_bit_circuits/two_input_one_bit_circuit.py b/ariths_gen/core/one_bit_circuits/two_input_one_bit_circuit.py index c630058..1f81423 100644 --- a/ariths_gen/core/one_bit_circuits/two_input_one_bit_circuit.py +++ b/ariths_gen/core/one_bit_circuits/two_input_one_bit_circuit.py @@ -16,7 +16,7 @@ class TwoInputOneBitCircuit(ArithmeticCircuit): prefix (str, optional): Prefix name of circuit. Defaults to "two_input_one_bit_circuit". """ def __init__(self, a: Wire = Wire(name="a"), b: Wire = Wire(name="b"), prefix: str = "two_input_one_bit_circuit"): - super().__init__(a=a, b=b, prefix=prefix, name="", out_N=1, one_bit_circuit = True) + super().__init__(a=a, b=b, prefix=prefix, name="", out_N=1, one_bit_circuit=True) self.c_data_type = "uint8_t" self.prefix = prefix self.a = a diff --git a/ariths_gen/multi_bit_circuits/adders/__init__.py b/ariths_gen/multi_bit_circuits/adders/__init__.py index 2a860dc..f0ba494 100644 --- a/ariths_gen/multi_bit_circuits/adders/__init__.py +++ b/ariths_gen/multi_bit_circuits/adders/__init__.py @@ -22,3 +22,49 @@ from ariths_gen.multi_bit_circuits.adders.carry_save_adder import ( CarrySaveAdderComponent, UnsignedCarrySaveAdder ) + +from ariths_gen.multi_bit_circuits.adders.kogge_stone_adder import ( + UnsignedKoggeStoneAdder, + SignedKoggeStoneAdder +) + +from ariths_gen.multi_bit_circuits.adders.brent_kung_adder import ( + UnsignedBrentKungAdder, + SignedBrentKungAdder +) + +from ariths_gen.multi_bit_circuits.adders.sklansky_adder import ( + UnsignedSklanskyAdder, + SignedSklanskyAdder +) + +from ariths_gen.multi_bit_circuits.adders.han_carlson_adder import ( + UnsignedHanCarlsonAdder, + SignedHanCarlsonAdder +) + +from ariths_gen.multi_bit_circuits.adders.ladner_fischer_adder import ( + UnsignedLadnerFischerAdder, + SignedLadnerFischerAdder +) + +from ariths_gen.multi_bit_circuits.adders.knowles_adder import ( + UnsignedKnowlesAdder, + SignedKnowlesAdder + +) + +from ariths_gen.multi_bit_circuits.adders.carry_select_adder import ( + UnsignedCarrySelectAdder, + SignedCarrySelectAdder +) + +from ariths_gen.multi_bit_circuits.adders.conditional_sum_adder import ( + UnsignedConditionalSumAdder, + SignedConditionalSumAdder +) + +from ariths_gen.multi_bit_circuits.adders.carry_increment_adder import ( + UnsignedCarryIncrementAdder, + SignedCarryIncrementAdder +) diff --git a/ariths_gen/multi_bit_circuits/adders/brent_kung_adder.py b/ariths_gen/multi_bit_circuits/adders/brent_kung_adder.py new file mode 100644 index 0000000..d8bc322 --- /dev/null +++ b/ariths_gen/multi_bit_circuits/adders/brent_kung_adder.py @@ -0,0 +1,215 @@ +from ariths_gen.wire_components import ( + Wire, + ConstantWireValue0, + ConstantWireValue1, + Bus +) +from ariths_gen.core.arithmetic_circuits import ( + ArithmeticCircuit, + MultiplierCircuit +) +from ariths_gen.one_bit_circuits.one_bit_components import ( + HalfAdder, + FullAdder, + PGSumLogic, + GreyCell, + BlackCell +) +from ariths_gen.one_bit_circuits.logic_gates import ( + AndGate, + NandGate, + OrGate, + NorGate, + XorGate, + XnorGate, + NotGate +) +from ariths_gen.multi_bit_circuits.adders import ( + UnsignedCarryLookaheadAdder, + UnsignedPGRippleCarryAdder, + UnsignedRippleCarryAdder, + SignedCarryLookaheadAdder, + SignedPGRippleCarryAdder, + SignedRippleCarryAdder +) +import math + + +class UnsignedBrentKungAdder(ArithmeticCircuit): + """Class representing unsigned Brent-Kung adder (using valency-2 logic gates). + + The Brent-Kung adder belongs to a type of tree (parallel-prefix) adders. + Tree adder structure consists of three parts of logic: 1) PG logic generation, 2) Parallel PG logic computation, 3) Final sum and cout computation + The main difference between each tree adder lies in the implementation of the part 2). + + Along with Kogge-Stone and Sklansky it is considered to be a fundamental tree adder architecture. + + Brent-Kung achieves 2*log2(N)-1 stages and fanout of 2 at each stage inside 2). The adder computes prefixes for 2-bit groups. + These are used to find prefixes for 4-bit groups, which in turn are used to find prefixes for 8-bit groups, and so forth. + The prefixes then fan back down to compute the carries-in to each bit. + + Main building components are GreyCells and BlackCells that appropriately encapsulate the essential logic used for PG computation. + For further circuit characteristics see the book CMOS VLSI Design. + + The implementation performs the 1) and 3) (sum XORs) parts using one bit three input P/G/Sum logic function blocks. + The 2) part is then composed according to the parallel-prefix adder characteristics. + + ``` + B3 A3 B2 A2 B1 A1 B0 A0 + │ │ │ │ │ │ │ │ + ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ + │ PG │ C3 │ PG │ C2 │ PG │ C1 │ PG │ + │ SUM │◄────┐│ SUM │◄──┐│ SUM │◄──┐│ SUM │◄──0 + │ │ ││ │ ││ │ ││ │ + └─┬──┬┬┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │└─┬┬┬──┘ + │ ││G3P3S3│ │││G2P2S2│ │││G1P1S1│ │││G0P0S0 + │ ┌▼▼──────┴──▼▼▼──────┴──▼▼▼──────┴──▼▼▼──┐ + │ │ Parallel-prefix │ + │ │ PG logic │ + │ └─┬───────┬──────────┬──────────┬────────┘ + │ │S3 │S2 │S1 │S0 + ┌─▼───▼───────▼──────────▼──────────▼────────┐ + │ Sum + Cout │ + │ logic │ + └┬────┬───────┬──────────┬──────────┬────────┘ + │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ + Cout S3 S1 S0 S0 + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + prefix (str, optional): Prefix name of unsigned bka. Defaults to "". + name (str, optional): Name of unsigned bka. Defaults to "u_bka". + """ + def __init__(self, a: Bus, b: Bus, prefix: str = "", name: str = "u_bka", **kwargs): + self.N = max(a.N, b.N) + super().__init__(a=a, b=b, prefix=prefix, name=name, out_N=self.N+1, **kwargs) + + # Bus sign extension in case buses have different lengths + self.a.bus_extend(N=self.N, prefix=a.prefix) + self.b.bus_extend(N=self.N, prefix=b.prefix) + cin = ConstantWireValue0() + + # Lists of list containing all propagate/generate wires + self.propagate_sig = [] + self.generate_sig = [] + # Cin0 used as a first generate wire for obtaining next carry bits + self.generate_sig.append([cin]) + + # For each bit pair proceed with three stages of PPAs (Generate PG signals, Prefix computation (PG logic), Computation and connection of outputs) + # NOTE In the implementation below, both the first and third stages are handled by the PG FAs + for i_wire in range(self.N): + # 1st + 3rd stage: Generate PG signals + Computation and connection of outputs + self.add_component(PGSumLogic(self.a.get_wire(i_wire), self.b.get_wire(i_wire), self.generate_sig[i_wire][-1], prefix=self.prefix+"_pg_sum"+str(self.get_instance_num(cls=PGSumLogic)))) + self.generate_sig.append([self.get_previous_component().get_generate_wire()]) + self.propagate_sig.append([self.get_previous_component().get_propagate_wire()]) + + self.out.connect(i_wire, self.get_previous_component().get_sum_wire()) + if i_wire == self.N-1: + self.add_component(GreyCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + self.out.connect(self.N, self.get_previous_component().get_generate_wire()) + # 2nd stage: Prefix Computation (PG logic) + # For all bit indexes expect for the last one, proceed with the parralel prefix PG logic + else: + if i_wire % 2 == 0: # Even-numbered bit index columns + index_stages = math.log(i_wire+2, 2) # +1 because indexes start from 0 and additional +1 because the first generated carry is actually the second carry after cin (the previous cin has 0 stages) + if int(index_stages) == index_stages: + for stage in range(int(index_stages)): + # Grey cell + if stage == index_stages-1: + if stage == 0: # Bit index with only one stage + self.add_component(GreyCell(self.generate_sig[i_wire+1][0], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][0], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + else: # Bit index contains multiple stages, GC is its last stage + self.add_component(GreyCell(self.get_previous_component().get_generate_wire(), self.get_previous_component().get_propagate_wire(), self.generate_sig[(i_wire+1)-(2**stage)][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + # Black cell + else: # If bit index contains more than one stage, every stage except for the last one contains a Black cell + self.add_component(BlackCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][-1], self.generate_sig[(i_wire+1)-(2**stage)][stage], self.propagate_sig[i_wire-(2**stage)][stage], prefix=self.prefix+"_bc"+str(self.get_instance_num(cls=BlackCell)))) + self.propagate_sig[i_wire].append(self.get_previous_component().get_propagate_wire()) + self.generate_sig[i_wire+1].append(self.get_previous_component().get_generate_wire()) + # Special cases (bit indexes between powers of 2) + else: + lower_closest_power_of_two = 2**math.floor(math.log(i_wire+2, 2)) # i.e. 2^3 = 8 + higher_closest_power_of_two = 2**math.ceil(math.log(i_wire+2, 2)) # i.e. 2^4 = 16 + + up_diff = higher_closest_power_of_two - (i_wire+2) + down_diff = (i_wire+2) - lower_closest_power_of_two + diff_power = up_diff if up_diff < down_diff else down_diff + index_stages = math.floor(math.log(diff_power, 2))+1 + + for stage in range(index_stages): + # Black cell + if stage != index_stages-1: + self.add_component(BlackCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][-1], self.generate_sig[(i_wire+1)-(2**stage)][stage], self.propagate_sig[i_wire-(2**stage)][stage], prefix=self.prefix+"_bc"+str(self.get_instance_num(cls=BlackCell)))) + self.propagate_sig[i_wire].append(self.get_previous_component().get_propagate_wire()) + # Grey cell + else: + self.add_component(GreyCell(self.get_previous_component().get_generate_wire(), self.get_previous_component().get_propagate_wire(), self.generate_sig[(i_wire+1)-(2**stage)][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + self.generate_sig[i_wire+1].append(self.get_previous_component().get_generate_wire()) + # Odd-numbered bit index columns + else: + self.add_component(GreyCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + self.generate_sig[i_wire+1].append(self.get_previous_component().get_generate_wire()) + + +class SignedBrentKungAdder(UnsignedBrentKungAdder, ArithmeticCircuit): + """Class representing signed Brent-Kung adder (using valency-2 logic gates). + + The Brent-Kung adder belongs to a type of tree (parallel-prefix) adders. + Tree adder structure consists of three parts of logic: 1) PG logic generation, 2) Parallel PG logic computation, 3) Final sum and cout computation + The main difference between each tree adder lies in the implementation of the part 2). + + Along with Kogge-Stone and Sklansky it is considered to be a fundamental tree adder architecture. + + Brent-Kung achieves 2*log2(N)-1 stages and fanout of 2 at each stage inside 2). The adder computes prefixes for 2-bit groups. + These are used to find prefixes for 4-bit groups, which in turn are used to find prefixes for 8-bit groups, and so forth. + The prefixes then fan back down to compute the carries-in to each bit. + + Main building components are GreyCells and BlackCells that appropriately encapsulate the essential logic used for PG computation. + For further circuit characteristics see the book CMOS VLSI Design. + + The implementation performs the 1) and 3) (sum XORs) parts using one bit three input P/G/Sum logic function blocks. + The 2) part is then composed according to the parallel-prefix adder characteristics. + At last XOR gates are used to ensure proper sign extension. + + ``` + B3 A3 B2 A2 B1 A1 B0 A0 + │ │ │ │ │ │ │ │ + ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ + │ PG │ C3 │ PG │ C2 │ PG │ C1 │ PG │ + │ SUM │◄────┐│ SUM │◄──┐│ SUM │◄──┐│ SUM │◄──0 + │ │ ││ │ ││ │ ││ │ + └─┬──┬┬┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │└─┬┬┬──┘ + │ ││G3P3S3│ │││G2P2S2│ │││G1P1S1│ │││G0P0S0 + │ ┌▼▼──────┴──▼▼▼──────┴──▼▼▼──────┴──▼▼▼──┐ + │ │ Parallel-prefix │ + │ │ PG logic │ + │ └─┬───────┬──────────┬──────────┬────────┘ + │ │S3 │S2 │S1 │S0 + ┌─▼───▼───────▼──────────▼──────────▼────────┐ + │ Sum + Cout │ + │ with sign extension │ + └┬────┬───────┬──────────┬──────────┬────────┘ + │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ + Cout S3 S1 S0 S0 + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + prefix (str, optional): Prefix name of signed bka. Defaults to "". + name (str, optional): Name of signed bka. Defaults to "s_bka". + """ + def __init__(self, a: Bus, b: Bus, prefix: str = "", name: str = "s_bka", **kwargs): + super().__init__(a=a, b=b, prefix=prefix, name=name, signed=True, **kwargs) + + # Additional XOR gates to ensure correct sign extension in case of sign addition + self.add_component(XorGate(self.a.get_wire(self.N-1), self.b.get_wire(self.N-1), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self)) + self.add_component(XorGate(self.get_previous_component().out, self.get_previous_component(2).get_generate_wire(), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self)) + self.out.connect(self.N, self.get_previous_component().out) diff --git a/ariths_gen/multi_bit_circuits/adders/carry_increment_adder.py b/ariths_gen/multi_bit_circuits/adders/carry_increment_adder.py new file mode 100644 index 0000000..f633508 --- /dev/null +++ b/ariths_gen/multi_bit_circuits/adders/carry_increment_adder.py @@ -0,0 +1,169 @@ +from ariths_gen.wire_components import ( + Wire, + ConstantWireValue0, + ConstantWireValue1, + Bus, + wires +) +from ariths_gen.core.arithmetic_circuits import ( + ArithmeticCircuit, + MultiplierCircuit +) +from ariths_gen.core.logic_gate_circuits import ( + MultipleInputLogicGate +) +from ariths_gen.one_bit_circuits.one_bit_components import ( + HalfAdder, + FullAdder, + FullAdderP, + TwoOneMultiplexer +) +from ariths_gen.one_bit_circuits.logic_gates import ( + AndGate, + NandGate, + OrGate, + NorGate, + XorGate, + XnorGate, + NotGate +) + + +class UnsignedCarryIncrementAdder(ArithmeticCircuit): + """Class representing unsigned carry increment adder. + + Carry increment adder represents a modified carry select adder that achieves about the same critical delay + while containing less circuitry. It achieves this by factoring out the common logic from the two + chains of full adders (one with cin of 0, the other with 1) present in a classical carry select adder and + by replacing multiplexers with HAs. + + Each carry increment block is composed of these logic parts: + Full adder chain with cin 0 is used to obtain intermediate sum, propagate and cout signals. (In case of first block actual sum bits are obtained) + From second block onward the blocks also contain a chain of half adders to calculate the final sum bits. + Finally the intermediate propagate signals are ANDed with the cout of the half adder chain and ORed with the intermediate + full adder cout to determine the carry bit for the next increment block. + + ``` + ┼ ┼ ┼ ┼ + Cout┌───▼───▼───┐ │ │ + ┌───────────────┤ FAs │◄─0 │ │ + │ └┬────────┬─┘ │ │ + │ ┌─────┐ ┼ P sigs ┼ Sums │ │ + │ │ ANDs│◄────┘ │ │ │ + │ └───┬─┘ │ │ │ + ┌──▼─┐ ┌───▼─┐Cout┌─────────▼─┐ Cout┌───▼───▼───┐ + │ OR │◄─┤ AND │◄───┤ HAs │◄───────┤ FAs │◄─Cin + └─┬──┘ └─────┘ └─────┬─────┘ └─────┬─────┘ + │ ┼ ┼ + │ │ │ + ▼ ▼ ▼ + Cout Sums Sums + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + increment_block_size (int, optional): Size of each composite select adder block size. Defaults to 4. + prefix (str, optional): Prefix name of unsigned cia. Defaults to "". + name (str, optional): Name of unsigned cia. Defaults to "u_cia". + """ + def __init__(self, a: Bus, b: Bus, increment_block_size: int = 4, prefix: str = "", name: str = "u_cia", **kwargs): + self.N = max(a.N, b.N) + super().__init__(a=a, b=b, prefix=prefix, name=name, out_N=self.N+1, **kwargs) + + # Bus sign extension in case buses have different lengths + self.a.bus_extend(N=self.N, prefix=a.prefix) + self.b.bus_extend(N=self.N, prefix=b.prefix) + + assert increment_block_size > 0, "Block size of the individual increment groups must be greater than 0." + + # To signify current number of blocks and number of bits that remain to be added into function blocks + block_n = 0 + N_wires = self.N + cin = ConstantWireValue0() + while N_wires != 0: + propagate_wires = [] + block_size = increment_block_size if N_wires >= increment_block_size else N_wires + for i in range(block_size): + if block_n == 0: # First block contains one chain of full adders (with Cin) directly connected to output wires + self.add_component(FullAdder(a=self.a.get_wire((block_n*increment_block_size)+i), b=self.b.get_wire((block_n*increment_block_size)+i), c=cin, prefix=self.prefix+f"_cin_block{block_n}_fa{i}")) + else: # Other blocks contain one chain of full adders accepting input Cin of 0 to calculate intermediate sum/carry/propagate signals in parallel and other chain of half adders to calculate final sum bits and finally AND OR logic to propagate carry into the next increment block + inter_cin = ConstantWireValue0() if i == 0 else inter_cin + self.add_component(FullAdderP(a=self.a.get_wire((block_n*increment_block_size)+i), b=self.b.get_wire((block_n*increment_block_size)+i), c=inter_cin, prefix=self.prefix+f"_block{block_n}_fa_p{i}")) + propagate_wires.append(self.get_previous_component().get_propagate_wire()) + inter_cin = self.get_previous_component().get_carry_wire() + + # Chain of HA to obtain final sum bits + self.add_component(HalfAdder(a=self.get_previous_component().get_sum_wire(), b=cin, prefix=self.prefix+f"_block{block_n}_ha{i}")) + # Updating cin for the the next adder + cin = self.get_previous_component().get_carry_wire() + # Connecting adder's output sum bit to its proper position within the described circuit's output bus + self.out.connect(i+(block_n*increment_block_size), self.get_previous_component().get_sum_wire()) + + # ANDing of propagate wires, gate's output serves as an input into another AND gate that is used along with the other input (carry from the current increment block) to determine the propagate signal value; next the propagate signal with the carry output from the intermediate FA carry chain is driven to an OR gate to obtain the carry bit for the next increment block + if block_n != 0: + propagation_and = MultipleInputLogicGate(a=Bus(prefix=self.prefix+f"_propagate_signal{block_n}", N=len(propagate_wires), wires_list=propagate_wires), two_input_gate_cls=AndGate, parent_component=self, prefix=self.prefix+f"_and_propagate{block_n}") + self.add_component(AndGate(a=propagation_and.out, b=cin, prefix=self.prefix+"_and"+str(self.get_instance_num(cls=AndGate)), parent_component=self)) + self.add_component(OrGate(a=self.get_previous_component().out, b=inter_cin, prefix=self.prefix+"_or"+str(self.get_instance_num(cls=OrGate)), parent_component=self)) + cin = self.get_previous_component().out + + N_wires -= block_size + block_n += 1 + # Connection of final Cout + self.out.connect(self.N, cin) + + +class SignedCarryIncrementAdder(UnsignedCarryIncrementAdder, ArithmeticCircuit): + """Class representing signed carry increment adder. + + Carry increment adder represents a modified carry select adder that achieves about the same critical delay + while containing less circuitry. It achieves this by factoring out the common logic from the two + chains of full adders (one with cin of 0, the other with 1) present in a classical carry select adder and + by replacing multiplexers with HAs. + + Each carry increment block is composed of these logic parts: + Full adder chain with cin 0 is used to obtain intermediate sum, propagate and cout signals. (In case of first block actual sum bits are obtained) + From second block onward the blocks also contain a chain of half adders to calculate the final sum bits. + Finally the intermediate propagate signals are ANDed with the cout of the half adder chain and ORed with the intermediate + full adder cout to determine the carry bit for the next increment block. + At last XOR gates are used to ensure proper sign extension. + + ``` + ┼ ┼ ┼ ┼ + Cout┌───▼───▼───┐ │ │ + ┌───────────────┤ FAs │◄─0 │ │ + │ └┬────────┬─┘ │ │ + │ ┌─────┐ ┼ P sigs ┼ Sums │ │ + │ │ ANDs│◄────┘ │ │ │ + │ └───┬─┘ │ │ │ + ┌──▼─┐ ┌───▼─┐Cout┌─────────▼─┐ Cout┌───▼───▼───┐ + │ OR │◄─┤ AND │◄───┤ HAs │◄───────┤ FAs │◄─Cin + └─┬──┘ └─────┘ └─────┬─────┘ └─────┬─────┘ + ┌──▼───┐ ┼ ┼ + │ SIGN │ │ │ + │Extend│ │ │ + └──┬───┘ │ │ + │ │ │ + │ │ │ + ▼ ▼ ▼ + Cout Sums Sums + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + increment_block_size (int, optional): Size of each composite select adder block size. Defaults to 4. + prefix (str, optional): Prefix name of signed cia. Defaults to "". + name (str, optional): Name of signed cia. Defaults to "s_cia". + """ + def __init__(self, a: Bus, b: Bus, increment_block_size: int = 4, prefix: str = "", name: str = "s_cia", **kwargs): + super().__init__(a=a, b=b, increment_block_size=increment_block_size, prefix=prefix, name=name, signed=True, **kwargs) + + # Additional XOR gates to ensure correct sign extension in case of sign addition + self.add_component(XorGate(self.a.get_wire(self.N-1), self.b.get_wire(self.N-1), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate, count_disabled_gates=False)), parent_component=self)) + self.add_component(XorGate(self.get_previous_component().out, self.out.get_wire(-1), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate, count_disabled_gates=False)), parent_component=self)) + self.out.connect(self.N, self.get_previous_component().out) diff --git a/ariths_gen/multi_bit_circuits/adders/carry_lookahead_adder.py b/ariths_gen/multi_bit_circuits/adders/carry_lookahead_adder.py index 7599fe8..4665b50 100644 --- a/ariths_gen/multi_bit_circuits/adders/carry_lookahead_adder.py +++ b/ariths_gen/multi_bit_circuits/adders/carry_lookahead_adder.py @@ -13,9 +13,9 @@ from ariths_gen.core.logic_gate_circuits import ( ) from ariths_gen.one_bit_circuits.one_bit_components import ( HalfAdder, - PGLogicBlock, FullAdder, - FullAdderPG + FullAdderPG, + PGLogicBlock ) from ariths_gen.one_bit_circuits.logic_gates import ( AndGate, @@ -48,7 +48,7 @@ class UnsignedCarryLookaheadAdder(ArithmeticCircuit): └─┬┬┬──┘ └─┬┬┬──┘ └─┬┬┬──┘ └─┬┬┬──┘ │││G3P3S3 │││G2P2S2 │││G1P1S1 │││G0P0S0 ┌─▼▼▼────────▼▼▼────────▼▼▼────────▼▼▼──┐ - │ Carry Lookahead logic │ + │ Carry Lookahead logic block │ │ │ └┬────┬───────┬──────────┬──────────┬───┘ │ │ │ │ │ @@ -73,73 +73,56 @@ class UnsignedCarryLookaheadAdder(ArithmeticCircuit): self.a.bus_extend(N=self.N, prefix=a.prefix) self.b.bus_extend(N=self.N, prefix=b.prefix) + assert cla_block_size > 0, "Block size of the individual cla groups must be greater than 0." + # To signify current number of blocks and number of bits that remain to be added into function blocks - N_blocks = 0 + block_n = 0 N_wires = self.N cin = ConstantWireValue0() - while N_wires != 0: - # Lists containing all propagate/generate wires - self.propagate = [] - self.generate = [] + # Lists containing all propagate/generate wires for the current cla block + propagate_sig = [] + generate_sig = [] # Cin0 used as a first generate wire for obtaining next carry bits - self.generate.append(cin) + generate_sig.append(cin) block_size = cla_block_size if N_wires >= cla_block_size else N_wires # Gradual addition of propagate/generate logic blocks and AND/OR gates for Cout bits generation, XOR gates for Sum bits generation for i in range(block_size): - pg_block = PGLogicBlock(self.a.get_wire((N_blocks*cla_block_size)+i), self.b.get_wire((N_blocks*cla_block_size)+i), prefix=self.prefix+"_pg_logic"+str(self.get_instance_num(cls=PGLogicBlock))) - self.propagate.append(pg_block.get_propagate_wire()) - self.generate.append(pg_block.get_generate_wire()) + pg_block = PGLogicBlock(self.a.get_wire((block_n*cla_block_size)+i), self.b.get_wire((block_n*cla_block_size)+i), prefix=self.prefix+"_pg_logic"+str(self.get_instance_num(cls=PGLogicBlock))) + propagate_sig.append(pg_block.get_propagate_wire()) + generate_sig.append(pg_block.get_generate_wire()) self.add_component(pg_block) - if i == 0 and N_blocks == 0: - obj_sum_xor = XorGate(pg_block.get_sum_wire(), cin, prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self) - self.add_component(obj_sum_xor) - self.out.connect(i+(N_blocks*cla_block_size), obj_sum_xor.out) + self.add_component(XorGate(pg_block.get_sum_wire(), cin, prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self)) + self.out.connect(i+(block_n*cla_block_size), self.get_previous_component().out) - # Carry propagation calculation - obj_and = AndGate(self.propagate[(N_blocks*cla_block_size)+i], self.generate[(N_blocks*cla_block_size)+i], prefix=self.prefix+"_and"+str(self.get_instance_num(cls=AndGate)), parent_component=self) - self.add_component(obj_and) + # List of AND gates outputs that are later combined in a multi-bit OR gate + composite_or_gates_inputs = [] + for g_index in range(len(generate_sig)-1): + composite_wires = [] + # Getting a list of wires used for current bit position cout composite AND gate's generation + # E.g. for Cout2 = G1 + G0·P1 C0·P0·P1 it gets a list containing [C0,P0,P1] then [G0,P1] + composite_wires.append(generate_sig[g_index]) + for p_index in range(len(propagate_sig)-1, g_index-1, -1): + composite_wires.append(propagate_sig[p_index]) - # Carry bit generation - obj_cout_or = OrGate(pg_block.get_generate_wire(), self.get_previous_component().out, prefix=self.prefix+"_or"+str(self.get_instance_num(cls=OrGate, count_disabled_gates=False)), parent_component=self) - self.add_component(obj_cout_or) - else: - obj_sum_xor = XorGate(pg_block.get_sum_wire(), self.get_previous_component(2).out, prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self) - self.add_component(obj_sum_xor) - self.out.connect(i+(N_blocks*cla_block_size), obj_sum_xor.out) + # For each pg pair values algorithmically combine two input AND gates to replace multiple input gates (resolves fan-in issue) + pg_wires = Bus(wires_list=composite_wires) + multi_bit_and_gate = MultipleInputLogicGate(a=pg_wires, two_input_gate_cls=AndGate, prefix=self.prefix+"_and", parent_component=self) + composite_or_gates_inputs.append(multi_bit_and_gate.out) - # List of AND gates outputs that are later combined in a multi-bit OR gate - composite_or_gates_inputs = [] - - for g_index in range(len(self.generate)-1): - composite_wires = [] - # Getting a list of wires used for current bit position cout composite AND gate's generation - # E.g. for Cout2 = G1 + G0·P1 C0·P0·P1 it gets a list containing [C0,P0,P1] then [G0,P1] - composite_wires.append(self.generate[g_index]) - for p_index in range(len(self.propagate)-1, g_index-1, -1): - composite_wires.append(self.propagate[p_index]) - - # For each pg pair values algorithmically combine two input AND gates to replace multiple input gates (resolves fan-in issue) - pg_wires = Bus(wires_list=composite_wires) - multi_bit_and_gate = MultipleInputLogicGate(a=pg_wires, two_input_gate_cls=AndGate, prefix=self.prefix+"_and", parent_component=self) - composite_or_gates_inputs.append(multi_bit_and_gate.out) - - # Final OR gates cascade using generated AND gates output wires - composite_or_wires = Bus(wires_list=composite_or_gates_inputs) - multi_bit_or_gate = MultipleInputLogicGate(a=composite_or_wires, two_input_gate_cls=OrGate, prefix=self.prefix+"_or", parent_component=self) - - # Carry bit generation - obj_cout_or = OrGate(pg_block.get_generate_wire(), multi_bit_or_gate.out, prefix=self.prefix+"_or"+str(self.get_instance_num(cls=OrGate, count_disabled_gates=False)), parent_component=self) - self.add_component(obj_cout_or) - - # Updating cin for the the next bypass block - # Also updating cout value which is used as cin for the first adder of the next block - cin = obj_cout_or.out + # Final OR gates cascade using generated AND gates output wires + composite_or_wires = Bus(wires_list=composite_or_gates_inputs) + multi_bit_or_gate = MultipleInputLogicGate(a=composite_or_wires, two_input_gate_cls=OrGate, prefix=self.prefix+"_or", parent_component=self) + # Carry bit generation + obj_cout_or = OrGate(pg_block.get_generate_wire(), multi_bit_or_gate.out, prefix=self.prefix+"_or"+str(self.get_instance_num(cls=OrGate, count_disabled_gates=False)), parent_component=self) + self.add_component(obj_cout_or) + # Updating cin for the the next cla block/sum XOR + cin = obj_cout_or.out N_wires -= block_size - N_blocks += 1 + block_n += 1 # Connection of final Cout self.out.connect(self.N, cin) diff --git a/ariths_gen/multi_bit_circuits/adders/carry_save_adder.py b/ariths_gen/multi_bit_circuits/adders/carry_save_adder.py index a01270b..a770862 100644 --- a/ariths_gen/multi_bit_circuits/adders/carry_save_adder.py +++ b/ariths_gen/multi_bit_circuits/adders/carry_save_adder.py @@ -11,9 +11,7 @@ from ariths_gen.core.arithmetic_circuits import ( ) from ariths_gen.one_bit_circuits.one_bit_components import ( HalfAdder, - PGLogicBlock, - FullAdder, - FullAdderPG + FullAdder ) from ariths_gen.one_bit_circuits.logic_gates import ( AndGate, @@ -39,7 +37,7 @@ class CarrySaveAdderComponent(ThreeInputArithmeticCircuit): The carry save adder component is especially useful when constructing tree multiplier architectures to reduce the propagation delay as opposed to traditional implementation of tree multipliers with half/full adders. - The circuit is composed of full adders that operate paralelly and each take 3 input operands. + The circuit is composed of full adders that operate in parallel and each take 3 input operands. The final output bus is composed of sum and carry bits of its corresponding contained full adders. ``` C3 B3 A3 C2 B2 A2 C1 B1 A1 C0 B0 A0 @@ -101,7 +99,7 @@ class UnsignedCarrySaveAdder(ThreeInputArithmeticCircuit): Unsigned carry save adder represents 3 input N-bit unsigned adder which is composed of N one bit full adders, that are not interconnected as in for example the ripple carry adder, - but instead operate parallelly. + but instead operate in parallel. The sum and carry bits of the individual full adders are connected to a multi bit adder to sum the final result. ``` diff --git a/ariths_gen/multi_bit_circuits/adders/carry_select_adder.py b/ariths_gen/multi_bit_circuits/adders/carry_select_adder.py new file mode 100644 index 0000000..36c7fa4 --- /dev/null +++ b/ariths_gen/multi_bit_circuits/adders/carry_select_adder.py @@ -0,0 +1,180 @@ +from ariths_gen.wire_components import ( + Wire, + ConstantWireValue0, + ConstantWireValue1, + Bus, + wires +) +from ariths_gen.core.arithmetic_circuits import ( + ArithmeticCircuit, + MultiplierCircuit +) +from ariths_gen.core.logic_gate_circuits import ( + MultipleInputLogicGate +) +from ariths_gen.one_bit_circuits.one_bit_components import ( + HalfAdder, + FullAdder, + TwoOneMultiplexer +) +from ariths_gen.one_bit_circuits.logic_gates import ( + AndGate, + NandGate, + OrGate, + NorGate, + XorGate, + XnorGate, + NotGate +) + + +class UnsignedCarrySelectAdder(ArithmeticCircuit): + """Class representing unsigned carry select adder. + + Carry select adder's logic is divided into a number of carry select blocks. + Each block precomputes the outputs for both possible carry bit inputs for the + given block of input indexes. + + Each carry select block is composed of these logic parts: + Two full adder chains where the first accepts input Cin of 1 and the second accepts Cin of 0. + (In case of first block only one chain is used and actual sum bits are obtained) + From second block onward the blocks also contain multiplexers to choose the appropriate precomputed sum based + on the carry out signal from the previous block (which serves as a select signal for the multiplexers). + Finally the block also contains AND and OR gate to determine the carry out of the current block. + + ``` + ┼ ┼ ┼ ┼ + Cout┌───▼───▼───┐ │ │ + ┌───┤ FAs │◄─0 │ │ + │ └─────┬─────┘ │ │ + │ ┼ Sums │ │ + ┌───────────┘ └─────────┐ │ │ + │ ┼ ┼ │ │ │ + ┌──▼─┐ ┌─────┐Cout┌───▼───▼───┐ │Cout┌───▼───▼───┐ + │ OR │◄─┤ AND │◄───┤ FAs │◄─1│ ┌─┤ FAs │◄─Cin + └─┬──┘ └───▲─┘ └─────┬─────┘ │ │ └─────┬─────┘ + │ │ ┼ Sums │ │ ┼ + │ │ ┌─┘ ┌───────┘ │ │ + │ └──────────┼───┼───────┬──┘ │ + │ ┌───▼───▼───┐SEL│ │ + │ │ 2:1 MUXes │◄──┘ │ + │ └─────┬─────┘ │ + │ ┼ │ + ▼ ▼ ▼ + Cout Sums Sums + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + select_block_size (int, optional): Size of each composite select adder block size. Defaults to 4. + prefix (str, optional): Prefix name of unsigned csla. Defaults to "". + name (str, optional): Name of unsigned csla. Defaults to "u_csla". + """ + def __init__(self, a: Bus, b: Bus, select_block_size: int = 4, prefix: str = "", name: str = "u_csla", **kwargs): + self.N = max(a.N, b.N) + super().__init__(a=a, b=b, prefix=prefix, name=name, out_N=self.N+1, **kwargs) + + # Bus sign extension in case buses have different lengths + self.a.bus_extend(N=self.N, prefix=a.prefix) + self.b.bus_extend(N=self.N, prefix=b.prefix) + + assert select_block_size > 0, "Block size of the individual select groups must be greater than 0." + + # To signify current number of blocks and number of bits that remain to be added into function blocks + block_n = 0 + N_wires = self.N + cin = ConstantWireValue0() + while N_wires != 0: + block_size = select_block_size if N_wires >= select_block_size else N_wires + for i in range(block_size): + if block_n == 0: # First block contains just one chain of full adders (with Cin) + obj_adder = FullAdder(a=self.a.get_wire((block_n*select_block_size)+i), b=self.b.get_wire((block_n*select_block_size)+i), c=cin, prefix=self.prefix+f"_cin_block{block_n}_fa{i}") + self.add_component(obj_adder) + # Connecting adder's output sum bit to its proper position within the described circuit's output bus + self.out.connect(i, obj_adder.get_sum_wire()) + # Updating cin for the the next adder/select block + cin = obj_adder.get_carry_wire() + else: # Other blocks contain two full adder chains where the first accepts input Cin of 1 and the second accepts Cin of 0; then 2-1 MUXes choose the proper output sum bit and finally the AND OR logic propagates carry signal into the next select block + if i == 0: + obj_adder0 = FullAdder(a=self.a.get_wire((block_n*select_block_size)+i), b=self.b.get_wire((block_n*select_block_size)+i), c=ConstantWireValue0(), prefix=self.prefix+f"_0block{block_n}_fa{i}") + obj_adder1 = FullAdder(a=self.a.get_wire((block_n*select_block_size)+i), b=self.b.get_wire((block_n*select_block_size)+i), c=ConstantWireValue1(), prefix=self.prefix+f"_1block{block_n}_fa{i}") + else: + obj_adder0 = FullAdder(a=self.a.get_wire((block_n*select_block_size)+i), b=self.b.get_wire((block_n*select_block_size)+i), c=self.get_previous_component(3).get_carry_wire(), prefix=self.prefix+f"_0block{block_n}_fa{i}") + obj_adder1 = FullAdder(a=self.a.get_wire((block_n*select_block_size)+i), b=self.b.get_wire((block_n*select_block_size)+i), c=self.get_previous_component(2).get_carry_wire(), prefix=self.prefix+f"_1block{block_n}_fa{i}") + self.add_component(obj_adder0) + self.add_component(obj_adder1) + + self.add_component(TwoOneMultiplexer(a=obj_adder0.get_sum_wire(), b=obj_adder1.get_sum_wire(), c=cin, prefix=self.prefix+f"_block{block_n}_mux2to1_{i}")) + # Connecting the selected adder's output sum bit to its proper position within the described circuit's output bus + self.out.connect(i+(block_n*select_block_size), self.get_previous_component().out.get_wire()) + + if i == block_size-1: + # Updating cin for the the next select block + cout0 = obj_adder0.get_carry_wire() + cout1 = obj_adder1.get_carry_wire() + self.add_component(AndGate(a=cout1, b=cin, prefix=self.prefix+f"_block{block_n}_and{i}", parent_component=self)) + self.add_component(OrGate(a=cout0, b=self.get_previous_component().out, prefix=self.prefix+f"_block{block_n}_or{i}", parent_component=self)) + cin = self.get_previous_component().out + + N_wires -= block_size + block_n += 1 + # Connection of final Cout + self.out.connect(self.N, cin) + + +class SignedCarrySelectAdder(UnsignedCarrySelectAdder, ArithmeticCircuit): + """Class representing signed carry select adder. + + Carry select adder's logic is divided into a number of carry select blocks. + Each block precomputes the outputs for both possible carry bit inputs for the + given block of input indexes. + + Each carry select block is composed of these logic parts: + Two full adder chains where the first accepts input Cin of 1 and the second accepts Cin of 0. + (In case of first block only one chain is used and actual sum bits are obtained) + From second block onward the blocks also contain multiplexers to choose the appropriate precomputed sum based + on the carry out signal from the previous block (which serves as a select signal for the multiplexers). + Finally the block also contains AND and OR gate to determine the carry out of the current block. + At last XOR gates are used to ensure proper sign extension. + + ``` + ┼ ┼ ┼ ┼ + Cout┌───▼───▼───┐ │ │ + ┌───┤ FAs │◄─0 │ │ + │ └─────┬─────┘ │ │ + │ ┼ Sums │ │ + ┌───────────┘ └─────────┐ │ │ + │ ┼ ┼ │ │ │ + ┌──▼─┐ ┌─────┐Cout┌───▼───▼───┐ │Cout┌───▼───▼───┐ + │ OR │◄─┤ AND │◄───┤ FAs │◄─1│ ┌─┤ FAs │◄─Cin + └─┬──┘ └───▲─┘ └─────┬─────┘ │ │ └─────┬─────┘ + │ │ ┼ Sums │ │ ┼ + ┌──▼───┐ │ ┌─┘ ┌───────┘ │ │ + │ SIGN │ └──────────┼───┼───────┬──┘ │ + │Extend│ ┌───▼───▼───┐SEL│ │ + └──┬───┘ │ 2:1 MUXes │◄──┘ │ + │ └─────┬─────┘ │ + │ ┼ │ + ▼ ▼ ▼ + Cout Sums Sums + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + select_block_size (int, optional): Size of each composite select adder block size. Defaults to 4. + prefix (str, optional): Prefix name of signed csla. Defaults to "". + name (str, optional): Name of signed csla. Defaults to "s_csla". + """ + def __init__(self, a: Bus, b: Bus, select_block_size: int = 4, prefix: str = "", name: str = "s_csla", **kwargs): + super().__init__(a=a, b=b, select_block_size=select_block_size, prefix=prefix, name=name, signed=True, **kwargs) + + # Additional XOR gates to ensure correct sign extension in case of sign addition + self.add_component(XorGate(self.a.get_wire(self.N-1), self.b.get_wire(self.N-1), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate, count_disabled_gates=False)), parent_component=self)) + self.add_component(XorGate(self.get_previous_component().out, self.out.get_wire(-1), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate, count_disabled_gates=False)), parent_component=self)) + self.out.connect(self.N, self.get_previous_component().out) diff --git a/ariths_gen/multi_bit_circuits/adders/carry_skip_adder.py b/ariths_gen/multi_bit_circuits/adders/carry_skip_adder.py index 7b75124..c4ea318 100644 --- a/ariths_gen/multi_bit_circuits/adders/carry_skip_adder.py +++ b/ariths_gen/multi_bit_circuits/adders/carry_skip_adder.py @@ -14,9 +14,7 @@ from ariths_gen.core.logic_gate_circuits import ( ) from ariths_gen.one_bit_circuits.one_bit_components import ( HalfAdder, - PGLogicBlock, FullAdder, - FullAdderPG, TwoOneMultiplexer ) from ariths_gen.one_bit_circuits.logic_gates import ( @@ -58,7 +56,7 @@ class UnsignedCarrySkipAdder(ArithmeticCircuit): │ │ │ Adders │◄─┘ │ │ Adders │◄─┘ │ └────┤ │ └────┤ │ │ └─────┬─────┘ └─────┬─────┘ - │ │ │ + │ ┼ ┼ ▼ ▼ ▼ Cout Sums Sums ``` @@ -80,33 +78,33 @@ class UnsignedCarrySkipAdder(ArithmeticCircuit): self.a.bus_extend(N=self.N, prefix=a.prefix) self.b.bus_extend(N=self.N, prefix=b.prefix) + assert bypass_block_size > 0, "Block size of the individual bypass groups must be greater than 0." + # To signify current number of blocks and number of bits that remain to be added into function blocks - N_blocks = 0 + block_n = 0 N_wires = self.N cin = ConstantWireValue0() - while N_wires != 0: propagate_wires = [] block_size = bypass_block_size if N_wires >= bypass_block_size else N_wires - for i in range(block_size): # Generate propagate wires for corresponding bit pairs - propagate_xor = XorGate(a=self.a.get_wire((N_blocks*bypass_block_size)+i), b=self.b.get_wire((N_blocks*bypass_block_size)+i), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self) + propagate_xor = XorGate(a=self.a.get_wire((block_n*bypass_block_size)+i), b=self.b.get_wire((block_n*bypass_block_size)+i), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self) self.add_component(propagate_xor) propagate_wires.append(propagate_xor.out) - if N_blocks == 0 and i == 0: - obj_adder = HalfAdder(a=self.a.get_wire((N_blocks*bypass_block_size)+i), b=self.b.get_wire((N_blocks*bypass_block_size)+i), prefix=self.prefix+"_ha"+str(self.get_instance_num(cls=HalfAdder))) + if block_n == 0 and i == 0: + obj_adder = HalfAdder(a=self.a.get_wire((block_n*bypass_block_size)+i), b=self.b.get_wire((block_n*bypass_block_size)+i), prefix=self.prefix+"_ha"+str(self.get_instance_num(cls=HalfAdder))) else: - obj_adder = FullAdder(a=self.a.get_wire((N_blocks*bypass_block_size)+i), b=self.b.get_wire((N_blocks*bypass_block_size)+i), c=cout, prefix=self.prefix+"_fa"+str(self.get_instance_num(cls=FullAdder))) + obj_adder = FullAdder(a=self.a.get_wire((block_n*bypass_block_size)+i), b=self.b.get_wire((block_n*bypass_block_size)+i), c=cout, prefix=self.prefix+"_fa"+str(self.get_instance_num(cls=FullAdder))) cout = obj_adder.get_carry_wire() self.add_component(obj_adder) # Connecting adder's output sum bit to its proper position within the described circuit's output bus - self.out.connect(i+(N_blocks*bypass_block_size), obj_adder.get_sum_wire()) + self.out.connect(i+(block_n*bypass_block_size), obj_adder.get_sum_wire()) # ANDing of propagate wires, gate's output serves as select signal into 2:1 multiplexer and signifies whether block's input carry should be propagated (thus reducing delay) or not - propagation_and = MultipleInputLogicGate(a=Bus(prefix=self.prefix+f"_propagate_signal{N_blocks}", N=len(propagate_wires), wires_list=propagate_wires), two_input_gate_cls=AndGate, parent_component=self, prefix=self.prefix+f"_and_propagate{N_blocks}") + propagation_and = MultipleInputLogicGate(a=Bus(prefix=self.prefix+f"_propagate_signals{block_n}", N=len(propagate_wires), wires_list=propagate_wires), two_input_gate_cls=AndGate, parent_component=self, prefix=self.prefix+f"_and_propagate{block_n}") mux = TwoOneMultiplexer(a=cout, b=cin, c=propagation_and.out, prefix=self.prefix+"_mux2to1"+str(self.get_instance_num(cls=TwoOneMultiplexer))) self.add_component(mux) @@ -116,7 +114,7 @@ class UnsignedCarrySkipAdder(ArithmeticCircuit): cin = mux.out.get_wire() cout = mux.out.get_wire() N_wires -= block_size - N_blocks += 1 + block_n += 1 # Connection of final Cout self.out.connect(self.N, cin) @@ -152,7 +150,7 @@ class SignedCarrySkipAdder(UnsignedCarrySkipAdder, ArithmeticCircuit): │ SIGN │ │ │ Adders │◄─┘ │ │ Adders │◄─┘ │Extend│ └────┤ │ └────┤ │ └──┬───┘ └─────┬─────┘ └─────┬─────┘ - │ │ │ + │ ┼ ┼ ▼ ▼ ▼ Cout Sums Sums ``` diff --git a/ariths_gen/multi_bit_circuits/adders/conditional_sum_adder.py b/ariths_gen/multi_bit_circuits/adders/conditional_sum_adder.py new file mode 100644 index 0000000..c66661d --- /dev/null +++ b/ariths_gen/multi_bit_circuits/adders/conditional_sum_adder.py @@ -0,0 +1,282 @@ +from ariths_gen.wire_components import ( + Wire, + ConstantWireValue0, + ConstantWireValue1, + Bus, + wires +) +from ariths_gen.core.arithmetic_circuits import ( + ArithmeticCircuit, + MultiplierCircuit +) +from ariths_gen.core.logic_gate_circuits import ( + MultipleInputLogicGate +) +from ariths_gen.one_bit_circuits.one_bit_components import ( + HalfAdder, + FullAdder, + TwoOneMultiplexer +) +from ariths_gen.one_bit_circuits.logic_gates import ( + AndGate, + NandGate, + OrGate, + NorGate, + XorGate, + XnorGate, + NotGate +) +import math + + +class UnsignedConditionalSumAdder(ArithmeticCircuit): + """Class representing unsigned conditional sum adder. + + Conditional sum adder performs carry-select addition starting with + groups of 1 bit and recursively doubling to N/2 bits. + + The individual input bit pairs are first added in a carry-select fashion (cin of 0 and 1) with block size of 1. + Then in the subsequent two rows multiplexer pairs are used to properly select the sum and carry-out + of the upper bit of each block of size 2 (higher bit of the previous 2-bits from the previous level). + The next two rows follow the principle for blocks of size 4 and so on. + + The conditional sum adder shares the same structural characteristics as Sklansky tree adder. + Because of using many multiplexers, the number of gates is significant when compared to other architectures. + + Another way on how to look at (and determine the number of) the multiplexers in the subsequent stages + can be done by converting the input bit index (counting from 0) into its binary form. Each bit position with value 1 + signifies the stage position that contains multiplexers + (which ones and how many of them depends on other input bit index characteristics deducible from the code below). + + ``` + B3A3 B2A2 B1A1 B0A0 + ││ ││ ││ ││ + C4┌▼▼┐ C3┌▼▼┐ C2┌▼▼┐ C1┌▼▼┐ + ┌┤FA│◄─0 ┌──┤FA│◄─0 ┌┤FA│◄─0 ┌──┤FA│◄─Cin + │└┬─┘ │ └┬─┘ │└┬─┘ │ └┬─┘ + │ │S3 │ │S2 │ │S1 │ │ + │ └───────┐ │ └───────┐ │ └───────┐ │ │ + └────────┐│ │ │ └────────┐│ │ │ + B3A3 ││ │ B2A2 │ B1A1 ││ │ │ + ││ ││ │ ││ │ ││ ││ │ │ + C4┌▼▼┐ ││ │C3┌▼▼┐ │ C2┌▼▼┐ ││ │ │ + ┌┤FA│◄─1 ││ │┌─┤FA│◄─1 │ ┌┤FA│◄─1 ││ │ │ + │└┬─┘ ││ ││ └┬─┘ │ │└┬─┘ ││ │ │ + │ │S3 ││ ││ │S2 │ │ │S1 ││ │ │ + ┌┼─┴┐ ┌───┤│ ││ │ │ │ └┐ ┌───┘│ │ │ + │├─┐│ │┌──┼┤ ││ │ ┌───┘ └─┐│ │┌───┘ │ │ + ││ ││ ││ ││ ││ │ │ ││ ││ │ │ + ││┌▼▼─▼▼┐ ││ ││ │ │ ┌▼▼─▼▼┐ │ │ + │││ 2:1 │ ││SEL││ │ │ │ 2:1 │ SEL│ │ + Stage 0: │││MUXes│◄┼┼───┘│ │ │ │MUXes│◄─────┘ │ + │││ CS │ ││ │ │ │ │ CS │ │ + ││└┬───┬┘ ││ │ │ │ └┬───┬┘ │ + ││ │C4 │S3││ │ │ │ │C2 │ │ + ││ └───┼──┼┼────┼┐ │ │ │ │ │ + ││ └──┼┼────┼┼┐│ │ │ │ │ + └┼──┐ ┌───┘│ ││││ │ │ │ │ + └─┐│ │┌───┘ ││││ │ │ │ │ + ││ ││ ││││ │ │ │ │ + ┌▼▼─▼▼┐ ││││ │ │ │ │ + │ 2:1 │ SEL ││││ │ │ │ │ + Stage 0: │MUXes│◄──────┘│││ │ │ │ │ + │ CS │ │││ │ │ │ │ + └┬───┬┘ │││ │ │ │ │ + │C4 │S3 │││ │ │ │ │ + │┌──┘ │││ │ │ │ │ + ││ ┌──────────┘││ │ │ │ │ + ││ │┌──────────┘│ │ │ │ │ + ││ ││ ┌───┼───┼───────────┤ │ │ + ┌▼▼─▼▼┐ │ ┌▼───▼┐ │ │ │ + │ 2:1 │ SEL│ │ 2:1 │ SEL │ │ │ + Stage 1: │MUXes│◄─────┘ │MUXes│◄─────────┘ │ │ + │ CS │ │ S │ │ │ + └┬───┬┘ └────┬┘ │ │ + │C4 │ │ │ │ + │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ + Cout S3 S2 S1 S0 + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + prefix (str, optional): Prefix name of unsigned cosa. Defaults to "". + name (str, optional): Name of unsigned cosa. Defaults to "u_cosa". + """ + def __init__(self, a: Bus, b: Bus, prefix: str = "", name: str = "u_cosa", **kwargs): + self.N = max(a.N, b.N) + super().__init__(a=a, b=b, prefix=prefix, name=name, out_N=self.N+1, **kwargs) + + # Bus sign extension in case buses have different lengths + self.a.bus_extend(N=self.N, prefix=a.prefix) + self.b.bus_extend(N=self.N, prefix=b.prefix) + cin = ConstantWireValue0() + + # Lists of lists containing all sum/carry wires + self.sum_sig = [([], []) for i in range(self.N)] + self.carry_sig = [([], []) for i in range(self.N+1)] # +1 because of cin + self.carry_sig[0][0].append(cin) + + for i_wire in range(self.N): + if i_wire == 0: + self.add_component(FullAdder(a=self.a.get_wire(i_wire), b=self.b.get_wire(i_wire), c=cin, prefix=self.prefix+"_fa"+str(self.get_instance_num(cls=FullAdder)))) + self.sum_sig[i_wire][0].append(self.get_previous_component().get_sum_wire()) + self.carry_sig[i_wire+1][0].append(self.get_previous_component().get_carry_wire()) + + self.out.connect(i_wire, self.get_previous_component().get_sum_wire()) + else: + # Create FA with cin set to ConstantValue0 (and ConstantValue1 respectively) and save the generated sum and carry wires to the appropriate positions within the sum_sig and carry_sig lists to allow easier access when doing interconnections between muxes + self.add_component(FullAdder(a=self.a.get_wire(i_wire), b=self.b.get_wire(i_wire), c=ConstantWireValue0(), prefix=self.prefix+"_fa"+str(self.get_instance_num(cls=FullAdder)))) + self.sum_sig[i_wire][0].append(self.get_previous_component().get_sum_wire()) + self.carry_sig[i_wire+1][0].append(self.get_previous_component().get_carry_wire()) + self.add_component(FullAdder(a=self.a.get_wire(i_wire), b=self.b.get_wire(i_wire), c=ConstantWireValue1(), prefix=self.prefix+"_fa"+str(self.get_instance_num(cls=FullAdder)))) + self.sum_sig[i_wire][1].append(self.get_previous_component().get_sum_wire()) + self.carry_sig[i_wire+1][1].append(self.get_previous_component().get_carry_wire()) + + # Determine the number of 2:1 muxes stages to choose which of the fa sum and carry bit to propagate further + binary_form = bin(i_wire)[2:][::-1] + index_stages = len(binary_form) + prev_stage_int_value = 0 + # Create approprite structure of muxes and interconnect wires according to the bit index and stage + for stage, value in enumerate(binary_form): + if value == '1': + # Both sum and carry muxes in stages + if i_wire % 2 != 0 or i_wire == self.N-1: # Odd-numbered bit indexes + if stage == index_stages-1 and (math.log(i_wire+1, 2).is_integer() or i_wire == self.N-1): # Stage with only one pair of sum and carry multiplexers + # Sum + self.add_component(TwoOneMultiplexer(a=self.sum_sig[i_wire][0][-1], b=self.sum_sig[i_wire][1][-1], c=self.carry_sig[i_wire-prev_stage_int_value][0][-1], prefix=self.prefix+"_mux2to1_"+str(self.get_instance_num(cls=TwoOneMultiplexer)))) + self.sum_sig[i_wire][0].append(self.get_previous_component().out.get_wire()) + # Carry + self.add_component(TwoOneMultiplexer(a=self.carry_sig[i_wire+1][0][-1], b=self.carry_sig[i_wire+1][1][-1], c=self.carry_sig[i_wire-prev_stage_int_value][0][-1], prefix=self.prefix+"_mux2to1_"+str(self.get_instance_num(cls=TwoOneMultiplexer)))) + self.carry_sig[i_wire+1][0].append(self.get_previous_component().out.get_wire()) + + self.out.connect(i_wire, self.sum_sig[i_wire][0][-1]) + elif stage == index_stages-1: # Stage with only one sum multiplexer + self.add_component(TwoOneMultiplexer(a=self.sum_sig[i_wire][0][-1], b=self.sum_sig[i_wire][1][-1], c=self.carry_sig[i_wire-prev_stage_int_value][0][-1], prefix=self.prefix+"_mux2to1_"+str(self.get_instance_num(cls=TwoOneMultiplexer)))) + self.sum_sig[i_wire][0].append(self.get_previous_component().out.get_wire()) + + self.out.connect(i_wire, self.sum_sig[i_wire][0][-1]) + else: # Stage with two pairs of sum and carry multiplexers + # Sum + self.add_component(TwoOneMultiplexer(a=self.sum_sig[i_wire][0][-1], b=self.sum_sig[i_wire][1][-1], c=self.carry_sig[i_wire-prev_stage_int_value][0][-1], prefix=self.prefix+"_mux2to1_"+str(self.get_instance_num(cls=TwoOneMultiplexer)))) + self.add_component(TwoOneMultiplexer(a=self.sum_sig[i_wire][0][-1], b=self.sum_sig[i_wire][1][-1], c=self.carry_sig[i_wire-prev_stage_int_value][1][-1], prefix=self.prefix+"_mux2to1_"+str(self.get_instance_num(cls=TwoOneMultiplexer)))) + + self.sum_sig[i_wire][0].append(self.get_previous_component(2).out.get_wire()) + self.sum_sig[i_wire][1].append(self.get_previous_component().out.get_wire()) + # Carry + self.add_component(TwoOneMultiplexer(a=self.carry_sig[i_wire+1][0][-1], b=self.carry_sig[i_wire+1][1][-1], c=self.carry_sig[i_wire-prev_stage_int_value][0][-1], prefix=self.prefix+"_mux2to1_"+str(self.get_instance_num(cls=TwoOneMultiplexer)))) + self.add_component(TwoOneMultiplexer(a=self.carry_sig[i_wire+1][0][-1], b=self.carry_sig[i_wire+1][1][-1], c=self.carry_sig[i_wire-prev_stage_int_value][1][-1], prefix=self.prefix+"_mux2to1_"+str(self.get_instance_num(cls=TwoOneMultiplexer)))) + + self.carry_sig[i_wire+1][0].append(self.get_previous_component(2).out.get_wire()) + self.carry_sig[i_wire+1][1].append(self.get_previous_component().out.get_wire()) + + # Only sum muxes in all stages + else: # Even-numbered bit indexes + if stage == index_stages-1: # Stage with only one sum multiplexer + self.add_component(TwoOneMultiplexer(a=self.sum_sig[i_wire][0][-1], b=self.sum_sig[i_wire][1][-1], c=self.carry_sig[i_wire-prev_stage_int_value][0][-1], prefix=self.prefix+"_mux2to1_"+str(self.get_instance_num(cls=TwoOneMultiplexer)))) + self.sum_sig[i_wire][0].append(self.get_previous_component().out.get_wire()) + self.out.connect(i_wire, self.sum_sig[i_wire][0][-1]) + else: # Stage with two sum multiplexers + self.add_component(TwoOneMultiplexer(a=self.sum_sig[i_wire][0][-1], b=self.sum_sig[i_wire][1][-1], c=self.carry_sig[i_wire-prev_stage_int_value][0][stage], prefix=self.prefix+"_mux2to1_"+str(self.get_instance_num(cls=TwoOneMultiplexer)))) + self.sum_sig[i_wire][0].append(self.get_previous_component().out.get_wire()) + + self.add_component(TwoOneMultiplexer(a=self.sum_sig[i_wire][0][-1], b=self.sum_sig[i_wire][1][-1], c=self.carry_sig[i_wire-prev_stage_int_value][1][stage], prefix=self.prefix+"_mux2to1_"+str(self.get_instance_num(cls=TwoOneMultiplexer)))) + self.sum_sig[i_wire][1].append(self.get_previous_component().out.get_wire()) + + prev_stage_int_value += 2**stage + if i_wire == self.N-1: + self.out.connect(self.N, self.carry_sig[i_wire+1][0][-1]) + + +class SignedConditionalSumAdder(UnsignedConditionalSumAdder, ArithmeticCircuit): + """Class representing signed conditional sum adder. + + Conditional sum adder performs carry-select addition starting with + groups of 1 bit and recursively doubling to N/2 bits. + + The individual input bit pairs are first added in a carry-select fashion (cin of 0 and 1) with block size of 1. + Then in the subsequent two rows multiplexer pairs are used to properly select the sum and carry-out + of the upper bit of each block of size 2 (higher bit of the previous 2-bits from the previous level). + The next two rows follow the principle for blocks of size 4 and so on. + At last XOR gates are used to ensure proper sign extension. + + The conditional sum adder shares the same structural characteristics as Sklansky tree adder. + Because of using many multiplexers, the number of gates is significant when compared to other architectures. + + Another way on how to look at (and determine the number of) the multiplexers in the subsequent stages + can be done by converting the input bit index (counting from 0) into its binary form. Each bit position with value 1 + signifies the stage position that contains multiplexers + (which ones and how many of them depends on other input bit index characteristics deducible from the code below). + + ``` + B3A3 B2A2 B1A1 B0A0 + ││ ││ ││ ││ + C4┌▼▼┐ C3┌▼▼┐ C2┌▼▼┐ C1┌▼▼┐ + ┌┤FA│◄─0 ┌──┤FA│◄─0 ┌┤FA│◄─0 ┌──┤FA│◄─Cin + │└┬─┘ │ └┬─┘ │└┬─┘ │ └┬─┘ + │ │S3 │ │S2 │ │S1 │ │ + │ └───────┐ │ └───────┐ │ └───────┐ │ │ + └────────┐│ │ │ └────────┐│ │ │ + B3A3 ││ │ B2A2 │ B1A1 ││ │ │ + ││ ││ │ ││ │ ││ ││ │ │ + C4┌▼▼┐ ││ │C3┌▼▼┐ │ C2┌▼▼┐ ││ │ │ + ┌┤FA│◄─1 ││ │┌─┤FA│◄─1 │ ┌┤FA│◄─1 ││ │ │ + │└┬─┘ ││ ││ └┬─┘ │ │└┬─┘ ││ │ │ + │ │S3 ││ ││ │S2 │ │ │S1 ││ │ │ + ┌┼─┴┐ ┌───┤│ ││ │ │ │ └┐ ┌───┘│ │ │ + │├─┐│ │┌──┼┤ ││ │ ┌───┘ └─┐│ │┌───┘ │ │ + ││ ││ ││ ││ ││ │ │ ││ ││ │ │ + ││┌▼▼─▼▼┐ ││ ││ │ │ ┌▼▼─▼▼┐ │ │ + │││ 2:1 │ ││SEL││ │ │ │ 2:1 │ SEL│ │ + Stage 0: │││MUXes│◄┼┼───┘│ │ │ │MUXes│◄─────┘ │ + │││ CS │ ││ │ │ │ │ CS │ │ + ││└┬───┬┘ ││ │ │ │ └┬───┬┘ │ + ││ │C4 │S3││ │ │ │ │C2 │ │ + ││ └───┼──┼┼────┼┐ │ │ │ │ │ + ││ └──┼┼────┼┼┐│ │ │ │ │ + └┼──┐ ┌───┘│ ││││ │ │ │ │ + └─┐│ │┌───┘ ││││ │ │ │ │ + ││ ││ ││││ │ │ │ │ + ┌▼▼─▼▼┐ ││││ │ │ │ │ + │ 2:1 │ SEL ││││ │ │ │ │ + Stage 0: │MUXes│◄──────┘│││ │ │ │ │ + │ CS │ │││ │ │ │ │ + └┬───┬┘ │││ │ │ │ │ + │C4 │S3 │││ │ │ │ │ + │┌──┘ │││ │ │ │ │ + ││ ┌──────────┘││ │ │ │ │ + ││ │┌──────────┘│ │ │ │ │ + ││ ││ ┌───┼───┼───────────┤ │ │ + ┌▼▼─▼▼┐ │ ┌▼───▼┐ │ │ │ + │ 2:1 │ SEL│ │ 2:1 │ SEL │ │ │ + Stage 1: │MUXes│◄─────┘ │MUXes│◄─────────┘ │ │ + │ CS │ │ S │ │ │ + └┬───┬┘ └────┬┘ │ │ + │C4 │ │ │ │ + ┌───▼──┐│ │ │ │ + │ SIGN ││ │ │ │ + │Extend││ │ │ │ + └───┬──┘│ │ │ │ + │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ + Cout S3 S2 S1 S0 + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + prefix (str, optional): Prefix name of signed cosa. Defaults to "". + name (str, optional): Name of signed cosa. Defaults to "s_cosa". + """ + def __init__(self, a: Bus, b: Bus, prefix: str = "", name: str = "s_cosa", **kwargs): + super().__init__(a=a, b=b, prefix=prefix, name=name, signed=True, **kwargs) + + # Additional XOR gates to ensure correct sign extension in case of sign addition + self.add_component(XorGate(self.a.get_wire(self.N-1), self.b.get_wire(self.N-1), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate, count_disabled_gates=False)), parent_component=self)) + self.add_component(XorGate(self.get_previous_component().out, self.out.get_wire(-1), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate, count_disabled_gates=False)), parent_component=self)) + self.out.connect(self.N, self.get_previous_component().out) diff --git a/ariths_gen/multi_bit_circuits/adders/han_carlson_adder.py b/ariths_gen/multi_bit_circuits/adders/han_carlson_adder.py new file mode 100644 index 0000000..c6b4b8e --- /dev/null +++ b/ariths_gen/multi_bit_circuits/adders/han_carlson_adder.py @@ -0,0 +1,245 @@ +from ariths_gen.wire_components import ( + Wire, + ConstantWireValue0, + ConstantWireValue1, + Bus +) +from ariths_gen.core.arithmetic_circuits import ( + ArithmeticCircuit, + MultiplierCircuit +) +from ariths_gen.one_bit_circuits.one_bit_components import ( + HalfAdder, + FullAdder, + PGSumLogic, + GreyCell, + BlackCell +) +from ariths_gen.one_bit_circuits.logic_gates import ( + AndGate, + NandGate, + OrGate, + NorGate, + XorGate, + XnorGate, + NotGate +) +from ariths_gen.multi_bit_circuits.adders import ( + UnsignedCarryLookaheadAdder, + UnsignedPGRippleCarryAdder, + UnsignedRippleCarryAdder, + SignedCarryLookaheadAdder, + SignedPGRippleCarryAdder, + SignedRippleCarryAdder +) +import math + + +class UnsignedHanCarlsonAdder(ArithmeticCircuit): + """Class representing unsigned Han-Carlson adder (using valency-2 logic gates). + + The Han-Carlson adder belongs to a type of tree (parallel-prefix) adders. + Tree adder structure consists of three parts of logic: 1) PG logic generation, 2) Parallel PG logic computation, 3) Final sum and cout computation + The main difference between each tree adder lies in the implementation of the part 2). + + Han-Carlson adders are a family of tree adders that represent a tradeoff between Kogge-Stone and Brent-Kung implementations. + Depending on the input bitwidth, there are many possible implementation configurations, precisely: [1, ⌈log2(N)⌉-2] number for N > 4 (otherwise just 1). + The structures of the individual configurations shift from inclination more towards one or the other original implementation. + + Han-Carlson networks provide tradeoff between the number of wires, the number of stages in the PG logic and the number of Black cells used. + + Main building components are GreyCells and BlackCells that appropriately encapsulate the essential logic used for PG computation. + For further circuit characteristics see the book CMOS VLSI Design. + + The implementation performs the 1) and 3) (sum XORs) parts using one bit three input P/G/Sum logic function blocks. + The 2) part is then composed according to the parallel-prefix adder characteristics. + + ``` + B3 A3 B2 A2 B1 A1 B0 A0 + │ │ │ │ │ │ │ │ + ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ + │ PG │ C3 │ PG │ C2 │ PG │ C1 │ PG │ + │ SUM │◄────┐│ SUM │◄──┐│ SUM │◄──┐│ SUM │◄──0 + │ │ ││ │ ││ │ ││ │ + └─┬──┬┬┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │└─┬┬┬──┘ + │ ││G3P3S3│ │││G2P2S2│ │││G1P1S1│ │││G0P0S0 + │ ┌▼▼──────┴──▼▼▼──────┴──▼▼▼──────┴──▼▼▼──┐ + │ │ Parallel-prefix │ + │ │ PG logic │ + │ └─┬───────┬──────────┬──────────┬────────┘ + │ │S3 │S2 │S1 │S0 + ┌─▼───▼───────▼──────────▼──────────▼────────┐ + │ Sum + Cout │ + │ logic │ + └┬────┬───────┬──────────┬──────────┬────────┘ + │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ + Cout S3 S1 S0 S0 + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + prefix (str, optional): Prefix name of unsigned hca. Defaults to "". + name (str, optional): Name of unsigned hca. Defaults to "u_hca". + config_choice (int, optional): Tradeoff implementation choice concerning the number of wires, the number of stages in the PG logic and the number of Black cells used. The number of choices goes from 1 up to ⌈log2(N)⌉-2 for N > 4, otherwise the choice is 1. Defaults to 1. + """ + def __init__(self, a: Bus, b: Bus, prefix: str = "", name: str = "u_hca", config_choice: int = 1, **kwargs): + self.N = max(a.N, b.N) + super().__init__(a=a, b=b, prefix=prefix, name=name, out_N=self.N+1, **kwargs) + + # Bus sign extension in case buses have different lengths + self.a.bus_extend(N=self.N, prefix=a.prefix) + self.b.bus_extend(N=self.N, prefix=b.prefix) + cin = ConstantWireValue0() + + # Configuration setting + self.config_choice = config_choice + if self.N > 4: + assert self.config_choice > 0 and self.config_choice <= math.ceil(math.log(self.N, 2))-2, "The configuration choice must fall in a range [1, ⌈log2(N)⌉-2] for N > 4." + else: + assert self.config_choice == 1, "The configuration choice for N <= 4 is only 1." + + # Lists of list containing all propagate/generate wires + self.propagate_sig = [] + self.generate_sig = [] + # Cin0 used as a first generate wire for obtaining next carry bits + self.generate_sig.append([cin]) + # The configuration choice offset used to appropriately interconnect PG logic cells in each stage and to determine the number of stages for a given bit index + config_offset = 2**self.config_choice + + # For each bit pair proceed with three stages of PPAs (Generate PG signals, Prefix computation (PG logic), Computation and connection of outputs) + # NOTE In the implementation below, both the first and third stages are handled by the PG FAs + for i_wire in range(self.N): + # 1st + 3rd stage: Generate PG signals + Computation and connection of outputs + self.add_component(PGSumLogic(self.a.get_wire(i_wire), self.b.get_wire(i_wire), self.generate_sig[i_wire][-1], prefix=self.prefix+"_pg_sum"+str(self.get_instance_num(cls=PGSumLogic)))) + self.generate_sig.append([self.get_previous_component().get_generate_wire()]) + self.propagate_sig.append([self.get_previous_component().get_propagate_wire()]) + + self.out.connect(i_wire, self.get_previous_component().get_sum_wire()) + if i_wire == self.N-1: + self.add_component(GreyCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + self.out.connect(self.N, self.get_previous_component().get_generate_wire()) + # 2nd stage: Prefix Computation (PG logic) + # For all bit indexes expect for the last one, proceed with the parralel prefix PG logic + else: + if (i_wire+2) % config_offset == 0 or (i_wire < 4 and i_wire % 2 == 0): # These input bits form a Kogge-Stone adder structure + index_stages = math.ceil(math.log(i_wire+2, 2)) # +1 because indexes start from 0 and additional +1 because the first generated carry is actually the second carry after cin (the previous cin has 0 stages) + for stage in range(index_stages): + # Grey cell + if stage == index_stages-1: + if stage == 0: # Bit index with only one stage + self.add_component(GreyCell(self.generate_sig[i_wire+1][0], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][0], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + else: # Bit index contains multiple stages, GC is its last stage + self.add_component(GreyCell(self.get_previous_component().get_generate_wire(), self.get_previous_component().get_propagate_wire(), self.generate_sig[(i_wire+1)-(2**stage)][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + # Black cell + else: # If bit index contains more than one stage, every stage except for the last one contains a Black cells + self.add_component(BlackCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][-1], self.generate_sig[(i_wire+1)-(2**stage)][stage], self.propagate_sig[i_wire-(2**stage)][stage], prefix=self.prefix+"_bc"+str(self.get_instance_num(cls=BlackCell)))) + self.propagate_sig[i_wire].append(self.get_previous_component().get_propagate_wire()) + self.generate_sig[i_wire+1].append(self.get_previous_component().get_generate_wire()) + else: # Other input bits are implemented in the same fasion as in the Brent-Kung adder structure + index_stages = math.log(i_wire+2, 2) # +1 because indexes start from 0 and additional +1 because the first generated carry is actually the second carry after cin (the previous cin has 0 stages) + if int(index_stages) == index_stages: + for stage in range(int(index_stages)): + # Grey cell + if stage == index_stages-1: + if stage == 0: # Bit index with only one stage + self.add_component(GreyCell(self.generate_sig[i_wire+1][0], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][0], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + else: # Bit index contains multiple stages, GC is its last stage + self.add_component(GreyCell(self.get_previous_component().get_generate_wire(), self.get_previous_component().get_propagate_wire(), self.generate_sig[(i_wire+1)-(2**stage)][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + # Black cell + else: # If bit index contains more than one stage, every stage except for the last one contains a Black cell + self.add_component(BlackCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][-1], self.generate_sig[(i_wire+1)-(2**stage)][stage], self.propagate_sig[i_wire-(2**stage)][stage], prefix=self.prefix+"_bc"+str(self.get_instance_num(cls=BlackCell)))) + self.propagate_sig[i_wire].append(self.get_previous_component().get_propagate_wire()) + self.generate_sig[i_wire+1].append(self.get_previous_component().get_generate_wire()) + elif i_wire % 2 == 0: # Even-numbered input indexes + # Different handling based on the chosen configuration and the corresponding PG logic structure + if i_wire+2 <= config_offset: # Same behaviour as in the case of a regular Brent-Kung + lower_closest_power_of_two = 2**math.floor(math.log(i_wire+2, 2)) # i.e. 2^3 = 8 + higher_closest_power_of_two = 2**math.ceil(math.log(i_wire+2, 2)) # i.e. 2^4 = 16 + up_diff = higher_closest_power_of_two - (i_wire+2) + down_diff = (i_wire+2) - lower_closest_power_of_two + else: # The number of stages for these indexes is different as opposed to a regular Brent-Kung implementation + # Determine the closest lower and higher multiples of the input config offset + lower_closest_multiple = ((i_wire+2) // config_offset) * config_offset + higher_closest_multiple = lower_closest_multiple + config_offset + down_diff = abs((i_wire+2) - lower_closest_multiple) + up_diff = abs(higher_closest_multiple - (i_wire+2)) + + diff_power = up_diff if up_diff < down_diff else down_diff + index_stages = math.floor(math.log(diff_power, 2))+1 + for stage in range(index_stages): + # Black cell + if stage != index_stages-1: # Bit index contains more than one stage, every stage except for the last one contains a Black cell + self.add_component(BlackCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][-1], self.generate_sig[(i_wire+1)-(2**stage)][stage], self.propagate_sig[i_wire-(2**stage)][stage], prefix=self.prefix+"_bc"+str(self.get_instance_num(cls=BlackCell)))) + self.propagate_sig[i_wire].append(self.get_previous_component().get_propagate_wire()) + # Grey cell + else: # Bit index contains multiple stages, GC is its last stage + self.add_component(GreyCell(self.get_previous_component().get_generate_wire(), self.get_previous_component().get_propagate_wire(), self.generate_sig[(i_wire+1)-(2**stage)][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + self.generate_sig[i_wire+1].append(self.get_previous_component().get_generate_wire()) + else: # Odd-numbered input indexes + self.add_component(GreyCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + self.generate_sig[i_wire+1].append(self.get_previous_component().get_generate_wire()) + + +class SignedHanCarlsonAdder(UnsignedHanCarlsonAdder, ArithmeticCircuit): + """Class representing signed Han-Carlson adder (using valency-2 logic gates). + + The Han-Carlson adder belongs to a type of tree (parallel-prefix) adders. + Tree adder structure consists of three parts of logic: 1) PG logic generation, 2) Parallel PG logic computation, 3) Final sum and cout computation + The main difference between each tree adder lies in the implementation of the part 2). + + Han-Carlson adders are a family of tree adders that represent a tradeoff between Kogge-Stone and Brent-Kung implementations. + Depending on the input bitwidth, there are many possible implementation configurations, precisely: [1, ⌈log2(N)⌉-2] number for N > 4 (otherwise just 1). + The structures of the individual configurations shift from inclination more towards one or the other original implementation. + + Han-Carlson networks provide tradeoff between the number of wires, the number of stages in the PG logic and the number of Black cells used. + + Main building components are GreyCells and BlackCells that appropriately encapsulate the essential logic used for PG computation. + For further circuit characteristics see the book CMOS VLSI Design. + + The implementation performs the 1) and 3) (sum XORs) parts using one bit three input P/G/Sum logic function blocks. + The 2) part is then composed according to the parallel-prefix adder characteristics. + At last XOR gates are used to ensure proper sign extension. + + ``` + B3 A3 B2 A2 B1 A1 B0 A0 + │ │ │ │ │ │ │ │ + ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ + │ PG │ C3 │ PG │ C2 │ PG │ C1 │ PG │ + │ SUM │◄────┐│ SUM │◄──┐│ SUM │◄──┐│ SUM │◄──0 + │ │ ││ │ ││ │ ││ │ + └─┬──┬┬┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │└─┬┬┬──┘ + │ ││G3P3S3│ │││G2P2S2│ │││G1P1S1│ │││G0P0S0 + │ ┌▼▼──────┴──▼▼▼──────┴──▼▼▼──────┴──▼▼▼──┐ + │ │ Parallel-prefix │ + │ │ PG logic │ + │ └─┬───────┬──────────┬──────────┬────────┘ + │ │S3 │S2 │S1 │S0 + ┌─▼───▼───────▼──────────▼──────────▼────────┐ + │ Sum + Cout │ + │ with sign extension │ + └┬────┬───────┬──────────┬──────────┬────────┘ + │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ + Cout S3 S1 S0 S0 + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + prefix (str, optional): Prefix name of signed hca. Defaults to "". + name (str, optional): Name of signed hca. Defaults to "s_hca". + config_choice (int, optional): Tradeoff implementation choice concerning the number of wires, the number of stages in the PG logic and the number of Black cells used. The number of choices goes from 1 up to ⌈log2(N)⌉-2 for N > 4, otherwise the choice is 1. Defaults to 1. + """ + def __init__(self, a: Bus, b: Bus, prefix: str = "", name: str = "s_hca", config_choice: int = 1, **kwargs): + super().__init__(a=a, b=b, prefix=prefix, name=name, config_choice=config_choice, signed=True, **kwargs) + + # Additional XOR gates to ensure correct sign extension in case of sign addition + self.add_component(XorGate(self.a.get_wire(self.N-1), self.b.get_wire(self.N-1), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self)) + self.add_component(XorGate(self.get_previous_component().out, self.get_previous_component(2).get_generate_wire(), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self)) + self.out.connect(self.N, self.get_previous_component().out) diff --git a/ariths_gen/multi_bit_circuits/adders/knowles_adder.py b/ariths_gen/multi_bit_circuits/adders/knowles_adder.py new file mode 100644 index 0000000..4f724cf --- /dev/null +++ b/ariths_gen/multi_bit_circuits/adders/knowles_adder.py @@ -0,0 +1,204 @@ +from ariths_gen.wire_components import ( + Wire, + ConstantWireValue0, + ConstantWireValue1, + Bus +) +from ariths_gen.core.arithmetic_circuits import ( + ArithmeticCircuit, + MultiplierCircuit +) +from ariths_gen.one_bit_circuits.one_bit_components import ( + HalfAdder, + FullAdder, + PGSumLogic, + GreyCell, + BlackCell +) +from ariths_gen.one_bit_circuits.logic_gates import ( + AndGate, + NandGate, + OrGate, + NorGate, + XorGate, + XnorGate, + NotGate +) +from ariths_gen.multi_bit_circuits.adders import ( + UnsignedCarryLookaheadAdder, + UnsignedPGRippleCarryAdder, + UnsignedRippleCarryAdder, + SignedCarryLookaheadAdder, + SignedPGRippleCarryAdder, + SignedRippleCarryAdder +) +import math + + +class UnsignedKnowlesAdder(ArithmeticCircuit): + """Class representing unsigned Knowles adder (using valency-2 logic gates). + + The Knowles adder belongs to a type of tree (parallel-prefix) adders. + Tree adder structure consists of three parts of logic: 1) PG logic generation, 2) Parallel PG logic computation, 3) Final sum and cout computation + The main difference between each tree adder lies in the implementation of the part 2). + + Knowles adders are a family of tree adders that represent a tradeoff between Kogge-Stone and Sklansky implementations. + Depending on the input bitwidth, there are many possible implementation configurations, precisely: [1, ⌈log2(N)⌉-2] number for N > 4 (otherwise just 1). + The structures of the individual configurations shift from inclination more towards one or the other original implementation. + + Knowles networks provide tradeoff between the number of wires and fanout load on wires, while the number of stages inside the 2) part remains the same. + + Main building components are GreyCells and BlackCells that appropriately encapsulate the essential logic used for PG computation. + For further circuit characteristics see the book CMOS VLSI Design. + + The implementation performs the 1) and 3) (sum XORs) parts using one bit three input P/G/Sum logic function blocks. + The 2) part is then composed according to the parallel-prefix adder characteristics. + + ``` + B3 A3 B2 A2 B1 A1 B0 A0 + │ │ │ │ │ │ │ │ + ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ + │ PG │ C3 │ PG │ C2 │ PG │ C1 │ PG │ + │ SUM │◄────┐│ SUM │◄──┐│ SUM │◄──┐│ SUM │◄──0 + │ │ ││ │ ││ │ ││ │ + └─┬──┬┬┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │└─┬┬┬──┘ + │ ││G3P3S3│ │││G2P2S2│ │││G1P1S1│ │││G0P0S0 + │ ┌▼▼──────┴──▼▼▼──────┴──▼▼▼──────┴──▼▼▼──┐ + │ │ Parallel-prefix │ + │ │ PG logic │ + │ └─┬───────┬──────────┬──────────┬────────┘ + │ │S3 │S2 │S1 │S0 + ┌─▼───▼───────▼──────────▼──────────▼────────┐ + │ Sum + Cout │ + │ logic │ + └┬────┬───────┬──────────┬──────────┬────────┘ + │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ + Cout S3 S1 S0 S0 + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + prefix (str, optional): Prefix name of unsigned ka. Defaults to "". + name (str, optional): Name of unsigned ka. Defaults to "u_ka". + config_choice (int, optional): Tradeoff implementation choice concerning the number of wires and fanout load on wires. The number of choices goes from 1 up to ⌈log2(N)⌉-2 for N > 4, otherwise the choice is 1. Defaults to 1. + """ + def __init__(self, a: Bus, b: Bus, prefix: str = "", name: str = "u_ka", config_choice: int = 1, **kwargs): + self.N = max(a.N, b.N) + super().__init__(a=a, b=b, prefix=prefix, name=name, out_N=self.N+1, **kwargs) + + # Bus sign extension in case buses have different lengths + self.a.bus_extend(N=self.N, prefix=a.prefix) + self.b.bus_extend(N=self.N, prefix=b.prefix) + cin = ConstantWireValue0() + + # Configuration setting + self.config_choice = config_choice + if self.N > 4: + assert self.config_choice > 0 and self.config_choice <= math.ceil(math.log(self.N, 2))-2, "The configuration choice must fall in a range [1, ⌈log2(N)⌉-2] for N > 4." + else: + assert self.config_choice == 1, "The configuration choice for N <= 4 is only 1." + + # Lists of list containing all propagate/generate wires + self.propagate_sig = [] + self.generate_sig = [] + # Cin0 used as a first generate wire for obtaining next carry bits + self.generate_sig.append([cin]) + # The configuration choice offset used to appropriately interconnect PG logic cells in each stage + max_stages = math.ceil(math.log(self.N, 2)) + config_offset = 2**(max_stages-self.config_choice-1) + + # For each bit pair proceed with three stages of PPAs (Generate PG signals, Prefix computation (PG logic), Computation and connection of outputs) + # NOTE In the implementation below, both the first and third stages are handled by the PG FAs + for i_wire in range(self.N): + # 1st + 3rd stage: Generate PG signals + Computation and connection of outputs + self.add_component(PGSumLogic(self.a.get_wire(i_wire), self.b.get_wire(i_wire), self.generate_sig[i_wire][-1], prefix=self.prefix+"_pg_sum"+str(self.get_instance_num(cls=PGSumLogic)))) + self.generate_sig.append([self.get_previous_component().get_generate_wire()]) + self.propagate_sig.append([self.get_previous_component().get_propagate_wire()]) + + self.out.connect(i_wire, self.get_previous_component().get_sum_wire()) + if i_wire == self.N-1: + self.add_component(GreyCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + self.out.connect(self.N, self.get_previous_component().get_generate_wire()) + # 2nd stage: Prefix Computation (PG logic) + # For all bit indexes expect for the last one, proceed with the parralel prefix PG logic + else: + index_stages = math.ceil(math.log(i_wire+2, 2)) # +1 because indexes start from 0 and additional +1 because the first generated carry is actually the second carry after cin (the previous cin has 0 stages) + for stage in range(index_stages): + stage_offset = math.ceil(2**stage/config_offset) + previous_interconnect_id = i_wire - (((i_wire+1) % stage_offset) + 2**stage-(stage_offset-1)) + # Grey cell + if stage == index_stages-1: + if stage == 0: # Bit index with only one stage + self.add_component(GreyCell(self.generate_sig[i_wire+1][0], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][0], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + else: # Bit index contains multiple stages, GC is its last stage + self.add_component(GreyCell(self.get_previous_component().get_generate_wire(), self.get_previous_component().get_propagate_wire(), self.generate_sig[previous_interconnect_id+1][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + # Black cell + else: # If bit index contains more than one stage, every stage except for the last one contains a Black cell + self.add_component(BlackCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][-1], self.generate_sig[previous_interconnect_id+1][stage], self.propagate_sig[previous_interconnect_id][stage], prefix=self.prefix+"_bc"+str(self.get_instance_num(cls=BlackCell)))) + self.propagate_sig[i_wire].append(self.get_previous_component().get_propagate_wire()) + self.generate_sig[i_wire+1].append(self.get_previous_component().get_generate_wire()) + + +class SignedKnowlesAdder(UnsignedKnowlesAdder, ArithmeticCircuit): + """Class representing signed Knowles adder (using valency-2 logic gates). + + The Knowles adder belongs to a type of tree (parallel-prefix) adders. + Tree adder structure consists of three parts of logic: 1) PG logic generation, 2) Parallel PG logic computation, 3) Final sum and cout computation + The main difference between each tree adder lies in the implementation of the part 2). + + Knowles adders are a family of tree adders that represent a tradeoff between Kogge-Stone and Sklansky implementations. + Depending on the input bitwidth, there are many possible implementation configurations, precisely: [1, ⌈log2(N)⌉-2] number for N > 4 (otherwise just 1). + The structures of the individual configurations shift from inclination more towards one or the other original implementation. + + Knowles networks provide tradeoff between the number of wires and fanout load on wires, while the number of stages inside the 2) part remains the same. + + Main building components are GreyCells and BlackCells that appropriately encapsulate the essential logic used for PG computation. + For further circuit characteristics see the book CMOS VLSI Design. + + The implementation performs the 1) and 3) (sum XORs) parts using one bit three input P/G/Sum logic function blocks. + The 2) part is then composed according to the parallel-prefix adder characteristics. + At last XOR gates are used to ensure proper sign extension. + + ``` + B3 A3 B2 A2 B1 A1 B0 A0 + │ │ │ │ │ │ │ │ + ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ + │ PG │ C3 │ PG │ C2 │ PG │ C1 │ PG │ + │ SUM │◄────┐│ SUM │◄──┐│ SUM │◄──┐│ SUM │◄──0 + │ │ ││ │ ││ │ ││ │ + └─┬──┬┬┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │└─┬┬┬──┘ + │ ││G3P3S3│ │││G2P2S2│ │││G1P1S1│ │││G0P0S0 + │ ┌▼▼──────┴──▼▼▼──────┴──▼▼▼──────┴──▼▼▼──┐ + │ │ Parallel-prefix │ + │ │ PG logic │ + │ └─┬───────┬──────────┬──────────┬────────┘ + │ │S3 │S2 │S1 │S0 + ┌─▼───▼───────▼──────────▼──────────▼────────┐ + │ Sum + Cout │ + │ with sign extension │ + └┬────┬───────┬──────────┬──────────┬────────┘ + │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ + Cout S3 S1 S0 S0 + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + prefix (str, optional): Prefix name of signed ka. Defaults to "". + name (str, optional): Name of signed ka. Defaults to "s_ka". + config_choice (int, optional): Tradeoff implementation choice concerning the number of wires and fanout load on wires. The number of choices goes from 1 up to ⌈log2(N)⌉-2 for N > 4, otherwise the choice is 1. Defaults to 1. + """ + def __init__(self, a: Bus, b: Bus, prefix: str = "", name: str = "s_ka", config_choice: int = 1, **kwargs): + super().__init__(a=a, b=b, prefix=prefix, name=name, config_choice=config_choice, signed=True, **kwargs) + + # Additional XOR gates to ensure correct sign extension in case of sign addition + self.add_component(XorGate(self.a.get_wire(self.N-1), self.b.get_wire(self.N-1), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self)) + self.add_component(XorGate(self.get_previous_component().out, self.get_previous_component(2).get_generate_wire(), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self)) + self.out.connect(self.N, self.get_previous_component().out) diff --git a/ariths_gen/multi_bit_circuits/adders/kogge_stone_adder.py b/ariths_gen/multi_bit_circuits/adders/kogge_stone_adder.py new file mode 100644 index 0000000..e3a263f --- /dev/null +++ b/ariths_gen/multi_bit_circuits/adders/kogge_stone_adder.py @@ -0,0 +1,188 @@ +from ariths_gen.wire_components import ( + Wire, + ConstantWireValue0, + ConstantWireValue1, + Bus +) +from ariths_gen.core.arithmetic_circuits import ( + ArithmeticCircuit, + MultiplierCircuit +) +from ariths_gen.one_bit_circuits.one_bit_components import ( + HalfAdder, + FullAdder, + PGSumLogic, + GreyCell, + BlackCell +) +from ariths_gen.one_bit_circuits.logic_gates import ( + AndGate, + NandGate, + OrGate, + NorGate, + XorGate, + XnorGate, + NotGate +) +from ariths_gen.multi_bit_circuits.adders import ( + UnsignedCarryLookaheadAdder, + UnsignedPGRippleCarryAdder, + UnsignedRippleCarryAdder, + SignedCarryLookaheadAdder, + SignedPGRippleCarryAdder, + SignedRippleCarryAdder +) +import math + + +class UnsignedKoggeStoneAdder(ArithmeticCircuit): + """Class representing unsigned Kogge-Stone adder (using valency-2 logic gates). + + The Kogge-Stone adder belongs to a type of tree (parallel-prefix) adders. + Tree adder structure consists of three parts of logic: 1) PG logic generation, 2) Parallel PG logic computation, 3) Final sum and cout computation + The main difference between each tree adder lies in the implementation of the part 2). + + Along with Brent-Kung and Sklansky it is considered to be a fundamental tree adder architecture. + + Kogge-Stone achieves log2(N) stages and fanout of 2 at each stage inside 2). The circuit contains more PG cells + than the other tree adder architectures. + + Main building components are GreyCells and BlackCells that appropriately encapsulate the essential logic used for PG computation. + For further circuit characteristics see the book CMOS VLSI Design. + + The implementation performs the 1) and 3) (sum XORs) parts using one bit three input P/G/Sum logic function blocks. + The 2) part is then composed according to the parallel-prefix adder characteristics. + + ``` + B3 A3 B2 A2 B1 A1 B0 A0 + │ │ │ │ │ │ │ │ + ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ + │ PG │ C3 │ PG │ C2 │ PG │ C1 │ PG │ + │ SUM │◄────┐│ SUM │◄──┐│ SUM │◄──┐│ SUM │◄──0 + │ │ ││ │ ││ │ ││ │ + └─┬──┬┬┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │└─┬┬┬──┘ + │ ││G3P3S3│ │││G2P2S2│ │││G1P1S1│ │││G0P0S0 + │ ┌▼▼──────┴──▼▼▼──────┴──▼▼▼──────┴──▼▼▼──┐ + │ │ Parallel-prefix │ + │ │ PG logic │ + │ └─┬───────┬──────────┬──────────┬────────┘ + │ │S3 │S2 │S1 │S0 + ┌─▼───▼───────▼──────────▼──────────▼────────┐ + │ Sum + Cout │ + │ logic │ + └┬────┬───────┬──────────┬──────────┬────────┘ + │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ + Cout S3 S1 S0 S0 + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + prefix (str, optional): Prefix name of unsigned ksa. Defaults to "". + name (str, optional): Name of unsigned ksa. Defaults to "u_ksa". + """ + def __init__(self, a: Bus, b: Bus, prefix: str = "", name: str = "u_ksa", **kwargs): + self.N = max(a.N, b.N) + super().__init__(a=a, b=b, prefix=prefix, name=name, out_N=self.N+1, **kwargs) + + # Bus sign extension in case buses have different lengths + self.a.bus_extend(N=self.N, prefix=a.prefix) + self.b.bus_extend(N=self.N, prefix=b.prefix) + cin = ConstantWireValue0() + + # Lists of list containing all propagate/generate wires + self.propagate_sig = [] + self.generate_sig = [] + # Cin0 used as a first generate wire for obtaining next carry bits + self.generate_sig.append([cin]) + + # For each bit pair proceed with three stages of PPAs (Generate PG signals, Prefix computation (PG logic), Computation and connection of outputs) + # NOTE In the implementation below, both the first and third stages are handled by the PG FAs + for i_wire in range(self.N): + # 1st + 3rd stage: Generate PG signals + Computation and connection of outputs + self.add_component(PGSumLogic(self.a.get_wire(i_wire), self.b.get_wire(i_wire), self.generate_sig[i_wire][-1], prefix=self.prefix+"_pg_sum"+str(self.get_instance_num(cls=PGSumLogic)))) + self.generate_sig.append([self.get_previous_component().get_generate_wire()]) + self.propagate_sig.append([self.get_previous_component().get_propagate_wire()]) + + self.out.connect(i_wire, self.get_previous_component().get_sum_wire()) + if i_wire == self.N-1: + self.add_component(GreyCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + self.out.connect(self.N, self.get_previous_component().get_generate_wire()) + # 2nd stage: Prefix Computation (PG logic) + # For all bit indexes expect for the last one, proceed with the parralel prefix PG logic + else: + index_stages = math.ceil(math.log(i_wire+2, 2)) # +1 because indexes start from 0 and additional +1 because the first generated carry is actually the second carry after cin (the previous cin has 0 stages) + for stage in range(index_stages): + # Grey cell + if stage == index_stages-1: + if stage == 0: # Bit index with only one stage + self.add_component(GreyCell(self.generate_sig[i_wire+1][0], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][0], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + else: # Bit index contains multiple stages, GC is its last stage + self.add_component(GreyCell(self.get_previous_component().get_generate_wire(), self.get_previous_component().get_propagate_wire(), self.generate_sig[(i_wire+1)-(2**stage)][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + # Black cell + else: # If bit index contains more than one stage, every stage except for the last one contains a Black cells + self.add_component(BlackCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][-1], self.generate_sig[(i_wire+1)-(2**stage)][stage], self.propagate_sig[i_wire-(2**stage)][stage], prefix=self.prefix+"_bc"+str(self.get_instance_num(cls=BlackCell)))) + self.propagate_sig[i_wire].append(self.get_previous_component().get_propagate_wire()) + self.generate_sig[i_wire+1].append(self.get_previous_component().get_generate_wire()) + + +class SignedKoggeStoneAdder(UnsignedKoggeStoneAdder, ArithmeticCircuit): + """Class representing signed Kogge-Stone adder (using valency-2 logic gates). + + The Kogge-Stone adder belongs to a type of tree (parallel-prefix) adders. + Tree adder structure consists of three parts of logic: 1) PG logic generation, 2) Parallel PG logic computation, 3) Final sum and cout computation + The main difference between each tree adder lies in the implementation of the part 2). + + Along with Brent-Kung and Sklansky it is considered to be a fundamental tree adder architecture. + + Kogge-Stone achieves log(N,2) stages and fanout of 2 at each stage inside 2). The circuit contains more PG cells + than the other tree adder architectures. + + Main building components are GreyCells and BlackCells that appropriately encapsulate the essential logic used for PG computation. + For further circuit characteristics see the book CMOS VLSI Design. + + The implementation performs the 1) and 3) (sum XORs) parts using one bit three input P/G/Sum logic function blocks. + The 2) part is then composed according to the parallel-prefix adder characteristics. + At last XOR gates are used to ensure proper sign extension. + + ``` + B3 A3 B2 A2 B1 A1 B0 A0 + │ │ │ │ │ │ │ │ + ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ + │ PG │ C3 │ PG │ C2 │ PG │ C1 │ PG │ + │ SUM │◄────┐│ SUM │◄──┐│ SUM │◄──┐│ SUM │◄──0 + │ │ ││ │ ││ │ ││ │ + └─┬──┬┬┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │└─┬┬┬──┘ + │ ││G3P3S3│ │││G2P2S2│ │││G1P1S1│ │││G0P0S0 + │ ┌▼▼──────┴──▼▼▼──────┴──▼▼▼──────┴──▼▼▼──┐ + │ │ Parallel-prefix │ + │ │ PG logic │ + │ └─┬───────┬──────────┬──────────┬────────┘ + │ │S3 │S2 │S1 │S0 + ┌─▼───▼───────▼──────────▼──────────▼────────┐ + │ Sum + Cout │ + │ with sign extension │ + └┬────┬───────┬──────────┬──────────┬────────┘ + │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ + Cout S3 S1 S0 S0 + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + prefix (str, optional): Prefix name of signed ksa. Defaults to "". + name (str, optional): Name of signed ksa. Defaults to "s_ksa". + """ + def __init__(self, a: Bus, b: Bus, prefix: str = "", name: str = "s_ksa", **kwargs): + super().__init__(a=a, b=b, prefix=prefix, name=name, signed=True, **kwargs) + + # Additional XOR gates to ensure correct sign extension in case of sign addition + self.add_component(XorGate(self.a.get_wire(self.N-1), self.b.get_wire(self.N-1), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self)) + self.add_component(XorGate(self.get_previous_component().out, self.get_previous_component(2).get_generate_wire(), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self)) + self.out.connect(self.N, self.get_previous_component().out) diff --git a/ariths_gen/multi_bit_circuits/adders/ladner_fischer_adder.py b/ariths_gen/multi_bit_circuits/adders/ladner_fischer_adder.py new file mode 100644 index 0000000..68919dd --- /dev/null +++ b/ariths_gen/multi_bit_circuits/adders/ladner_fischer_adder.py @@ -0,0 +1,249 @@ +from ariths_gen.wire_components import ( + Wire, + ConstantWireValue0, + ConstantWireValue1, + Bus +) +from ariths_gen.core.arithmetic_circuits import ( + ArithmeticCircuit, + MultiplierCircuit +) +from ariths_gen.one_bit_circuits.one_bit_components import ( + HalfAdder, + FullAdder, + PGSumLogic, + GreyCell, + BlackCell +) +from ariths_gen.one_bit_circuits.logic_gates import ( + AndGate, + NandGate, + OrGate, + NorGate, + XorGate, + XnorGate, + NotGate +) +from ariths_gen.multi_bit_circuits.adders import ( + UnsignedCarryLookaheadAdder, + UnsignedPGRippleCarryAdder, + UnsignedRippleCarryAdder, + SignedCarryLookaheadAdder, + SignedPGRippleCarryAdder, + SignedRippleCarryAdder +) +import math + + +class UnsignedLadnerFischerAdder(ArithmeticCircuit): + """Class representing unsigned Ladner-Fischer adder (using valency-2 logic gates). + + The Ladner-Fischer adder belongs to a type of tree (parallel-prefix) adders. + Tree adder structure consists of three parts of logic: 1) PG logic generation, 2) Parallel PG logic computation, 3) Final sum and cout computation + The main difference between each tree adder lies in the implementation of the part 2). + + Ladner-Fischer adders are a family of tree adders that represent a tradeoff between Brent-Kung and Sklansky implementations. + Depending on the input bitwidth, there are many possible implementation configurations, precisely: [1, ⌈log2(N)⌉-2] number for N > 4 (otherwise just 1). + The structures of the individual configurations shift from inclination more towards one or the other original implementation. + + Ladner-Fischer networks provide tradeoff between the number of stages in the PG logic and fanout load on wires. + + Main building components are GreyCells and BlackCells that appropriately encapsulate the essential logic used for PG computation. + For further circuit characteristics see the book CMOS VLSI Design. + + The implementation performs the 1) and 3) (sum XORs) parts using one bit three input P/G/Sum logic function blocks. + The 2) part is then composed according to the parallel-prefix adder characteristics. + + ``` + B3 A3 B2 A2 B1 A1 B0 A0 + │ │ │ │ │ │ │ │ + ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ + │ PG │ C3 │ PG │ C2 │ PG │ C1 │ PG │ + │ SUM │◄────┐│ SUM │◄──┐│ SUM │◄──┐│ SUM │◄──0 + │ │ ││ │ ││ │ ││ │ + └─┬──┬┬┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │└─┬┬┬──┘ + │ ││G3P3S3│ │││G2P2S2│ │││G1P1S1│ │││G0P0S0 + │ ┌▼▼──────┴──▼▼▼──────┴──▼▼▼──────┴──▼▼▼──┐ + │ │ Parallel-prefix │ + │ │ PG logic │ + │ └─┬───────┬──────────┬──────────┬────────┘ + │ │S3 │S2 │S1 │S0 + ┌─▼───▼───────▼──────────▼──────────▼────────┐ + │ Sum + Cout │ + │ logic │ + └┬────┬───────┬──────────┬──────────┬────────┘ + │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ + Cout S3 S1 S0 S0 + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + prefix (str, optional): Prefix name of unsigned lfa. Defaults to "". + name (str, optional): Name of unsigned lfa. Defaults to "u_lfa". + config_choice (int, optional): Tradeoff implementation choice concerning the number of stages in the PG logic and fanout load on wires. The number of choices goes from 1 up to ⌈log2(N)⌉-2 for N > 4, otherwise the choice is 1. Defaults to 1. + """ + def __init__(self, a: Bus, b: Bus, prefix: str = "", name: str = "u_lfa", config_choice: int = 1, **kwargs): + self.N = max(a.N, b.N) + super().__init__(a=a, b=b, prefix=prefix, name=name, out_N=self.N+1, **kwargs) + + # Bus sign extension in case buses have different lengths + self.a.bus_extend(N=self.N, prefix=a.prefix) + self.b.bus_extend(N=self.N, prefix=b.prefix) + cin = ConstantWireValue0() + + # Configuration setting + self.config_choice = config_choice + if self.N > 4: + assert self.config_choice > 0 and self.config_choice <= math.ceil(math.log(self.N, 2))-2, "The configuration choice must fall in a range [1, ⌈log2(N)⌉-2] for N > 4." + else: + assert self.config_choice == 1, "The configuration choice for N <= 4 is only 1." + + # Lists of list containing all propagate/generate wires + self.propagate_sig = [] + self.generate_sig = [] + # Cin0 used as a first generate wire for obtaining next carry bits + self.generate_sig.append([cin]) + # The configuration choice offset used to appropriately interconnect PG logic cells in each stage and to determine the number of stages for a given bit index + config_offset = 2**self.config_choice + + # For each bit pair proceed with three stages of PPAs (Generate PG signals, Prefix computation (PG logic), Computation and connection of outputs) + # NOTE In the implementation below, both the first and third stages are handled by the PG FAs + for i_wire in range(self.N): + # 1st + 3rd stage: Generate PG signals + Computation and connection of outputs + self.add_component(PGSumLogic(self.a.get_wire(i_wire), self.b.get_wire(i_wire), self.generate_sig[i_wire][-1], prefix=self.prefix+"_pg_sum"+str(self.get_instance_num(cls=PGSumLogic)))) + self.generate_sig.append([self.get_previous_component().get_generate_wire()]) + self.propagate_sig.append([self.get_previous_component().get_propagate_wire()]) + + self.out.connect(i_wire, self.get_previous_component().get_sum_wire()) + if i_wire == self.N-1: + self.add_component(GreyCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + self.out.connect(self.N, self.get_previous_component().get_generate_wire()) + # 2nd stage: Prefix Computation (PG logic) + # For all bit indexes expect for the last one, proceed with the parralel prefix PG logic + else: + if (i_wire+2) % config_offset == 0 or (i_wire < 4 and i_wire % 2 == 0): # These input bits form a Sklansky adder structure + binary_form = bin(i_wire+1)[2:][::-1] # +1 to obtain proper carry bit index (index 0 corresponds to Cin) + index_stages = len(binary_form) + prev_stage_int_value = 0 + for stage, value in enumerate(binary_form): + if value == '1': + # Grey cell + if stage == index_stages-1: + if index_stages == 1: # Bit index with only one stage + self.add_component(GreyCell(self.generate_sig[i_wire+1][0], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + else: # Bit index contains multiple stages, GC is its last stage + self.add_component(GreyCell(self.get_previous_component().get_generate_wire(), self.get_previous_component().get_propagate_wire(), self.generate_sig[i_wire-prev_stage_int_value][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + # Black cell + else: # If bit index contains more than one stage, every stage except for the last one contains a Black cell + self.add_component(BlackCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][-1], self.generate_sig[i_wire-prev_stage_int_value][stage], self.propagate_sig[i_wire-1-prev_stage_int_value][stage], prefix=self.prefix+"_bc"+str(self.get_instance_num(cls=BlackCell)))) + self.propagate_sig[i_wire].append(self.get_previous_component().get_propagate_wire()) + self.generate_sig[i_wire+1].append(self.get_previous_component().get_generate_wire()) + prev_stage_int_value += 2**stage + else: # Other input bits are implemented in the same fasion as in the Brent-Kung adder structure + index_stages = math.log(i_wire+2, 2) # +1 because indexes start from 0 and additional +1 because the first generated carry is actually the second carry after cin (the previous cin has 0 stages) + if int(index_stages) == index_stages: # Bit indexes that are powers of 2 + for stage in range(int(index_stages)): + # Grey cell + if stage == index_stages-1: + if stage == 0: # Bit index with only one stage + self.add_component(GreyCell(self.generate_sig[i_wire+1][0], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][0], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + else: # Bit index contains multiple stages, GC is its last stage + self.add_component(GreyCell(self.get_previous_component().get_generate_wire(), self.get_previous_component().get_propagate_wire(), self.generate_sig[(i_wire+1)-(2**stage)][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + # Black cell + else: # If bit index contains more than one stage, every stage except for the last one contains a Black cell + self.add_component(BlackCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][-1], self.generate_sig[(i_wire+1)-(2**stage)][stage], self.propagate_sig[i_wire-(2**stage)][stage], prefix=self.prefix+"_bc"+str(self.get_instance_num(cls=BlackCell)))) + self.propagate_sig[i_wire].append(self.get_previous_component().get_propagate_wire()) + self.generate_sig[i_wire+1].append(self.get_previous_component().get_generate_wire()) + elif i_wire % 2 == 0: # Even-numbered input indexes + # Different handling based on the chosen configuration and the corresponding PG logic structure + if i_wire+2 <= config_offset: # Same behaviour as in the case of a regular Brent-Kung + lower_closest_power_of_two = 2**math.floor(math.log(i_wire+2, 2)) # i.e. 2^3 = 8 + higher_closest_power_of_two = 2**math.ceil(math.log(i_wire+2, 2)) # i.e. 2^4 = 16 + down_diff = (i_wire+2) - lower_closest_power_of_two + up_diff = higher_closest_power_of_two - (i_wire+2) + else: # The number of stages for these indexes is different as opposed to a regular Brent-Kung implementation + # Determine the closest lower and higher multiples of the input config offset + lower_closest_multiple = ((i_wire+2) // config_offset) * config_offset + higher_closest_multiple = lower_closest_multiple + config_offset + down_diff = abs((i_wire+2) - lower_closest_multiple) + up_diff = abs(higher_closest_multiple - (i_wire+2)) + + diff_power = up_diff if up_diff < down_diff else down_diff + index_stages = math.floor(math.log(diff_power, 2))+1 + for stage in range(index_stages): + # Black cell + if stage != index_stages-1: # Bit index contains more than one stage, every stage except for the last one contains a Black cell + self.add_component(BlackCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][-1], self.generate_sig[(i_wire+1)-(2**stage)][stage], self.propagate_sig[i_wire-(2**stage)][stage], prefix=self.prefix+"_bc"+str(self.get_instance_num(cls=BlackCell)))) + self.propagate_sig[i_wire].append(self.get_previous_component().get_propagate_wire()) + # Grey cell + else: # Bit index contains multiple stages, GC is its last stage + self.add_component(GreyCell(self.get_previous_component().get_generate_wire(), self.get_previous_component().get_propagate_wire(), self.generate_sig[(i_wire+1)-(2**stage)][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + self.generate_sig[i_wire+1].append(self.get_previous_component().get_generate_wire()) + else: # Odd-numbered input indexes + self.add_component(GreyCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + self.generate_sig[i_wire+1].append(self.get_previous_component().get_generate_wire()) + + +class SignedLadnerFischerAdder(UnsignedLadnerFischerAdder, ArithmeticCircuit): + """Class representing signed Ladner-Fischer adder (using valency-2 logic gates). + + The Ladner-Fischer adder belongs to a type of tree (parallel-prefix) adders. + Tree adder structure consists of three parts of logic: 1) PG logic generation, 2) Parallel PG logic computation, 3) Final sum and cout computation + The main difference between each tree adder lies in the implementation of the part 2). + + Ladner-Fischer adders are a family of tree adders that represent a tradeoff between Brent-Kung and Sklansky implementations. + Depending on the input bitwidth, there are many possible implementation configurations, precisely: [1, ⌈log2(N)⌉-2] number for N > 4 (otherwise just 1). + The structures of the individual configurations shift from inclination more towards one or the other original implementation. + + Ladner-Fischer networks provide tradeoff between the number of stages in the PG logic and fanout load on wires. + + Main building components are GreyCells and BlackCells that appropriately encapsulate the essential logic used for PG computation. + For further circuit characteristics see the book CMOS VLSI Design. + + The implementation performs the 1) and 3) (sum XORs) parts using one bit three input P/G/Sum logic function blocks. + The 2) part is then composed according to the parallel-prefix adder characteristics. + At last XOR gates are used to ensure proper sign extension. + + ``` + B3 A3 B2 A2 B1 A1 B0 A0 + │ │ │ │ │ │ │ │ + ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ + │ PG │ C3 │ PG │ C2 │ PG │ C1 │ PG │ + │ SUM │◄────┐│ SUM │◄──┐│ SUM │◄──┐│ SUM │◄──0 + │ │ ││ │ ││ │ ││ │ + └─┬──┬┬┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │└─┬┬┬──┘ + │ ││G3P3S3│ │││G2P2S2│ │││G1P1S1│ │││G0P0S0 + │ ┌▼▼──────┴──▼▼▼──────┴──▼▼▼──────┴──▼▼▼──┐ + │ │ Parallel-prefix │ + │ │ PG logic │ + │ └─┬───────┬──────────┬──────────┬────────┘ + │ │S3 │S2 │S1 │S0 + ┌─▼───▼───────▼──────────▼──────────▼────────┐ + │ Sum + Cout │ + │ with sign extension │ + └┬────┬───────┬──────────┬──────────┬────────┘ + │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ + Cout S3 S1 S0 S0 + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + prefix (str, optional): Prefix name of signed lfa. Defaults to "". + name (str, optional): Name of signed lfa. Defaults to "s_lfa". + config_choice (int, optional): Tradeoff implementation choice concerning the number of stages in the PG logic and fanout load on wires. The number of choices goes from 1 up to ⌈log2(N)⌉-2 for N > 4, otherwise the choice is 1. Defaults to 1. + """ + def __init__(self, a: Bus, b: Bus, prefix: str = "", name: str = "s_lfa", config_choice: int = 1, **kwargs): + super().__init__(a=a, b=b, prefix=prefix, name=name, config_choice=config_choice, signed=True, **kwargs) + + # Additional XOR gates to ensure correct sign extension in case of sign addition + self.add_component(XorGate(self.a.get_wire(self.N-1), self.b.get_wire(self.N-1), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self)) + self.add_component(XorGate(self.get_previous_component().out, self.get_previous_component(2).get_generate_wire(), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self)) + self.out.connect(self.N, self.get_previous_component().out) diff --git a/ariths_gen/multi_bit_circuits/adders/pg_ripple_carry_adder.py b/ariths_gen/multi_bit_circuits/adders/pg_ripple_carry_adder.py index 2ee120e..2a41bdf 100644 --- a/ariths_gen/multi_bit_circuits/adders/pg_ripple_carry_adder.py +++ b/ariths_gen/multi_bit_circuits/adders/pg_ripple_carry_adder.py @@ -10,9 +10,8 @@ from ariths_gen.core.arithmetic_circuits import ( ) from ariths_gen.one_bit_circuits.one_bit_components import ( HalfAdder, - PGLogicBlock, FullAdder, - FullAdderPG + PGSumLogic ) from ariths_gen.one_bit_circuits.logic_gates import ( AndGate, @@ -29,14 +28,20 @@ class UnsignedPGRippleCarryAdder(ArithmeticCircuit): """Class representing unsigned ripple carry adder with propagate/generate logic. Unsigned ripple carry adder with PG logic represents slightly different rca implementation - of N-bit unsigned adder which is composed of N one bit full adders with P/G logic. + of N-bit unsigned adder which is composed of N one bit three input P/G/Sum logic function blocks. + + Each of them generates the P/G signals and contains a XOR gate responsible + for the creation of corresponding sum bit. Besides this the Group PG logic is composed + of AND and OR gates (basically a GreyCell) for computing the prefixes. + + You can find more info in the book: CMOS VLSI Design ``` B3 A3 B2 A2 B1 A1 B0 A0 │ │ │ │ │ │ │ │ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ │ PG │ C3 │ PG │ C2 │ PG │ C1 │ PG │ - │ FA │◄────┐│ FA │◄──┐│ FA │◄──┐│ FA │◄──0 + │ SUM │◄────┐│ SUM │◄──┐│ SUM │◄──┐│ SUM │◄──0 │ │ ││ │ ││ │ ││ │ └─┬──┬┬┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │ ││G3P3S3│ │││G2P2S2│ │││G1P1S1│ │││G0P0S0 @@ -44,10 +49,10 @@ class UnsignedPGRippleCarryAdder(ArithmeticCircuit): │ │ Group PG logic │ │ │ │ │ └─┬───────┬──────────┬──────────┬────────┘ - │ │ │ │ │ + │ │S3 │S2 │S1 │S0 ┌─▼───▼───────▼──────────▼──────────▼────────┐ - │ Sum logic │ - │ │ + │ Sum + Cout │ + │ logic │ └┬────┬───────┬──────────┬──────────┬────────┘ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ @@ -74,9 +79,9 @@ class UnsignedPGRippleCarryAdder(ArithmeticCircuit): for input_index in range(self.N): if input_index == 0: # First full adder with connected constant wire with value 0 as cin 0 - obj_pg_fa = FullAdderPG(self.a.get_wire(input_index), self.b.get_wire(input_index), ConstantWireValue0(), prefix=self.prefix+"_pg_fa"+str(input_index)) + obj_pg_fa = PGSumLogic(self.a.get_wire(input_index), self.b.get_wire(input_index), ConstantWireValue0(), prefix=self.prefix+"_pg_sum"+str(input_index)) else: - obj_pg_fa = FullAdderPG(self.a.get_wire(input_index), self.b.get_wire(input_index), self.get_previous_component().out, prefix=self.prefix+"_pg_fa"+str(input_index)) + obj_pg_fa = PGSumLogic(self.a.get_wire(input_index), self.b.get_wire(input_index), self.get_previous_component().out, prefix=self.prefix+"_pg_sum"+str(input_index)) self.add_component(obj_pg_fa) self.out.connect(input_index, obj_pg_fa.get_sum_wire()) @@ -95,15 +100,22 @@ class SignedPGRippleCarryAdder(UnsignedPGRippleCarryAdder, ArithmeticCircuit): """Class representing signed ripple carry adder with propagate/generate logic. Signed ripple carry adder with PG logic represents slightly different rca implementation - of N-bit signed adder which is composed of N one bit full adders with P/G logic. + of N-bit signed adder which is composed of N one bit three input P/G/Sum logic function blocks. + + Each of them generates the P/G signals and contains a XOR gate responsible + for the creation of corresponding sum bit. Besides this the Group PG logic is composed + of AND and OR gates (basically a GreyCell) for computing the prefixes. + At last XOR gates are used to ensure proper sign extension. + You can find more info in the book: CMOS VLSI Design + ``` B3 A3 B2 A2 B1 A1 B0 A0 │ │ │ │ │ │ │ │ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ │ PG │ C3 │ PG │ C2 │ PG │ C1 │ PG │ - │ FA │◄────┐│ FA │◄──┐│ FA │◄──┐│ FA │◄──0 + │ SUM │◄────┐│ SUM │◄──┐│ SUM │◄──┐│ SUM │◄──0 │ │ ││ │ ││ │ ││ │ └─┬──┬┬┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │ ││G3P3S3│ │││G2P2S2│ │││G1P1S1│ │││G0P0S0 @@ -111,9 +123,9 @@ class SignedPGRippleCarryAdder(UnsignedPGRippleCarryAdder, ArithmeticCircuit): │ │ Group PG logic │ │ │ │ │ └─┬───────┬──────────┬──────────┬────────┘ - │ │ │ │ │ + │ │S3 │S2 │S1 │S0 ┌─▼───▼───────▼──────────▼──────────▼────────┐ - │ Sum logic │ + │ Sum + Cout logic │ │ with sign extension │ └┬────┬───────┬──────────┬──────────┬────────┘ │ │ │ │ │ diff --git a/ariths_gen/multi_bit_circuits/adders/ripple_carry_adder.py b/ariths_gen/multi_bit_circuits/adders/ripple_carry_adder.py index b75c7c0..252762b 100644 --- a/ariths_gen/multi_bit_circuits/adders/ripple_carry_adder.py +++ b/ariths_gen/multi_bit_circuits/adders/ripple_carry_adder.py @@ -10,9 +10,7 @@ from ariths_gen.core.arithmetic_circuits import ( ) from ariths_gen.one_bit_circuits.one_bit_components import ( HalfAdder, - PGLogicBlock, - FullAdder, - FullAdderPG + FullAdder ) from ariths_gen.one_bit_circuits.logic_gates import ( AndGate, diff --git a/ariths_gen/multi_bit_circuits/adders/sklansky_adder.py b/ariths_gen/multi_bit_circuits/adders/sklansky_adder.py new file mode 100644 index 0000000..84d08ff --- /dev/null +++ b/ariths_gen/multi_bit_circuits/adders/sklansky_adder.py @@ -0,0 +1,191 @@ +from ariths_gen.wire_components import ( + Wire, + ConstantWireValue0, + ConstantWireValue1, + Bus +) +from ariths_gen.core.arithmetic_circuits import ( + ArithmeticCircuit, + MultiplierCircuit +) +from ariths_gen.one_bit_circuits.one_bit_components import ( + HalfAdder, + FullAdder, + PGSumLogic, + GreyCell, + BlackCell +) +from ariths_gen.one_bit_circuits.logic_gates import ( + AndGate, + NandGate, + OrGate, + NorGate, + XorGate, + XnorGate, + NotGate +) +from ariths_gen.multi_bit_circuits.adders import ( + UnsignedCarryLookaheadAdder, + UnsignedPGRippleCarryAdder, + UnsignedRippleCarryAdder, + SignedCarryLookaheadAdder, + SignedPGRippleCarryAdder, + SignedRippleCarryAdder +) + + +class UnsignedSklanskyAdder(ArithmeticCircuit): + """Class representing unsigned Sklansky (or divide-and-conquer) adder (using valency-2 logic gates). + + The Sklansky adder belongs to a type of tree (parallel-prefix) adders. + Tree adder structure consists of three parts of logic: 1) PG logic generation, 2) Parallel PG logic computation, 3) Final sum and cout computation + The main difference between each tree adder lies in the implementation of the part 2). + + Along with Kogge-Stone and Brent-Kung it is considered to be a fundamental tree adder architecture. + + Sklansky achieves log2(N) stages by computing intermediate prefixes along with the large group prefixes. This comes at the expense + of fanouts that double at each level. + + Main building components are GreyCells and BlackCells that appropriately encapsulate the essential logic used for PG computation. + For further circuit characteristics see the book CMOS VLSI Design. + + The implementation performs the 1) and 3) (sum XORs) parts using one bit three input P/G/Sum logic function blocks. + The 2) part is then composed according to the parallel-prefix adder characteristics. + + ``` + B3 A3 B2 A2 B1 A1 B0 A0 + │ │ │ │ │ │ │ │ + ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ + │ PG │ C3 │ PG │ C2 │ PG │ C1 │ PG │ + │ SUM │◄────┐│ SUM │◄──┐│ SUM │◄──┐│ SUM │◄──0 + │ │ ││ │ ││ │ ││ │ + └─┬──┬┬┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │└─┬┬┬──┘ + │ ││G3P3S3│ │││G2P2S2│ │││G1P1S1│ │││G0P0S0 + │ ┌▼▼──────┴──▼▼▼──────┴──▼▼▼──────┴──▼▼▼──┐ + │ │ Parallel-prefix │ + │ │ PG logic │ + │ └─┬───────┬──────────┬──────────┬────────┘ + │ │S3 │S2 │S1 │S0 + ┌─▼───▼───────▼──────────▼──────────▼────────┐ + │ Sum + Cout │ + │ logic │ + └┬────┬───────┬──────────┬──────────┬────────┘ + │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ + Cout S3 S1 S0 S0 + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + prefix (str, optional): Prefix name of unsigned sa. Defaults to "". + name (str, optional): Name of unsigned sa. Defaults to "u_sa". + """ + def __init__(self, a: Bus, b: Bus, prefix: str = "", name: str = "u_sa", **kwargs): + self.N = max(a.N, b.N) + super().__init__(a=a, b=b, prefix=prefix, name=name, out_N=self.N+1, **kwargs) + + # Bus sign extension in case buses have different lengths + self.a.bus_extend(N=self.N, prefix=a.prefix) + self.b.bus_extend(N=self.N, prefix=b.prefix) + cin = ConstantWireValue0() + + # Lists of list containing all propagate/generate wires + self.propagate_sig = [] + self.generate_sig = [] + # Cin0 used as a first generate wire for obtaining next carry bits + self.generate_sig.append([cin]) + + # For each bit pair proceed with three stages of PPAs (Generate PG signals, Prefix computation (PG logic), Computation and connection of outputs) + # NOTE In the implementation below, both the first and third stages are handled by the PG FAs + for i_wire in range(self.N): + # 1st + 3rd stage: Generate PG signals + Computation and connection of outputs + self.add_component(PGSumLogic(self.a.get_wire(i_wire), self.b.get_wire(i_wire), self.generate_sig[i_wire][-1], prefix=self.prefix+"_pg_sum"+str(self.get_instance_num(cls=PGSumLogic)))) + self.generate_sig.append([self.get_previous_component().get_generate_wire()]) + self.propagate_sig.append([self.get_previous_component().get_propagate_wire()]) + + self.out.connect(i_wire, self.get_previous_component().get_sum_wire()) + if i_wire == self.N-1: + self.add_component(GreyCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + self.out.connect(self.N, self.get_previous_component().get_generate_wire()) + # 2nd stage: Prefix Computation (PG logic) + # For all bit indexes expect for the last one, proceed with the parralel prefix PG logic + else: + binary_form = bin(i_wire+1)[2:][::-1] # +1 to obtain proper carry bit index (index 0 corresponds to Cin) + index_stages = len(binary_form) + prev_stage_int_value = 0 + for stage, value in enumerate(binary_form): + if value == '1': + # Grey cell + if stage == index_stages-1: + if index_stages == 1: # Bit index with only one stage + self.add_component(GreyCell(self.generate_sig[i_wire+1][0], self.propagate_sig[i_wire][0], self.generate_sig[i_wire][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + else: # Bit index contains multiple stages, GC is its last stage + self.add_component(GreyCell(self.get_previous_component().get_generate_wire(), self.get_previous_component().get_propagate_wire(), self.generate_sig[i_wire-prev_stage_int_value][-1], prefix=self.prefix+"_gc"+str(self.get_instance_num(cls=GreyCell)))) + # Black cell + else: # If bit index contains more than one stage, every stage except for the last one contains a Black cell + self.add_component(BlackCell(self.generate_sig[i_wire+1][-1], self.propagate_sig[i_wire][-1], self.generate_sig[i_wire-prev_stage_int_value][stage], self.propagate_sig[i_wire-1-prev_stage_int_value][stage], prefix=self.prefix+"_bc"+str(self.get_instance_num(cls=BlackCell)))) + self.propagate_sig[i_wire].append(self.get_previous_component().get_propagate_wire()) + self.generate_sig[i_wire+1].append(self.get_previous_component().get_generate_wire()) + prev_stage_int_value += 2**stage + + +class SignedSklanskyAdder(UnsignedSklanskyAdder, ArithmeticCircuit): + """Class representing signed Sklansky (or divide-and-conquer) adder (using valency-2 logic gates). + + The Sklansky adder belongs to a type of tree (parallel-prefix) adders. + Tree adder structure consists of three parts of logic: 1) PG logic generation, 2) Parallel PG logic computation, 3) Final sum and cout computation + The main difference between each tree adder lies in the implementation of the part 2). + + Along with Kogge-Stone and Brent-Kung it is considered to be a fundamental tree adder architecture. + + Sklansky achieves log2(N) stages by computing intermediate prefixes along with the large group prefixes. This comes at the expense + of fanouts that double at each level. + + Main building components are GreyCells and BlackCells that appropriately encapsulate the essential logic used for PG computation. + For further circuit characteristics see the book CMOS VLSI Design. + + The implementation performs the 1) and 3) (sum XORs) parts using one bit three input P/G/Sum logic function blocks. + The 2) part is then composed according to the parallel-prefix adder characteristics. + At last XOR gates are used to ensure proper sign extension. + + ``` + B3 A3 B2 A2 B1 A1 B0 A0 + │ │ │ │ │ │ │ │ + ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ ┌─▼──▼─┐ + │ PG │ C3 │ PG │ C2 │ PG │ C1 │ PG │ + │ SUM │◄────┐│ SUM │◄──┐│ SUM │◄──┐│ SUM │◄──0 + │ │ ││ │ ││ │ ││ │ + └─┬──┬┬┘ │└─┬┬┬──┘ │└─┬┬┬──┘ │└─┬┬┬──┘ + │ ││G3P3S3│ │││G2P2S2│ │││G1P1S1│ │││G0P0S0 + │ ┌▼▼──────┴──▼▼▼──────┴──▼▼▼──────┴──▼▼▼──┐ + │ │ Parallel-prefix │ + │ │ PG logic │ + │ └─┬───────┬──────────┬──────────┬────────┘ + │ │S3 │S2 │S1 │S0 + ┌─▼───▼───────▼──────────▼──────────▼────────┐ + │ Sum + Cout │ + │ with sign extension │ + └┬────┬───────┬──────────┬──────────┬────────┘ + │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ + Cout S3 S1 S0 S0 + ``` + + Description of the __init__ method. + + Args: + a (Bus): First input bus. + b (Bus): Second input bus. + prefix (str, optional): Prefix name of signed sa. Defaults to "". + name (str, optional): Name of signed sa. Defaults to "s_sa". + """ + def __init__(self, a: Bus, b: Bus, prefix: str = "", name: str = "s_sa", **kwargs): + super().__init__(a=a, b=b, prefix=prefix, name=name, signed=True, **kwargs) + + # Additional XOR gates to ensure correct sign extension in case of sign addition + self.add_component(XorGate(self.a.get_wire(self.N-1), self.b.get_wire(self.N-1), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self)) + self.add_component(XorGate(self.get_previous_component().out, self.get_previous_component(2).get_generate_wire(), prefix=self.prefix+"_xor"+str(self.get_instance_num(cls=XorGate)), parent_component=self)) + self.out.connect(self.N, self.get_previous_component().out) diff --git a/ariths_gen/multi_bit_circuits/approximate_multipliers/__init__.py b/ariths_gen/multi_bit_circuits/approximate_multipliers/__init__.py index 325734f..1e5da67 100644 --- a/ariths_gen/multi_bit_circuits/approximate_multipliers/__init__.py +++ b/ariths_gen/multi_bit_circuits/approximate_multipliers/__init__.py @@ -12,4 +12,4 @@ from ariths_gen.multi_bit_circuits.approximate_multipliers.broken_carry_save_mul from ariths_gen.multi_bit_circuits.approximate_multipliers.truncated_carry_save_multiplier import ( UnsignedTruncatedCarrySaveMultiplier -) \ No newline at end of file +) diff --git a/ariths_gen/multi_bit_circuits/approximate_multipliers/broken_array_multiplier.py b/ariths_gen/multi_bit_circuits/approximate_multipliers/broken_array_multiplier.py index 5763f09..fb2177d 100644 --- a/ariths_gen/multi_bit_circuits/approximate_multipliers/broken_array_multiplier.py +++ b/ariths_gen/multi_bit_circuits/approximate_multipliers/broken_array_multiplier.py @@ -10,8 +10,7 @@ from ariths_gen.core.arithmetic_circuits import ( ) from ariths_gen.one_bit_circuits.one_bit_components import ( HalfAdder, - FullAdder, - FullAdderPG + FullAdder ) from ariths_gen.one_bit_circuits.logic_gates import ( AndGate, diff --git a/ariths_gen/multi_bit_circuits/approximate_multipliers/broken_carry_save_multiplier.py b/ariths_gen/multi_bit_circuits/approximate_multipliers/broken_carry_save_multiplier.py index 2e9dd19..141500b 100644 --- a/ariths_gen/multi_bit_circuits/approximate_multipliers/broken_carry_save_multiplier.py +++ b/ariths_gen/multi_bit_circuits/approximate_multipliers/broken_carry_save_multiplier.py @@ -13,8 +13,7 @@ from ariths_gen.core.logic_gate_circuits import ( ) from ariths_gen.one_bit_circuits.one_bit_components import ( HalfAdder, - FullAdder, - FullAdderPG + FullAdder ) from ariths_gen.one_bit_circuits.logic_gates import ( AndGate, diff --git a/ariths_gen/multi_bit_circuits/approximate_multipliers/truncated_array_multiplier.py b/ariths_gen/multi_bit_circuits/approximate_multipliers/truncated_array_multiplier.py index 2a69440..dcaa949 100644 --- a/ariths_gen/multi_bit_circuits/approximate_multipliers/truncated_array_multiplier.py +++ b/ariths_gen/multi_bit_circuits/approximate_multipliers/truncated_array_multiplier.py @@ -10,8 +10,7 @@ from ariths_gen.core.arithmetic_circuits import ( ) from ariths_gen.one_bit_circuits.one_bit_components import ( HalfAdder, - FullAdder, - FullAdderPG + FullAdder ) from ariths_gen.one_bit_circuits.logic_gates import ( AndGate, diff --git a/ariths_gen/multi_bit_circuits/approximate_multipliers/truncated_carry_save_multiplier.py b/ariths_gen/multi_bit_circuits/approximate_multipliers/truncated_carry_save_multiplier.py index ea3d27c..0a455cf 100644 --- a/ariths_gen/multi_bit_circuits/approximate_multipliers/truncated_carry_save_multiplier.py +++ b/ariths_gen/multi_bit_circuits/approximate_multipliers/truncated_carry_save_multiplier.py @@ -10,8 +10,7 @@ from ariths_gen.core.arithmetic_circuits import ( ) from ariths_gen.one_bit_circuits.one_bit_components import ( HalfAdder, - FullAdder, - FullAdderPG + FullAdder ) from ariths_gen.one_bit_circuits.logic_gates import ( AndGate, diff --git a/ariths_gen/multi_bit_circuits/dividers/array_divider.py b/ariths_gen/multi_bit_circuits/dividers/array_divider.py index 4c31ac1..946266e 100644 --- a/ariths_gen/multi_bit_circuits/dividers/array_divider.py +++ b/ariths_gen/multi_bit_circuits/dividers/array_divider.py @@ -11,7 +11,6 @@ from ariths_gen.core.arithmetic_circuits import ( from ariths_gen.one_bit_circuits.one_bit_components import ( HalfAdder, FullAdder, - FullAdderPG, TwoOneMultiplexer, FullSubtractor ) diff --git a/ariths_gen/multi_bit_circuits/multipliers/array_multiplier.py b/ariths_gen/multi_bit_circuits/multipliers/array_multiplier.py index 10963e3..38c4330 100644 --- a/ariths_gen/multi_bit_circuits/multipliers/array_multiplier.py +++ b/ariths_gen/multi_bit_circuits/multipliers/array_multiplier.py @@ -10,8 +10,7 @@ from ariths_gen.core.arithmetic_circuits import ( ) from ariths_gen.one_bit_circuits.one_bit_components import ( HalfAdder, - FullAdder, - FullAdderPG + FullAdder ) from ariths_gen.one_bit_circuits.logic_gates import ( AndGate, @@ -192,7 +191,7 @@ class SignedArrayMultiplier(MultiplierCircuit): def __init__(self, a: Bus, b: Bus, prefix: str = "", name: str = "s_arrmul", **kwargs): self.N = max(a.N, b.N) super().__init__(a=a, b=b, prefix=prefix, name=name, out_N=self.N*2, signed=True, **kwargs) - + # Bus sign extension in case buses have different lengths self.a.bus_extend(N=self.N, prefix=a.prefix) self.b.bus_extend(N=self.N, prefix=b.prefix) diff --git a/ariths_gen/multi_bit_circuits/multipliers/carry_save_multiplier.py b/ariths_gen/multi_bit_circuits/multipliers/carry_save_multiplier.py index fb555e7..e7d2602 100644 --- a/ariths_gen/multi_bit_circuits/multipliers/carry_save_multiplier.py +++ b/ariths_gen/multi_bit_circuits/multipliers/carry_save_multiplier.py @@ -10,8 +10,7 @@ from ariths_gen.core.arithmetic_circuits import ( ) from ariths_gen.one_bit_circuits.one_bit_components import ( HalfAdder, - FullAdder, - FullAdderPG + FullAdder ) from ariths_gen.one_bit_circuits.logic_gates import ( AndGate, @@ -145,7 +144,7 @@ class UnsignedCarrySaveMultiplier(MultiplierCircuit): adder_a = Bus(prefix=f"a", wires_list=previous_sums) adder_b = Bus(prefix=f"b", wires_list=previous_carries) - final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True) + final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True, **kwargs) self.add_component(final_adder) [self.out.connect(o, final_adder.out.get_wire(o-self.N), inserted_wire_desired_index=o-self.N) for o in range(self.N, len(self.out.bus))] @@ -280,6 +279,6 @@ class SignedCarrySaveMultiplier(MultiplierCircuit): adder_a = Bus(prefix=f"a", wires_list=previous_sums) adder_b = Bus(prefix=f"b", wires_list=previous_carries) - final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True) + final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True, **kwargs) self.add_component(final_adder) self.out.connect_bus(connecting_bus=final_adder.out, end_connection_pos=final_adder.out.N-1, offset=(-self.N)) diff --git a/ariths_gen/multi_bit_circuits/multipliers/dadda_multiplier.py b/ariths_gen/multi_bit_circuits/multipliers/dadda_multiplier.py index b908a08..2da77c8 100644 --- a/ariths_gen/multi_bit_circuits/multipliers/dadda_multiplier.py +++ b/ariths_gen/multi_bit_circuits/multipliers/dadda_multiplier.py @@ -11,8 +11,7 @@ from ariths_gen.core.arithmetic_circuits import ( ) from ariths_gen.one_bit_circuits.one_bit_components import ( HalfAdder, - FullAdder, - FullAdderPG + FullAdder ) from ariths_gen.one_bit_circuits.logic_gates import ( AndGate, @@ -121,7 +120,7 @@ class UnsignedDaddaMultiplier(MultiplierCircuit): adder_name = unsigned_adder_class_name(a=a, b=b).prefix + str(len(self.columns)-1) adder_a = Bus(prefix=f"a", wires_list=[self.add_column_wire(column=col, bit=0) for col in range(1, len(self.columns))]) adder_b = Bus(prefix=f"b", wires_list=[self.add_column_wire(column=col, bit=1) for col in range(1, len(self.columns))]) - final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True) + final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True, **kwargs) self.add_component(final_adder) [self.out.connect(o, final_adder.out.get_wire(o-1), inserted_wire_desired_index=o-1) for o in range(1, len(self.out.bus))] @@ -232,7 +231,7 @@ class SignedDaddaMultiplier(MultiplierCircuit): adder_name = unsigned_adder_class_name(a=a, b=b).prefix + str(len(self.columns)-1) adder_a = Bus(prefix=f"a", wires_list=[self.add_column_wire(column=col, bit=0) for col in range(1, len(self.columns))]) adder_b = Bus(prefix=f"b", wires_list=[self.add_column_wire(column=col, bit=1) for col in range(1, len(self.columns))]) - final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True) + final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True, **kwargs) self.add_component(final_adder) [self.out.connect(o, final_adder.out.get_wire(o-1), inserted_wire_desired_index=o-1) for o in range(1, len(self.out.bus))] diff --git a/ariths_gen/multi_bit_circuits/multipliers/wallace_multiplier.py b/ariths_gen/multi_bit_circuits/multipliers/wallace_multiplier.py index 566fb47..24ba4ad 100644 --- a/ariths_gen/multi_bit_circuits/multipliers/wallace_multiplier.py +++ b/ariths_gen/multi_bit_circuits/multipliers/wallace_multiplier.py @@ -11,8 +11,7 @@ from ariths_gen.core.arithmetic_circuits import ( ) from ariths_gen.one_bit_circuits.one_bit_components import ( HalfAdder, - FullAdder, - FullAdderPG + FullAdder ) from ariths_gen.one_bit_circuits.logic_gates import ( AndGate, @@ -152,7 +151,7 @@ class UnsignedWallaceMultiplier(MultiplierCircuit): adder_b = Bus(prefix="b", N=self.rows[1].N) [adder_a.connect(w, self.rows[0].get_wire(w)) for w in range(0, self.rows[0].N)] [adder_b.connect(w, self.rows[1].get_wire(w)) for w in range(0, self.rows[1].N)] - final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True) + final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True, **kwargs) self.add_component(final_adder) [self.out.connect(o, final_adder.out.get_wire(o), inserted_wire_desired_index=o) for o in range(0, final_adder.out.N-1)] @@ -217,7 +216,7 @@ class UnsignedWallaceMultiplier(MultiplierCircuit): adder_name = unsigned_adder_class_name(a=a, b=b).prefix + str(len(self.columns)-1) adder_a = Bus(prefix=f"a", wires_list=[self.add_column_wire(column=col, bit=0) for col in range(1, len(self.columns))]) adder_b = Bus(prefix=f"b", wires_list=[self.add_column_wire(column=col, bit=1) for col in range(1, len(self.columns))]) - final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True) + final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True, **kwargs) self.add_component(final_adder) [self.out.connect(o, final_adder.out.get_wire(o-1), inserted_wire_desired_index=o-1) for o in range(1, len(self.out.bus))] @@ -316,7 +315,7 @@ class SignedWallaceMultiplier(MultiplierCircuit): adder_b = Bus(prefix="b", N=self.rows[1].N) [adder_a.connect(w, self.rows[0].get_wire(w)) for w in range(0, self.rows[0].N)] [adder_b.connect(w, self.rows[1].get_wire(w)) for w in range(0, self.rows[1].N)] - final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True) + final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True, **kwargs) self.add_component(final_adder) [self.out.connect(o, final_adder.out.get_wire(o), inserted_wire_desired_index=o) for o in range(0, final_adder.out.N-1)] @@ -395,7 +394,7 @@ class SignedWallaceMultiplier(MultiplierCircuit): adder_name = unsigned_adder_class_name(a=a, b=b).prefix + str(len(self.columns)-1) adder_a = Bus(prefix=f"a", wires_list=[self.add_column_wire(column=col, bit=0) for col in range(1, len(self.columns))]) adder_b = Bus(prefix=f"b", wires_list=[self.add_column_wire(column=col, bit=1) for col in range(1, len(self.columns))]) - final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True) + final_adder = unsigned_adder_class_name(a=adder_a, b=adder_b, prefix=self.prefix, name=adder_name, inner_component=True, **kwargs) self.add_component(final_adder) [self.out.connect(o, final_adder.out.get_wire(o-1), inserted_wire_desired_index=o-1) for o in range(1, len(self.out.bus))] diff --git a/ariths_gen/one_bit_circuits/one_bit_components/__init__.py b/ariths_gen/one_bit_circuits/one_bit_components/__init__.py index 13e1092..b1a946a 100644 --- a/ariths_gen/one_bit_circuits/one_bit_components/__init__.py +++ b/ariths_gen/one_bit_circuits/one_bit_components/__init__.py @@ -1,12 +1,19 @@ from .two_input_one_bit_components import ( HalfAdder, - PGLogicBlock, - HalfSubtractor + HalfSubtractor, + PGLogicBlock ) from .three_input_one_bit_components import ( FullAdder, + FullAdderP, FullAdderPG, + PGSumLogic, TwoOneMultiplexer, - FullSubtractor + FullSubtractor, + GreyCell +) + +from .four_input_one_bit_components import ( + BlackCell ) diff --git a/ariths_gen/one_bit_circuits/one_bit_components/four_input_one_bit_components.py b/ariths_gen/one_bit_circuits/one_bit_components/four_input_one_bit_components.py new file mode 100644 index 0000000..840aa9e --- /dev/null +++ b/ariths_gen/one_bit_circuits/one_bit_components/four_input_one_bit_components.py @@ -0,0 +1,59 @@ +from ariths_gen.wire_components.wires import ConstantWireValue0 +from ariths_gen.core.one_bit_circuits import FourInputOneBitCircuit +from ariths_gen.one_bit_circuits.logic_gates import AndGate, NandGate, OrGate, NorGate, XorGate, XnorGate, NotGate +from ariths_gen.wire_components import Wire, Bus + + +class BlackCell(FourInputOneBitCircuit): + """Class representing four input black cell used in parallel prefix adders inside the PG (parallel prefix computation) logic. + + Black cell is based on a notation used in the book CMOS VLSI Design (please refer to the book for more details not deducible from the code itself). + ``` + ┌──────┐ + ───►│ ├─► Generate + ───►│ │ + ───►│ │ + ───►│ ├─► Propagate + └──────┘ + ``` + + Description of the __init__ method. + + Args: + a (Wire, optional): First input wire, represents generate signal from the current stage. Defaults to Wire(name="g1"). + b (Wire, optional): Second input wire, represents propagate signal from the current stage. Defaults to Wire(name="p1"). + c (Wire, optional): Third input wire, represents generate signal from a preceding stage. Defaults to Wire(name="g0"). + d (Wire, optional): Fourth input wire, represents propagate signal from a preceding stage. Defaults to Wire(name="p0"). + prefix (str, optional): Prefix name of grey cell. Defaults to "gc". + """ + def __init__(self, a: Wire = Wire(name="g1"), b: Wire = Wire(name="p1"), c: Wire = Wire(name="g0"), d: Wire = Wire(name="p0"), prefix: str = "bc"): + super().__init__(a, b, c, d, prefix) + # 2 wires for component's bus output (generate, propagate) + self.out = Bus(self.prefix+"_out", 2) + + # Create/propagate the generate signal + self.add_component(AndGate(a=self.b, b=self.c, prefix=self.prefix+"_and"+str(self.get_instance_num(cls=AndGate)), parent_component=self)) + self.add_component(OrGate(a=self.a, b=self.get_previous_component().out, prefix=self.prefix+"_or"+str(self.get_instance_num(cls=OrGate)), parent_component=self)) + # Connection of the generate output wire + self.out.connect(0, self.get_previous_component().out) + + # Create/propagate the propagate signal + self.add_component(AndGate(a=self.b, b=self.d, prefix=self.prefix+"_and"+str(self.get_instance_num(cls=AndGate)), parent_component=self)) + # Connection of the propagate output wire + self.out.connect(1, self.get_previous_component().out) + + def get_generate_wire(self): + """Get output wire carrying generate signal value. + + Returns: + Wire: Return generate wire. + """ + return self.out.get_wire(0) + + def get_propagate_wire(self): + """Get output wire carrying propagate signal value. + + Returns: + Wire: Return propagate wire. + """ + return self.out.get_wire(1) diff --git a/ariths_gen/one_bit_circuits/one_bit_components/three_input_one_bit_components.py b/ariths_gen/one_bit_circuits/one_bit_components/three_input_one_bit_components.py index 2751a40..3e93b21 100644 --- a/ariths_gen/one_bit_circuits/one_bit_components/three_input_one_bit_components.py +++ b/ariths_gen/one_bit_circuits/one_bit_components/three_input_one_bit_components.py @@ -52,6 +52,22 @@ class FullAdder(ThreeInputOneBitCircuit): self.out.connect(1, obj_or.out) + def get_sum_wire(self): + """Get output wire carrying sum value. + + Returns: + Wire: Return sum wire. + """ + return self.out.get_wire(0) + + def get_carry_wire(self): + """Get output wire carrying carry out value. + + Returns: + Wire: Return carry out wire. + """ + return self.out.get_wire(1) + def get_init_v_flat(self): """ support of custom PDK """ if not self.use_verilog_instance: @@ -68,7 +84,6 @@ class FullAdder(ThreeInputOneBitCircuit): } ) + ";\n" - def get_self_init_v_hier(self): """ support of custom PDK """ if not self.use_verilog_instance: @@ -76,7 +91,7 @@ class FullAdder(ThreeInputOneBitCircuit): unique_out_wires = [] for o in self.out.bus: - unique_out_wires.append(o.name+"_outid"+str(self.out.bus.index(o))) if o.is_const() or o.name in [self.a.name, self.b.name] else unique_out_wires.append(o.name) + unique_out_wires.append(o.name+"_outid"+str(self.out.bus.index(o))) if o.is_const() or o.name in [self.a.name, self.b.name] else unique_out_wires.append(o.name) return " " + self.use_verilog_instance.format(**{ "unit": self.prefix, @@ -87,8 +102,87 @@ class FullAdder(ThreeInputOneBitCircuit): "wireyc": unique_out_wires[1], }) + ";\n" -class FullAdderPG(ThreeInputOneBitCircuit): - """Class representing modified three input one bit full adder with propagate/generate logic. + +class FullAdderP(FullAdder, ThreeInputOneBitCircuit): + """Class representing three input one bit full adder with additional output wire for P signal. + + ``` + ┌──────┐ + ───►│ ├─► Sum + ───►│ ├─► Cout + ───►│ ├─► P + └──────┘ + ``` + + Description of the __init__ method. + + Args: + a (Wire, optional): First input wire. Defaults to Wire(name="a"). + b (Wire, optional): Second input wire. Defaults to Wire(name="b"). + c (Wire, optional): Carry input wire. Defaults to Wire(name="cin"). + prefix (str, optional): Prefix name of full adder with p logic. Defaults to "fa_p". + """ + def __init__(self, a: Wire = Wire(name="a"), b: Wire = Wire(name="b"), c: Wire = Wire(name="cin"), prefix: str = "fa_p"): + super().__init__(a, b, c, prefix) + # 3 wires for component's bus output (sum, cout, propagate) + self.out.bus_extend(3) + self.out.connect(2, self.get_previous_component(5).out) + + def get_propagate_wire(self): + """Get output wire carrying propagate value. + + Returns: + Wire: Return propagate wire. + """ + return self.out.get_wire(2) + + +class FullAdderPG(FullAdder, ThreeInputOneBitCircuit): + """Class representing three input one bit full adder with additional output wires for P and G signals. + + ``` + ┌──────┐ + ───►│ ├─► Sum + ───►│ ├─► Cout + ───►│ ├─► P + │ ├─► G + └──────┘ + ``` + + Description of the __init__ method. + + Args: + a (Wire, optional): First input wire. Defaults to Wire(name="a"). + b (Wire, optional): Second input wire. Defaults to Wire(name="b"). + c (Wire, optional): Carry input wire. Defaults to Wire(name="cin"). + prefix (str, optional): Prefix name of full adder with pg logic. Defaults to "fa_pg". + """ + def __init__(self, a: Wire = Wire(name="a"), b: Wire = Wire(name="b"), c: Wire = Wire(name="cin"), prefix: str = "fa_pg"): + super().__init__(a, b, c, prefix) + # 4 wires for component's bus output (sum, cout, propagate, generate) + self.out.bus_extend(4) + self.out.connect(2, self.get_previous_component(5).out) + self.out.connect(3, self.get_previous_component(4).out) + + def get_propagate_wire(self): + """Get output wire carrying propagate value. + + Returns: + Wire: Return propagate wire. + """ + return self.out.get_wire(2) + + def get_generate_wire(self): + """Get output wire carrying generate value. + + Returns: + Wire: Return generate wire. + """ + return self.out.get_wire(3) + + +class PGSumLogic(ThreeInputOneBitCircuit): + """Class represents a three input function block that contains logic for obtaining the propagate/generate/sum signals. ``` ┌──────┐ @@ -104,9 +198,9 @@ class FullAdderPG(ThreeInputOneBitCircuit): a (Wire, optional): First input wire. Defaults to Wire(name="a"). b (Wire, optional): Second input wire. Defaults to Wire(name="b"). c (Wire, optional): Carry input wire. Defaults to Wire(name="cin"). - prefix (str, optional): Prefix name of full adder with pg logic. Defaults to "pg_fa". + prefix (str, optional): Prefix name of pg sum logic. Defaults to "pg_sum". """ - def __init__(self, a: Wire = Wire(name="a"), b: Wire = Wire(name="b"), c: Wire = Wire(name="cin"), prefix: str = "pg_fa"): + def __init__(self, a: Wire = Wire(name="a"), b: Wire = Wire(name="b"), c: Wire = Wire(name="cin"), prefix: str = "pg_sum"): super().__init__(a, b, c, prefix) # 3 wires for component's bus output (sum, propagate, generate) self.out = Bus(self.prefix+"_out", 3) @@ -193,6 +287,14 @@ class TwoOneMultiplexer(ThreeInputOneBitCircuit): # Connection of MUX output wire self.out.connect(0, xor_obj.out) + def get_mux_out_wire(self): + """Get multiplexer output wire. + + Returns: + Wire: Return multiplexer out wire. + """ + return self.out.get_wire(0) + class FullSubtractor(ThreeInputOneBitCircuit): """Class representing three input one bit full subtractor. @@ -258,3 +360,43 @@ class FullSubtractor(ThreeInputOneBitCircuit): Wire: Return borrow out wire. """ return self.out.get_wire(1) + + +class GreyCell(ThreeInputOneBitCircuit): + """Class representing three input grey cell used in parallel prefix adders inside the PG (parallel prefix computation) logic. + + Grey cell is based on a notation used in the book CMOS VLSI Design (please refer to the book for more details not deducible from the code itself). + ``` + ┌──────┐ + ───►│ │ + ───►│ ├─► Generate + ───►│ │ + └──────┘ + ``` + + Description of the __init__ method. + + Args: + a (Wire, optional): First input wire, represents generate signal from the current stage. Defaults to Wire(name="g1"). + b (Wire, optional): Second input wire, represents propagate signal from the current stage. Defaults to Wire(name="p1"). + c (Wire, optional): Third input wire, represents generate signal from a preceding stage. Defaults to Wire(name="g0"). + prefix (str, optional): Prefix name of grey cell. Defaults to "gc". + """ + def __init__(self, a: Wire = Wire(name="g1"), b: Wire = Wire(name="p1"), c: Wire = Wire(name="g0"), prefix: str = "gc"): + super().__init__(a, b, c, prefix) + # 1 wire for component's bus output (output generate) + self.out = Bus(self.prefix+"_out", 1) + + # Create/propagate the generate signal + self.add_component(AndGate(a=self.b, b=self.c, prefix=self.prefix+"_and"+str(self.get_instance_num(cls=AndGate)), parent_component=self)) + self.add_component(OrGate(a=self.a, b=self.get_previous_component().out, prefix=self.prefix+"_or"+str(self.get_instance_num(cls=OrGate)), parent_component=self)) + # Connection of the generate output wire + self.out.connect(0, self.get_previous_component().out) + + def get_generate_wire(self): + """Get output wire carrying generate value. + + Returns: + Wire: Return generate wire. + """ + return self.out.get_wire(0) diff --git a/ariths_gen/one_bit_circuits/one_bit_components/two_input_one_bit_components.py b/ariths_gen/one_bit_circuits/one_bit_components/two_input_one_bit_components.py index da3557b..835b545 100644 --- a/ariths_gen/one_bit_circuits/one_bit_components/two_input_one_bit_components.py +++ b/ariths_gen/one_bit_circuits/one_bit_components/two_input_one_bit_components.py @@ -22,7 +22,7 @@ class HalfAdder(TwoInputOneBitCircuit): prefix (str, optional): Prefix name of half adder. Defaults to "ha". """ use_verilog_instance = False - + def __init__(self, a: Wire = Wire(name="a"), b: Wire = Wire(name="b"), prefix: str = "ha"): super().__init__(a, b, prefix) # 2 wires for component's bus output (sum, cout) @@ -40,6 +40,22 @@ class HalfAdder(TwoInputOneBitCircuit): self.add_component(obj_and) self.out.connect(1, obj_and.out) + def get_sum_wire(self): + """Get output wire carrying sum value. + + Returns: + Wire: Return sum wire. + """ + return self.out.get_wire(0) + + def get_carry_wire(self): + """Get output wire carrying carry out value. + + Returns: + Wire: Return carry out wire. + """ + return self.out.get_wire(1) + def get_init_v_flat(self): """ support of custom PDK """ if not self.use_verilog_instance: @@ -55,7 +71,6 @@ class HalfAdder(TwoInputOneBitCircuit): } ) + ";\n" - def get_self_init_v_hier(self): """ support of custom PDK """ if not self.use_verilog_instance: @@ -63,7 +78,7 @@ class HalfAdder(TwoInputOneBitCircuit): unique_out_wires = [] for o in self.out.bus: - unique_out_wires.append(o.name+"_outid"+str(self.out.bus.index(o))) if o.is_const() or o.name in [self.a.name, self.b.name] else unique_out_wires.append(o.name) + unique_out_wires.append(o.name+"_outid"+str(self.out.bus.index(o))) if o.is_const() or o.name in [self.a.name, self.b.name] else unique_out_wires.append(o.name) return " " + self.use_verilog_instance.format(**{ "unit": self.prefix, @@ -73,6 +88,7 @@ class HalfAdder(TwoInputOneBitCircuit): "wireyc": unique_out_wires[1], }) + ";\n" + class PGLogicBlock(TwoInputOneBitCircuit): """Class representing two input one bit propagate/generate logic block. diff --git a/ariths_gen/pdk.py b/ariths_gen/pdk.py index 27af3ed..fab62ed 100644 --- a/ariths_gen/pdk.py +++ b/ariths_gen/pdk.py @@ -1,12 +1,14 @@ """ Support of custom PDK -This file defines functions for generating of full and half adders -directly on the level of CMOS modules. +This file defines functions for generating full and half adders +directly on the CMOS modules level. -You may add your own modules as in example in set_pdk45_library() +You may add your own modules as defined in the example below +(inside `set_pdk45_library()`) -Please call this function before calling get_v_code_XXX() +NOTE: Please call this function before calling `get_v_code_XXX()` to allow the +Verilog generation process to take into account the library's specific definitions. """ from .one_bit_circuits import ( one_bit_components @@ -15,4 +17,4 @@ from .one_bit_circuits import ( def set_pdk45_library(): one_bit_components.FullAdder.use_verilog_instance = "FAX1 {unit} (.A({wirea}), .B({wireb}), .C({wirec}), .YS({wireys}), .YC({wireyc}))" - one_bit_components.HalfAdder.use_verilog_instance = "HAX1 {unit} (.A({wirea}), .B({wireb}), .YS({wireys}), .YC({wireyc}))" \ No newline at end of file + one_bit_components.HalfAdder.use_verilog_instance = "HAX1 {unit} (.A({wirea}), .B({wireb}), .YS({wireys}), .YC({wireyc}))" diff --git a/ariths_gen/wire_components/buses.py b/ariths_gen/wire_components/buses.py index da97b38..ed532bf 100644 --- a/ariths_gen/wire_components/buses.py +++ b/ariths_gen/wire_components/buses.py @@ -76,7 +76,7 @@ class Bus(): Wire: Returning wire from the bus. """ return self.bus[wire_index] - + def __getitem__(self, i): return self.bus[i] diff --git a/ariths_gen/wire_components/wires.py b/ariths_gen/wire_components/wires.py index b397d00..019a4fa 100644 --- a/ariths_gen/wire_components/wires.py +++ b/ariths_gen/wire_components/wires.py @@ -255,6 +255,7 @@ class Wire(): else: return f"" + # Wires with constant values # class ConstantWireValue0(Wire): """Class representing wire carrying constant value 0 used to interconnect components. @@ -289,7 +290,6 @@ class ConstantWireValue0(Wire): return True - class ConstantWireValue1(Wire): """Class representing wire carrying constant value 1 used to interconnect components. @@ -321,4 +321,3 @@ class ConstantWireValue1(Wire): bool: True, because constant wire carries a constant value 1. """ return True - diff --git a/c_circuits_simulation_tests/README.md b/c_circuits_simulation_tests/README.md deleted file mode 100644 index 80e128a..0000000 --- a/c_circuits_simulation_tests/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Testing of arithmetic circuits generated to C code using ArithsGen - -## Description -Script checks correct functionality of various architectures of unsigned/signed adders and multipliers and of unsigned dividers located in 'c_circuits' folder. Folder contains circuits in flattened as well as in hierarchical representation to ensure proper testing. Script automatically compiles and runs all tests and echoes the results back to console. - -**Note** that these circuits were manually modified to allow such a testing (added main with nested loops and asserts)! - -## Execute permission -```bash -chmod +x c_tests.sh -``` -## Usage -```bash -./c_tests.sh -``` \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_fa.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_fa.c deleted file mode 100644 index 561c405..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_fa.c +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include - -uint8_t f_fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t f_fa_out = 0; - uint8_t f_fa_xor0 = 0; - uint8_t f_fa_and0 = 0; - uint8_t f_fa_xor1 = 0; - uint8_t f_fa_and1 = 0; - uint8_t f_fa_or0 = 0; - - f_fa_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_fa_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_fa_xor1 = ((f_fa_xor0 >> 0) & 0x01) ^ ((cin >> 0) & 0x01); - f_fa_and1 = ((f_fa_xor0 >> 0) & 0x01) & ((cin >> 0) & 0x01); - f_fa_or0 = ((f_fa_and0 >> 0) & 0x01) | ((f_fa_and1 >> 0) & 0x01); - - f_fa_out |= ((f_fa_xor1 >> 0) & 0x01) << 0; - f_fa_out |= ((f_fa_or0 >> 0) & 0x01) << 1; - return f_fa_out; -} - -#include -int main(){ - for (int i = 0; i < 2; i++){ - for (int j = 0; j < 2; j++){ - for (int k = 0; k < 2; k++){ - assert((i + j + k) == f_fa(i,j,k)); - } - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_ha.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_ha.c deleted file mode 100644 index 41a0fcb..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_ha.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -uint8_t f_ha(uint8_t a, uint8_t b){ - uint8_t f_ha_out = 0; - uint8_t f_ha_xor0 = 0; - uint8_t f_ha_and0 = 0; - - f_ha_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_ha_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - - f_ha_out |= ((f_ha_xor0 >> 0) & 0x01) << 0; - f_ha_out |= ((f_ha_and0 >> 0) & 0x01) << 1; - return f_ha_out; -} - -#include -int main(){ - for (int i = 0; i < 2; i++){ - for (int j = 0; j < 2; j++){ - assert((i + j) == f_ha(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cla4.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cla4.c deleted file mode 100644 index da02afa..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cla4.c +++ /dev/null @@ -1,102 +0,0 @@ -#include -#include - -int64_t f_s_cla4(int64_t a, int64_t b){ - uint8_t f_s_cla4_out = 0; - uint8_t f_s_cla4_pg_logic0_or0 = 0; - uint8_t f_s_cla4_pg_logic0_and0 = 0; - uint8_t f_s_cla4_pg_logic0_xor0 = 0; - uint8_t f_s_cla4_pg_logic1_or0 = 0; - uint8_t f_s_cla4_pg_logic1_and0 = 0; - uint8_t f_s_cla4_pg_logic1_xor0 = 0; - uint8_t f_s_cla4_xor1 = 0; - uint8_t f_s_cla4_and0 = 0; - uint8_t f_s_cla4_or0 = 0; - uint8_t f_s_cla4_pg_logic2_or0 = 0; - uint8_t f_s_cla4_pg_logic2_and0 = 0; - uint8_t f_s_cla4_pg_logic2_xor0 = 0; - uint8_t f_s_cla4_xor2 = 0; - uint8_t f_s_cla4_and1 = 0; - uint8_t f_s_cla4_and2 = 0; - uint8_t f_s_cla4_and3 = 0; - uint8_t f_s_cla4_and4 = 0; - uint8_t f_s_cla4_or1 = 0; - uint8_t f_s_cla4_or2 = 0; - uint8_t f_s_cla4_pg_logic3_or0 = 0; - uint8_t f_s_cla4_pg_logic3_and0 = 0; - uint8_t f_s_cla4_pg_logic3_xor0 = 0; - uint8_t f_s_cla4_xor3 = 0; - uint8_t f_s_cla4_and5 = 0; - uint8_t f_s_cla4_and6 = 0; - uint8_t f_s_cla4_and7 = 0; - uint8_t f_s_cla4_and8 = 0; - uint8_t f_s_cla4_and9 = 0; - uint8_t f_s_cla4_and10 = 0; - uint8_t f_s_cla4_and11 = 0; - uint8_t f_s_cla4_or3 = 0; - uint8_t f_s_cla4_or4 = 0; - uint8_t f_s_cla4_or5 = 0; - uint8_t f_s_cla4_xor4 = 0; - uint8_t f_s_cla4_xor5 = 0; - - f_s_cla4_pg_logic0_or0 = ((a >> 0) & 0x01) | ((b >> 0) & 0x01); - f_s_cla4_pg_logic0_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_cla4_pg_logic0_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_s_cla4_pg_logic1_or0 = ((a >> 1) & 0x01) | ((b >> 1) & 0x01); - f_s_cla4_pg_logic1_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_cla4_pg_logic1_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_s_cla4_xor1 = ((f_s_cla4_pg_logic1_xor0 >> 0) & 0x01) ^ ((f_s_cla4_pg_logic0_and0 >> 0) & 0x01); - f_s_cla4_and0 = ((f_s_cla4_pg_logic0_and0 >> 0) & 0x01) & ((f_s_cla4_pg_logic1_or0 >> 0) & 0x01); - f_s_cla4_or0 = ((f_s_cla4_pg_logic1_and0 >> 0) & 0x01) | ((f_s_cla4_and0 >> 0) & 0x01); - f_s_cla4_pg_logic2_or0 = ((a >> 2) & 0x01) | ((b >> 2) & 0x01); - f_s_cla4_pg_logic2_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_cla4_pg_logic2_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_s_cla4_xor2 = ((f_s_cla4_pg_logic2_xor0 >> 0) & 0x01) ^ ((f_s_cla4_or0 >> 0) & 0x01); - f_s_cla4_and1 = ((f_s_cla4_pg_logic2_or0 >> 0) & 0x01) & ((f_s_cla4_pg_logic0_or0 >> 0) & 0x01); - f_s_cla4_and2 = ((f_s_cla4_pg_logic0_and0 >> 0) & 0x01) & ((f_s_cla4_pg_logic2_or0 >> 0) & 0x01); - f_s_cla4_and3 = ((f_s_cla4_and2 >> 0) & 0x01) & ((f_s_cla4_pg_logic1_or0 >> 0) & 0x01); - f_s_cla4_and4 = ((f_s_cla4_pg_logic1_and0 >> 0) & 0x01) & ((f_s_cla4_pg_logic2_or0 >> 0) & 0x01); - f_s_cla4_or1 = ((f_s_cla4_and3 >> 0) & 0x01) | ((f_s_cla4_and4 >> 0) & 0x01); - f_s_cla4_or2 = ((f_s_cla4_pg_logic2_and0 >> 0) & 0x01) | ((f_s_cla4_or1 >> 0) & 0x01); - f_s_cla4_pg_logic3_or0 = ((a >> 3) & 0x01) | ((b >> 3) & 0x01); - f_s_cla4_pg_logic3_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_cla4_pg_logic3_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_s_cla4_xor3 = ((f_s_cla4_pg_logic3_xor0 >> 0) & 0x01) ^ ((f_s_cla4_or2 >> 0) & 0x01); - f_s_cla4_and5 = ((f_s_cla4_pg_logic3_or0 >> 0) & 0x01) & ((f_s_cla4_pg_logic1_or0 >> 0) & 0x01); - f_s_cla4_and6 = ((f_s_cla4_pg_logic0_and0 >> 0) & 0x01) & ((f_s_cla4_pg_logic2_or0 >> 0) & 0x01); - f_s_cla4_and7 = ((f_s_cla4_pg_logic3_or0 >> 0) & 0x01) & ((f_s_cla4_pg_logic1_or0 >> 0) & 0x01); - f_s_cla4_and8 = ((f_s_cla4_and6 >> 0) & 0x01) & ((f_s_cla4_and7 >> 0) & 0x01); - f_s_cla4_and9 = ((f_s_cla4_pg_logic1_and0 >> 0) & 0x01) & ((f_s_cla4_pg_logic3_or0 >> 0) & 0x01); - f_s_cla4_and10 = ((f_s_cla4_and9 >> 0) & 0x01) & ((f_s_cla4_pg_logic2_or0 >> 0) & 0x01); - f_s_cla4_and11 = ((f_s_cla4_pg_logic2_and0 >> 0) & 0x01) & ((f_s_cla4_pg_logic3_or0 >> 0) & 0x01); - f_s_cla4_or3 = ((f_s_cla4_and8 >> 0) & 0x01) | ((f_s_cla4_and11 >> 0) & 0x01); - f_s_cla4_or4 = ((f_s_cla4_and10 >> 0) & 0x01) | ((f_s_cla4_or3 >> 0) & 0x01); - f_s_cla4_or5 = ((f_s_cla4_pg_logic3_and0 >> 0) & 0x01) | ((f_s_cla4_or4 >> 0) & 0x01); - f_s_cla4_xor4 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_s_cla4_xor5 = ((f_s_cla4_xor4 >> 0) & 0x01) ^ ((f_s_cla4_or5 >> 0) & 0x01); - - f_s_cla4_out |= ((f_s_cla4_pg_logic0_xor0 >> 0) & 0x01) << 0; - f_s_cla4_out |= ((f_s_cla4_xor1 >> 0) & 0x01) << 1; - f_s_cla4_out |= ((f_s_cla4_xor2 >> 0) & 0x01) << 2; - f_s_cla4_out |= ((f_s_cla4_xor3 >> 0) & 0x01) << 3; - f_s_cla4_out |= ((f_s_cla4_xor5 >> 0) & 0x01) << 4; - return f_s_cla4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 32 + result; - } - - assert(result == (int)f_s_cla4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cla8.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cla8.c deleted file mode 100644 index 9a0ac18..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cla8.c +++ /dev/null @@ -1,198 +0,0 @@ -#include -#include - -int64_t f_s_cla8(int64_t a, int64_t b){ - uint64_t f_s_cla8_out = 0; - uint8_t f_s_cla8_pg_logic0_or0 = 0; - uint8_t f_s_cla8_pg_logic0_and0 = 0; - uint8_t f_s_cla8_pg_logic0_xor0 = 0; - uint8_t f_s_cla8_pg_logic1_or0 = 0; - uint8_t f_s_cla8_pg_logic1_and0 = 0; - uint8_t f_s_cla8_pg_logic1_xor0 = 0; - uint8_t f_s_cla8_xor1 = 0; - uint8_t f_s_cla8_and0 = 0; - uint8_t f_s_cla8_or0 = 0; - uint8_t f_s_cla8_pg_logic2_or0 = 0; - uint8_t f_s_cla8_pg_logic2_and0 = 0; - uint8_t f_s_cla8_pg_logic2_xor0 = 0; - uint8_t f_s_cla8_xor2 = 0; - uint8_t f_s_cla8_and1 = 0; - uint8_t f_s_cla8_and2 = 0; - uint8_t f_s_cla8_and3 = 0; - uint8_t f_s_cla8_and4 = 0; - uint8_t f_s_cla8_or1 = 0; - uint8_t f_s_cla8_or2 = 0; - uint8_t f_s_cla8_pg_logic3_or0 = 0; - uint8_t f_s_cla8_pg_logic3_and0 = 0; - uint8_t f_s_cla8_pg_logic3_xor0 = 0; - uint8_t f_s_cla8_xor3 = 0; - uint8_t f_s_cla8_and5 = 0; - uint8_t f_s_cla8_and6 = 0; - uint8_t f_s_cla8_and7 = 0; - uint8_t f_s_cla8_and8 = 0; - uint8_t f_s_cla8_and9 = 0; - uint8_t f_s_cla8_and10 = 0; - uint8_t f_s_cla8_and11 = 0; - uint8_t f_s_cla8_or3 = 0; - uint8_t f_s_cla8_or4 = 0; - uint8_t f_s_cla8_or5 = 0; - uint8_t f_s_cla8_pg_logic4_or0 = 0; - uint8_t f_s_cla8_pg_logic4_and0 = 0; - uint8_t f_s_cla8_pg_logic4_xor0 = 0; - uint8_t f_s_cla8_xor4 = 0; - uint8_t f_s_cla8_and12 = 0; - uint8_t f_s_cla8_or6 = 0; - uint8_t f_s_cla8_pg_logic5_or0 = 0; - uint8_t f_s_cla8_pg_logic5_and0 = 0; - uint8_t f_s_cla8_pg_logic5_xor0 = 0; - uint8_t f_s_cla8_xor5 = 0; - uint8_t f_s_cla8_and13 = 0; - uint8_t f_s_cla8_and14 = 0; - uint8_t f_s_cla8_and15 = 0; - uint8_t f_s_cla8_or7 = 0; - uint8_t f_s_cla8_or8 = 0; - uint8_t f_s_cla8_pg_logic6_or0 = 0; - uint8_t f_s_cla8_pg_logic6_and0 = 0; - uint8_t f_s_cla8_pg_logic6_xor0 = 0; - uint8_t f_s_cla8_xor6 = 0; - uint8_t f_s_cla8_and16 = 0; - uint8_t f_s_cla8_and17 = 0; - uint8_t f_s_cla8_and18 = 0; - uint8_t f_s_cla8_and19 = 0; - uint8_t f_s_cla8_and20 = 0; - uint8_t f_s_cla8_and21 = 0; - uint8_t f_s_cla8_or9 = 0; - uint8_t f_s_cla8_or10 = 0; - uint8_t f_s_cla8_or11 = 0; - uint8_t f_s_cla8_pg_logic7_or0 = 0; - uint8_t f_s_cla8_pg_logic7_and0 = 0; - uint8_t f_s_cla8_pg_logic7_xor0 = 0; - uint8_t f_s_cla8_xor7 = 0; - uint8_t f_s_cla8_and22 = 0; - uint8_t f_s_cla8_and23 = 0; - uint8_t f_s_cla8_and24 = 0; - uint8_t f_s_cla8_and25 = 0; - uint8_t f_s_cla8_and26 = 0; - uint8_t f_s_cla8_and27 = 0; - uint8_t f_s_cla8_and28 = 0; - uint8_t f_s_cla8_and29 = 0; - uint8_t f_s_cla8_and30 = 0; - uint8_t f_s_cla8_and31 = 0; - uint8_t f_s_cla8_or12 = 0; - uint8_t f_s_cla8_or13 = 0; - uint8_t f_s_cla8_or14 = 0; - uint8_t f_s_cla8_or15 = 0; - uint8_t f_s_cla8_xor8 = 0; - uint8_t f_s_cla8_xor9 = 0; - - f_s_cla8_pg_logic0_or0 = ((a >> 0) & 0x01) | ((b >> 0) & 0x01); - f_s_cla8_pg_logic0_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_cla8_pg_logic0_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_s_cla8_pg_logic1_or0 = ((a >> 1) & 0x01) | ((b >> 1) & 0x01); - f_s_cla8_pg_logic1_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_cla8_pg_logic1_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_s_cla8_xor1 = ((f_s_cla8_pg_logic1_xor0 >> 0) & 0x01) ^ ((f_s_cla8_pg_logic0_and0 >> 0) & 0x01); - f_s_cla8_and0 = ((f_s_cla8_pg_logic0_and0 >> 0) & 0x01) & ((f_s_cla8_pg_logic1_or0 >> 0) & 0x01); - f_s_cla8_or0 = ((f_s_cla8_pg_logic1_and0 >> 0) & 0x01) | ((f_s_cla8_and0 >> 0) & 0x01); - f_s_cla8_pg_logic2_or0 = ((a >> 2) & 0x01) | ((b >> 2) & 0x01); - f_s_cla8_pg_logic2_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_cla8_pg_logic2_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_s_cla8_xor2 = ((f_s_cla8_pg_logic2_xor0 >> 0) & 0x01) ^ ((f_s_cla8_or0 >> 0) & 0x01); - f_s_cla8_and1 = ((f_s_cla8_pg_logic2_or0 >> 0) & 0x01) & ((f_s_cla8_pg_logic0_or0 >> 0) & 0x01); - f_s_cla8_and2 = ((f_s_cla8_pg_logic0_and0 >> 0) & 0x01) & ((f_s_cla8_pg_logic2_or0 >> 0) & 0x01); - f_s_cla8_and3 = ((f_s_cla8_and2 >> 0) & 0x01) & ((f_s_cla8_pg_logic1_or0 >> 0) & 0x01); - f_s_cla8_and4 = ((f_s_cla8_pg_logic1_and0 >> 0) & 0x01) & ((f_s_cla8_pg_logic2_or0 >> 0) & 0x01); - f_s_cla8_or1 = ((f_s_cla8_and3 >> 0) & 0x01) | ((f_s_cla8_and4 >> 0) & 0x01); - f_s_cla8_or2 = ((f_s_cla8_pg_logic2_and0 >> 0) & 0x01) | ((f_s_cla8_or1 >> 0) & 0x01); - f_s_cla8_pg_logic3_or0 = ((a >> 3) & 0x01) | ((b >> 3) & 0x01); - f_s_cla8_pg_logic3_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_cla8_pg_logic3_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_s_cla8_xor3 = ((f_s_cla8_pg_logic3_xor0 >> 0) & 0x01) ^ ((f_s_cla8_or2 >> 0) & 0x01); - f_s_cla8_and5 = ((f_s_cla8_pg_logic3_or0 >> 0) & 0x01) & ((f_s_cla8_pg_logic1_or0 >> 0) & 0x01); - f_s_cla8_and6 = ((f_s_cla8_pg_logic0_and0 >> 0) & 0x01) & ((f_s_cla8_pg_logic2_or0 >> 0) & 0x01); - f_s_cla8_and7 = ((f_s_cla8_pg_logic3_or0 >> 0) & 0x01) & ((f_s_cla8_pg_logic1_or0 >> 0) & 0x01); - f_s_cla8_and8 = ((f_s_cla8_and6 >> 0) & 0x01) & ((f_s_cla8_and7 >> 0) & 0x01); - f_s_cla8_and9 = ((f_s_cla8_pg_logic1_and0 >> 0) & 0x01) & ((f_s_cla8_pg_logic3_or0 >> 0) & 0x01); - f_s_cla8_and10 = ((f_s_cla8_and9 >> 0) & 0x01) & ((f_s_cla8_pg_logic2_or0 >> 0) & 0x01); - f_s_cla8_and11 = ((f_s_cla8_pg_logic2_and0 >> 0) & 0x01) & ((f_s_cla8_pg_logic3_or0 >> 0) & 0x01); - f_s_cla8_or3 = ((f_s_cla8_and8 >> 0) & 0x01) | ((f_s_cla8_and11 >> 0) & 0x01); - f_s_cla8_or4 = ((f_s_cla8_and10 >> 0) & 0x01) | ((f_s_cla8_or3 >> 0) & 0x01); - f_s_cla8_or5 = ((f_s_cla8_pg_logic3_and0 >> 0) & 0x01) | ((f_s_cla8_or4 >> 0) & 0x01); - f_s_cla8_pg_logic4_or0 = ((a >> 4) & 0x01) | ((b >> 4) & 0x01); - f_s_cla8_pg_logic4_and0 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_s_cla8_pg_logic4_xor0 = ((a >> 4) & 0x01) ^ ((b >> 4) & 0x01); - f_s_cla8_xor4 = ((f_s_cla8_pg_logic4_xor0 >> 0) & 0x01) ^ ((f_s_cla8_or5 >> 0) & 0x01); - f_s_cla8_and12 = ((f_s_cla8_or5 >> 0) & 0x01) & ((f_s_cla8_pg_logic4_or0 >> 0) & 0x01); - f_s_cla8_or6 = ((f_s_cla8_pg_logic4_and0 >> 0) & 0x01) | ((f_s_cla8_and12 >> 0) & 0x01); - f_s_cla8_pg_logic5_or0 = ((a >> 5) & 0x01) | ((b >> 5) & 0x01); - f_s_cla8_pg_logic5_and0 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_s_cla8_pg_logic5_xor0 = ((a >> 5) & 0x01) ^ ((b >> 5) & 0x01); - f_s_cla8_xor5 = ((f_s_cla8_pg_logic5_xor0 >> 0) & 0x01) ^ ((f_s_cla8_or6 >> 0) & 0x01); - f_s_cla8_and13 = ((f_s_cla8_or5 >> 0) & 0x01) & ((f_s_cla8_pg_logic5_or0 >> 0) & 0x01); - f_s_cla8_and14 = ((f_s_cla8_and13 >> 0) & 0x01) & ((f_s_cla8_pg_logic4_or0 >> 0) & 0x01); - f_s_cla8_and15 = ((f_s_cla8_pg_logic4_and0 >> 0) & 0x01) & ((f_s_cla8_pg_logic5_or0 >> 0) & 0x01); - f_s_cla8_or7 = ((f_s_cla8_and14 >> 0) & 0x01) | ((f_s_cla8_and15 >> 0) & 0x01); - f_s_cla8_or8 = ((f_s_cla8_pg_logic5_and0 >> 0) & 0x01) | ((f_s_cla8_or7 >> 0) & 0x01); - f_s_cla8_pg_logic6_or0 = ((a >> 6) & 0x01) | ((b >> 6) & 0x01); - f_s_cla8_pg_logic6_and0 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_s_cla8_pg_logic6_xor0 = ((a >> 6) & 0x01) ^ ((b >> 6) & 0x01); - f_s_cla8_xor6 = ((f_s_cla8_pg_logic6_xor0 >> 0) & 0x01) ^ ((f_s_cla8_or8 >> 0) & 0x01); - f_s_cla8_and16 = ((f_s_cla8_or5 >> 0) & 0x01) & ((f_s_cla8_pg_logic5_or0 >> 0) & 0x01); - f_s_cla8_and17 = ((f_s_cla8_pg_logic6_or0 >> 0) & 0x01) & ((f_s_cla8_pg_logic4_or0 >> 0) & 0x01); - f_s_cla8_and18 = ((f_s_cla8_and16 >> 0) & 0x01) & ((f_s_cla8_and17 >> 0) & 0x01); - f_s_cla8_and19 = ((f_s_cla8_pg_logic4_and0 >> 0) & 0x01) & ((f_s_cla8_pg_logic6_or0 >> 0) & 0x01); - f_s_cla8_and20 = ((f_s_cla8_and19 >> 0) & 0x01) & ((f_s_cla8_pg_logic5_or0 >> 0) & 0x01); - f_s_cla8_and21 = ((f_s_cla8_pg_logic5_and0 >> 0) & 0x01) & ((f_s_cla8_pg_logic6_or0 >> 0) & 0x01); - f_s_cla8_or9 = ((f_s_cla8_and18 >> 0) & 0x01) | ((f_s_cla8_and20 >> 0) & 0x01); - f_s_cla8_or10 = ((f_s_cla8_or9 >> 0) & 0x01) | ((f_s_cla8_and21 >> 0) & 0x01); - f_s_cla8_or11 = ((f_s_cla8_pg_logic6_and0 >> 0) & 0x01) | ((f_s_cla8_or10 >> 0) & 0x01); - f_s_cla8_pg_logic7_or0 = ((a >> 7) & 0x01) | ((b >> 7) & 0x01); - f_s_cla8_pg_logic7_and0 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_s_cla8_pg_logic7_xor0 = ((a >> 7) & 0x01) ^ ((b >> 7) & 0x01); - f_s_cla8_xor7 = ((f_s_cla8_pg_logic7_xor0 >> 0) & 0x01) ^ ((f_s_cla8_or11 >> 0) & 0x01); - f_s_cla8_and22 = ((f_s_cla8_or5 >> 0) & 0x01) & ((f_s_cla8_pg_logic6_or0 >> 0) & 0x01); - f_s_cla8_and23 = ((f_s_cla8_pg_logic7_or0 >> 0) & 0x01) & ((f_s_cla8_pg_logic5_or0 >> 0) & 0x01); - f_s_cla8_and24 = ((f_s_cla8_and22 >> 0) & 0x01) & ((f_s_cla8_and23 >> 0) & 0x01); - f_s_cla8_and25 = ((f_s_cla8_and24 >> 0) & 0x01) & ((f_s_cla8_pg_logic4_or0 >> 0) & 0x01); - f_s_cla8_and26 = ((f_s_cla8_pg_logic4_and0 >> 0) & 0x01) & ((f_s_cla8_pg_logic6_or0 >> 0) & 0x01); - f_s_cla8_and27 = ((f_s_cla8_pg_logic7_or0 >> 0) & 0x01) & ((f_s_cla8_pg_logic5_or0 >> 0) & 0x01); - f_s_cla8_and28 = ((f_s_cla8_and26 >> 0) & 0x01) & ((f_s_cla8_and27 >> 0) & 0x01); - f_s_cla8_and29 = ((f_s_cla8_pg_logic5_and0 >> 0) & 0x01) & ((f_s_cla8_pg_logic7_or0 >> 0) & 0x01); - f_s_cla8_and30 = ((f_s_cla8_and29 >> 0) & 0x01) & ((f_s_cla8_pg_logic6_or0 >> 0) & 0x01); - f_s_cla8_and31 = ((f_s_cla8_pg_logic6_and0 >> 0) & 0x01) & ((f_s_cla8_pg_logic7_or0 >> 0) & 0x01); - f_s_cla8_or12 = ((f_s_cla8_and25 >> 0) & 0x01) | ((f_s_cla8_and30 >> 0) & 0x01); - f_s_cla8_or13 = ((f_s_cla8_and28 >> 0) & 0x01) | ((f_s_cla8_and31 >> 0) & 0x01); - f_s_cla8_or14 = ((f_s_cla8_or12 >> 0) & 0x01) | ((f_s_cla8_or13 >> 0) & 0x01); - f_s_cla8_or15 = ((f_s_cla8_pg_logic7_and0 >> 0) & 0x01) | ((f_s_cla8_or14 >> 0) & 0x01); - f_s_cla8_xor8 = ((a >> 7) & 0x01) ^ ((b >> 7) & 0x01); - f_s_cla8_xor9 = ((f_s_cla8_xor8 >> 0) & 0x01) ^ ((f_s_cla8_or15 >> 0) & 0x01); - - f_s_cla8_out |= ((f_s_cla8_pg_logic0_xor0 >> 0) & 0x01) << 0; - f_s_cla8_out |= ((f_s_cla8_xor1 >> 0) & 0x01) << 1; - f_s_cla8_out |= ((f_s_cla8_xor2 >> 0) & 0x01) << 2; - f_s_cla8_out |= ((f_s_cla8_xor3 >> 0) & 0x01) << 3; - f_s_cla8_out |= ((f_s_cla8_xor4 >> 0) & 0x01) << 4; - f_s_cla8_out |= ((f_s_cla8_xor5 >> 0) & 0x01) << 5; - f_s_cla8_out |= ((f_s_cla8_xor6 >> 0) & 0x01) << 6; - f_s_cla8_out |= ((f_s_cla8_xor7 >> 0) & 0x01) << 7; - f_s_cla8_out |= ((f_s_cla8_xor9 >> 0) & 0x01) << 8; - return f_s_cla8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 512 + result; - } - - assert(result == (int)f_s_cla8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cska4.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cska4.c deleted file mode 100644 index ec69e0c..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cska4.c +++ /dev/null @@ -1,88 +0,0 @@ -#include -#include - -int64_t f_s_cska4(int64_t a, int64_t b){ - uint8_t f_s_cska4_out = 0; - uint8_t f_s_cska4_xor0 = 0; - uint8_t f_s_cska4_ha0_xor0 = 0; - uint8_t f_s_cska4_ha0_and0 = 0; - uint8_t f_s_cska4_xor1 = 0; - uint8_t f_s_cska4_fa0_xor0 = 0; - uint8_t f_s_cska4_fa0_and0 = 0; - uint8_t f_s_cska4_fa0_xor1 = 0; - uint8_t f_s_cska4_fa0_and1 = 0; - uint8_t f_s_cska4_fa0_or0 = 0; - uint8_t f_s_cska4_xor2 = 0; - uint8_t f_s_cska4_fa1_xor0 = 0; - uint8_t f_s_cska4_fa1_and0 = 0; - uint8_t f_s_cska4_fa1_xor1 = 0; - uint8_t f_s_cska4_fa1_and1 = 0; - uint8_t f_s_cska4_fa1_or0 = 0; - uint8_t f_s_cska4_xor3 = 0; - uint8_t f_s_cska4_fa2_xor0 = 0; - uint8_t f_s_cska4_fa2_and0 = 0; - uint8_t f_s_cska4_fa2_xor1 = 0; - uint8_t f_s_cska4_fa2_and1 = 0; - uint8_t f_s_cska4_fa2_or0 = 0; - uint8_t f_s_cska4_and_propagate00 = 0; - uint8_t f_s_cska4_and_propagate01 = 0; - uint8_t f_s_cska4_and_propagate02 = 0; - uint8_t f_s_cska4_mux2to10_not0 = 0; - uint8_t f_s_cska4_mux2to10_and1 = 0; - uint8_t f_s_cska4_xor4 = 0; - uint8_t f_s_cska4_xor5 = 0; - - f_s_cska4_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_s_cska4_ha0_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_s_cska4_ha0_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_cska4_xor1 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_s_cska4_fa0_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_s_cska4_fa0_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_cska4_fa0_xor1 = ((f_s_cska4_fa0_xor0 >> 0) & 0x01) ^ ((f_s_cska4_ha0_and0 >> 0) & 0x01); - f_s_cska4_fa0_and1 = ((f_s_cska4_fa0_xor0 >> 0) & 0x01) & ((f_s_cska4_ha0_and0 >> 0) & 0x01); - f_s_cska4_fa0_or0 = ((f_s_cska4_fa0_and0 >> 0) & 0x01) | ((f_s_cska4_fa0_and1 >> 0) & 0x01); - f_s_cska4_xor2 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_s_cska4_fa1_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_s_cska4_fa1_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_cska4_fa1_xor1 = ((f_s_cska4_fa1_xor0 >> 0) & 0x01) ^ ((f_s_cska4_fa0_or0 >> 0) & 0x01); - f_s_cska4_fa1_and1 = ((f_s_cska4_fa1_xor0 >> 0) & 0x01) & ((f_s_cska4_fa0_or0 >> 0) & 0x01); - f_s_cska4_fa1_or0 = ((f_s_cska4_fa1_and0 >> 0) & 0x01) | ((f_s_cska4_fa1_and1 >> 0) & 0x01); - f_s_cska4_xor3 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_s_cska4_fa2_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_s_cska4_fa2_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_cska4_fa2_xor1 = ((f_s_cska4_fa2_xor0 >> 0) & 0x01) ^ ((f_s_cska4_fa1_or0 >> 0) & 0x01); - f_s_cska4_fa2_and1 = ((f_s_cska4_fa2_xor0 >> 0) & 0x01) & ((f_s_cska4_fa1_or0 >> 0) & 0x01); - f_s_cska4_fa2_or0 = ((f_s_cska4_fa2_and0 >> 0) & 0x01) | ((f_s_cska4_fa2_and1 >> 0) & 0x01); - f_s_cska4_and_propagate00 = ((f_s_cska4_xor0 >> 0) & 0x01) & ((f_s_cska4_xor2 >> 0) & 0x01); - f_s_cska4_and_propagate01 = ((f_s_cska4_xor1 >> 0) & 0x01) & ((f_s_cska4_xor3 >> 0) & 0x01); - f_s_cska4_and_propagate02 = ((f_s_cska4_and_propagate00 >> 0) & 0x01) & ((f_s_cska4_and_propagate01 >> 0) & 0x01); - f_s_cska4_mux2to10_not0 = ~(((f_s_cska4_and_propagate02 >> 0) & 0x01)) & 0x01; - f_s_cska4_mux2to10_and1 = ((f_s_cska4_fa2_or0 >> 0) & 0x01) & ((f_s_cska4_mux2to10_not0 >> 0) & 0x01); - f_s_cska4_xor4 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_s_cska4_xor5 = ((f_s_cska4_xor4 >> 0) & 0x01) ^ ((f_s_cska4_mux2to10_and1 >> 0) & 0x01); - - f_s_cska4_out |= ((f_s_cska4_ha0_xor0 >> 0) & 0x01) << 0; - f_s_cska4_out |= ((f_s_cska4_fa0_xor1 >> 0) & 0x01) << 1; - f_s_cska4_out |= ((f_s_cska4_fa1_xor1 >> 0) & 0x01) << 2; - f_s_cska4_out |= ((f_s_cska4_fa2_xor1 >> 0) & 0x01) << 3; - f_s_cska4_out |= ((f_s_cska4_xor5 >> 0) & 0x01) << 4; - return f_s_cska4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 32 + result; - } - - assert(result == (int)f_s_cska4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cska8.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cska8.c deleted file mode 100644 index a5278b4..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_cska8.c +++ /dev/null @@ -1,154 +0,0 @@ -#include -#include - -int64_t f_s_cska8(int64_t a, int64_t b){ - uint64_t f_s_cska8_out = 0; - uint8_t f_s_cska8_xor0 = 0; - uint8_t f_s_cska8_ha0_xor0 = 0; - uint8_t f_s_cska8_ha0_and0 = 0; - uint8_t f_s_cska8_xor1 = 0; - uint8_t f_s_cska8_fa0_xor0 = 0; - uint8_t f_s_cska8_fa0_and0 = 0; - uint8_t f_s_cska8_fa0_xor1 = 0; - uint8_t f_s_cska8_fa0_and1 = 0; - uint8_t f_s_cska8_fa0_or0 = 0; - uint8_t f_s_cska8_xor2 = 0; - uint8_t f_s_cska8_fa1_xor0 = 0; - uint8_t f_s_cska8_fa1_and0 = 0; - uint8_t f_s_cska8_fa1_xor1 = 0; - uint8_t f_s_cska8_fa1_and1 = 0; - uint8_t f_s_cska8_fa1_or0 = 0; - uint8_t f_s_cska8_xor3 = 0; - uint8_t f_s_cska8_fa2_xor0 = 0; - uint8_t f_s_cska8_fa2_and0 = 0; - uint8_t f_s_cska8_fa2_xor1 = 0; - uint8_t f_s_cska8_fa2_and1 = 0; - uint8_t f_s_cska8_fa2_or0 = 0; - uint8_t f_s_cska8_and_propagate00 = 0; - uint8_t f_s_cska8_and_propagate01 = 0; - uint8_t f_s_cska8_and_propagate02 = 0; - uint8_t f_s_cska8_mux2to10_not0 = 0; - uint8_t f_s_cska8_mux2to10_and1 = 0; - uint8_t f_s_cska8_xor4 = 0; - uint8_t f_s_cska8_fa3_xor0 = 0; - uint8_t f_s_cska8_fa3_and0 = 0; - uint8_t f_s_cska8_fa3_xor1 = 0; - uint8_t f_s_cska8_fa3_and1 = 0; - uint8_t f_s_cska8_fa3_or0 = 0; - uint8_t f_s_cska8_xor5 = 0; - uint8_t f_s_cska8_fa4_xor0 = 0; - uint8_t f_s_cska8_fa4_and0 = 0; - uint8_t f_s_cska8_fa4_xor1 = 0; - uint8_t f_s_cska8_fa4_and1 = 0; - uint8_t f_s_cska8_fa4_or0 = 0; - uint8_t f_s_cska8_xor6 = 0; - uint8_t f_s_cska8_fa5_xor0 = 0; - uint8_t f_s_cska8_fa5_and0 = 0; - uint8_t f_s_cska8_fa5_xor1 = 0; - uint8_t f_s_cska8_fa5_and1 = 0; - uint8_t f_s_cska8_fa5_or0 = 0; - uint8_t f_s_cska8_xor7 = 0; - uint8_t f_s_cska8_fa6_xor0 = 0; - uint8_t f_s_cska8_fa6_and0 = 0; - uint8_t f_s_cska8_fa6_xor1 = 0; - uint8_t f_s_cska8_fa6_and1 = 0; - uint8_t f_s_cska8_fa6_or0 = 0; - uint8_t f_s_cska8_and_propagate13 = 0; - uint8_t f_s_cska8_and_propagate14 = 0; - uint8_t f_s_cska8_and_propagate15 = 0; - uint8_t f_s_cska8_mux2to11_and0 = 0; - uint8_t f_s_cska8_mux2to11_not0 = 0; - uint8_t f_s_cska8_mux2to11_and1 = 0; - uint8_t f_s_cska8_mux2to11_xor0 = 0; - uint8_t f_s_cska8_xor8 = 0; - uint8_t f_s_cska8_xor9 = 0; - - f_s_cska8_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_s_cska8_ha0_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_s_cska8_ha0_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_cska8_xor1 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_s_cska8_fa0_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_s_cska8_fa0_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_cska8_fa0_xor1 = ((f_s_cska8_fa0_xor0 >> 0) & 0x01) ^ ((f_s_cska8_ha0_and0 >> 0) & 0x01); - f_s_cska8_fa0_and1 = ((f_s_cska8_fa0_xor0 >> 0) & 0x01) & ((f_s_cska8_ha0_and0 >> 0) & 0x01); - f_s_cska8_fa0_or0 = ((f_s_cska8_fa0_and0 >> 0) & 0x01) | ((f_s_cska8_fa0_and1 >> 0) & 0x01); - f_s_cska8_xor2 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_s_cska8_fa1_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_s_cska8_fa1_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_cska8_fa1_xor1 = ((f_s_cska8_fa1_xor0 >> 0) & 0x01) ^ ((f_s_cska8_fa0_or0 >> 0) & 0x01); - f_s_cska8_fa1_and1 = ((f_s_cska8_fa1_xor0 >> 0) & 0x01) & ((f_s_cska8_fa0_or0 >> 0) & 0x01); - f_s_cska8_fa1_or0 = ((f_s_cska8_fa1_and0 >> 0) & 0x01) | ((f_s_cska8_fa1_and1 >> 0) & 0x01); - f_s_cska8_xor3 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_s_cska8_fa2_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_s_cska8_fa2_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_cska8_fa2_xor1 = ((f_s_cska8_fa2_xor0 >> 0) & 0x01) ^ ((f_s_cska8_fa1_or0 >> 0) & 0x01); - f_s_cska8_fa2_and1 = ((f_s_cska8_fa2_xor0 >> 0) & 0x01) & ((f_s_cska8_fa1_or0 >> 0) & 0x01); - f_s_cska8_fa2_or0 = ((f_s_cska8_fa2_and0 >> 0) & 0x01) | ((f_s_cska8_fa2_and1 >> 0) & 0x01); - f_s_cska8_and_propagate00 = ((f_s_cska8_xor0 >> 0) & 0x01) & ((f_s_cska8_xor2 >> 0) & 0x01); - f_s_cska8_and_propagate01 = ((f_s_cska8_xor1 >> 0) & 0x01) & ((f_s_cska8_xor3 >> 0) & 0x01); - f_s_cska8_and_propagate02 = ((f_s_cska8_and_propagate00 >> 0) & 0x01) & ((f_s_cska8_and_propagate01 >> 0) & 0x01); - f_s_cska8_mux2to10_not0 = ~(((f_s_cska8_and_propagate02 >> 0) & 0x01)) & 0x01; - f_s_cska8_mux2to10_and1 = ((f_s_cska8_fa2_or0 >> 0) & 0x01) & ((f_s_cska8_mux2to10_not0 >> 0) & 0x01); - f_s_cska8_xor4 = ((a >> 4) & 0x01) ^ ((b >> 4) & 0x01); - f_s_cska8_fa3_xor0 = ((a >> 4) & 0x01) ^ ((b >> 4) & 0x01); - f_s_cska8_fa3_and0 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_s_cska8_fa3_xor1 = ((f_s_cska8_fa3_xor0 >> 0) & 0x01) ^ ((f_s_cska8_mux2to10_and1 >> 0) & 0x01); - f_s_cska8_fa3_and1 = ((f_s_cska8_fa3_xor0 >> 0) & 0x01) & ((f_s_cska8_mux2to10_and1 >> 0) & 0x01); - f_s_cska8_fa3_or0 = ((f_s_cska8_fa3_and0 >> 0) & 0x01) | ((f_s_cska8_fa3_and1 >> 0) & 0x01); - f_s_cska8_xor5 = ((a >> 5) & 0x01) ^ ((b >> 5) & 0x01); - f_s_cska8_fa4_xor0 = ((a >> 5) & 0x01) ^ ((b >> 5) & 0x01); - f_s_cska8_fa4_and0 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_s_cska8_fa4_xor1 = ((f_s_cska8_fa4_xor0 >> 0) & 0x01) ^ ((f_s_cska8_fa3_or0 >> 0) & 0x01); - f_s_cska8_fa4_and1 = ((f_s_cska8_fa4_xor0 >> 0) & 0x01) & ((f_s_cska8_fa3_or0 >> 0) & 0x01); - f_s_cska8_fa4_or0 = ((f_s_cska8_fa4_and0 >> 0) & 0x01) | ((f_s_cska8_fa4_and1 >> 0) & 0x01); - f_s_cska8_xor6 = ((a >> 6) & 0x01) ^ ((b >> 6) & 0x01); - f_s_cska8_fa5_xor0 = ((a >> 6) & 0x01) ^ ((b >> 6) & 0x01); - f_s_cska8_fa5_and0 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_s_cska8_fa5_xor1 = ((f_s_cska8_fa5_xor0 >> 0) & 0x01) ^ ((f_s_cska8_fa4_or0 >> 0) & 0x01); - f_s_cska8_fa5_and1 = ((f_s_cska8_fa5_xor0 >> 0) & 0x01) & ((f_s_cska8_fa4_or0 >> 0) & 0x01); - f_s_cska8_fa5_or0 = ((f_s_cska8_fa5_and0 >> 0) & 0x01) | ((f_s_cska8_fa5_and1 >> 0) & 0x01); - f_s_cska8_xor7 = ((a >> 7) & 0x01) ^ ((b >> 7) & 0x01); - f_s_cska8_fa6_xor0 = ((a >> 7) & 0x01) ^ ((b >> 7) & 0x01); - f_s_cska8_fa6_and0 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_s_cska8_fa6_xor1 = ((f_s_cska8_fa6_xor0 >> 0) & 0x01) ^ ((f_s_cska8_fa5_or0 >> 0) & 0x01); - f_s_cska8_fa6_and1 = ((f_s_cska8_fa6_xor0 >> 0) & 0x01) & ((f_s_cska8_fa5_or0 >> 0) & 0x01); - f_s_cska8_fa6_or0 = ((f_s_cska8_fa6_and0 >> 0) & 0x01) | ((f_s_cska8_fa6_and1 >> 0) & 0x01); - f_s_cska8_and_propagate13 = ((f_s_cska8_xor4 >> 0) & 0x01) & ((f_s_cska8_xor6 >> 0) & 0x01); - f_s_cska8_and_propagate14 = ((f_s_cska8_xor5 >> 0) & 0x01) & ((f_s_cska8_xor7 >> 0) & 0x01); - f_s_cska8_and_propagate15 = ((f_s_cska8_and_propagate13 >> 0) & 0x01) & ((f_s_cska8_and_propagate14 >> 0) & 0x01); - f_s_cska8_mux2to11_and0 = ((f_s_cska8_mux2to10_and1 >> 0) & 0x01) & ((f_s_cska8_and_propagate15 >> 0) & 0x01); - f_s_cska8_mux2to11_not0 = ~(((f_s_cska8_and_propagate15 >> 0) & 0x01)) & 0x01; - f_s_cska8_mux2to11_and1 = ((f_s_cska8_fa6_or0 >> 0) & 0x01) & ((f_s_cska8_mux2to11_not0 >> 0) & 0x01); - f_s_cska8_mux2to11_xor0 = ((f_s_cska8_mux2to11_and0 >> 0) & 0x01) ^ ((f_s_cska8_mux2to11_and1 >> 0) & 0x01); - f_s_cska8_xor8 = ((a >> 7) & 0x01) ^ ((b >> 7) & 0x01); - f_s_cska8_xor9 = ((f_s_cska8_xor8 >> 0) & 0x01) ^ ((f_s_cska8_mux2to11_xor0 >> 0) & 0x01); - - f_s_cska8_out |= ((f_s_cska8_ha0_xor0 >> 0) & 0x01) << 0; - f_s_cska8_out |= ((f_s_cska8_fa0_xor1 >> 0) & 0x01) << 1; - f_s_cska8_out |= ((f_s_cska8_fa1_xor1 >> 0) & 0x01) << 2; - f_s_cska8_out |= ((f_s_cska8_fa2_xor1 >> 0) & 0x01) << 3; - f_s_cska8_out |= ((f_s_cska8_fa3_xor1 >> 0) & 0x01) << 4; - f_s_cska8_out |= ((f_s_cska8_fa4_xor1 >> 0) & 0x01) << 5; - f_s_cska8_out |= ((f_s_cska8_fa5_xor1 >> 0) & 0x01) << 6; - f_s_cska8_out |= ((f_s_cska8_fa6_xor1 >> 0) & 0x01) << 7; - f_s_cska8_out |= ((f_s_cska8_xor9 >> 0) & 0x01) << 8; - return f_s_cska8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 512 + result; - } - - assert(result == (int)f_s_cska8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_pg_rca4.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_pg_rca4.c deleted file mode 100644 index 5a865b3..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_pg_rca4.c +++ /dev/null @@ -1,70 +0,0 @@ -#include -#include - -int64_t f_s_pg_rca4(int64_t a, int64_t b){ - uint8_t f_s_pg_rca4_out = 0; - uint8_t f_s_pg_rca4_pg_fa0_xor0 = 0; - uint8_t f_s_pg_rca4_pg_fa0_and0 = 0; - uint8_t f_s_pg_rca4_pg_fa1_xor0 = 0; - uint8_t f_s_pg_rca4_pg_fa1_and0 = 0; - uint8_t f_s_pg_rca4_pg_fa1_xor1 = 0; - uint8_t f_s_pg_rca4_and1 = 0; - uint8_t f_s_pg_rca4_or1 = 0; - uint8_t f_s_pg_rca4_pg_fa2_xor0 = 0; - uint8_t f_s_pg_rca4_pg_fa2_and0 = 0; - uint8_t f_s_pg_rca4_pg_fa2_xor1 = 0; - uint8_t f_s_pg_rca4_and2 = 0; - uint8_t f_s_pg_rca4_or2 = 0; - uint8_t f_s_pg_rca4_pg_fa3_xor0 = 0; - uint8_t f_s_pg_rca4_pg_fa3_and0 = 0; - uint8_t f_s_pg_rca4_pg_fa3_xor1 = 0; - uint8_t f_s_pg_rca4_and3 = 0; - uint8_t f_s_pg_rca4_or3 = 0; - uint8_t f_s_pg_rca4_xor0 = 0; - uint8_t f_s_pg_rca4_xor1 = 0; - - f_s_pg_rca4_pg_fa0_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_s_pg_rca4_pg_fa0_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_pg_rca4_pg_fa1_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_s_pg_rca4_pg_fa1_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_pg_rca4_pg_fa1_xor1 = ((f_s_pg_rca4_pg_fa1_xor0 >> 0) & 0x01) ^ ((f_s_pg_rca4_pg_fa0_and0 >> 0) & 0x01); - f_s_pg_rca4_and1 = ((f_s_pg_rca4_pg_fa0_and0 >> 0) & 0x01) & ((f_s_pg_rca4_pg_fa1_xor0 >> 0) & 0x01); - f_s_pg_rca4_or1 = ((f_s_pg_rca4_and1 >> 0) & 0x01) | ((f_s_pg_rca4_pg_fa1_and0 >> 0) & 0x01); - f_s_pg_rca4_pg_fa2_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_s_pg_rca4_pg_fa2_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_pg_rca4_pg_fa2_xor1 = ((f_s_pg_rca4_pg_fa2_xor0 >> 0) & 0x01) ^ ((f_s_pg_rca4_or1 >> 0) & 0x01); - f_s_pg_rca4_and2 = ((f_s_pg_rca4_or1 >> 0) & 0x01) & ((f_s_pg_rca4_pg_fa2_xor0 >> 0) & 0x01); - f_s_pg_rca4_or2 = ((f_s_pg_rca4_and2 >> 0) & 0x01) | ((f_s_pg_rca4_pg_fa2_and0 >> 0) & 0x01); - f_s_pg_rca4_pg_fa3_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_s_pg_rca4_pg_fa3_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_pg_rca4_pg_fa3_xor1 = ((f_s_pg_rca4_pg_fa3_xor0 >> 0) & 0x01) ^ ((f_s_pg_rca4_or2 >> 0) & 0x01); - f_s_pg_rca4_and3 = ((f_s_pg_rca4_or2 >> 0) & 0x01) & ((f_s_pg_rca4_pg_fa3_xor0 >> 0) & 0x01); - f_s_pg_rca4_or3 = ((f_s_pg_rca4_and3 >> 0) & 0x01) | ((f_s_pg_rca4_pg_fa3_and0 >> 0) & 0x01); - f_s_pg_rca4_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_s_pg_rca4_xor1 = ((f_s_pg_rca4_xor0 >> 0) & 0x01) ^ ((f_s_pg_rca4_or3 >> 0) & 0x01); - - f_s_pg_rca4_out |= ((f_s_pg_rca4_pg_fa0_xor0 >> 0) & 0x01) << 0; - f_s_pg_rca4_out |= ((f_s_pg_rca4_pg_fa1_xor1 >> 0) & 0x01) << 1; - f_s_pg_rca4_out |= ((f_s_pg_rca4_pg_fa2_xor1 >> 0) & 0x01) << 2; - f_s_pg_rca4_out |= ((f_s_pg_rca4_pg_fa3_xor1 >> 0) & 0x01) << 3; - f_s_pg_rca4_out |= ((f_s_pg_rca4_xor1 >> 0) & 0x01) << 4; - return f_s_pg_rca4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 32 + result; - } - - assert(result == (int)f_s_pg_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_pg_rca8.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_pg_rca8.c deleted file mode 100644 index 1b498fb..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_pg_rca8.c +++ /dev/null @@ -1,114 +0,0 @@ -#include -#include - -int64_t f_s_pg_rca8(int64_t a, int64_t b){ - uint64_t f_s_pg_rca8_out = 0; - uint8_t f_s_pg_rca8_pg_fa0_xor0 = 0; - uint8_t f_s_pg_rca8_pg_fa0_and0 = 0; - uint8_t f_s_pg_rca8_pg_fa1_xor0 = 0; - uint8_t f_s_pg_rca8_pg_fa1_and0 = 0; - uint8_t f_s_pg_rca8_pg_fa1_xor1 = 0; - uint8_t f_s_pg_rca8_and1 = 0; - uint8_t f_s_pg_rca8_or1 = 0; - uint8_t f_s_pg_rca8_pg_fa2_xor0 = 0; - uint8_t f_s_pg_rca8_pg_fa2_and0 = 0; - uint8_t f_s_pg_rca8_pg_fa2_xor1 = 0; - uint8_t f_s_pg_rca8_and2 = 0; - uint8_t f_s_pg_rca8_or2 = 0; - uint8_t f_s_pg_rca8_pg_fa3_xor0 = 0; - uint8_t f_s_pg_rca8_pg_fa3_and0 = 0; - uint8_t f_s_pg_rca8_pg_fa3_xor1 = 0; - uint8_t f_s_pg_rca8_and3 = 0; - uint8_t f_s_pg_rca8_or3 = 0; - uint8_t f_s_pg_rca8_pg_fa4_xor0 = 0; - uint8_t f_s_pg_rca8_pg_fa4_and0 = 0; - uint8_t f_s_pg_rca8_pg_fa4_xor1 = 0; - uint8_t f_s_pg_rca8_and4 = 0; - uint8_t f_s_pg_rca8_or4 = 0; - uint8_t f_s_pg_rca8_pg_fa5_xor0 = 0; - uint8_t f_s_pg_rca8_pg_fa5_and0 = 0; - uint8_t f_s_pg_rca8_pg_fa5_xor1 = 0; - uint8_t f_s_pg_rca8_and5 = 0; - uint8_t f_s_pg_rca8_or5 = 0; - uint8_t f_s_pg_rca8_pg_fa6_xor0 = 0; - uint8_t f_s_pg_rca8_pg_fa6_and0 = 0; - uint8_t f_s_pg_rca8_pg_fa6_xor1 = 0; - uint8_t f_s_pg_rca8_and6 = 0; - uint8_t f_s_pg_rca8_or6 = 0; - uint8_t f_s_pg_rca8_pg_fa7_xor0 = 0; - uint8_t f_s_pg_rca8_pg_fa7_and0 = 0; - uint8_t f_s_pg_rca8_pg_fa7_xor1 = 0; - uint8_t f_s_pg_rca8_and7 = 0; - uint8_t f_s_pg_rca8_or7 = 0; - uint8_t f_s_pg_rca8_xor0 = 0; - uint8_t f_s_pg_rca8_xor1 = 0; - - f_s_pg_rca8_pg_fa0_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_s_pg_rca8_pg_fa0_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_pg_rca8_pg_fa1_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_s_pg_rca8_pg_fa1_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_pg_rca8_pg_fa1_xor1 = ((f_s_pg_rca8_pg_fa1_xor0 >> 0) & 0x01) ^ ((f_s_pg_rca8_pg_fa0_and0 >> 0) & 0x01); - f_s_pg_rca8_and1 = ((f_s_pg_rca8_pg_fa0_and0 >> 0) & 0x01) & ((f_s_pg_rca8_pg_fa1_xor0 >> 0) & 0x01); - f_s_pg_rca8_or1 = ((f_s_pg_rca8_and1 >> 0) & 0x01) | ((f_s_pg_rca8_pg_fa1_and0 >> 0) & 0x01); - f_s_pg_rca8_pg_fa2_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_s_pg_rca8_pg_fa2_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_pg_rca8_pg_fa2_xor1 = ((f_s_pg_rca8_pg_fa2_xor0 >> 0) & 0x01) ^ ((f_s_pg_rca8_or1 >> 0) & 0x01); - f_s_pg_rca8_and2 = ((f_s_pg_rca8_or1 >> 0) & 0x01) & ((f_s_pg_rca8_pg_fa2_xor0 >> 0) & 0x01); - f_s_pg_rca8_or2 = ((f_s_pg_rca8_and2 >> 0) & 0x01) | ((f_s_pg_rca8_pg_fa2_and0 >> 0) & 0x01); - f_s_pg_rca8_pg_fa3_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_s_pg_rca8_pg_fa3_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_pg_rca8_pg_fa3_xor1 = ((f_s_pg_rca8_pg_fa3_xor0 >> 0) & 0x01) ^ ((f_s_pg_rca8_or2 >> 0) & 0x01); - f_s_pg_rca8_and3 = ((f_s_pg_rca8_or2 >> 0) & 0x01) & ((f_s_pg_rca8_pg_fa3_xor0 >> 0) & 0x01); - f_s_pg_rca8_or3 = ((f_s_pg_rca8_and3 >> 0) & 0x01) | ((f_s_pg_rca8_pg_fa3_and0 >> 0) & 0x01); - f_s_pg_rca8_pg_fa4_xor0 = ((a >> 4) & 0x01) ^ ((b >> 4) & 0x01); - f_s_pg_rca8_pg_fa4_and0 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_s_pg_rca8_pg_fa4_xor1 = ((f_s_pg_rca8_pg_fa4_xor0 >> 0) & 0x01) ^ ((f_s_pg_rca8_or3 >> 0) & 0x01); - f_s_pg_rca8_and4 = ((f_s_pg_rca8_or3 >> 0) & 0x01) & ((f_s_pg_rca8_pg_fa4_xor0 >> 0) & 0x01); - f_s_pg_rca8_or4 = ((f_s_pg_rca8_and4 >> 0) & 0x01) | ((f_s_pg_rca8_pg_fa4_and0 >> 0) & 0x01); - f_s_pg_rca8_pg_fa5_xor0 = ((a >> 5) & 0x01) ^ ((b >> 5) & 0x01); - f_s_pg_rca8_pg_fa5_and0 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_s_pg_rca8_pg_fa5_xor1 = ((f_s_pg_rca8_pg_fa5_xor0 >> 0) & 0x01) ^ ((f_s_pg_rca8_or4 >> 0) & 0x01); - f_s_pg_rca8_and5 = ((f_s_pg_rca8_or4 >> 0) & 0x01) & ((f_s_pg_rca8_pg_fa5_xor0 >> 0) & 0x01); - f_s_pg_rca8_or5 = ((f_s_pg_rca8_and5 >> 0) & 0x01) | ((f_s_pg_rca8_pg_fa5_and0 >> 0) & 0x01); - f_s_pg_rca8_pg_fa6_xor0 = ((a >> 6) & 0x01) ^ ((b >> 6) & 0x01); - f_s_pg_rca8_pg_fa6_and0 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_s_pg_rca8_pg_fa6_xor1 = ((f_s_pg_rca8_pg_fa6_xor0 >> 0) & 0x01) ^ ((f_s_pg_rca8_or5 >> 0) & 0x01); - f_s_pg_rca8_and6 = ((f_s_pg_rca8_or5 >> 0) & 0x01) & ((f_s_pg_rca8_pg_fa6_xor0 >> 0) & 0x01); - f_s_pg_rca8_or6 = ((f_s_pg_rca8_and6 >> 0) & 0x01) | ((f_s_pg_rca8_pg_fa6_and0 >> 0) & 0x01); - f_s_pg_rca8_pg_fa7_xor0 = ((a >> 7) & 0x01) ^ ((b >> 7) & 0x01); - f_s_pg_rca8_pg_fa7_and0 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_s_pg_rca8_pg_fa7_xor1 = ((f_s_pg_rca8_pg_fa7_xor0 >> 0) & 0x01) ^ ((f_s_pg_rca8_or6 >> 0) & 0x01); - f_s_pg_rca8_and7 = ((f_s_pg_rca8_or6 >> 0) & 0x01) & ((f_s_pg_rca8_pg_fa7_xor0 >> 0) & 0x01); - f_s_pg_rca8_or7 = ((f_s_pg_rca8_and7 >> 0) & 0x01) | ((f_s_pg_rca8_pg_fa7_and0 >> 0) & 0x01); - f_s_pg_rca8_xor0 = ((a >> 7) & 0x01) ^ ((b >> 7) & 0x01); - f_s_pg_rca8_xor1 = ((f_s_pg_rca8_xor0 >> 0) & 0x01) ^ ((f_s_pg_rca8_or7 >> 0) & 0x01); - - f_s_pg_rca8_out |= ((f_s_pg_rca8_pg_fa0_xor0 >> 0) & 0x01) << 0; - f_s_pg_rca8_out |= ((f_s_pg_rca8_pg_fa1_xor1 >> 0) & 0x01) << 1; - f_s_pg_rca8_out |= ((f_s_pg_rca8_pg_fa2_xor1 >> 0) & 0x01) << 2; - f_s_pg_rca8_out |= ((f_s_pg_rca8_pg_fa3_xor1 >> 0) & 0x01) << 3; - f_s_pg_rca8_out |= ((f_s_pg_rca8_pg_fa4_xor1 >> 0) & 0x01) << 4; - f_s_pg_rca8_out |= ((f_s_pg_rca8_pg_fa5_xor1 >> 0) & 0x01) << 5; - f_s_pg_rca8_out |= ((f_s_pg_rca8_pg_fa6_xor1 >> 0) & 0x01) << 6; - f_s_pg_rca8_out |= ((f_s_pg_rca8_pg_fa7_xor1 >> 0) & 0x01) << 7; - f_s_pg_rca8_out |= ((f_s_pg_rca8_xor1 >> 0) & 0x01) << 8; - return f_s_pg_rca8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 512 + result; - } - - assert(result == (int)f_s_pg_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_rca4.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_rca4.c deleted file mode 100644 index c3cc032..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_rca4.c +++ /dev/null @@ -1,70 +0,0 @@ -#include -#include - -int64_t f_s_rca4(int64_t a, int64_t b){ - uint8_t f_s_rca4_out = 0; - uint8_t f_s_rca4_ha_xor0 = 0; - uint8_t f_s_rca4_ha_and0 = 0; - uint8_t f_s_rca4_fa1_xor0 = 0; - uint8_t f_s_rca4_fa1_and0 = 0; - uint8_t f_s_rca4_fa1_xor1 = 0; - uint8_t f_s_rca4_fa1_and1 = 0; - uint8_t f_s_rca4_fa1_or0 = 0; - uint8_t f_s_rca4_fa2_xor0 = 0; - uint8_t f_s_rca4_fa2_and0 = 0; - uint8_t f_s_rca4_fa2_xor1 = 0; - uint8_t f_s_rca4_fa2_and1 = 0; - uint8_t f_s_rca4_fa2_or0 = 0; - uint8_t f_s_rca4_fa3_xor0 = 0; - uint8_t f_s_rca4_fa3_and0 = 0; - uint8_t f_s_rca4_fa3_xor1 = 0; - uint8_t f_s_rca4_fa3_and1 = 0; - uint8_t f_s_rca4_fa3_or0 = 0; - uint8_t f_s_rca4_xor0 = 0; - uint8_t f_s_rca4_xor1 = 0; - - f_s_rca4_ha_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_s_rca4_ha_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_rca4_fa1_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_s_rca4_fa1_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_rca4_fa1_xor1 = ((f_s_rca4_fa1_xor0 >> 0) & 0x01) ^ ((f_s_rca4_ha_and0 >> 0) & 0x01); - f_s_rca4_fa1_and1 = ((f_s_rca4_fa1_xor0 >> 0) & 0x01) & ((f_s_rca4_ha_and0 >> 0) & 0x01); - f_s_rca4_fa1_or0 = ((f_s_rca4_fa1_and0 >> 0) & 0x01) | ((f_s_rca4_fa1_and1 >> 0) & 0x01); - f_s_rca4_fa2_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_s_rca4_fa2_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_rca4_fa2_xor1 = ((f_s_rca4_fa2_xor0 >> 0) & 0x01) ^ ((f_s_rca4_fa1_or0 >> 0) & 0x01); - f_s_rca4_fa2_and1 = ((f_s_rca4_fa2_xor0 >> 0) & 0x01) & ((f_s_rca4_fa1_or0 >> 0) & 0x01); - f_s_rca4_fa2_or0 = ((f_s_rca4_fa2_and0 >> 0) & 0x01) | ((f_s_rca4_fa2_and1 >> 0) & 0x01); - f_s_rca4_fa3_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_s_rca4_fa3_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_rca4_fa3_xor1 = ((f_s_rca4_fa3_xor0 >> 0) & 0x01) ^ ((f_s_rca4_fa2_or0 >> 0) & 0x01); - f_s_rca4_fa3_and1 = ((f_s_rca4_fa3_xor0 >> 0) & 0x01) & ((f_s_rca4_fa2_or0 >> 0) & 0x01); - f_s_rca4_fa3_or0 = ((f_s_rca4_fa3_and0 >> 0) & 0x01) | ((f_s_rca4_fa3_and1 >> 0) & 0x01); - f_s_rca4_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_s_rca4_xor1 = ((f_s_rca4_xor0 >> 0) & 0x01) ^ ((f_s_rca4_fa3_or0 >> 0) & 0x01); - - f_s_rca4_out |= ((f_s_rca4_ha_xor0 >> 0) & 0x01) << 0; - f_s_rca4_out |= ((f_s_rca4_fa1_xor1 >> 0) & 0x01) << 1; - f_s_rca4_out |= ((f_s_rca4_fa2_xor1 >> 0) & 0x01) << 2; - f_s_rca4_out |= ((f_s_rca4_fa3_xor1 >> 0) & 0x01) << 3; - f_s_rca4_out |= ((f_s_rca4_xor1 >> 0) & 0x01) << 4; - return f_s_rca4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 32 + result; - } - - assert(result == (int)f_s_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_rca8.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_rca8.c deleted file mode 100644 index af254cf..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_s_rca8.c +++ /dev/null @@ -1,114 +0,0 @@ -#include -#include - -int64_t f_s_rca8(int64_t a, int64_t b){ - uint64_t f_s_rca8_out = 0; - uint8_t f_s_rca8_ha_xor0 = 0; - uint8_t f_s_rca8_ha_and0 = 0; - uint8_t f_s_rca8_fa1_xor0 = 0; - uint8_t f_s_rca8_fa1_and0 = 0; - uint8_t f_s_rca8_fa1_xor1 = 0; - uint8_t f_s_rca8_fa1_and1 = 0; - uint8_t f_s_rca8_fa1_or0 = 0; - uint8_t f_s_rca8_fa2_xor0 = 0; - uint8_t f_s_rca8_fa2_and0 = 0; - uint8_t f_s_rca8_fa2_xor1 = 0; - uint8_t f_s_rca8_fa2_and1 = 0; - uint8_t f_s_rca8_fa2_or0 = 0; - uint8_t f_s_rca8_fa3_xor0 = 0; - uint8_t f_s_rca8_fa3_and0 = 0; - uint8_t f_s_rca8_fa3_xor1 = 0; - uint8_t f_s_rca8_fa3_and1 = 0; - uint8_t f_s_rca8_fa3_or0 = 0; - uint8_t f_s_rca8_fa4_xor0 = 0; - uint8_t f_s_rca8_fa4_and0 = 0; - uint8_t f_s_rca8_fa4_xor1 = 0; - uint8_t f_s_rca8_fa4_and1 = 0; - uint8_t f_s_rca8_fa4_or0 = 0; - uint8_t f_s_rca8_fa5_xor0 = 0; - uint8_t f_s_rca8_fa5_and0 = 0; - uint8_t f_s_rca8_fa5_xor1 = 0; - uint8_t f_s_rca8_fa5_and1 = 0; - uint8_t f_s_rca8_fa5_or0 = 0; - uint8_t f_s_rca8_fa6_xor0 = 0; - uint8_t f_s_rca8_fa6_and0 = 0; - uint8_t f_s_rca8_fa6_xor1 = 0; - uint8_t f_s_rca8_fa6_and1 = 0; - uint8_t f_s_rca8_fa6_or0 = 0; - uint8_t f_s_rca8_fa7_xor0 = 0; - uint8_t f_s_rca8_fa7_and0 = 0; - uint8_t f_s_rca8_fa7_xor1 = 0; - uint8_t f_s_rca8_fa7_and1 = 0; - uint8_t f_s_rca8_fa7_or0 = 0; - uint8_t f_s_rca8_xor0 = 0; - uint8_t f_s_rca8_xor1 = 0; - - f_s_rca8_ha_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_s_rca8_ha_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_rca8_fa1_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_s_rca8_fa1_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_rca8_fa1_xor1 = ((f_s_rca8_fa1_xor0 >> 0) & 0x01) ^ ((f_s_rca8_ha_and0 >> 0) & 0x01); - f_s_rca8_fa1_and1 = ((f_s_rca8_fa1_xor0 >> 0) & 0x01) & ((f_s_rca8_ha_and0 >> 0) & 0x01); - f_s_rca8_fa1_or0 = ((f_s_rca8_fa1_and0 >> 0) & 0x01) | ((f_s_rca8_fa1_and1 >> 0) & 0x01); - f_s_rca8_fa2_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_s_rca8_fa2_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_rca8_fa2_xor1 = ((f_s_rca8_fa2_xor0 >> 0) & 0x01) ^ ((f_s_rca8_fa1_or0 >> 0) & 0x01); - f_s_rca8_fa2_and1 = ((f_s_rca8_fa2_xor0 >> 0) & 0x01) & ((f_s_rca8_fa1_or0 >> 0) & 0x01); - f_s_rca8_fa2_or0 = ((f_s_rca8_fa2_and0 >> 0) & 0x01) | ((f_s_rca8_fa2_and1 >> 0) & 0x01); - f_s_rca8_fa3_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_s_rca8_fa3_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_rca8_fa3_xor1 = ((f_s_rca8_fa3_xor0 >> 0) & 0x01) ^ ((f_s_rca8_fa2_or0 >> 0) & 0x01); - f_s_rca8_fa3_and1 = ((f_s_rca8_fa3_xor0 >> 0) & 0x01) & ((f_s_rca8_fa2_or0 >> 0) & 0x01); - f_s_rca8_fa3_or0 = ((f_s_rca8_fa3_and0 >> 0) & 0x01) | ((f_s_rca8_fa3_and1 >> 0) & 0x01); - f_s_rca8_fa4_xor0 = ((a >> 4) & 0x01) ^ ((b >> 4) & 0x01); - f_s_rca8_fa4_and0 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_s_rca8_fa4_xor1 = ((f_s_rca8_fa4_xor0 >> 0) & 0x01) ^ ((f_s_rca8_fa3_or0 >> 0) & 0x01); - f_s_rca8_fa4_and1 = ((f_s_rca8_fa4_xor0 >> 0) & 0x01) & ((f_s_rca8_fa3_or0 >> 0) & 0x01); - f_s_rca8_fa4_or0 = ((f_s_rca8_fa4_and0 >> 0) & 0x01) | ((f_s_rca8_fa4_and1 >> 0) & 0x01); - f_s_rca8_fa5_xor0 = ((a >> 5) & 0x01) ^ ((b >> 5) & 0x01); - f_s_rca8_fa5_and0 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_s_rca8_fa5_xor1 = ((f_s_rca8_fa5_xor0 >> 0) & 0x01) ^ ((f_s_rca8_fa4_or0 >> 0) & 0x01); - f_s_rca8_fa5_and1 = ((f_s_rca8_fa5_xor0 >> 0) & 0x01) & ((f_s_rca8_fa4_or0 >> 0) & 0x01); - f_s_rca8_fa5_or0 = ((f_s_rca8_fa5_and0 >> 0) & 0x01) | ((f_s_rca8_fa5_and1 >> 0) & 0x01); - f_s_rca8_fa6_xor0 = ((a >> 6) & 0x01) ^ ((b >> 6) & 0x01); - f_s_rca8_fa6_and0 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_s_rca8_fa6_xor1 = ((f_s_rca8_fa6_xor0 >> 0) & 0x01) ^ ((f_s_rca8_fa5_or0 >> 0) & 0x01); - f_s_rca8_fa6_and1 = ((f_s_rca8_fa6_xor0 >> 0) & 0x01) & ((f_s_rca8_fa5_or0 >> 0) & 0x01); - f_s_rca8_fa6_or0 = ((f_s_rca8_fa6_and0 >> 0) & 0x01) | ((f_s_rca8_fa6_and1 >> 0) & 0x01); - f_s_rca8_fa7_xor0 = ((a >> 7) & 0x01) ^ ((b >> 7) & 0x01); - f_s_rca8_fa7_and0 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_s_rca8_fa7_xor1 = ((f_s_rca8_fa7_xor0 >> 0) & 0x01) ^ ((f_s_rca8_fa6_or0 >> 0) & 0x01); - f_s_rca8_fa7_and1 = ((f_s_rca8_fa7_xor0 >> 0) & 0x01) & ((f_s_rca8_fa6_or0 >> 0) & 0x01); - f_s_rca8_fa7_or0 = ((f_s_rca8_fa7_and0 >> 0) & 0x01) | ((f_s_rca8_fa7_and1 >> 0) & 0x01); - f_s_rca8_xor0 = ((a >> 7) & 0x01) ^ ((b >> 7) & 0x01); - f_s_rca8_xor1 = ((f_s_rca8_xor0 >> 0) & 0x01) ^ ((f_s_rca8_fa7_or0 >> 0) & 0x01); - - f_s_rca8_out |= ((f_s_rca8_ha_xor0 >> 0) & 0x01) << 0; - f_s_rca8_out |= ((f_s_rca8_fa1_xor1 >> 0) & 0x01) << 1; - f_s_rca8_out |= ((f_s_rca8_fa2_xor1 >> 0) & 0x01) << 2; - f_s_rca8_out |= ((f_s_rca8_fa3_xor1 >> 0) & 0x01) << 3; - f_s_rca8_out |= ((f_s_rca8_fa4_xor1 >> 0) & 0x01) << 4; - f_s_rca8_out |= ((f_s_rca8_fa5_xor1 >> 0) & 0x01) << 5; - f_s_rca8_out |= ((f_s_rca8_fa6_xor1 >> 0) & 0x01) << 6; - f_s_rca8_out |= ((f_s_rca8_fa7_xor1 >> 0) & 0x01) << 7; - f_s_rca8_out |= ((f_s_rca8_xor1 >> 0) & 0x01) << 8; - return f_s_rca8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 512 + result; - } - - assert(result == (int)f_s_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cla4.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cla4.c deleted file mode 100644 index 6b915d4..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cla4.c +++ /dev/null @@ -1,90 +0,0 @@ -#include -#include - -uint64_t f_u_cla4(uint64_t a, uint64_t b){ - uint8_t f_u_cla4_out = 0; - uint8_t f_u_cla4_pg_logic0_or0 = 0; - uint8_t f_u_cla4_pg_logic0_and0 = 0; - uint8_t f_u_cla4_pg_logic0_xor0 = 0; - uint8_t f_u_cla4_pg_logic1_or0 = 0; - uint8_t f_u_cla4_pg_logic1_and0 = 0; - uint8_t f_u_cla4_pg_logic1_xor0 = 0; - uint8_t f_u_cla4_xor1 = 0; - uint8_t f_u_cla4_and0 = 0; - uint8_t f_u_cla4_or0 = 0; - uint8_t f_u_cla4_pg_logic2_or0 = 0; - uint8_t f_u_cla4_pg_logic2_and0 = 0; - uint8_t f_u_cla4_pg_logic2_xor0 = 0; - uint8_t f_u_cla4_xor2 = 0; - uint8_t f_u_cla4_and1 = 0; - uint8_t f_u_cla4_and2 = 0; - uint8_t f_u_cla4_and3 = 0; - uint8_t f_u_cla4_and4 = 0; - uint8_t f_u_cla4_or1 = 0; - uint8_t f_u_cla4_or2 = 0; - uint8_t f_u_cla4_pg_logic3_or0 = 0; - uint8_t f_u_cla4_pg_logic3_and0 = 0; - uint8_t f_u_cla4_pg_logic3_xor0 = 0; - uint8_t f_u_cla4_xor3 = 0; - uint8_t f_u_cla4_and5 = 0; - uint8_t f_u_cla4_and6 = 0; - uint8_t f_u_cla4_and7 = 0; - uint8_t f_u_cla4_and8 = 0; - uint8_t f_u_cla4_and9 = 0; - uint8_t f_u_cla4_and10 = 0; - uint8_t f_u_cla4_and11 = 0; - uint8_t f_u_cla4_or3 = 0; - uint8_t f_u_cla4_or4 = 0; - uint8_t f_u_cla4_or5 = 0; - - f_u_cla4_pg_logic0_or0 = ((a >> 0) & 0x01) | ((b >> 0) & 0x01); - f_u_cla4_pg_logic0_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_cla4_pg_logic0_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_u_cla4_pg_logic1_or0 = ((a >> 1) & 0x01) | ((b >> 1) & 0x01); - f_u_cla4_pg_logic1_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_cla4_pg_logic1_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_u_cla4_xor1 = ((f_u_cla4_pg_logic1_xor0 >> 0) & 0x01) ^ ((f_u_cla4_pg_logic0_and0 >> 0) & 0x01); - f_u_cla4_and0 = ((f_u_cla4_pg_logic0_and0 >> 0) & 0x01) & ((f_u_cla4_pg_logic1_or0 >> 0) & 0x01); - f_u_cla4_or0 = ((f_u_cla4_pg_logic1_and0 >> 0) & 0x01) | ((f_u_cla4_and0 >> 0) & 0x01); - f_u_cla4_pg_logic2_or0 = ((a >> 2) & 0x01) | ((b >> 2) & 0x01); - f_u_cla4_pg_logic2_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_cla4_pg_logic2_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_u_cla4_xor2 = ((f_u_cla4_pg_logic2_xor0 >> 0) & 0x01) ^ ((f_u_cla4_or0 >> 0) & 0x01); - f_u_cla4_and1 = ((f_u_cla4_pg_logic2_or0 >> 0) & 0x01) & ((f_u_cla4_pg_logic0_or0 >> 0) & 0x01); - f_u_cla4_and2 = ((f_u_cla4_pg_logic0_and0 >> 0) & 0x01) & ((f_u_cla4_pg_logic2_or0 >> 0) & 0x01); - f_u_cla4_and3 = ((f_u_cla4_and2 >> 0) & 0x01) & ((f_u_cla4_pg_logic1_or0 >> 0) & 0x01); - f_u_cla4_and4 = ((f_u_cla4_pg_logic1_and0 >> 0) & 0x01) & ((f_u_cla4_pg_logic2_or0 >> 0) & 0x01); - f_u_cla4_or1 = ((f_u_cla4_and3 >> 0) & 0x01) | ((f_u_cla4_and4 >> 0) & 0x01); - f_u_cla4_or2 = ((f_u_cla4_pg_logic2_and0 >> 0) & 0x01) | ((f_u_cla4_or1 >> 0) & 0x01); - f_u_cla4_pg_logic3_or0 = ((a >> 3) & 0x01) | ((b >> 3) & 0x01); - f_u_cla4_pg_logic3_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_cla4_pg_logic3_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_u_cla4_xor3 = ((f_u_cla4_pg_logic3_xor0 >> 0) & 0x01) ^ ((f_u_cla4_or2 >> 0) & 0x01); - f_u_cla4_and5 = ((f_u_cla4_pg_logic3_or0 >> 0) & 0x01) & ((f_u_cla4_pg_logic1_or0 >> 0) & 0x01); - f_u_cla4_and6 = ((f_u_cla4_pg_logic0_and0 >> 0) & 0x01) & ((f_u_cla4_pg_logic2_or0 >> 0) & 0x01); - f_u_cla4_and7 = ((f_u_cla4_pg_logic3_or0 >> 0) & 0x01) & ((f_u_cla4_pg_logic1_or0 >> 0) & 0x01); - f_u_cla4_and8 = ((f_u_cla4_and6 >> 0) & 0x01) & ((f_u_cla4_and7 >> 0) & 0x01); - f_u_cla4_and9 = ((f_u_cla4_pg_logic1_and0 >> 0) & 0x01) & ((f_u_cla4_pg_logic3_or0 >> 0) & 0x01); - f_u_cla4_and10 = ((f_u_cla4_and9 >> 0) & 0x01) & ((f_u_cla4_pg_logic2_or0 >> 0) & 0x01); - f_u_cla4_and11 = ((f_u_cla4_pg_logic2_and0 >> 0) & 0x01) & ((f_u_cla4_pg_logic3_or0 >> 0) & 0x01); - f_u_cla4_or3 = ((f_u_cla4_and8 >> 0) & 0x01) | ((f_u_cla4_and11 >> 0) & 0x01); - f_u_cla4_or4 = ((f_u_cla4_and10 >> 0) & 0x01) | ((f_u_cla4_or3 >> 0) & 0x01); - f_u_cla4_or5 = ((f_u_cla4_pg_logic3_and0 >> 0) & 0x01) | ((f_u_cla4_or4 >> 0) & 0x01); - - f_u_cla4_out |= ((f_u_cla4_pg_logic0_xor0 >> 0) & 0x01) << 0; - f_u_cla4_out |= ((f_u_cla4_xor1 >> 0) & 0x01) << 1; - f_u_cla4_out |= ((f_u_cla4_xor2 >> 0) & 0x01) << 2; - f_u_cla4_out |= ((f_u_cla4_xor3 >> 0) & 0x01) << 3; - f_u_cla4_out |= ((f_u_cla4_or5 >> 0) & 0x01) << 4; - return f_u_cla4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i + j) == f_u_cla4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cla8.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cla8.c deleted file mode 100644 index 1117fda..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cla8.c +++ /dev/null @@ -1,186 +0,0 @@ -#include -#include - -uint64_t f_u_cla8(uint64_t a, uint64_t b){ - uint64_t f_u_cla8_out = 0; - uint8_t f_u_cla8_pg_logic0_or0 = 0; - uint8_t f_u_cla8_pg_logic0_and0 = 0; - uint8_t f_u_cla8_pg_logic0_xor0 = 0; - uint8_t f_u_cla8_pg_logic1_or0 = 0; - uint8_t f_u_cla8_pg_logic1_and0 = 0; - uint8_t f_u_cla8_pg_logic1_xor0 = 0; - uint8_t f_u_cla8_xor1 = 0; - uint8_t f_u_cla8_and0 = 0; - uint8_t f_u_cla8_or0 = 0; - uint8_t f_u_cla8_pg_logic2_or0 = 0; - uint8_t f_u_cla8_pg_logic2_and0 = 0; - uint8_t f_u_cla8_pg_logic2_xor0 = 0; - uint8_t f_u_cla8_xor2 = 0; - uint8_t f_u_cla8_and1 = 0; - uint8_t f_u_cla8_and2 = 0; - uint8_t f_u_cla8_and3 = 0; - uint8_t f_u_cla8_and4 = 0; - uint8_t f_u_cla8_or1 = 0; - uint8_t f_u_cla8_or2 = 0; - uint8_t f_u_cla8_pg_logic3_or0 = 0; - uint8_t f_u_cla8_pg_logic3_and0 = 0; - uint8_t f_u_cla8_pg_logic3_xor0 = 0; - uint8_t f_u_cla8_xor3 = 0; - uint8_t f_u_cla8_and5 = 0; - uint8_t f_u_cla8_and6 = 0; - uint8_t f_u_cla8_and7 = 0; - uint8_t f_u_cla8_and8 = 0; - uint8_t f_u_cla8_and9 = 0; - uint8_t f_u_cla8_and10 = 0; - uint8_t f_u_cla8_and11 = 0; - uint8_t f_u_cla8_or3 = 0; - uint8_t f_u_cla8_or4 = 0; - uint8_t f_u_cla8_or5 = 0; - uint8_t f_u_cla8_pg_logic4_or0 = 0; - uint8_t f_u_cla8_pg_logic4_and0 = 0; - uint8_t f_u_cla8_pg_logic4_xor0 = 0; - uint8_t f_u_cla8_xor4 = 0; - uint8_t f_u_cla8_and12 = 0; - uint8_t f_u_cla8_or6 = 0; - uint8_t f_u_cla8_pg_logic5_or0 = 0; - uint8_t f_u_cla8_pg_logic5_and0 = 0; - uint8_t f_u_cla8_pg_logic5_xor0 = 0; - uint8_t f_u_cla8_xor5 = 0; - uint8_t f_u_cla8_and13 = 0; - uint8_t f_u_cla8_and14 = 0; - uint8_t f_u_cla8_and15 = 0; - uint8_t f_u_cla8_or7 = 0; - uint8_t f_u_cla8_or8 = 0; - uint8_t f_u_cla8_pg_logic6_or0 = 0; - uint8_t f_u_cla8_pg_logic6_and0 = 0; - uint8_t f_u_cla8_pg_logic6_xor0 = 0; - uint8_t f_u_cla8_xor6 = 0; - uint8_t f_u_cla8_and16 = 0; - uint8_t f_u_cla8_and17 = 0; - uint8_t f_u_cla8_and18 = 0; - uint8_t f_u_cla8_and19 = 0; - uint8_t f_u_cla8_and20 = 0; - uint8_t f_u_cla8_and21 = 0; - uint8_t f_u_cla8_or9 = 0; - uint8_t f_u_cla8_or10 = 0; - uint8_t f_u_cla8_or11 = 0; - uint8_t f_u_cla8_pg_logic7_or0 = 0; - uint8_t f_u_cla8_pg_logic7_and0 = 0; - uint8_t f_u_cla8_pg_logic7_xor0 = 0; - uint8_t f_u_cla8_xor7 = 0; - uint8_t f_u_cla8_and22 = 0; - uint8_t f_u_cla8_and23 = 0; - uint8_t f_u_cla8_and24 = 0; - uint8_t f_u_cla8_and25 = 0; - uint8_t f_u_cla8_and26 = 0; - uint8_t f_u_cla8_and27 = 0; - uint8_t f_u_cla8_and28 = 0; - uint8_t f_u_cla8_and29 = 0; - uint8_t f_u_cla8_and30 = 0; - uint8_t f_u_cla8_and31 = 0; - uint8_t f_u_cla8_or12 = 0; - uint8_t f_u_cla8_or13 = 0; - uint8_t f_u_cla8_or14 = 0; - uint8_t f_u_cla8_or15 = 0; - - f_u_cla8_pg_logic0_or0 = ((a >> 0) & 0x01) | ((b >> 0) & 0x01); - f_u_cla8_pg_logic0_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_cla8_pg_logic0_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_u_cla8_pg_logic1_or0 = ((a >> 1) & 0x01) | ((b >> 1) & 0x01); - f_u_cla8_pg_logic1_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_cla8_pg_logic1_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_u_cla8_xor1 = ((f_u_cla8_pg_logic1_xor0 >> 0) & 0x01) ^ ((f_u_cla8_pg_logic0_and0 >> 0) & 0x01); - f_u_cla8_and0 = ((f_u_cla8_pg_logic0_and0 >> 0) & 0x01) & ((f_u_cla8_pg_logic1_or0 >> 0) & 0x01); - f_u_cla8_or0 = ((f_u_cla8_pg_logic1_and0 >> 0) & 0x01) | ((f_u_cla8_and0 >> 0) & 0x01); - f_u_cla8_pg_logic2_or0 = ((a >> 2) & 0x01) | ((b >> 2) & 0x01); - f_u_cla8_pg_logic2_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_cla8_pg_logic2_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_u_cla8_xor2 = ((f_u_cla8_pg_logic2_xor0 >> 0) & 0x01) ^ ((f_u_cla8_or0 >> 0) & 0x01); - f_u_cla8_and1 = ((f_u_cla8_pg_logic2_or0 >> 0) & 0x01) & ((f_u_cla8_pg_logic0_or0 >> 0) & 0x01); - f_u_cla8_and2 = ((f_u_cla8_pg_logic0_and0 >> 0) & 0x01) & ((f_u_cla8_pg_logic2_or0 >> 0) & 0x01); - f_u_cla8_and3 = ((f_u_cla8_and2 >> 0) & 0x01) & ((f_u_cla8_pg_logic1_or0 >> 0) & 0x01); - f_u_cla8_and4 = ((f_u_cla8_pg_logic1_and0 >> 0) & 0x01) & ((f_u_cla8_pg_logic2_or0 >> 0) & 0x01); - f_u_cla8_or1 = ((f_u_cla8_and3 >> 0) & 0x01) | ((f_u_cla8_and4 >> 0) & 0x01); - f_u_cla8_or2 = ((f_u_cla8_pg_logic2_and0 >> 0) & 0x01) | ((f_u_cla8_or1 >> 0) & 0x01); - f_u_cla8_pg_logic3_or0 = ((a >> 3) & 0x01) | ((b >> 3) & 0x01); - f_u_cla8_pg_logic3_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_cla8_pg_logic3_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_u_cla8_xor3 = ((f_u_cla8_pg_logic3_xor0 >> 0) & 0x01) ^ ((f_u_cla8_or2 >> 0) & 0x01); - f_u_cla8_and5 = ((f_u_cla8_pg_logic3_or0 >> 0) & 0x01) & ((f_u_cla8_pg_logic1_or0 >> 0) & 0x01); - f_u_cla8_and6 = ((f_u_cla8_pg_logic0_and0 >> 0) & 0x01) & ((f_u_cla8_pg_logic2_or0 >> 0) & 0x01); - f_u_cla8_and7 = ((f_u_cla8_pg_logic3_or0 >> 0) & 0x01) & ((f_u_cla8_pg_logic1_or0 >> 0) & 0x01); - f_u_cla8_and8 = ((f_u_cla8_and6 >> 0) & 0x01) & ((f_u_cla8_and7 >> 0) & 0x01); - f_u_cla8_and9 = ((f_u_cla8_pg_logic1_and0 >> 0) & 0x01) & ((f_u_cla8_pg_logic3_or0 >> 0) & 0x01); - f_u_cla8_and10 = ((f_u_cla8_and9 >> 0) & 0x01) & ((f_u_cla8_pg_logic2_or0 >> 0) & 0x01); - f_u_cla8_and11 = ((f_u_cla8_pg_logic2_and0 >> 0) & 0x01) & ((f_u_cla8_pg_logic3_or0 >> 0) & 0x01); - f_u_cla8_or3 = ((f_u_cla8_and8 >> 0) & 0x01) | ((f_u_cla8_and11 >> 0) & 0x01); - f_u_cla8_or4 = ((f_u_cla8_and10 >> 0) & 0x01) | ((f_u_cla8_or3 >> 0) & 0x01); - f_u_cla8_or5 = ((f_u_cla8_pg_logic3_and0 >> 0) & 0x01) | ((f_u_cla8_or4 >> 0) & 0x01); - f_u_cla8_pg_logic4_or0 = ((a >> 4) & 0x01) | ((b >> 4) & 0x01); - f_u_cla8_pg_logic4_and0 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_u_cla8_pg_logic4_xor0 = ((a >> 4) & 0x01) ^ ((b >> 4) & 0x01); - f_u_cla8_xor4 = ((f_u_cla8_pg_logic4_xor0 >> 0) & 0x01) ^ ((f_u_cla8_or5 >> 0) & 0x01); - f_u_cla8_and12 = ((f_u_cla8_or5 >> 0) & 0x01) & ((f_u_cla8_pg_logic4_or0 >> 0) & 0x01); - f_u_cla8_or6 = ((f_u_cla8_pg_logic4_and0 >> 0) & 0x01) | ((f_u_cla8_and12 >> 0) & 0x01); - f_u_cla8_pg_logic5_or0 = ((a >> 5) & 0x01) | ((b >> 5) & 0x01); - f_u_cla8_pg_logic5_and0 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_u_cla8_pg_logic5_xor0 = ((a >> 5) & 0x01) ^ ((b >> 5) & 0x01); - f_u_cla8_xor5 = ((f_u_cla8_pg_logic5_xor0 >> 0) & 0x01) ^ ((f_u_cla8_or6 >> 0) & 0x01); - f_u_cla8_and13 = ((f_u_cla8_or5 >> 0) & 0x01) & ((f_u_cla8_pg_logic5_or0 >> 0) & 0x01); - f_u_cla8_and14 = ((f_u_cla8_and13 >> 0) & 0x01) & ((f_u_cla8_pg_logic4_or0 >> 0) & 0x01); - f_u_cla8_and15 = ((f_u_cla8_pg_logic4_and0 >> 0) & 0x01) & ((f_u_cla8_pg_logic5_or0 >> 0) & 0x01); - f_u_cla8_or7 = ((f_u_cla8_and14 >> 0) & 0x01) | ((f_u_cla8_and15 >> 0) & 0x01); - f_u_cla8_or8 = ((f_u_cla8_pg_logic5_and0 >> 0) & 0x01) | ((f_u_cla8_or7 >> 0) & 0x01); - f_u_cla8_pg_logic6_or0 = ((a >> 6) & 0x01) | ((b >> 6) & 0x01); - f_u_cla8_pg_logic6_and0 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_u_cla8_pg_logic6_xor0 = ((a >> 6) & 0x01) ^ ((b >> 6) & 0x01); - f_u_cla8_xor6 = ((f_u_cla8_pg_logic6_xor0 >> 0) & 0x01) ^ ((f_u_cla8_or8 >> 0) & 0x01); - f_u_cla8_and16 = ((f_u_cla8_or5 >> 0) & 0x01) & ((f_u_cla8_pg_logic5_or0 >> 0) & 0x01); - f_u_cla8_and17 = ((f_u_cla8_pg_logic6_or0 >> 0) & 0x01) & ((f_u_cla8_pg_logic4_or0 >> 0) & 0x01); - f_u_cla8_and18 = ((f_u_cla8_and16 >> 0) & 0x01) & ((f_u_cla8_and17 >> 0) & 0x01); - f_u_cla8_and19 = ((f_u_cla8_pg_logic4_and0 >> 0) & 0x01) & ((f_u_cla8_pg_logic6_or0 >> 0) & 0x01); - f_u_cla8_and20 = ((f_u_cla8_and19 >> 0) & 0x01) & ((f_u_cla8_pg_logic5_or0 >> 0) & 0x01); - f_u_cla8_and21 = ((f_u_cla8_pg_logic5_and0 >> 0) & 0x01) & ((f_u_cla8_pg_logic6_or0 >> 0) & 0x01); - f_u_cla8_or9 = ((f_u_cla8_and18 >> 0) & 0x01) | ((f_u_cla8_and20 >> 0) & 0x01); - f_u_cla8_or10 = ((f_u_cla8_or9 >> 0) & 0x01) | ((f_u_cla8_and21 >> 0) & 0x01); - f_u_cla8_or11 = ((f_u_cla8_pg_logic6_and0 >> 0) & 0x01) | ((f_u_cla8_or10 >> 0) & 0x01); - f_u_cla8_pg_logic7_or0 = ((a >> 7) & 0x01) | ((b >> 7) & 0x01); - f_u_cla8_pg_logic7_and0 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_u_cla8_pg_logic7_xor0 = ((a >> 7) & 0x01) ^ ((b >> 7) & 0x01); - f_u_cla8_xor7 = ((f_u_cla8_pg_logic7_xor0 >> 0) & 0x01) ^ ((f_u_cla8_or11 >> 0) & 0x01); - f_u_cla8_and22 = ((f_u_cla8_or5 >> 0) & 0x01) & ((f_u_cla8_pg_logic6_or0 >> 0) & 0x01); - f_u_cla8_and23 = ((f_u_cla8_pg_logic7_or0 >> 0) & 0x01) & ((f_u_cla8_pg_logic5_or0 >> 0) & 0x01); - f_u_cla8_and24 = ((f_u_cla8_and22 >> 0) & 0x01) & ((f_u_cla8_and23 >> 0) & 0x01); - f_u_cla8_and25 = ((f_u_cla8_and24 >> 0) & 0x01) & ((f_u_cla8_pg_logic4_or0 >> 0) & 0x01); - f_u_cla8_and26 = ((f_u_cla8_pg_logic4_and0 >> 0) & 0x01) & ((f_u_cla8_pg_logic6_or0 >> 0) & 0x01); - f_u_cla8_and27 = ((f_u_cla8_pg_logic7_or0 >> 0) & 0x01) & ((f_u_cla8_pg_logic5_or0 >> 0) & 0x01); - f_u_cla8_and28 = ((f_u_cla8_and26 >> 0) & 0x01) & ((f_u_cla8_and27 >> 0) & 0x01); - f_u_cla8_and29 = ((f_u_cla8_pg_logic5_and0 >> 0) & 0x01) & ((f_u_cla8_pg_logic7_or0 >> 0) & 0x01); - f_u_cla8_and30 = ((f_u_cla8_and29 >> 0) & 0x01) & ((f_u_cla8_pg_logic6_or0 >> 0) & 0x01); - f_u_cla8_and31 = ((f_u_cla8_pg_logic6_and0 >> 0) & 0x01) & ((f_u_cla8_pg_logic7_or0 >> 0) & 0x01); - f_u_cla8_or12 = ((f_u_cla8_and25 >> 0) & 0x01) | ((f_u_cla8_and30 >> 0) & 0x01); - f_u_cla8_or13 = ((f_u_cla8_and28 >> 0) & 0x01) | ((f_u_cla8_and31 >> 0) & 0x01); - f_u_cla8_or14 = ((f_u_cla8_or12 >> 0) & 0x01) | ((f_u_cla8_or13 >> 0) & 0x01); - f_u_cla8_or15 = ((f_u_cla8_pg_logic7_and0 >> 0) & 0x01) | ((f_u_cla8_or14 >> 0) & 0x01); - - f_u_cla8_out |= ((f_u_cla8_pg_logic0_xor0 >> 0) & 0x01) << 0; - f_u_cla8_out |= ((f_u_cla8_xor1 >> 0) & 0x01) << 1; - f_u_cla8_out |= ((f_u_cla8_xor2 >> 0) & 0x01) << 2; - f_u_cla8_out |= ((f_u_cla8_xor3 >> 0) & 0x01) << 3; - f_u_cla8_out |= ((f_u_cla8_xor4 >> 0) & 0x01) << 4; - f_u_cla8_out |= ((f_u_cla8_xor5 >> 0) & 0x01) << 5; - f_u_cla8_out |= ((f_u_cla8_xor6 >> 0) & 0x01) << 6; - f_u_cla8_out |= ((f_u_cla8_xor7 >> 0) & 0x01) << 7; - f_u_cla8_out |= ((f_u_cla8_or15 >> 0) & 0x01) << 8; - return f_u_cla8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i + j) == f_u_cla8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cska4.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cska4.c deleted file mode 100644 index 24ad5e3..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cska4.c +++ /dev/null @@ -1,76 +0,0 @@ -#include -#include - -uint64_t f_u_cska4(uint64_t a, uint64_t b){ - uint8_t f_u_cska4_out = 0; - uint8_t f_u_cska4_xor0 = 0; - uint8_t f_u_cska4_ha0_xor0 = 0; - uint8_t f_u_cska4_ha0_and0 = 0; - uint8_t f_u_cska4_xor1 = 0; - uint8_t f_u_cska4_fa0_xor0 = 0; - uint8_t f_u_cska4_fa0_and0 = 0; - uint8_t f_u_cska4_fa0_xor1 = 0; - uint8_t f_u_cska4_fa0_and1 = 0; - uint8_t f_u_cska4_fa0_or0 = 0; - uint8_t f_u_cska4_xor2 = 0; - uint8_t f_u_cska4_fa1_xor0 = 0; - uint8_t f_u_cska4_fa1_and0 = 0; - uint8_t f_u_cska4_fa1_xor1 = 0; - uint8_t f_u_cska4_fa1_and1 = 0; - uint8_t f_u_cska4_fa1_or0 = 0; - uint8_t f_u_cska4_xor3 = 0; - uint8_t f_u_cska4_fa2_xor0 = 0; - uint8_t f_u_cska4_fa2_and0 = 0; - uint8_t f_u_cska4_fa2_xor1 = 0; - uint8_t f_u_cska4_fa2_and1 = 0; - uint8_t f_u_cska4_fa2_or0 = 0; - uint8_t f_u_cska4_and_propagate00 = 0; - uint8_t f_u_cska4_and_propagate01 = 0; - uint8_t f_u_cska4_and_propagate02 = 0; - uint8_t f_u_cska4_mux2to10_not0 = 0; - uint8_t f_u_cska4_mux2to10_and1 = 0; - - f_u_cska4_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_u_cska4_ha0_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_u_cska4_ha0_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_cska4_xor1 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_u_cska4_fa0_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_u_cska4_fa0_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_cska4_fa0_xor1 = ((f_u_cska4_fa0_xor0 >> 0) & 0x01) ^ ((f_u_cska4_ha0_and0 >> 0) & 0x01); - f_u_cska4_fa0_and1 = ((f_u_cska4_fa0_xor0 >> 0) & 0x01) & ((f_u_cska4_ha0_and0 >> 0) & 0x01); - f_u_cska4_fa0_or0 = ((f_u_cska4_fa0_and0 >> 0) & 0x01) | ((f_u_cska4_fa0_and1 >> 0) & 0x01); - f_u_cska4_xor2 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_u_cska4_fa1_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_u_cska4_fa1_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_cska4_fa1_xor1 = ((f_u_cska4_fa1_xor0 >> 0) & 0x01) ^ ((f_u_cska4_fa0_or0 >> 0) & 0x01); - f_u_cska4_fa1_and1 = ((f_u_cska4_fa1_xor0 >> 0) & 0x01) & ((f_u_cska4_fa0_or0 >> 0) & 0x01); - f_u_cska4_fa1_or0 = ((f_u_cska4_fa1_and0 >> 0) & 0x01) | ((f_u_cska4_fa1_and1 >> 0) & 0x01); - f_u_cska4_xor3 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_u_cska4_fa2_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_u_cska4_fa2_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_cska4_fa2_xor1 = ((f_u_cska4_fa2_xor0 >> 0) & 0x01) ^ ((f_u_cska4_fa1_or0 >> 0) & 0x01); - f_u_cska4_fa2_and1 = ((f_u_cska4_fa2_xor0 >> 0) & 0x01) & ((f_u_cska4_fa1_or0 >> 0) & 0x01); - f_u_cska4_fa2_or0 = ((f_u_cska4_fa2_and0 >> 0) & 0x01) | ((f_u_cska4_fa2_and1 >> 0) & 0x01); - f_u_cska4_and_propagate00 = ((f_u_cska4_xor0 >> 0) & 0x01) & ((f_u_cska4_xor2 >> 0) & 0x01); - f_u_cska4_and_propagate01 = ((f_u_cska4_xor1 >> 0) & 0x01) & ((f_u_cska4_xor3 >> 0) & 0x01); - f_u_cska4_and_propagate02 = ((f_u_cska4_and_propagate00 >> 0) & 0x01) & ((f_u_cska4_and_propagate01 >> 0) & 0x01); - f_u_cska4_mux2to10_not0 = ~(((f_u_cska4_and_propagate02 >> 0) & 0x01)) & 0x01; - f_u_cska4_mux2to10_and1 = ((f_u_cska4_fa2_or0 >> 0) & 0x01) & ((f_u_cska4_mux2to10_not0 >> 0) & 0x01); - - f_u_cska4_out |= ((f_u_cska4_ha0_xor0 >> 0) & 0x01) << 0; - f_u_cska4_out |= ((f_u_cska4_fa0_xor1 >> 0) & 0x01) << 1; - f_u_cska4_out |= ((f_u_cska4_fa1_xor1 >> 0) & 0x01) << 2; - f_u_cska4_out |= ((f_u_cska4_fa2_xor1 >> 0) & 0x01) << 3; - f_u_cska4_out |= ((f_u_cska4_mux2to10_and1 >> 0) & 0x01) << 4; - return f_u_cska4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i + j) == f_u_cska4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cska8.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cska8.c deleted file mode 100644 index 149bb7a..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_cska8.c +++ /dev/null @@ -1,142 +0,0 @@ -#include -#include - -uint64_t f_u_cska8(uint64_t a, uint64_t b){ - uint64_t f_u_cska8_out = 0; - uint8_t f_u_cska8_xor0 = 0; - uint8_t f_u_cska8_ha0_xor0 = 0; - uint8_t f_u_cska8_ha0_and0 = 0; - uint8_t f_u_cska8_xor1 = 0; - uint8_t f_u_cska8_fa0_xor0 = 0; - uint8_t f_u_cska8_fa0_and0 = 0; - uint8_t f_u_cska8_fa0_xor1 = 0; - uint8_t f_u_cska8_fa0_and1 = 0; - uint8_t f_u_cska8_fa0_or0 = 0; - uint8_t f_u_cska8_xor2 = 0; - uint8_t f_u_cska8_fa1_xor0 = 0; - uint8_t f_u_cska8_fa1_and0 = 0; - uint8_t f_u_cska8_fa1_xor1 = 0; - uint8_t f_u_cska8_fa1_and1 = 0; - uint8_t f_u_cska8_fa1_or0 = 0; - uint8_t f_u_cska8_xor3 = 0; - uint8_t f_u_cska8_fa2_xor0 = 0; - uint8_t f_u_cska8_fa2_and0 = 0; - uint8_t f_u_cska8_fa2_xor1 = 0; - uint8_t f_u_cska8_fa2_and1 = 0; - uint8_t f_u_cska8_fa2_or0 = 0; - uint8_t f_u_cska8_and_propagate00 = 0; - uint8_t f_u_cska8_and_propagate01 = 0; - uint8_t f_u_cska8_and_propagate02 = 0; - uint8_t f_u_cska8_mux2to10_not0 = 0; - uint8_t f_u_cska8_mux2to10_and1 = 0; - uint8_t f_u_cska8_xor4 = 0; - uint8_t f_u_cska8_fa3_xor0 = 0; - uint8_t f_u_cska8_fa3_and0 = 0; - uint8_t f_u_cska8_fa3_xor1 = 0; - uint8_t f_u_cska8_fa3_and1 = 0; - uint8_t f_u_cska8_fa3_or0 = 0; - uint8_t f_u_cska8_xor5 = 0; - uint8_t f_u_cska8_fa4_xor0 = 0; - uint8_t f_u_cska8_fa4_and0 = 0; - uint8_t f_u_cska8_fa4_xor1 = 0; - uint8_t f_u_cska8_fa4_and1 = 0; - uint8_t f_u_cska8_fa4_or0 = 0; - uint8_t f_u_cska8_xor6 = 0; - uint8_t f_u_cska8_fa5_xor0 = 0; - uint8_t f_u_cska8_fa5_and0 = 0; - uint8_t f_u_cska8_fa5_xor1 = 0; - uint8_t f_u_cska8_fa5_and1 = 0; - uint8_t f_u_cska8_fa5_or0 = 0; - uint8_t f_u_cska8_xor7 = 0; - uint8_t f_u_cska8_fa6_xor0 = 0; - uint8_t f_u_cska8_fa6_and0 = 0; - uint8_t f_u_cska8_fa6_xor1 = 0; - uint8_t f_u_cska8_fa6_and1 = 0; - uint8_t f_u_cska8_fa6_or0 = 0; - uint8_t f_u_cska8_and_propagate13 = 0; - uint8_t f_u_cska8_and_propagate14 = 0; - uint8_t f_u_cska8_and_propagate15 = 0; - uint8_t f_u_cska8_mux2to11_and0 = 0; - uint8_t f_u_cska8_mux2to11_not0 = 0; - uint8_t f_u_cska8_mux2to11_and1 = 0; - uint8_t f_u_cska8_mux2to11_xor0 = 0; - - f_u_cska8_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_u_cska8_ha0_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_u_cska8_ha0_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_cska8_xor1 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_u_cska8_fa0_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_u_cska8_fa0_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_cska8_fa0_xor1 = ((f_u_cska8_fa0_xor0 >> 0) & 0x01) ^ ((f_u_cska8_ha0_and0 >> 0) & 0x01); - f_u_cska8_fa0_and1 = ((f_u_cska8_fa0_xor0 >> 0) & 0x01) & ((f_u_cska8_ha0_and0 >> 0) & 0x01); - f_u_cska8_fa0_or0 = ((f_u_cska8_fa0_and0 >> 0) & 0x01) | ((f_u_cska8_fa0_and1 >> 0) & 0x01); - f_u_cska8_xor2 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_u_cska8_fa1_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_u_cska8_fa1_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_cska8_fa1_xor1 = ((f_u_cska8_fa1_xor0 >> 0) & 0x01) ^ ((f_u_cska8_fa0_or0 >> 0) & 0x01); - f_u_cska8_fa1_and1 = ((f_u_cska8_fa1_xor0 >> 0) & 0x01) & ((f_u_cska8_fa0_or0 >> 0) & 0x01); - f_u_cska8_fa1_or0 = ((f_u_cska8_fa1_and0 >> 0) & 0x01) | ((f_u_cska8_fa1_and1 >> 0) & 0x01); - f_u_cska8_xor3 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_u_cska8_fa2_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_u_cska8_fa2_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_cska8_fa2_xor1 = ((f_u_cska8_fa2_xor0 >> 0) & 0x01) ^ ((f_u_cska8_fa1_or0 >> 0) & 0x01); - f_u_cska8_fa2_and1 = ((f_u_cska8_fa2_xor0 >> 0) & 0x01) & ((f_u_cska8_fa1_or0 >> 0) & 0x01); - f_u_cska8_fa2_or0 = ((f_u_cska8_fa2_and0 >> 0) & 0x01) | ((f_u_cska8_fa2_and1 >> 0) & 0x01); - f_u_cska8_and_propagate00 = ((f_u_cska8_xor0 >> 0) & 0x01) & ((f_u_cska8_xor2 >> 0) & 0x01); - f_u_cska8_and_propagate01 = ((f_u_cska8_xor1 >> 0) & 0x01) & ((f_u_cska8_xor3 >> 0) & 0x01); - f_u_cska8_and_propagate02 = ((f_u_cska8_and_propagate00 >> 0) & 0x01) & ((f_u_cska8_and_propagate01 >> 0) & 0x01); - f_u_cska8_mux2to10_not0 = ~(((f_u_cska8_and_propagate02 >> 0) & 0x01)) & 0x01; - f_u_cska8_mux2to10_and1 = ((f_u_cska8_fa2_or0 >> 0) & 0x01) & ((f_u_cska8_mux2to10_not0 >> 0) & 0x01); - f_u_cska8_xor4 = ((a >> 4) & 0x01) ^ ((b >> 4) & 0x01); - f_u_cska8_fa3_xor0 = ((a >> 4) & 0x01) ^ ((b >> 4) & 0x01); - f_u_cska8_fa3_and0 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_u_cska8_fa3_xor1 = ((f_u_cska8_fa3_xor0 >> 0) & 0x01) ^ ((f_u_cska8_mux2to10_and1 >> 0) & 0x01); - f_u_cska8_fa3_and1 = ((f_u_cska8_fa3_xor0 >> 0) & 0x01) & ((f_u_cska8_mux2to10_and1 >> 0) & 0x01); - f_u_cska8_fa3_or0 = ((f_u_cska8_fa3_and0 >> 0) & 0x01) | ((f_u_cska8_fa3_and1 >> 0) & 0x01); - f_u_cska8_xor5 = ((a >> 5) & 0x01) ^ ((b >> 5) & 0x01); - f_u_cska8_fa4_xor0 = ((a >> 5) & 0x01) ^ ((b >> 5) & 0x01); - f_u_cska8_fa4_and0 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_u_cska8_fa4_xor1 = ((f_u_cska8_fa4_xor0 >> 0) & 0x01) ^ ((f_u_cska8_fa3_or0 >> 0) & 0x01); - f_u_cska8_fa4_and1 = ((f_u_cska8_fa4_xor0 >> 0) & 0x01) & ((f_u_cska8_fa3_or0 >> 0) & 0x01); - f_u_cska8_fa4_or0 = ((f_u_cska8_fa4_and0 >> 0) & 0x01) | ((f_u_cska8_fa4_and1 >> 0) & 0x01); - f_u_cska8_xor6 = ((a >> 6) & 0x01) ^ ((b >> 6) & 0x01); - f_u_cska8_fa5_xor0 = ((a >> 6) & 0x01) ^ ((b >> 6) & 0x01); - f_u_cska8_fa5_and0 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_u_cska8_fa5_xor1 = ((f_u_cska8_fa5_xor0 >> 0) & 0x01) ^ ((f_u_cska8_fa4_or0 >> 0) & 0x01); - f_u_cska8_fa5_and1 = ((f_u_cska8_fa5_xor0 >> 0) & 0x01) & ((f_u_cska8_fa4_or0 >> 0) & 0x01); - f_u_cska8_fa5_or0 = ((f_u_cska8_fa5_and0 >> 0) & 0x01) | ((f_u_cska8_fa5_and1 >> 0) & 0x01); - f_u_cska8_xor7 = ((a >> 7) & 0x01) ^ ((b >> 7) & 0x01); - f_u_cska8_fa6_xor0 = ((a >> 7) & 0x01) ^ ((b >> 7) & 0x01); - f_u_cska8_fa6_and0 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_u_cska8_fa6_xor1 = ((f_u_cska8_fa6_xor0 >> 0) & 0x01) ^ ((f_u_cska8_fa5_or0 >> 0) & 0x01); - f_u_cska8_fa6_and1 = ((f_u_cska8_fa6_xor0 >> 0) & 0x01) & ((f_u_cska8_fa5_or0 >> 0) & 0x01); - f_u_cska8_fa6_or0 = ((f_u_cska8_fa6_and0 >> 0) & 0x01) | ((f_u_cska8_fa6_and1 >> 0) & 0x01); - f_u_cska8_and_propagate13 = ((f_u_cska8_xor4 >> 0) & 0x01) & ((f_u_cska8_xor6 >> 0) & 0x01); - f_u_cska8_and_propagate14 = ((f_u_cska8_xor5 >> 0) & 0x01) & ((f_u_cska8_xor7 >> 0) & 0x01); - f_u_cska8_and_propagate15 = ((f_u_cska8_and_propagate13 >> 0) & 0x01) & ((f_u_cska8_and_propagate14 >> 0) & 0x01); - f_u_cska8_mux2to11_and0 = ((f_u_cska8_mux2to10_and1 >> 0) & 0x01) & ((f_u_cska8_and_propagate15 >> 0) & 0x01); - f_u_cska8_mux2to11_not0 = ~(((f_u_cska8_and_propagate15 >> 0) & 0x01)) & 0x01; - f_u_cska8_mux2to11_and1 = ((f_u_cska8_fa6_or0 >> 0) & 0x01) & ((f_u_cska8_mux2to11_not0 >> 0) & 0x01); - f_u_cska8_mux2to11_xor0 = ((f_u_cska8_mux2to11_and0 >> 0) & 0x01) ^ ((f_u_cska8_mux2to11_and1 >> 0) & 0x01); - - f_u_cska8_out |= ((f_u_cska8_ha0_xor0 >> 0) & 0x01) << 0; - f_u_cska8_out |= ((f_u_cska8_fa0_xor1 >> 0) & 0x01) << 1; - f_u_cska8_out |= ((f_u_cska8_fa1_xor1 >> 0) & 0x01) << 2; - f_u_cska8_out |= ((f_u_cska8_fa2_xor1 >> 0) & 0x01) << 3; - f_u_cska8_out |= ((f_u_cska8_fa3_xor1 >> 0) & 0x01) << 4; - f_u_cska8_out |= ((f_u_cska8_fa4_xor1 >> 0) & 0x01) << 5; - f_u_cska8_out |= ((f_u_cska8_fa5_xor1 >> 0) & 0x01) << 6; - f_u_cska8_out |= ((f_u_cska8_fa6_xor1 >> 0) & 0x01) << 7; - f_u_cska8_out |= ((f_u_cska8_mux2to11_xor0 >> 0) & 0x01) << 8; - return f_u_cska8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i + j) == f_u_cska8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_pg_rca4.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_pg_rca4.c deleted file mode 100644 index 4b691db..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_pg_rca4.c +++ /dev/null @@ -1,58 +0,0 @@ -#include -#include - -uint64_t f_u_pg_rca4(uint64_t a, uint64_t b){ - uint8_t f_u_pg_rca4_out = 0; - uint8_t f_u_pg_rca4_pg_fa0_xor0 = 0; - uint8_t f_u_pg_rca4_pg_fa0_and0 = 0; - uint8_t f_u_pg_rca4_pg_fa1_xor0 = 0; - uint8_t f_u_pg_rca4_pg_fa1_and0 = 0; - uint8_t f_u_pg_rca4_pg_fa1_xor1 = 0; - uint8_t f_u_pg_rca4_and1 = 0; - uint8_t f_u_pg_rca4_or1 = 0; - uint8_t f_u_pg_rca4_pg_fa2_xor0 = 0; - uint8_t f_u_pg_rca4_pg_fa2_and0 = 0; - uint8_t f_u_pg_rca4_pg_fa2_xor1 = 0; - uint8_t f_u_pg_rca4_and2 = 0; - uint8_t f_u_pg_rca4_or2 = 0; - uint8_t f_u_pg_rca4_pg_fa3_xor0 = 0; - uint8_t f_u_pg_rca4_pg_fa3_and0 = 0; - uint8_t f_u_pg_rca4_pg_fa3_xor1 = 0; - uint8_t f_u_pg_rca4_and3 = 0; - uint8_t f_u_pg_rca4_or3 = 0; - - f_u_pg_rca4_pg_fa0_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_u_pg_rca4_pg_fa0_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_pg_rca4_pg_fa1_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_u_pg_rca4_pg_fa1_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_pg_rca4_pg_fa1_xor1 = ((f_u_pg_rca4_pg_fa1_xor0 >> 0) & 0x01) ^ ((f_u_pg_rca4_pg_fa0_and0 >> 0) & 0x01); - f_u_pg_rca4_and1 = ((f_u_pg_rca4_pg_fa0_and0 >> 0) & 0x01) & ((f_u_pg_rca4_pg_fa1_xor0 >> 0) & 0x01); - f_u_pg_rca4_or1 = ((f_u_pg_rca4_and1 >> 0) & 0x01) | ((f_u_pg_rca4_pg_fa1_and0 >> 0) & 0x01); - f_u_pg_rca4_pg_fa2_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_u_pg_rca4_pg_fa2_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_pg_rca4_pg_fa2_xor1 = ((f_u_pg_rca4_pg_fa2_xor0 >> 0) & 0x01) ^ ((f_u_pg_rca4_or1 >> 0) & 0x01); - f_u_pg_rca4_and2 = ((f_u_pg_rca4_or1 >> 0) & 0x01) & ((f_u_pg_rca4_pg_fa2_xor0 >> 0) & 0x01); - f_u_pg_rca4_or2 = ((f_u_pg_rca4_and2 >> 0) & 0x01) | ((f_u_pg_rca4_pg_fa2_and0 >> 0) & 0x01); - f_u_pg_rca4_pg_fa3_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_u_pg_rca4_pg_fa3_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_pg_rca4_pg_fa3_xor1 = ((f_u_pg_rca4_pg_fa3_xor0 >> 0) & 0x01) ^ ((f_u_pg_rca4_or2 >> 0) & 0x01); - f_u_pg_rca4_and3 = ((f_u_pg_rca4_or2 >> 0) & 0x01) & ((f_u_pg_rca4_pg_fa3_xor0 >> 0) & 0x01); - f_u_pg_rca4_or3 = ((f_u_pg_rca4_and3 >> 0) & 0x01) | ((f_u_pg_rca4_pg_fa3_and0 >> 0) & 0x01); - - f_u_pg_rca4_out |= ((f_u_pg_rca4_pg_fa0_xor0 >> 0) & 0x01) << 0; - f_u_pg_rca4_out |= ((f_u_pg_rca4_pg_fa1_xor1 >> 0) & 0x01) << 1; - f_u_pg_rca4_out |= ((f_u_pg_rca4_pg_fa2_xor1 >> 0) & 0x01) << 2; - f_u_pg_rca4_out |= ((f_u_pg_rca4_pg_fa3_xor1 >> 0) & 0x01) << 3; - f_u_pg_rca4_out |= ((f_u_pg_rca4_or3 >> 0) & 0x01) << 4; - return f_u_pg_rca4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i + j) == f_u_pg_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_pg_rca8.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_pg_rca8.c deleted file mode 100644 index f63ad77..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_pg_rca8.c +++ /dev/null @@ -1,102 +0,0 @@ -#include -#include - -uint64_t f_u_pg_rca8(uint64_t a, uint64_t b){ - uint64_t f_u_pg_rca8_out = 0; - uint8_t f_u_pg_rca8_pg_fa0_xor0 = 0; - uint8_t f_u_pg_rca8_pg_fa0_and0 = 0; - uint8_t f_u_pg_rca8_pg_fa1_xor0 = 0; - uint8_t f_u_pg_rca8_pg_fa1_and0 = 0; - uint8_t f_u_pg_rca8_pg_fa1_xor1 = 0; - uint8_t f_u_pg_rca8_and1 = 0; - uint8_t f_u_pg_rca8_or1 = 0; - uint8_t f_u_pg_rca8_pg_fa2_xor0 = 0; - uint8_t f_u_pg_rca8_pg_fa2_and0 = 0; - uint8_t f_u_pg_rca8_pg_fa2_xor1 = 0; - uint8_t f_u_pg_rca8_and2 = 0; - uint8_t f_u_pg_rca8_or2 = 0; - uint8_t f_u_pg_rca8_pg_fa3_xor0 = 0; - uint8_t f_u_pg_rca8_pg_fa3_and0 = 0; - uint8_t f_u_pg_rca8_pg_fa3_xor1 = 0; - uint8_t f_u_pg_rca8_and3 = 0; - uint8_t f_u_pg_rca8_or3 = 0; - uint8_t f_u_pg_rca8_pg_fa4_xor0 = 0; - uint8_t f_u_pg_rca8_pg_fa4_and0 = 0; - uint8_t f_u_pg_rca8_pg_fa4_xor1 = 0; - uint8_t f_u_pg_rca8_and4 = 0; - uint8_t f_u_pg_rca8_or4 = 0; - uint8_t f_u_pg_rca8_pg_fa5_xor0 = 0; - uint8_t f_u_pg_rca8_pg_fa5_and0 = 0; - uint8_t f_u_pg_rca8_pg_fa5_xor1 = 0; - uint8_t f_u_pg_rca8_and5 = 0; - uint8_t f_u_pg_rca8_or5 = 0; - uint8_t f_u_pg_rca8_pg_fa6_xor0 = 0; - uint8_t f_u_pg_rca8_pg_fa6_and0 = 0; - uint8_t f_u_pg_rca8_pg_fa6_xor1 = 0; - uint8_t f_u_pg_rca8_and6 = 0; - uint8_t f_u_pg_rca8_or6 = 0; - uint8_t f_u_pg_rca8_pg_fa7_xor0 = 0; - uint8_t f_u_pg_rca8_pg_fa7_and0 = 0; - uint8_t f_u_pg_rca8_pg_fa7_xor1 = 0; - uint8_t f_u_pg_rca8_and7 = 0; - uint8_t f_u_pg_rca8_or7 = 0; - - f_u_pg_rca8_pg_fa0_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_u_pg_rca8_pg_fa0_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_pg_rca8_pg_fa1_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_u_pg_rca8_pg_fa1_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_pg_rca8_pg_fa1_xor1 = ((f_u_pg_rca8_pg_fa1_xor0 >> 0) & 0x01) ^ ((f_u_pg_rca8_pg_fa0_and0 >> 0) & 0x01); - f_u_pg_rca8_and1 = ((f_u_pg_rca8_pg_fa0_and0 >> 0) & 0x01) & ((f_u_pg_rca8_pg_fa1_xor0 >> 0) & 0x01); - f_u_pg_rca8_or1 = ((f_u_pg_rca8_and1 >> 0) & 0x01) | ((f_u_pg_rca8_pg_fa1_and0 >> 0) & 0x01); - f_u_pg_rca8_pg_fa2_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_u_pg_rca8_pg_fa2_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_pg_rca8_pg_fa2_xor1 = ((f_u_pg_rca8_pg_fa2_xor0 >> 0) & 0x01) ^ ((f_u_pg_rca8_or1 >> 0) & 0x01); - f_u_pg_rca8_and2 = ((f_u_pg_rca8_or1 >> 0) & 0x01) & ((f_u_pg_rca8_pg_fa2_xor0 >> 0) & 0x01); - f_u_pg_rca8_or2 = ((f_u_pg_rca8_and2 >> 0) & 0x01) | ((f_u_pg_rca8_pg_fa2_and0 >> 0) & 0x01); - f_u_pg_rca8_pg_fa3_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_u_pg_rca8_pg_fa3_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_pg_rca8_pg_fa3_xor1 = ((f_u_pg_rca8_pg_fa3_xor0 >> 0) & 0x01) ^ ((f_u_pg_rca8_or2 >> 0) & 0x01); - f_u_pg_rca8_and3 = ((f_u_pg_rca8_or2 >> 0) & 0x01) & ((f_u_pg_rca8_pg_fa3_xor0 >> 0) & 0x01); - f_u_pg_rca8_or3 = ((f_u_pg_rca8_and3 >> 0) & 0x01) | ((f_u_pg_rca8_pg_fa3_and0 >> 0) & 0x01); - f_u_pg_rca8_pg_fa4_xor0 = ((a >> 4) & 0x01) ^ ((b >> 4) & 0x01); - f_u_pg_rca8_pg_fa4_and0 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_u_pg_rca8_pg_fa4_xor1 = ((f_u_pg_rca8_pg_fa4_xor0 >> 0) & 0x01) ^ ((f_u_pg_rca8_or3 >> 0) & 0x01); - f_u_pg_rca8_and4 = ((f_u_pg_rca8_or3 >> 0) & 0x01) & ((f_u_pg_rca8_pg_fa4_xor0 >> 0) & 0x01); - f_u_pg_rca8_or4 = ((f_u_pg_rca8_and4 >> 0) & 0x01) | ((f_u_pg_rca8_pg_fa4_and0 >> 0) & 0x01); - f_u_pg_rca8_pg_fa5_xor0 = ((a >> 5) & 0x01) ^ ((b >> 5) & 0x01); - f_u_pg_rca8_pg_fa5_and0 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_u_pg_rca8_pg_fa5_xor1 = ((f_u_pg_rca8_pg_fa5_xor0 >> 0) & 0x01) ^ ((f_u_pg_rca8_or4 >> 0) & 0x01); - f_u_pg_rca8_and5 = ((f_u_pg_rca8_or4 >> 0) & 0x01) & ((f_u_pg_rca8_pg_fa5_xor0 >> 0) & 0x01); - f_u_pg_rca8_or5 = ((f_u_pg_rca8_and5 >> 0) & 0x01) | ((f_u_pg_rca8_pg_fa5_and0 >> 0) & 0x01); - f_u_pg_rca8_pg_fa6_xor0 = ((a >> 6) & 0x01) ^ ((b >> 6) & 0x01); - f_u_pg_rca8_pg_fa6_and0 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_u_pg_rca8_pg_fa6_xor1 = ((f_u_pg_rca8_pg_fa6_xor0 >> 0) & 0x01) ^ ((f_u_pg_rca8_or5 >> 0) & 0x01); - f_u_pg_rca8_and6 = ((f_u_pg_rca8_or5 >> 0) & 0x01) & ((f_u_pg_rca8_pg_fa6_xor0 >> 0) & 0x01); - f_u_pg_rca8_or6 = ((f_u_pg_rca8_and6 >> 0) & 0x01) | ((f_u_pg_rca8_pg_fa6_and0 >> 0) & 0x01); - f_u_pg_rca8_pg_fa7_xor0 = ((a >> 7) & 0x01) ^ ((b >> 7) & 0x01); - f_u_pg_rca8_pg_fa7_and0 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_u_pg_rca8_pg_fa7_xor1 = ((f_u_pg_rca8_pg_fa7_xor0 >> 0) & 0x01) ^ ((f_u_pg_rca8_or6 >> 0) & 0x01); - f_u_pg_rca8_and7 = ((f_u_pg_rca8_or6 >> 0) & 0x01) & ((f_u_pg_rca8_pg_fa7_xor0 >> 0) & 0x01); - f_u_pg_rca8_or7 = ((f_u_pg_rca8_and7 >> 0) & 0x01) | ((f_u_pg_rca8_pg_fa7_and0 >> 0) & 0x01); - - f_u_pg_rca8_out |= ((f_u_pg_rca8_pg_fa0_xor0 >> 0) & 0x01) << 0; - f_u_pg_rca8_out |= ((f_u_pg_rca8_pg_fa1_xor1 >> 0) & 0x01) << 1; - f_u_pg_rca8_out |= ((f_u_pg_rca8_pg_fa2_xor1 >> 0) & 0x01) << 2; - f_u_pg_rca8_out |= ((f_u_pg_rca8_pg_fa3_xor1 >> 0) & 0x01) << 3; - f_u_pg_rca8_out |= ((f_u_pg_rca8_pg_fa4_xor1 >> 0) & 0x01) << 4; - f_u_pg_rca8_out |= ((f_u_pg_rca8_pg_fa5_xor1 >> 0) & 0x01) << 5; - f_u_pg_rca8_out |= ((f_u_pg_rca8_pg_fa6_xor1 >> 0) & 0x01) << 6; - f_u_pg_rca8_out |= ((f_u_pg_rca8_pg_fa7_xor1 >> 0) & 0x01) << 7; - f_u_pg_rca8_out |= ((f_u_pg_rca8_or7 >> 0) & 0x01) << 8; - return f_u_pg_rca8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i + j) == f_u_pg_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_rca4.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_rca4.c deleted file mode 100644 index 5b9b861..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_rca4.c +++ /dev/null @@ -1,58 +0,0 @@ -#include -#include - -uint64_t f_u_rca4(uint64_t a, uint64_t b){ - uint8_t f_u_rca4_out = 0; - uint8_t f_u_rca4_ha_xor0 = 0; - uint8_t f_u_rca4_ha_and0 = 0; - uint8_t f_u_rca4_fa1_xor0 = 0; - uint8_t f_u_rca4_fa1_and0 = 0; - uint8_t f_u_rca4_fa1_xor1 = 0; - uint8_t f_u_rca4_fa1_and1 = 0; - uint8_t f_u_rca4_fa1_or0 = 0; - uint8_t f_u_rca4_fa2_xor0 = 0; - uint8_t f_u_rca4_fa2_and0 = 0; - uint8_t f_u_rca4_fa2_xor1 = 0; - uint8_t f_u_rca4_fa2_and1 = 0; - uint8_t f_u_rca4_fa2_or0 = 0; - uint8_t f_u_rca4_fa3_xor0 = 0; - uint8_t f_u_rca4_fa3_and0 = 0; - uint8_t f_u_rca4_fa3_xor1 = 0; - uint8_t f_u_rca4_fa3_and1 = 0; - uint8_t f_u_rca4_fa3_or0 = 0; - - f_u_rca4_ha_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_u_rca4_ha_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_rca4_fa1_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_u_rca4_fa1_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_rca4_fa1_xor1 = ((f_u_rca4_fa1_xor0 >> 0) & 0x01) ^ ((f_u_rca4_ha_and0 >> 0) & 0x01); - f_u_rca4_fa1_and1 = ((f_u_rca4_fa1_xor0 >> 0) & 0x01) & ((f_u_rca4_ha_and0 >> 0) & 0x01); - f_u_rca4_fa1_or0 = ((f_u_rca4_fa1_and0 >> 0) & 0x01) | ((f_u_rca4_fa1_and1 >> 0) & 0x01); - f_u_rca4_fa2_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_u_rca4_fa2_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_rca4_fa2_xor1 = ((f_u_rca4_fa2_xor0 >> 0) & 0x01) ^ ((f_u_rca4_fa1_or0 >> 0) & 0x01); - f_u_rca4_fa2_and1 = ((f_u_rca4_fa2_xor0 >> 0) & 0x01) & ((f_u_rca4_fa1_or0 >> 0) & 0x01); - f_u_rca4_fa2_or0 = ((f_u_rca4_fa2_and0 >> 0) & 0x01) | ((f_u_rca4_fa2_and1 >> 0) & 0x01); - f_u_rca4_fa3_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_u_rca4_fa3_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_rca4_fa3_xor1 = ((f_u_rca4_fa3_xor0 >> 0) & 0x01) ^ ((f_u_rca4_fa2_or0 >> 0) & 0x01); - f_u_rca4_fa3_and1 = ((f_u_rca4_fa3_xor0 >> 0) & 0x01) & ((f_u_rca4_fa2_or0 >> 0) & 0x01); - f_u_rca4_fa3_or0 = ((f_u_rca4_fa3_and0 >> 0) & 0x01) | ((f_u_rca4_fa3_and1 >> 0) & 0x01); - - f_u_rca4_out |= ((f_u_rca4_ha_xor0 >> 0) & 0x01) << 0; - f_u_rca4_out |= ((f_u_rca4_fa1_xor1 >> 0) & 0x01) << 1; - f_u_rca4_out |= ((f_u_rca4_fa2_xor1 >> 0) & 0x01) << 2; - f_u_rca4_out |= ((f_u_rca4_fa3_xor1 >> 0) & 0x01) << 3; - f_u_rca4_out |= ((f_u_rca4_fa3_or0 >> 0) & 0x01) << 4; - return f_u_rca4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i + j) == f_u_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_rca8.c b/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_rca8.c deleted file mode 100644 index 94f03c2..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/adders/f_u_rca8.c +++ /dev/null @@ -1,102 +0,0 @@ -#include -#include - -uint64_t f_u_rca8(uint64_t a, uint64_t b){ - uint64_t f_u_rca8_out = 0; - uint8_t f_u_rca8_ha_xor0 = 0; - uint8_t f_u_rca8_ha_and0 = 0; - uint8_t f_u_rca8_fa1_xor0 = 0; - uint8_t f_u_rca8_fa1_and0 = 0; - uint8_t f_u_rca8_fa1_xor1 = 0; - uint8_t f_u_rca8_fa1_and1 = 0; - uint8_t f_u_rca8_fa1_or0 = 0; - uint8_t f_u_rca8_fa2_xor0 = 0; - uint8_t f_u_rca8_fa2_and0 = 0; - uint8_t f_u_rca8_fa2_xor1 = 0; - uint8_t f_u_rca8_fa2_and1 = 0; - uint8_t f_u_rca8_fa2_or0 = 0; - uint8_t f_u_rca8_fa3_xor0 = 0; - uint8_t f_u_rca8_fa3_and0 = 0; - uint8_t f_u_rca8_fa3_xor1 = 0; - uint8_t f_u_rca8_fa3_and1 = 0; - uint8_t f_u_rca8_fa3_or0 = 0; - uint8_t f_u_rca8_fa4_xor0 = 0; - uint8_t f_u_rca8_fa4_and0 = 0; - uint8_t f_u_rca8_fa4_xor1 = 0; - uint8_t f_u_rca8_fa4_and1 = 0; - uint8_t f_u_rca8_fa4_or0 = 0; - uint8_t f_u_rca8_fa5_xor0 = 0; - uint8_t f_u_rca8_fa5_and0 = 0; - uint8_t f_u_rca8_fa5_xor1 = 0; - uint8_t f_u_rca8_fa5_and1 = 0; - uint8_t f_u_rca8_fa5_or0 = 0; - uint8_t f_u_rca8_fa6_xor0 = 0; - uint8_t f_u_rca8_fa6_and0 = 0; - uint8_t f_u_rca8_fa6_xor1 = 0; - uint8_t f_u_rca8_fa6_and1 = 0; - uint8_t f_u_rca8_fa6_or0 = 0; - uint8_t f_u_rca8_fa7_xor0 = 0; - uint8_t f_u_rca8_fa7_and0 = 0; - uint8_t f_u_rca8_fa7_xor1 = 0; - uint8_t f_u_rca8_fa7_and1 = 0; - uint8_t f_u_rca8_fa7_or0 = 0; - - f_u_rca8_ha_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_u_rca8_ha_and0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_rca8_fa1_xor0 = ((a >> 1) & 0x01) ^ ((b >> 1) & 0x01); - f_u_rca8_fa1_and0 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_rca8_fa1_xor1 = ((f_u_rca8_fa1_xor0 >> 0) & 0x01) ^ ((f_u_rca8_ha_and0 >> 0) & 0x01); - f_u_rca8_fa1_and1 = ((f_u_rca8_fa1_xor0 >> 0) & 0x01) & ((f_u_rca8_ha_and0 >> 0) & 0x01); - f_u_rca8_fa1_or0 = ((f_u_rca8_fa1_and0 >> 0) & 0x01) | ((f_u_rca8_fa1_and1 >> 0) & 0x01); - f_u_rca8_fa2_xor0 = ((a >> 2) & 0x01) ^ ((b >> 2) & 0x01); - f_u_rca8_fa2_and0 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_rca8_fa2_xor1 = ((f_u_rca8_fa2_xor0 >> 0) & 0x01) ^ ((f_u_rca8_fa1_or0 >> 0) & 0x01); - f_u_rca8_fa2_and1 = ((f_u_rca8_fa2_xor0 >> 0) & 0x01) & ((f_u_rca8_fa1_or0 >> 0) & 0x01); - f_u_rca8_fa2_or0 = ((f_u_rca8_fa2_and0 >> 0) & 0x01) | ((f_u_rca8_fa2_and1 >> 0) & 0x01); - f_u_rca8_fa3_xor0 = ((a >> 3) & 0x01) ^ ((b >> 3) & 0x01); - f_u_rca8_fa3_and0 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_rca8_fa3_xor1 = ((f_u_rca8_fa3_xor0 >> 0) & 0x01) ^ ((f_u_rca8_fa2_or0 >> 0) & 0x01); - f_u_rca8_fa3_and1 = ((f_u_rca8_fa3_xor0 >> 0) & 0x01) & ((f_u_rca8_fa2_or0 >> 0) & 0x01); - f_u_rca8_fa3_or0 = ((f_u_rca8_fa3_and0 >> 0) & 0x01) | ((f_u_rca8_fa3_and1 >> 0) & 0x01); - f_u_rca8_fa4_xor0 = ((a >> 4) & 0x01) ^ ((b >> 4) & 0x01); - f_u_rca8_fa4_and0 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_u_rca8_fa4_xor1 = ((f_u_rca8_fa4_xor0 >> 0) & 0x01) ^ ((f_u_rca8_fa3_or0 >> 0) & 0x01); - f_u_rca8_fa4_and1 = ((f_u_rca8_fa4_xor0 >> 0) & 0x01) & ((f_u_rca8_fa3_or0 >> 0) & 0x01); - f_u_rca8_fa4_or0 = ((f_u_rca8_fa4_and0 >> 0) & 0x01) | ((f_u_rca8_fa4_and1 >> 0) & 0x01); - f_u_rca8_fa5_xor0 = ((a >> 5) & 0x01) ^ ((b >> 5) & 0x01); - f_u_rca8_fa5_and0 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_u_rca8_fa5_xor1 = ((f_u_rca8_fa5_xor0 >> 0) & 0x01) ^ ((f_u_rca8_fa4_or0 >> 0) & 0x01); - f_u_rca8_fa5_and1 = ((f_u_rca8_fa5_xor0 >> 0) & 0x01) & ((f_u_rca8_fa4_or0 >> 0) & 0x01); - f_u_rca8_fa5_or0 = ((f_u_rca8_fa5_and0 >> 0) & 0x01) | ((f_u_rca8_fa5_and1 >> 0) & 0x01); - f_u_rca8_fa6_xor0 = ((a >> 6) & 0x01) ^ ((b >> 6) & 0x01); - f_u_rca8_fa6_and0 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_u_rca8_fa6_xor1 = ((f_u_rca8_fa6_xor0 >> 0) & 0x01) ^ ((f_u_rca8_fa5_or0 >> 0) & 0x01); - f_u_rca8_fa6_and1 = ((f_u_rca8_fa6_xor0 >> 0) & 0x01) & ((f_u_rca8_fa5_or0 >> 0) & 0x01); - f_u_rca8_fa6_or0 = ((f_u_rca8_fa6_and0 >> 0) & 0x01) | ((f_u_rca8_fa6_and1 >> 0) & 0x01); - f_u_rca8_fa7_xor0 = ((a >> 7) & 0x01) ^ ((b >> 7) & 0x01); - f_u_rca8_fa7_and0 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_u_rca8_fa7_xor1 = ((f_u_rca8_fa7_xor0 >> 0) & 0x01) ^ ((f_u_rca8_fa6_or0 >> 0) & 0x01); - f_u_rca8_fa7_and1 = ((f_u_rca8_fa7_xor0 >> 0) & 0x01) & ((f_u_rca8_fa6_or0 >> 0) & 0x01); - f_u_rca8_fa7_or0 = ((f_u_rca8_fa7_and0 >> 0) & 0x01) | ((f_u_rca8_fa7_and1 >> 0) & 0x01); - - f_u_rca8_out |= ((f_u_rca8_ha_xor0 >> 0) & 0x01) << 0; - f_u_rca8_out |= ((f_u_rca8_fa1_xor1 >> 0) & 0x01) << 1; - f_u_rca8_out |= ((f_u_rca8_fa2_xor1 >> 0) & 0x01) << 2; - f_u_rca8_out |= ((f_u_rca8_fa3_xor1 >> 0) & 0x01) << 3; - f_u_rca8_out |= ((f_u_rca8_fa4_xor1 >> 0) & 0x01) << 4; - f_u_rca8_out |= ((f_u_rca8_fa5_xor1 >> 0) & 0x01) << 5; - f_u_rca8_out |= ((f_u_rca8_fa6_xor1 >> 0) & 0x01) << 6; - f_u_rca8_out |= ((f_u_rca8_fa7_xor1 >> 0) & 0x01) << 7; - f_u_rca8_out |= ((f_u_rca8_fa7_or0 >> 0) & 0x01) << 8; - return f_u_rca8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i + j) == f_u_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/dividers/f_arrdiv4.c b/c_circuits_simulation_tests/c_circuits/flat/dividers/f_arrdiv4.c deleted file mode 100644 index 2195387..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/dividers/f_arrdiv4.c +++ /dev/null @@ -1,277 +0,0 @@ -#include -#include - -uint64_t f_arrdiv4(uint64_t a, uint64_t b){ - uint8_t f_arrdiv4_out = 0; - uint8_t f_arrdiv4_fs0_xor0 = 0; - uint8_t f_arrdiv4_fs0_not0 = 0; - uint8_t f_arrdiv4_fs0_and0 = 0; - uint8_t f_arrdiv4_fs0_not1 = 0; - uint8_t f_arrdiv4_fs1_xor1 = 0; - uint8_t f_arrdiv4_fs1_not1 = 0; - uint8_t f_arrdiv4_fs1_and1 = 0; - uint8_t f_arrdiv4_fs1_or0 = 0; - uint8_t f_arrdiv4_fs2_xor1 = 0; - uint8_t f_arrdiv4_fs2_not1 = 0; - uint8_t f_arrdiv4_fs2_and1 = 0; - uint8_t f_arrdiv4_fs2_or0 = 0; - uint8_t f_arrdiv4_fs3_xor1 = 0; - uint8_t f_arrdiv4_fs3_not1 = 0; - uint8_t f_arrdiv4_fs3_and1 = 0; - uint8_t f_arrdiv4_fs3_or0 = 0; - uint8_t f_arrdiv4_mux2to10_and0 = 0; - uint8_t f_arrdiv4_mux2to10_not0 = 0; - uint8_t f_arrdiv4_mux2to10_and1 = 0; - uint8_t f_arrdiv4_mux2to10_xor0 = 0; - uint8_t f_arrdiv4_mux2to11_not0 = 0; - uint8_t f_arrdiv4_mux2to11_and1 = 0; - uint8_t f_arrdiv4_mux2to12_not0 = 0; - uint8_t f_arrdiv4_mux2to12_and1 = 0; - uint8_t f_arrdiv4_not0 = 0; - uint8_t f_arrdiv4_fs4_xor0 = 0; - uint8_t f_arrdiv4_fs4_not0 = 0; - uint8_t f_arrdiv4_fs4_and0 = 0; - uint8_t f_arrdiv4_fs4_not1 = 0; - uint8_t f_arrdiv4_fs5_xor0 = 0; - uint8_t f_arrdiv4_fs5_not0 = 0; - uint8_t f_arrdiv4_fs5_and0 = 0; - uint8_t f_arrdiv4_fs5_xor1 = 0; - uint8_t f_arrdiv4_fs5_not1 = 0; - uint8_t f_arrdiv4_fs5_and1 = 0; - uint8_t f_arrdiv4_fs5_or0 = 0; - uint8_t f_arrdiv4_fs6_xor0 = 0; - uint8_t f_arrdiv4_fs6_not0 = 0; - uint8_t f_arrdiv4_fs6_and0 = 0; - uint8_t f_arrdiv4_fs6_xor1 = 0; - uint8_t f_arrdiv4_fs6_not1 = 0; - uint8_t f_arrdiv4_fs6_and1 = 0; - uint8_t f_arrdiv4_fs6_or0 = 0; - uint8_t f_arrdiv4_fs7_xor0 = 0; - uint8_t f_arrdiv4_fs7_not0 = 0; - uint8_t f_arrdiv4_fs7_and0 = 0; - uint8_t f_arrdiv4_fs7_xor1 = 0; - uint8_t f_arrdiv4_fs7_not1 = 0; - uint8_t f_arrdiv4_fs7_and1 = 0; - uint8_t f_arrdiv4_fs7_or0 = 0; - uint8_t f_arrdiv4_mux2to13_and0 = 0; - uint8_t f_arrdiv4_mux2to13_not0 = 0; - uint8_t f_arrdiv4_mux2to13_and1 = 0; - uint8_t f_arrdiv4_mux2to13_xor0 = 0; - uint8_t f_arrdiv4_mux2to14_and0 = 0; - uint8_t f_arrdiv4_mux2to14_not0 = 0; - uint8_t f_arrdiv4_mux2to14_and1 = 0; - uint8_t f_arrdiv4_mux2to14_xor0 = 0; - uint8_t f_arrdiv4_mux2to15_and0 = 0; - uint8_t f_arrdiv4_mux2to15_not0 = 0; - uint8_t f_arrdiv4_mux2to15_and1 = 0; - uint8_t f_arrdiv4_mux2to15_xor0 = 0; - uint8_t f_arrdiv4_not1 = 0; - uint8_t f_arrdiv4_fs8_xor0 = 0; - uint8_t f_arrdiv4_fs8_not0 = 0; - uint8_t f_arrdiv4_fs8_and0 = 0; - uint8_t f_arrdiv4_fs8_not1 = 0; - uint8_t f_arrdiv4_fs9_xor0 = 0; - uint8_t f_arrdiv4_fs9_not0 = 0; - uint8_t f_arrdiv4_fs9_and0 = 0; - uint8_t f_arrdiv4_fs9_xor1 = 0; - uint8_t f_arrdiv4_fs9_not1 = 0; - uint8_t f_arrdiv4_fs9_and1 = 0; - uint8_t f_arrdiv4_fs9_or0 = 0; - uint8_t f_arrdiv4_fs10_xor0 = 0; - uint8_t f_arrdiv4_fs10_not0 = 0; - uint8_t f_arrdiv4_fs10_and0 = 0; - uint8_t f_arrdiv4_fs10_xor1 = 0; - uint8_t f_arrdiv4_fs10_not1 = 0; - uint8_t f_arrdiv4_fs10_and1 = 0; - uint8_t f_arrdiv4_fs10_or0 = 0; - uint8_t f_arrdiv4_fs11_xor0 = 0; - uint8_t f_arrdiv4_fs11_not0 = 0; - uint8_t f_arrdiv4_fs11_and0 = 0; - uint8_t f_arrdiv4_fs11_xor1 = 0; - uint8_t f_arrdiv4_fs11_not1 = 0; - uint8_t f_arrdiv4_fs11_and1 = 0; - uint8_t f_arrdiv4_fs11_or0 = 0; - uint8_t f_arrdiv4_mux2to16_and0 = 0; - uint8_t f_arrdiv4_mux2to16_not0 = 0; - uint8_t f_arrdiv4_mux2to16_and1 = 0; - uint8_t f_arrdiv4_mux2to16_xor0 = 0; - uint8_t f_arrdiv4_mux2to17_and0 = 0; - uint8_t f_arrdiv4_mux2to17_not0 = 0; - uint8_t f_arrdiv4_mux2to17_and1 = 0; - uint8_t f_arrdiv4_mux2to17_xor0 = 0; - uint8_t f_arrdiv4_mux2to18_and0 = 0; - uint8_t f_arrdiv4_mux2to18_not0 = 0; - uint8_t f_arrdiv4_mux2to18_and1 = 0; - uint8_t f_arrdiv4_mux2to18_xor0 = 0; - uint8_t f_arrdiv4_not2 = 0; - uint8_t f_arrdiv4_fs12_xor0 = 0; - uint8_t f_arrdiv4_fs12_not0 = 0; - uint8_t f_arrdiv4_fs12_and0 = 0; - uint8_t f_arrdiv4_fs12_not1 = 0; - uint8_t f_arrdiv4_fs13_xor0 = 0; - uint8_t f_arrdiv4_fs13_not0 = 0; - uint8_t f_arrdiv4_fs13_and0 = 0; - uint8_t f_arrdiv4_fs13_xor1 = 0; - uint8_t f_arrdiv4_fs13_not1 = 0; - uint8_t f_arrdiv4_fs13_and1 = 0; - uint8_t f_arrdiv4_fs13_or0 = 0; - uint8_t f_arrdiv4_fs14_xor0 = 0; - uint8_t f_arrdiv4_fs14_not0 = 0; - uint8_t f_arrdiv4_fs14_and0 = 0; - uint8_t f_arrdiv4_fs14_xor1 = 0; - uint8_t f_arrdiv4_fs14_not1 = 0; - uint8_t f_arrdiv4_fs14_and1 = 0; - uint8_t f_arrdiv4_fs14_or0 = 0; - uint8_t f_arrdiv4_fs15_xor0 = 0; - uint8_t f_arrdiv4_fs15_not0 = 0; - uint8_t f_arrdiv4_fs15_and0 = 0; - uint8_t f_arrdiv4_fs15_xor1 = 0; - uint8_t f_arrdiv4_fs15_not1 = 0; - uint8_t f_arrdiv4_fs15_and1 = 0; - uint8_t f_arrdiv4_fs15_or0 = 0; - uint8_t f_arrdiv4_not3 = 0; - - f_arrdiv4_fs0_xor0 = ((a >> 3) & 0x01) ^ ((b >> 0) & 0x01); - f_arrdiv4_fs0_not0 = ~(((a >> 3) & 0x01)) & 0x01; - f_arrdiv4_fs0_and0 = ((f_arrdiv4_fs0_not0 >> 0) & 0x01) & ((b >> 0) & 0x01); - f_arrdiv4_fs0_not1 = ~(((f_arrdiv4_fs0_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs1_xor1 = ((f_arrdiv4_fs0_and0 >> 0) & 0x01) ^ ((b >> 1) & 0x01); - f_arrdiv4_fs1_not1 = ~(((b >> 1) & 0x01)) & 0x01; - f_arrdiv4_fs1_and1 = ((f_arrdiv4_fs1_not1 >> 0) & 0x01) & ((f_arrdiv4_fs0_and0 >> 0) & 0x01); - f_arrdiv4_fs1_or0 = ((f_arrdiv4_fs1_and1 >> 0) & 0x01) | ((b >> 1) & 0x01); - f_arrdiv4_fs2_xor1 = ((f_arrdiv4_fs1_or0 >> 0) & 0x01) ^ ((b >> 2) & 0x01); - f_arrdiv4_fs2_not1 = ~(((b >> 2) & 0x01)) & 0x01; - f_arrdiv4_fs2_and1 = ((f_arrdiv4_fs2_not1 >> 0) & 0x01) & ((f_arrdiv4_fs1_or0 >> 0) & 0x01); - f_arrdiv4_fs2_or0 = ((f_arrdiv4_fs2_and1 >> 0) & 0x01) | ((b >> 2) & 0x01); - f_arrdiv4_fs3_xor1 = ((f_arrdiv4_fs2_or0 >> 0) & 0x01) ^ ((b >> 3) & 0x01); - f_arrdiv4_fs3_not1 = ~(((b >> 3) & 0x01)) & 0x01; - f_arrdiv4_fs3_and1 = ((f_arrdiv4_fs3_not1 >> 0) & 0x01) & ((f_arrdiv4_fs2_or0 >> 0) & 0x01); - f_arrdiv4_fs3_or0 = ((f_arrdiv4_fs3_and1 >> 0) & 0x01) | ((b >> 3) & 0x01); - f_arrdiv4_mux2to10_and0 = ((a >> 3) & 0x01) & ((f_arrdiv4_fs3_or0 >> 0) & 0x01); - f_arrdiv4_mux2to10_not0 = ~(((f_arrdiv4_fs3_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_mux2to10_and1 = ((f_arrdiv4_fs0_xor0 >> 0) & 0x01) & ((f_arrdiv4_mux2to10_not0 >> 0) & 0x01); - f_arrdiv4_mux2to10_xor0 = ((f_arrdiv4_mux2to10_and0 >> 0) & 0x01) ^ ((f_arrdiv4_mux2to10_and1 >> 0) & 0x01); - f_arrdiv4_mux2to11_not0 = ~(((f_arrdiv4_fs3_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_mux2to11_and1 = ((f_arrdiv4_fs1_xor1 >> 0) & 0x01) & ((f_arrdiv4_mux2to11_not0 >> 0) & 0x01); - f_arrdiv4_mux2to12_not0 = ~(((f_arrdiv4_fs3_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_mux2to12_and1 = ((f_arrdiv4_fs2_xor1 >> 0) & 0x01) & ((f_arrdiv4_mux2to12_not0 >> 0) & 0x01); - f_arrdiv4_not0 = ~(((f_arrdiv4_fs3_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs4_xor0 = ((a >> 2) & 0x01) ^ ((b >> 0) & 0x01); - f_arrdiv4_fs4_not0 = ~(((a >> 2) & 0x01)) & 0x01; - f_arrdiv4_fs4_and0 = ((f_arrdiv4_fs4_not0 >> 0) & 0x01) & ((b >> 0) & 0x01); - f_arrdiv4_fs4_not1 = ~(((f_arrdiv4_fs4_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs5_xor0 = ((f_arrdiv4_mux2to10_xor0 >> 0) & 0x01) ^ ((b >> 1) & 0x01); - f_arrdiv4_fs5_not0 = ~(((f_arrdiv4_mux2to10_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs5_and0 = ((f_arrdiv4_fs5_not0 >> 0) & 0x01) & ((b >> 1) & 0x01); - f_arrdiv4_fs5_xor1 = ((f_arrdiv4_fs4_and0 >> 0) & 0x01) ^ ((f_arrdiv4_fs5_xor0 >> 0) & 0x01); - f_arrdiv4_fs5_not1 = ~(((f_arrdiv4_fs5_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs5_and1 = ((f_arrdiv4_fs5_not1 >> 0) & 0x01) & ((f_arrdiv4_fs4_and0 >> 0) & 0x01); - f_arrdiv4_fs5_or0 = ((f_arrdiv4_fs5_and1 >> 0) & 0x01) | ((f_arrdiv4_fs5_and0 >> 0) & 0x01); - f_arrdiv4_fs6_xor0 = ((f_arrdiv4_mux2to11_and1 >> 0) & 0x01) ^ ((b >> 2) & 0x01); - f_arrdiv4_fs6_not0 = ~(((f_arrdiv4_mux2to11_and1 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs6_and0 = ((f_arrdiv4_fs6_not0 >> 0) & 0x01) & ((b >> 2) & 0x01); - f_arrdiv4_fs6_xor1 = ((f_arrdiv4_fs5_or0 >> 0) & 0x01) ^ ((f_arrdiv4_fs6_xor0 >> 0) & 0x01); - f_arrdiv4_fs6_not1 = ~(((f_arrdiv4_fs6_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs6_and1 = ((f_arrdiv4_fs6_not1 >> 0) & 0x01) & ((f_arrdiv4_fs5_or0 >> 0) & 0x01); - f_arrdiv4_fs6_or0 = ((f_arrdiv4_fs6_and1 >> 0) & 0x01) | ((f_arrdiv4_fs6_and0 >> 0) & 0x01); - f_arrdiv4_fs7_xor0 = ((f_arrdiv4_mux2to12_and1 >> 0) & 0x01) ^ ((b >> 3) & 0x01); - f_arrdiv4_fs7_not0 = ~(((f_arrdiv4_mux2to12_and1 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs7_and0 = ((f_arrdiv4_fs7_not0 >> 0) & 0x01) & ((b >> 3) & 0x01); - f_arrdiv4_fs7_xor1 = ((f_arrdiv4_fs6_or0 >> 0) & 0x01) ^ ((f_arrdiv4_fs7_xor0 >> 0) & 0x01); - f_arrdiv4_fs7_not1 = ~(((f_arrdiv4_fs7_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs7_and1 = ((f_arrdiv4_fs7_not1 >> 0) & 0x01) & ((f_arrdiv4_fs6_or0 >> 0) & 0x01); - f_arrdiv4_fs7_or0 = ((f_arrdiv4_fs7_and1 >> 0) & 0x01) | ((f_arrdiv4_fs7_and0 >> 0) & 0x01); - f_arrdiv4_mux2to13_and0 = ((a >> 2) & 0x01) & ((f_arrdiv4_fs7_or0 >> 0) & 0x01); - f_arrdiv4_mux2to13_not0 = ~(((f_arrdiv4_fs7_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_mux2to13_and1 = ((f_arrdiv4_fs4_xor0 >> 0) & 0x01) & ((f_arrdiv4_mux2to13_not0 >> 0) & 0x01); - f_arrdiv4_mux2to13_xor0 = ((f_arrdiv4_mux2to13_and0 >> 0) & 0x01) ^ ((f_arrdiv4_mux2to13_and1 >> 0) & 0x01); - f_arrdiv4_mux2to14_and0 = ((f_arrdiv4_mux2to10_xor0 >> 0) & 0x01) & ((f_arrdiv4_fs7_or0 >> 0) & 0x01); - f_arrdiv4_mux2to14_not0 = ~(((f_arrdiv4_fs7_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_mux2to14_and1 = ((f_arrdiv4_fs5_xor1 >> 0) & 0x01) & ((f_arrdiv4_mux2to14_not0 >> 0) & 0x01); - f_arrdiv4_mux2to14_xor0 = ((f_arrdiv4_mux2to14_and0 >> 0) & 0x01) ^ ((f_arrdiv4_mux2to14_and1 >> 0) & 0x01); - f_arrdiv4_mux2to15_and0 = ((f_arrdiv4_mux2to11_and1 >> 0) & 0x01) & ((f_arrdiv4_fs7_or0 >> 0) & 0x01); - f_arrdiv4_mux2to15_not0 = ~(((f_arrdiv4_fs7_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_mux2to15_and1 = ((f_arrdiv4_fs6_xor1 >> 0) & 0x01) & ((f_arrdiv4_mux2to15_not0 >> 0) & 0x01); - f_arrdiv4_mux2to15_xor0 = ((f_arrdiv4_mux2to15_and0 >> 0) & 0x01) ^ ((f_arrdiv4_mux2to15_and1 >> 0) & 0x01); - f_arrdiv4_not1 = ~(((f_arrdiv4_fs7_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs8_xor0 = ((a >> 1) & 0x01) ^ ((b >> 0) & 0x01); - f_arrdiv4_fs8_not0 = ~(((a >> 1) & 0x01)) & 0x01; - f_arrdiv4_fs8_and0 = ((f_arrdiv4_fs8_not0 >> 0) & 0x01) & ((b >> 0) & 0x01); - f_arrdiv4_fs8_not1 = ~(((f_arrdiv4_fs8_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs9_xor0 = ((f_arrdiv4_mux2to13_xor0 >> 0) & 0x01) ^ ((b >> 1) & 0x01); - f_arrdiv4_fs9_not0 = ~(((f_arrdiv4_mux2to13_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs9_and0 = ((f_arrdiv4_fs9_not0 >> 0) & 0x01) & ((b >> 1) & 0x01); - f_arrdiv4_fs9_xor1 = ((f_arrdiv4_fs8_and0 >> 0) & 0x01) ^ ((f_arrdiv4_fs9_xor0 >> 0) & 0x01); - f_arrdiv4_fs9_not1 = ~(((f_arrdiv4_fs9_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs9_and1 = ((f_arrdiv4_fs9_not1 >> 0) & 0x01) & ((f_arrdiv4_fs8_and0 >> 0) & 0x01); - f_arrdiv4_fs9_or0 = ((f_arrdiv4_fs9_and1 >> 0) & 0x01) | ((f_arrdiv4_fs9_and0 >> 0) & 0x01); - f_arrdiv4_fs10_xor0 = ((f_arrdiv4_mux2to14_xor0 >> 0) & 0x01) ^ ((b >> 2) & 0x01); - f_arrdiv4_fs10_not0 = ~(((f_arrdiv4_mux2to14_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs10_and0 = ((f_arrdiv4_fs10_not0 >> 0) & 0x01) & ((b >> 2) & 0x01); - f_arrdiv4_fs10_xor1 = ((f_arrdiv4_fs9_or0 >> 0) & 0x01) ^ ((f_arrdiv4_fs10_xor0 >> 0) & 0x01); - f_arrdiv4_fs10_not1 = ~(((f_arrdiv4_fs10_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs10_and1 = ((f_arrdiv4_fs10_not1 >> 0) & 0x01) & ((f_arrdiv4_fs9_or0 >> 0) & 0x01); - f_arrdiv4_fs10_or0 = ((f_arrdiv4_fs10_and1 >> 0) & 0x01) | ((f_arrdiv4_fs10_and0 >> 0) & 0x01); - f_arrdiv4_fs11_xor0 = ((f_arrdiv4_mux2to15_xor0 >> 0) & 0x01) ^ ((b >> 3) & 0x01); - f_arrdiv4_fs11_not0 = ~(((f_arrdiv4_mux2to15_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs11_and0 = ((f_arrdiv4_fs11_not0 >> 0) & 0x01) & ((b >> 3) & 0x01); - f_arrdiv4_fs11_xor1 = ((f_arrdiv4_fs10_or0 >> 0) & 0x01) ^ ((f_arrdiv4_fs11_xor0 >> 0) & 0x01); - f_arrdiv4_fs11_not1 = ~(((f_arrdiv4_fs11_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs11_and1 = ((f_arrdiv4_fs11_not1 >> 0) & 0x01) & ((f_arrdiv4_fs10_or0 >> 0) & 0x01); - f_arrdiv4_fs11_or0 = ((f_arrdiv4_fs11_and1 >> 0) & 0x01) | ((f_arrdiv4_fs11_and0 >> 0) & 0x01); - f_arrdiv4_mux2to16_and0 = ((a >> 1) & 0x01) & ((f_arrdiv4_fs11_or0 >> 0) & 0x01); - f_arrdiv4_mux2to16_not0 = ~(((f_arrdiv4_fs11_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_mux2to16_and1 = ((f_arrdiv4_fs8_xor0 >> 0) & 0x01) & ((f_arrdiv4_mux2to16_not0 >> 0) & 0x01); - f_arrdiv4_mux2to16_xor0 = ((f_arrdiv4_mux2to16_and0 >> 0) & 0x01) ^ ((f_arrdiv4_mux2to16_and1 >> 0) & 0x01); - f_arrdiv4_mux2to17_and0 = ((f_arrdiv4_mux2to13_xor0 >> 0) & 0x01) & ((f_arrdiv4_fs11_or0 >> 0) & 0x01); - f_arrdiv4_mux2to17_not0 = ~(((f_arrdiv4_fs11_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_mux2to17_and1 = ((f_arrdiv4_fs9_xor1 >> 0) & 0x01) & ((f_arrdiv4_mux2to17_not0 >> 0) & 0x01); - f_arrdiv4_mux2to17_xor0 = ((f_arrdiv4_mux2to17_and0 >> 0) & 0x01) ^ ((f_arrdiv4_mux2to17_and1 >> 0) & 0x01); - f_arrdiv4_mux2to18_and0 = ((f_arrdiv4_mux2to14_xor0 >> 0) & 0x01) & ((f_arrdiv4_fs11_or0 >> 0) & 0x01); - f_arrdiv4_mux2to18_not0 = ~(((f_arrdiv4_fs11_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_mux2to18_and1 = ((f_arrdiv4_fs10_xor1 >> 0) & 0x01) & ((f_arrdiv4_mux2to18_not0 >> 0) & 0x01); - f_arrdiv4_mux2to18_xor0 = ((f_arrdiv4_mux2to18_and0 >> 0) & 0x01) ^ ((f_arrdiv4_mux2to18_and1 >> 0) & 0x01); - f_arrdiv4_not2 = ~(((f_arrdiv4_fs11_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs12_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_arrdiv4_fs12_not0 = ~(((a >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs12_and0 = ((f_arrdiv4_fs12_not0 >> 0) & 0x01) & ((b >> 0) & 0x01); - f_arrdiv4_fs12_not1 = ~(((f_arrdiv4_fs12_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs13_xor0 = ((f_arrdiv4_mux2to16_xor0 >> 0) & 0x01) ^ ((b >> 1) & 0x01); - f_arrdiv4_fs13_not0 = ~(((f_arrdiv4_mux2to16_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs13_and0 = ((f_arrdiv4_fs13_not0 >> 0) & 0x01) & ((b >> 1) & 0x01); - f_arrdiv4_fs13_xor1 = ((f_arrdiv4_fs12_and0 >> 0) & 0x01) ^ ((f_arrdiv4_fs13_xor0 >> 0) & 0x01); - f_arrdiv4_fs13_not1 = ~(((f_arrdiv4_fs13_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs13_and1 = ((f_arrdiv4_fs13_not1 >> 0) & 0x01) & ((f_arrdiv4_fs12_and0 >> 0) & 0x01); - f_arrdiv4_fs13_or0 = ((f_arrdiv4_fs13_and1 >> 0) & 0x01) | ((f_arrdiv4_fs13_and0 >> 0) & 0x01); - f_arrdiv4_fs14_xor0 = ((f_arrdiv4_mux2to17_xor0 >> 0) & 0x01) ^ ((b >> 2) & 0x01); - f_arrdiv4_fs14_not0 = ~(((f_arrdiv4_mux2to17_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs14_and0 = ((f_arrdiv4_fs14_not0 >> 0) & 0x01) & ((b >> 2) & 0x01); - f_arrdiv4_fs14_xor1 = ((f_arrdiv4_fs13_or0 >> 0) & 0x01) ^ ((f_arrdiv4_fs14_xor0 >> 0) & 0x01); - f_arrdiv4_fs14_not1 = ~(((f_arrdiv4_fs14_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs14_and1 = ((f_arrdiv4_fs14_not1 >> 0) & 0x01) & ((f_arrdiv4_fs13_or0 >> 0) & 0x01); - f_arrdiv4_fs14_or0 = ((f_arrdiv4_fs14_and1 >> 0) & 0x01) | ((f_arrdiv4_fs14_and0 >> 0) & 0x01); - f_arrdiv4_fs15_xor0 = ((f_arrdiv4_mux2to18_xor0 >> 0) & 0x01) ^ ((b >> 3) & 0x01); - f_arrdiv4_fs15_not0 = ~(((f_arrdiv4_mux2to18_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs15_and0 = ((f_arrdiv4_fs15_not0 >> 0) & 0x01) & ((b >> 3) & 0x01); - f_arrdiv4_fs15_xor1 = ((f_arrdiv4_fs14_or0 >> 0) & 0x01) ^ ((f_arrdiv4_fs15_xor0 >> 0) & 0x01); - f_arrdiv4_fs15_not1 = ~(((f_arrdiv4_fs15_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv4_fs15_and1 = ((f_arrdiv4_fs15_not1 >> 0) & 0x01) & ((f_arrdiv4_fs14_or0 >> 0) & 0x01); - f_arrdiv4_fs15_or0 = ((f_arrdiv4_fs15_and1 >> 0) & 0x01) | ((f_arrdiv4_fs15_and0 >> 0) & 0x01); - f_arrdiv4_not3 = ~(((f_arrdiv4_fs15_or0 >> 0) & 0x01)) & 0x01; - - f_arrdiv4_out |= ((f_arrdiv4_not3 >> 0) & 0x01) << 0; - f_arrdiv4_out |= ((f_arrdiv4_not2 >> 0) & 0x01) << 1; - f_arrdiv4_out |= ((f_arrdiv4_not1 >> 0) & 0x01) << 2; - f_arrdiv4_out |= ((f_arrdiv4_not0 >> 0) & 0x01) << 3; - return f_arrdiv4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 1; j < 16; j++){ - assert((i / j) == f_arrdiv4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/dividers/f_arrdiv8.c b/c_circuits_simulation_tests/c_circuits/flat/dividers/f_arrdiv8.c deleted file mode 100644 index 1a04a0f..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/dividers/f_arrdiv8.c +++ /dev/null @@ -1,1217 +0,0 @@ -#include -#include - -uint64_t f_arrdiv8(uint64_t a, uint64_t b){ - uint8_t f_arrdiv8_out = 0; - uint8_t f_arrdiv8_fs0_xor0 = 0; - uint8_t f_arrdiv8_fs0_not0 = 0; - uint8_t f_arrdiv8_fs0_and0 = 0; - uint8_t f_arrdiv8_fs0_not1 = 0; - uint8_t f_arrdiv8_fs1_xor1 = 0; - uint8_t f_arrdiv8_fs1_not1 = 0; - uint8_t f_arrdiv8_fs1_and1 = 0; - uint8_t f_arrdiv8_fs1_or0 = 0; - uint8_t f_arrdiv8_fs2_xor1 = 0; - uint8_t f_arrdiv8_fs2_not1 = 0; - uint8_t f_arrdiv8_fs2_and1 = 0; - uint8_t f_arrdiv8_fs2_or0 = 0; - uint8_t f_arrdiv8_fs3_xor1 = 0; - uint8_t f_arrdiv8_fs3_not1 = 0; - uint8_t f_arrdiv8_fs3_and1 = 0; - uint8_t f_arrdiv8_fs3_or0 = 0; - uint8_t f_arrdiv8_fs4_xor1 = 0; - uint8_t f_arrdiv8_fs4_not1 = 0; - uint8_t f_arrdiv8_fs4_and1 = 0; - uint8_t f_arrdiv8_fs4_or0 = 0; - uint8_t f_arrdiv8_fs5_xor1 = 0; - uint8_t f_arrdiv8_fs5_not1 = 0; - uint8_t f_arrdiv8_fs5_and1 = 0; - uint8_t f_arrdiv8_fs5_or0 = 0; - uint8_t f_arrdiv8_fs6_xor1 = 0; - uint8_t f_arrdiv8_fs6_not1 = 0; - uint8_t f_arrdiv8_fs6_and1 = 0; - uint8_t f_arrdiv8_fs6_or0 = 0; - uint8_t f_arrdiv8_fs7_xor1 = 0; - uint8_t f_arrdiv8_fs7_not1 = 0; - uint8_t f_arrdiv8_fs7_and1 = 0; - uint8_t f_arrdiv8_fs7_or0 = 0; - uint8_t f_arrdiv8_mux2to10_and0 = 0; - uint8_t f_arrdiv8_mux2to10_not0 = 0; - uint8_t f_arrdiv8_mux2to10_and1 = 0; - uint8_t f_arrdiv8_mux2to10_xor0 = 0; - uint8_t f_arrdiv8_mux2to11_not0 = 0; - uint8_t f_arrdiv8_mux2to11_and1 = 0; - uint8_t f_arrdiv8_mux2to12_not0 = 0; - uint8_t f_arrdiv8_mux2to12_and1 = 0; - uint8_t f_arrdiv8_mux2to13_not0 = 0; - uint8_t f_arrdiv8_mux2to13_and1 = 0; - uint8_t f_arrdiv8_mux2to14_not0 = 0; - uint8_t f_arrdiv8_mux2to14_and1 = 0; - uint8_t f_arrdiv8_mux2to15_not0 = 0; - uint8_t f_arrdiv8_mux2to15_and1 = 0; - uint8_t f_arrdiv8_mux2to16_not0 = 0; - uint8_t f_arrdiv8_mux2to16_and1 = 0; - uint8_t f_arrdiv8_not0 = 0; - uint8_t f_arrdiv8_fs8_xor0 = 0; - uint8_t f_arrdiv8_fs8_not0 = 0; - uint8_t f_arrdiv8_fs8_and0 = 0; - uint8_t f_arrdiv8_fs8_not1 = 0; - uint8_t f_arrdiv8_fs9_xor0 = 0; - uint8_t f_arrdiv8_fs9_not0 = 0; - uint8_t f_arrdiv8_fs9_and0 = 0; - uint8_t f_arrdiv8_fs9_xor1 = 0; - uint8_t f_arrdiv8_fs9_not1 = 0; - uint8_t f_arrdiv8_fs9_and1 = 0; - uint8_t f_arrdiv8_fs9_or0 = 0; - uint8_t f_arrdiv8_fs10_xor0 = 0; - uint8_t f_arrdiv8_fs10_not0 = 0; - uint8_t f_arrdiv8_fs10_and0 = 0; - uint8_t f_arrdiv8_fs10_xor1 = 0; - uint8_t f_arrdiv8_fs10_not1 = 0; - uint8_t f_arrdiv8_fs10_and1 = 0; - uint8_t f_arrdiv8_fs10_or0 = 0; - uint8_t f_arrdiv8_fs11_xor0 = 0; - uint8_t f_arrdiv8_fs11_not0 = 0; - uint8_t f_arrdiv8_fs11_and0 = 0; - uint8_t f_arrdiv8_fs11_xor1 = 0; - uint8_t f_arrdiv8_fs11_not1 = 0; - uint8_t f_arrdiv8_fs11_and1 = 0; - uint8_t f_arrdiv8_fs11_or0 = 0; - uint8_t f_arrdiv8_fs12_xor0 = 0; - uint8_t f_arrdiv8_fs12_not0 = 0; - uint8_t f_arrdiv8_fs12_and0 = 0; - uint8_t f_arrdiv8_fs12_xor1 = 0; - uint8_t f_arrdiv8_fs12_not1 = 0; - uint8_t f_arrdiv8_fs12_and1 = 0; - uint8_t f_arrdiv8_fs12_or0 = 0; - uint8_t f_arrdiv8_fs13_xor0 = 0; - uint8_t f_arrdiv8_fs13_not0 = 0; - uint8_t f_arrdiv8_fs13_and0 = 0; - uint8_t f_arrdiv8_fs13_xor1 = 0; - uint8_t f_arrdiv8_fs13_not1 = 0; - uint8_t f_arrdiv8_fs13_and1 = 0; - uint8_t f_arrdiv8_fs13_or0 = 0; - uint8_t f_arrdiv8_fs14_xor0 = 0; - uint8_t f_arrdiv8_fs14_not0 = 0; - uint8_t f_arrdiv8_fs14_and0 = 0; - uint8_t f_arrdiv8_fs14_xor1 = 0; - uint8_t f_arrdiv8_fs14_not1 = 0; - uint8_t f_arrdiv8_fs14_and1 = 0; - uint8_t f_arrdiv8_fs14_or0 = 0; - uint8_t f_arrdiv8_fs15_xor0 = 0; - uint8_t f_arrdiv8_fs15_not0 = 0; - uint8_t f_arrdiv8_fs15_and0 = 0; - uint8_t f_arrdiv8_fs15_xor1 = 0; - uint8_t f_arrdiv8_fs15_not1 = 0; - uint8_t f_arrdiv8_fs15_and1 = 0; - uint8_t f_arrdiv8_fs15_or0 = 0; - uint8_t f_arrdiv8_mux2to17_and0 = 0; - uint8_t f_arrdiv8_mux2to17_not0 = 0; - uint8_t f_arrdiv8_mux2to17_and1 = 0; - uint8_t f_arrdiv8_mux2to17_xor0 = 0; - uint8_t f_arrdiv8_mux2to18_and0 = 0; - uint8_t f_arrdiv8_mux2to18_not0 = 0; - uint8_t f_arrdiv8_mux2to18_and1 = 0; - uint8_t f_arrdiv8_mux2to18_xor0 = 0; - uint8_t f_arrdiv8_mux2to19_and0 = 0; - uint8_t f_arrdiv8_mux2to19_not0 = 0; - uint8_t f_arrdiv8_mux2to19_and1 = 0; - uint8_t f_arrdiv8_mux2to19_xor0 = 0; - uint8_t f_arrdiv8_mux2to110_and0 = 0; - uint8_t f_arrdiv8_mux2to110_not0 = 0; - uint8_t f_arrdiv8_mux2to110_and1 = 0; - uint8_t f_arrdiv8_mux2to110_xor0 = 0; - uint8_t f_arrdiv8_mux2to111_and0 = 0; - uint8_t f_arrdiv8_mux2to111_not0 = 0; - uint8_t f_arrdiv8_mux2to111_and1 = 0; - uint8_t f_arrdiv8_mux2to111_xor0 = 0; - uint8_t f_arrdiv8_mux2to112_and0 = 0; - uint8_t f_arrdiv8_mux2to112_not0 = 0; - uint8_t f_arrdiv8_mux2to112_and1 = 0; - uint8_t f_arrdiv8_mux2to112_xor0 = 0; - uint8_t f_arrdiv8_mux2to113_and0 = 0; - uint8_t f_arrdiv8_mux2to113_not0 = 0; - uint8_t f_arrdiv8_mux2to113_and1 = 0; - uint8_t f_arrdiv8_mux2to113_xor0 = 0; - uint8_t f_arrdiv8_not1 = 0; - uint8_t f_arrdiv8_fs16_xor0 = 0; - uint8_t f_arrdiv8_fs16_not0 = 0; - uint8_t f_arrdiv8_fs16_and0 = 0; - uint8_t f_arrdiv8_fs16_not1 = 0; - uint8_t f_arrdiv8_fs17_xor0 = 0; - uint8_t f_arrdiv8_fs17_not0 = 0; - uint8_t f_arrdiv8_fs17_and0 = 0; - uint8_t f_arrdiv8_fs17_xor1 = 0; - uint8_t f_arrdiv8_fs17_not1 = 0; - uint8_t f_arrdiv8_fs17_and1 = 0; - uint8_t f_arrdiv8_fs17_or0 = 0; - uint8_t f_arrdiv8_fs18_xor0 = 0; - uint8_t f_arrdiv8_fs18_not0 = 0; - uint8_t f_arrdiv8_fs18_and0 = 0; - uint8_t f_arrdiv8_fs18_xor1 = 0; - uint8_t f_arrdiv8_fs18_not1 = 0; - uint8_t f_arrdiv8_fs18_and1 = 0; - uint8_t f_arrdiv8_fs18_or0 = 0; - uint8_t f_arrdiv8_fs19_xor0 = 0; - uint8_t f_arrdiv8_fs19_not0 = 0; - uint8_t f_arrdiv8_fs19_and0 = 0; - uint8_t f_arrdiv8_fs19_xor1 = 0; - uint8_t f_arrdiv8_fs19_not1 = 0; - uint8_t f_arrdiv8_fs19_and1 = 0; - uint8_t f_arrdiv8_fs19_or0 = 0; - uint8_t f_arrdiv8_fs20_xor0 = 0; - uint8_t f_arrdiv8_fs20_not0 = 0; - uint8_t f_arrdiv8_fs20_and0 = 0; - uint8_t f_arrdiv8_fs20_xor1 = 0; - uint8_t f_arrdiv8_fs20_not1 = 0; - uint8_t f_arrdiv8_fs20_and1 = 0; - uint8_t f_arrdiv8_fs20_or0 = 0; - uint8_t f_arrdiv8_fs21_xor0 = 0; - uint8_t f_arrdiv8_fs21_not0 = 0; - uint8_t f_arrdiv8_fs21_and0 = 0; - uint8_t f_arrdiv8_fs21_xor1 = 0; - uint8_t f_arrdiv8_fs21_not1 = 0; - uint8_t f_arrdiv8_fs21_and1 = 0; - uint8_t f_arrdiv8_fs21_or0 = 0; - uint8_t f_arrdiv8_fs22_xor0 = 0; - uint8_t f_arrdiv8_fs22_not0 = 0; - uint8_t f_arrdiv8_fs22_and0 = 0; - uint8_t f_arrdiv8_fs22_xor1 = 0; - uint8_t f_arrdiv8_fs22_not1 = 0; - uint8_t f_arrdiv8_fs22_and1 = 0; - uint8_t f_arrdiv8_fs22_or0 = 0; - uint8_t f_arrdiv8_fs23_xor0 = 0; - uint8_t f_arrdiv8_fs23_not0 = 0; - uint8_t f_arrdiv8_fs23_and0 = 0; - uint8_t f_arrdiv8_fs23_xor1 = 0; - uint8_t f_arrdiv8_fs23_not1 = 0; - uint8_t f_arrdiv8_fs23_and1 = 0; - uint8_t f_arrdiv8_fs23_or0 = 0; - uint8_t f_arrdiv8_mux2to114_and0 = 0; - uint8_t f_arrdiv8_mux2to114_not0 = 0; - uint8_t f_arrdiv8_mux2to114_and1 = 0; - uint8_t f_arrdiv8_mux2to114_xor0 = 0; - uint8_t f_arrdiv8_mux2to115_and0 = 0; - uint8_t f_arrdiv8_mux2to115_not0 = 0; - uint8_t f_arrdiv8_mux2to115_and1 = 0; - uint8_t f_arrdiv8_mux2to115_xor0 = 0; - uint8_t f_arrdiv8_mux2to116_and0 = 0; - uint8_t f_arrdiv8_mux2to116_not0 = 0; - uint8_t f_arrdiv8_mux2to116_and1 = 0; - uint8_t f_arrdiv8_mux2to116_xor0 = 0; - uint8_t f_arrdiv8_mux2to117_and0 = 0; - uint8_t f_arrdiv8_mux2to117_not0 = 0; - uint8_t f_arrdiv8_mux2to117_and1 = 0; - uint8_t f_arrdiv8_mux2to117_xor0 = 0; - uint8_t f_arrdiv8_mux2to118_and0 = 0; - uint8_t f_arrdiv8_mux2to118_not0 = 0; - uint8_t f_arrdiv8_mux2to118_and1 = 0; - uint8_t f_arrdiv8_mux2to118_xor0 = 0; - uint8_t f_arrdiv8_mux2to119_and0 = 0; - uint8_t f_arrdiv8_mux2to119_not0 = 0; - uint8_t f_arrdiv8_mux2to119_and1 = 0; - uint8_t f_arrdiv8_mux2to119_xor0 = 0; - uint8_t f_arrdiv8_mux2to120_and0 = 0; - uint8_t f_arrdiv8_mux2to120_not0 = 0; - uint8_t f_arrdiv8_mux2to120_and1 = 0; - uint8_t f_arrdiv8_mux2to120_xor0 = 0; - uint8_t f_arrdiv8_not2 = 0; - uint8_t f_arrdiv8_fs24_xor0 = 0; - uint8_t f_arrdiv8_fs24_not0 = 0; - uint8_t f_arrdiv8_fs24_and0 = 0; - uint8_t f_arrdiv8_fs24_not1 = 0; - uint8_t f_arrdiv8_fs25_xor0 = 0; - uint8_t f_arrdiv8_fs25_not0 = 0; - uint8_t f_arrdiv8_fs25_and0 = 0; - uint8_t f_arrdiv8_fs25_xor1 = 0; - uint8_t f_arrdiv8_fs25_not1 = 0; - uint8_t f_arrdiv8_fs25_and1 = 0; - uint8_t f_arrdiv8_fs25_or0 = 0; - uint8_t f_arrdiv8_fs26_xor0 = 0; - uint8_t f_arrdiv8_fs26_not0 = 0; - uint8_t f_arrdiv8_fs26_and0 = 0; - uint8_t f_arrdiv8_fs26_xor1 = 0; - uint8_t f_arrdiv8_fs26_not1 = 0; - uint8_t f_arrdiv8_fs26_and1 = 0; - uint8_t f_arrdiv8_fs26_or0 = 0; - uint8_t f_arrdiv8_fs27_xor0 = 0; - uint8_t f_arrdiv8_fs27_not0 = 0; - uint8_t f_arrdiv8_fs27_and0 = 0; - uint8_t f_arrdiv8_fs27_xor1 = 0; - uint8_t f_arrdiv8_fs27_not1 = 0; - uint8_t f_arrdiv8_fs27_and1 = 0; - uint8_t f_arrdiv8_fs27_or0 = 0; - uint8_t f_arrdiv8_fs28_xor0 = 0; - uint8_t f_arrdiv8_fs28_not0 = 0; - uint8_t f_arrdiv8_fs28_and0 = 0; - uint8_t f_arrdiv8_fs28_xor1 = 0; - uint8_t f_arrdiv8_fs28_not1 = 0; - uint8_t f_arrdiv8_fs28_and1 = 0; - uint8_t f_arrdiv8_fs28_or0 = 0; - uint8_t f_arrdiv8_fs29_xor0 = 0; - uint8_t f_arrdiv8_fs29_not0 = 0; - uint8_t f_arrdiv8_fs29_and0 = 0; - uint8_t f_arrdiv8_fs29_xor1 = 0; - uint8_t f_arrdiv8_fs29_not1 = 0; - uint8_t f_arrdiv8_fs29_and1 = 0; - uint8_t f_arrdiv8_fs29_or0 = 0; - uint8_t f_arrdiv8_fs30_xor0 = 0; - uint8_t f_arrdiv8_fs30_not0 = 0; - uint8_t f_arrdiv8_fs30_and0 = 0; - uint8_t f_arrdiv8_fs30_xor1 = 0; - uint8_t f_arrdiv8_fs30_not1 = 0; - uint8_t f_arrdiv8_fs30_and1 = 0; - uint8_t f_arrdiv8_fs30_or0 = 0; - uint8_t f_arrdiv8_fs31_xor0 = 0; - uint8_t f_arrdiv8_fs31_not0 = 0; - uint8_t f_arrdiv8_fs31_and0 = 0; - uint8_t f_arrdiv8_fs31_xor1 = 0; - uint8_t f_arrdiv8_fs31_not1 = 0; - uint8_t f_arrdiv8_fs31_and1 = 0; - uint8_t f_arrdiv8_fs31_or0 = 0; - uint8_t f_arrdiv8_mux2to121_and0 = 0; - uint8_t f_arrdiv8_mux2to121_not0 = 0; - uint8_t f_arrdiv8_mux2to121_and1 = 0; - uint8_t f_arrdiv8_mux2to121_xor0 = 0; - uint8_t f_arrdiv8_mux2to122_and0 = 0; - uint8_t f_arrdiv8_mux2to122_not0 = 0; - uint8_t f_arrdiv8_mux2to122_and1 = 0; - uint8_t f_arrdiv8_mux2to122_xor0 = 0; - uint8_t f_arrdiv8_mux2to123_and0 = 0; - uint8_t f_arrdiv8_mux2to123_not0 = 0; - uint8_t f_arrdiv8_mux2to123_and1 = 0; - uint8_t f_arrdiv8_mux2to123_xor0 = 0; - uint8_t f_arrdiv8_mux2to124_and0 = 0; - uint8_t f_arrdiv8_mux2to124_not0 = 0; - uint8_t f_arrdiv8_mux2to124_and1 = 0; - uint8_t f_arrdiv8_mux2to124_xor0 = 0; - uint8_t f_arrdiv8_mux2to125_and0 = 0; - uint8_t f_arrdiv8_mux2to125_not0 = 0; - uint8_t f_arrdiv8_mux2to125_and1 = 0; - uint8_t f_arrdiv8_mux2to125_xor0 = 0; - uint8_t f_arrdiv8_mux2to126_and0 = 0; - uint8_t f_arrdiv8_mux2to126_not0 = 0; - uint8_t f_arrdiv8_mux2to126_and1 = 0; - uint8_t f_arrdiv8_mux2to126_xor0 = 0; - uint8_t f_arrdiv8_mux2to127_and0 = 0; - uint8_t f_arrdiv8_mux2to127_not0 = 0; - uint8_t f_arrdiv8_mux2to127_and1 = 0; - uint8_t f_arrdiv8_mux2to127_xor0 = 0; - uint8_t f_arrdiv8_not3 = 0; - uint8_t f_arrdiv8_fs32_xor0 = 0; - uint8_t f_arrdiv8_fs32_not0 = 0; - uint8_t f_arrdiv8_fs32_and0 = 0; - uint8_t f_arrdiv8_fs32_not1 = 0; - uint8_t f_arrdiv8_fs33_xor0 = 0; - uint8_t f_arrdiv8_fs33_not0 = 0; - uint8_t f_arrdiv8_fs33_and0 = 0; - uint8_t f_arrdiv8_fs33_xor1 = 0; - uint8_t f_arrdiv8_fs33_not1 = 0; - uint8_t f_arrdiv8_fs33_and1 = 0; - uint8_t f_arrdiv8_fs33_or0 = 0; - uint8_t f_arrdiv8_fs34_xor0 = 0; - uint8_t f_arrdiv8_fs34_not0 = 0; - uint8_t f_arrdiv8_fs34_and0 = 0; - uint8_t f_arrdiv8_fs34_xor1 = 0; - uint8_t f_arrdiv8_fs34_not1 = 0; - uint8_t f_arrdiv8_fs34_and1 = 0; - uint8_t f_arrdiv8_fs34_or0 = 0; - uint8_t f_arrdiv8_fs35_xor0 = 0; - uint8_t f_arrdiv8_fs35_not0 = 0; - uint8_t f_arrdiv8_fs35_and0 = 0; - uint8_t f_arrdiv8_fs35_xor1 = 0; - uint8_t f_arrdiv8_fs35_not1 = 0; - uint8_t f_arrdiv8_fs35_and1 = 0; - uint8_t f_arrdiv8_fs35_or0 = 0; - uint8_t f_arrdiv8_fs36_xor0 = 0; - uint8_t f_arrdiv8_fs36_not0 = 0; - uint8_t f_arrdiv8_fs36_and0 = 0; - uint8_t f_arrdiv8_fs36_xor1 = 0; - uint8_t f_arrdiv8_fs36_not1 = 0; - uint8_t f_arrdiv8_fs36_and1 = 0; - uint8_t f_arrdiv8_fs36_or0 = 0; - uint8_t f_arrdiv8_fs37_xor0 = 0; - uint8_t f_arrdiv8_fs37_not0 = 0; - uint8_t f_arrdiv8_fs37_and0 = 0; - uint8_t f_arrdiv8_fs37_xor1 = 0; - uint8_t f_arrdiv8_fs37_not1 = 0; - uint8_t f_arrdiv8_fs37_and1 = 0; - uint8_t f_arrdiv8_fs37_or0 = 0; - uint8_t f_arrdiv8_fs38_xor0 = 0; - uint8_t f_arrdiv8_fs38_not0 = 0; - uint8_t f_arrdiv8_fs38_and0 = 0; - uint8_t f_arrdiv8_fs38_xor1 = 0; - uint8_t f_arrdiv8_fs38_not1 = 0; - uint8_t f_arrdiv8_fs38_and1 = 0; - uint8_t f_arrdiv8_fs38_or0 = 0; - uint8_t f_arrdiv8_fs39_xor0 = 0; - uint8_t f_arrdiv8_fs39_not0 = 0; - uint8_t f_arrdiv8_fs39_and0 = 0; - uint8_t f_arrdiv8_fs39_xor1 = 0; - uint8_t f_arrdiv8_fs39_not1 = 0; - uint8_t f_arrdiv8_fs39_and1 = 0; - uint8_t f_arrdiv8_fs39_or0 = 0; - uint8_t f_arrdiv8_mux2to128_and0 = 0; - uint8_t f_arrdiv8_mux2to128_not0 = 0; - uint8_t f_arrdiv8_mux2to128_and1 = 0; - uint8_t f_arrdiv8_mux2to128_xor0 = 0; - uint8_t f_arrdiv8_mux2to129_and0 = 0; - uint8_t f_arrdiv8_mux2to129_not0 = 0; - uint8_t f_arrdiv8_mux2to129_and1 = 0; - uint8_t f_arrdiv8_mux2to129_xor0 = 0; - uint8_t f_arrdiv8_mux2to130_and0 = 0; - uint8_t f_arrdiv8_mux2to130_not0 = 0; - uint8_t f_arrdiv8_mux2to130_and1 = 0; - uint8_t f_arrdiv8_mux2to130_xor0 = 0; - uint8_t f_arrdiv8_mux2to131_and0 = 0; - uint8_t f_arrdiv8_mux2to131_not0 = 0; - uint8_t f_arrdiv8_mux2to131_and1 = 0; - uint8_t f_arrdiv8_mux2to131_xor0 = 0; - uint8_t f_arrdiv8_mux2to132_and0 = 0; - uint8_t f_arrdiv8_mux2to132_not0 = 0; - uint8_t f_arrdiv8_mux2to132_and1 = 0; - uint8_t f_arrdiv8_mux2to132_xor0 = 0; - uint8_t f_arrdiv8_mux2to133_and0 = 0; - uint8_t f_arrdiv8_mux2to133_not0 = 0; - uint8_t f_arrdiv8_mux2to133_and1 = 0; - uint8_t f_arrdiv8_mux2to133_xor0 = 0; - uint8_t f_arrdiv8_mux2to134_and0 = 0; - uint8_t f_arrdiv8_mux2to134_not0 = 0; - uint8_t f_arrdiv8_mux2to134_and1 = 0; - uint8_t f_arrdiv8_mux2to134_xor0 = 0; - uint8_t f_arrdiv8_not4 = 0; - uint8_t f_arrdiv8_fs40_xor0 = 0; - uint8_t f_arrdiv8_fs40_not0 = 0; - uint8_t f_arrdiv8_fs40_and0 = 0; - uint8_t f_arrdiv8_fs40_not1 = 0; - uint8_t f_arrdiv8_fs41_xor0 = 0; - uint8_t f_arrdiv8_fs41_not0 = 0; - uint8_t f_arrdiv8_fs41_and0 = 0; - uint8_t f_arrdiv8_fs41_xor1 = 0; - uint8_t f_arrdiv8_fs41_not1 = 0; - uint8_t f_arrdiv8_fs41_and1 = 0; - uint8_t f_arrdiv8_fs41_or0 = 0; - uint8_t f_arrdiv8_fs42_xor0 = 0; - uint8_t f_arrdiv8_fs42_not0 = 0; - uint8_t f_arrdiv8_fs42_and0 = 0; - uint8_t f_arrdiv8_fs42_xor1 = 0; - uint8_t f_arrdiv8_fs42_not1 = 0; - uint8_t f_arrdiv8_fs42_and1 = 0; - uint8_t f_arrdiv8_fs42_or0 = 0; - uint8_t f_arrdiv8_fs43_xor0 = 0; - uint8_t f_arrdiv8_fs43_not0 = 0; - uint8_t f_arrdiv8_fs43_and0 = 0; - uint8_t f_arrdiv8_fs43_xor1 = 0; - uint8_t f_arrdiv8_fs43_not1 = 0; - uint8_t f_arrdiv8_fs43_and1 = 0; - uint8_t f_arrdiv8_fs43_or0 = 0; - uint8_t f_arrdiv8_fs44_xor0 = 0; - uint8_t f_arrdiv8_fs44_not0 = 0; - uint8_t f_arrdiv8_fs44_and0 = 0; - uint8_t f_arrdiv8_fs44_xor1 = 0; - uint8_t f_arrdiv8_fs44_not1 = 0; - uint8_t f_arrdiv8_fs44_and1 = 0; - uint8_t f_arrdiv8_fs44_or0 = 0; - uint8_t f_arrdiv8_fs45_xor0 = 0; - uint8_t f_arrdiv8_fs45_not0 = 0; - uint8_t f_arrdiv8_fs45_and0 = 0; - uint8_t f_arrdiv8_fs45_xor1 = 0; - uint8_t f_arrdiv8_fs45_not1 = 0; - uint8_t f_arrdiv8_fs45_and1 = 0; - uint8_t f_arrdiv8_fs45_or0 = 0; - uint8_t f_arrdiv8_fs46_xor0 = 0; - uint8_t f_arrdiv8_fs46_not0 = 0; - uint8_t f_arrdiv8_fs46_and0 = 0; - uint8_t f_arrdiv8_fs46_xor1 = 0; - uint8_t f_arrdiv8_fs46_not1 = 0; - uint8_t f_arrdiv8_fs46_and1 = 0; - uint8_t f_arrdiv8_fs46_or0 = 0; - uint8_t f_arrdiv8_fs47_xor0 = 0; - uint8_t f_arrdiv8_fs47_not0 = 0; - uint8_t f_arrdiv8_fs47_and0 = 0; - uint8_t f_arrdiv8_fs47_xor1 = 0; - uint8_t f_arrdiv8_fs47_not1 = 0; - uint8_t f_arrdiv8_fs47_and1 = 0; - uint8_t f_arrdiv8_fs47_or0 = 0; - uint8_t f_arrdiv8_mux2to135_and0 = 0; - uint8_t f_arrdiv8_mux2to135_not0 = 0; - uint8_t f_arrdiv8_mux2to135_and1 = 0; - uint8_t f_arrdiv8_mux2to135_xor0 = 0; - uint8_t f_arrdiv8_mux2to136_and0 = 0; - uint8_t f_arrdiv8_mux2to136_not0 = 0; - uint8_t f_arrdiv8_mux2to136_and1 = 0; - uint8_t f_arrdiv8_mux2to136_xor0 = 0; - uint8_t f_arrdiv8_mux2to137_and0 = 0; - uint8_t f_arrdiv8_mux2to137_not0 = 0; - uint8_t f_arrdiv8_mux2to137_and1 = 0; - uint8_t f_arrdiv8_mux2to137_xor0 = 0; - uint8_t f_arrdiv8_mux2to138_and0 = 0; - uint8_t f_arrdiv8_mux2to138_not0 = 0; - uint8_t f_arrdiv8_mux2to138_and1 = 0; - uint8_t f_arrdiv8_mux2to138_xor0 = 0; - uint8_t f_arrdiv8_mux2to139_and0 = 0; - uint8_t f_arrdiv8_mux2to139_not0 = 0; - uint8_t f_arrdiv8_mux2to139_and1 = 0; - uint8_t f_arrdiv8_mux2to139_xor0 = 0; - uint8_t f_arrdiv8_mux2to140_and0 = 0; - uint8_t f_arrdiv8_mux2to140_not0 = 0; - uint8_t f_arrdiv8_mux2to140_and1 = 0; - uint8_t f_arrdiv8_mux2to140_xor0 = 0; - uint8_t f_arrdiv8_mux2to141_and0 = 0; - uint8_t f_arrdiv8_mux2to141_not0 = 0; - uint8_t f_arrdiv8_mux2to141_and1 = 0; - uint8_t f_arrdiv8_mux2to141_xor0 = 0; - uint8_t f_arrdiv8_not5 = 0; - uint8_t f_arrdiv8_fs48_xor0 = 0; - uint8_t f_arrdiv8_fs48_not0 = 0; - uint8_t f_arrdiv8_fs48_and0 = 0; - uint8_t f_arrdiv8_fs48_not1 = 0; - uint8_t f_arrdiv8_fs49_xor0 = 0; - uint8_t f_arrdiv8_fs49_not0 = 0; - uint8_t f_arrdiv8_fs49_and0 = 0; - uint8_t f_arrdiv8_fs49_xor1 = 0; - uint8_t f_arrdiv8_fs49_not1 = 0; - uint8_t f_arrdiv8_fs49_and1 = 0; - uint8_t f_arrdiv8_fs49_or0 = 0; - uint8_t f_arrdiv8_fs50_xor0 = 0; - uint8_t f_arrdiv8_fs50_not0 = 0; - uint8_t f_arrdiv8_fs50_and0 = 0; - uint8_t f_arrdiv8_fs50_xor1 = 0; - uint8_t f_arrdiv8_fs50_not1 = 0; - uint8_t f_arrdiv8_fs50_and1 = 0; - uint8_t f_arrdiv8_fs50_or0 = 0; - uint8_t f_arrdiv8_fs51_xor0 = 0; - uint8_t f_arrdiv8_fs51_not0 = 0; - uint8_t f_arrdiv8_fs51_and0 = 0; - uint8_t f_arrdiv8_fs51_xor1 = 0; - uint8_t f_arrdiv8_fs51_not1 = 0; - uint8_t f_arrdiv8_fs51_and1 = 0; - uint8_t f_arrdiv8_fs51_or0 = 0; - uint8_t f_arrdiv8_fs52_xor0 = 0; - uint8_t f_arrdiv8_fs52_not0 = 0; - uint8_t f_arrdiv8_fs52_and0 = 0; - uint8_t f_arrdiv8_fs52_xor1 = 0; - uint8_t f_arrdiv8_fs52_not1 = 0; - uint8_t f_arrdiv8_fs52_and1 = 0; - uint8_t f_arrdiv8_fs52_or0 = 0; - uint8_t f_arrdiv8_fs53_xor0 = 0; - uint8_t f_arrdiv8_fs53_not0 = 0; - uint8_t f_arrdiv8_fs53_and0 = 0; - uint8_t f_arrdiv8_fs53_xor1 = 0; - uint8_t f_arrdiv8_fs53_not1 = 0; - uint8_t f_arrdiv8_fs53_and1 = 0; - uint8_t f_arrdiv8_fs53_or0 = 0; - uint8_t f_arrdiv8_fs54_xor0 = 0; - uint8_t f_arrdiv8_fs54_not0 = 0; - uint8_t f_arrdiv8_fs54_and0 = 0; - uint8_t f_arrdiv8_fs54_xor1 = 0; - uint8_t f_arrdiv8_fs54_not1 = 0; - uint8_t f_arrdiv8_fs54_and1 = 0; - uint8_t f_arrdiv8_fs54_or0 = 0; - uint8_t f_arrdiv8_fs55_xor0 = 0; - uint8_t f_arrdiv8_fs55_not0 = 0; - uint8_t f_arrdiv8_fs55_and0 = 0; - uint8_t f_arrdiv8_fs55_xor1 = 0; - uint8_t f_arrdiv8_fs55_not1 = 0; - uint8_t f_arrdiv8_fs55_and1 = 0; - uint8_t f_arrdiv8_fs55_or0 = 0; - uint8_t f_arrdiv8_mux2to142_and0 = 0; - uint8_t f_arrdiv8_mux2to142_not0 = 0; - uint8_t f_arrdiv8_mux2to142_and1 = 0; - uint8_t f_arrdiv8_mux2to142_xor0 = 0; - uint8_t f_arrdiv8_mux2to143_and0 = 0; - uint8_t f_arrdiv8_mux2to143_not0 = 0; - uint8_t f_arrdiv8_mux2to143_and1 = 0; - uint8_t f_arrdiv8_mux2to143_xor0 = 0; - uint8_t f_arrdiv8_mux2to144_and0 = 0; - uint8_t f_arrdiv8_mux2to144_not0 = 0; - uint8_t f_arrdiv8_mux2to144_and1 = 0; - uint8_t f_arrdiv8_mux2to144_xor0 = 0; - uint8_t f_arrdiv8_mux2to145_and0 = 0; - uint8_t f_arrdiv8_mux2to145_not0 = 0; - uint8_t f_arrdiv8_mux2to145_and1 = 0; - uint8_t f_arrdiv8_mux2to145_xor0 = 0; - uint8_t f_arrdiv8_mux2to146_and0 = 0; - uint8_t f_arrdiv8_mux2to146_not0 = 0; - uint8_t f_arrdiv8_mux2to146_and1 = 0; - uint8_t f_arrdiv8_mux2to146_xor0 = 0; - uint8_t f_arrdiv8_mux2to147_and0 = 0; - uint8_t f_arrdiv8_mux2to147_not0 = 0; - uint8_t f_arrdiv8_mux2to147_and1 = 0; - uint8_t f_arrdiv8_mux2to147_xor0 = 0; - uint8_t f_arrdiv8_mux2to148_and0 = 0; - uint8_t f_arrdiv8_mux2to148_not0 = 0; - uint8_t f_arrdiv8_mux2to148_and1 = 0; - uint8_t f_arrdiv8_mux2to148_xor0 = 0; - uint8_t f_arrdiv8_not6 = 0; - uint8_t f_arrdiv8_fs56_xor0 = 0; - uint8_t f_arrdiv8_fs56_not0 = 0; - uint8_t f_arrdiv8_fs56_and0 = 0; - uint8_t f_arrdiv8_fs56_not1 = 0; - uint8_t f_arrdiv8_fs57_xor0 = 0; - uint8_t f_arrdiv8_fs57_not0 = 0; - uint8_t f_arrdiv8_fs57_and0 = 0; - uint8_t f_arrdiv8_fs57_xor1 = 0; - uint8_t f_arrdiv8_fs57_not1 = 0; - uint8_t f_arrdiv8_fs57_and1 = 0; - uint8_t f_arrdiv8_fs57_or0 = 0; - uint8_t f_arrdiv8_fs58_xor0 = 0; - uint8_t f_arrdiv8_fs58_not0 = 0; - uint8_t f_arrdiv8_fs58_and0 = 0; - uint8_t f_arrdiv8_fs58_xor1 = 0; - uint8_t f_arrdiv8_fs58_not1 = 0; - uint8_t f_arrdiv8_fs58_and1 = 0; - uint8_t f_arrdiv8_fs58_or0 = 0; - uint8_t f_arrdiv8_fs59_xor0 = 0; - uint8_t f_arrdiv8_fs59_not0 = 0; - uint8_t f_arrdiv8_fs59_and0 = 0; - uint8_t f_arrdiv8_fs59_xor1 = 0; - uint8_t f_arrdiv8_fs59_not1 = 0; - uint8_t f_arrdiv8_fs59_and1 = 0; - uint8_t f_arrdiv8_fs59_or0 = 0; - uint8_t f_arrdiv8_fs60_xor0 = 0; - uint8_t f_arrdiv8_fs60_not0 = 0; - uint8_t f_arrdiv8_fs60_and0 = 0; - uint8_t f_arrdiv8_fs60_xor1 = 0; - uint8_t f_arrdiv8_fs60_not1 = 0; - uint8_t f_arrdiv8_fs60_and1 = 0; - uint8_t f_arrdiv8_fs60_or0 = 0; - uint8_t f_arrdiv8_fs61_xor0 = 0; - uint8_t f_arrdiv8_fs61_not0 = 0; - uint8_t f_arrdiv8_fs61_and0 = 0; - uint8_t f_arrdiv8_fs61_xor1 = 0; - uint8_t f_arrdiv8_fs61_not1 = 0; - uint8_t f_arrdiv8_fs61_and1 = 0; - uint8_t f_arrdiv8_fs61_or0 = 0; - uint8_t f_arrdiv8_fs62_xor0 = 0; - uint8_t f_arrdiv8_fs62_not0 = 0; - uint8_t f_arrdiv8_fs62_and0 = 0; - uint8_t f_arrdiv8_fs62_xor1 = 0; - uint8_t f_arrdiv8_fs62_not1 = 0; - uint8_t f_arrdiv8_fs62_and1 = 0; - uint8_t f_arrdiv8_fs62_or0 = 0; - uint8_t f_arrdiv8_fs63_xor0 = 0; - uint8_t f_arrdiv8_fs63_not0 = 0; - uint8_t f_arrdiv8_fs63_and0 = 0; - uint8_t f_arrdiv8_fs63_xor1 = 0; - uint8_t f_arrdiv8_fs63_not1 = 0; - uint8_t f_arrdiv8_fs63_and1 = 0; - uint8_t f_arrdiv8_fs63_or0 = 0; - uint8_t f_arrdiv8_not7 = 0; - - f_arrdiv8_fs0_xor0 = ((a >> 7) & 0x01) ^ ((b >> 0) & 0x01); - f_arrdiv8_fs0_not0 = ~(((a >> 7) & 0x01)) & 0x01; - f_arrdiv8_fs0_and0 = ((f_arrdiv8_fs0_not0 >> 0) & 0x01) & ((b >> 0) & 0x01); - f_arrdiv8_fs0_not1 = ~(((f_arrdiv8_fs0_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs1_xor1 = ((f_arrdiv8_fs0_and0 >> 0) & 0x01) ^ ((b >> 1) & 0x01); - f_arrdiv8_fs1_not1 = ~(((b >> 1) & 0x01)) & 0x01; - f_arrdiv8_fs1_and1 = ((f_arrdiv8_fs1_not1 >> 0) & 0x01) & ((f_arrdiv8_fs0_and0 >> 0) & 0x01); - f_arrdiv8_fs1_or0 = ((f_arrdiv8_fs1_and1 >> 0) & 0x01) | ((b >> 1) & 0x01); - f_arrdiv8_fs2_xor1 = ((f_arrdiv8_fs1_or0 >> 0) & 0x01) ^ ((b >> 2) & 0x01); - f_arrdiv8_fs2_not1 = ~(((b >> 2) & 0x01)) & 0x01; - f_arrdiv8_fs2_and1 = ((f_arrdiv8_fs2_not1 >> 0) & 0x01) & ((f_arrdiv8_fs1_or0 >> 0) & 0x01); - f_arrdiv8_fs2_or0 = ((f_arrdiv8_fs2_and1 >> 0) & 0x01) | ((b >> 2) & 0x01); - f_arrdiv8_fs3_xor1 = ((f_arrdiv8_fs2_or0 >> 0) & 0x01) ^ ((b >> 3) & 0x01); - f_arrdiv8_fs3_not1 = ~(((b >> 3) & 0x01)) & 0x01; - f_arrdiv8_fs3_and1 = ((f_arrdiv8_fs3_not1 >> 0) & 0x01) & ((f_arrdiv8_fs2_or0 >> 0) & 0x01); - f_arrdiv8_fs3_or0 = ((f_arrdiv8_fs3_and1 >> 0) & 0x01) | ((b >> 3) & 0x01); - f_arrdiv8_fs4_xor1 = ((f_arrdiv8_fs3_or0 >> 0) & 0x01) ^ ((b >> 4) & 0x01); - f_arrdiv8_fs4_not1 = ~(((b >> 4) & 0x01)) & 0x01; - f_arrdiv8_fs4_and1 = ((f_arrdiv8_fs4_not1 >> 0) & 0x01) & ((f_arrdiv8_fs3_or0 >> 0) & 0x01); - f_arrdiv8_fs4_or0 = ((f_arrdiv8_fs4_and1 >> 0) & 0x01) | ((b >> 4) & 0x01); - f_arrdiv8_fs5_xor1 = ((f_arrdiv8_fs4_or0 >> 0) & 0x01) ^ ((b >> 5) & 0x01); - f_arrdiv8_fs5_not1 = ~(((b >> 5) & 0x01)) & 0x01; - f_arrdiv8_fs5_and1 = ((f_arrdiv8_fs5_not1 >> 0) & 0x01) & ((f_arrdiv8_fs4_or0 >> 0) & 0x01); - f_arrdiv8_fs5_or0 = ((f_arrdiv8_fs5_and1 >> 0) & 0x01) | ((b >> 5) & 0x01); - f_arrdiv8_fs6_xor1 = ((f_arrdiv8_fs5_or0 >> 0) & 0x01) ^ ((b >> 6) & 0x01); - f_arrdiv8_fs6_not1 = ~(((b >> 6) & 0x01)) & 0x01; - f_arrdiv8_fs6_and1 = ((f_arrdiv8_fs6_not1 >> 0) & 0x01) & ((f_arrdiv8_fs5_or0 >> 0) & 0x01); - f_arrdiv8_fs6_or0 = ((f_arrdiv8_fs6_and1 >> 0) & 0x01) | ((b >> 6) & 0x01); - f_arrdiv8_fs7_xor1 = ((f_arrdiv8_fs6_or0 >> 0) & 0x01) ^ ((b >> 7) & 0x01); - f_arrdiv8_fs7_not1 = ~(((b >> 7) & 0x01)) & 0x01; - f_arrdiv8_fs7_and1 = ((f_arrdiv8_fs7_not1 >> 0) & 0x01) & ((f_arrdiv8_fs6_or0 >> 0) & 0x01); - f_arrdiv8_fs7_or0 = ((f_arrdiv8_fs7_and1 >> 0) & 0x01) | ((b >> 7) & 0x01); - f_arrdiv8_mux2to10_and0 = ((a >> 7) & 0x01) & ((f_arrdiv8_fs7_or0 >> 0) & 0x01); - f_arrdiv8_mux2to10_not0 = ~(((f_arrdiv8_fs7_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to10_and1 = ((f_arrdiv8_fs0_xor0 >> 0) & 0x01) & ((f_arrdiv8_mux2to10_not0 >> 0) & 0x01); - f_arrdiv8_mux2to10_xor0 = ((f_arrdiv8_mux2to10_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to10_and1 >> 0) & 0x01); - f_arrdiv8_mux2to11_not0 = ~(((f_arrdiv8_fs7_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to11_and1 = ((f_arrdiv8_fs1_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to11_not0 >> 0) & 0x01); - f_arrdiv8_mux2to12_not0 = ~(((f_arrdiv8_fs7_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to12_and1 = ((f_arrdiv8_fs2_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to12_not0 >> 0) & 0x01); - f_arrdiv8_mux2to13_not0 = ~(((f_arrdiv8_fs7_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to13_and1 = ((f_arrdiv8_fs3_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to13_not0 >> 0) & 0x01); - f_arrdiv8_mux2to14_not0 = ~(((f_arrdiv8_fs7_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to14_and1 = ((f_arrdiv8_fs4_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to14_not0 >> 0) & 0x01); - f_arrdiv8_mux2to15_not0 = ~(((f_arrdiv8_fs7_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to15_and1 = ((f_arrdiv8_fs5_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to15_not0 >> 0) & 0x01); - f_arrdiv8_mux2to16_not0 = ~(((f_arrdiv8_fs7_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to16_and1 = ((f_arrdiv8_fs6_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to16_not0 >> 0) & 0x01); - f_arrdiv8_not0 = ~(((f_arrdiv8_fs7_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs8_xor0 = ((a >> 6) & 0x01) ^ ((b >> 0) & 0x01); - f_arrdiv8_fs8_not0 = ~(((a >> 6) & 0x01)) & 0x01; - f_arrdiv8_fs8_and0 = ((f_arrdiv8_fs8_not0 >> 0) & 0x01) & ((b >> 0) & 0x01); - f_arrdiv8_fs8_not1 = ~(((f_arrdiv8_fs8_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs9_xor0 = ((f_arrdiv8_mux2to10_xor0 >> 0) & 0x01) ^ ((b >> 1) & 0x01); - f_arrdiv8_fs9_not0 = ~(((f_arrdiv8_mux2to10_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs9_and0 = ((f_arrdiv8_fs9_not0 >> 0) & 0x01) & ((b >> 1) & 0x01); - f_arrdiv8_fs9_xor1 = ((f_arrdiv8_fs8_and0 >> 0) & 0x01) ^ ((f_arrdiv8_fs9_xor0 >> 0) & 0x01); - f_arrdiv8_fs9_not1 = ~(((f_arrdiv8_fs9_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs9_and1 = ((f_arrdiv8_fs9_not1 >> 0) & 0x01) & ((f_arrdiv8_fs8_and0 >> 0) & 0x01); - f_arrdiv8_fs9_or0 = ((f_arrdiv8_fs9_and1 >> 0) & 0x01) | ((f_arrdiv8_fs9_and0 >> 0) & 0x01); - f_arrdiv8_fs10_xor0 = ((f_arrdiv8_mux2to11_and1 >> 0) & 0x01) ^ ((b >> 2) & 0x01); - f_arrdiv8_fs10_not0 = ~(((f_arrdiv8_mux2to11_and1 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs10_and0 = ((f_arrdiv8_fs10_not0 >> 0) & 0x01) & ((b >> 2) & 0x01); - f_arrdiv8_fs10_xor1 = ((f_arrdiv8_fs9_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs10_xor0 >> 0) & 0x01); - f_arrdiv8_fs10_not1 = ~(((f_arrdiv8_fs10_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs10_and1 = ((f_arrdiv8_fs10_not1 >> 0) & 0x01) & ((f_arrdiv8_fs9_or0 >> 0) & 0x01); - f_arrdiv8_fs10_or0 = ((f_arrdiv8_fs10_and1 >> 0) & 0x01) | ((f_arrdiv8_fs10_and0 >> 0) & 0x01); - f_arrdiv8_fs11_xor0 = ((f_arrdiv8_mux2to12_and1 >> 0) & 0x01) ^ ((b >> 3) & 0x01); - f_arrdiv8_fs11_not0 = ~(((f_arrdiv8_mux2to12_and1 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs11_and0 = ((f_arrdiv8_fs11_not0 >> 0) & 0x01) & ((b >> 3) & 0x01); - f_arrdiv8_fs11_xor1 = ((f_arrdiv8_fs10_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs11_xor0 >> 0) & 0x01); - f_arrdiv8_fs11_not1 = ~(((f_arrdiv8_fs11_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs11_and1 = ((f_arrdiv8_fs11_not1 >> 0) & 0x01) & ((f_arrdiv8_fs10_or0 >> 0) & 0x01); - f_arrdiv8_fs11_or0 = ((f_arrdiv8_fs11_and1 >> 0) & 0x01) | ((f_arrdiv8_fs11_and0 >> 0) & 0x01); - f_arrdiv8_fs12_xor0 = ((f_arrdiv8_mux2to13_and1 >> 0) & 0x01) ^ ((b >> 4) & 0x01); - f_arrdiv8_fs12_not0 = ~(((f_arrdiv8_mux2to13_and1 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs12_and0 = ((f_arrdiv8_fs12_not0 >> 0) & 0x01) & ((b >> 4) & 0x01); - f_arrdiv8_fs12_xor1 = ((f_arrdiv8_fs11_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs12_xor0 >> 0) & 0x01); - f_arrdiv8_fs12_not1 = ~(((f_arrdiv8_fs12_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs12_and1 = ((f_arrdiv8_fs12_not1 >> 0) & 0x01) & ((f_arrdiv8_fs11_or0 >> 0) & 0x01); - f_arrdiv8_fs12_or0 = ((f_arrdiv8_fs12_and1 >> 0) & 0x01) | ((f_arrdiv8_fs12_and0 >> 0) & 0x01); - f_arrdiv8_fs13_xor0 = ((f_arrdiv8_mux2to14_and1 >> 0) & 0x01) ^ ((b >> 5) & 0x01); - f_arrdiv8_fs13_not0 = ~(((f_arrdiv8_mux2to14_and1 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs13_and0 = ((f_arrdiv8_fs13_not0 >> 0) & 0x01) & ((b >> 5) & 0x01); - f_arrdiv8_fs13_xor1 = ((f_arrdiv8_fs12_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs13_xor0 >> 0) & 0x01); - f_arrdiv8_fs13_not1 = ~(((f_arrdiv8_fs13_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs13_and1 = ((f_arrdiv8_fs13_not1 >> 0) & 0x01) & ((f_arrdiv8_fs12_or0 >> 0) & 0x01); - f_arrdiv8_fs13_or0 = ((f_arrdiv8_fs13_and1 >> 0) & 0x01) | ((f_arrdiv8_fs13_and0 >> 0) & 0x01); - f_arrdiv8_fs14_xor0 = ((f_arrdiv8_mux2to15_and1 >> 0) & 0x01) ^ ((b >> 6) & 0x01); - f_arrdiv8_fs14_not0 = ~(((f_arrdiv8_mux2to15_and1 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs14_and0 = ((f_arrdiv8_fs14_not0 >> 0) & 0x01) & ((b >> 6) & 0x01); - f_arrdiv8_fs14_xor1 = ((f_arrdiv8_fs13_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs14_xor0 >> 0) & 0x01); - f_arrdiv8_fs14_not1 = ~(((f_arrdiv8_fs14_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs14_and1 = ((f_arrdiv8_fs14_not1 >> 0) & 0x01) & ((f_arrdiv8_fs13_or0 >> 0) & 0x01); - f_arrdiv8_fs14_or0 = ((f_arrdiv8_fs14_and1 >> 0) & 0x01) | ((f_arrdiv8_fs14_and0 >> 0) & 0x01); - f_arrdiv8_fs15_xor0 = ((f_arrdiv8_mux2to16_and1 >> 0) & 0x01) ^ ((b >> 7) & 0x01); - f_arrdiv8_fs15_not0 = ~(((f_arrdiv8_mux2to16_and1 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs15_and0 = ((f_arrdiv8_fs15_not0 >> 0) & 0x01) & ((b >> 7) & 0x01); - f_arrdiv8_fs15_xor1 = ((f_arrdiv8_fs14_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs15_xor0 >> 0) & 0x01); - f_arrdiv8_fs15_not1 = ~(((f_arrdiv8_fs15_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs15_and1 = ((f_arrdiv8_fs15_not1 >> 0) & 0x01) & ((f_arrdiv8_fs14_or0 >> 0) & 0x01); - f_arrdiv8_fs15_or0 = ((f_arrdiv8_fs15_and1 >> 0) & 0x01) | ((f_arrdiv8_fs15_and0 >> 0) & 0x01); - f_arrdiv8_mux2to17_and0 = ((a >> 6) & 0x01) & ((f_arrdiv8_fs15_or0 >> 0) & 0x01); - f_arrdiv8_mux2to17_not0 = ~(((f_arrdiv8_fs15_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to17_and1 = ((f_arrdiv8_fs8_xor0 >> 0) & 0x01) & ((f_arrdiv8_mux2to17_not0 >> 0) & 0x01); - f_arrdiv8_mux2to17_xor0 = ((f_arrdiv8_mux2to17_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to17_and1 >> 0) & 0x01); - f_arrdiv8_mux2to18_and0 = ((f_arrdiv8_mux2to10_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs15_or0 >> 0) & 0x01); - f_arrdiv8_mux2to18_not0 = ~(((f_arrdiv8_fs15_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to18_and1 = ((f_arrdiv8_fs9_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to18_not0 >> 0) & 0x01); - f_arrdiv8_mux2to18_xor0 = ((f_arrdiv8_mux2to18_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to18_and1 >> 0) & 0x01); - f_arrdiv8_mux2to19_and0 = ((f_arrdiv8_mux2to11_and1 >> 0) & 0x01) & ((f_arrdiv8_fs15_or0 >> 0) & 0x01); - f_arrdiv8_mux2to19_not0 = ~(((f_arrdiv8_fs15_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to19_and1 = ((f_arrdiv8_fs10_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to19_not0 >> 0) & 0x01); - f_arrdiv8_mux2to19_xor0 = ((f_arrdiv8_mux2to19_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to19_and1 >> 0) & 0x01); - f_arrdiv8_mux2to110_and0 = ((f_arrdiv8_mux2to12_and1 >> 0) & 0x01) & ((f_arrdiv8_fs15_or0 >> 0) & 0x01); - f_arrdiv8_mux2to110_not0 = ~(((f_arrdiv8_fs15_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to110_and1 = ((f_arrdiv8_fs11_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to110_not0 >> 0) & 0x01); - f_arrdiv8_mux2to110_xor0 = ((f_arrdiv8_mux2to110_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to110_and1 >> 0) & 0x01); - f_arrdiv8_mux2to111_and0 = ((f_arrdiv8_mux2to13_and1 >> 0) & 0x01) & ((f_arrdiv8_fs15_or0 >> 0) & 0x01); - f_arrdiv8_mux2to111_not0 = ~(((f_arrdiv8_fs15_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to111_and1 = ((f_arrdiv8_fs12_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to111_not0 >> 0) & 0x01); - f_arrdiv8_mux2to111_xor0 = ((f_arrdiv8_mux2to111_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to111_and1 >> 0) & 0x01); - f_arrdiv8_mux2to112_and0 = ((f_arrdiv8_mux2to14_and1 >> 0) & 0x01) & ((f_arrdiv8_fs15_or0 >> 0) & 0x01); - f_arrdiv8_mux2to112_not0 = ~(((f_arrdiv8_fs15_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to112_and1 = ((f_arrdiv8_fs13_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to112_not0 >> 0) & 0x01); - f_arrdiv8_mux2to112_xor0 = ((f_arrdiv8_mux2to112_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to112_and1 >> 0) & 0x01); - f_arrdiv8_mux2to113_and0 = ((f_arrdiv8_mux2to15_and1 >> 0) & 0x01) & ((f_arrdiv8_fs15_or0 >> 0) & 0x01); - f_arrdiv8_mux2to113_not0 = ~(((f_arrdiv8_fs15_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to113_and1 = ((f_arrdiv8_fs14_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to113_not0 >> 0) & 0x01); - f_arrdiv8_mux2to113_xor0 = ((f_arrdiv8_mux2to113_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to113_and1 >> 0) & 0x01); - f_arrdiv8_not1 = ~(((f_arrdiv8_fs15_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs16_xor0 = ((a >> 5) & 0x01) ^ ((b >> 0) & 0x01); - f_arrdiv8_fs16_not0 = ~(((a >> 5) & 0x01)) & 0x01; - f_arrdiv8_fs16_and0 = ((f_arrdiv8_fs16_not0 >> 0) & 0x01) & ((b >> 0) & 0x01); - f_arrdiv8_fs16_not1 = ~(((f_arrdiv8_fs16_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs17_xor0 = ((f_arrdiv8_mux2to17_xor0 >> 0) & 0x01) ^ ((b >> 1) & 0x01); - f_arrdiv8_fs17_not0 = ~(((f_arrdiv8_mux2to17_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs17_and0 = ((f_arrdiv8_fs17_not0 >> 0) & 0x01) & ((b >> 1) & 0x01); - f_arrdiv8_fs17_xor1 = ((f_arrdiv8_fs16_and0 >> 0) & 0x01) ^ ((f_arrdiv8_fs17_xor0 >> 0) & 0x01); - f_arrdiv8_fs17_not1 = ~(((f_arrdiv8_fs17_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs17_and1 = ((f_arrdiv8_fs17_not1 >> 0) & 0x01) & ((f_arrdiv8_fs16_and0 >> 0) & 0x01); - f_arrdiv8_fs17_or0 = ((f_arrdiv8_fs17_and1 >> 0) & 0x01) | ((f_arrdiv8_fs17_and0 >> 0) & 0x01); - f_arrdiv8_fs18_xor0 = ((f_arrdiv8_mux2to18_xor0 >> 0) & 0x01) ^ ((b >> 2) & 0x01); - f_arrdiv8_fs18_not0 = ~(((f_arrdiv8_mux2to18_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs18_and0 = ((f_arrdiv8_fs18_not0 >> 0) & 0x01) & ((b >> 2) & 0x01); - f_arrdiv8_fs18_xor1 = ((f_arrdiv8_fs17_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs18_xor0 >> 0) & 0x01); - f_arrdiv8_fs18_not1 = ~(((f_arrdiv8_fs18_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs18_and1 = ((f_arrdiv8_fs18_not1 >> 0) & 0x01) & ((f_arrdiv8_fs17_or0 >> 0) & 0x01); - f_arrdiv8_fs18_or0 = ((f_arrdiv8_fs18_and1 >> 0) & 0x01) | ((f_arrdiv8_fs18_and0 >> 0) & 0x01); - f_arrdiv8_fs19_xor0 = ((f_arrdiv8_mux2to19_xor0 >> 0) & 0x01) ^ ((b >> 3) & 0x01); - f_arrdiv8_fs19_not0 = ~(((f_arrdiv8_mux2to19_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs19_and0 = ((f_arrdiv8_fs19_not0 >> 0) & 0x01) & ((b >> 3) & 0x01); - f_arrdiv8_fs19_xor1 = ((f_arrdiv8_fs18_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs19_xor0 >> 0) & 0x01); - f_arrdiv8_fs19_not1 = ~(((f_arrdiv8_fs19_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs19_and1 = ((f_arrdiv8_fs19_not1 >> 0) & 0x01) & ((f_arrdiv8_fs18_or0 >> 0) & 0x01); - f_arrdiv8_fs19_or0 = ((f_arrdiv8_fs19_and1 >> 0) & 0x01) | ((f_arrdiv8_fs19_and0 >> 0) & 0x01); - f_arrdiv8_fs20_xor0 = ((f_arrdiv8_mux2to110_xor0 >> 0) & 0x01) ^ ((b >> 4) & 0x01); - f_arrdiv8_fs20_not0 = ~(((f_arrdiv8_mux2to110_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs20_and0 = ((f_arrdiv8_fs20_not0 >> 0) & 0x01) & ((b >> 4) & 0x01); - f_arrdiv8_fs20_xor1 = ((f_arrdiv8_fs19_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs20_xor0 >> 0) & 0x01); - f_arrdiv8_fs20_not1 = ~(((f_arrdiv8_fs20_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs20_and1 = ((f_arrdiv8_fs20_not1 >> 0) & 0x01) & ((f_arrdiv8_fs19_or0 >> 0) & 0x01); - f_arrdiv8_fs20_or0 = ((f_arrdiv8_fs20_and1 >> 0) & 0x01) | ((f_arrdiv8_fs20_and0 >> 0) & 0x01); - f_arrdiv8_fs21_xor0 = ((f_arrdiv8_mux2to111_xor0 >> 0) & 0x01) ^ ((b >> 5) & 0x01); - f_arrdiv8_fs21_not0 = ~(((f_arrdiv8_mux2to111_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs21_and0 = ((f_arrdiv8_fs21_not0 >> 0) & 0x01) & ((b >> 5) & 0x01); - f_arrdiv8_fs21_xor1 = ((f_arrdiv8_fs20_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs21_xor0 >> 0) & 0x01); - f_arrdiv8_fs21_not1 = ~(((f_arrdiv8_fs21_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs21_and1 = ((f_arrdiv8_fs21_not1 >> 0) & 0x01) & ((f_arrdiv8_fs20_or0 >> 0) & 0x01); - f_arrdiv8_fs21_or0 = ((f_arrdiv8_fs21_and1 >> 0) & 0x01) | ((f_arrdiv8_fs21_and0 >> 0) & 0x01); - f_arrdiv8_fs22_xor0 = ((f_arrdiv8_mux2to112_xor0 >> 0) & 0x01) ^ ((b >> 6) & 0x01); - f_arrdiv8_fs22_not0 = ~(((f_arrdiv8_mux2to112_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs22_and0 = ((f_arrdiv8_fs22_not0 >> 0) & 0x01) & ((b >> 6) & 0x01); - f_arrdiv8_fs22_xor1 = ((f_arrdiv8_fs21_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs22_xor0 >> 0) & 0x01); - f_arrdiv8_fs22_not1 = ~(((f_arrdiv8_fs22_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs22_and1 = ((f_arrdiv8_fs22_not1 >> 0) & 0x01) & ((f_arrdiv8_fs21_or0 >> 0) & 0x01); - f_arrdiv8_fs22_or0 = ((f_arrdiv8_fs22_and1 >> 0) & 0x01) | ((f_arrdiv8_fs22_and0 >> 0) & 0x01); - f_arrdiv8_fs23_xor0 = ((f_arrdiv8_mux2to113_xor0 >> 0) & 0x01) ^ ((b >> 7) & 0x01); - f_arrdiv8_fs23_not0 = ~(((f_arrdiv8_mux2to113_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs23_and0 = ((f_arrdiv8_fs23_not0 >> 0) & 0x01) & ((b >> 7) & 0x01); - f_arrdiv8_fs23_xor1 = ((f_arrdiv8_fs22_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs23_xor0 >> 0) & 0x01); - f_arrdiv8_fs23_not1 = ~(((f_arrdiv8_fs23_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs23_and1 = ((f_arrdiv8_fs23_not1 >> 0) & 0x01) & ((f_arrdiv8_fs22_or0 >> 0) & 0x01); - f_arrdiv8_fs23_or0 = ((f_arrdiv8_fs23_and1 >> 0) & 0x01) | ((f_arrdiv8_fs23_and0 >> 0) & 0x01); - f_arrdiv8_mux2to114_and0 = ((a >> 5) & 0x01) & ((f_arrdiv8_fs23_or0 >> 0) & 0x01); - f_arrdiv8_mux2to114_not0 = ~(((f_arrdiv8_fs23_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to114_and1 = ((f_arrdiv8_fs16_xor0 >> 0) & 0x01) & ((f_arrdiv8_mux2to114_not0 >> 0) & 0x01); - f_arrdiv8_mux2to114_xor0 = ((f_arrdiv8_mux2to114_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to114_and1 >> 0) & 0x01); - f_arrdiv8_mux2to115_and0 = ((f_arrdiv8_mux2to17_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs23_or0 >> 0) & 0x01); - f_arrdiv8_mux2to115_not0 = ~(((f_arrdiv8_fs23_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to115_and1 = ((f_arrdiv8_fs17_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to115_not0 >> 0) & 0x01); - f_arrdiv8_mux2to115_xor0 = ((f_arrdiv8_mux2to115_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to115_and1 >> 0) & 0x01); - f_arrdiv8_mux2to116_and0 = ((f_arrdiv8_mux2to18_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs23_or0 >> 0) & 0x01); - f_arrdiv8_mux2to116_not0 = ~(((f_arrdiv8_fs23_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to116_and1 = ((f_arrdiv8_fs18_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to116_not0 >> 0) & 0x01); - f_arrdiv8_mux2to116_xor0 = ((f_arrdiv8_mux2to116_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to116_and1 >> 0) & 0x01); - f_arrdiv8_mux2to117_and0 = ((f_arrdiv8_mux2to19_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs23_or0 >> 0) & 0x01); - f_arrdiv8_mux2to117_not0 = ~(((f_arrdiv8_fs23_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to117_and1 = ((f_arrdiv8_fs19_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to117_not0 >> 0) & 0x01); - f_arrdiv8_mux2to117_xor0 = ((f_arrdiv8_mux2to117_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to117_and1 >> 0) & 0x01); - f_arrdiv8_mux2to118_and0 = ((f_arrdiv8_mux2to110_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs23_or0 >> 0) & 0x01); - f_arrdiv8_mux2to118_not0 = ~(((f_arrdiv8_fs23_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to118_and1 = ((f_arrdiv8_fs20_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to118_not0 >> 0) & 0x01); - f_arrdiv8_mux2to118_xor0 = ((f_arrdiv8_mux2to118_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to118_and1 >> 0) & 0x01); - f_arrdiv8_mux2to119_and0 = ((f_arrdiv8_mux2to111_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs23_or0 >> 0) & 0x01); - f_arrdiv8_mux2to119_not0 = ~(((f_arrdiv8_fs23_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to119_and1 = ((f_arrdiv8_fs21_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to119_not0 >> 0) & 0x01); - f_arrdiv8_mux2to119_xor0 = ((f_arrdiv8_mux2to119_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to119_and1 >> 0) & 0x01); - f_arrdiv8_mux2to120_and0 = ((f_arrdiv8_mux2to112_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs23_or0 >> 0) & 0x01); - f_arrdiv8_mux2to120_not0 = ~(((f_arrdiv8_fs23_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to120_and1 = ((f_arrdiv8_fs22_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to120_not0 >> 0) & 0x01); - f_arrdiv8_mux2to120_xor0 = ((f_arrdiv8_mux2to120_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to120_and1 >> 0) & 0x01); - f_arrdiv8_not2 = ~(((f_arrdiv8_fs23_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs24_xor0 = ((a >> 4) & 0x01) ^ ((b >> 0) & 0x01); - f_arrdiv8_fs24_not0 = ~(((a >> 4) & 0x01)) & 0x01; - f_arrdiv8_fs24_and0 = ((f_arrdiv8_fs24_not0 >> 0) & 0x01) & ((b >> 0) & 0x01); - f_arrdiv8_fs24_not1 = ~(((f_arrdiv8_fs24_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs25_xor0 = ((f_arrdiv8_mux2to114_xor0 >> 0) & 0x01) ^ ((b >> 1) & 0x01); - f_arrdiv8_fs25_not0 = ~(((f_arrdiv8_mux2to114_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs25_and0 = ((f_arrdiv8_fs25_not0 >> 0) & 0x01) & ((b >> 1) & 0x01); - f_arrdiv8_fs25_xor1 = ((f_arrdiv8_fs24_and0 >> 0) & 0x01) ^ ((f_arrdiv8_fs25_xor0 >> 0) & 0x01); - f_arrdiv8_fs25_not1 = ~(((f_arrdiv8_fs25_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs25_and1 = ((f_arrdiv8_fs25_not1 >> 0) & 0x01) & ((f_arrdiv8_fs24_and0 >> 0) & 0x01); - f_arrdiv8_fs25_or0 = ((f_arrdiv8_fs25_and1 >> 0) & 0x01) | ((f_arrdiv8_fs25_and0 >> 0) & 0x01); - f_arrdiv8_fs26_xor0 = ((f_arrdiv8_mux2to115_xor0 >> 0) & 0x01) ^ ((b >> 2) & 0x01); - f_arrdiv8_fs26_not0 = ~(((f_arrdiv8_mux2to115_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs26_and0 = ((f_arrdiv8_fs26_not0 >> 0) & 0x01) & ((b >> 2) & 0x01); - f_arrdiv8_fs26_xor1 = ((f_arrdiv8_fs25_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs26_xor0 >> 0) & 0x01); - f_arrdiv8_fs26_not1 = ~(((f_arrdiv8_fs26_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs26_and1 = ((f_arrdiv8_fs26_not1 >> 0) & 0x01) & ((f_arrdiv8_fs25_or0 >> 0) & 0x01); - f_arrdiv8_fs26_or0 = ((f_arrdiv8_fs26_and1 >> 0) & 0x01) | ((f_arrdiv8_fs26_and0 >> 0) & 0x01); - f_arrdiv8_fs27_xor0 = ((f_arrdiv8_mux2to116_xor0 >> 0) & 0x01) ^ ((b >> 3) & 0x01); - f_arrdiv8_fs27_not0 = ~(((f_arrdiv8_mux2to116_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs27_and0 = ((f_arrdiv8_fs27_not0 >> 0) & 0x01) & ((b >> 3) & 0x01); - f_arrdiv8_fs27_xor1 = ((f_arrdiv8_fs26_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs27_xor0 >> 0) & 0x01); - f_arrdiv8_fs27_not1 = ~(((f_arrdiv8_fs27_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs27_and1 = ((f_arrdiv8_fs27_not1 >> 0) & 0x01) & ((f_arrdiv8_fs26_or0 >> 0) & 0x01); - f_arrdiv8_fs27_or0 = ((f_arrdiv8_fs27_and1 >> 0) & 0x01) | ((f_arrdiv8_fs27_and0 >> 0) & 0x01); - f_arrdiv8_fs28_xor0 = ((f_arrdiv8_mux2to117_xor0 >> 0) & 0x01) ^ ((b >> 4) & 0x01); - f_arrdiv8_fs28_not0 = ~(((f_arrdiv8_mux2to117_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs28_and0 = ((f_arrdiv8_fs28_not0 >> 0) & 0x01) & ((b >> 4) & 0x01); - f_arrdiv8_fs28_xor1 = ((f_arrdiv8_fs27_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs28_xor0 >> 0) & 0x01); - f_arrdiv8_fs28_not1 = ~(((f_arrdiv8_fs28_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs28_and1 = ((f_arrdiv8_fs28_not1 >> 0) & 0x01) & ((f_arrdiv8_fs27_or0 >> 0) & 0x01); - f_arrdiv8_fs28_or0 = ((f_arrdiv8_fs28_and1 >> 0) & 0x01) | ((f_arrdiv8_fs28_and0 >> 0) & 0x01); - f_arrdiv8_fs29_xor0 = ((f_arrdiv8_mux2to118_xor0 >> 0) & 0x01) ^ ((b >> 5) & 0x01); - f_arrdiv8_fs29_not0 = ~(((f_arrdiv8_mux2to118_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs29_and0 = ((f_arrdiv8_fs29_not0 >> 0) & 0x01) & ((b >> 5) & 0x01); - f_arrdiv8_fs29_xor1 = ((f_arrdiv8_fs28_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs29_xor0 >> 0) & 0x01); - f_arrdiv8_fs29_not1 = ~(((f_arrdiv8_fs29_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs29_and1 = ((f_arrdiv8_fs29_not1 >> 0) & 0x01) & ((f_arrdiv8_fs28_or0 >> 0) & 0x01); - f_arrdiv8_fs29_or0 = ((f_arrdiv8_fs29_and1 >> 0) & 0x01) | ((f_arrdiv8_fs29_and0 >> 0) & 0x01); - f_arrdiv8_fs30_xor0 = ((f_arrdiv8_mux2to119_xor0 >> 0) & 0x01) ^ ((b >> 6) & 0x01); - f_arrdiv8_fs30_not0 = ~(((f_arrdiv8_mux2to119_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs30_and0 = ((f_arrdiv8_fs30_not0 >> 0) & 0x01) & ((b >> 6) & 0x01); - f_arrdiv8_fs30_xor1 = ((f_arrdiv8_fs29_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs30_xor0 >> 0) & 0x01); - f_arrdiv8_fs30_not1 = ~(((f_arrdiv8_fs30_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs30_and1 = ((f_arrdiv8_fs30_not1 >> 0) & 0x01) & ((f_arrdiv8_fs29_or0 >> 0) & 0x01); - f_arrdiv8_fs30_or0 = ((f_arrdiv8_fs30_and1 >> 0) & 0x01) | ((f_arrdiv8_fs30_and0 >> 0) & 0x01); - f_arrdiv8_fs31_xor0 = ((f_arrdiv8_mux2to120_xor0 >> 0) & 0x01) ^ ((b >> 7) & 0x01); - f_arrdiv8_fs31_not0 = ~(((f_arrdiv8_mux2to120_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs31_and0 = ((f_arrdiv8_fs31_not0 >> 0) & 0x01) & ((b >> 7) & 0x01); - f_arrdiv8_fs31_xor1 = ((f_arrdiv8_fs30_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs31_xor0 >> 0) & 0x01); - f_arrdiv8_fs31_not1 = ~(((f_arrdiv8_fs31_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs31_and1 = ((f_arrdiv8_fs31_not1 >> 0) & 0x01) & ((f_arrdiv8_fs30_or0 >> 0) & 0x01); - f_arrdiv8_fs31_or0 = ((f_arrdiv8_fs31_and1 >> 0) & 0x01) | ((f_arrdiv8_fs31_and0 >> 0) & 0x01); - f_arrdiv8_mux2to121_and0 = ((a >> 4) & 0x01) & ((f_arrdiv8_fs31_or0 >> 0) & 0x01); - f_arrdiv8_mux2to121_not0 = ~(((f_arrdiv8_fs31_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to121_and1 = ((f_arrdiv8_fs24_xor0 >> 0) & 0x01) & ((f_arrdiv8_mux2to121_not0 >> 0) & 0x01); - f_arrdiv8_mux2to121_xor0 = ((f_arrdiv8_mux2to121_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to121_and1 >> 0) & 0x01); - f_arrdiv8_mux2to122_and0 = ((f_arrdiv8_mux2to114_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs31_or0 >> 0) & 0x01); - f_arrdiv8_mux2to122_not0 = ~(((f_arrdiv8_fs31_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to122_and1 = ((f_arrdiv8_fs25_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to122_not0 >> 0) & 0x01); - f_arrdiv8_mux2to122_xor0 = ((f_arrdiv8_mux2to122_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to122_and1 >> 0) & 0x01); - f_arrdiv8_mux2to123_and0 = ((f_arrdiv8_mux2to115_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs31_or0 >> 0) & 0x01); - f_arrdiv8_mux2to123_not0 = ~(((f_arrdiv8_fs31_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to123_and1 = ((f_arrdiv8_fs26_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to123_not0 >> 0) & 0x01); - f_arrdiv8_mux2to123_xor0 = ((f_arrdiv8_mux2to123_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to123_and1 >> 0) & 0x01); - f_arrdiv8_mux2to124_and0 = ((f_arrdiv8_mux2to116_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs31_or0 >> 0) & 0x01); - f_arrdiv8_mux2to124_not0 = ~(((f_arrdiv8_fs31_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to124_and1 = ((f_arrdiv8_fs27_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to124_not0 >> 0) & 0x01); - f_arrdiv8_mux2to124_xor0 = ((f_arrdiv8_mux2to124_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to124_and1 >> 0) & 0x01); - f_arrdiv8_mux2to125_and0 = ((f_arrdiv8_mux2to117_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs31_or0 >> 0) & 0x01); - f_arrdiv8_mux2to125_not0 = ~(((f_arrdiv8_fs31_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to125_and1 = ((f_arrdiv8_fs28_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to125_not0 >> 0) & 0x01); - f_arrdiv8_mux2to125_xor0 = ((f_arrdiv8_mux2to125_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to125_and1 >> 0) & 0x01); - f_arrdiv8_mux2to126_and0 = ((f_arrdiv8_mux2to118_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs31_or0 >> 0) & 0x01); - f_arrdiv8_mux2to126_not0 = ~(((f_arrdiv8_fs31_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to126_and1 = ((f_arrdiv8_fs29_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to126_not0 >> 0) & 0x01); - f_arrdiv8_mux2to126_xor0 = ((f_arrdiv8_mux2to126_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to126_and1 >> 0) & 0x01); - f_arrdiv8_mux2to127_and0 = ((f_arrdiv8_mux2to119_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs31_or0 >> 0) & 0x01); - f_arrdiv8_mux2to127_not0 = ~(((f_arrdiv8_fs31_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to127_and1 = ((f_arrdiv8_fs30_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to127_not0 >> 0) & 0x01); - f_arrdiv8_mux2to127_xor0 = ((f_arrdiv8_mux2to127_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to127_and1 >> 0) & 0x01); - f_arrdiv8_not3 = ~(((f_arrdiv8_fs31_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs32_xor0 = ((a >> 3) & 0x01) ^ ((b >> 0) & 0x01); - f_arrdiv8_fs32_not0 = ~(((a >> 3) & 0x01)) & 0x01; - f_arrdiv8_fs32_and0 = ((f_arrdiv8_fs32_not0 >> 0) & 0x01) & ((b >> 0) & 0x01); - f_arrdiv8_fs32_not1 = ~(((f_arrdiv8_fs32_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs33_xor0 = ((f_arrdiv8_mux2to121_xor0 >> 0) & 0x01) ^ ((b >> 1) & 0x01); - f_arrdiv8_fs33_not0 = ~(((f_arrdiv8_mux2to121_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs33_and0 = ((f_arrdiv8_fs33_not0 >> 0) & 0x01) & ((b >> 1) & 0x01); - f_arrdiv8_fs33_xor1 = ((f_arrdiv8_fs32_and0 >> 0) & 0x01) ^ ((f_arrdiv8_fs33_xor0 >> 0) & 0x01); - f_arrdiv8_fs33_not1 = ~(((f_arrdiv8_fs33_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs33_and1 = ((f_arrdiv8_fs33_not1 >> 0) & 0x01) & ((f_arrdiv8_fs32_and0 >> 0) & 0x01); - f_arrdiv8_fs33_or0 = ((f_arrdiv8_fs33_and1 >> 0) & 0x01) | ((f_arrdiv8_fs33_and0 >> 0) & 0x01); - f_arrdiv8_fs34_xor0 = ((f_arrdiv8_mux2to122_xor0 >> 0) & 0x01) ^ ((b >> 2) & 0x01); - f_arrdiv8_fs34_not0 = ~(((f_arrdiv8_mux2to122_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs34_and0 = ((f_arrdiv8_fs34_not0 >> 0) & 0x01) & ((b >> 2) & 0x01); - f_arrdiv8_fs34_xor1 = ((f_arrdiv8_fs33_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs34_xor0 >> 0) & 0x01); - f_arrdiv8_fs34_not1 = ~(((f_arrdiv8_fs34_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs34_and1 = ((f_arrdiv8_fs34_not1 >> 0) & 0x01) & ((f_arrdiv8_fs33_or0 >> 0) & 0x01); - f_arrdiv8_fs34_or0 = ((f_arrdiv8_fs34_and1 >> 0) & 0x01) | ((f_arrdiv8_fs34_and0 >> 0) & 0x01); - f_arrdiv8_fs35_xor0 = ((f_arrdiv8_mux2to123_xor0 >> 0) & 0x01) ^ ((b >> 3) & 0x01); - f_arrdiv8_fs35_not0 = ~(((f_arrdiv8_mux2to123_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs35_and0 = ((f_arrdiv8_fs35_not0 >> 0) & 0x01) & ((b >> 3) & 0x01); - f_arrdiv8_fs35_xor1 = ((f_arrdiv8_fs34_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs35_xor0 >> 0) & 0x01); - f_arrdiv8_fs35_not1 = ~(((f_arrdiv8_fs35_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs35_and1 = ((f_arrdiv8_fs35_not1 >> 0) & 0x01) & ((f_arrdiv8_fs34_or0 >> 0) & 0x01); - f_arrdiv8_fs35_or0 = ((f_arrdiv8_fs35_and1 >> 0) & 0x01) | ((f_arrdiv8_fs35_and0 >> 0) & 0x01); - f_arrdiv8_fs36_xor0 = ((f_arrdiv8_mux2to124_xor0 >> 0) & 0x01) ^ ((b >> 4) & 0x01); - f_arrdiv8_fs36_not0 = ~(((f_arrdiv8_mux2to124_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs36_and0 = ((f_arrdiv8_fs36_not0 >> 0) & 0x01) & ((b >> 4) & 0x01); - f_arrdiv8_fs36_xor1 = ((f_arrdiv8_fs35_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs36_xor0 >> 0) & 0x01); - f_arrdiv8_fs36_not1 = ~(((f_arrdiv8_fs36_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs36_and1 = ((f_arrdiv8_fs36_not1 >> 0) & 0x01) & ((f_arrdiv8_fs35_or0 >> 0) & 0x01); - f_arrdiv8_fs36_or0 = ((f_arrdiv8_fs36_and1 >> 0) & 0x01) | ((f_arrdiv8_fs36_and0 >> 0) & 0x01); - f_arrdiv8_fs37_xor0 = ((f_arrdiv8_mux2to125_xor0 >> 0) & 0x01) ^ ((b >> 5) & 0x01); - f_arrdiv8_fs37_not0 = ~(((f_arrdiv8_mux2to125_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs37_and0 = ((f_arrdiv8_fs37_not0 >> 0) & 0x01) & ((b >> 5) & 0x01); - f_arrdiv8_fs37_xor1 = ((f_arrdiv8_fs36_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs37_xor0 >> 0) & 0x01); - f_arrdiv8_fs37_not1 = ~(((f_arrdiv8_fs37_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs37_and1 = ((f_arrdiv8_fs37_not1 >> 0) & 0x01) & ((f_arrdiv8_fs36_or0 >> 0) & 0x01); - f_arrdiv8_fs37_or0 = ((f_arrdiv8_fs37_and1 >> 0) & 0x01) | ((f_arrdiv8_fs37_and0 >> 0) & 0x01); - f_arrdiv8_fs38_xor0 = ((f_arrdiv8_mux2to126_xor0 >> 0) & 0x01) ^ ((b >> 6) & 0x01); - f_arrdiv8_fs38_not0 = ~(((f_arrdiv8_mux2to126_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs38_and0 = ((f_arrdiv8_fs38_not0 >> 0) & 0x01) & ((b >> 6) & 0x01); - f_arrdiv8_fs38_xor1 = ((f_arrdiv8_fs37_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs38_xor0 >> 0) & 0x01); - f_arrdiv8_fs38_not1 = ~(((f_arrdiv8_fs38_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs38_and1 = ((f_arrdiv8_fs38_not1 >> 0) & 0x01) & ((f_arrdiv8_fs37_or0 >> 0) & 0x01); - f_arrdiv8_fs38_or0 = ((f_arrdiv8_fs38_and1 >> 0) & 0x01) | ((f_arrdiv8_fs38_and0 >> 0) & 0x01); - f_arrdiv8_fs39_xor0 = ((f_arrdiv8_mux2to127_xor0 >> 0) & 0x01) ^ ((b >> 7) & 0x01); - f_arrdiv8_fs39_not0 = ~(((f_arrdiv8_mux2to127_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs39_and0 = ((f_arrdiv8_fs39_not0 >> 0) & 0x01) & ((b >> 7) & 0x01); - f_arrdiv8_fs39_xor1 = ((f_arrdiv8_fs38_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs39_xor0 >> 0) & 0x01); - f_arrdiv8_fs39_not1 = ~(((f_arrdiv8_fs39_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs39_and1 = ((f_arrdiv8_fs39_not1 >> 0) & 0x01) & ((f_arrdiv8_fs38_or0 >> 0) & 0x01); - f_arrdiv8_fs39_or0 = ((f_arrdiv8_fs39_and1 >> 0) & 0x01) | ((f_arrdiv8_fs39_and0 >> 0) & 0x01); - f_arrdiv8_mux2to128_and0 = ((a >> 3) & 0x01) & ((f_arrdiv8_fs39_or0 >> 0) & 0x01); - f_arrdiv8_mux2to128_not0 = ~(((f_arrdiv8_fs39_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to128_and1 = ((f_arrdiv8_fs32_xor0 >> 0) & 0x01) & ((f_arrdiv8_mux2to128_not0 >> 0) & 0x01); - f_arrdiv8_mux2to128_xor0 = ((f_arrdiv8_mux2to128_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to128_and1 >> 0) & 0x01); - f_arrdiv8_mux2to129_and0 = ((f_arrdiv8_mux2to121_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs39_or0 >> 0) & 0x01); - f_arrdiv8_mux2to129_not0 = ~(((f_arrdiv8_fs39_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to129_and1 = ((f_arrdiv8_fs33_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to129_not0 >> 0) & 0x01); - f_arrdiv8_mux2to129_xor0 = ((f_arrdiv8_mux2to129_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to129_and1 >> 0) & 0x01); - f_arrdiv8_mux2to130_and0 = ((f_arrdiv8_mux2to122_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs39_or0 >> 0) & 0x01); - f_arrdiv8_mux2to130_not0 = ~(((f_arrdiv8_fs39_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to130_and1 = ((f_arrdiv8_fs34_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to130_not0 >> 0) & 0x01); - f_arrdiv8_mux2to130_xor0 = ((f_arrdiv8_mux2to130_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to130_and1 >> 0) & 0x01); - f_arrdiv8_mux2to131_and0 = ((f_arrdiv8_mux2to123_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs39_or0 >> 0) & 0x01); - f_arrdiv8_mux2to131_not0 = ~(((f_arrdiv8_fs39_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to131_and1 = ((f_arrdiv8_fs35_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to131_not0 >> 0) & 0x01); - f_arrdiv8_mux2to131_xor0 = ((f_arrdiv8_mux2to131_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to131_and1 >> 0) & 0x01); - f_arrdiv8_mux2to132_and0 = ((f_arrdiv8_mux2to124_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs39_or0 >> 0) & 0x01); - f_arrdiv8_mux2to132_not0 = ~(((f_arrdiv8_fs39_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to132_and1 = ((f_arrdiv8_fs36_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to132_not0 >> 0) & 0x01); - f_arrdiv8_mux2to132_xor0 = ((f_arrdiv8_mux2to132_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to132_and1 >> 0) & 0x01); - f_arrdiv8_mux2to133_and0 = ((f_arrdiv8_mux2to125_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs39_or0 >> 0) & 0x01); - f_arrdiv8_mux2to133_not0 = ~(((f_arrdiv8_fs39_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to133_and1 = ((f_arrdiv8_fs37_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to133_not0 >> 0) & 0x01); - f_arrdiv8_mux2to133_xor0 = ((f_arrdiv8_mux2to133_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to133_and1 >> 0) & 0x01); - f_arrdiv8_mux2to134_and0 = ((f_arrdiv8_mux2to126_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs39_or0 >> 0) & 0x01); - f_arrdiv8_mux2to134_not0 = ~(((f_arrdiv8_fs39_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to134_and1 = ((f_arrdiv8_fs38_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to134_not0 >> 0) & 0x01); - f_arrdiv8_mux2to134_xor0 = ((f_arrdiv8_mux2to134_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to134_and1 >> 0) & 0x01); - f_arrdiv8_not4 = ~(((f_arrdiv8_fs39_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs40_xor0 = ((a >> 2) & 0x01) ^ ((b >> 0) & 0x01); - f_arrdiv8_fs40_not0 = ~(((a >> 2) & 0x01)) & 0x01; - f_arrdiv8_fs40_and0 = ((f_arrdiv8_fs40_not0 >> 0) & 0x01) & ((b >> 0) & 0x01); - f_arrdiv8_fs40_not1 = ~(((f_arrdiv8_fs40_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs41_xor0 = ((f_arrdiv8_mux2to128_xor0 >> 0) & 0x01) ^ ((b >> 1) & 0x01); - f_arrdiv8_fs41_not0 = ~(((f_arrdiv8_mux2to128_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs41_and0 = ((f_arrdiv8_fs41_not0 >> 0) & 0x01) & ((b >> 1) & 0x01); - f_arrdiv8_fs41_xor1 = ((f_arrdiv8_fs40_and0 >> 0) & 0x01) ^ ((f_arrdiv8_fs41_xor0 >> 0) & 0x01); - f_arrdiv8_fs41_not1 = ~(((f_arrdiv8_fs41_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs41_and1 = ((f_arrdiv8_fs41_not1 >> 0) & 0x01) & ((f_arrdiv8_fs40_and0 >> 0) & 0x01); - f_arrdiv8_fs41_or0 = ((f_arrdiv8_fs41_and1 >> 0) & 0x01) | ((f_arrdiv8_fs41_and0 >> 0) & 0x01); - f_arrdiv8_fs42_xor0 = ((f_arrdiv8_mux2to129_xor0 >> 0) & 0x01) ^ ((b >> 2) & 0x01); - f_arrdiv8_fs42_not0 = ~(((f_arrdiv8_mux2to129_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs42_and0 = ((f_arrdiv8_fs42_not0 >> 0) & 0x01) & ((b >> 2) & 0x01); - f_arrdiv8_fs42_xor1 = ((f_arrdiv8_fs41_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs42_xor0 >> 0) & 0x01); - f_arrdiv8_fs42_not1 = ~(((f_arrdiv8_fs42_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs42_and1 = ((f_arrdiv8_fs42_not1 >> 0) & 0x01) & ((f_arrdiv8_fs41_or0 >> 0) & 0x01); - f_arrdiv8_fs42_or0 = ((f_arrdiv8_fs42_and1 >> 0) & 0x01) | ((f_arrdiv8_fs42_and0 >> 0) & 0x01); - f_arrdiv8_fs43_xor0 = ((f_arrdiv8_mux2to130_xor0 >> 0) & 0x01) ^ ((b >> 3) & 0x01); - f_arrdiv8_fs43_not0 = ~(((f_arrdiv8_mux2to130_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs43_and0 = ((f_arrdiv8_fs43_not0 >> 0) & 0x01) & ((b >> 3) & 0x01); - f_arrdiv8_fs43_xor1 = ((f_arrdiv8_fs42_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs43_xor0 >> 0) & 0x01); - f_arrdiv8_fs43_not1 = ~(((f_arrdiv8_fs43_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs43_and1 = ((f_arrdiv8_fs43_not1 >> 0) & 0x01) & ((f_arrdiv8_fs42_or0 >> 0) & 0x01); - f_arrdiv8_fs43_or0 = ((f_arrdiv8_fs43_and1 >> 0) & 0x01) | ((f_arrdiv8_fs43_and0 >> 0) & 0x01); - f_arrdiv8_fs44_xor0 = ((f_arrdiv8_mux2to131_xor0 >> 0) & 0x01) ^ ((b >> 4) & 0x01); - f_arrdiv8_fs44_not0 = ~(((f_arrdiv8_mux2to131_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs44_and0 = ((f_arrdiv8_fs44_not0 >> 0) & 0x01) & ((b >> 4) & 0x01); - f_arrdiv8_fs44_xor1 = ((f_arrdiv8_fs43_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs44_xor0 >> 0) & 0x01); - f_arrdiv8_fs44_not1 = ~(((f_arrdiv8_fs44_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs44_and1 = ((f_arrdiv8_fs44_not1 >> 0) & 0x01) & ((f_arrdiv8_fs43_or0 >> 0) & 0x01); - f_arrdiv8_fs44_or0 = ((f_arrdiv8_fs44_and1 >> 0) & 0x01) | ((f_arrdiv8_fs44_and0 >> 0) & 0x01); - f_arrdiv8_fs45_xor0 = ((f_arrdiv8_mux2to132_xor0 >> 0) & 0x01) ^ ((b >> 5) & 0x01); - f_arrdiv8_fs45_not0 = ~(((f_arrdiv8_mux2to132_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs45_and0 = ((f_arrdiv8_fs45_not0 >> 0) & 0x01) & ((b >> 5) & 0x01); - f_arrdiv8_fs45_xor1 = ((f_arrdiv8_fs44_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs45_xor0 >> 0) & 0x01); - f_arrdiv8_fs45_not1 = ~(((f_arrdiv8_fs45_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs45_and1 = ((f_arrdiv8_fs45_not1 >> 0) & 0x01) & ((f_arrdiv8_fs44_or0 >> 0) & 0x01); - f_arrdiv8_fs45_or0 = ((f_arrdiv8_fs45_and1 >> 0) & 0x01) | ((f_arrdiv8_fs45_and0 >> 0) & 0x01); - f_arrdiv8_fs46_xor0 = ((f_arrdiv8_mux2to133_xor0 >> 0) & 0x01) ^ ((b >> 6) & 0x01); - f_arrdiv8_fs46_not0 = ~(((f_arrdiv8_mux2to133_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs46_and0 = ((f_arrdiv8_fs46_not0 >> 0) & 0x01) & ((b >> 6) & 0x01); - f_arrdiv8_fs46_xor1 = ((f_arrdiv8_fs45_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs46_xor0 >> 0) & 0x01); - f_arrdiv8_fs46_not1 = ~(((f_arrdiv8_fs46_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs46_and1 = ((f_arrdiv8_fs46_not1 >> 0) & 0x01) & ((f_arrdiv8_fs45_or0 >> 0) & 0x01); - f_arrdiv8_fs46_or0 = ((f_arrdiv8_fs46_and1 >> 0) & 0x01) | ((f_arrdiv8_fs46_and0 >> 0) & 0x01); - f_arrdiv8_fs47_xor0 = ((f_arrdiv8_mux2to134_xor0 >> 0) & 0x01) ^ ((b >> 7) & 0x01); - f_arrdiv8_fs47_not0 = ~(((f_arrdiv8_mux2to134_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs47_and0 = ((f_arrdiv8_fs47_not0 >> 0) & 0x01) & ((b >> 7) & 0x01); - f_arrdiv8_fs47_xor1 = ((f_arrdiv8_fs46_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs47_xor0 >> 0) & 0x01); - f_arrdiv8_fs47_not1 = ~(((f_arrdiv8_fs47_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs47_and1 = ((f_arrdiv8_fs47_not1 >> 0) & 0x01) & ((f_arrdiv8_fs46_or0 >> 0) & 0x01); - f_arrdiv8_fs47_or0 = ((f_arrdiv8_fs47_and1 >> 0) & 0x01) | ((f_arrdiv8_fs47_and0 >> 0) & 0x01); - f_arrdiv8_mux2to135_and0 = ((a >> 2) & 0x01) & ((f_arrdiv8_fs47_or0 >> 0) & 0x01); - f_arrdiv8_mux2to135_not0 = ~(((f_arrdiv8_fs47_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to135_and1 = ((f_arrdiv8_fs40_xor0 >> 0) & 0x01) & ((f_arrdiv8_mux2to135_not0 >> 0) & 0x01); - f_arrdiv8_mux2to135_xor0 = ((f_arrdiv8_mux2to135_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to135_and1 >> 0) & 0x01); - f_arrdiv8_mux2to136_and0 = ((f_arrdiv8_mux2to128_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs47_or0 >> 0) & 0x01); - f_arrdiv8_mux2to136_not0 = ~(((f_arrdiv8_fs47_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to136_and1 = ((f_arrdiv8_fs41_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to136_not0 >> 0) & 0x01); - f_arrdiv8_mux2to136_xor0 = ((f_arrdiv8_mux2to136_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to136_and1 >> 0) & 0x01); - f_arrdiv8_mux2to137_and0 = ((f_arrdiv8_mux2to129_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs47_or0 >> 0) & 0x01); - f_arrdiv8_mux2to137_not0 = ~(((f_arrdiv8_fs47_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to137_and1 = ((f_arrdiv8_fs42_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to137_not0 >> 0) & 0x01); - f_arrdiv8_mux2to137_xor0 = ((f_arrdiv8_mux2to137_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to137_and1 >> 0) & 0x01); - f_arrdiv8_mux2to138_and0 = ((f_arrdiv8_mux2to130_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs47_or0 >> 0) & 0x01); - f_arrdiv8_mux2to138_not0 = ~(((f_arrdiv8_fs47_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to138_and1 = ((f_arrdiv8_fs43_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to138_not0 >> 0) & 0x01); - f_arrdiv8_mux2to138_xor0 = ((f_arrdiv8_mux2to138_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to138_and1 >> 0) & 0x01); - f_arrdiv8_mux2to139_and0 = ((f_arrdiv8_mux2to131_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs47_or0 >> 0) & 0x01); - f_arrdiv8_mux2to139_not0 = ~(((f_arrdiv8_fs47_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to139_and1 = ((f_arrdiv8_fs44_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to139_not0 >> 0) & 0x01); - f_arrdiv8_mux2to139_xor0 = ((f_arrdiv8_mux2to139_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to139_and1 >> 0) & 0x01); - f_arrdiv8_mux2to140_and0 = ((f_arrdiv8_mux2to132_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs47_or0 >> 0) & 0x01); - f_arrdiv8_mux2to140_not0 = ~(((f_arrdiv8_fs47_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to140_and1 = ((f_arrdiv8_fs45_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to140_not0 >> 0) & 0x01); - f_arrdiv8_mux2to140_xor0 = ((f_arrdiv8_mux2to140_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to140_and1 >> 0) & 0x01); - f_arrdiv8_mux2to141_and0 = ((f_arrdiv8_mux2to133_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs47_or0 >> 0) & 0x01); - f_arrdiv8_mux2to141_not0 = ~(((f_arrdiv8_fs47_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to141_and1 = ((f_arrdiv8_fs46_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to141_not0 >> 0) & 0x01); - f_arrdiv8_mux2to141_xor0 = ((f_arrdiv8_mux2to141_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to141_and1 >> 0) & 0x01); - f_arrdiv8_not5 = ~(((f_arrdiv8_fs47_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs48_xor0 = ((a >> 1) & 0x01) ^ ((b >> 0) & 0x01); - f_arrdiv8_fs48_not0 = ~(((a >> 1) & 0x01)) & 0x01; - f_arrdiv8_fs48_and0 = ((f_arrdiv8_fs48_not0 >> 0) & 0x01) & ((b >> 0) & 0x01); - f_arrdiv8_fs48_not1 = ~(((f_arrdiv8_fs48_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs49_xor0 = ((f_arrdiv8_mux2to135_xor0 >> 0) & 0x01) ^ ((b >> 1) & 0x01); - f_arrdiv8_fs49_not0 = ~(((f_arrdiv8_mux2to135_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs49_and0 = ((f_arrdiv8_fs49_not0 >> 0) & 0x01) & ((b >> 1) & 0x01); - f_arrdiv8_fs49_xor1 = ((f_arrdiv8_fs48_and0 >> 0) & 0x01) ^ ((f_arrdiv8_fs49_xor0 >> 0) & 0x01); - f_arrdiv8_fs49_not1 = ~(((f_arrdiv8_fs49_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs49_and1 = ((f_arrdiv8_fs49_not1 >> 0) & 0x01) & ((f_arrdiv8_fs48_and0 >> 0) & 0x01); - f_arrdiv8_fs49_or0 = ((f_arrdiv8_fs49_and1 >> 0) & 0x01) | ((f_arrdiv8_fs49_and0 >> 0) & 0x01); - f_arrdiv8_fs50_xor0 = ((f_arrdiv8_mux2to136_xor0 >> 0) & 0x01) ^ ((b >> 2) & 0x01); - f_arrdiv8_fs50_not0 = ~(((f_arrdiv8_mux2to136_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs50_and0 = ((f_arrdiv8_fs50_not0 >> 0) & 0x01) & ((b >> 2) & 0x01); - f_arrdiv8_fs50_xor1 = ((f_arrdiv8_fs49_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs50_xor0 >> 0) & 0x01); - f_arrdiv8_fs50_not1 = ~(((f_arrdiv8_fs50_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs50_and1 = ((f_arrdiv8_fs50_not1 >> 0) & 0x01) & ((f_arrdiv8_fs49_or0 >> 0) & 0x01); - f_arrdiv8_fs50_or0 = ((f_arrdiv8_fs50_and1 >> 0) & 0x01) | ((f_arrdiv8_fs50_and0 >> 0) & 0x01); - f_arrdiv8_fs51_xor0 = ((f_arrdiv8_mux2to137_xor0 >> 0) & 0x01) ^ ((b >> 3) & 0x01); - f_arrdiv8_fs51_not0 = ~(((f_arrdiv8_mux2to137_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs51_and0 = ((f_arrdiv8_fs51_not0 >> 0) & 0x01) & ((b >> 3) & 0x01); - f_arrdiv8_fs51_xor1 = ((f_arrdiv8_fs50_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs51_xor0 >> 0) & 0x01); - f_arrdiv8_fs51_not1 = ~(((f_arrdiv8_fs51_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs51_and1 = ((f_arrdiv8_fs51_not1 >> 0) & 0x01) & ((f_arrdiv8_fs50_or0 >> 0) & 0x01); - f_arrdiv8_fs51_or0 = ((f_arrdiv8_fs51_and1 >> 0) & 0x01) | ((f_arrdiv8_fs51_and0 >> 0) & 0x01); - f_arrdiv8_fs52_xor0 = ((f_arrdiv8_mux2to138_xor0 >> 0) & 0x01) ^ ((b >> 4) & 0x01); - f_arrdiv8_fs52_not0 = ~(((f_arrdiv8_mux2to138_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs52_and0 = ((f_arrdiv8_fs52_not0 >> 0) & 0x01) & ((b >> 4) & 0x01); - f_arrdiv8_fs52_xor1 = ((f_arrdiv8_fs51_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs52_xor0 >> 0) & 0x01); - f_arrdiv8_fs52_not1 = ~(((f_arrdiv8_fs52_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs52_and1 = ((f_arrdiv8_fs52_not1 >> 0) & 0x01) & ((f_arrdiv8_fs51_or0 >> 0) & 0x01); - f_arrdiv8_fs52_or0 = ((f_arrdiv8_fs52_and1 >> 0) & 0x01) | ((f_arrdiv8_fs52_and0 >> 0) & 0x01); - f_arrdiv8_fs53_xor0 = ((f_arrdiv8_mux2to139_xor0 >> 0) & 0x01) ^ ((b >> 5) & 0x01); - f_arrdiv8_fs53_not0 = ~(((f_arrdiv8_mux2to139_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs53_and0 = ((f_arrdiv8_fs53_not0 >> 0) & 0x01) & ((b >> 5) & 0x01); - f_arrdiv8_fs53_xor1 = ((f_arrdiv8_fs52_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs53_xor0 >> 0) & 0x01); - f_arrdiv8_fs53_not1 = ~(((f_arrdiv8_fs53_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs53_and1 = ((f_arrdiv8_fs53_not1 >> 0) & 0x01) & ((f_arrdiv8_fs52_or0 >> 0) & 0x01); - f_arrdiv8_fs53_or0 = ((f_arrdiv8_fs53_and1 >> 0) & 0x01) | ((f_arrdiv8_fs53_and0 >> 0) & 0x01); - f_arrdiv8_fs54_xor0 = ((f_arrdiv8_mux2to140_xor0 >> 0) & 0x01) ^ ((b >> 6) & 0x01); - f_arrdiv8_fs54_not0 = ~(((f_arrdiv8_mux2to140_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs54_and0 = ((f_arrdiv8_fs54_not0 >> 0) & 0x01) & ((b >> 6) & 0x01); - f_arrdiv8_fs54_xor1 = ((f_arrdiv8_fs53_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs54_xor0 >> 0) & 0x01); - f_arrdiv8_fs54_not1 = ~(((f_arrdiv8_fs54_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs54_and1 = ((f_arrdiv8_fs54_not1 >> 0) & 0x01) & ((f_arrdiv8_fs53_or0 >> 0) & 0x01); - f_arrdiv8_fs54_or0 = ((f_arrdiv8_fs54_and1 >> 0) & 0x01) | ((f_arrdiv8_fs54_and0 >> 0) & 0x01); - f_arrdiv8_fs55_xor0 = ((f_arrdiv8_mux2to141_xor0 >> 0) & 0x01) ^ ((b >> 7) & 0x01); - f_arrdiv8_fs55_not0 = ~(((f_arrdiv8_mux2to141_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs55_and0 = ((f_arrdiv8_fs55_not0 >> 0) & 0x01) & ((b >> 7) & 0x01); - f_arrdiv8_fs55_xor1 = ((f_arrdiv8_fs54_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs55_xor0 >> 0) & 0x01); - f_arrdiv8_fs55_not1 = ~(((f_arrdiv8_fs55_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs55_and1 = ((f_arrdiv8_fs55_not1 >> 0) & 0x01) & ((f_arrdiv8_fs54_or0 >> 0) & 0x01); - f_arrdiv8_fs55_or0 = ((f_arrdiv8_fs55_and1 >> 0) & 0x01) | ((f_arrdiv8_fs55_and0 >> 0) & 0x01); - f_arrdiv8_mux2to142_and0 = ((a >> 1) & 0x01) & ((f_arrdiv8_fs55_or0 >> 0) & 0x01); - f_arrdiv8_mux2to142_not0 = ~(((f_arrdiv8_fs55_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to142_and1 = ((f_arrdiv8_fs48_xor0 >> 0) & 0x01) & ((f_arrdiv8_mux2to142_not0 >> 0) & 0x01); - f_arrdiv8_mux2to142_xor0 = ((f_arrdiv8_mux2to142_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to142_and1 >> 0) & 0x01); - f_arrdiv8_mux2to143_and0 = ((f_arrdiv8_mux2to135_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs55_or0 >> 0) & 0x01); - f_arrdiv8_mux2to143_not0 = ~(((f_arrdiv8_fs55_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to143_and1 = ((f_arrdiv8_fs49_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to143_not0 >> 0) & 0x01); - f_arrdiv8_mux2to143_xor0 = ((f_arrdiv8_mux2to143_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to143_and1 >> 0) & 0x01); - f_arrdiv8_mux2to144_and0 = ((f_arrdiv8_mux2to136_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs55_or0 >> 0) & 0x01); - f_arrdiv8_mux2to144_not0 = ~(((f_arrdiv8_fs55_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to144_and1 = ((f_arrdiv8_fs50_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to144_not0 >> 0) & 0x01); - f_arrdiv8_mux2to144_xor0 = ((f_arrdiv8_mux2to144_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to144_and1 >> 0) & 0x01); - f_arrdiv8_mux2to145_and0 = ((f_arrdiv8_mux2to137_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs55_or0 >> 0) & 0x01); - f_arrdiv8_mux2to145_not0 = ~(((f_arrdiv8_fs55_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to145_and1 = ((f_arrdiv8_fs51_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to145_not0 >> 0) & 0x01); - f_arrdiv8_mux2to145_xor0 = ((f_arrdiv8_mux2to145_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to145_and1 >> 0) & 0x01); - f_arrdiv8_mux2to146_and0 = ((f_arrdiv8_mux2to138_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs55_or0 >> 0) & 0x01); - f_arrdiv8_mux2to146_not0 = ~(((f_arrdiv8_fs55_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to146_and1 = ((f_arrdiv8_fs52_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to146_not0 >> 0) & 0x01); - f_arrdiv8_mux2to146_xor0 = ((f_arrdiv8_mux2to146_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to146_and1 >> 0) & 0x01); - f_arrdiv8_mux2to147_and0 = ((f_arrdiv8_mux2to139_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs55_or0 >> 0) & 0x01); - f_arrdiv8_mux2to147_not0 = ~(((f_arrdiv8_fs55_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to147_and1 = ((f_arrdiv8_fs53_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to147_not0 >> 0) & 0x01); - f_arrdiv8_mux2to147_xor0 = ((f_arrdiv8_mux2to147_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to147_and1 >> 0) & 0x01); - f_arrdiv8_mux2to148_and0 = ((f_arrdiv8_mux2to140_xor0 >> 0) & 0x01) & ((f_arrdiv8_fs55_or0 >> 0) & 0x01); - f_arrdiv8_mux2to148_not0 = ~(((f_arrdiv8_fs55_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_mux2to148_and1 = ((f_arrdiv8_fs54_xor1 >> 0) & 0x01) & ((f_arrdiv8_mux2to148_not0 >> 0) & 0x01); - f_arrdiv8_mux2to148_xor0 = ((f_arrdiv8_mux2to148_and0 >> 0) & 0x01) ^ ((f_arrdiv8_mux2to148_and1 >> 0) & 0x01); - f_arrdiv8_not6 = ~(((f_arrdiv8_fs55_or0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs56_xor0 = ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); - f_arrdiv8_fs56_not0 = ~(((a >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs56_and0 = ((f_arrdiv8_fs56_not0 >> 0) & 0x01) & ((b >> 0) & 0x01); - f_arrdiv8_fs56_not1 = ~(((f_arrdiv8_fs56_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs57_xor0 = ((f_arrdiv8_mux2to142_xor0 >> 0) & 0x01) ^ ((b >> 1) & 0x01); - f_arrdiv8_fs57_not0 = ~(((f_arrdiv8_mux2to142_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs57_and0 = ((f_arrdiv8_fs57_not0 >> 0) & 0x01) & ((b >> 1) & 0x01); - f_arrdiv8_fs57_xor1 = ((f_arrdiv8_fs56_and0 >> 0) & 0x01) ^ ((f_arrdiv8_fs57_xor0 >> 0) & 0x01); - f_arrdiv8_fs57_not1 = ~(((f_arrdiv8_fs57_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs57_and1 = ((f_arrdiv8_fs57_not1 >> 0) & 0x01) & ((f_arrdiv8_fs56_and0 >> 0) & 0x01); - f_arrdiv8_fs57_or0 = ((f_arrdiv8_fs57_and1 >> 0) & 0x01) | ((f_arrdiv8_fs57_and0 >> 0) & 0x01); - f_arrdiv8_fs58_xor0 = ((f_arrdiv8_mux2to143_xor0 >> 0) & 0x01) ^ ((b >> 2) & 0x01); - f_arrdiv8_fs58_not0 = ~(((f_arrdiv8_mux2to143_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs58_and0 = ((f_arrdiv8_fs58_not0 >> 0) & 0x01) & ((b >> 2) & 0x01); - f_arrdiv8_fs58_xor1 = ((f_arrdiv8_fs57_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs58_xor0 >> 0) & 0x01); - f_arrdiv8_fs58_not1 = ~(((f_arrdiv8_fs58_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs58_and1 = ((f_arrdiv8_fs58_not1 >> 0) & 0x01) & ((f_arrdiv8_fs57_or0 >> 0) & 0x01); - f_arrdiv8_fs58_or0 = ((f_arrdiv8_fs58_and1 >> 0) & 0x01) | ((f_arrdiv8_fs58_and0 >> 0) & 0x01); - f_arrdiv8_fs59_xor0 = ((f_arrdiv8_mux2to144_xor0 >> 0) & 0x01) ^ ((b >> 3) & 0x01); - f_arrdiv8_fs59_not0 = ~(((f_arrdiv8_mux2to144_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs59_and0 = ((f_arrdiv8_fs59_not0 >> 0) & 0x01) & ((b >> 3) & 0x01); - f_arrdiv8_fs59_xor1 = ((f_arrdiv8_fs58_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs59_xor0 >> 0) & 0x01); - f_arrdiv8_fs59_not1 = ~(((f_arrdiv8_fs59_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs59_and1 = ((f_arrdiv8_fs59_not1 >> 0) & 0x01) & ((f_arrdiv8_fs58_or0 >> 0) & 0x01); - f_arrdiv8_fs59_or0 = ((f_arrdiv8_fs59_and1 >> 0) & 0x01) | ((f_arrdiv8_fs59_and0 >> 0) & 0x01); - f_arrdiv8_fs60_xor0 = ((f_arrdiv8_mux2to145_xor0 >> 0) & 0x01) ^ ((b >> 4) & 0x01); - f_arrdiv8_fs60_not0 = ~(((f_arrdiv8_mux2to145_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs60_and0 = ((f_arrdiv8_fs60_not0 >> 0) & 0x01) & ((b >> 4) & 0x01); - f_arrdiv8_fs60_xor1 = ((f_arrdiv8_fs59_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs60_xor0 >> 0) & 0x01); - f_arrdiv8_fs60_not1 = ~(((f_arrdiv8_fs60_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs60_and1 = ((f_arrdiv8_fs60_not1 >> 0) & 0x01) & ((f_arrdiv8_fs59_or0 >> 0) & 0x01); - f_arrdiv8_fs60_or0 = ((f_arrdiv8_fs60_and1 >> 0) & 0x01) | ((f_arrdiv8_fs60_and0 >> 0) & 0x01); - f_arrdiv8_fs61_xor0 = ((f_arrdiv8_mux2to146_xor0 >> 0) & 0x01) ^ ((b >> 5) & 0x01); - f_arrdiv8_fs61_not0 = ~(((f_arrdiv8_mux2to146_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs61_and0 = ((f_arrdiv8_fs61_not0 >> 0) & 0x01) & ((b >> 5) & 0x01); - f_arrdiv8_fs61_xor1 = ((f_arrdiv8_fs60_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs61_xor0 >> 0) & 0x01); - f_arrdiv8_fs61_not1 = ~(((f_arrdiv8_fs61_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs61_and1 = ((f_arrdiv8_fs61_not1 >> 0) & 0x01) & ((f_arrdiv8_fs60_or0 >> 0) & 0x01); - f_arrdiv8_fs61_or0 = ((f_arrdiv8_fs61_and1 >> 0) & 0x01) | ((f_arrdiv8_fs61_and0 >> 0) & 0x01); - f_arrdiv8_fs62_xor0 = ((f_arrdiv8_mux2to147_xor0 >> 0) & 0x01) ^ ((b >> 6) & 0x01); - f_arrdiv8_fs62_not0 = ~(((f_arrdiv8_mux2to147_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs62_and0 = ((f_arrdiv8_fs62_not0 >> 0) & 0x01) & ((b >> 6) & 0x01); - f_arrdiv8_fs62_xor1 = ((f_arrdiv8_fs61_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs62_xor0 >> 0) & 0x01); - f_arrdiv8_fs62_not1 = ~(((f_arrdiv8_fs62_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs62_and1 = ((f_arrdiv8_fs62_not1 >> 0) & 0x01) & ((f_arrdiv8_fs61_or0 >> 0) & 0x01); - f_arrdiv8_fs62_or0 = ((f_arrdiv8_fs62_and1 >> 0) & 0x01) | ((f_arrdiv8_fs62_and0 >> 0) & 0x01); - f_arrdiv8_fs63_xor0 = ((f_arrdiv8_mux2to148_xor0 >> 0) & 0x01) ^ ((b >> 7) & 0x01); - f_arrdiv8_fs63_not0 = ~(((f_arrdiv8_mux2to148_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs63_and0 = ((f_arrdiv8_fs63_not0 >> 0) & 0x01) & ((b >> 7) & 0x01); - f_arrdiv8_fs63_xor1 = ((f_arrdiv8_fs62_or0 >> 0) & 0x01) ^ ((f_arrdiv8_fs63_xor0 >> 0) & 0x01); - f_arrdiv8_fs63_not1 = ~(((f_arrdiv8_fs63_xor0 >> 0) & 0x01)) & 0x01; - f_arrdiv8_fs63_and1 = ((f_arrdiv8_fs63_not1 >> 0) & 0x01) & ((f_arrdiv8_fs62_or0 >> 0) & 0x01); - f_arrdiv8_fs63_or0 = ((f_arrdiv8_fs63_and1 >> 0) & 0x01) | ((f_arrdiv8_fs63_and0 >> 0) & 0x01); - f_arrdiv8_not7 = ~(((f_arrdiv8_fs63_or0 >> 0) & 0x01)) & 0x01; - - f_arrdiv8_out |= ((f_arrdiv8_not7 >> 0) & 0x01) << 0; - f_arrdiv8_out |= ((f_arrdiv8_not6 >> 0) & 0x01) << 1; - f_arrdiv8_out |= ((f_arrdiv8_not5 >> 0) & 0x01) << 2; - f_arrdiv8_out |= ((f_arrdiv8_not4 >> 0) & 0x01) << 3; - f_arrdiv8_out |= ((f_arrdiv8_not3 >> 0) & 0x01) << 4; - f_arrdiv8_out |= ((f_arrdiv8_not2 >> 0) & 0x01) << 5; - f_arrdiv8_out |= ((f_arrdiv8_not1 >> 0) & 0x01) << 6; - f_arrdiv8_out |= ((f_arrdiv8_not0 >> 0) & 0x01) << 7; - return f_arrdiv8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 1; j < 256; j++){ - assert((i / j) == f_arrdiv8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_arrmul4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_arrmul4.c deleted file mode 100644 index a589f9c..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_arrmul4.c +++ /dev/null @@ -1,169 +0,0 @@ -#include -#include - -int64_t f_s_arrmul4(int64_t a, int64_t b){ - uint8_t f_s_arrmul4_out = 0; - uint8_t f_s_arrmul4_and0_0 = 0; - uint8_t f_s_arrmul4_and1_0 = 0; - uint8_t f_s_arrmul4_and2_0 = 0; - uint8_t f_s_arrmul4_nand3_0 = 0; - uint8_t f_s_arrmul4_and0_1 = 0; - uint8_t f_s_arrmul4_ha0_1_xor0 = 0; - uint8_t f_s_arrmul4_ha0_1_and0 = 0; - uint8_t f_s_arrmul4_and1_1 = 0; - uint8_t f_s_arrmul4_fa1_1_xor0 = 0; - uint8_t f_s_arrmul4_fa1_1_and0 = 0; - uint8_t f_s_arrmul4_fa1_1_xor1 = 0; - uint8_t f_s_arrmul4_fa1_1_and1 = 0; - uint8_t f_s_arrmul4_fa1_1_or0 = 0; - uint8_t f_s_arrmul4_and2_1 = 0; - uint8_t f_s_arrmul4_fa2_1_xor0 = 0; - uint8_t f_s_arrmul4_fa2_1_and0 = 0; - uint8_t f_s_arrmul4_fa2_1_xor1 = 0; - uint8_t f_s_arrmul4_fa2_1_and1 = 0; - uint8_t f_s_arrmul4_fa2_1_or0 = 0; - uint8_t f_s_arrmul4_nand3_1 = 0; - uint8_t f_s_arrmul4_fa3_1_xor0 = 0; - uint8_t f_s_arrmul4_fa3_1_xor1 = 0; - uint8_t f_s_arrmul4_fa3_1_and1 = 0; - uint8_t f_s_arrmul4_fa3_1_or0 = 0; - uint8_t f_s_arrmul4_and0_2 = 0; - uint8_t f_s_arrmul4_ha0_2_xor0 = 0; - uint8_t f_s_arrmul4_ha0_2_and0 = 0; - uint8_t f_s_arrmul4_and1_2 = 0; - uint8_t f_s_arrmul4_fa1_2_xor0 = 0; - uint8_t f_s_arrmul4_fa1_2_and0 = 0; - uint8_t f_s_arrmul4_fa1_2_xor1 = 0; - uint8_t f_s_arrmul4_fa1_2_and1 = 0; - uint8_t f_s_arrmul4_fa1_2_or0 = 0; - uint8_t f_s_arrmul4_and2_2 = 0; - uint8_t f_s_arrmul4_fa2_2_xor0 = 0; - uint8_t f_s_arrmul4_fa2_2_and0 = 0; - uint8_t f_s_arrmul4_fa2_2_xor1 = 0; - uint8_t f_s_arrmul4_fa2_2_and1 = 0; - uint8_t f_s_arrmul4_fa2_2_or0 = 0; - uint8_t f_s_arrmul4_nand3_2 = 0; - uint8_t f_s_arrmul4_fa3_2_xor0 = 0; - uint8_t f_s_arrmul4_fa3_2_and0 = 0; - uint8_t f_s_arrmul4_fa3_2_xor1 = 0; - uint8_t f_s_arrmul4_fa3_2_and1 = 0; - uint8_t f_s_arrmul4_fa3_2_or0 = 0; - uint8_t f_s_arrmul4_nand0_3 = 0; - uint8_t f_s_arrmul4_ha0_3_xor0 = 0; - uint8_t f_s_arrmul4_ha0_3_and0 = 0; - uint8_t f_s_arrmul4_nand1_3 = 0; - uint8_t f_s_arrmul4_fa1_3_xor0 = 0; - uint8_t f_s_arrmul4_fa1_3_and0 = 0; - uint8_t f_s_arrmul4_fa1_3_xor1 = 0; - uint8_t f_s_arrmul4_fa1_3_and1 = 0; - uint8_t f_s_arrmul4_fa1_3_or0 = 0; - uint8_t f_s_arrmul4_nand2_3 = 0; - uint8_t f_s_arrmul4_fa2_3_xor0 = 0; - uint8_t f_s_arrmul4_fa2_3_and0 = 0; - uint8_t f_s_arrmul4_fa2_3_xor1 = 0; - uint8_t f_s_arrmul4_fa2_3_and1 = 0; - uint8_t f_s_arrmul4_fa2_3_or0 = 0; - uint8_t f_s_arrmul4_and3_3 = 0; - uint8_t f_s_arrmul4_fa3_3_xor0 = 0; - uint8_t f_s_arrmul4_fa3_3_and0 = 0; - uint8_t f_s_arrmul4_fa3_3_xor1 = 0; - uint8_t f_s_arrmul4_fa3_3_and1 = 0; - uint8_t f_s_arrmul4_fa3_3_or0 = 0; - uint8_t f_s_arrmul4_xor4_3 = 0; - - f_s_arrmul4_and0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_arrmul4_and1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_arrmul4_and2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_arrmul4_nand3_0 = ~(((a >> 3) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_arrmul4_and0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_arrmul4_ha0_1_xor0 = ((f_s_arrmul4_and0_1 >> 0) & 0x01) ^ ((f_s_arrmul4_and1_0 >> 0) & 0x01); - f_s_arrmul4_ha0_1_and0 = ((f_s_arrmul4_and0_1 >> 0) & 0x01) & ((f_s_arrmul4_and1_0 >> 0) & 0x01); - f_s_arrmul4_and1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_arrmul4_fa1_1_xor0 = ((f_s_arrmul4_and1_1 >> 0) & 0x01) ^ ((f_s_arrmul4_and2_0 >> 0) & 0x01); - f_s_arrmul4_fa1_1_and0 = ((f_s_arrmul4_and1_1 >> 0) & 0x01) & ((f_s_arrmul4_and2_0 >> 0) & 0x01); - f_s_arrmul4_fa1_1_xor1 = ((f_s_arrmul4_fa1_1_xor0 >> 0) & 0x01) ^ ((f_s_arrmul4_ha0_1_and0 >> 0) & 0x01); - f_s_arrmul4_fa1_1_and1 = ((f_s_arrmul4_fa1_1_xor0 >> 0) & 0x01) & ((f_s_arrmul4_ha0_1_and0 >> 0) & 0x01); - f_s_arrmul4_fa1_1_or0 = ((f_s_arrmul4_fa1_1_and0 >> 0) & 0x01) | ((f_s_arrmul4_fa1_1_and1 >> 0) & 0x01); - f_s_arrmul4_and2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_arrmul4_fa2_1_xor0 = ((f_s_arrmul4_and2_1 >> 0) & 0x01) ^ ((f_s_arrmul4_nand3_0 >> 0) & 0x01); - f_s_arrmul4_fa2_1_and0 = ((f_s_arrmul4_and2_1 >> 0) & 0x01) & ((f_s_arrmul4_nand3_0 >> 0) & 0x01); - f_s_arrmul4_fa2_1_xor1 = ((f_s_arrmul4_fa2_1_xor0 >> 0) & 0x01) ^ ((f_s_arrmul4_fa1_1_or0 >> 0) & 0x01); - f_s_arrmul4_fa2_1_and1 = ((f_s_arrmul4_fa2_1_xor0 >> 0) & 0x01) & ((f_s_arrmul4_fa1_1_or0 >> 0) & 0x01); - f_s_arrmul4_fa2_1_or0 = ((f_s_arrmul4_fa2_1_and0 >> 0) & 0x01) | ((f_s_arrmul4_fa2_1_and1 >> 0) & 0x01); - f_s_arrmul4_nand3_1 = ~(((a >> 3) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_arrmul4_fa3_1_xor0 = ~(((f_s_arrmul4_nand3_1 >> 0) & 0x01)) & 0x01; - f_s_arrmul4_fa3_1_xor1 = ((f_s_arrmul4_fa3_1_xor0 >> 0) & 0x01) ^ ((f_s_arrmul4_fa2_1_or0 >> 0) & 0x01); - f_s_arrmul4_fa3_1_and1 = ((f_s_arrmul4_fa3_1_xor0 >> 0) & 0x01) & ((f_s_arrmul4_fa2_1_or0 >> 0) & 0x01); - f_s_arrmul4_fa3_1_or0 = ((f_s_arrmul4_nand3_1 >> 0) & 0x01) | ((f_s_arrmul4_fa3_1_and1 >> 0) & 0x01); - f_s_arrmul4_and0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_arrmul4_ha0_2_xor0 = ((f_s_arrmul4_and0_2 >> 0) & 0x01) ^ ((f_s_arrmul4_fa1_1_xor1 >> 0) & 0x01); - f_s_arrmul4_ha0_2_and0 = ((f_s_arrmul4_and0_2 >> 0) & 0x01) & ((f_s_arrmul4_fa1_1_xor1 >> 0) & 0x01); - f_s_arrmul4_and1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_arrmul4_fa1_2_xor0 = ((f_s_arrmul4_and1_2 >> 0) & 0x01) ^ ((f_s_arrmul4_fa2_1_xor1 >> 0) & 0x01); - f_s_arrmul4_fa1_2_and0 = ((f_s_arrmul4_and1_2 >> 0) & 0x01) & ((f_s_arrmul4_fa2_1_xor1 >> 0) & 0x01); - f_s_arrmul4_fa1_2_xor1 = ((f_s_arrmul4_fa1_2_xor0 >> 0) & 0x01) ^ ((f_s_arrmul4_ha0_2_and0 >> 0) & 0x01); - f_s_arrmul4_fa1_2_and1 = ((f_s_arrmul4_fa1_2_xor0 >> 0) & 0x01) & ((f_s_arrmul4_ha0_2_and0 >> 0) & 0x01); - f_s_arrmul4_fa1_2_or0 = ((f_s_arrmul4_fa1_2_and0 >> 0) & 0x01) | ((f_s_arrmul4_fa1_2_and1 >> 0) & 0x01); - f_s_arrmul4_and2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_arrmul4_fa2_2_xor0 = ((f_s_arrmul4_and2_2 >> 0) & 0x01) ^ ((f_s_arrmul4_fa3_1_xor1 >> 0) & 0x01); - f_s_arrmul4_fa2_2_and0 = ((f_s_arrmul4_and2_2 >> 0) & 0x01) & ((f_s_arrmul4_fa3_1_xor1 >> 0) & 0x01); - f_s_arrmul4_fa2_2_xor1 = ((f_s_arrmul4_fa2_2_xor0 >> 0) & 0x01) ^ ((f_s_arrmul4_fa1_2_or0 >> 0) & 0x01); - f_s_arrmul4_fa2_2_and1 = ((f_s_arrmul4_fa2_2_xor0 >> 0) & 0x01) & ((f_s_arrmul4_fa1_2_or0 >> 0) & 0x01); - f_s_arrmul4_fa2_2_or0 = ((f_s_arrmul4_fa2_2_and0 >> 0) & 0x01) | ((f_s_arrmul4_fa2_2_and1 >> 0) & 0x01); - f_s_arrmul4_nand3_2 = ~(((a >> 3) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_arrmul4_fa3_2_xor0 = ((f_s_arrmul4_nand3_2 >> 0) & 0x01) ^ ((f_s_arrmul4_fa3_1_or0 >> 0) & 0x01); - f_s_arrmul4_fa3_2_and0 = ((f_s_arrmul4_nand3_2 >> 0) & 0x01) & ((f_s_arrmul4_fa3_1_or0 >> 0) & 0x01); - f_s_arrmul4_fa3_2_xor1 = ((f_s_arrmul4_fa3_2_xor0 >> 0) & 0x01) ^ ((f_s_arrmul4_fa2_2_or0 >> 0) & 0x01); - f_s_arrmul4_fa3_2_and1 = ((f_s_arrmul4_fa3_2_xor0 >> 0) & 0x01) & ((f_s_arrmul4_fa2_2_or0 >> 0) & 0x01); - f_s_arrmul4_fa3_2_or0 = ((f_s_arrmul4_fa3_2_and0 >> 0) & 0x01) | ((f_s_arrmul4_fa3_2_and1 >> 0) & 0x01); - f_s_arrmul4_nand0_3 = ~(((a >> 0) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_arrmul4_ha0_3_xor0 = ((f_s_arrmul4_nand0_3 >> 0) & 0x01) ^ ((f_s_arrmul4_fa1_2_xor1 >> 0) & 0x01); - f_s_arrmul4_ha0_3_and0 = ((f_s_arrmul4_nand0_3 >> 0) & 0x01) & ((f_s_arrmul4_fa1_2_xor1 >> 0) & 0x01); - f_s_arrmul4_nand1_3 = ~(((a >> 1) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_arrmul4_fa1_3_xor0 = ((f_s_arrmul4_nand1_3 >> 0) & 0x01) ^ ((f_s_arrmul4_fa2_2_xor1 >> 0) & 0x01); - f_s_arrmul4_fa1_3_and0 = ((f_s_arrmul4_nand1_3 >> 0) & 0x01) & ((f_s_arrmul4_fa2_2_xor1 >> 0) & 0x01); - f_s_arrmul4_fa1_3_xor1 = ((f_s_arrmul4_fa1_3_xor0 >> 0) & 0x01) ^ ((f_s_arrmul4_ha0_3_and0 >> 0) & 0x01); - f_s_arrmul4_fa1_3_and1 = ((f_s_arrmul4_fa1_3_xor0 >> 0) & 0x01) & ((f_s_arrmul4_ha0_3_and0 >> 0) & 0x01); - f_s_arrmul4_fa1_3_or0 = ((f_s_arrmul4_fa1_3_and0 >> 0) & 0x01) | ((f_s_arrmul4_fa1_3_and1 >> 0) & 0x01); - f_s_arrmul4_nand2_3 = ~(((a >> 2) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_arrmul4_fa2_3_xor0 = ((f_s_arrmul4_nand2_3 >> 0) & 0x01) ^ ((f_s_arrmul4_fa3_2_xor1 >> 0) & 0x01); - f_s_arrmul4_fa2_3_and0 = ((f_s_arrmul4_nand2_3 >> 0) & 0x01) & ((f_s_arrmul4_fa3_2_xor1 >> 0) & 0x01); - f_s_arrmul4_fa2_3_xor1 = ((f_s_arrmul4_fa2_3_xor0 >> 0) & 0x01) ^ ((f_s_arrmul4_fa1_3_or0 >> 0) & 0x01); - f_s_arrmul4_fa2_3_and1 = ((f_s_arrmul4_fa2_3_xor0 >> 0) & 0x01) & ((f_s_arrmul4_fa1_3_or0 >> 0) & 0x01); - f_s_arrmul4_fa2_3_or0 = ((f_s_arrmul4_fa2_3_and0 >> 0) & 0x01) | ((f_s_arrmul4_fa2_3_and1 >> 0) & 0x01); - f_s_arrmul4_and3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_arrmul4_fa3_3_xor0 = ((f_s_arrmul4_and3_3 >> 0) & 0x01) ^ ((f_s_arrmul4_fa3_2_or0 >> 0) & 0x01); - f_s_arrmul4_fa3_3_and0 = ((f_s_arrmul4_and3_3 >> 0) & 0x01) & ((f_s_arrmul4_fa3_2_or0 >> 0) & 0x01); - f_s_arrmul4_fa3_3_xor1 = ((f_s_arrmul4_fa3_3_xor0 >> 0) & 0x01) ^ ((f_s_arrmul4_fa2_3_or0 >> 0) & 0x01); - f_s_arrmul4_fa3_3_and1 = ((f_s_arrmul4_fa3_3_xor0 >> 0) & 0x01) & ((f_s_arrmul4_fa2_3_or0 >> 0) & 0x01); - f_s_arrmul4_fa3_3_or0 = ((f_s_arrmul4_fa3_3_and0 >> 0) & 0x01) | ((f_s_arrmul4_fa3_3_and1 >> 0) & 0x01); - f_s_arrmul4_xor4_3 = ~(((f_s_arrmul4_fa3_3_or0 >> 0) & 0x01)) & 0x01; - - f_s_arrmul4_out |= ((f_s_arrmul4_and0_0 >> 0) & 0x01) << 0; - f_s_arrmul4_out |= ((f_s_arrmul4_ha0_1_xor0 >> 0) & 0x01) << 1; - f_s_arrmul4_out |= ((f_s_arrmul4_ha0_2_xor0 >> 0) & 0x01) << 2; - f_s_arrmul4_out |= ((f_s_arrmul4_ha0_3_xor0 >> 0) & 0x01) << 3; - f_s_arrmul4_out |= ((f_s_arrmul4_fa1_3_xor1 >> 0) & 0x01) << 4; - f_s_arrmul4_out |= ((f_s_arrmul4_fa2_3_xor1 >> 0) & 0x01) << 5; - f_s_arrmul4_out |= ((f_s_arrmul4_fa3_3_xor1 >> 0) & 0x01) << 6; - f_s_arrmul4_out |= ((f_s_arrmul4_xor4_3 >> 0) & 0x01) << 7; - return f_s_arrmul4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)f_s_arrmul4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_arrmul8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_arrmul8.c deleted file mode 100644 index d615a18..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_arrmul8.c +++ /dev/null @@ -1,689 +0,0 @@ -#include -#include - -int64_t f_s_arrmul8(int64_t a, int64_t b){ - uint64_t f_s_arrmul8_out = 0; - uint8_t f_s_arrmul8_and0_0 = 0; - uint8_t f_s_arrmul8_and1_0 = 0; - uint8_t f_s_arrmul8_and2_0 = 0; - uint8_t f_s_arrmul8_and3_0 = 0; - uint8_t f_s_arrmul8_and4_0 = 0; - uint8_t f_s_arrmul8_and5_0 = 0; - uint8_t f_s_arrmul8_and6_0 = 0; - uint8_t f_s_arrmul8_nand7_0 = 0; - uint8_t f_s_arrmul8_and0_1 = 0; - uint8_t f_s_arrmul8_ha0_1_xor0 = 0; - uint8_t f_s_arrmul8_ha0_1_and0 = 0; - uint8_t f_s_arrmul8_and1_1 = 0; - uint8_t f_s_arrmul8_fa1_1_xor0 = 0; - uint8_t f_s_arrmul8_fa1_1_and0 = 0; - uint8_t f_s_arrmul8_fa1_1_xor1 = 0; - uint8_t f_s_arrmul8_fa1_1_and1 = 0; - uint8_t f_s_arrmul8_fa1_1_or0 = 0; - uint8_t f_s_arrmul8_and2_1 = 0; - uint8_t f_s_arrmul8_fa2_1_xor0 = 0; - uint8_t f_s_arrmul8_fa2_1_and0 = 0; - uint8_t f_s_arrmul8_fa2_1_xor1 = 0; - uint8_t f_s_arrmul8_fa2_1_and1 = 0; - uint8_t f_s_arrmul8_fa2_1_or0 = 0; - uint8_t f_s_arrmul8_and3_1 = 0; - uint8_t f_s_arrmul8_fa3_1_xor0 = 0; - uint8_t f_s_arrmul8_fa3_1_and0 = 0; - uint8_t f_s_arrmul8_fa3_1_xor1 = 0; - uint8_t f_s_arrmul8_fa3_1_and1 = 0; - uint8_t f_s_arrmul8_fa3_1_or0 = 0; - uint8_t f_s_arrmul8_and4_1 = 0; - uint8_t f_s_arrmul8_fa4_1_xor0 = 0; - uint8_t f_s_arrmul8_fa4_1_and0 = 0; - uint8_t f_s_arrmul8_fa4_1_xor1 = 0; - uint8_t f_s_arrmul8_fa4_1_and1 = 0; - uint8_t f_s_arrmul8_fa4_1_or0 = 0; - uint8_t f_s_arrmul8_and5_1 = 0; - uint8_t f_s_arrmul8_fa5_1_xor0 = 0; - uint8_t f_s_arrmul8_fa5_1_and0 = 0; - uint8_t f_s_arrmul8_fa5_1_xor1 = 0; - uint8_t f_s_arrmul8_fa5_1_and1 = 0; - uint8_t f_s_arrmul8_fa5_1_or0 = 0; - uint8_t f_s_arrmul8_and6_1 = 0; - uint8_t f_s_arrmul8_fa6_1_xor0 = 0; - uint8_t f_s_arrmul8_fa6_1_and0 = 0; - uint8_t f_s_arrmul8_fa6_1_xor1 = 0; - uint8_t f_s_arrmul8_fa6_1_and1 = 0; - uint8_t f_s_arrmul8_fa6_1_or0 = 0; - uint8_t f_s_arrmul8_nand7_1 = 0; - uint8_t f_s_arrmul8_fa7_1_xor0 = 0; - uint8_t f_s_arrmul8_fa7_1_xor1 = 0; - uint8_t f_s_arrmul8_fa7_1_and1 = 0; - uint8_t f_s_arrmul8_fa7_1_or0 = 0; - uint8_t f_s_arrmul8_and0_2 = 0; - uint8_t f_s_arrmul8_ha0_2_xor0 = 0; - uint8_t f_s_arrmul8_ha0_2_and0 = 0; - uint8_t f_s_arrmul8_and1_2 = 0; - uint8_t f_s_arrmul8_fa1_2_xor0 = 0; - uint8_t f_s_arrmul8_fa1_2_and0 = 0; - uint8_t f_s_arrmul8_fa1_2_xor1 = 0; - uint8_t f_s_arrmul8_fa1_2_and1 = 0; - uint8_t f_s_arrmul8_fa1_2_or0 = 0; - uint8_t f_s_arrmul8_and2_2 = 0; - uint8_t f_s_arrmul8_fa2_2_xor0 = 0; - uint8_t f_s_arrmul8_fa2_2_and0 = 0; - uint8_t f_s_arrmul8_fa2_2_xor1 = 0; - uint8_t f_s_arrmul8_fa2_2_and1 = 0; - uint8_t f_s_arrmul8_fa2_2_or0 = 0; - uint8_t f_s_arrmul8_and3_2 = 0; - uint8_t f_s_arrmul8_fa3_2_xor0 = 0; - uint8_t f_s_arrmul8_fa3_2_and0 = 0; - uint8_t f_s_arrmul8_fa3_2_xor1 = 0; - uint8_t f_s_arrmul8_fa3_2_and1 = 0; - uint8_t f_s_arrmul8_fa3_2_or0 = 0; - uint8_t f_s_arrmul8_and4_2 = 0; - uint8_t f_s_arrmul8_fa4_2_xor0 = 0; - uint8_t f_s_arrmul8_fa4_2_and0 = 0; - uint8_t f_s_arrmul8_fa4_2_xor1 = 0; - uint8_t f_s_arrmul8_fa4_2_and1 = 0; - uint8_t f_s_arrmul8_fa4_2_or0 = 0; - uint8_t f_s_arrmul8_and5_2 = 0; - uint8_t f_s_arrmul8_fa5_2_xor0 = 0; - uint8_t f_s_arrmul8_fa5_2_and0 = 0; - uint8_t f_s_arrmul8_fa5_2_xor1 = 0; - uint8_t f_s_arrmul8_fa5_2_and1 = 0; - uint8_t f_s_arrmul8_fa5_2_or0 = 0; - uint8_t f_s_arrmul8_and6_2 = 0; - uint8_t f_s_arrmul8_fa6_2_xor0 = 0; - uint8_t f_s_arrmul8_fa6_2_and0 = 0; - uint8_t f_s_arrmul8_fa6_2_xor1 = 0; - uint8_t f_s_arrmul8_fa6_2_and1 = 0; - uint8_t f_s_arrmul8_fa6_2_or0 = 0; - uint8_t f_s_arrmul8_nand7_2 = 0; - uint8_t f_s_arrmul8_fa7_2_xor0 = 0; - uint8_t f_s_arrmul8_fa7_2_and0 = 0; - uint8_t f_s_arrmul8_fa7_2_xor1 = 0; - uint8_t f_s_arrmul8_fa7_2_and1 = 0; - uint8_t f_s_arrmul8_fa7_2_or0 = 0; - uint8_t f_s_arrmul8_and0_3 = 0; - uint8_t f_s_arrmul8_ha0_3_xor0 = 0; - uint8_t f_s_arrmul8_ha0_3_and0 = 0; - uint8_t f_s_arrmul8_and1_3 = 0; - uint8_t f_s_arrmul8_fa1_3_xor0 = 0; - uint8_t f_s_arrmul8_fa1_3_and0 = 0; - uint8_t f_s_arrmul8_fa1_3_xor1 = 0; - uint8_t f_s_arrmul8_fa1_3_and1 = 0; - uint8_t f_s_arrmul8_fa1_3_or0 = 0; - uint8_t f_s_arrmul8_and2_3 = 0; - uint8_t f_s_arrmul8_fa2_3_xor0 = 0; - uint8_t f_s_arrmul8_fa2_3_and0 = 0; - uint8_t f_s_arrmul8_fa2_3_xor1 = 0; - uint8_t f_s_arrmul8_fa2_3_and1 = 0; - uint8_t f_s_arrmul8_fa2_3_or0 = 0; - uint8_t f_s_arrmul8_and3_3 = 0; - uint8_t f_s_arrmul8_fa3_3_xor0 = 0; - uint8_t f_s_arrmul8_fa3_3_and0 = 0; - uint8_t f_s_arrmul8_fa3_3_xor1 = 0; - uint8_t f_s_arrmul8_fa3_3_and1 = 0; - uint8_t f_s_arrmul8_fa3_3_or0 = 0; - uint8_t f_s_arrmul8_and4_3 = 0; - uint8_t f_s_arrmul8_fa4_3_xor0 = 0; - uint8_t f_s_arrmul8_fa4_3_and0 = 0; - uint8_t f_s_arrmul8_fa4_3_xor1 = 0; - uint8_t f_s_arrmul8_fa4_3_and1 = 0; - uint8_t f_s_arrmul8_fa4_3_or0 = 0; - uint8_t f_s_arrmul8_and5_3 = 0; - uint8_t f_s_arrmul8_fa5_3_xor0 = 0; - uint8_t f_s_arrmul8_fa5_3_and0 = 0; - uint8_t f_s_arrmul8_fa5_3_xor1 = 0; - uint8_t f_s_arrmul8_fa5_3_and1 = 0; - uint8_t f_s_arrmul8_fa5_3_or0 = 0; - uint8_t f_s_arrmul8_and6_3 = 0; - uint8_t f_s_arrmul8_fa6_3_xor0 = 0; - uint8_t f_s_arrmul8_fa6_3_and0 = 0; - uint8_t f_s_arrmul8_fa6_3_xor1 = 0; - uint8_t f_s_arrmul8_fa6_3_and1 = 0; - uint8_t f_s_arrmul8_fa6_3_or0 = 0; - uint8_t f_s_arrmul8_nand7_3 = 0; - uint8_t f_s_arrmul8_fa7_3_xor0 = 0; - uint8_t f_s_arrmul8_fa7_3_and0 = 0; - uint8_t f_s_arrmul8_fa7_3_xor1 = 0; - uint8_t f_s_arrmul8_fa7_3_and1 = 0; - uint8_t f_s_arrmul8_fa7_3_or0 = 0; - uint8_t f_s_arrmul8_and0_4 = 0; - uint8_t f_s_arrmul8_ha0_4_xor0 = 0; - uint8_t f_s_arrmul8_ha0_4_and0 = 0; - uint8_t f_s_arrmul8_and1_4 = 0; - uint8_t f_s_arrmul8_fa1_4_xor0 = 0; - uint8_t f_s_arrmul8_fa1_4_and0 = 0; - uint8_t f_s_arrmul8_fa1_4_xor1 = 0; - uint8_t f_s_arrmul8_fa1_4_and1 = 0; - uint8_t f_s_arrmul8_fa1_4_or0 = 0; - uint8_t f_s_arrmul8_and2_4 = 0; - uint8_t f_s_arrmul8_fa2_4_xor0 = 0; - uint8_t f_s_arrmul8_fa2_4_and0 = 0; - uint8_t f_s_arrmul8_fa2_4_xor1 = 0; - uint8_t f_s_arrmul8_fa2_4_and1 = 0; - uint8_t f_s_arrmul8_fa2_4_or0 = 0; - uint8_t f_s_arrmul8_and3_4 = 0; - uint8_t f_s_arrmul8_fa3_4_xor0 = 0; - uint8_t f_s_arrmul8_fa3_4_and0 = 0; - uint8_t f_s_arrmul8_fa3_4_xor1 = 0; - uint8_t f_s_arrmul8_fa3_4_and1 = 0; - uint8_t f_s_arrmul8_fa3_4_or0 = 0; - uint8_t f_s_arrmul8_and4_4 = 0; - uint8_t f_s_arrmul8_fa4_4_xor0 = 0; - uint8_t f_s_arrmul8_fa4_4_and0 = 0; - uint8_t f_s_arrmul8_fa4_4_xor1 = 0; - uint8_t f_s_arrmul8_fa4_4_and1 = 0; - uint8_t f_s_arrmul8_fa4_4_or0 = 0; - uint8_t f_s_arrmul8_and5_4 = 0; - uint8_t f_s_arrmul8_fa5_4_xor0 = 0; - uint8_t f_s_arrmul8_fa5_4_and0 = 0; - uint8_t f_s_arrmul8_fa5_4_xor1 = 0; - uint8_t f_s_arrmul8_fa5_4_and1 = 0; - uint8_t f_s_arrmul8_fa5_4_or0 = 0; - uint8_t f_s_arrmul8_and6_4 = 0; - uint8_t f_s_arrmul8_fa6_4_xor0 = 0; - uint8_t f_s_arrmul8_fa6_4_and0 = 0; - uint8_t f_s_arrmul8_fa6_4_xor1 = 0; - uint8_t f_s_arrmul8_fa6_4_and1 = 0; - uint8_t f_s_arrmul8_fa6_4_or0 = 0; - uint8_t f_s_arrmul8_nand7_4 = 0; - uint8_t f_s_arrmul8_fa7_4_xor0 = 0; - uint8_t f_s_arrmul8_fa7_4_and0 = 0; - uint8_t f_s_arrmul8_fa7_4_xor1 = 0; - uint8_t f_s_arrmul8_fa7_4_and1 = 0; - uint8_t f_s_arrmul8_fa7_4_or0 = 0; - uint8_t f_s_arrmul8_and0_5 = 0; - uint8_t f_s_arrmul8_ha0_5_xor0 = 0; - uint8_t f_s_arrmul8_ha0_5_and0 = 0; - uint8_t f_s_arrmul8_and1_5 = 0; - uint8_t f_s_arrmul8_fa1_5_xor0 = 0; - uint8_t f_s_arrmul8_fa1_5_and0 = 0; - uint8_t f_s_arrmul8_fa1_5_xor1 = 0; - uint8_t f_s_arrmul8_fa1_5_and1 = 0; - uint8_t f_s_arrmul8_fa1_5_or0 = 0; - uint8_t f_s_arrmul8_and2_5 = 0; - uint8_t f_s_arrmul8_fa2_5_xor0 = 0; - uint8_t f_s_arrmul8_fa2_5_and0 = 0; - uint8_t f_s_arrmul8_fa2_5_xor1 = 0; - uint8_t f_s_arrmul8_fa2_5_and1 = 0; - uint8_t f_s_arrmul8_fa2_5_or0 = 0; - uint8_t f_s_arrmul8_and3_5 = 0; - uint8_t f_s_arrmul8_fa3_5_xor0 = 0; - uint8_t f_s_arrmul8_fa3_5_and0 = 0; - uint8_t f_s_arrmul8_fa3_5_xor1 = 0; - uint8_t f_s_arrmul8_fa3_5_and1 = 0; - uint8_t f_s_arrmul8_fa3_5_or0 = 0; - uint8_t f_s_arrmul8_and4_5 = 0; - uint8_t f_s_arrmul8_fa4_5_xor0 = 0; - uint8_t f_s_arrmul8_fa4_5_and0 = 0; - uint8_t f_s_arrmul8_fa4_5_xor1 = 0; - uint8_t f_s_arrmul8_fa4_5_and1 = 0; - uint8_t f_s_arrmul8_fa4_5_or0 = 0; - uint8_t f_s_arrmul8_and5_5 = 0; - uint8_t f_s_arrmul8_fa5_5_xor0 = 0; - uint8_t f_s_arrmul8_fa5_5_and0 = 0; - uint8_t f_s_arrmul8_fa5_5_xor1 = 0; - uint8_t f_s_arrmul8_fa5_5_and1 = 0; - uint8_t f_s_arrmul8_fa5_5_or0 = 0; - uint8_t f_s_arrmul8_and6_5 = 0; - uint8_t f_s_arrmul8_fa6_5_xor0 = 0; - uint8_t f_s_arrmul8_fa6_5_and0 = 0; - uint8_t f_s_arrmul8_fa6_5_xor1 = 0; - uint8_t f_s_arrmul8_fa6_5_and1 = 0; - uint8_t f_s_arrmul8_fa6_5_or0 = 0; - uint8_t f_s_arrmul8_nand7_5 = 0; - uint8_t f_s_arrmul8_fa7_5_xor0 = 0; - uint8_t f_s_arrmul8_fa7_5_and0 = 0; - uint8_t f_s_arrmul8_fa7_5_xor1 = 0; - uint8_t f_s_arrmul8_fa7_5_and1 = 0; - uint8_t f_s_arrmul8_fa7_5_or0 = 0; - uint8_t f_s_arrmul8_and0_6 = 0; - uint8_t f_s_arrmul8_ha0_6_xor0 = 0; - uint8_t f_s_arrmul8_ha0_6_and0 = 0; - uint8_t f_s_arrmul8_and1_6 = 0; - uint8_t f_s_arrmul8_fa1_6_xor0 = 0; - uint8_t f_s_arrmul8_fa1_6_and0 = 0; - uint8_t f_s_arrmul8_fa1_6_xor1 = 0; - uint8_t f_s_arrmul8_fa1_6_and1 = 0; - uint8_t f_s_arrmul8_fa1_6_or0 = 0; - uint8_t f_s_arrmul8_and2_6 = 0; - uint8_t f_s_arrmul8_fa2_6_xor0 = 0; - uint8_t f_s_arrmul8_fa2_6_and0 = 0; - uint8_t f_s_arrmul8_fa2_6_xor1 = 0; - uint8_t f_s_arrmul8_fa2_6_and1 = 0; - uint8_t f_s_arrmul8_fa2_6_or0 = 0; - uint8_t f_s_arrmul8_and3_6 = 0; - uint8_t f_s_arrmul8_fa3_6_xor0 = 0; - uint8_t f_s_arrmul8_fa3_6_and0 = 0; - uint8_t f_s_arrmul8_fa3_6_xor1 = 0; - uint8_t f_s_arrmul8_fa3_6_and1 = 0; - uint8_t f_s_arrmul8_fa3_6_or0 = 0; - uint8_t f_s_arrmul8_and4_6 = 0; - uint8_t f_s_arrmul8_fa4_6_xor0 = 0; - uint8_t f_s_arrmul8_fa4_6_and0 = 0; - uint8_t f_s_arrmul8_fa4_6_xor1 = 0; - uint8_t f_s_arrmul8_fa4_6_and1 = 0; - uint8_t f_s_arrmul8_fa4_6_or0 = 0; - uint8_t f_s_arrmul8_and5_6 = 0; - uint8_t f_s_arrmul8_fa5_6_xor0 = 0; - uint8_t f_s_arrmul8_fa5_6_and0 = 0; - uint8_t f_s_arrmul8_fa5_6_xor1 = 0; - uint8_t f_s_arrmul8_fa5_6_and1 = 0; - uint8_t f_s_arrmul8_fa5_6_or0 = 0; - uint8_t f_s_arrmul8_and6_6 = 0; - uint8_t f_s_arrmul8_fa6_6_xor0 = 0; - uint8_t f_s_arrmul8_fa6_6_and0 = 0; - uint8_t f_s_arrmul8_fa6_6_xor1 = 0; - uint8_t f_s_arrmul8_fa6_6_and1 = 0; - uint8_t f_s_arrmul8_fa6_6_or0 = 0; - uint8_t f_s_arrmul8_nand7_6 = 0; - uint8_t f_s_arrmul8_fa7_6_xor0 = 0; - uint8_t f_s_arrmul8_fa7_6_and0 = 0; - uint8_t f_s_arrmul8_fa7_6_xor1 = 0; - uint8_t f_s_arrmul8_fa7_6_and1 = 0; - uint8_t f_s_arrmul8_fa7_6_or0 = 0; - uint8_t f_s_arrmul8_nand0_7 = 0; - uint8_t f_s_arrmul8_ha0_7_xor0 = 0; - uint8_t f_s_arrmul8_ha0_7_and0 = 0; - uint8_t f_s_arrmul8_nand1_7 = 0; - uint8_t f_s_arrmul8_fa1_7_xor0 = 0; - uint8_t f_s_arrmul8_fa1_7_and0 = 0; - uint8_t f_s_arrmul8_fa1_7_xor1 = 0; - uint8_t f_s_arrmul8_fa1_7_and1 = 0; - uint8_t f_s_arrmul8_fa1_7_or0 = 0; - uint8_t f_s_arrmul8_nand2_7 = 0; - uint8_t f_s_arrmul8_fa2_7_xor0 = 0; - uint8_t f_s_arrmul8_fa2_7_and0 = 0; - uint8_t f_s_arrmul8_fa2_7_xor1 = 0; - uint8_t f_s_arrmul8_fa2_7_and1 = 0; - uint8_t f_s_arrmul8_fa2_7_or0 = 0; - uint8_t f_s_arrmul8_nand3_7 = 0; - uint8_t f_s_arrmul8_fa3_7_xor0 = 0; - uint8_t f_s_arrmul8_fa3_7_and0 = 0; - uint8_t f_s_arrmul8_fa3_7_xor1 = 0; - uint8_t f_s_arrmul8_fa3_7_and1 = 0; - uint8_t f_s_arrmul8_fa3_7_or0 = 0; - uint8_t f_s_arrmul8_nand4_7 = 0; - uint8_t f_s_arrmul8_fa4_7_xor0 = 0; - uint8_t f_s_arrmul8_fa4_7_and0 = 0; - uint8_t f_s_arrmul8_fa4_7_xor1 = 0; - uint8_t f_s_arrmul8_fa4_7_and1 = 0; - uint8_t f_s_arrmul8_fa4_7_or0 = 0; - uint8_t f_s_arrmul8_nand5_7 = 0; - uint8_t f_s_arrmul8_fa5_7_xor0 = 0; - uint8_t f_s_arrmul8_fa5_7_and0 = 0; - uint8_t f_s_arrmul8_fa5_7_xor1 = 0; - uint8_t f_s_arrmul8_fa5_7_and1 = 0; - uint8_t f_s_arrmul8_fa5_7_or0 = 0; - uint8_t f_s_arrmul8_nand6_7 = 0; - uint8_t f_s_arrmul8_fa6_7_xor0 = 0; - uint8_t f_s_arrmul8_fa6_7_and0 = 0; - uint8_t f_s_arrmul8_fa6_7_xor1 = 0; - uint8_t f_s_arrmul8_fa6_7_and1 = 0; - uint8_t f_s_arrmul8_fa6_7_or0 = 0; - uint8_t f_s_arrmul8_and7_7 = 0; - uint8_t f_s_arrmul8_fa7_7_xor0 = 0; - uint8_t f_s_arrmul8_fa7_7_and0 = 0; - uint8_t f_s_arrmul8_fa7_7_xor1 = 0; - uint8_t f_s_arrmul8_fa7_7_and1 = 0; - uint8_t f_s_arrmul8_fa7_7_or0 = 0; - uint8_t f_s_arrmul8_xor8_7 = 0; - - f_s_arrmul8_and0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_arrmul8_and1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_arrmul8_and2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_arrmul8_and3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_s_arrmul8_and4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_s_arrmul8_and5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_s_arrmul8_and6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_s_arrmul8_nand7_0 = ~(((a >> 7) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_arrmul8_and0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_arrmul8_ha0_1_xor0 = ((f_s_arrmul8_and0_1 >> 0) & 0x01) ^ ((f_s_arrmul8_and1_0 >> 0) & 0x01); - f_s_arrmul8_ha0_1_and0 = ((f_s_arrmul8_and0_1 >> 0) & 0x01) & ((f_s_arrmul8_and1_0 >> 0) & 0x01); - f_s_arrmul8_and1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_arrmul8_fa1_1_xor0 = ((f_s_arrmul8_and1_1 >> 0) & 0x01) ^ ((f_s_arrmul8_and2_0 >> 0) & 0x01); - f_s_arrmul8_fa1_1_and0 = ((f_s_arrmul8_and1_1 >> 0) & 0x01) & ((f_s_arrmul8_and2_0 >> 0) & 0x01); - f_s_arrmul8_fa1_1_xor1 = ((f_s_arrmul8_fa1_1_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_ha0_1_and0 >> 0) & 0x01); - f_s_arrmul8_fa1_1_and1 = ((f_s_arrmul8_fa1_1_xor0 >> 0) & 0x01) & ((f_s_arrmul8_ha0_1_and0 >> 0) & 0x01); - f_s_arrmul8_fa1_1_or0 = ((f_s_arrmul8_fa1_1_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa1_1_and1 >> 0) & 0x01); - f_s_arrmul8_and2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_arrmul8_fa2_1_xor0 = ((f_s_arrmul8_and2_1 >> 0) & 0x01) ^ ((f_s_arrmul8_and3_0 >> 0) & 0x01); - f_s_arrmul8_fa2_1_and0 = ((f_s_arrmul8_and2_1 >> 0) & 0x01) & ((f_s_arrmul8_and3_0 >> 0) & 0x01); - f_s_arrmul8_fa2_1_xor1 = ((f_s_arrmul8_fa2_1_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa1_1_or0 >> 0) & 0x01); - f_s_arrmul8_fa2_1_and1 = ((f_s_arrmul8_fa2_1_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa1_1_or0 >> 0) & 0x01); - f_s_arrmul8_fa2_1_or0 = ((f_s_arrmul8_fa2_1_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa2_1_and1 >> 0) & 0x01); - f_s_arrmul8_and3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_s_arrmul8_fa3_1_xor0 = ((f_s_arrmul8_and3_1 >> 0) & 0x01) ^ ((f_s_arrmul8_and4_0 >> 0) & 0x01); - f_s_arrmul8_fa3_1_and0 = ((f_s_arrmul8_and3_1 >> 0) & 0x01) & ((f_s_arrmul8_and4_0 >> 0) & 0x01); - f_s_arrmul8_fa3_1_xor1 = ((f_s_arrmul8_fa3_1_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa2_1_or0 >> 0) & 0x01); - f_s_arrmul8_fa3_1_and1 = ((f_s_arrmul8_fa3_1_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa2_1_or0 >> 0) & 0x01); - f_s_arrmul8_fa3_1_or0 = ((f_s_arrmul8_fa3_1_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa3_1_and1 >> 0) & 0x01); - f_s_arrmul8_and4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_s_arrmul8_fa4_1_xor0 = ((f_s_arrmul8_and4_1 >> 0) & 0x01) ^ ((f_s_arrmul8_and5_0 >> 0) & 0x01); - f_s_arrmul8_fa4_1_and0 = ((f_s_arrmul8_and4_1 >> 0) & 0x01) & ((f_s_arrmul8_and5_0 >> 0) & 0x01); - f_s_arrmul8_fa4_1_xor1 = ((f_s_arrmul8_fa4_1_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa3_1_or0 >> 0) & 0x01); - f_s_arrmul8_fa4_1_and1 = ((f_s_arrmul8_fa4_1_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa3_1_or0 >> 0) & 0x01); - f_s_arrmul8_fa4_1_or0 = ((f_s_arrmul8_fa4_1_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa4_1_and1 >> 0) & 0x01); - f_s_arrmul8_and5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_s_arrmul8_fa5_1_xor0 = ((f_s_arrmul8_and5_1 >> 0) & 0x01) ^ ((f_s_arrmul8_and6_0 >> 0) & 0x01); - f_s_arrmul8_fa5_1_and0 = ((f_s_arrmul8_and5_1 >> 0) & 0x01) & ((f_s_arrmul8_and6_0 >> 0) & 0x01); - f_s_arrmul8_fa5_1_xor1 = ((f_s_arrmul8_fa5_1_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa4_1_or0 >> 0) & 0x01); - f_s_arrmul8_fa5_1_and1 = ((f_s_arrmul8_fa5_1_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa4_1_or0 >> 0) & 0x01); - f_s_arrmul8_fa5_1_or0 = ((f_s_arrmul8_fa5_1_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa5_1_and1 >> 0) & 0x01); - f_s_arrmul8_and6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_s_arrmul8_fa6_1_xor0 = ((f_s_arrmul8_and6_1 >> 0) & 0x01) ^ ((f_s_arrmul8_nand7_0 >> 0) & 0x01); - f_s_arrmul8_fa6_1_and0 = ((f_s_arrmul8_and6_1 >> 0) & 0x01) & ((f_s_arrmul8_nand7_0 >> 0) & 0x01); - f_s_arrmul8_fa6_1_xor1 = ((f_s_arrmul8_fa6_1_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa5_1_or0 >> 0) & 0x01); - f_s_arrmul8_fa6_1_and1 = ((f_s_arrmul8_fa6_1_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa5_1_or0 >> 0) & 0x01); - f_s_arrmul8_fa6_1_or0 = ((f_s_arrmul8_fa6_1_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa6_1_and1 >> 0) & 0x01); - f_s_arrmul8_nand7_1 = ~(((a >> 7) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_arrmul8_fa7_1_xor0 = ~(((f_s_arrmul8_nand7_1 >> 0) & 0x01)) & 0x01; - f_s_arrmul8_fa7_1_xor1 = ((f_s_arrmul8_fa7_1_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa6_1_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_1_and1 = ((f_s_arrmul8_fa7_1_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa6_1_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_1_or0 = ((f_s_arrmul8_nand7_1 >> 0) & 0x01) | ((f_s_arrmul8_fa7_1_and1 >> 0) & 0x01); - f_s_arrmul8_and0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_arrmul8_ha0_2_xor0 = ((f_s_arrmul8_and0_2 >> 0) & 0x01) ^ ((f_s_arrmul8_fa1_1_xor1 >> 0) & 0x01); - f_s_arrmul8_ha0_2_and0 = ((f_s_arrmul8_and0_2 >> 0) & 0x01) & ((f_s_arrmul8_fa1_1_xor1 >> 0) & 0x01); - f_s_arrmul8_and1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_arrmul8_fa1_2_xor0 = ((f_s_arrmul8_and1_2 >> 0) & 0x01) ^ ((f_s_arrmul8_fa2_1_xor1 >> 0) & 0x01); - f_s_arrmul8_fa1_2_and0 = ((f_s_arrmul8_and1_2 >> 0) & 0x01) & ((f_s_arrmul8_fa2_1_xor1 >> 0) & 0x01); - f_s_arrmul8_fa1_2_xor1 = ((f_s_arrmul8_fa1_2_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_ha0_2_and0 >> 0) & 0x01); - f_s_arrmul8_fa1_2_and1 = ((f_s_arrmul8_fa1_2_xor0 >> 0) & 0x01) & ((f_s_arrmul8_ha0_2_and0 >> 0) & 0x01); - f_s_arrmul8_fa1_2_or0 = ((f_s_arrmul8_fa1_2_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa1_2_and1 >> 0) & 0x01); - f_s_arrmul8_and2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_arrmul8_fa2_2_xor0 = ((f_s_arrmul8_and2_2 >> 0) & 0x01) ^ ((f_s_arrmul8_fa3_1_xor1 >> 0) & 0x01); - f_s_arrmul8_fa2_2_and0 = ((f_s_arrmul8_and2_2 >> 0) & 0x01) & ((f_s_arrmul8_fa3_1_xor1 >> 0) & 0x01); - f_s_arrmul8_fa2_2_xor1 = ((f_s_arrmul8_fa2_2_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa1_2_or0 >> 0) & 0x01); - f_s_arrmul8_fa2_2_and1 = ((f_s_arrmul8_fa2_2_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa1_2_or0 >> 0) & 0x01); - f_s_arrmul8_fa2_2_or0 = ((f_s_arrmul8_fa2_2_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa2_2_and1 >> 0) & 0x01); - f_s_arrmul8_and3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_s_arrmul8_fa3_2_xor0 = ((f_s_arrmul8_and3_2 >> 0) & 0x01) ^ ((f_s_arrmul8_fa4_1_xor1 >> 0) & 0x01); - f_s_arrmul8_fa3_2_and0 = ((f_s_arrmul8_and3_2 >> 0) & 0x01) & ((f_s_arrmul8_fa4_1_xor1 >> 0) & 0x01); - f_s_arrmul8_fa3_2_xor1 = ((f_s_arrmul8_fa3_2_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa2_2_or0 >> 0) & 0x01); - f_s_arrmul8_fa3_2_and1 = ((f_s_arrmul8_fa3_2_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa2_2_or0 >> 0) & 0x01); - f_s_arrmul8_fa3_2_or0 = ((f_s_arrmul8_fa3_2_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa3_2_and1 >> 0) & 0x01); - f_s_arrmul8_and4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_s_arrmul8_fa4_2_xor0 = ((f_s_arrmul8_and4_2 >> 0) & 0x01) ^ ((f_s_arrmul8_fa5_1_xor1 >> 0) & 0x01); - f_s_arrmul8_fa4_2_and0 = ((f_s_arrmul8_and4_2 >> 0) & 0x01) & ((f_s_arrmul8_fa5_1_xor1 >> 0) & 0x01); - f_s_arrmul8_fa4_2_xor1 = ((f_s_arrmul8_fa4_2_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa3_2_or0 >> 0) & 0x01); - f_s_arrmul8_fa4_2_and1 = ((f_s_arrmul8_fa4_2_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa3_2_or0 >> 0) & 0x01); - f_s_arrmul8_fa4_2_or0 = ((f_s_arrmul8_fa4_2_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa4_2_and1 >> 0) & 0x01); - f_s_arrmul8_and5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_s_arrmul8_fa5_2_xor0 = ((f_s_arrmul8_and5_2 >> 0) & 0x01) ^ ((f_s_arrmul8_fa6_1_xor1 >> 0) & 0x01); - f_s_arrmul8_fa5_2_and0 = ((f_s_arrmul8_and5_2 >> 0) & 0x01) & ((f_s_arrmul8_fa6_1_xor1 >> 0) & 0x01); - f_s_arrmul8_fa5_2_xor1 = ((f_s_arrmul8_fa5_2_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa4_2_or0 >> 0) & 0x01); - f_s_arrmul8_fa5_2_and1 = ((f_s_arrmul8_fa5_2_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa4_2_or0 >> 0) & 0x01); - f_s_arrmul8_fa5_2_or0 = ((f_s_arrmul8_fa5_2_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa5_2_and1 >> 0) & 0x01); - f_s_arrmul8_and6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_s_arrmul8_fa6_2_xor0 = ((f_s_arrmul8_and6_2 >> 0) & 0x01) ^ ((f_s_arrmul8_fa7_1_xor1 >> 0) & 0x01); - f_s_arrmul8_fa6_2_and0 = ((f_s_arrmul8_and6_2 >> 0) & 0x01) & ((f_s_arrmul8_fa7_1_xor1 >> 0) & 0x01); - f_s_arrmul8_fa6_2_xor1 = ((f_s_arrmul8_fa6_2_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa5_2_or0 >> 0) & 0x01); - f_s_arrmul8_fa6_2_and1 = ((f_s_arrmul8_fa6_2_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa5_2_or0 >> 0) & 0x01); - f_s_arrmul8_fa6_2_or0 = ((f_s_arrmul8_fa6_2_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa6_2_and1 >> 0) & 0x01); - f_s_arrmul8_nand7_2 = ~(((a >> 7) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_arrmul8_fa7_2_xor0 = ((f_s_arrmul8_nand7_2 >> 0) & 0x01) ^ ((f_s_arrmul8_fa7_1_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_2_and0 = ((f_s_arrmul8_nand7_2 >> 0) & 0x01) & ((f_s_arrmul8_fa7_1_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_2_xor1 = ((f_s_arrmul8_fa7_2_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa6_2_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_2_and1 = ((f_s_arrmul8_fa7_2_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa6_2_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_2_or0 = ((f_s_arrmul8_fa7_2_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa7_2_and1 >> 0) & 0x01); - f_s_arrmul8_and0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_s_arrmul8_ha0_3_xor0 = ((f_s_arrmul8_and0_3 >> 0) & 0x01) ^ ((f_s_arrmul8_fa1_2_xor1 >> 0) & 0x01); - f_s_arrmul8_ha0_3_and0 = ((f_s_arrmul8_and0_3 >> 0) & 0x01) & ((f_s_arrmul8_fa1_2_xor1 >> 0) & 0x01); - f_s_arrmul8_and1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_s_arrmul8_fa1_3_xor0 = ((f_s_arrmul8_and1_3 >> 0) & 0x01) ^ ((f_s_arrmul8_fa2_2_xor1 >> 0) & 0x01); - f_s_arrmul8_fa1_3_and0 = ((f_s_arrmul8_and1_3 >> 0) & 0x01) & ((f_s_arrmul8_fa2_2_xor1 >> 0) & 0x01); - f_s_arrmul8_fa1_3_xor1 = ((f_s_arrmul8_fa1_3_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_ha0_3_and0 >> 0) & 0x01); - f_s_arrmul8_fa1_3_and1 = ((f_s_arrmul8_fa1_3_xor0 >> 0) & 0x01) & ((f_s_arrmul8_ha0_3_and0 >> 0) & 0x01); - f_s_arrmul8_fa1_3_or0 = ((f_s_arrmul8_fa1_3_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa1_3_and1 >> 0) & 0x01); - f_s_arrmul8_and2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_s_arrmul8_fa2_3_xor0 = ((f_s_arrmul8_and2_3 >> 0) & 0x01) ^ ((f_s_arrmul8_fa3_2_xor1 >> 0) & 0x01); - f_s_arrmul8_fa2_3_and0 = ((f_s_arrmul8_and2_3 >> 0) & 0x01) & ((f_s_arrmul8_fa3_2_xor1 >> 0) & 0x01); - f_s_arrmul8_fa2_3_xor1 = ((f_s_arrmul8_fa2_3_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa1_3_or0 >> 0) & 0x01); - f_s_arrmul8_fa2_3_and1 = ((f_s_arrmul8_fa2_3_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa1_3_or0 >> 0) & 0x01); - f_s_arrmul8_fa2_3_or0 = ((f_s_arrmul8_fa2_3_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa2_3_and1 >> 0) & 0x01); - f_s_arrmul8_and3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_arrmul8_fa3_3_xor0 = ((f_s_arrmul8_and3_3 >> 0) & 0x01) ^ ((f_s_arrmul8_fa4_2_xor1 >> 0) & 0x01); - f_s_arrmul8_fa3_3_and0 = ((f_s_arrmul8_and3_3 >> 0) & 0x01) & ((f_s_arrmul8_fa4_2_xor1 >> 0) & 0x01); - f_s_arrmul8_fa3_3_xor1 = ((f_s_arrmul8_fa3_3_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa2_3_or0 >> 0) & 0x01); - f_s_arrmul8_fa3_3_and1 = ((f_s_arrmul8_fa3_3_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa2_3_or0 >> 0) & 0x01); - f_s_arrmul8_fa3_3_or0 = ((f_s_arrmul8_fa3_3_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa3_3_and1 >> 0) & 0x01); - f_s_arrmul8_and4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_s_arrmul8_fa4_3_xor0 = ((f_s_arrmul8_and4_3 >> 0) & 0x01) ^ ((f_s_arrmul8_fa5_2_xor1 >> 0) & 0x01); - f_s_arrmul8_fa4_3_and0 = ((f_s_arrmul8_and4_3 >> 0) & 0x01) & ((f_s_arrmul8_fa5_2_xor1 >> 0) & 0x01); - f_s_arrmul8_fa4_3_xor1 = ((f_s_arrmul8_fa4_3_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa3_3_or0 >> 0) & 0x01); - f_s_arrmul8_fa4_3_and1 = ((f_s_arrmul8_fa4_3_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa3_3_or0 >> 0) & 0x01); - f_s_arrmul8_fa4_3_or0 = ((f_s_arrmul8_fa4_3_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa4_3_and1 >> 0) & 0x01); - f_s_arrmul8_and5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_s_arrmul8_fa5_3_xor0 = ((f_s_arrmul8_and5_3 >> 0) & 0x01) ^ ((f_s_arrmul8_fa6_2_xor1 >> 0) & 0x01); - f_s_arrmul8_fa5_3_and0 = ((f_s_arrmul8_and5_3 >> 0) & 0x01) & ((f_s_arrmul8_fa6_2_xor1 >> 0) & 0x01); - f_s_arrmul8_fa5_3_xor1 = ((f_s_arrmul8_fa5_3_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa4_3_or0 >> 0) & 0x01); - f_s_arrmul8_fa5_3_and1 = ((f_s_arrmul8_fa5_3_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa4_3_or0 >> 0) & 0x01); - f_s_arrmul8_fa5_3_or0 = ((f_s_arrmul8_fa5_3_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa5_3_and1 >> 0) & 0x01); - f_s_arrmul8_and6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_s_arrmul8_fa6_3_xor0 = ((f_s_arrmul8_and6_3 >> 0) & 0x01) ^ ((f_s_arrmul8_fa7_2_xor1 >> 0) & 0x01); - f_s_arrmul8_fa6_3_and0 = ((f_s_arrmul8_and6_3 >> 0) & 0x01) & ((f_s_arrmul8_fa7_2_xor1 >> 0) & 0x01); - f_s_arrmul8_fa6_3_xor1 = ((f_s_arrmul8_fa6_3_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa5_3_or0 >> 0) & 0x01); - f_s_arrmul8_fa6_3_and1 = ((f_s_arrmul8_fa6_3_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa5_3_or0 >> 0) & 0x01); - f_s_arrmul8_fa6_3_or0 = ((f_s_arrmul8_fa6_3_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa6_3_and1 >> 0) & 0x01); - f_s_arrmul8_nand7_3 = ~(((a >> 7) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_arrmul8_fa7_3_xor0 = ((f_s_arrmul8_nand7_3 >> 0) & 0x01) ^ ((f_s_arrmul8_fa7_2_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_3_and0 = ((f_s_arrmul8_nand7_3 >> 0) & 0x01) & ((f_s_arrmul8_fa7_2_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_3_xor1 = ((f_s_arrmul8_fa7_3_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa6_3_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_3_and1 = ((f_s_arrmul8_fa7_3_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa6_3_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_3_or0 = ((f_s_arrmul8_fa7_3_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa7_3_and1 >> 0) & 0x01); - f_s_arrmul8_and0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_s_arrmul8_ha0_4_xor0 = ((f_s_arrmul8_and0_4 >> 0) & 0x01) ^ ((f_s_arrmul8_fa1_3_xor1 >> 0) & 0x01); - f_s_arrmul8_ha0_4_and0 = ((f_s_arrmul8_and0_4 >> 0) & 0x01) & ((f_s_arrmul8_fa1_3_xor1 >> 0) & 0x01); - f_s_arrmul8_and1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_s_arrmul8_fa1_4_xor0 = ((f_s_arrmul8_and1_4 >> 0) & 0x01) ^ ((f_s_arrmul8_fa2_3_xor1 >> 0) & 0x01); - f_s_arrmul8_fa1_4_and0 = ((f_s_arrmul8_and1_4 >> 0) & 0x01) & ((f_s_arrmul8_fa2_3_xor1 >> 0) & 0x01); - f_s_arrmul8_fa1_4_xor1 = ((f_s_arrmul8_fa1_4_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_ha0_4_and0 >> 0) & 0x01); - f_s_arrmul8_fa1_4_and1 = ((f_s_arrmul8_fa1_4_xor0 >> 0) & 0x01) & ((f_s_arrmul8_ha0_4_and0 >> 0) & 0x01); - f_s_arrmul8_fa1_4_or0 = ((f_s_arrmul8_fa1_4_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa1_4_and1 >> 0) & 0x01); - f_s_arrmul8_and2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_s_arrmul8_fa2_4_xor0 = ((f_s_arrmul8_and2_4 >> 0) & 0x01) ^ ((f_s_arrmul8_fa3_3_xor1 >> 0) & 0x01); - f_s_arrmul8_fa2_4_and0 = ((f_s_arrmul8_and2_4 >> 0) & 0x01) & ((f_s_arrmul8_fa3_3_xor1 >> 0) & 0x01); - f_s_arrmul8_fa2_4_xor1 = ((f_s_arrmul8_fa2_4_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa1_4_or0 >> 0) & 0x01); - f_s_arrmul8_fa2_4_and1 = ((f_s_arrmul8_fa2_4_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa1_4_or0 >> 0) & 0x01); - f_s_arrmul8_fa2_4_or0 = ((f_s_arrmul8_fa2_4_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa2_4_and1 >> 0) & 0x01); - f_s_arrmul8_and3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_s_arrmul8_fa3_4_xor0 = ((f_s_arrmul8_and3_4 >> 0) & 0x01) ^ ((f_s_arrmul8_fa4_3_xor1 >> 0) & 0x01); - f_s_arrmul8_fa3_4_and0 = ((f_s_arrmul8_and3_4 >> 0) & 0x01) & ((f_s_arrmul8_fa4_3_xor1 >> 0) & 0x01); - f_s_arrmul8_fa3_4_xor1 = ((f_s_arrmul8_fa3_4_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa2_4_or0 >> 0) & 0x01); - f_s_arrmul8_fa3_4_and1 = ((f_s_arrmul8_fa3_4_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa2_4_or0 >> 0) & 0x01); - f_s_arrmul8_fa3_4_or0 = ((f_s_arrmul8_fa3_4_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa3_4_and1 >> 0) & 0x01); - f_s_arrmul8_and4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_s_arrmul8_fa4_4_xor0 = ((f_s_arrmul8_and4_4 >> 0) & 0x01) ^ ((f_s_arrmul8_fa5_3_xor1 >> 0) & 0x01); - f_s_arrmul8_fa4_4_and0 = ((f_s_arrmul8_and4_4 >> 0) & 0x01) & ((f_s_arrmul8_fa5_3_xor1 >> 0) & 0x01); - f_s_arrmul8_fa4_4_xor1 = ((f_s_arrmul8_fa4_4_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa3_4_or0 >> 0) & 0x01); - f_s_arrmul8_fa4_4_and1 = ((f_s_arrmul8_fa4_4_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa3_4_or0 >> 0) & 0x01); - f_s_arrmul8_fa4_4_or0 = ((f_s_arrmul8_fa4_4_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa4_4_and1 >> 0) & 0x01); - f_s_arrmul8_and5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_s_arrmul8_fa5_4_xor0 = ((f_s_arrmul8_and5_4 >> 0) & 0x01) ^ ((f_s_arrmul8_fa6_3_xor1 >> 0) & 0x01); - f_s_arrmul8_fa5_4_and0 = ((f_s_arrmul8_and5_4 >> 0) & 0x01) & ((f_s_arrmul8_fa6_3_xor1 >> 0) & 0x01); - f_s_arrmul8_fa5_4_xor1 = ((f_s_arrmul8_fa5_4_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa4_4_or0 >> 0) & 0x01); - f_s_arrmul8_fa5_4_and1 = ((f_s_arrmul8_fa5_4_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa4_4_or0 >> 0) & 0x01); - f_s_arrmul8_fa5_4_or0 = ((f_s_arrmul8_fa5_4_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa5_4_and1 >> 0) & 0x01); - f_s_arrmul8_and6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_s_arrmul8_fa6_4_xor0 = ((f_s_arrmul8_and6_4 >> 0) & 0x01) ^ ((f_s_arrmul8_fa7_3_xor1 >> 0) & 0x01); - f_s_arrmul8_fa6_4_and0 = ((f_s_arrmul8_and6_4 >> 0) & 0x01) & ((f_s_arrmul8_fa7_3_xor1 >> 0) & 0x01); - f_s_arrmul8_fa6_4_xor1 = ((f_s_arrmul8_fa6_4_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa5_4_or0 >> 0) & 0x01); - f_s_arrmul8_fa6_4_and1 = ((f_s_arrmul8_fa6_4_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa5_4_or0 >> 0) & 0x01); - f_s_arrmul8_fa6_4_or0 = ((f_s_arrmul8_fa6_4_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa6_4_and1 >> 0) & 0x01); - f_s_arrmul8_nand7_4 = ~(((a >> 7) & 0x01) & ((b >> 4) & 0x01)) & 0x01; - f_s_arrmul8_fa7_4_xor0 = ((f_s_arrmul8_nand7_4 >> 0) & 0x01) ^ ((f_s_arrmul8_fa7_3_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_4_and0 = ((f_s_arrmul8_nand7_4 >> 0) & 0x01) & ((f_s_arrmul8_fa7_3_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_4_xor1 = ((f_s_arrmul8_fa7_4_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa6_4_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_4_and1 = ((f_s_arrmul8_fa7_4_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa6_4_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_4_or0 = ((f_s_arrmul8_fa7_4_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa7_4_and1 >> 0) & 0x01); - f_s_arrmul8_and0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_s_arrmul8_ha0_5_xor0 = ((f_s_arrmul8_and0_5 >> 0) & 0x01) ^ ((f_s_arrmul8_fa1_4_xor1 >> 0) & 0x01); - f_s_arrmul8_ha0_5_and0 = ((f_s_arrmul8_and0_5 >> 0) & 0x01) & ((f_s_arrmul8_fa1_4_xor1 >> 0) & 0x01); - f_s_arrmul8_and1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_s_arrmul8_fa1_5_xor0 = ((f_s_arrmul8_and1_5 >> 0) & 0x01) ^ ((f_s_arrmul8_fa2_4_xor1 >> 0) & 0x01); - f_s_arrmul8_fa1_5_and0 = ((f_s_arrmul8_and1_5 >> 0) & 0x01) & ((f_s_arrmul8_fa2_4_xor1 >> 0) & 0x01); - f_s_arrmul8_fa1_5_xor1 = ((f_s_arrmul8_fa1_5_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_ha0_5_and0 >> 0) & 0x01); - f_s_arrmul8_fa1_5_and1 = ((f_s_arrmul8_fa1_5_xor0 >> 0) & 0x01) & ((f_s_arrmul8_ha0_5_and0 >> 0) & 0x01); - f_s_arrmul8_fa1_5_or0 = ((f_s_arrmul8_fa1_5_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa1_5_and1 >> 0) & 0x01); - f_s_arrmul8_and2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_s_arrmul8_fa2_5_xor0 = ((f_s_arrmul8_and2_5 >> 0) & 0x01) ^ ((f_s_arrmul8_fa3_4_xor1 >> 0) & 0x01); - f_s_arrmul8_fa2_5_and0 = ((f_s_arrmul8_and2_5 >> 0) & 0x01) & ((f_s_arrmul8_fa3_4_xor1 >> 0) & 0x01); - f_s_arrmul8_fa2_5_xor1 = ((f_s_arrmul8_fa2_5_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa1_5_or0 >> 0) & 0x01); - f_s_arrmul8_fa2_5_and1 = ((f_s_arrmul8_fa2_5_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa1_5_or0 >> 0) & 0x01); - f_s_arrmul8_fa2_5_or0 = ((f_s_arrmul8_fa2_5_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa2_5_and1 >> 0) & 0x01); - f_s_arrmul8_and3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_s_arrmul8_fa3_5_xor0 = ((f_s_arrmul8_and3_5 >> 0) & 0x01) ^ ((f_s_arrmul8_fa4_4_xor1 >> 0) & 0x01); - f_s_arrmul8_fa3_5_and0 = ((f_s_arrmul8_and3_5 >> 0) & 0x01) & ((f_s_arrmul8_fa4_4_xor1 >> 0) & 0x01); - f_s_arrmul8_fa3_5_xor1 = ((f_s_arrmul8_fa3_5_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa2_5_or0 >> 0) & 0x01); - f_s_arrmul8_fa3_5_and1 = ((f_s_arrmul8_fa3_5_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa2_5_or0 >> 0) & 0x01); - f_s_arrmul8_fa3_5_or0 = ((f_s_arrmul8_fa3_5_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa3_5_and1 >> 0) & 0x01); - f_s_arrmul8_and4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_s_arrmul8_fa4_5_xor0 = ((f_s_arrmul8_and4_5 >> 0) & 0x01) ^ ((f_s_arrmul8_fa5_4_xor1 >> 0) & 0x01); - f_s_arrmul8_fa4_5_and0 = ((f_s_arrmul8_and4_5 >> 0) & 0x01) & ((f_s_arrmul8_fa5_4_xor1 >> 0) & 0x01); - f_s_arrmul8_fa4_5_xor1 = ((f_s_arrmul8_fa4_5_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa3_5_or0 >> 0) & 0x01); - f_s_arrmul8_fa4_5_and1 = ((f_s_arrmul8_fa4_5_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa3_5_or0 >> 0) & 0x01); - f_s_arrmul8_fa4_5_or0 = ((f_s_arrmul8_fa4_5_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa4_5_and1 >> 0) & 0x01); - f_s_arrmul8_and5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_s_arrmul8_fa5_5_xor0 = ((f_s_arrmul8_and5_5 >> 0) & 0x01) ^ ((f_s_arrmul8_fa6_4_xor1 >> 0) & 0x01); - f_s_arrmul8_fa5_5_and0 = ((f_s_arrmul8_and5_5 >> 0) & 0x01) & ((f_s_arrmul8_fa6_4_xor1 >> 0) & 0x01); - f_s_arrmul8_fa5_5_xor1 = ((f_s_arrmul8_fa5_5_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa4_5_or0 >> 0) & 0x01); - f_s_arrmul8_fa5_5_and1 = ((f_s_arrmul8_fa5_5_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa4_5_or0 >> 0) & 0x01); - f_s_arrmul8_fa5_5_or0 = ((f_s_arrmul8_fa5_5_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa5_5_and1 >> 0) & 0x01); - f_s_arrmul8_and6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_s_arrmul8_fa6_5_xor0 = ((f_s_arrmul8_and6_5 >> 0) & 0x01) ^ ((f_s_arrmul8_fa7_4_xor1 >> 0) & 0x01); - f_s_arrmul8_fa6_5_and0 = ((f_s_arrmul8_and6_5 >> 0) & 0x01) & ((f_s_arrmul8_fa7_4_xor1 >> 0) & 0x01); - f_s_arrmul8_fa6_5_xor1 = ((f_s_arrmul8_fa6_5_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa5_5_or0 >> 0) & 0x01); - f_s_arrmul8_fa6_5_and1 = ((f_s_arrmul8_fa6_5_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa5_5_or0 >> 0) & 0x01); - f_s_arrmul8_fa6_5_or0 = ((f_s_arrmul8_fa6_5_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa6_5_and1 >> 0) & 0x01); - f_s_arrmul8_nand7_5 = ~(((a >> 7) & 0x01) & ((b >> 5) & 0x01)) & 0x01; - f_s_arrmul8_fa7_5_xor0 = ((f_s_arrmul8_nand7_5 >> 0) & 0x01) ^ ((f_s_arrmul8_fa7_4_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_5_and0 = ((f_s_arrmul8_nand7_5 >> 0) & 0x01) & ((f_s_arrmul8_fa7_4_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_5_xor1 = ((f_s_arrmul8_fa7_5_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa6_5_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_5_and1 = ((f_s_arrmul8_fa7_5_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa6_5_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_5_or0 = ((f_s_arrmul8_fa7_5_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa7_5_and1 >> 0) & 0x01); - f_s_arrmul8_and0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_s_arrmul8_ha0_6_xor0 = ((f_s_arrmul8_and0_6 >> 0) & 0x01) ^ ((f_s_arrmul8_fa1_5_xor1 >> 0) & 0x01); - f_s_arrmul8_ha0_6_and0 = ((f_s_arrmul8_and0_6 >> 0) & 0x01) & ((f_s_arrmul8_fa1_5_xor1 >> 0) & 0x01); - f_s_arrmul8_and1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_s_arrmul8_fa1_6_xor0 = ((f_s_arrmul8_and1_6 >> 0) & 0x01) ^ ((f_s_arrmul8_fa2_5_xor1 >> 0) & 0x01); - f_s_arrmul8_fa1_6_and0 = ((f_s_arrmul8_and1_6 >> 0) & 0x01) & ((f_s_arrmul8_fa2_5_xor1 >> 0) & 0x01); - f_s_arrmul8_fa1_6_xor1 = ((f_s_arrmul8_fa1_6_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_ha0_6_and0 >> 0) & 0x01); - f_s_arrmul8_fa1_6_and1 = ((f_s_arrmul8_fa1_6_xor0 >> 0) & 0x01) & ((f_s_arrmul8_ha0_6_and0 >> 0) & 0x01); - f_s_arrmul8_fa1_6_or0 = ((f_s_arrmul8_fa1_6_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa1_6_and1 >> 0) & 0x01); - f_s_arrmul8_and2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_s_arrmul8_fa2_6_xor0 = ((f_s_arrmul8_and2_6 >> 0) & 0x01) ^ ((f_s_arrmul8_fa3_5_xor1 >> 0) & 0x01); - f_s_arrmul8_fa2_6_and0 = ((f_s_arrmul8_and2_6 >> 0) & 0x01) & ((f_s_arrmul8_fa3_5_xor1 >> 0) & 0x01); - f_s_arrmul8_fa2_6_xor1 = ((f_s_arrmul8_fa2_6_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa1_6_or0 >> 0) & 0x01); - f_s_arrmul8_fa2_6_and1 = ((f_s_arrmul8_fa2_6_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa1_6_or0 >> 0) & 0x01); - f_s_arrmul8_fa2_6_or0 = ((f_s_arrmul8_fa2_6_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa2_6_and1 >> 0) & 0x01); - f_s_arrmul8_and3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_s_arrmul8_fa3_6_xor0 = ((f_s_arrmul8_and3_6 >> 0) & 0x01) ^ ((f_s_arrmul8_fa4_5_xor1 >> 0) & 0x01); - f_s_arrmul8_fa3_6_and0 = ((f_s_arrmul8_and3_6 >> 0) & 0x01) & ((f_s_arrmul8_fa4_5_xor1 >> 0) & 0x01); - f_s_arrmul8_fa3_6_xor1 = ((f_s_arrmul8_fa3_6_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa2_6_or0 >> 0) & 0x01); - f_s_arrmul8_fa3_6_and1 = ((f_s_arrmul8_fa3_6_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa2_6_or0 >> 0) & 0x01); - f_s_arrmul8_fa3_6_or0 = ((f_s_arrmul8_fa3_6_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa3_6_and1 >> 0) & 0x01); - f_s_arrmul8_and4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_s_arrmul8_fa4_6_xor0 = ((f_s_arrmul8_and4_6 >> 0) & 0x01) ^ ((f_s_arrmul8_fa5_5_xor1 >> 0) & 0x01); - f_s_arrmul8_fa4_6_and0 = ((f_s_arrmul8_and4_6 >> 0) & 0x01) & ((f_s_arrmul8_fa5_5_xor1 >> 0) & 0x01); - f_s_arrmul8_fa4_6_xor1 = ((f_s_arrmul8_fa4_6_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa3_6_or0 >> 0) & 0x01); - f_s_arrmul8_fa4_6_and1 = ((f_s_arrmul8_fa4_6_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa3_6_or0 >> 0) & 0x01); - f_s_arrmul8_fa4_6_or0 = ((f_s_arrmul8_fa4_6_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa4_6_and1 >> 0) & 0x01); - f_s_arrmul8_and5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_s_arrmul8_fa5_6_xor0 = ((f_s_arrmul8_and5_6 >> 0) & 0x01) ^ ((f_s_arrmul8_fa6_5_xor1 >> 0) & 0x01); - f_s_arrmul8_fa5_6_and0 = ((f_s_arrmul8_and5_6 >> 0) & 0x01) & ((f_s_arrmul8_fa6_5_xor1 >> 0) & 0x01); - f_s_arrmul8_fa5_6_xor1 = ((f_s_arrmul8_fa5_6_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa4_6_or0 >> 0) & 0x01); - f_s_arrmul8_fa5_6_and1 = ((f_s_arrmul8_fa5_6_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa4_6_or0 >> 0) & 0x01); - f_s_arrmul8_fa5_6_or0 = ((f_s_arrmul8_fa5_6_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa5_6_and1 >> 0) & 0x01); - f_s_arrmul8_and6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_s_arrmul8_fa6_6_xor0 = ((f_s_arrmul8_and6_6 >> 0) & 0x01) ^ ((f_s_arrmul8_fa7_5_xor1 >> 0) & 0x01); - f_s_arrmul8_fa6_6_and0 = ((f_s_arrmul8_and6_6 >> 0) & 0x01) & ((f_s_arrmul8_fa7_5_xor1 >> 0) & 0x01); - f_s_arrmul8_fa6_6_xor1 = ((f_s_arrmul8_fa6_6_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa5_6_or0 >> 0) & 0x01); - f_s_arrmul8_fa6_6_and1 = ((f_s_arrmul8_fa6_6_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa5_6_or0 >> 0) & 0x01); - f_s_arrmul8_fa6_6_or0 = ((f_s_arrmul8_fa6_6_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa6_6_and1 >> 0) & 0x01); - f_s_arrmul8_nand7_6 = ~(((a >> 7) & 0x01) & ((b >> 6) & 0x01)) & 0x01; - f_s_arrmul8_fa7_6_xor0 = ((f_s_arrmul8_nand7_6 >> 0) & 0x01) ^ ((f_s_arrmul8_fa7_5_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_6_and0 = ((f_s_arrmul8_nand7_6 >> 0) & 0x01) & ((f_s_arrmul8_fa7_5_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_6_xor1 = ((f_s_arrmul8_fa7_6_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa6_6_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_6_and1 = ((f_s_arrmul8_fa7_6_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa6_6_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_6_or0 = ((f_s_arrmul8_fa7_6_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa7_6_and1 >> 0) & 0x01); - f_s_arrmul8_nand0_7 = ~(((a >> 0) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_arrmul8_ha0_7_xor0 = ((f_s_arrmul8_nand0_7 >> 0) & 0x01) ^ ((f_s_arrmul8_fa1_6_xor1 >> 0) & 0x01); - f_s_arrmul8_ha0_7_and0 = ((f_s_arrmul8_nand0_7 >> 0) & 0x01) & ((f_s_arrmul8_fa1_6_xor1 >> 0) & 0x01); - f_s_arrmul8_nand1_7 = ~(((a >> 1) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_arrmul8_fa1_7_xor0 = ((f_s_arrmul8_nand1_7 >> 0) & 0x01) ^ ((f_s_arrmul8_fa2_6_xor1 >> 0) & 0x01); - f_s_arrmul8_fa1_7_and0 = ((f_s_arrmul8_nand1_7 >> 0) & 0x01) & ((f_s_arrmul8_fa2_6_xor1 >> 0) & 0x01); - f_s_arrmul8_fa1_7_xor1 = ((f_s_arrmul8_fa1_7_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_ha0_7_and0 >> 0) & 0x01); - f_s_arrmul8_fa1_7_and1 = ((f_s_arrmul8_fa1_7_xor0 >> 0) & 0x01) & ((f_s_arrmul8_ha0_7_and0 >> 0) & 0x01); - f_s_arrmul8_fa1_7_or0 = ((f_s_arrmul8_fa1_7_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa1_7_and1 >> 0) & 0x01); - f_s_arrmul8_nand2_7 = ~(((a >> 2) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_arrmul8_fa2_7_xor0 = ((f_s_arrmul8_nand2_7 >> 0) & 0x01) ^ ((f_s_arrmul8_fa3_6_xor1 >> 0) & 0x01); - f_s_arrmul8_fa2_7_and0 = ((f_s_arrmul8_nand2_7 >> 0) & 0x01) & ((f_s_arrmul8_fa3_6_xor1 >> 0) & 0x01); - f_s_arrmul8_fa2_7_xor1 = ((f_s_arrmul8_fa2_7_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa1_7_or0 >> 0) & 0x01); - f_s_arrmul8_fa2_7_and1 = ((f_s_arrmul8_fa2_7_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa1_7_or0 >> 0) & 0x01); - f_s_arrmul8_fa2_7_or0 = ((f_s_arrmul8_fa2_7_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa2_7_and1 >> 0) & 0x01); - f_s_arrmul8_nand3_7 = ~(((a >> 3) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_arrmul8_fa3_7_xor0 = ((f_s_arrmul8_nand3_7 >> 0) & 0x01) ^ ((f_s_arrmul8_fa4_6_xor1 >> 0) & 0x01); - f_s_arrmul8_fa3_7_and0 = ((f_s_arrmul8_nand3_7 >> 0) & 0x01) & ((f_s_arrmul8_fa4_6_xor1 >> 0) & 0x01); - f_s_arrmul8_fa3_7_xor1 = ((f_s_arrmul8_fa3_7_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa2_7_or0 >> 0) & 0x01); - f_s_arrmul8_fa3_7_and1 = ((f_s_arrmul8_fa3_7_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa2_7_or0 >> 0) & 0x01); - f_s_arrmul8_fa3_7_or0 = ((f_s_arrmul8_fa3_7_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa3_7_and1 >> 0) & 0x01); - f_s_arrmul8_nand4_7 = ~(((a >> 4) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_arrmul8_fa4_7_xor0 = ((f_s_arrmul8_nand4_7 >> 0) & 0x01) ^ ((f_s_arrmul8_fa5_6_xor1 >> 0) & 0x01); - f_s_arrmul8_fa4_7_and0 = ((f_s_arrmul8_nand4_7 >> 0) & 0x01) & ((f_s_arrmul8_fa5_6_xor1 >> 0) & 0x01); - f_s_arrmul8_fa4_7_xor1 = ((f_s_arrmul8_fa4_7_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa3_7_or0 >> 0) & 0x01); - f_s_arrmul8_fa4_7_and1 = ((f_s_arrmul8_fa4_7_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa3_7_or0 >> 0) & 0x01); - f_s_arrmul8_fa4_7_or0 = ((f_s_arrmul8_fa4_7_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa4_7_and1 >> 0) & 0x01); - f_s_arrmul8_nand5_7 = ~(((a >> 5) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_arrmul8_fa5_7_xor0 = ((f_s_arrmul8_nand5_7 >> 0) & 0x01) ^ ((f_s_arrmul8_fa6_6_xor1 >> 0) & 0x01); - f_s_arrmul8_fa5_7_and0 = ((f_s_arrmul8_nand5_7 >> 0) & 0x01) & ((f_s_arrmul8_fa6_6_xor1 >> 0) & 0x01); - f_s_arrmul8_fa5_7_xor1 = ((f_s_arrmul8_fa5_7_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa4_7_or0 >> 0) & 0x01); - f_s_arrmul8_fa5_7_and1 = ((f_s_arrmul8_fa5_7_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa4_7_or0 >> 0) & 0x01); - f_s_arrmul8_fa5_7_or0 = ((f_s_arrmul8_fa5_7_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa5_7_and1 >> 0) & 0x01); - f_s_arrmul8_nand6_7 = ~(((a >> 6) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_arrmul8_fa6_7_xor0 = ((f_s_arrmul8_nand6_7 >> 0) & 0x01) ^ ((f_s_arrmul8_fa7_6_xor1 >> 0) & 0x01); - f_s_arrmul8_fa6_7_and0 = ((f_s_arrmul8_nand6_7 >> 0) & 0x01) & ((f_s_arrmul8_fa7_6_xor1 >> 0) & 0x01); - f_s_arrmul8_fa6_7_xor1 = ((f_s_arrmul8_fa6_7_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa5_7_or0 >> 0) & 0x01); - f_s_arrmul8_fa6_7_and1 = ((f_s_arrmul8_fa6_7_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa5_7_or0 >> 0) & 0x01); - f_s_arrmul8_fa6_7_or0 = ((f_s_arrmul8_fa6_7_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa6_7_and1 >> 0) & 0x01); - f_s_arrmul8_and7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_s_arrmul8_fa7_7_xor0 = ((f_s_arrmul8_and7_7 >> 0) & 0x01) ^ ((f_s_arrmul8_fa7_6_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_7_and0 = ((f_s_arrmul8_and7_7 >> 0) & 0x01) & ((f_s_arrmul8_fa7_6_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_7_xor1 = ((f_s_arrmul8_fa7_7_xor0 >> 0) & 0x01) ^ ((f_s_arrmul8_fa6_7_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_7_and1 = ((f_s_arrmul8_fa7_7_xor0 >> 0) & 0x01) & ((f_s_arrmul8_fa6_7_or0 >> 0) & 0x01); - f_s_arrmul8_fa7_7_or0 = ((f_s_arrmul8_fa7_7_and0 >> 0) & 0x01) | ((f_s_arrmul8_fa7_7_and1 >> 0) & 0x01); - f_s_arrmul8_xor8_7 = ~(((f_s_arrmul8_fa7_7_or0 >> 0) & 0x01)) & 0x01; - - f_s_arrmul8_out |= ((f_s_arrmul8_and0_0 >> 0) & 0x01) << 0; - f_s_arrmul8_out |= ((f_s_arrmul8_ha0_1_xor0 >> 0) & 0x01) << 1; - f_s_arrmul8_out |= ((f_s_arrmul8_ha0_2_xor0 >> 0) & 0x01) << 2; - f_s_arrmul8_out |= ((f_s_arrmul8_ha0_3_xor0 >> 0) & 0x01) << 3; - f_s_arrmul8_out |= ((f_s_arrmul8_ha0_4_xor0 >> 0) & 0x01) << 4; - f_s_arrmul8_out |= ((f_s_arrmul8_ha0_5_xor0 >> 0) & 0x01) << 5; - f_s_arrmul8_out |= ((f_s_arrmul8_ha0_6_xor0 >> 0) & 0x01) << 6; - f_s_arrmul8_out |= ((f_s_arrmul8_ha0_7_xor0 >> 0) & 0x01) << 7; - f_s_arrmul8_out |= ((f_s_arrmul8_fa1_7_xor1 >> 0) & 0x01) << 8; - f_s_arrmul8_out |= ((f_s_arrmul8_fa2_7_xor1 >> 0) & 0x01) << 9; - f_s_arrmul8_out |= ((f_s_arrmul8_fa3_7_xor1 >> 0) & 0x01) << 10; - f_s_arrmul8_out |= ((f_s_arrmul8_fa4_7_xor1 >> 0) & 0x01) << 11; - f_s_arrmul8_out |= ((f_s_arrmul8_fa5_7_xor1 >> 0) & 0x01) << 12; - f_s_arrmul8_out |= ((f_s_arrmul8_fa6_7_xor1 >> 0) & 0x01) << 13; - f_s_arrmul8_out |= ((f_s_arrmul8_fa7_7_xor1 >> 0) & 0x01) << 14; - f_s_arrmul8_out |= ((f_s_arrmul8_xor8_7 >> 0) & 0x01) << 15; - return f_s_arrmul8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)f_s_arrmul8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cla4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cla4.c deleted file mode 100644 index 6982aff..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cla4.c +++ /dev/null @@ -1,211 +0,0 @@ -#include -#include - -uint64_t f_s_dadda_cla4(uint64_t a, uint64_t b){ - uint8_t f_s_dadda_cla4_out = 0; - uint8_t f_s_dadda_cla4_nand_3_0 = 0; - uint8_t f_s_dadda_cla4_and_2_1 = 0; - uint8_t f_s_dadda_cla4_ha0_xor0 = 0; - uint8_t f_s_dadda_cla4_ha0_and0 = 0; - uint8_t f_s_dadda_cla4_nand_3_1 = 0; - uint8_t f_s_dadda_cla4_fa0_xor0 = 0; - uint8_t f_s_dadda_cla4_fa0_xor1 = 0; - uint8_t f_s_dadda_cla4_fa0_and1 = 0; - uint8_t f_s_dadda_cla4_fa0_or0 = 0; - uint8_t f_s_dadda_cla4_and_2_0 = 0; - uint8_t f_s_dadda_cla4_and_1_1 = 0; - uint8_t f_s_dadda_cla4_ha1_xor0 = 0; - uint8_t f_s_dadda_cla4_ha1_and0 = 0; - uint8_t f_s_dadda_cla4_and_1_2 = 0; - uint8_t f_s_dadda_cla4_nand_0_3 = 0; - uint8_t f_s_dadda_cla4_fa1_xor0 = 0; - uint8_t f_s_dadda_cla4_fa1_and0 = 0; - uint8_t f_s_dadda_cla4_fa1_xor1 = 0; - uint8_t f_s_dadda_cla4_fa1_and1 = 0; - uint8_t f_s_dadda_cla4_fa1_or0 = 0; - uint8_t f_s_dadda_cla4_and_2_2 = 0; - uint8_t f_s_dadda_cla4_nand_1_3 = 0; - uint8_t f_s_dadda_cla4_fa2_xor0 = 0; - uint8_t f_s_dadda_cla4_fa2_and0 = 0; - uint8_t f_s_dadda_cla4_fa2_xor1 = 0; - uint8_t f_s_dadda_cla4_fa2_and1 = 0; - uint8_t f_s_dadda_cla4_fa2_or0 = 0; - uint8_t f_s_dadda_cla4_nand_3_2 = 0; - uint8_t f_s_dadda_cla4_fa3_xor0 = 0; - uint8_t f_s_dadda_cla4_fa3_and0 = 0; - uint8_t f_s_dadda_cla4_fa3_xor1 = 0; - uint8_t f_s_dadda_cla4_fa3_and1 = 0; - uint8_t f_s_dadda_cla4_fa3_or0 = 0; - uint8_t f_s_dadda_cla4_and_0_0 = 0; - uint8_t f_s_dadda_cla4_and_1_0 = 0; - uint8_t f_s_dadda_cla4_and_0_2 = 0; - uint8_t f_s_dadda_cla4_nand_2_3 = 0; - uint8_t f_s_dadda_cla4_and_0_1 = 0; - uint8_t f_s_dadda_cla4_and_3_3 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic0_or0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic0_and0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic0_xor0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic1_or0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic1_and0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic1_xor0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_xor1 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_or0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic2_or0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic2_and0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic2_xor0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_xor2 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and1 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and2 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and3 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and4 = 0; - uint8_t f_s_dadda_cla4_u_cla6_or1 = 0; - uint8_t f_s_dadda_cla4_u_cla6_or2 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic3_or0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic3_and0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic3_xor0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_xor3 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and5 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and6 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and7 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and8 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and9 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and10 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and11 = 0; - uint8_t f_s_dadda_cla4_u_cla6_or3 = 0; - uint8_t f_s_dadda_cla4_u_cla6_or4 = 0; - uint8_t f_s_dadda_cla4_u_cla6_or5 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic4_or0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic4_and0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic4_xor0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_xor4 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and12 = 0; - uint8_t f_s_dadda_cla4_u_cla6_or6 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic5_or0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic5_and0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_pg_logic5_xor0 = 0; - uint8_t f_s_dadda_cla4_u_cla6_xor5 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and13 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and14 = 0; - uint8_t f_s_dadda_cla4_u_cla6_and15 = 0; - uint8_t f_s_dadda_cla4_u_cla6_or7 = 0; - uint8_t f_s_dadda_cla4_u_cla6_or8 = 0; - uint8_t f_s_dadda_cla4_xor0 = 0; - - f_s_dadda_cla4_nand_3_0 = ~(((a >> 3) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_dadda_cla4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cla4_ha0_xor0 = ((f_s_dadda_cla4_nand_3_0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_and_2_1 >> 0) & 0x01); - f_s_dadda_cla4_ha0_and0 = ((f_s_dadda_cla4_nand_3_0 >> 0) & 0x01) & ((f_s_dadda_cla4_and_2_1 >> 0) & 0x01); - f_s_dadda_cla4_nand_3_1 = ~(((a >> 3) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_dadda_cla4_fa0_xor0 = ~(((f_s_dadda_cla4_ha0_and0 >> 0) & 0x01)) & 0x01; - f_s_dadda_cla4_fa0_xor1 = ((f_s_dadda_cla4_fa0_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_nand_3_1 >> 0) & 0x01); - f_s_dadda_cla4_fa0_and1 = ((f_s_dadda_cla4_fa0_xor0 >> 0) & 0x01) & ((f_s_dadda_cla4_nand_3_1 >> 0) & 0x01); - f_s_dadda_cla4_fa0_or0 = ((f_s_dadda_cla4_ha0_and0 >> 0) & 0x01) | ((f_s_dadda_cla4_fa0_and1 >> 0) & 0x01); - f_s_dadda_cla4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cla4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cla4_ha1_xor0 = ((f_s_dadda_cla4_and_2_0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_and_1_1 >> 0) & 0x01); - f_s_dadda_cla4_ha1_and0 = ((f_s_dadda_cla4_and_2_0 >> 0) & 0x01) & ((f_s_dadda_cla4_and_1_1 >> 0) & 0x01); - f_s_dadda_cla4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cla4_nand_0_3 = ~(((a >> 0) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_cla4_fa1_xor0 = ((f_s_dadda_cla4_ha1_and0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_and_1_2 >> 0) & 0x01); - f_s_dadda_cla4_fa1_and0 = ((f_s_dadda_cla4_ha1_and0 >> 0) & 0x01) & ((f_s_dadda_cla4_and_1_2 >> 0) & 0x01); - f_s_dadda_cla4_fa1_xor1 = ((f_s_dadda_cla4_fa1_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_nand_0_3 >> 0) & 0x01); - f_s_dadda_cla4_fa1_and1 = ((f_s_dadda_cla4_fa1_xor0 >> 0) & 0x01) & ((f_s_dadda_cla4_nand_0_3 >> 0) & 0x01); - f_s_dadda_cla4_fa1_or0 = ((f_s_dadda_cla4_fa1_and0 >> 0) & 0x01) | ((f_s_dadda_cla4_fa1_and1 >> 0) & 0x01); - f_s_dadda_cla4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cla4_nand_1_3 = ~(((a >> 1) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_cla4_fa2_xor0 = ((f_s_dadda_cla4_fa1_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_and_2_2 >> 0) & 0x01); - f_s_dadda_cla4_fa2_and0 = ((f_s_dadda_cla4_fa1_or0 >> 0) & 0x01) & ((f_s_dadda_cla4_and_2_2 >> 0) & 0x01); - f_s_dadda_cla4_fa2_xor1 = ((f_s_dadda_cla4_fa2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_nand_1_3 >> 0) & 0x01); - f_s_dadda_cla4_fa2_and1 = ((f_s_dadda_cla4_fa2_xor0 >> 0) & 0x01) & ((f_s_dadda_cla4_nand_1_3 >> 0) & 0x01); - f_s_dadda_cla4_fa2_or0 = ((f_s_dadda_cla4_fa2_and0 >> 0) & 0x01) | ((f_s_dadda_cla4_fa2_and1 >> 0) & 0x01); - f_s_dadda_cla4_nand_3_2 = ~(((a >> 3) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_dadda_cla4_fa3_xor0 = ((f_s_dadda_cla4_fa2_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_fa0_or0 >> 0) & 0x01); - f_s_dadda_cla4_fa3_and0 = ((f_s_dadda_cla4_fa2_or0 >> 0) & 0x01) & ((f_s_dadda_cla4_fa0_or0 >> 0) & 0x01); - f_s_dadda_cla4_fa3_xor1 = ((f_s_dadda_cla4_fa3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_nand_3_2 >> 0) & 0x01); - f_s_dadda_cla4_fa3_and1 = ((f_s_dadda_cla4_fa3_xor0 >> 0) & 0x01) & ((f_s_dadda_cla4_nand_3_2 >> 0) & 0x01); - f_s_dadda_cla4_fa3_or0 = ((f_s_dadda_cla4_fa3_and0 >> 0) & 0x01) | ((f_s_dadda_cla4_fa3_and1 >> 0) & 0x01); - f_s_dadda_cla4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cla4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cla4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cla4_nand_2_3 = ~(((a >> 2) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_cla4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cla4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic0_or0 = ((f_s_dadda_cla4_and_1_0 >> 0) & 0x01) | ((f_s_dadda_cla4_and_0_1 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic0_and0 = ((f_s_dadda_cla4_and_1_0 >> 0) & 0x01) & ((f_s_dadda_cla4_and_0_1 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic0_xor0 = ((f_s_dadda_cla4_and_1_0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_and_0_1 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic1_or0 = ((f_s_dadda_cla4_and_0_2 >> 0) & 0x01) | ((f_s_dadda_cla4_ha1_xor0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic1_and0 = ((f_s_dadda_cla4_and_0_2 >> 0) & 0x01) & ((f_s_dadda_cla4_ha1_xor0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic1_xor0 = ((f_s_dadda_cla4_and_0_2 >> 0) & 0x01) ^ ((f_s_dadda_cla4_ha1_xor0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_xor1 = ((f_s_dadda_cla4_u_cla6_pg_logic1_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and0 = ((f_s_dadda_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_or0 = ((f_s_dadda_cla4_u_cla6_pg_logic1_and0 >> 0) & 0x01) | ((f_s_dadda_cla4_u_cla6_and0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic2_or0 = ((f_s_dadda_cla4_ha0_xor0 >> 0) & 0x01) | ((f_s_dadda_cla4_fa1_xor1 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic2_and0 = ((f_s_dadda_cla4_ha0_xor0 >> 0) & 0x01) & ((f_s_dadda_cla4_fa1_xor1 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic2_xor0 = ((f_s_dadda_cla4_ha0_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_fa1_xor1 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_xor2 = ((f_s_dadda_cla4_u_cla6_pg_logic2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_u_cla6_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and1 = ((f_s_dadda_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_pg_logic0_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and2 = ((f_s_dadda_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and3 = ((f_s_dadda_cla4_u_cla6_and2 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and4 = ((f_s_dadda_cla4_u_cla6_pg_logic1_and0 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_or1 = ((f_s_dadda_cla4_u_cla6_and3 >> 0) & 0x01) | ((f_s_dadda_cla4_u_cla6_and4 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_or2 = ((f_s_dadda_cla4_u_cla6_pg_logic2_and0 >> 0) & 0x01) | ((f_s_dadda_cla4_u_cla6_or1 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic3_or0 = ((f_s_dadda_cla4_fa0_xor1 >> 0) & 0x01) | ((f_s_dadda_cla4_fa2_xor1 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic3_and0 = ((f_s_dadda_cla4_fa0_xor1 >> 0) & 0x01) & ((f_s_dadda_cla4_fa2_xor1 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic3_xor0 = ((f_s_dadda_cla4_fa0_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cla4_fa2_xor1 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_xor3 = ((f_s_dadda_cla4_u_cla6_pg_logic3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_u_cla6_or2 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and5 = ((f_s_dadda_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and6 = ((f_s_dadda_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and7 = ((f_s_dadda_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and8 = ((f_s_dadda_cla4_u_cla6_and6 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_and7 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and9 = ((f_s_dadda_cla4_u_cla6_pg_logic1_and0 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and10 = ((f_s_dadda_cla4_u_cla6_and9 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and11 = ((f_s_dadda_cla4_u_cla6_pg_logic2_and0 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_or3 = ((f_s_dadda_cla4_u_cla6_and8 >> 0) & 0x01) | ((f_s_dadda_cla4_u_cla6_and11 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_or4 = ((f_s_dadda_cla4_u_cla6_and10 >> 0) & 0x01) | ((f_s_dadda_cla4_u_cla6_or3 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_or5 = ((f_s_dadda_cla4_u_cla6_pg_logic3_and0 >> 0) & 0x01) | ((f_s_dadda_cla4_u_cla6_or4 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic4_or0 = ((f_s_dadda_cla4_nand_2_3 >> 0) & 0x01) | ((f_s_dadda_cla4_fa3_xor1 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic4_and0 = ((f_s_dadda_cla4_nand_2_3 >> 0) & 0x01) & ((f_s_dadda_cla4_fa3_xor1 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic4_xor0 = ((f_s_dadda_cla4_nand_2_3 >> 0) & 0x01) ^ ((f_s_dadda_cla4_fa3_xor1 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_xor4 = ((f_s_dadda_cla4_u_cla6_pg_logic4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_u_cla6_or5 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and12 = ((f_s_dadda_cla4_u_cla6_or5 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_pg_logic4_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_or6 = ((f_s_dadda_cla4_u_cla6_pg_logic4_and0 >> 0) & 0x01) | ((f_s_dadda_cla4_u_cla6_and12 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic5_or0 = ((f_s_dadda_cla4_fa3_or0 >> 0) & 0x01) | ((f_s_dadda_cla4_and_3_3 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic5_and0 = ((f_s_dadda_cla4_fa3_or0 >> 0) & 0x01) & ((f_s_dadda_cla4_and_3_3 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_pg_logic5_xor0 = ((f_s_dadda_cla4_fa3_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_and_3_3 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_xor5 = ((f_s_dadda_cla4_u_cla6_pg_logic5_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla4_u_cla6_or6 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and13 = ((f_s_dadda_cla4_u_cla6_or5 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_pg_logic5_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and14 = ((f_s_dadda_cla4_u_cla6_and13 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_pg_logic4_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_and15 = ((f_s_dadda_cla4_u_cla6_pg_logic4_and0 >> 0) & 0x01) & ((f_s_dadda_cla4_u_cla6_pg_logic5_or0 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_or7 = ((f_s_dadda_cla4_u_cla6_and14 >> 0) & 0x01) | ((f_s_dadda_cla4_u_cla6_and15 >> 0) & 0x01); - f_s_dadda_cla4_u_cla6_or8 = ((f_s_dadda_cla4_u_cla6_pg_logic5_and0 >> 0) & 0x01) | ((f_s_dadda_cla4_u_cla6_or7 >> 0) & 0x01); - f_s_dadda_cla4_xor0 = ~(((f_s_dadda_cla4_u_cla6_or8 >> 0) & 0x01)) & 0x01; - - f_s_dadda_cla4_out |= ((f_s_dadda_cla4_and_0_0 >> 0) & 0x01) << 0; - f_s_dadda_cla4_out |= ((f_s_dadda_cla4_u_cla6_pg_logic0_xor0 >> 0) & 0x01) << 1; - f_s_dadda_cla4_out |= ((f_s_dadda_cla4_u_cla6_xor1 >> 0) & 0x01) << 2; - f_s_dadda_cla4_out |= ((f_s_dadda_cla4_u_cla6_xor2 >> 0) & 0x01) << 3; - f_s_dadda_cla4_out |= ((f_s_dadda_cla4_u_cla6_xor3 >> 0) & 0x01) << 4; - f_s_dadda_cla4_out |= ((f_s_dadda_cla4_u_cla6_xor4 >> 0) & 0x01) << 5; - f_s_dadda_cla4_out |= ((f_s_dadda_cla4_u_cla6_xor5 >> 0) & 0x01) << 6; - f_s_dadda_cla4_out |= ((f_s_dadda_cla4_xor0 >> 0) & 0x01) << 7; - return f_s_dadda_cla4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)f_s_dadda_cla4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cla8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cla8.c deleted file mode 100644 index e992a65..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cla8.c +++ /dev/null @@ -1,835 +0,0 @@ -#include -#include - -uint64_t f_s_dadda_cla8(uint64_t a, uint64_t b){ - uint64_t f_s_dadda_cla8_out = 0; - uint8_t f_s_dadda_cla8_and_6_0 = 0; - uint8_t f_s_dadda_cla8_and_5_1 = 0; - uint8_t f_s_dadda_cla8_ha0_xor0 = 0; - uint8_t f_s_dadda_cla8_ha0_and0 = 0; - uint8_t f_s_dadda_cla8_nand_7_0 = 0; - uint8_t f_s_dadda_cla8_and_6_1 = 0; - uint8_t f_s_dadda_cla8_fa0_xor0 = 0; - uint8_t f_s_dadda_cla8_fa0_and0 = 0; - uint8_t f_s_dadda_cla8_fa0_xor1 = 0; - uint8_t f_s_dadda_cla8_fa0_and1 = 0; - uint8_t f_s_dadda_cla8_fa0_or0 = 0; - uint8_t f_s_dadda_cla8_and_5_2 = 0; - uint8_t f_s_dadda_cla8_and_4_3 = 0; - uint8_t f_s_dadda_cla8_ha1_xor0 = 0; - uint8_t f_s_dadda_cla8_ha1_and0 = 0; - uint8_t f_s_dadda_cla8_fa1_xor0 = 0; - uint8_t f_s_dadda_cla8_fa1_and0 = 0; - uint8_t f_s_dadda_cla8_fa1_xor1 = 0; - uint8_t f_s_dadda_cla8_fa1_or0 = 0; - uint8_t f_s_dadda_cla8_nand_7_1 = 0; - uint8_t f_s_dadda_cla8_and_6_2 = 0; - uint8_t f_s_dadda_cla8_and_5_3 = 0; - uint8_t f_s_dadda_cla8_fa2_xor0 = 0; - uint8_t f_s_dadda_cla8_fa2_and0 = 0; - uint8_t f_s_dadda_cla8_fa2_xor1 = 0; - uint8_t f_s_dadda_cla8_fa2_and1 = 0; - uint8_t f_s_dadda_cla8_fa2_or0 = 0; - uint8_t f_s_dadda_cla8_nand_7_2 = 0; - uint8_t f_s_dadda_cla8_fa3_xor0 = 0; - uint8_t f_s_dadda_cla8_fa3_and0 = 0; - uint8_t f_s_dadda_cla8_fa3_xor1 = 0; - uint8_t f_s_dadda_cla8_fa3_and1 = 0; - uint8_t f_s_dadda_cla8_fa3_or0 = 0; - uint8_t f_s_dadda_cla8_and_3_0 = 0; - uint8_t f_s_dadda_cla8_and_2_1 = 0; - uint8_t f_s_dadda_cla8_ha2_xor0 = 0; - uint8_t f_s_dadda_cla8_ha2_and0 = 0; - uint8_t f_s_dadda_cla8_and_4_0 = 0; - uint8_t f_s_dadda_cla8_and_3_1 = 0; - uint8_t f_s_dadda_cla8_fa4_xor0 = 0; - uint8_t f_s_dadda_cla8_fa4_and0 = 0; - uint8_t f_s_dadda_cla8_fa4_xor1 = 0; - uint8_t f_s_dadda_cla8_fa4_and1 = 0; - uint8_t f_s_dadda_cla8_fa4_or0 = 0; - uint8_t f_s_dadda_cla8_and_2_2 = 0; - uint8_t f_s_dadda_cla8_and_1_3 = 0; - uint8_t f_s_dadda_cla8_ha3_xor0 = 0; - uint8_t f_s_dadda_cla8_ha3_and0 = 0; - uint8_t f_s_dadda_cla8_and_5_0 = 0; - uint8_t f_s_dadda_cla8_fa5_xor0 = 0; - uint8_t f_s_dadda_cla8_fa5_and0 = 0; - uint8_t f_s_dadda_cla8_fa5_xor1 = 0; - uint8_t f_s_dadda_cla8_fa5_and1 = 0; - uint8_t f_s_dadda_cla8_fa5_or0 = 0; - uint8_t f_s_dadda_cla8_and_4_1 = 0; - uint8_t f_s_dadda_cla8_and_3_2 = 0; - uint8_t f_s_dadda_cla8_and_2_3 = 0; - uint8_t f_s_dadda_cla8_fa6_xor0 = 0; - uint8_t f_s_dadda_cla8_fa6_and0 = 0; - uint8_t f_s_dadda_cla8_fa6_xor1 = 0; - uint8_t f_s_dadda_cla8_fa6_and1 = 0; - uint8_t f_s_dadda_cla8_fa6_or0 = 0; - uint8_t f_s_dadda_cla8_and_1_4 = 0; - uint8_t f_s_dadda_cla8_and_0_5 = 0; - uint8_t f_s_dadda_cla8_ha4_xor0 = 0; - uint8_t f_s_dadda_cla8_ha4_and0 = 0; - uint8_t f_s_dadda_cla8_fa7_xor0 = 0; - uint8_t f_s_dadda_cla8_fa7_and0 = 0; - uint8_t f_s_dadda_cla8_fa7_xor1 = 0; - uint8_t f_s_dadda_cla8_fa7_and1 = 0; - uint8_t f_s_dadda_cla8_fa7_or0 = 0; - uint8_t f_s_dadda_cla8_and_4_2 = 0; - uint8_t f_s_dadda_cla8_and_3_3 = 0; - uint8_t f_s_dadda_cla8_and_2_4 = 0; - uint8_t f_s_dadda_cla8_fa8_xor0 = 0; - uint8_t f_s_dadda_cla8_fa8_and0 = 0; - uint8_t f_s_dadda_cla8_fa8_xor1 = 0; - uint8_t f_s_dadda_cla8_fa8_and1 = 0; - uint8_t f_s_dadda_cla8_fa8_or0 = 0; - uint8_t f_s_dadda_cla8_and_1_5 = 0; - uint8_t f_s_dadda_cla8_and_0_6 = 0; - uint8_t f_s_dadda_cla8_fa9_xor0 = 0; - uint8_t f_s_dadda_cla8_fa9_and0 = 0; - uint8_t f_s_dadda_cla8_fa9_xor1 = 0; - uint8_t f_s_dadda_cla8_fa9_and1 = 0; - uint8_t f_s_dadda_cla8_fa9_or0 = 0; - uint8_t f_s_dadda_cla8_fa10_xor0 = 0; - uint8_t f_s_dadda_cla8_fa10_and0 = 0; - uint8_t f_s_dadda_cla8_fa10_xor1 = 0; - uint8_t f_s_dadda_cla8_fa10_and1 = 0; - uint8_t f_s_dadda_cla8_fa10_or0 = 0; - uint8_t f_s_dadda_cla8_and_3_4 = 0; - uint8_t f_s_dadda_cla8_and_2_5 = 0; - uint8_t f_s_dadda_cla8_and_1_6 = 0; - uint8_t f_s_dadda_cla8_fa11_xor0 = 0; - uint8_t f_s_dadda_cla8_fa11_and0 = 0; - uint8_t f_s_dadda_cla8_fa11_xor1 = 0; - uint8_t f_s_dadda_cla8_fa11_and1 = 0; - uint8_t f_s_dadda_cla8_fa11_or0 = 0; - uint8_t f_s_dadda_cla8_nand_0_7 = 0; - uint8_t f_s_dadda_cla8_fa12_xor0 = 0; - uint8_t f_s_dadda_cla8_fa12_and0 = 0; - uint8_t f_s_dadda_cla8_fa12_xor1 = 0; - uint8_t f_s_dadda_cla8_fa12_and1 = 0; - uint8_t f_s_dadda_cla8_fa12_or0 = 0; - uint8_t f_s_dadda_cla8_fa13_xor0 = 0; - uint8_t f_s_dadda_cla8_fa13_and0 = 0; - uint8_t f_s_dadda_cla8_fa13_xor1 = 0; - uint8_t f_s_dadda_cla8_fa13_and1 = 0; - uint8_t f_s_dadda_cla8_fa13_or0 = 0; - uint8_t f_s_dadda_cla8_and_4_4 = 0; - uint8_t f_s_dadda_cla8_and_3_5 = 0; - uint8_t f_s_dadda_cla8_and_2_6 = 0; - uint8_t f_s_dadda_cla8_fa14_xor0 = 0; - uint8_t f_s_dadda_cla8_fa14_and0 = 0; - uint8_t f_s_dadda_cla8_fa14_xor1 = 0; - uint8_t f_s_dadda_cla8_fa14_and1 = 0; - uint8_t f_s_dadda_cla8_fa14_or0 = 0; - uint8_t f_s_dadda_cla8_nand_1_7 = 0; - uint8_t f_s_dadda_cla8_fa15_xor0 = 0; - uint8_t f_s_dadda_cla8_fa15_and0 = 0; - uint8_t f_s_dadda_cla8_fa15_xor1 = 0; - uint8_t f_s_dadda_cla8_fa15_and1 = 0; - uint8_t f_s_dadda_cla8_fa15_or0 = 0; - uint8_t f_s_dadda_cla8_fa16_xor0 = 0; - uint8_t f_s_dadda_cla8_fa16_and0 = 0; - uint8_t f_s_dadda_cla8_fa16_xor1 = 0; - uint8_t f_s_dadda_cla8_fa16_and1 = 0; - uint8_t f_s_dadda_cla8_fa16_or0 = 0; - uint8_t f_s_dadda_cla8_and_6_3 = 0; - uint8_t f_s_dadda_cla8_and_5_4 = 0; - uint8_t f_s_dadda_cla8_and_4_5 = 0; - uint8_t f_s_dadda_cla8_fa17_xor0 = 0; - uint8_t f_s_dadda_cla8_fa17_and0 = 0; - uint8_t f_s_dadda_cla8_fa17_xor1 = 0; - uint8_t f_s_dadda_cla8_fa17_and1 = 0; - uint8_t f_s_dadda_cla8_fa17_or0 = 0; - uint8_t f_s_dadda_cla8_and_3_6 = 0; - uint8_t f_s_dadda_cla8_nand_2_7 = 0; - uint8_t f_s_dadda_cla8_fa18_xor0 = 0; - uint8_t f_s_dadda_cla8_fa18_and0 = 0; - uint8_t f_s_dadda_cla8_fa18_xor1 = 0; - uint8_t f_s_dadda_cla8_fa18_and1 = 0; - uint8_t f_s_dadda_cla8_fa18_or0 = 0; - uint8_t f_s_dadda_cla8_fa19_xor0 = 0; - uint8_t f_s_dadda_cla8_fa19_and0 = 0; - uint8_t f_s_dadda_cla8_fa19_xor1 = 0; - uint8_t f_s_dadda_cla8_fa19_and1 = 0; - uint8_t f_s_dadda_cla8_fa19_or0 = 0; - uint8_t f_s_dadda_cla8_nand_7_3 = 0; - uint8_t f_s_dadda_cla8_and_6_4 = 0; - uint8_t f_s_dadda_cla8_fa20_xor0 = 0; - uint8_t f_s_dadda_cla8_fa20_and0 = 0; - uint8_t f_s_dadda_cla8_fa20_xor1 = 0; - uint8_t f_s_dadda_cla8_fa20_and1 = 0; - uint8_t f_s_dadda_cla8_fa20_or0 = 0; - uint8_t f_s_dadda_cla8_and_5_5 = 0; - uint8_t f_s_dadda_cla8_and_4_6 = 0; - uint8_t f_s_dadda_cla8_nand_3_7 = 0; - uint8_t f_s_dadda_cla8_fa21_xor0 = 0; - uint8_t f_s_dadda_cla8_fa21_and0 = 0; - uint8_t f_s_dadda_cla8_fa21_xor1 = 0; - uint8_t f_s_dadda_cla8_fa21_and1 = 0; - uint8_t f_s_dadda_cla8_fa21_or0 = 0; - uint8_t f_s_dadda_cla8_fa22_xor0 = 0; - uint8_t f_s_dadda_cla8_fa22_and0 = 0; - uint8_t f_s_dadda_cla8_fa22_xor1 = 0; - uint8_t f_s_dadda_cla8_fa22_and1 = 0; - uint8_t f_s_dadda_cla8_fa22_or0 = 0; - uint8_t f_s_dadda_cla8_nand_7_4 = 0; - uint8_t f_s_dadda_cla8_and_6_5 = 0; - uint8_t f_s_dadda_cla8_and_5_6 = 0; - uint8_t f_s_dadda_cla8_fa23_xor0 = 0; - uint8_t f_s_dadda_cla8_fa23_and0 = 0; - uint8_t f_s_dadda_cla8_fa23_xor1 = 0; - uint8_t f_s_dadda_cla8_fa23_and1 = 0; - uint8_t f_s_dadda_cla8_fa23_or0 = 0; - uint8_t f_s_dadda_cla8_nand_7_5 = 0; - uint8_t f_s_dadda_cla8_fa24_xor0 = 0; - uint8_t f_s_dadda_cla8_fa24_and0 = 0; - uint8_t f_s_dadda_cla8_fa24_xor1 = 0; - uint8_t f_s_dadda_cla8_fa24_and1 = 0; - uint8_t f_s_dadda_cla8_fa24_or0 = 0; - uint8_t f_s_dadda_cla8_and_2_0 = 0; - uint8_t f_s_dadda_cla8_and_1_1 = 0; - uint8_t f_s_dadda_cla8_ha5_xor0 = 0; - uint8_t f_s_dadda_cla8_ha5_and0 = 0; - uint8_t f_s_dadda_cla8_and_1_2 = 0; - uint8_t f_s_dadda_cla8_and_0_3 = 0; - uint8_t f_s_dadda_cla8_fa25_xor0 = 0; - uint8_t f_s_dadda_cla8_fa25_and0 = 0; - uint8_t f_s_dadda_cla8_fa25_xor1 = 0; - uint8_t f_s_dadda_cla8_fa25_and1 = 0; - uint8_t f_s_dadda_cla8_fa25_or0 = 0; - uint8_t f_s_dadda_cla8_and_0_4 = 0; - uint8_t f_s_dadda_cla8_fa26_xor0 = 0; - uint8_t f_s_dadda_cla8_fa26_and0 = 0; - uint8_t f_s_dadda_cla8_fa26_xor1 = 0; - uint8_t f_s_dadda_cla8_fa26_and1 = 0; - uint8_t f_s_dadda_cla8_fa26_or0 = 0; - uint8_t f_s_dadda_cla8_fa27_xor0 = 0; - uint8_t f_s_dadda_cla8_fa27_and0 = 0; - uint8_t f_s_dadda_cla8_fa27_xor1 = 0; - uint8_t f_s_dadda_cla8_fa27_and1 = 0; - uint8_t f_s_dadda_cla8_fa27_or0 = 0; - uint8_t f_s_dadda_cla8_fa28_xor0 = 0; - uint8_t f_s_dadda_cla8_fa28_and0 = 0; - uint8_t f_s_dadda_cla8_fa28_xor1 = 0; - uint8_t f_s_dadda_cla8_fa28_and1 = 0; - uint8_t f_s_dadda_cla8_fa28_or0 = 0; - uint8_t f_s_dadda_cla8_fa29_xor0 = 0; - uint8_t f_s_dadda_cla8_fa29_and0 = 0; - uint8_t f_s_dadda_cla8_fa29_xor1 = 0; - uint8_t f_s_dadda_cla8_fa29_and1 = 0; - uint8_t f_s_dadda_cla8_fa29_or0 = 0; - uint8_t f_s_dadda_cla8_fa30_xor0 = 0; - uint8_t f_s_dadda_cla8_fa30_and0 = 0; - uint8_t f_s_dadda_cla8_fa30_xor1 = 0; - uint8_t f_s_dadda_cla8_fa30_and1 = 0; - uint8_t f_s_dadda_cla8_fa30_or0 = 0; - uint8_t f_s_dadda_cla8_fa31_xor0 = 0; - uint8_t f_s_dadda_cla8_fa31_and0 = 0; - uint8_t f_s_dadda_cla8_fa31_xor1 = 0; - uint8_t f_s_dadda_cla8_fa31_and1 = 0; - uint8_t f_s_dadda_cla8_fa31_or0 = 0; - uint8_t f_s_dadda_cla8_fa32_xor0 = 0; - uint8_t f_s_dadda_cla8_fa32_and0 = 0; - uint8_t f_s_dadda_cla8_fa32_xor1 = 0; - uint8_t f_s_dadda_cla8_fa32_and1 = 0; - uint8_t f_s_dadda_cla8_fa32_or0 = 0; - uint8_t f_s_dadda_cla8_nand_4_7 = 0; - uint8_t f_s_dadda_cla8_fa33_xor0 = 0; - uint8_t f_s_dadda_cla8_fa33_and0 = 0; - uint8_t f_s_dadda_cla8_fa33_xor1 = 0; - uint8_t f_s_dadda_cla8_fa33_and1 = 0; - uint8_t f_s_dadda_cla8_fa33_or0 = 0; - uint8_t f_s_dadda_cla8_and_6_6 = 0; - uint8_t f_s_dadda_cla8_nand_5_7 = 0; - uint8_t f_s_dadda_cla8_fa34_xor0 = 0; - uint8_t f_s_dadda_cla8_fa34_and0 = 0; - uint8_t f_s_dadda_cla8_fa34_xor1 = 0; - uint8_t f_s_dadda_cla8_fa34_and1 = 0; - uint8_t f_s_dadda_cla8_fa34_or0 = 0; - uint8_t f_s_dadda_cla8_nand_7_6 = 0; - uint8_t f_s_dadda_cla8_fa35_xor0 = 0; - uint8_t f_s_dadda_cla8_fa35_and0 = 0; - uint8_t f_s_dadda_cla8_fa35_xor1 = 0; - uint8_t f_s_dadda_cla8_fa35_and1 = 0; - uint8_t f_s_dadda_cla8_fa35_or0 = 0; - uint8_t f_s_dadda_cla8_and_0_0 = 0; - uint8_t f_s_dadda_cla8_and_1_0 = 0; - uint8_t f_s_dadda_cla8_and_0_2 = 0; - uint8_t f_s_dadda_cla8_nand_6_7 = 0; - uint8_t f_s_dadda_cla8_and_0_1 = 0; - uint8_t f_s_dadda_cla8_and_7_7 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic0_or0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic0_and0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic0_xor0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic1_or0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic1_and0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic1_xor0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_xor1 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic2_or0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic2_and0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic2_xor0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_xor2 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and1 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and2 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and3 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and4 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or1 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or2 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic3_or0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic3_and0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic3_xor0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_xor3 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and5 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and6 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and7 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and8 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and9 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and10 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and11 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or3 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or4 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or5 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic4_or0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic4_and0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic4_xor0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_xor4 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and12 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or6 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic5_or0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic5_and0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic5_xor0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_xor5 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and13 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and14 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and15 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or7 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or8 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic6_or0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic6_and0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic6_xor0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_xor6 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and16 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and17 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and18 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and19 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and20 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and21 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or9 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or10 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or11 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic7_or0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic7_and0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic7_xor0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_xor7 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and22 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and23 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and24 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and25 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and26 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and27 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and28 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and29 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and30 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and31 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or12 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or13 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or14 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or15 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic8_or0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic8_and0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic8_xor0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_xor8 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and32 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or16 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic9_or0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic9_and0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic9_xor0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_xor9 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and33 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and34 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and35 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or17 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or18 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic10_or0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic10_and0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic10_xor0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_xor10 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and36 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and37 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and38 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and39 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and40 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and41 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or19 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or20 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or21 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic11_or0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic11_and0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic11_xor0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_xor11 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and42 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and43 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and44 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and45 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and46 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and47 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and48 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and49 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and50 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and51 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or22 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or23 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or24 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or25 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic12_or0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic12_and0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic12_xor0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_xor12 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and52 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or26 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic13_or0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic13_and0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_pg_logic13_xor0 = 0; - uint8_t f_s_dadda_cla8_u_cla14_xor13 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and53 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and54 = 0; - uint8_t f_s_dadda_cla8_u_cla14_and55 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or27 = 0; - uint8_t f_s_dadda_cla8_u_cla14_or28 = 0; - uint8_t f_s_dadda_cla8_xor0 = 0; - - f_s_dadda_cla8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cla8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cla8_ha0_xor0 = ((f_s_dadda_cla8_and_6_0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_5_1 >> 0) & 0x01); - f_s_dadda_cla8_ha0_and0 = ((f_s_dadda_cla8_and_6_0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_5_1 >> 0) & 0x01); - f_s_dadda_cla8_nand_7_0 = ~(((a >> 7) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_dadda_cla8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cla8_fa0_xor0 = ((f_s_dadda_cla8_ha0_and0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_nand_7_0 >> 0) & 0x01); - f_s_dadda_cla8_fa0_and0 = ((f_s_dadda_cla8_ha0_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_nand_7_0 >> 0) & 0x01); - f_s_dadda_cla8_fa0_xor1 = ((f_s_dadda_cla8_fa0_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_6_1 >> 0) & 0x01); - f_s_dadda_cla8_fa0_and1 = ((f_s_dadda_cla8_fa0_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_6_1 >> 0) & 0x01); - f_s_dadda_cla8_fa0_or0 = ((f_s_dadda_cla8_fa0_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa0_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cla8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cla8_ha1_xor0 = ((f_s_dadda_cla8_and_5_2 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_4_3 >> 0) & 0x01); - f_s_dadda_cla8_ha1_and0 = ((f_s_dadda_cla8_and_5_2 >> 0) & 0x01) & ((f_s_dadda_cla8_and_4_3 >> 0) & 0x01); - f_s_dadda_cla8_fa1_xor0 = ((f_s_dadda_cla8_ha1_and0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa0_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa1_and0 = ((f_s_dadda_cla8_ha1_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa0_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa1_xor1 = ~(((f_s_dadda_cla8_fa1_xor0 >> 0) & 0x01)) & 0x01; - f_s_dadda_cla8_fa1_or0 = ((f_s_dadda_cla8_fa1_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa1_xor0 >> 0) & 0x01); - f_s_dadda_cla8_nand_7_1 = ~(((a >> 7) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_dadda_cla8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cla8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cla8_fa2_xor0 = ((f_s_dadda_cla8_nand_7_1 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_6_2 >> 0) & 0x01); - f_s_dadda_cla8_fa2_and0 = ((f_s_dadda_cla8_nand_7_1 >> 0) & 0x01) & ((f_s_dadda_cla8_and_6_2 >> 0) & 0x01); - f_s_dadda_cla8_fa2_xor1 = ((f_s_dadda_cla8_fa2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_5_3 >> 0) & 0x01); - f_s_dadda_cla8_fa2_and1 = ((f_s_dadda_cla8_fa2_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_5_3 >> 0) & 0x01); - f_s_dadda_cla8_fa2_or0 = ((f_s_dadda_cla8_fa2_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa2_and1 >> 0) & 0x01); - f_s_dadda_cla8_nand_7_2 = ~(((a >> 7) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_dadda_cla8_fa3_xor0 = ((f_s_dadda_cla8_fa2_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa1_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa3_and0 = ((f_s_dadda_cla8_fa2_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa1_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa3_xor1 = ((f_s_dadda_cla8_fa3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_nand_7_2 >> 0) & 0x01); - f_s_dadda_cla8_fa3_and1 = ((f_s_dadda_cla8_fa3_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_nand_7_2 >> 0) & 0x01); - f_s_dadda_cla8_fa3_or0 = ((f_s_dadda_cla8_fa3_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa3_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cla8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cla8_ha2_xor0 = ((f_s_dadda_cla8_and_3_0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_2_1 >> 0) & 0x01); - f_s_dadda_cla8_ha2_and0 = ((f_s_dadda_cla8_and_3_0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_2_1 >> 0) & 0x01); - f_s_dadda_cla8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cla8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cla8_fa4_xor0 = ((f_s_dadda_cla8_ha2_and0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_4_0 >> 0) & 0x01); - f_s_dadda_cla8_fa4_and0 = ((f_s_dadda_cla8_ha2_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_4_0 >> 0) & 0x01); - f_s_dadda_cla8_fa4_xor1 = ((f_s_dadda_cla8_fa4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_3_1 >> 0) & 0x01); - f_s_dadda_cla8_fa4_and1 = ((f_s_dadda_cla8_fa4_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_3_1 >> 0) & 0x01); - f_s_dadda_cla8_fa4_or0 = ((f_s_dadda_cla8_fa4_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa4_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cla8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cla8_ha3_xor0 = ((f_s_dadda_cla8_and_2_2 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_1_3 >> 0) & 0x01); - f_s_dadda_cla8_ha3_and0 = ((f_s_dadda_cla8_and_2_2 >> 0) & 0x01) & ((f_s_dadda_cla8_and_1_3 >> 0) & 0x01); - f_s_dadda_cla8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cla8_fa5_xor0 = ((f_s_dadda_cla8_ha3_and0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa4_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa5_and0 = ((f_s_dadda_cla8_ha3_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa4_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa5_xor1 = ((f_s_dadda_cla8_fa5_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_5_0 >> 0) & 0x01); - f_s_dadda_cla8_fa5_and1 = ((f_s_dadda_cla8_fa5_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_5_0 >> 0) & 0x01); - f_s_dadda_cla8_fa5_or0 = ((f_s_dadda_cla8_fa5_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa5_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cla8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cla8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cla8_fa6_xor0 = ((f_s_dadda_cla8_and_4_1 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_3_2 >> 0) & 0x01); - f_s_dadda_cla8_fa6_and0 = ((f_s_dadda_cla8_and_4_1 >> 0) & 0x01) & ((f_s_dadda_cla8_and_3_2 >> 0) & 0x01); - f_s_dadda_cla8_fa6_xor1 = ((f_s_dadda_cla8_fa6_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_2_3 >> 0) & 0x01); - f_s_dadda_cla8_fa6_and1 = ((f_s_dadda_cla8_fa6_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_2_3 >> 0) & 0x01); - f_s_dadda_cla8_fa6_or0 = ((f_s_dadda_cla8_fa6_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa6_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_cla8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_cla8_ha4_xor0 = ((f_s_dadda_cla8_and_1_4 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_0_5 >> 0) & 0x01); - f_s_dadda_cla8_ha4_and0 = ((f_s_dadda_cla8_and_1_4 >> 0) & 0x01) & ((f_s_dadda_cla8_and_0_5 >> 0) & 0x01); - f_s_dadda_cla8_fa7_xor0 = ((f_s_dadda_cla8_ha4_and0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa6_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa7_and0 = ((f_s_dadda_cla8_ha4_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa6_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa7_xor1 = ((f_s_dadda_cla8_fa7_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa5_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa7_and1 = ((f_s_dadda_cla8_fa7_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa5_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa7_or0 = ((f_s_dadda_cla8_fa7_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa7_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cla8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cla8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_cla8_fa8_xor0 = ((f_s_dadda_cla8_and_4_2 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_3_3 >> 0) & 0x01); - f_s_dadda_cla8_fa8_and0 = ((f_s_dadda_cla8_and_4_2 >> 0) & 0x01) & ((f_s_dadda_cla8_and_3_3 >> 0) & 0x01); - f_s_dadda_cla8_fa8_xor1 = ((f_s_dadda_cla8_fa8_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_2_4 >> 0) & 0x01); - f_s_dadda_cla8_fa8_and1 = ((f_s_dadda_cla8_fa8_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_2_4 >> 0) & 0x01); - f_s_dadda_cla8_fa8_or0 = ((f_s_dadda_cla8_fa8_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa8_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_cla8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_cla8_fa9_xor0 = ((f_s_dadda_cla8_and_1_5 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_0_6 >> 0) & 0x01); - f_s_dadda_cla8_fa9_and0 = ((f_s_dadda_cla8_and_1_5 >> 0) & 0x01) & ((f_s_dadda_cla8_and_0_6 >> 0) & 0x01); - f_s_dadda_cla8_fa9_xor1 = ((f_s_dadda_cla8_fa9_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_ha0_xor0 >> 0) & 0x01); - f_s_dadda_cla8_fa9_and1 = ((f_s_dadda_cla8_fa9_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_ha0_xor0 >> 0) & 0x01); - f_s_dadda_cla8_fa9_or0 = ((f_s_dadda_cla8_fa9_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa9_and1 >> 0) & 0x01); - f_s_dadda_cla8_fa10_xor0 = ((f_s_dadda_cla8_fa9_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa8_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa10_and0 = ((f_s_dadda_cla8_fa9_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa8_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa10_xor1 = ((f_s_dadda_cla8_fa10_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa7_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa10_and1 = ((f_s_dadda_cla8_fa10_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa7_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa10_or0 = ((f_s_dadda_cla8_fa10_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa10_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_cla8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_cla8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_cla8_fa11_xor0 = ((f_s_dadda_cla8_and_3_4 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_2_5 >> 0) & 0x01); - f_s_dadda_cla8_fa11_and0 = ((f_s_dadda_cla8_and_3_4 >> 0) & 0x01) & ((f_s_dadda_cla8_and_2_5 >> 0) & 0x01); - f_s_dadda_cla8_fa11_xor1 = ((f_s_dadda_cla8_fa11_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_1_6 >> 0) & 0x01); - f_s_dadda_cla8_fa11_and1 = ((f_s_dadda_cla8_fa11_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_1_6 >> 0) & 0x01); - f_s_dadda_cla8_fa11_or0 = ((f_s_dadda_cla8_fa11_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa11_and1 >> 0) & 0x01); - f_s_dadda_cla8_nand_0_7 = ~(((a >> 0) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_cla8_fa12_xor0 = ((f_s_dadda_cla8_nand_0_7 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa0_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa12_and0 = ((f_s_dadda_cla8_nand_0_7 >> 0) & 0x01) & ((f_s_dadda_cla8_fa0_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa12_xor1 = ((f_s_dadda_cla8_fa12_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_ha1_xor0 >> 0) & 0x01); - f_s_dadda_cla8_fa12_and1 = ((f_s_dadda_cla8_fa12_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_ha1_xor0 >> 0) & 0x01); - f_s_dadda_cla8_fa12_or0 = ((f_s_dadda_cla8_fa12_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa12_and1 >> 0) & 0x01); - f_s_dadda_cla8_fa13_xor0 = ((f_s_dadda_cla8_fa12_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa11_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa13_and0 = ((f_s_dadda_cla8_fa12_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa11_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa13_xor1 = ((f_s_dadda_cla8_fa13_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa10_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa13_and1 = ((f_s_dadda_cla8_fa13_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa10_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa13_or0 = ((f_s_dadda_cla8_fa13_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa13_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_cla8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_cla8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_cla8_fa14_xor0 = ((f_s_dadda_cla8_and_4_4 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_3_5 >> 0) & 0x01); - f_s_dadda_cla8_fa14_and0 = ((f_s_dadda_cla8_and_4_4 >> 0) & 0x01) & ((f_s_dadda_cla8_and_3_5 >> 0) & 0x01); - f_s_dadda_cla8_fa14_xor1 = ((f_s_dadda_cla8_fa14_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_2_6 >> 0) & 0x01); - f_s_dadda_cla8_fa14_and1 = ((f_s_dadda_cla8_fa14_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_2_6 >> 0) & 0x01); - f_s_dadda_cla8_fa14_or0 = ((f_s_dadda_cla8_fa14_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa14_and1 >> 0) & 0x01); - f_s_dadda_cla8_nand_1_7 = ~(((a >> 1) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_cla8_fa15_xor0 = ((f_s_dadda_cla8_nand_1_7 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa1_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa15_and0 = ((f_s_dadda_cla8_nand_1_7 >> 0) & 0x01) & ((f_s_dadda_cla8_fa1_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa15_xor1 = ((f_s_dadda_cla8_fa15_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa2_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa15_and1 = ((f_s_dadda_cla8_fa15_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa2_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa15_or0 = ((f_s_dadda_cla8_fa15_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa15_and1 >> 0) & 0x01); - f_s_dadda_cla8_fa16_xor0 = ((f_s_dadda_cla8_fa15_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa14_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa16_and0 = ((f_s_dadda_cla8_fa15_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa14_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa16_xor1 = ((f_s_dadda_cla8_fa16_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa13_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa16_and1 = ((f_s_dadda_cla8_fa16_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa13_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa16_or0 = ((f_s_dadda_cla8_fa16_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa16_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cla8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_cla8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_cla8_fa17_xor0 = ((f_s_dadda_cla8_and_6_3 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_5_4 >> 0) & 0x01); - f_s_dadda_cla8_fa17_and0 = ((f_s_dadda_cla8_and_6_3 >> 0) & 0x01) & ((f_s_dadda_cla8_and_5_4 >> 0) & 0x01); - f_s_dadda_cla8_fa17_xor1 = ((f_s_dadda_cla8_fa17_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_4_5 >> 0) & 0x01); - f_s_dadda_cla8_fa17_and1 = ((f_s_dadda_cla8_fa17_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_4_5 >> 0) & 0x01); - f_s_dadda_cla8_fa17_or0 = ((f_s_dadda_cla8_fa17_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa17_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_cla8_nand_2_7 = ~(((a >> 2) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_cla8_fa18_xor0 = ((f_s_dadda_cla8_and_3_6 >> 0) & 0x01) ^ ((f_s_dadda_cla8_nand_2_7 >> 0) & 0x01); - f_s_dadda_cla8_fa18_and0 = ((f_s_dadda_cla8_and_3_6 >> 0) & 0x01) & ((f_s_dadda_cla8_nand_2_7 >> 0) & 0x01); - f_s_dadda_cla8_fa18_xor1 = ((f_s_dadda_cla8_fa18_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa3_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa18_and1 = ((f_s_dadda_cla8_fa18_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa3_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa18_or0 = ((f_s_dadda_cla8_fa18_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa18_and1 >> 0) & 0x01); - f_s_dadda_cla8_fa19_xor0 = ((f_s_dadda_cla8_fa18_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa17_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa19_and0 = ((f_s_dadda_cla8_fa18_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa17_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa19_xor1 = ((f_s_dadda_cla8_fa19_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa16_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa19_and1 = ((f_s_dadda_cla8_fa19_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa16_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa19_or0 = ((f_s_dadda_cla8_fa19_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa19_and1 >> 0) & 0x01); - f_s_dadda_cla8_nand_7_3 = ~(((a >> 7) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_cla8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_cla8_fa20_xor0 = ((f_s_dadda_cla8_fa3_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_nand_7_3 >> 0) & 0x01); - f_s_dadda_cla8_fa20_and0 = ((f_s_dadda_cla8_fa3_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_nand_7_3 >> 0) & 0x01); - f_s_dadda_cla8_fa20_xor1 = ((f_s_dadda_cla8_fa20_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_6_4 >> 0) & 0x01); - f_s_dadda_cla8_fa20_and1 = ((f_s_dadda_cla8_fa20_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_6_4 >> 0) & 0x01); - f_s_dadda_cla8_fa20_or0 = ((f_s_dadda_cla8_fa20_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa20_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_cla8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_cla8_nand_3_7 = ~(((a >> 3) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_cla8_fa21_xor0 = ((f_s_dadda_cla8_and_5_5 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_4_6 >> 0) & 0x01); - f_s_dadda_cla8_fa21_and0 = ((f_s_dadda_cla8_and_5_5 >> 0) & 0x01) & ((f_s_dadda_cla8_and_4_6 >> 0) & 0x01); - f_s_dadda_cla8_fa21_xor1 = ((f_s_dadda_cla8_fa21_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_nand_3_7 >> 0) & 0x01); - f_s_dadda_cla8_fa21_and1 = ((f_s_dadda_cla8_fa21_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_nand_3_7 >> 0) & 0x01); - f_s_dadda_cla8_fa21_or0 = ((f_s_dadda_cla8_fa21_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa21_and1 >> 0) & 0x01); - f_s_dadda_cla8_fa22_xor0 = ((f_s_dadda_cla8_fa21_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa20_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa22_and0 = ((f_s_dadda_cla8_fa21_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa20_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa22_xor1 = ((f_s_dadda_cla8_fa22_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa19_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa22_and1 = ((f_s_dadda_cla8_fa22_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa19_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa22_or0 = ((f_s_dadda_cla8_fa22_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa22_and1 >> 0) & 0x01); - f_s_dadda_cla8_nand_7_4 = ~(((a >> 7) & 0x01) & ((b >> 4) & 0x01)) & 0x01; - f_s_dadda_cla8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_cla8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_cla8_fa23_xor0 = ((f_s_dadda_cla8_nand_7_4 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_6_5 >> 0) & 0x01); - f_s_dadda_cla8_fa23_and0 = ((f_s_dadda_cla8_nand_7_4 >> 0) & 0x01) & ((f_s_dadda_cla8_and_6_5 >> 0) & 0x01); - f_s_dadda_cla8_fa23_xor1 = ((f_s_dadda_cla8_fa23_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_5_6 >> 0) & 0x01); - f_s_dadda_cla8_fa23_and1 = ((f_s_dadda_cla8_fa23_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_5_6 >> 0) & 0x01); - f_s_dadda_cla8_fa23_or0 = ((f_s_dadda_cla8_fa23_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa23_and1 >> 0) & 0x01); - f_s_dadda_cla8_nand_7_5 = ~(((a >> 7) & 0x01) & ((b >> 5) & 0x01)) & 0x01; - f_s_dadda_cla8_fa24_xor0 = ((f_s_dadda_cla8_fa23_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa22_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa24_and0 = ((f_s_dadda_cla8_fa23_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa22_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa24_xor1 = ((f_s_dadda_cla8_fa24_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_nand_7_5 >> 0) & 0x01); - f_s_dadda_cla8_fa24_and1 = ((f_s_dadda_cla8_fa24_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_nand_7_5 >> 0) & 0x01); - f_s_dadda_cla8_fa24_or0 = ((f_s_dadda_cla8_fa24_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa24_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cla8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cla8_ha5_xor0 = ((f_s_dadda_cla8_and_2_0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_1_1 >> 0) & 0x01); - f_s_dadda_cla8_ha5_and0 = ((f_s_dadda_cla8_and_2_0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_1_1 >> 0) & 0x01); - f_s_dadda_cla8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cla8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cla8_fa25_xor0 = ((f_s_dadda_cla8_ha5_and0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_1_2 >> 0) & 0x01); - f_s_dadda_cla8_fa25_and0 = ((f_s_dadda_cla8_ha5_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_1_2 >> 0) & 0x01); - f_s_dadda_cla8_fa25_xor1 = ((f_s_dadda_cla8_fa25_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_0_3 >> 0) & 0x01); - f_s_dadda_cla8_fa25_and1 = ((f_s_dadda_cla8_fa25_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_0_3 >> 0) & 0x01); - f_s_dadda_cla8_fa25_or0 = ((f_s_dadda_cla8_fa25_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa25_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_cla8_fa26_xor0 = ((f_s_dadda_cla8_fa25_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_0_4 >> 0) & 0x01); - f_s_dadda_cla8_fa26_and0 = ((f_s_dadda_cla8_fa25_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_0_4 >> 0) & 0x01); - f_s_dadda_cla8_fa26_xor1 = ((f_s_dadda_cla8_fa26_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa4_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa26_and1 = ((f_s_dadda_cla8_fa26_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa4_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa26_or0 = ((f_s_dadda_cla8_fa26_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa26_and1 >> 0) & 0x01); - f_s_dadda_cla8_fa27_xor0 = ((f_s_dadda_cla8_fa26_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa5_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa27_and0 = ((f_s_dadda_cla8_fa26_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa5_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa27_xor1 = ((f_s_dadda_cla8_fa27_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa6_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa27_and1 = ((f_s_dadda_cla8_fa27_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa6_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa27_or0 = ((f_s_dadda_cla8_fa27_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa27_and1 >> 0) & 0x01); - f_s_dadda_cla8_fa28_xor0 = ((f_s_dadda_cla8_fa27_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa7_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa28_and0 = ((f_s_dadda_cla8_fa27_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa7_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa28_xor1 = ((f_s_dadda_cla8_fa28_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa8_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa28_and1 = ((f_s_dadda_cla8_fa28_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa8_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa28_or0 = ((f_s_dadda_cla8_fa28_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa28_and1 >> 0) & 0x01); - f_s_dadda_cla8_fa29_xor0 = ((f_s_dadda_cla8_fa28_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa10_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa29_and0 = ((f_s_dadda_cla8_fa28_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa10_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa29_xor1 = ((f_s_dadda_cla8_fa29_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa11_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa29_and1 = ((f_s_dadda_cla8_fa29_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa11_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa29_or0 = ((f_s_dadda_cla8_fa29_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa29_and1 >> 0) & 0x01); - f_s_dadda_cla8_fa30_xor0 = ((f_s_dadda_cla8_fa29_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa13_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa30_and0 = ((f_s_dadda_cla8_fa29_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa13_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa30_xor1 = ((f_s_dadda_cla8_fa30_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa14_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa30_and1 = ((f_s_dadda_cla8_fa30_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa14_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa30_or0 = ((f_s_dadda_cla8_fa30_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa30_and1 >> 0) & 0x01); - f_s_dadda_cla8_fa31_xor0 = ((f_s_dadda_cla8_fa30_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa16_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa31_and0 = ((f_s_dadda_cla8_fa30_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa16_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa31_xor1 = ((f_s_dadda_cla8_fa31_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa17_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa31_and1 = ((f_s_dadda_cla8_fa31_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa17_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa31_or0 = ((f_s_dadda_cla8_fa31_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa31_and1 >> 0) & 0x01); - f_s_dadda_cla8_fa32_xor0 = ((f_s_dadda_cla8_fa31_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa19_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa32_and0 = ((f_s_dadda_cla8_fa31_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa19_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa32_xor1 = ((f_s_dadda_cla8_fa32_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa20_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa32_and1 = ((f_s_dadda_cla8_fa32_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa20_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa32_or0 = ((f_s_dadda_cla8_fa32_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa32_and1 >> 0) & 0x01); - f_s_dadda_cla8_nand_4_7 = ~(((a >> 4) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_cla8_fa33_xor0 = ((f_s_dadda_cla8_fa32_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_nand_4_7 >> 0) & 0x01); - f_s_dadda_cla8_fa33_and0 = ((f_s_dadda_cla8_fa32_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_nand_4_7 >> 0) & 0x01); - f_s_dadda_cla8_fa33_xor1 = ((f_s_dadda_cla8_fa33_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa22_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa33_and1 = ((f_s_dadda_cla8_fa33_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa22_xor1 >> 0) & 0x01); - f_s_dadda_cla8_fa33_or0 = ((f_s_dadda_cla8_fa33_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa33_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_cla8_nand_5_7 = ~(((a >> 5) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_cla8_fa34_xor0 = ((f_s_dadda_cla8_fa33_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_6_6 >> 0) & 0x01); - f_s_dadda_cla8_fa34_and0 = ((f_s_dadda_cla8_fa33_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_6_6 >> 0) & 0x01); - f_s_dadda_cla8_fa34_xor1 = ((f_s_dadda_cla8_fa34_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_nand_5_7 >> 0) & 0x01); - f_s_dadda_cla8_fa34_and1 = ((f_s_dadda_cla8_fa34_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_nand_5_7 >> 0) & 0x01); - f_s_dadda_cla8_fa34_or0 = ((f_s_dadda_cla8_fa34_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa34_and1 >> 0) & 0x01); - f_s_dadda_cla8_nand_7_6 = ~(((a >> 7) & 0x01) & ((b >> 6) & 0x01)) & 0x01; - f_s_dadda_cla8_fa35_xor0 = ((f_s_dadda_cla8_fa34_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa24_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa35_and0 = ((f_s_dadda_cla8_fa34_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa24_or0 >> 0) & 0x01); - f_s_dadda_cla8_fa35_xor1 = ((f_s_dadda_cla8_fa35_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_nand_7_6 >> 0) & 0x01); - f_s_dadda_cla8_fa35_and1 = ((f_s_dadda_cla8_fa35_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_nand_7_6 >> 0) & 0x01); - f_s_dadda_cla8_fa35_or0 = ((f_s_dadda_cla8_fa35_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa35_and1 >> 0) & 0x01); - f_s_dadda_cla8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cla8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cla8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cla8_nand_6_7 = ~(((a >> 6) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_cla8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cla8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic0_or0 = ((f_s_dadda_cla8_and_1_0 >> 0) & 0x01) | ((f_s_dadda_cla8_and_0_1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic0_and0 = ((f_s_dadda_cla8_and_1_0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_0_1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic0_xor0 = ((f_s_dadda_cla8_and_1_0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_0_1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic1_or0 = ((f_s_dadda_cla8_and_0_2 >> 0) & 0x01) | ((f_s_dadda_cla8_ha5_xor0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic1_and0 = ((f_s_dadda_cla8_and_0_2 >> 0) & 0x01) & ((f_s_dadda_cla8_ha5_xor0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic1_xor0 = ((f_s_dadda_cla8_and_0_2 >> 0) & 0x01) ^ ((f_s_dadda_cla8_ha5_xor0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_xor1 = ((f_s_dadda_cla8_u_cla14_pg_logic1_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and0 = ((f_s_dadda_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or0 = ((f_s_dadda_cla8_u_cla14_pg_logic1_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic2_or0 = ((f_s_dadda_cla8_ha2_xor0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa25_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic2_and0 = ((f_s_dadda_cla8_ha2_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa25_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic2_xor0 = ((f_s_dadda_cla8_ha2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa25_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_xor2 = ((f_s_dadda_cla8_u_cla14_pg_logic2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_u_cla14_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and1 = ((f_s_dadda_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic0_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and2 = ((f_s_dadda_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and3 = ((f_s_dadda_cla8_u_cla14_and2 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and4 = ((f_s_dadda_cla8_u_cla14_pg_logic1_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or1 = ((f_s_dadda_cla8_u_cla14_and3 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and4 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or2 = ((f_s_dadda_cla8_u_cla14_pg_logic2_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_or1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic3_or0 = ((f_s_dadda_cla8_ha3_xor0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa26_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic3_and0 = ((f_s_dadda_cla8_ha3_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa26_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic3_xor0 = ((f_s_dadda_cla8_ha3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa26_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_xor3 = ((f_s_dadda_cla8_u_cla14_pg_logic3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_u_cla14_or2 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and5 = ((f_s_dadda_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and6 = ((f_s_dadda_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and7 = ((f_s_dadda_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and8 = ((f_s_dadda_cla8_u_cla14_and6 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_and7 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and9 = ((f_s_dadda_cla8_u_cla14_pg_logic1_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and10 = ((f_s_dadda_cla8_u_cla14_and9 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and11 = ((f_s_dadda_cla8_u_cla14_pg_logic2_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or3 = ((f_s_dadda_cla8_u_cla14_and8 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and11 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or4 = ((f_s_dadda_cla8_u_cla14_and10 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_or3 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or5 = ((f_s_dadda_cla8_u_cla14_pg_logic3_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_or4 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic4_or0 = ((f_s_dadda_cla8_ha4_xor0 >> 0) & 0x01) | ((f_s_dadda_cla8_fa27_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic4_and0 = ((f_s_dadda_cla8_ha4_xor0 >> 0) & 0x01) & ((f_s_dadda_cla8_fa27_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic4_xor0 = ((f_s_dadda_cla8_ha4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa27_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_xor4 = ((f_s_dadda_cla8_u_cla14_pg_logic4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_u_cla14_or5 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and12 = ((f_s_dadda_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or6 = ((f_s_dadda_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and12 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic5_or0 = ((f_s_dadda_cla8_fa9_xor1 >> 0) & 0x01) | ((f_s_dadda_cla8_fa28_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic5_and0 = ((f_s_dadda_cla8_fa9_xor1 >> 0) & 0x01) & ((f_s_dadda_cla8_fa28_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic5_xor0 = ((f_s_dadda_cla8_fa9_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa28_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_xor5 = ((f_s_dadda_cla8_u_cla14_pg_logic5_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_u_cla14_or6 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and13 = ((f_s_dadda_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and14 = ((f_s_dadda_cla8_u_cla14_and13 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and15 = ((f_s_dadda_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or7 = ((f_s_dadda_cla8_u_cla14_and14 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and15 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or8 = ((f_s_dadda_cla8_u_cla14_pg_logic5_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_or7 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic6_or0 = ((f_s_dadda_cla8_fa12_xor1 >> 0) & 0x01) | ((f_s_dadda_cla8_fa29_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic6_and0 = ((f_s_dadda_cla8_fa12_xor1 >> 0) & 0x01) & ((f_s_dadda_cla8_fa29_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic6_xor0 = ((f_s_dadda_cla8_fa12_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa29_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_xor6 = ((f_s_dadda_cla8_u_cla14_pg_logic6_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_u_cla14_or8 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and16 = ((f_s_dadda_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and17 = ((f_s_dadda_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and18 = ((f_s_dadda_cla8_u_cla14_and16 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_and17 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and19 = ((f_s_dadda_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and20 = ((f_s_dadda_cla8_u_cla14_and19 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and21 = ((f_s_dadda_cla8_u_cla14_pg_logic5_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or9 = ((f_s_dadda_cla8_u_cla14_and18 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and20 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or10 = ((f_s_dadda_cla8_u_cla14_or9 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and21 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or11 = ((f_s_dadda_cla8_u_cla14_pg_logic6_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_or10 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic7_or0 = ((f_s_dadda_cla8_fa15_xor1 >> 0) & 0x01) | ((f_s_dadda_cla8_fa30_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic7_and0 = ((f_s_dadda_cla8_fa15_xor1 >> 0) & 0x01) & ((f_s_dadda_cla8_fa30_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic7_xor0 = ((f_s_dadda_cla8_fa15_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa30_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_xor7 = ((f_s_dadda_cla8_u_cla14_pg_logic7_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_u_cla14_or11 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and22 = ((f_s_dadda_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and23 = ((f_s_dadda_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and24 = ((f_s_dadda_cla8_u_cla14_and22 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_and23 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and25 = ((f_s_dadda_cla8_u_cla14_and24 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and26 = ((f_s_dadda_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and27 = ((f_s_dadda_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and28 = ((f_s_dadda_cla8_u_cla14_and26 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_and27 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and29 = ((f_s_dadda_cla8_u_cla14_pg_logic5_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and30 = ((f_s_dadda_cla8_u_cla14_and29 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and31 = ((f_s_dadda_cla8_u_cla14_pg_logic6_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or12 = ((f_s_dadda_cla8_u_cla14_and25 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and30 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or13 = ((f_s_dadda_cla8_u_cla14_and28 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and31 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or14 = ((f_s_dadda_cla8_u_cla14_or12 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_or13 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or15 = ((f_s_dadda_cla8_u_cla14_pg_logic7_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_or14 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic8_or0 = ((f_s_dadda_cla8_fa18_xor1 >> 0) & 0x01) | ((f_s_dadda_cla8_fa31_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic8_and0 = ((f_s_dadda_cla8_fa18_xor1 >> 0) & 0x01) & ((f_s_dadda_cla8_fa31_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic8_xor0 = ((f_s_dadda_cla8_fa18_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa31_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_xor8 = ((f_s_dadda_cla8_u_cla14_pg_logic8_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_u_cla14_or15 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and32 = ((f_s_dadda_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or16 = ((f_s_dadda_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and32 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic9_or0 = ((f_s_dadda_cla8_fa21_xor1 >> 0) & 0x01) | ((f_s_dadda_cla8_fa32_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic9_and0 = ((f_s_dadda_cla8_fa21_xor1 >> 0) & 0x01) & ((f_s_dadda_cla8_fa32_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic9_xor0 = ((f_s_dadda_cla8_fa21_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa32_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_xor9 = ((f_s_dadda_cla8_u_cla14_pg_logic9_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_u_cla14_or16 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and33 = ((f_s_dadda_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and34 = ((f_s_dadda_cla8_u_cla14_and33 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and35 = ((f_s_dadda_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or17 = ((f_s_dadda_cla8_u_cla14_and34 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and35 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or18 = ((f_s_dadda_cla8_u_cla14_pg_logic9_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_or17 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic10_or0 = ((f_s_dadda_cla8_fa23_xor1 >> 0) & 0x01) | ((f_s_dadda_cla8_fa33_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic10_and0 = ((f_s_dadda_cla8_fa23_xor1 >> 0) & 0x01) & ((f_s_dadda_cla8_fa33_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic10_xor0 = ((f_s_dadda_cla8_fa23_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa33_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_xor10 = ((f_s_dadda_cla8_u_cla14_pg_logic10_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_u_cla14_or18 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and36 = ((f_s_dadda_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and37 = ((f_s_dadda_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and38 = ((f_s_dadda_cla8_u_cla14_and36 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_and37 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and39 = ((f_s_dadda_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and40 = ((f_s_dadda_cla8_u_cla14_and39 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and41 = ((f_s_dadda_cla8_u_cla14_pg_logic9_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or19 = ((f_s_dadda_cla8_u_cla14_and38 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and40 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or20 = ((f_s_dadda_cla8_u_cla14_or19 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and41 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or21 = ((f_s_dadda_cla8_u_cla14_pg_logic10_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_or20 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic11_or0 = ((f_s_dadda_cla8_fa24_xor1 >> 0) & 0x01) | ((f_s_dadda_cla8_fa34_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic11_and0 = ((f_s_dadda_cla8_fa24_xor1 >> 0) & 0x01) & ((f_s_dadda_cla8_fa34_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic11_xor0 = ((f_s_dadda_cla8_fa24_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa34_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_xor11 = ((f_s_dadda_cla8_u_cla14_pg_logic11_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_u_cla14_or21 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and42 = ((f_s_dadda_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and43 = ((f_s_dadda_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and44 = ((f_s_dadda_cla8_u_cla14_and42 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_and43 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and45 = ((f_s_dadda_cla8_u_cla14_and44 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and46 = ((f_s_dadda_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and47 = ((f_s_dadda_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and48 = ((f_s_dadda_cla8_u_cla14_and46 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_and47 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and49 = ((f_s_dadda_cla8_u_cla14_pg_logic9_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and50 = ((f_s_dadda_cla8_u_cla14_and49 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and51 = ((f_s_dadda_cla8_u_cla14_pg_logic10_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or22 = ((f_s_dadda_cla8_u_cla14_and45 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and50 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or23 = ((f_s_dadda_cla8_u_cla14_and48 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and51 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or24 = ((f_s_dadda_cla8_u_cla14_or22 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_or23 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or25 = ((f_s_dadda_cla8_u_cla14_pg_logic11_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_or24 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic12_or0 = ((f_s_dadda_cla8_nand_6_7 >> 0) & 0x01) | ((f_s_dadda_cla8_fa35_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic12_and0 = ((f_s_dadda_cla8_nand_6_7 >> 0) & 0x01) & ((f_s_dadda_cla8_fa35_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic12_xor0 = ((f_s_dadda_cla8_nand_6_7 >> 0) & 0x01) ^ ((f_s_dadda_cla8_fa35_xor1 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_xor12 = ((f_s_dadda_cla8_u_cla14_pg_logic12_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_u_cla14_or25 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and52 = ((f_s_dadda_cla8_u_cla14_or25 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic12_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or26 = ((f_s_dadda_cla8_u_cla14_pg_logic12_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and52 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic13_or0 = ((f_s_dadda_cla8_fa35_or0 >> 0) & 0x01) | ((f_s_dadda_cla8_and_7_7 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic13_and0 = ((f_s_dadda_cla8_fa35_or0 >> 0) & 0x01) & ((f_s_dadda_cla8_and_7_7 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_pg_logic13_xor0 = ((f_s_dadda_cla8_fa35_or0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_and_7_7 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_xor13 = ((f_s_dadda_cla8_u_cla14_pg_logic13_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cla8_u_cla14_or26 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and53 = ((f_s_dadda_cla8_u_cla14_or25 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic13_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and54 = ((f_s_dadda_cla8_u_cla14_and53 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic12_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_and55 = ((f_s_dadda_cla8_u_cla14_pg_logic12_and0 >> 0) & 0x01) & ((f_s_dadda_cla8_u_cla14_pg_logic13_or0 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or27 = ((f_s_dadda_cla8_u_cla14_and54 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_and55 >> 0) & 0x01); - f_s_dadda_cla8_u_cla14_or28 = ((f_s_dadda_cla8_u_cla14_pg_logic13_and0 >> 0) & 0x01) | ((f_s_dadda_cla8_u_cla14_or27 >> 0) & 0x01); - f_s_dadda_cla8_xor0 = ~(((f_s_dadda_cla8_u_cla14_or28 >> 0) & 0x01)) & 0x01; - - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_and_0_0 >> 0) & 0x01) << 0; - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_u_cla14_pg_logic0_xor0 >> 0) & 0x01) << 1; - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_u_cla14_xor1 >> 0) & 0x01) << 2; - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_u_cla14_xor2 >> 0) & 0x01) << 3; - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_u_cla14_xor3 >> 0) & 0x01) << 4; - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_u_cla14_xor4 >> 0) & 0x01) << 5; - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_u_cla14_xor5 >> 0) & 0x01) << 6; - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_u_cla14_xor6 >> 0) & 0x01) << 7; - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_u_cla14_xor7 >> 0) & 0x01) << 8; - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_u_cla14_xor8 >> 0) & 0x01) << 9; - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_u_cla14_xor9 >> 0) & 0x01) << 10; - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_u_cla14_xor10 >> 0) & 0x01) << 11; - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_u_cla14_xor11 >> 0) & 0x01) << 12; - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_u_cla14_xor12 >> 0) & 0x01) << 13; - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_u_cla14_xor13 >> 0) & 0x01) << 14; - f_s_dadda_cla8_out |= ((f_s_dadda_cla8_xor0 >> 0) & 0x01) << 15; - return f_s_dadda_cla8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)f_s_dadda_cla8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cska4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cska4.c deleted file mode 100644 index 0bcb44f..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cska4.c +++ /dev/null @@ -1,201 +0,0 @@ -#include -#include - -uint64_t f_s_dadda_cska4(uint64_t a, uint64_t b){ - uint8_t f_s_dadda_cska4_out = 0; - uint8_t f_s_dadda_cska4_nand_3_0 = 0; - uint8_t f_s_dadda_cska4_and_2_1 = 0; - uint8_t f_s_dadda_cska4_ha0_xor0 = 0; - uint8_t f_s_dadda_cska4_ha0_and0 = 0; - uint8_t f_s_dadda_cska4_nand_3_1 = 0; - uint8_t f_s_dadda_cska4_fa0_xor0 = 0; - uint8_t f_s_dadda_cska4_fa0_xor1 = 0; - uint8_t f_s_dadda_cska4_fa0_and1 = 0; - uint8_t f_s_dadda_cska4_fa0_or0 = 0; - uint8_t f_s_dadda_cska4_and_2_0 = 0; - uint8_t f_s_dadda_cska4_and_1_1 = 0; - uint8_t f_s_dadda_cska4_ha1_xor0 = 0; - uint8_t f_s_dadda_cska4_ha1_and0 = 0; - uint8_t f_s_dadda_cska4_and_1_2 = 0; - uint8_t f_s_dadda_cska4_nand_0_3 = 0; - uint8_t f_s_dadda_cska4_fa1_xor0 = 0; - uint8_t f_s_dadda_cska4_fa1_and0 = 0; - uint8_t f_s_dadda_cska4_fa1_xor1 = 0; - uint8_t f_s_dadda_cska4_fa1_and1 = 0; - uint8_t f_s_dadda_cska4_fa1_or0 = 0; - uint8_t f_s_dadda_cska4_and_2_2 = 0; - uint8_t f_s_dadda_cska4_nand_1_3 = 0; - uint8_t f_s_dadda_cska4_fa2_xor0 = 0; - uint8_t f_s_dadda_cska4_fa2_and0 = 0; - uint8_t f_s_dadda_cska4_fa2_xor1 = 0; - uint8_t f_s_dadda_cska4_fa2_and1 = 0; - uint8_t f_s_dadda_cska4_fa2_or0 = 0; - uint8_t f_s_dadda_cska4_nand_3_2 = 0; - uint8_t f_s_dadda_cska4_fa3_xor0 = 0; - uint8_t f_s_dadda_cska4_fa3_and0 = 0; - uint8_t f_s_dadda_cska4_fa3_xor1 = 0; - uint8_t f_s_dadda_cska4_fa3_and1 = 0; - uint8_t f_s_dadda_cska4_fa3_or0 = 0; - uint8_t f_s_dadda_cska4_and_0_0 = 0; - uint8_t f_s_dadda_cska4_and_1_0 = 0; - uint8_t f_s_dadda_cska4_and_0_2 = 0; - uint8_t f_s_dadda_cska4_nand_2_3 = 0; - uint8_t f_s_dadda_cska4_and_0_1 = 0; - uint8_t f_s_dadda_cska4_and_3_3 = 0; - uint8_t f_s_dadda_cska4_u_cska6_xor0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_ha0_xor0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_ha0_and0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_xor1 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa0_xor0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa0_and0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa0_xor1 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa0_and1 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa0_or0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_xor2 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa1_xor0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa1_and0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa1_xor1 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa1_and1 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa1_or0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_xor3 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa2_xor0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa2_and0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa2_xor1 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa2_and1 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa2_or0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_and_propagate00 = 0; - uint8_t f_s_dadda_cska4_u_cska6_and_propagate01 = 0; - uint8_t f_s_dadda_cska4_u_cska6_and_propagate02 = 0; - uint8_t f_s_dadda_cska4_u_cska6_mux2to10_not0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_mux2to10_and1 = 0; - uint8_t f_s_dadda_cska4_u_cska6_xor4 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa3_xor0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa3_and0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa3_xor1 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa3_and1 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa3_or0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_xor5 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa4_xor0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa4_and0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa4_xor1 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa4_and1 = 0; - uint8_t f_s_dadda_cska4_u_cska6_fa4_or0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_and_propagate13 = 0; - uint8_t f_s_dadda_cska4_u_cska6_mux2to11_and0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_mux2to11_not0 = 0; - uint8_t f_s_dadda_cska4_u_cska6_mux2to11_and1 = 0; - uint8_t f_s_dadda_cska4_u_cska6_mux2to11_xor0 = 0; - uint8_t f_s_dadda_cska4_xor0 = 0; - - f_s_dadda_cska4_nand_3_0 = ~(((a >> 3) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_dadda_cska4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cska4_ha0_xor0 = ((f_s_dadda_cska4_nand_3_0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_and_2_1 >> 0) & 0x01); - f_s_dadda_cska4_ha0_and0 = ((f_s_dadda_cska4_nand_3_0 >> 0) & 0x01) & ((f_s_dadda_cska4_and_2_1 >> 0) & 0x01); - f_s_dadda_cska4_nand_3_1 = ~(((a >> 3) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_dadda_cska4_fa0_xor0 = ~(((f_s_dadda_cska4_ha0_and0 >> 0) & 0x01)) & 0x01; - f_s_dadda_cska4_fa0_xor1 = ((f_s_dadda_cska4_fa0_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_nand_3_1 >> 0) & 0x01); - f_s_dadda_cska4_fa0_and1 = ((f_s_dadda_cska4_fa0_xor0 >> 0) & 0x01) & ((f_s_dadda_cska4_nand_3_1 >> 0) & 0x01); - f_s_dadda_cska4_fa0_or0 = ((f_s_dadda_cska4_ha0_and0 >> 0) & 0x01) | ((f_s_dadda_cska4_fa0_and1 >> 0) & 0x01); - f_s_dadda_cska4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cska4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cska4_ha1_xor0 = ((f_s_dadda_cska4_and_2_0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_and_1_1 >> 0) & 0x01); - f_s_dadda_cska4_ha1_and0 = ((f_s_dadda_cska4_and_2_0 >> 0) & 0x01) & ((f_s_dadda_cska4_and_1_1 >> 0) & 0x01); - f_s_dadda_cska4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cska4_nand_0_3 = ~(((a >> 0) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_cska4_fa1_xor0 = ((f_s_dadda_cska4_ha1_and0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_and_1_2 >> 0) & 0x01); - f_s_dadda_cska4_fa1_and0 = ((f_s_dadda_cska4_ha1_and0 >> 0) & 0x01) & ((f_s_dadda_cska4_and_1_2 >> 0) & 0x01); - f_s_dadda_cska4_fa1_xor1 = ((f_s_dadda_cska4_fa1_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_nand_0_3 >> 0) & 0x01); - f_s_dadda_cska4_fa1_and1 = ((f_s_dadda_cska4_fa1_xor0 >> 0) & 0x01) & ((f_s_dadda_cska4_nand_0_3 >> 0) & 0x01); - f_s_dadda_cska4_fa1_or0 = ((f_s_dadda_cska4_fa1_and0 >> 0) & 0x01) | ((f_s_dadda_cska4_fa1_and1 >> 0) & 0x01); - f_s_dadda_cska4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cska4_nand_1_3 = ~(((a >> 1) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_cska4_fa2_xor0 = ((f_s_dadda_cska4_fa1_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_and_2_2 >> 0) & 0x01); - f_s_dadda_cska4_fa2_and0 = ((f_s_dadda_cska4_fa1_or0 >> 0) & 0x01) & ((f_s_dadda_cska4_and_2_2 >> 0) & 0x01); - f_s_dadda_cska4_fa2_xor1 = ((f_s_dadda_cska4_fa2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_nand_1_3 >> 0) & 0x01); - f_s_dadda_cska4_fa2_and1 = ((f_s_dadda_cska4_fa2_xor0 >> 0) & 0x01) & ((f_s_dadda_cska4_nand_1_3 >> 0) & 0x01); - f_s_dadda_cska4_fa2_or0 = ((f_s_dadda_cska4_fa2_and0 >> 0) & 0x01) | ((f_s_dadda_cska4_fa2_and1 >> 0) & 0x01); - f_s_dadda_cska4_nand_3_2 = ~(((a >> 3) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_dadda_cska4_fa3_xor0 = ((f_s_dadda_cska4_fa2_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_fa0_or0 >> 0) & 0x01); - f_s_dadda_cska4_fa3_and0 = ((f_s_dadda_cska4_fa2_or0 >> 0) & 0x01) & ((f_s_dadda_cska4_fa0_or0 >> 0) & 0x01); - f_s_dadda_cska4_fa3_xor1 = ((f_s_dadda_cska4_fa3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_nand_3_2 >> 0) & 0x01); - f_s_dadda_cska4_fa3_and1 = ((f_s_dadda_cska4_fa3_xor0 >> 0) & 0x01) & ((f_s_dadda_cska4_nand_3_2 >> 0) & 0x01); - f_s_dadda_cska4_fa3_or0 = ((f_s_dadda_cska4_fa3_and0 >> 0) & 0x01) | ((f_s_dadda_cska4_fa3_and1 >> 0) & 0x01); - f_s_dadda_cska4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cska4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cska4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cska4_nand_2_3 = ~(((a >> 2) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_cska4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cska4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cska4_u_cska6_xor0 = ((f_s_dadda_cska4_and_1_0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_and_0_1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_ha0_xor0 = ((f_s_dadda_cska4_and_1_0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_and_0_1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_ha0_and0 = ((f_s_dadda_cska4_and_1_0 >> 0) & 0x01) & ((f_s_dadda_cska4_and_0_1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_xor1 = ((f_s_dadda_cska4_and_0_2 >> 0) & 0x01) ^ ((f_s_dadda_cska4_ha1_xor0 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa0_xor0 = ((f_s_dadda_cska4_and_0_2 >> 0) & 0x01) ^ ((f_s_dadda_cska4_ha1_xor0 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa0_and0 = ((f_s_dadda_cska4_and_0_2 >> 0) & 0x01) & ((f_s_dadda_cska4_ha1_xor0 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa0_xor1 = ((f_s_dadda_cska4_u_cska6_fa0_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_u_cska6_ha0_and0 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa0_and1 = ((f_s_dadda_cska4_u_cska6_fa0_xor0 >> 0) & 0x01) & ((f_s_dadda_cska4_u_cska6_ha0_and0 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa0_or0 = ((f_s_dadda_cska4_u_cska6_fa0_and0 >> 0) & 0x01) | ((f_s_dadda_cska4_u_cska6_fa0_and1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_xor2 = ((f_s_dadda_cska4_ha0_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_fa1_xor1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa1_xor0 = ((f_s_dadda_cska4_ha0_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_fa1_xor1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa1_and0 = ((f_s_dadda_cska4_ha0_xor0 >> 0) & 0x01) & ((f_s_dadda_cska4_fa1_xor1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa1_xor1 = ((f_s_dadda_cska4_u_cska6_fa1_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_u_cska6_fa0_or0 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa1_and1 = ((f_s_dadda_cska4_u_cska6_fa1_xor0 >> 0) & 0x01) & ((f_s_dadda_cska4_u_cska6_fa0_or0 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa1_or0 = ((f_s_dadda_cska4_u_cska6_fa1_and0 >> 0) & 0x01) | ((f_s_dadda_cska4_u_cska6_fa1_and1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_xor3 = ((f_s_dadda_cska4_fa0_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska4_fa2_xor1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa2_xor0 = ((f_s_dadda_cska4_fa0_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska4_fa2_xor1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa2_and0 = ((f_s_dadda_cska4_fa0_xor1 >> 0) & 0x01) & ((f_s_dadda_cska4_fa2_xor1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa2_xor1 = ((f_s_dadda_cska4_u_cska6_fa2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_u_cska6_fa1_or0 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa2_and1 = ((f_s_dadda_cska4_u_cska6_fa2_xor0 >> 0) & 0x01) & ((f_s_dadda_cska4_u_cska6_fa1_or0 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa2_or0 = ((f_s_dadda_cska4_u_cska6_fa2_and0 >> 0) & 0x01) | ((f_s_dadda_cska4_u_cska6_fa2_and1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_and_propagate00 = ((f_s_dadda_cska4_u_cska6_xor0 >> 0) & 0x01) & ((f_s_dadda_cska4_u_cska6_xor2 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_and_propagate01 = ((f_s_dadda_cska4_u_cska6_xor1 >> 0) & 0x01) & ((f_s_dadda_cska4_u_cska6_xor3 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_and_propagate02 = ((f_s_dadda_cska4_u_cska6_and_propagate00 >> 0) & 0x01) & ((f_s_dadda_cska4_u_cska6_and_propagate01 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_mux2to10_not0 = ~(((f_s_dadda_cska4_u_cska6_and_propagate02 >> 0) & 0x01)) & 0x01; - f_s_dadda_cska4_u_cska6_mux2to10_and1 = ((f_s_dadda_cska4_u_cska6_fa2_or0 >> 0) & 0x01) & ((f_s_dadda_cska4_u_cska6_mux2to10_not0 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_xor4 = ((f_s_dadda_cska4_nand_2_3 >> 0) & 0x01) ^ ((f_s_dadda_cska4_fa3_xor1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa3_xor0 = ((f_s_dadda_cska4_nand_2_3 >> 0) & 0x01) ^ ((f_s_dadda_cska4_fa3_xor1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa3_and0 = ((f_s_dadda_cska4_nand_2_3 >> 0) & 0x01) & ((f_s_dadda_cska4_fa3_xor1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa3_xor1 = ((f_s_dadda_cska4_u_cska6_fa3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_u_cska6_mux2to10_and1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa3_and1 = ((f_s_dadda_cska4_u_cska6_fa3_xor0 >> 0) & 0x01) & ((f_s_dadda_cska4_u_cska6_mux2to10_and1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa3_or0 = ((f_s_dadda_cska4_u_cska6_fa3_and0 >> 0) & 0x01) | ((f_s_dadda_cska4_u_cska6_fa3_and1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_xor5 = ((f_s_dadda_cska4_fa3_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_and_3_3 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa4_xor0 = ((f_s_dadda_cska4_fa3_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_and_3_3 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa4_and0 = ((f_s_dadda_cska4_fa3_or0 >> 0) & 0x01) & ((f_s_dadda_cska4_and_3_3 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa4_xor1 = ((f_s_dadda_cska4_u_cska6_fa4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_u_cska6_fa3_or0 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa4_and1 = ((f_s_dadda_cska4_u_cska6_fa4_xor0 >> 0) & 0x01) & ((f_s_dadda_cska4_u_cska6_fa3_or0 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_fa4_or0 = ((f_s_dadda_cska4_u_cska6_fa4_and0 >> 0) & 0x01) | ((f_s_dadda_cska4_u_cska6_fa4_and1 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_and_propagate13 = ((f_s_dadda_cska4_u_cska6_xor4 >> 0) & 0x01) & ((f_s_dadda_cska4_u_cska6_xor5 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_mux2to11_and0 = ((f_s_dadda_cska4_u_cska6_mux2to10_and1 >> 0) & 0x01) & ((f_s_dadda_cska4_u_cska6_and_propagate13 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_mux2to11_not0 = ~(((f_s_dadda_cska4_u_cska6_and_propagate13 >> 0) & 0x01)) & 0x01; - f_s_dadda_cska4_u_cska6_mux2to11_and1 = ((f_s_dadda_cska4_u_cska6_fa4_or0 >> 0) & 0x01) & ((f_s_dadda_cska4_u_cska6_mux2to11_not0 >> 0) & 0x01); - f_s_dadda_cska4_u_cska6_mux2to11_xor0 = ((f_s_dadda_cska4_u_cska6_mux2to11_and0 >> 0) & 0x01) ^ ((f_s_dadda_cska4_u_cska6_mux2to11_and1 >> 0) & 0x01); - f_s_dadda_cska4_xor0 = ~(((f_s_dadda_cska4_u_cska6_mux2to11_xor0 >> 0) & 0x01)) & 0x01; - - f_s_dadda_cska4_out |= ((f_s_dadda_cska4_and_0_0 >> 0) & 0x01) << 0; - f_s_dadda_cska4_out |= ((f_s_dadda_cska4_u_cska6_ha0_xor0 >> 0) & 0x01) << 1; - f_s_dadda_cska4_out |= ((f_s_dadda_cska4_u_cska6_fa0_xor1 >> 0) & 0x01) << 2; - f_s_dadda_cska4_out |= ((f_s_dadda_cska4_u_cska6_fa1_xor1 >> 0) & 0x01) << 3; - f_s_dadda_cska4_out |= ((f_s_dadda_cska4_u_cska6_fa2_xor1 >> 0) & 0x01) << 4; - f_s_dadda_cska4_out |= ((f_s_dadda_cska4_u_cska6_fa3_xor1 >> 0) & 0x01) << 5; - f_s_dadda_cska4_out |= ((f_s_dadda_cska4_u_cska6_fa4_xor1 >> 0) & 0x01) << 6; - f_s_dadda_cska4_out |= ((f_s_dadda_cska4_xor0 >> 0) & 0x01) << 7; - return f_s_dadda_cska4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)f_s_dadda_cska4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cska8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cska8.c deleted file mode 100644 index 791b63c..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_cska8.c +++ /dev/null @@ -1,765 +0,0 @@ -#include -#include - -uint64_t f_s_dadda_cska8(uint64_t a, uint64_t b){ - uint64_t f_s_dadda_cska8_out = 0; - uint8_t f_s_dadda_cska8_and_6_0 = 0; - uint8_t f_s_dadda_cska8_and_5_1 = 0; - uint8_t f_s_dadda_cska8_ha0_xor0 = 0; - uint8_t f_s_dadda_cska8_ha0_and0 = 0; - uint8_t f_s_dadda_cska8_nand_7_0 = 0; - uint8_t f_s_dadda_cska8_and_6_1 = 0; - uint8_t f_s_dadda_cska8_fa0_xor0 = 0; - uint8_t f_s_dadda_cska8_fa0_and0 = 0; - uint8_t f_s_dadda_cska8_fa0_xor1 = 0; - uint8_t f_s_dadda_cska8_fa0_and1 = 0; - uint8_t f_s_dadda_cska8_fa0_or0 = 0; - uint8_t f_s_dadda_cska8_and_5_2 = 0; - uint8_t f_s_dadda_cska8_and_4_3 = 0; - uint8_t f_s_dadda_cska8_ha1_xor0 = 0; - uint8_t f_s_dadda_cska8_ha1_and0 = 0; - uint8_t f_s_dadda_cska8_fa1_xor0 = 0; - uint8_t f_s_dadda_cska8_fa1_and0 = 0; - uint8_t f_s_dadda_cska8_fa1_xor1 = 0; - uint8_t f_s_dadda_cska8_fa1_or0 = 0; - uint8_t f_s_dadda_cska8_nand_7_1 = 0; - uint8_t f_s_dadda_cska8_and_6_2 = 0; - uint8_t f_s_dadda_cska8_and_5_3 = 0; - uint8_t f_s_dadda_cska8_fa2_xor0 = 0; - uint8_t f_s_dadda_cska8_fa2_and0 = 0; - uint8_t f_s_dadda_cska8_fa2_xor1 = 0; - uint8_t f_s_dadda_cska8_fa2_and1 = 0; - uint8_t f_s_dadda_cska8_fa2_or0 = 0; - uint8_t f_s_dadda_cska8_nand_7_2 = 0; - uint8_t f_s_dadda_cska8_fa3_xor0 = 0; - uint8_t f_s_dadda_cska8_fa3_and0 = 0; - uint8_t f_s_dadda_cska8_fa3_xor1 = 0; - uint8_t f_s_dadda_cska8_fa3_and1 = 0; - uint8_t f_s_dadda_cska8_fa3_or0 = 0; - uint8_t f_s_dadda_cska8_and_3_0 = 0; - uint8_t f_s_dadda_cska8_and_2_1 = 0; - uint8_t f_s_dadda_cska8_ha2_xor0 = 0; - uint8_t f_s_dadda_cska8_ha2_and0 = 0; - uint8_t f_s_dadda_cska8_and_4_0 = 0; - uint8_t f_s_dadda_cska8_and_3_1 = 0; - uint8_t f_s_dadda_cska8_fa4_xor0 = 0; - uint8_t f_s_dadda_cska8_fa4_and0 = 0; - uint8_t f_s_dadda_cska8_fa4_xor1 = 0; - uint8_t f_s_dadda_cska8_fa4_and1 = 0; - uint8_t f_s_dadda_cska8_fa4_or0 = 0; - uint8_t f_s_dadda_cska8_and_2_2 = 0; - uint8_t f_s_dadda_cska8_and_1_3 = 0; - uint8_t f_s_dadda_cska8_ha3_xor0 = 0; - uint8_t f_s_dadda_cska8_ha3_and0 = 0; - uint8_t f_s_dadda_cska8_and_5_0 = 0; - uint8_t f_s_dadda_cska8_fa5_xor0 = 0; - uint8_t f_s_dadda_cska8_fa5_and0 = 0; - uint8_t f_s_dadda_cska8_fa5_xor1 = 0; - uint8_t f_s_dadda_cska8_fa5_and1 = 0; - uint8_t f_s_dadda_cska8_fa5_or0 = 0; - uint8_t f_s_dadda_cska8_and_4_1 = 0; - uint8_t f_s_dadda_cska8_and_3_2 = 0; - uint8_t f_s_dadda_cska8_and_2_3 = 0; - uint8_t f_s_dadda_cska8_fa6_xor0 = 0; - uint8_t f_s_dadda_cska8_fa6_and0 = 0; - uint8_t f_s_dadda_cska8_fa6_xor1 = 0; - uint8_t f_s_dadda_cska8_fa6_and1 = 0; - uint8_t f_s_dadda_cska8_fa6_or0 = 0; - uint8_t f_s_dadda_cska8_and_1_4 = 0; - uint8_t f_s_dadda_cska8_and_0_5 = 0; - uint8_t f_s_dadda_cska8_ha4_xor0 = 0; - uint8_t f_s_dadda_cska8_ha4_and0 = 0; - uint8_t f_s_dadda_cska8_fa7_xor0 = 0; - uint8_t f_s_dadda_cska8_fa7_and0 = 0; - uint8_t f_s_dadda_cska8_fa7_xor1 = 0; - uint8_t f_s_dadda_cska8_fa7_and1 = 0; - uint8_t f_s_dadda_cska8_fa7_or0 = 0; - uint8_t f_s_dadda_cska8_and_4_2 = 0; - uint8_t f_s_dadda_cska8_and_3_3 = 0; - uint8_t f_s_dadda_cska8_and_2_4 = 0; - uint8_t f_s_dadda_cska8_fa8_xor0 = 0; - uint8_t f_s_dadda_cska8_fa8_and0 = 0; - uint8_t f_s_dadda_cska8_fa8_xor1 = 0; - uint8_t f_s_dadda_cska8_fa8_and1 = 0; - uint8_t f_s_dadda_cska8_fa8_or0 = 0; - uint8_t f_s_dadda_cska8_and_1_5 = 0; - uint8_t f_s_dadda_cska8_and_0_6 = 0; - uint8_t f_s_dadda_cska8_fa9_xor0 = 0; - uint8_t f_s_dadda_cska8_fa9_and0 = 0; - uint8_t f_s_dadda_cska8_fa9_xor1 = 0; - uint8_t f_s_dadda_cska8_fa9_and1 = 0; - uint8_t f_s_dadda_cska8_fa9_or0 = 0; - uint8_t f_s_dadda_cska8_fa10_xor0 = 0; - uint8_t f_s_dadda_cska8_fa10_and0 = 0; - uint8_t f_s_dadda_cska8_fa10_xor1 = 0; - uint8_t f_s_dadda_cska8_fa10_and1 = 0; - uint8_t f_s_dadda_cska8_fa10_or0 = 0; - uint8_t f_s_dadda_cska8_and_3_4 = 0; - uint8_t f_s_dadda_cska8_and_2_5 = 0; - uint8_t f_s_dadda_cska8_and_1_6 = 0; - uint8_t f_s_dadda_cska8_fa11_xor0 = 0; - uint8_t f_s_dadda_cska8_fa11_and0 = 0; - uint8_t f_s_dadda_cska8_fa11_xor1 = 0; - uint8_t f_s_dadda_cska8_fa11_and1 = 0; - uint8_t f_s_dadda_cska8_fa11_or0 = 0; - uint8_t f_s_dadda_cska8_nand_0_7 = 0; - uint8_t f_s_dadda_cska8_fa12_xor0 = 0; - uint8_t f_s_dadda_cska8_fa12_and0 = 0; - uint8_t f_s_dadda_cska8_fa12_xor1 = 0; - uint8_t f_s_dadda_cska8_fa12_and1 = 0; - uint8_t f_s_dadda_cska8_fa12_or0 = 0; - uint8_t f_s_dadda_cska8_fa13_xor0 = 0; - uint8_t f_s_dadda_cska8_fa13_and0 = 0; - uint8_t f_s_dadda_cska8_fa13_xor1 = 0; - uint8_t f_s_dadda_cska8_fa13_and1 = 0; - uint8_t f_s_dadda_cska8_fa13_or0 = 0; - uint8_t f_s_dadda_cska8_and_4_4 = 0; - uint8_t f_s_dadda_cska8_and_3_5 = 0; - uint8_t f_s_dadda_cska8_and_2_6 = 0; - uint8_t f_s_dadda_cska8_fa14_xor0 = 0; - uint8_t f_s_dadda_cska8_fa14_and0 = 0; - uint8_t f_s_dadda_cska8_fa14_xor1 = 0; - uint8_t f_s_dadda_cska8_fa14_and1 = 0; - uint8_t f_s_dadda_cska8_fa14_or0 = 0; - uint8_t f_s_dadda_cska8_nand_1_7 = 0; - uint8_t f_s_dadda_cska8_fa15_xor0 = 0; - uint8_t f_s_dadda_cska8_fa15_and0 = 0; - uint8_t f_s_dadda_cska8_fa15_xor1 = 0; - uint8_t f_s_dadda_cska8_fa15_and1 = 0; - uint8_t f_s_dadda_cska8_fa15_or0 = 0; - uint8_t f_s_dadda_cska8_fa16_xor0 = 0; - uint8_t f_s_dadda_cska8_fa16_and0 = 0; - uint8_t f_s_dadda_cska8_fa16_xor1 = 0; - uint8_t f_s_dadda_cska8_fa16_and1 = 0; - uint8_t f_s_dadda_cska8_fa16_or0 = 0; - uint8_t f_s_dadda_cska8_and_6_3 = 0; - uint8_t f_s_dadda_cska8_and_5_4 = 0; - uint8_t f_s_dadda_cska8_and_4_5 = 0; - uint8_t f_s_dadda_cska8_fa17_xor0 = 0; - uint8_t f_s_dadda_cska8_fa17_and0 = 0; - uint8_t f_s_dadda_cska8_fa17_xor1 = 0; - uint8_t f_s_dadda_cska8_fa17_and1 = 0; - uint8_t f_s_dadda_cska8_fa17_or0 = 0; - uint8_t f_s_dadda_cska8_and_3_6 = 0; - uint8_t f_s_dadda_cska8_nand_2_7 = 0; - uint8_t f_s_dadda_cska8_fa18_xor0 = 0; - uint8_t f_s_dadda_cska8_fa18_and0 = 0; - uint8_t f_s_dadda_cska8_fa18_xor1 = 0; - uint8_t f_s_dadda_cska8_fa18_and1 = 0; - uint8_t f_s_dadda_cska8_fa18_or0 = 0; - uint8_t f_s_dadda_cska8_fa19_xor0 = 0; - uint8_t f_s_dadda_cska8_fa19_and0 = 0; - uint8_t f_s_dadda_cska8_fa19_xor1 = 0; - uint8_t f_s_dadda_cska8_fa19_and1 = 0; - uint8_t f_s_dadda_cska8_fa19_or0 = 0; - uint8_t f_s_dadda_cska8_nand_7_3 = 0; - uint8_t f_s_dadda_cska8_and_6_4 = 0; - uint8_t f_s_dadda_cska8_fa20_xor0 = 0; - uint8_t f_s_dadda_cska8_fa20_and0 = 0; - uint8_t f_s_dadda_cska8_fa20_xor1 = 0; - uint8_t f_s_dadda_cska8_fa20_and1 = 0; - uint8_t f_s_dadda_cska8_fa20_or0 = 0; - uint8_t f_s_dadda_cska8_and_5_5 = 0; - uint8_t f_s_dadda_cska8_and_4_6 = 0; - uint8_t f_s_dadda_cska8_nand_3_7 = 0; - uint8_t f_s_dadda_cska8_fa21_xor0 = 0; - uint8_t f_s_dadda_cska8_fa21_and0 = 0; - uint8_t f_s_dadda_cska8_fa21_xor1 = 0; - uint8_t f_s_dadda_cska8_fa21_and1 = 0; - uint8_t f_s_dadda_cska8_fa21_or0 = 0; - uint8_t f_s_dadda_cska8_fa22_xor0 = 0; - uint8_t f_s_dadda_cska8_fa22_and0 = 0; - uint8_t f_s_dadda_cska8_fa22_xor1 = 0; - uint8_t f_s_dadda_cska8_fa22_and1 = 0; - uint8_t f_s_dadda_cska8_fa22_or0 = 0; - uint8_t f_s_dadda_cska8_nand_7_4 = 0; - uint8_t f_s_dadda_cska8_and_6_5 = 0; - uint8_t f_s_dadda_cska8_and_5_6 = 0; - uint8_t f_s_dadda_cska8_fa23_xor0 = 0; - uint8_t f_s_dadda_cska8_fa23_and0 = 0; - uint8_t f_s_dadda_cska8_fa23_xor1 = 0; - uint8_t f_s_dadda_cska8_fa23_and1 = 0; - uint8_t f_s_dadda_cska8_fa23_or0 = 0; - uint8_t f_s_dadda_cska8_nand_7_5 = 0; - uint8_t f_s_dadda_cska8_fa24_xor0 = 0; - uint8_t f_s_dadda_cska8_fa24_and0 = 0; - uint8_t f_s_dadda_cska8_fa24_xor1 = 0; - uint8_t f_s_dadda_cska8_fa24_and1 = 0; - uint8_t f_s_dadda_cska8_fa24_or0 = 0; - uint8_t f_s_dadda_cska8_and_2_0 = 0; - uint8_t f_s_dadda_cska8_and_1_1 = 0; - uint8_t f_s_dadda_cska8_ha5_xor0 = 0; - uint8_t f_s_dadda_cska8_ha5_and0 = 0; - uint8_t f_s_dadda_cska8_and_1_2 = 0; - uint8_t f_s_dadda_cska8_and_0_3 = 0; - uint8_t f_s_dadda_cska8_fa25_xor0 = 0; - uint8_t f_s_dadda_cska8_fa25_and0 = 0; - uint8_t f_s_dadda_cska8_fa25_xor1 = 0; - uint8_t f_s_dadda_cska8_fa25_and1 = 0; - uint8_t f_s_dadda_cska8_fa25_or0 = 0; - uint8_t f_s_dadda_cska8_and_0_4 = 0; - uint8_t f_s_dadda_cska8_fa26_xor0 = 0; - uint8_t f_s_dadda_cska8_fa26_and0 = 0; - uint8_t f_s_dadda_cska8_fa26_xor1 = 0; - uint8_t f_s_dadda_cska8_fa26_and1 = 0; - uint8_t f_s_dadda_cska8_fa26_or0 = 0; - uint8_t f_s_dadda_cska8_fa27_xor0 = 0; - uint8_t f_s_dadda_cska8_fa27_and0 = 0; - uint8_t f_s_dadda_cska8_fa27_xor1 = 0; - uint8_t f_s_dadda_cska8_fa27_and1 = 0; - uint8_t f_s_dadda_cska8_fa27_or0 = 0; - uint8_t f_s_dadda_cska8_fa28_xor0 = 0; - uint8_t f_s_dadda_cska8_fa28_and0 = 0; - uint8_t f_s_dadda_cska8_fa28_xor1 = 0; - uint8_t f_s_dadda_cska8_fa28_and1 = 0; - uint8_t f_s_dadda_cska8_fa28_or0 = 0; - uint8_t f_s_dadda_cska8_fa29_xor0 = 0; - uint8_t f_s_dadda_cska8_fa29_and0 = 0; - uint8_t f_s_dadda_cska8_fa29_xor1 = 0; - uint8_t f_s_dadda_cska8_fa29_and1 = 0; - uint8_t f_s_dadda_cska8_fa29_or0 = 0; - uint8_t f_s_dadda_cska8_fa30_xor0 = 0; - uint8_t f_s_dadda_cska8_fa30_and0 = 0; - uint8_t f_s_dadda_cska8_fa30_xor1 = 0; - uint8_t f_s_dadda_cska8_fa30_and1 = 0; - uint8_t f_s_dadda_cska8_fa30_or0 = 0; - uint8_t f_s_dadda_cska8_fa31_xor0 = 0; - uint8_t f_s_dadda_cska8_fa31_and0 = 0; - uint8_t f_s_dadda_cska8_fa31_xor1 = 0; - uint8_t f_s_dadda_cska8_fa31_and1 = 0; - uint8_t f_s_dadda_cska8_fa31_or0 = 0; - uint8_t f_s_dadda_cska8_fa32_xor0 = 0; - uint8_t f_s_dadda_cska8_fa32_and0 = 0; - uint8_t f_s_dadda_cska8_fa32_xor1 = 0; - uint8_t f_s_dadda_cska8_fa32_and1 = 0; - uint8_t f_s_dadda_cska8_fa32_or0 = 0; - uint8_t f_s_dadda_cska8_nand_4_7 = 0; - uint8_t f_s_dadda_cska8_fa33_xor0 = 0; - uint8_t f_s_dadda_cska8_fa33_and0 = 0; - uint8_t f_s_dadda_cska8_fa33_xor1 = 0; - uint8_t f_s_dadda_cska8_fa33_and1 = 0; - uint8_t f_s_dadda_cska8_fa33_or0 = 0; - uint8_t f_s_dadda_cska8_and_6_6 = 0; - uint8_t f_s_dadda_cska8_nand_5_7 = 0; - uint8_t f_s_dadda_cska8_fa34_xor0 = 0; - uint8_t f_s_dadda_cska8_fa34_and0 = 0; - uint8_t f_s_dadda_cska8_fa34_xor1 = 0; - uint8_t f_s_dadda_cska8_fa34_and1 = 0; - uint8_t f_s_dadda_cska8_fa34_or0 = 0; - uint8_t f_s_dadda_cska8_nand_7_6 = 0; - uint8_t f_s_dadda_cska8_fa35_xor0 = 0; - uint8_t f_s_dadda_cska8_fa35_and0 = 0; - uint8_t f_s_dadda_cska8_fa35_xor1 = 0; - uint8_t f_s_dadda_cska8_fa35_and1 = 0; - uint8_t f_s_dadda_cska8_fa35_or0 = 0; - uint8_t f_s_dadda_cska8_and_0_0 = 0; - uint8_t f_s_dadda_cska8_and_1_0 = 0; - uint8_t f_s_dadda_cska8_and_0_2 = 0; - uint8_t f_s_dadda_cska8_nand_6_7 = 0; - uint8_t f_s_dadda_cska8_and_0_1 = 0; - uint8_t f_s_dadda_cska8_and_7_7 = 0; - uint8_t f_s_dadda_cska8_u_cska14_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_ha0_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_ha0_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_xor1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa0_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa0_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa0_xor1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa0_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa0_or0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_xor2 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa1_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa1_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa1_xor1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa1_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa1_or0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_xor3 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa2_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa2_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa2_xor1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa2_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa2_or0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_and_propagate00 = 0; - uint8_t f_s_dadda_cska8_u_cska14_and_propagate01 = 0; - uint8_t f_s_dadda_cska8_u_cska14_and_propagate02 = 0; - uint8_t f_s_dadda_cska8_u_cska14_mux2to10_not0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_mux2to10_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_xor4 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa3_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa3_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa3_xor1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa3_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa3_or0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_xor5 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa4_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa4_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa4_xor1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa4_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa4_or0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_xor6 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa5_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa5_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa5_xor1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa5_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa5_or0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_xor7 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa6_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa6_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa6_xor1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa6_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa6_or0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_and_propagate13 = 0; - uint8_t f_s_dadda_cska8_u_cska14_and_propagate14 = 0; - uint8_t f_s_dadda_cska8_u_cska14_and_propagate15 = 0; - uint8_t f_s_dadda_cska8_u_cska14_mux2to11_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_mux2to11_not0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_mux2to11_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_mux2to11_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_xor8 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa7_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa7_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa7_xor1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa7_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa7_or0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_xor9 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa8_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa8_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa8_xor1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa8_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa8_or0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_xor10 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa9_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa9_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa9_xor1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa9_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa9_or0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_xor11 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa10_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa10_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa10_xor1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa10_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa10_or0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_and_propagate26 = 0; - uint8_t f_s_dadda_cska8_u_cska14_and_propagate27 = 0; - uint8_t f_s_dadda_cska8_u_cska14_and_propagate28 = 0; - uint8_t f_s_dadda_cska8_u_cska14_mux2to12_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_mux2to12_not0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_mux2to12_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_mux2to12_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_xor12 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa11_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa11_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa11_xor1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa11_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa11_or0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_xor13 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa12_xor0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa12_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa12_xor1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa12_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_fa12_or0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_and_propagate39 = 0; - uint8_t f_s_dadda_cska8_u_cska14_mux2to13_and0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_mux2to13_not0 = 0; - uint8_t f_s_dadda_cska8_u_cska14_mux2to13_and1 = 0; - uint8_t f_s_dadda_cska8_u_cska14_mux2to13_xor0 = 0; - uint8_t f_s_dadda_cska8_xor0 = 0; - - f_s_dadda_cska8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cska8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cska8_ha0_xor0 = ((f_s_dadda_cska8_and_6_0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_5_1 >> 0) & 0x01); - f_s_dadda_cska8_ha0_and0 = ((f_s_dadda_cska8_and_6_0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_5_1 >> 0) & 0x01); - f_s_dadda_cska8_nand_7_0 = ~(((a >> 7) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_dadda_cska8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cska8_fa0_xor0 = ((f_s_dadda_cska8_ha0_and0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_nand_7_0 >> 0) & 0x01); - f_s_dadda_cska8_fa0_and0 = ((f_s_dadda_cska8_ha0_and0 >> 0) & 0x01) & ((f_s_dadda_cska8_nand_7_0 >> 0) & 0x01); - f_s_dadda_cska8_fa0_xor1 = ((f_s_dadda_cska8_fa0_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_6_1 >> 0) & 0x01); - f_s_dadda_cska8_fa0_and1 = ((f_s_dadda_cska8_fa0_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_6_1 >> 0) & 0x01); - f_s_dadda_cska8_fa0_or0 = ((f_s_dadda_cska8_fa0_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa0_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cska8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cska8_ha1_xor0 = ((f_s_dadda_cska8_and_5_2 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_4_3 >> 0) & 0x01); - f_s_dadda_cska8_ha1_and0 = ((f_s_dadda_cska8_and_5_2 >> 0) & 0x01) & ((f_s_dadda_cska8_and_4_3 >> 0) & 0x01); - f_s_dadda_cska8_fa1_xor0 = ((f_s_dadda_cska8_ha1_and0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa0_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa1_and0 = ((f_s_dadda_cska8_ha1_and0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa0_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa1_xor1 = ~(((f_s_dadda_cska8_fa1_xor0 >> 0) & 0x01)) & 0x01; - f_s_dadda_cska8_fa1_or0 = ((f_s_dadda_cska8_fa1_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa1_xor0 >> 0) & 0x01); - f_s_dadda_cska8_nand_7_1 = ~(((a >> 7) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_dadda_cska8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cska8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cska8_fa2_xor0 = ((f_s_dadda_cska8_nand_7_1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_6_2 >> 0) & 0x01); - f_s_dadda_cska8_fa2_and0 = ((f_s_dadda_cska8_nand_7_1 >> 0) & 0x01) & ((f_s_dadda_cska8_and_6_2 >> 0) & 0x01); - f_s_dadda_cska8_fa2_xor1 = ((f_s_dadda_cska8_fa2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_5_3 >> 0) & 0x01); - f_s_dadda_cska8_fa2_and1 = ((f_s_dadda_cska8_fa2_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_5_3 >> 0) & 0x01); - f_s_dadda_cska8_fa2_or0 = ((f_s_dadda_cska8_fa2_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa2_and1 >> 0) & 0x01); - f_s_dadda_cska8_nand_7_2 = ~(((a >> 7) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_dadda_cska8_fa3_xor0 = ((f_s_dadda_cska8_fa2_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa1_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa3_and0 = ((f_s_dadda_cska8_fa2_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa1_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa3_xor1 = ((f_s_dadda_cska8_fa3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_nand_7_2 >> 0) & 0x01); - f_s_dadda_cska8_fa3_and1 = ((f_s_dadda_cska8_fa3_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_nand_7_2 >> 0) & 0x01); - f_s_dadda_cska8_fa3_or0 = ((f_s_dadda_cska8_fa3_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa3_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cska8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cska8_ha2_xor0 = ((f_s_dadda_cska8_and_3_0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_2_1 >> 0) & 0x01); - f_s_dadda_cska8_ha2_and0 = ((f_s_dadda_cska8_and_3_0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_2_1 >> 0) & 0x01); - f_s_dadda_cska8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cska8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cska8_fa4_xor0 = ((f_s_dadda_cska8_ha2_and0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_4_0 >> 0) & 0x01); - f_s_dadda_cska8_fa4_and0 = ((f_s_dadda_cska8_ha2_and0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_4_0 >> 0) & 0x01); - f_s_dadda_cska8_fa4_xor1 = ((f_s_dadda_cska8_fa4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_3_1 >> 0) & 0x01); - f_s_dadda_cska8_fa4_and1 = ((f_s_dadda_cska8_fa4_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_3_1 >> 0) & 0x01); - f_s_dadda_cska8_fa4_or0 = ((f_s_dadda_cska8_fa4_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa4_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cska8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cska8_ha3_xor0 = ((f_s_dadda_cska8_and_2_2 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_1_3 >> 0) & 0x01); - f_s_dadda_cska8_ha3_and0 = ((f_s_dadda_cska8_and_2_2 >> 0) & 0x01) & ((f_s_dadda_cska8_and_1_3 >> 0) & 0x01); - f_s_dadda_cska8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cska8_fa5_xor0 = ((f_s_dadda_cska8_ha3_and0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa4_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa5_and0 = ((f_s_dadda_cska8_ha3_and0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa4_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa5_xor1 = ((f_s_dadda_cska8_fa5_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_5_0 >> 0) & 0x01); - f_s_dadda_cska8_fa5_and1 = ((f_s_dadda_cska8_fa5_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_5_0 >> 0) & 0x01); - f_s_dadda_cska8_fa5_or0 = ((f_s_dadda_cska8_fa5_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa5_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cska8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cska8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cska8_fa6_xor0 = ((f_s_dadda_cska8_and_4_1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_3_2 >> 0) & 0x01); - f_s_dadda_cska8_fa6_and0 = ((f_s_dadda_cska8_and_4_1 >> 0) & 0x01) & ((f_s_dadda_cska8_and_3_2 >> 0) & 0x01); - f_s_dadda_cska8_fa6_xor1 = ((f_s_dadda_cska8_fa6_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_2_3 >> 0) & 0x01); - f_s_dadda_cska8_fa6_and1 = ((f_s_dadda_cska8_fa6_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_2_3 >> 0) & 0x01); - f_s_dadda_cska8_fa6_or0 = ((f_s_dadda_cska8_fa6_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa6_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_cska8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_cska8_ha4_xor0 = ((f_s_dadda_cska8_and_1_4 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_0_5 >> 0) & 0x01); - f_s_dadda_cska8_ha4_and0 = ((f_s_dadda_cska8_and_1_4 >> 0) & 0x01) & ((f_s_dadda_cska8_and_0_5 >> 0) & 0x01); - f_s_dadda_cska8_fa7_xor0 = ((f_s_dadda_cska8_ha4_and0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa6_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa7_and0 = ((f_s_dadda_cska8_ha4_and0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa6_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa7_xor1 = ((f_s_dadda_cska8_fa7_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa5_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa7_and1 = ((f_s_dadda_cska8_fa7_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa5_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa7_or0 = ((f_s_dadda_cska8_fa7_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa7_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cska8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cska8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_cska8_fa8_xor0 = ((f_s_dadda_cska8_and_4_2 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_3_3 >> 0) & 0x01); - f_s_dadda_cska8_fa8_and0 = ((f_s_dadda_cska8_and_4_2 >> 0) & 0x01) & ((f_s_dadda_cska8_and_3_3 >> 0) & 0x01); - f_s_dadda_cska8_fa8_xor1 = ((f_s_dadda_cska8_fa8_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_2_4 >> 0) & 0x01); - f_s_dadda_cska8_fa8_and1 = ((f_s_dadda_cska8_fa8_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_2_4 >> 0) & 0x01); - f_s_dadda_cska8_fa8_or0 = ((f_s_dadda_cska8_fa8_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa8_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_cska8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_cska8_fa9_xor0 = ((f_s_dadda_cska8_and_1_5 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_0_6 >> 0) & 0x01); - f_s_dadda_cska8_fa9_and0 = ((f_s_dadda_cska8_and_1_5 >> 0) & 0x01) & ((f_s_dadda_cska8_and_0_6 >> 0) & 0x01); - f_s_dadda_cska8_fa9_xor1 = ((f_s_dadda_cska8_fa9_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_ha0_xor0 >> 0) & 0x01); - f_s_dadda_cska8_fa9_and1 = ((f_s_dadda_cska8_fa9_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_ha0_xor0 >> 0) & 0x01); - f_s_dadda_cska8_fa9_or0 = ((f_s_dadda_cska8_fa9_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa9_and1 >> 0) & 0x01); - f_s_dadda_cska8_fa10_xor0 = ((f_s_dadda_cska8_fa9_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa8_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa10_and0 = ((f_s_dadda_cska8_fa9_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa8_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa10_xor1 = ((f_s_dadda_cska8_fa10_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa7_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa10_and1 = ((f_s_dadda_cska8_fa10_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa7_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa10_or0 = ((f_s_dadda_cska8_fa10_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa10_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_cska8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_cska8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_cska8_fa11_xor0 = ((f_s_dadda_cska8_and_3_4 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_2_5 >> 0) & 0x01); - f_s_dadda_cska8_fa11_and0 = ((f_s_dadda_cska8_and_3_4 >> 0) & 0x01) & ((f_s_dadda_cska8_and_2_5 >> 0) & 0x01); - f_s_dadda_cska8_fa11_xor1 = ((f_s_dadda_cska8_fa11_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_1_6 >> 0) & 0x01); - f_s_dadda_cska8_fa11_and1 = ((f_s_dadda_cska8_fa11_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_1_6 >> 0) & 0x01); - f_s_dadda_cska8_fa11_or0 = ((f_s_dadda_cska8_fa11_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa11_and1 >> 0) & 0x01); - f_s_dadda_cska8_nand_0_7 = ~(((a >> 0) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_cska8_fa12_xor0 = ((f_s_dadda_cska8_nand_0_7 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa0_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa12_and0 = ((f_s_dadda_cska8_nand_0_7 >> 0) & 0x01) & ((f_s_dadda_cska8_fa0_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa12_xor1 = ((f_s_dadda_cska8_fa12_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_ha1_xor0 >> 0) & 0x01); - f_s_dadda_cska8_fa12_and1 = ((f_s_dadda_cska8_fa12_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_ha1_xor0 >> 0) & 0x01); - f_s_dadda_cska8_fa12_or0 = ((f_s_dadda_cska8_fa12_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa12_and1 >> 0) & 0x01); - f_s_dadda_cska8_fa13_xor0 = ((f_s_dadda_cska8_fa12_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa11_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa13_and0 = ((f_s_dadda_cska8_fa12_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa11_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa13_xor1 = ((f_s_dadda_cska8_fa13_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa10_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa13_and1 = ((f_s_dadda_cska8_fa13_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa10_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa13_or0 = ((f_s_dadda_cska8_fa13_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa13_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_cska8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_cska8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_cska8_fa14_xor0 = ((f_s_dadda_cska8_and_4_4 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_3_5 >> 0) & 0x01); - f_s_dadda_cska8_fa14_and0 = ((f_s_dadda_cska8_and_4_4 >> 0) & 0x01) & ((f_s_dadda_cska8_and_3_5 >> 0) & 0x01); - f_s_dadda_cska8_fa14_xor1 = ((f_s_dadda_cska8_fa14_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_2_6 >> 0) & 0x01); - f_s_dadda_cska8_fa14_and1 = ((f_s_dadda_cska8_fa14_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_2_6 >> 0) & 0x01); - f_s_dadda_cska8_fa14_or0 = ((f_s_dadda_cska8_fa14_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa14_and1 >> 0) & 0x01); - f_s_dadda_cska8_nand_1_7 = ~(((a >> 1) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_cska8_fa15_xor0 = ((f_s_dadda_cska8_nand_1_7 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa1_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa15_and0 = ((f_s_dadda_cska8_nand_1_7 >> 0) & 0x01) & ((f_s_dadda_cska8_fa1_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa15_xor1 = ((f_s_dadda_cska8_fa15_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa2_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa15_and1 = ((f_s_dadda_cska8_fa15_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa2_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa15_or0 = ((f_s_dadda_cska8_fa15_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa15_and1 >> 0) & 0x01); - f_s_dadda_cska8_fa16_xor0 = ((f_s_dadda_cska8_fa15_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa14_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa16_and0 = ((f_s_dadda_cska8_fa15_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa14_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa16_xor1 = ((f_s_dadda_cska8_fa16_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa13_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa16_and1 = ((f_s_dadda_cska8_fa16_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa13_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa16_or0 = ((f_s_dadda_cska8_fa16_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa16_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cska8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_cska8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_cska8_fa17_xor0 = ((f_s_dadda_cska8_and_6_3 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_5_4 >> 0) & 0x01); - f_s_dadda_cska8_fa17_and0 = ((f_s_dadda_cska8_and_6_3 >> 0) & 0x01) & ((f_s_dadda_cska8_and_5_4 >> 0) & 0x01); - f_s_dadda_cska8_fa17_xor1 = ((f_s_dadda_cska8_fa17_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_4_5 >> 0) & 0x01); - f_s_dadda_cska8_fa17_and1 = ((f_s_dadda_cska8_fa17_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_4_5 >> 0) & 0x01); - f_s_dadda_cska8_fa17_or0 = ((f_s_dadda_cska8_fa17_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa17_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_cska8_nand_2_7 = ~(((a >> 2) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_cska8_fa18_xor0 = ((f_s_dadda_cska8_and_3_6 >> 0) & 0x01) ^ ((f_s_dadda_cska8_nand_2_7 >> 0) & 0x01); - f_s_dadda_cska8_fa18_and0 = ((f_s_dadda_cska8_and_3_6 >> 0) & 0x01) & ((f_s_dadda_cska8_nand_2_7 >> 0) & 0x01); - f_s_dadda_cska8_fa18_xor1 = ((f_s_dadda_cska8_fa18_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa3_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa18_and1 = ((f_s_dadda_cska8_fa18_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa3_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa18_or0 = ((f_s_dadda_cska8_fa18_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa18_and1 >> 0) & 0x01); - f_s_dadda_cska8_fa19_xor0 = ((f_s_dadda_cska8_fa18_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa17_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa19_and0 = ((f_s_dadda_cska8_fa18_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa17_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa19_xor1 = ((f_s_dadda_cska8_fa19_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa16_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa19_and1 = ((f_s_dadda_cska8_fa19_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa16_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa19_or0 = ((f_s_dadda_cska8_fa19_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa19_and1 >> 0) & 0x01); - f_s_dadda_cska8_nand_7_3 = ~(((a >> 7) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_cska8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_cska8_fa20_xor0 = ((f_s_dadda_cska8_fa3_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_nand_7_3 >> 0) & 0x01); - f_s_dadda_cska8_fa20_and0 = ((f_s_dadda_cska8_fa3_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_nand_7_3 >> 0) & 0x01); - f_s_dadda_cska8_fa20_xor1 = ((f_s_dadda_cska8_fa20_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_6_4 >> 0) & 0x01); - f_s_dadda_cska8_fa20_and1 = ((f_s_dadda_cska8_fa20_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_6_4 >> 0) & 0x01); - f_s_dadda_cska8_fa20_or0 = ((f_s_dadda_cska8_fa20_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa20_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_cska8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_cska8_nand_3_7 = ~(((a >> 3) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_cska8_fa21_xor0 = ((f_s_dadda_cska8_and_5_5 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_4_6 >> 0) & 0x01); - f_s_dadda_cska8_fa21_and0 = ((f_s_dadda_cska8_and_5_5 >> 0) & 0x01) & ((f_s_dadda_cska8_and_4_6 >> 0) & 0x01); - f_s_dadda_cska8_fa21_xor1 = ((f_s_dadda_cska8_fa21_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_nand_3_7 >> 0) & 0x01); - f_s_dadda_cska8_fa21_and1 = ((f_s_dadda_cska8_fa21_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_nand_3_7 >> 0) & 0x01); - f_s_dadda_cska8_fa21_or0 = ((f_s_dadda_cska8_fa21_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa21_and1 >> 0) & 0x01); - f_s_dadda_cska8_fa22_xor0 = ((f_s_dadda_cska8_fa21_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa20_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa22_and0 = ((f_s_dadda_cska8_fa21_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa20_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa22_xor1 = ((f_s_dadda_cska8_fa22_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa19_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa22_and1 = ((f_s_dadda_cska8_fa22_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa19_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa22_or0 = ((f_s_dadda_cska8_fa22_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa22_and1 >> 0) & 0x01); - f_s_dadda_cska8_nand_7_4 = ~(((a >> 7) & 0x01) & ((b >> 4) & 0x01)) & 0x01; - f_s_dadda_cska8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_cska8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_cska8_fa23_xor0 = ((f_s_dadda_cska8_nand_7_4 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_6_5 >> 0) & 0x01); - f_s_dadda_cska8_fa23_and0 = ((f_s_dadda_cska8_nand_7_4 >> 0) & 0x01) & ((f_s_dadda_cska8_and_6_5 >> 0) & 0x01); - f_s_dadda_cska8_fa23_xor1 = ((f_s_dadda_cska8_fa23_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_5_6 >> 0) & 0x01); - f_s_dadda_cska8_fa23_and1 = ((f_s_dadda_cska8_fa23_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_5_6 >> 0) & 0x01); - f_s_dadda_cska8_fa23_or0 = ((f_s_dadda_cska8_fa23_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa23_and1 >> 0) & 0x01); - f_s_dadda_cska8_nand_7_5 = ~(((a >> 7) & 0x01) & ((b >> 5) & 0x01)) & 0x01; - f_s_dadda_cska8_fa24_xor0 = ((f_s_dadda_cska8_fa23_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa22_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa24_and0 = ((f_s_dadda_cska8_fa23_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa22_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa24_xor1 = ((f_s_dadda_cska8_fa24_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_nand_7_5 >> 0) & 0x01); - f_s_dadda_cska8_fa24_and1 = ((f_s_dadda_cska8_fa24_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_nand_7_5 >> 0) & 0x01); - f_s_dadda_cska8_fa24_or0 = ((f_s_dadda_cska8_fa24_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa24_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cska8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cska8_ha5_xor0 = ((f_s_dadda_cska8_and_2_0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_1_1 >> 0) & 0x01); - f_s_dadda_cska8_ha5_and0 = ((f_s_dadda_cska8_and_2_0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_1_1 >> 0) & 0x01); - f_s_dadda_cska8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cska8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_cska8_fa25_xor0 = ((f_s_dadda_cska8_ha5_and0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_1_2 >> 0) & 0x01); - f_s_dadda_cska8_fa25_and0 = ((f_s_dadda_cska8_ha5_and0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_1_2 >> 0) & 0x01); - f_s_dadda_cska8_fa25_xor1 = ((f_s_dadda_cska8_fa25_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_0_3 >> 0) & 0x01); - f_s_dadda_cska8_fa25_and1 = ((f_s_dadda_cska8_fa25_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_0_3 >> 0) & 0x01); - f_s_dadda_cska8_fa25_or0 = ((f_s_dadda_cska8_fa25_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa25_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_cska8_fa26_xor0 = ((f_s_dadda_cska8_fa25_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_0_4 >> 0) & 0x01); - f_s_dadda_cska8_fa26_and0 = ((f_s_dadda_cska8_fa25_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_0_4 >> 0) & 0x01); - f_s_dadda_cska8_fa26_xor1 = ((f_s_dadda_cska8_fa26_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa4_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa26_and1 = ((f_s_dadda_cska8_fa26_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa4_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa26_or0 = ((f_s_dadda_cska8_fa26_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa26_and1 >> 0) & 0x01); - f_s_dadda_cska8_fa27_xor0 = ((f_s_dadda_cska8_fa26_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa5_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa27_and0 = ((f_s_dadda_cska8_fa26_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa5_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa27_xor1 = ((f_s_dadda_cska8_fa27_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa6_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa27_and1 = ((f_s_dadda_cska8_fa27_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa6_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa27_or0 = ((f_s_dadda_cska8_fa27_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa27_and1 >> 0) & 0x01); - f_s_dadda_cska8_fa28_xor0 = ((f_s_dadda_cska8_fa27_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa7_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa28_and0 = ((f_s_dadda_cska8_fa27_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa7_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa28_xor1 = ((f_s_dadda_cska8_fa28_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa8_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa28_and1 = ((f_s_dadda_cska8_fa28_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa8_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa28_or0 = ((f_s_dadda_cska8_fa28_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa28_and1 >> 0) & 0x01); - f_s_dadda_cska8_fa29_xor0 = ((f_s_dadda_cska8_fa28_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa10_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa29_and0 = ((f_s_dadda_cska8_fa28_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa10_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa29_xor1 = ((f_s_dadda_cska8_fa29_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa11_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa29_and1 = ((f_s_dadda_cska8_fa29_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa11_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa29_or0 = ((f_s_dadda_cska8_fa29_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa29_and1 >> 0) & 0x01); - f_s_dadda_cska8_fa30_xor0 = ((f_s_dadda_cska8_fa29_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa13_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa30_and0 = ((f_s_dadda_cska8_fa29_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa13_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa30_xor1 = ((f_s_dadda_cska8_fa30_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa14_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa30_and1 = ((f_s_dadda_cska8_fa30_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa14_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa30_or0 = ((f_s_dadda_cska8_fa30_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa30_and1 >> 0) & 0x01); - f_s_dadda_cska8_fa31_xor0 = ((f_s_dadda_cska8_fa30_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa16_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa31_and0 = ((f_s_dadda_cska8_fa30_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa16_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa31_xor1 = ((f_s_dadda_cska8_fa31_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa17_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa31_and1 = ((f_s_dadda_cska8_fa31_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa17_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa31_or0 = ((f_s_dadda_cska8_fa31_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa31_and1 >> 0) & 0x01); - f_s_dadda_cska8_fa32_xor0 = ((f_s_dadda_cska8_fa31_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa19_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa32_and0 = ((f_s_dadda_cska8_fa31_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa19_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa32_xor1 = ((f_s_dadda_cska8_fa32_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa20_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa32_and1 = ((f_s_dadda_cska8_fa32_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa20_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa32_or0 = ((f_s_dadda_cska8_fa32_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa32_and1 >> 0) & 0x01); - f_s_dadda_cska8_nand_4_7 = ~(((a >> 4) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_cska8_fa33_xor0 = ((f_s_dadda_cska8_fa32_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_nand_4_7 >> 0) & 0x01); - f_s_dadda_cska8_fa33_and0 = ((f_s_dadda_cska8_fa32_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_nand_4_7 >> 0) & 0x01); - f_s_dadda_cska8_fa33_xor1 = ((f_s_dadda_cska8_fa33_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa22_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa33_and1 = ((f_s_dadda_cska8_fa33_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa22_xor1 >> 0) & 0x01); - f_s_dadda_cska8_fa33_or0 = ((f_s_dadda_cska8_fa33_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa33_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_cska8_nand_5_7 = ~(((a >> 5) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_cska8_fa34_xor0 = ((f_s_dadda_cska8_fa33_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_6_6 >> 0) & 0x01); - f_s_dadda_cska8_fa34_and0 = ((f_s_dadda_cska8_fa33_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_6_6 >> 0) & 0x01); - f_s_dadda_cska8_fa34_xor1 = ((f_s_dadda_cska8_fa34_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_nand_5_7 >> 0) & 0x01); - f_s_dadda_cska8_fa34_and1 = ((f_s_dadda_cska8_fa34_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_nand_5_7 >> 0) & 0x01); - f_s_dadda_cska8_fa34_or0 = ((f_s_dadda_cska8_fa34_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa34_and1 >> 0) & 0x01); - f_s_dadda_cska8_nand_7_6 = ~(((a >> 7) & 0x01) & ((b >> 6) & 0x01)) & 0x01; - f_s_dadda_cska8_fa35_xor0 = ((f_s_dadda_cska8_fa34_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa24_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa35_and0 = ((f_s_dadda_cska8_fa34_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa24_or0 >> 0) & 0x01); - f_s_dadda_cska8_fa35_xor1 = ((f_s_dadda_cska8_fa35_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_nand_7_6 >> 0) & 0x01); - f_s_dadda_cska8_fa35_and1 = ((f_s_dadda_cska8_fa35_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_nand_7_6 >> 0) & 0x01); - f_s_dadda_cska8_fa35_or0 = ((f_s_dadda_cska8_fa35_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_fa35_and1 >> 0) & 0x01); - f_s_dadda_cska8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cska8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_cska8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_cska8_nand_6_7 = ~(((a >> 6) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_cska8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_cska8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_s_dadda_cska8_u_cska14_xor0 = ((f_s_dadda_cska8_and_1_0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_0_1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_ha0_xor0 = ((f_s_dadda_cska8_and_1_0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_0_1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_ha0_and0 = ((f_s_dadda_cska8_and_1_0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_0_1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_xor1 = ((f_s_dadda_cska8_and_0_2 >> 0) & 0x01) ^ ((f_s_dadda_cska8_ha5_xor0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa0_xor0 = ((f_s_dadda_cska8_and_0_2 >> 0) & 0x01) ^ ((f_s_dadda_cska8_ha5_xor0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa0_and0 = ((f_s_dadda_cska8_and_0_2 >> 0) & 0x01) & ((f_s_dadda_cska8_ha5_xor0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa0_xor1 = ((f_s_dadda_cska8_u_cska14_fa0_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_ha0_and0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa0_and1 = ((f_s_dadda_cska8_u_cska14_fa0_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_ha0_and0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa0_or0 = ((f_s_dadda_cska8_u_cska14_fa0_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_u_cska14_fa0_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_xor2 = ((f_s_dadda_cska8_ha2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa25_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa1_xor0 = ((f_s_dadda_cska8_ha2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa25_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa1_and0 = ((f_s_dadda_cska8_ha2_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa25_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa1_xor1 = ((f_s_dadda_cska8_u_cska14_fa1_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_fa0_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa1_and1 = ((f_s_dadda_cska8_u_cska14_fa1_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_fa0_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa1_or0 = ((f_s_dadda_cska8_u_cska14_fa1_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_u_cska14_fa1_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_xor3 = ((f_s_dadda_cska8_ha3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa26_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa2_xor0 = ((f_s_dadda_cska8_ha3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa26_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa2_and0 = ((f_s_dadda_cska8_ha3_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa26_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa2_xor1 = ((f_s_dadda_cska8_u_cska14_fa2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_fa1_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa2_and1 = ((f_s_dadda_cska8_u_cska14_fa2_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_fa1_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa2_or0 = ((f_s_dadda_cska8_u_cska14_fa2_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_u_cska14_fa2_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_and_propagate00 = ((f_s_dadda_cska8_u_cska14_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_xor2 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_and_propagate01 = ((f_s_dadda_cska8_u_cska14_xor1 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_xor3 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_and_propagate02 = ((f_s_dadda_cska8_u_cska14_and_propagate00 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_and_propagate01 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_mux2to10_not0 = ~(((f_s_dadda_cska8_u_cska14_and_propagate02 >> 0) & 0x01)) & 0x01; - f_s_dadda_cska8_u_cska14_mux2to10_and1 = ((f_s_dadda_cska8_u_cska14_fa2_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_mux2to10_not0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_xor4 = ((f_s_dadda_cska8_ha4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa27_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa3_xor0 = ((f_s_dadda_cska8_ha4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa27_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa3_and0 = ((f_s_dadda_cska8_ha4_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_fa27_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa3_xor1 = ((f_s_dadda_cska8_u_cska14_fa3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_mux2to10_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa3_and1 = ((f_s_dadda_cska8_u_cska14_fa3_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_mux2to10_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa3_or0 = ((f_s_dadda_cska8_u_cska14_fa3_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_u_cska14_fa3_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_xor5 = ((f_s_dadda_cska8_fa9_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa28_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa4_xor0 = ((f_s_dadda_cska8_fa9_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa28_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa4_and0 = ((f_s_dadda_cska8_fa9_xor1 >> 0) & 0x01) & ((f_s_dadda_cska8_fa28_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa4_xor1 = ((f_s_dadda_cska8_u_cska14_fa4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_fa3_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa4_and1 = ((f_s_dadda_cska8_u_cska14_fa4_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_fa3_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa4_or0 = ((f_s_dadda_cska8_u_cska14_fa4_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_u_cska14_fa4_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_xor6 = ((f_s_dadda_cska8_fa12_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa29_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa5_xor0 = ((f_s_dadda_cska8_fa12_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa29_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa5_and0 = ((f_s_dadda_cska8_fa12_xor1 >> 0) & 0x01) & ((f_s_dadda_cska8_fa29_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa5_xor1 = ((f_s_dadda_cska8_u_cska14_fa5_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_fa4_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa5_and1 = ((f_s_dadda_cska8_u_cska14_fa5_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_fa4_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa5_or0 = ((f_s_dadda_cska8_u_cska14_fa5_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_u_cska14_fa5_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_xor7 = ((f_s_dadda_cska8_fa15_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa30_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa6_xor0 = ((f_s_dadda_cska8_fa15_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa30_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa6_and0 = ((f_s_dadda_cska8_fa15_xor1 >> 0) & 0x01) & ((f_s_dadda_cska8_fa30_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa6_xor1 = ((f_s_dadda_cska8_u_cska14_fa6_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_fa5_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa6_and1 = ((f_s_dadda_cska8_u_cska14_fa6_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_fa5_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa6_or0 = ((f_s_dadda_cska8_u_cska14_fa6_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_u_cska14_fa6_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_and_propagate13 = ((f_s_dadda_cska8_u_cska14_xor4 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_xor6 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_and_propagate14 = ((f_s_dadda_cska8_u_cska14_xor5 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_xor7 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_and_propagate15 = ((f_s_dadda_cska8_u_cska14_and_propagate13 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_and_propagate14 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_mux2to11_and0 = ((f_s_dadda_cska8_u_cska14_mux2to10_and1 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_and_propagate15 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_mux2to11_not0 = ~(((f_s_dadda_cska8_u_cska14_and_propagate15 >> 0) & 0x01)) & 0x01; - f_s_dadda_cska8_u_cska14_mux2to11_and1 = ((f_s_dadda_cska8_u_cska14_fa6_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_mux2to11_not0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_mux2to11_xor0 = ((f_s_dadda_cska8_u_cska14_mux2to11_and0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_mux2to11_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_xor8 = ((f_s_dadda_cska8_fa18_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa31_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa7_xor0 = ((f_s_dadda_cska8_fa18_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa31_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa7_and0 = ((f_s_dadda_cska8_fa18_xor1 >> 0) & 0x01) & ((f_s_dadda_cska8_fa31_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa7_xor1 = ((f_s_dadda_cska8_u_cska14_fa7_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_mux2to11_xor0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa7_and1 = ((f_s_dadda_cska8_u_cska14_fa7_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_mux2to11_xor0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa7_or0 = ((f_s_dadda_cska8_u_cska14_fa7_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_u_cska14_fa7_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_xor9 = ((f_s_dadda_cska8_fa21_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa32_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa8_xor0 = ((f_s_dadda_cska8_fa21_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa32_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa8_and0 = ((f_s_dadda_cska8_fa21_xor1 >> 0) & 0x01) & ((f_s_dadda_cska8_fa32_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa8_xor1 = ((f_s_dadda_cska8_u_cska14_fa8_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_fa7_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa8_and1 = ((f_s_dadda_cska8_u_cska14_fa8_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_fa7_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa8_or0 = ((f_s_dadda_cska8_u_cska14_fa8_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_u_cska14_fa8_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_xor10 = ((f_s_dadda_cska8_fa23_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa33_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa9_xor0 = ((f_s_dadda_cska8_fa23_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa33_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa9_and0 = ((f_s_dadda_cska8_fa23_xor1 >> 0) & 0x01) & ((f_s_dadda_cska8_fa33_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa9_xor1 = ((f_s_dadda_cska8_u_cska14_fa9_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_fa8_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa9_and1 = ((f_s_dadda_cska8_u_cska14_fa9_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_fa8_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa9_or0 = ((f_s_dadda_cska8_u_cska14_fa9_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_u_cska14_fa9_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_xor11 = ((f_s_dadda_cska8_fa24_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa34_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa10_xor0 = ((f_s_dadda_cska8_fa24_xor1 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa34_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa10_and0 = ((f_s_dadda_cska8_fa24_xor1 >> 0) & 0x01) & ((f_s_dadda_cska8_fa34_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa10_xor1 = ((f_s_dadda_cska8_u_cska14_fa10_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_fa9_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa10_and1 = ((f_s_dadda_cska8_u_cska14_fa10_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_fa9_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa10_or0 = ((f_s_dadda_cska8_u_cska14_fa10_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_u_cska14_fa10_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_and_propagate26 = ((f_s_dadda_cska8_u_cska14_xor8 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_xor10 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_and_propagate27 = ((f_s_dadda_cska8_u_cska14_xor9 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_xor11 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_and_propagate28 = ((f_s_dadda_cska8_u_cska14_and_propagate26 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_and_propagate27 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_mux2to12_and0 = ((f_s_dadda_cska8_u_cska14_mux2to11_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_and_propagate28 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_mux2to12_not0 = ~(((f_s_dadda_cska8_u_cska14_and_propagate28 >> 0) & 0x01)) & 0x01; - f_s_dadda_cska8_u_cska14_mux2to12_and1 = ((f_s_dadda_cska8_u_cska14_fa10_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_mux2to12_not0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_mux2to12_xor0 = ((f_s_dadda_cska8_u_cska14_mux2to12_and0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_mux2to12_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_xor12 = ((f_s_dadda_cska8_nand_6_7 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa35_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa11_xor0 = ((f_s_dadda_cska8_nand_6_7 >> 0) & 0x01) ^ ((f_s_dadda_cska8_fa35_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa11_and0 = ((f_s_dadda_cska8_nand_6_7 >> 0) & 0x01) & ((f_s_dadda_cska8_fa35_xor1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa11_xor1 = ((f_s_dadda_cska8_u_cska14_fa11_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_mux2to12_xor0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa11_and1 = ((f_s_dadda_cska8_u_cska14_fa11_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_mux2to12_xor0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa11_or0 = ((f_s_dadda_cska8_u_cska14_fa11_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_u_cska14_fa11_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_xor13 = ((f_s_dadda_cska8_fa35_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_7_7 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa12_xor0 = ((f_s_dadda_cska8_fa35_or0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_and_7_7 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa12_and0 = ((f_s_dadda_cska8_fa35_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_and_7_7 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa12_xor1 = ((f_s_dadda_cska8_u_cska14_fa12_xor0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_fa11_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa12_and1 = ((f_s_dadda_cska8_u_cska14_fa12_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_fa11_or0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_fa12_or0 = ((f_s_dadda_cska8_u_cska14_fa12_and0 >> 0) & 0x01) | ((f_s_dadda_cska8_u_cska14_fa12_and1 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_and_propagate39 = ((f_s_dadda_cska8_u_cska14_xor12 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_xor13 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_mux2to13_and0 = ((f_s_dadda_cska8_u_cska14_mux2to12_xor0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_and_propagate39 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_mux2to13_not0 = ~(((f_s_dadda_cska8_u_cska14_and_propagate39 >> 0) & 0x01)) & 0x01; - f_s_dadda_cska8_u_cska14_mux2to13_and1 = ((f_s_dadda_cska8_u_cska14_fa12_or0 >> 0) & 0x01) & ((f_s_dadda_cska8_u_cska14_mux2to13_not0 >> 0) & 0x01); - f_s_dadda_cska8_u_cska14_mux2to13_xor0 = ((f_s_dadda_cska8_u_cska14_mux2to13_and0 >> 0) & 0x01) ^ ((f_s_dadda_cska8_u_cska14_mux2to13_and1 >> 0) & 0x01); - f_s_dadda_cska8_xor0 = ~(((f_s_dadda_cska8_u_cska14_mux2to13_xor0 >> 0) & 0x01)) & 0x01; - - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_and_0_0 >> 0) & 0x01) << 0; - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_u_cska14_ha0_xor0 >> 0) & 0x01) << 1; - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_u_cska14_fa0_xor1 >> 0) & 0x01) << 2; - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_u_cska14_fa1_xor1 >> 0) & 0x01) << 3; - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_u_cska14_fa2_xor1 >> 0) & 0x01) << 4; - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_u_cska14_fa3_xor1 >> 0) & 0x01) << 5; - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_u_cska14_fa4_xor1 >> 0) & 0x01) << 6; - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_u_cska14_fa5_xor1 >> 0) & 0x01) << 7; - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_u_cska14_fa6_xor1 >> 0) & 0x01) << 8; - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_u_cska14_fa7_xor1 >> 0) & 0x01) << 9; - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_u_cska14_fa8_xor1 >> 0) & 0x01) << 10; - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_u_cska14_fa9_xor1 >> 0) & 0x01) << 11; - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_u_cska14_fa10_xor1 >> 0) & 0x01) << 12; - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_u_cska14_fa11_xor1 >> 0) & 0x01) << 13; - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_u_cska14_fa12_xor1 >> 0) & 0x01) << 14; - f_s_dadda_cska8_out |= ((f_s_dadda_cska8_xor0 >> 0) & 0x01) << 15; - return f_s_dadda_cska8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)f_s_dadda_cska8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_pg_rca4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_pg_rca4.c deleted file mode 100644 index 0d5c071..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_pg_rca4.c +++ /dev/null @@ -1,169 +0,0 @@ -#include -#include - -uint64_t f_s_dadda_pg_rca4(uint64_t a, uint64_t b){ - uint8_t f_s_dadda_pg_rca4_out = 0; - uint8_t f_s_dadda_pg_rca4_nand_3_0 = 0; - uint8_t f_s_dadda_pg_rca4_and_2_1 = 0; - uint8_t f_s_dadda_pg_rca4_ha0_xor0 = 0; - uint8_t f_s_dadda_pg_rca4_ha0_and0 = 0; - uint8_t f_s_dadda_pg_rca4_nand_3_1 = 0; - uint8_t f_s_dadda_pg_rca4_fa0_xor0 = 0; - uint8_t f_s_dadda_pg_rca4_fa0_xor1 = 0; - uint8_t f_s_dadda_pg_rca4_fa0_and1 = 0; - uint8_t f_s_dadda_pg_rca4_fa0_or0 = 0; - uint8_t f_s_dadda_pg_rca4_and_2_0 = 0; - uint8_t f_s_dadda_pg_rca4_and_1_1 = 0; - uint8_t f_s_dadda_pg_rca4_ha1_xor0 = 0; - uint8_t f_s_dadda_pg_rca4_ha1_and0 = 0; - uint8_t f_s_dadda_pg_rca4_and_1_2 = 0; - uint8_t f_s_dadda_pg_rca4_nand_0_3 = 0; - uint8_t f_s_dadda_pg_rca4_fa1_xor0 = 0; - uint8_t f_s_dadda_pg_rca4_fa1_and0 = 0; - uint8_t f_s_dadda_pg_rca4_fa1_xor1 = 0; - uint8_t f_s_dadda_pg_rca4_fa1_and1 = 0; - uint8_t f_s_dadda_pg_rca4_fa1_or0 = 0; - uint8_t f_s_dadda_pg_rca4_and_2_2 = 0; - uint8_t f_s_dadda_pg_rca4_nand_1_3 = 0; - uint8_t f_s_dadda_pg_rca4_fa2_xor0 = 0; - uint8_t f_s_dadda_pg_rca4_fa2_and0 = 0; - uint8_t f_s_dadda_pg_rca4_fa2_xor1 = 0; - uint8_t f_s_dadda_pg_rca4_fa2_and1 = 0; - uint8_t f_s_dadda_pg_rca4_fa2_or0 = 0; - uint8_t f_s_dadda_pg_rca4_nand_3_2 = 0; - uint8_t f_s_dadda_pg_rca4_fa3_xor0 = 0; - uint8_t f_s_dadda_pg_rca4_fa3_and0 = 0; - uint8_t f_s_dadda_pg_rca4_fa3_xor1 = 0; - uint8_t f_s_dadda_pg_rca4_fa3_and1 = 0; - uint8_t f_s_dadda_pg_rca4_fa3_or0 = 0; - uint8_t f_s_dadda_pg_rca4_and_0_0 = 0; - uint8_t f_s_dadda_pg_rca4_and_1_0 = 0; - uint8_t f_s_dadda_pg_rca4_and_0_2 = 0; - uint8_t f_s_dadda_pg_rca4_nand_2_3 = 0; - uint8_t f_s_dadda_pg_rca4_and_0_1 = 0; - uint8_t f_s_dadda_pg_rca4_and_3_3 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa0_xor0 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa0_and0 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa1_xor0 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa1_and0 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa1_xor1 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_and1 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_or1 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa2_xor0 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa2_and0 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa2_xor1 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_and2 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_or2 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa3_xor0 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa3_and0 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa3_xor1 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_and3 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_or3 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa4_xor0 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa4_and0 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa4_xor1 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_and4 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_or4 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa5_xor0 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa5_and0 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_pg_fa5_xor1 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_and5 = 0; - uint8_t f_s_dadda_pg_rca4_u_pg_rca6_or5 = 0; - uint8_t f_s_dadda_pg_rca4_xor0 = 0; - - f_s_dadda_pg_rca4_nand_3_0 = ~(((a >> 3) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_dadda_pg_rca4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_pg_rca4_ha0_xor0 = ((f_s_dadda_pg_rca4_nand_3_0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_and_2_1 >> 0) & 0x01); - f_s_dadda_pg_rca4_ha0_and0 = ((f_s_dadda_pg_rca4_nand_3_0 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_and_2_1 >> 0) & 0x01); - f_s_dadda_pg_rca4_nand_3_1 = ~(((a >> 3) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_dadda_pg_rca4_fa0_xor0 = ~(((f_s_dadda_pg_rca4_ha0_and0 >> 0) & 0x01)) & 0x01; - f_s_dadda_pg_rca4_fa0_xor1 = ((f_s_dadda_pg_rca4_fa0_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_nand_3_1 >> 0) & 0x01); - f_s_dadda_pg_rca4_fa0_and1 = ((f_s_dadda_pg_rca4_fa0_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_nand_3_1 >> 0) & 0x01); - f_s_dadda_pg_rca4_fa0_or0 = ((f_s_dadda_pg_rca4_ha0_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca4_fa0_and1 >> 0) & 0x01); - f_s_dadda_pg_rca4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_pg_rca4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_pg_rca4_ha1_xor0 = ((f_s_dadda_pg_rca4_and_2_0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_and_1_1 >> 0) & 0x01); - f_s_dadda_pg_rca4_ha1_and0 = ((f_s_dadda_pg_rca4_and_2_0 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_and_1_1 >> 0) & 0x01); - f_s_dadda_pg_rca4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_pg_rca4_nand_0_3 = ~(((a >> 0) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_pg_rca4_fa1_xor0 = ((f_s_dadda_pg_rca4_ha1_and0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_and_1_2 >> 0) & 0x01); - f_s_dadda_pg_rca4_fa1_and0 = ((f_s_dadda_pg_rca4_ha1_and0 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_and_1_2 >> 0) & 0x01); - f_s_dadda_pg_rca4_fa1_xor1 = ((f_s_dadda_pg_rca4_fa1_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_nand_0_3 >> 0) & 0x01); - f_s_dadda_pg_rca4_fa1_and1 = ((f_s_dadda_pg_rca4_fa1_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_nand_0_3 >> 0) & 0x01); - f_s_dadda_pg_rca4_fa1_or0 = ((f_s_dadda_pg_rca4_fa1_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca4_fa1_and1 >> 0) & 0x01); - f_s_dadda_pg_rca4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_pg_rca4_nand_1_3 = ~(((a >> 1) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_pg_rca4_fa2_xor0 = ((f_s_dadda_pg_rca4_fa1_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_and_2_2 >> 0) & 0x01); - f_s_dadda_pg_rca4_fa2_and0 = ((f_s_dadda_pg_rca4_fa1_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_and_2_2 >> 0) & 0x01); - f_s_dadda_pg_rca4_fa2_xor1 = ((f_s_dadda_pg_rca4_fa2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_nand_1_3 >> 0) & 0x01); - f_s_dadda_pg_rca4_fa2_and1 = ((f_s_dadda_pg_rca4_fa2_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_nand_1_3 >> 0) & 0x01); - f_s_dadda_pg_rca4_fa2_or0 = ((f_s_dadda_pg_rca4_fa2_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca4_fa2_and1 >> 0) & 0x01); - f_s_dadda_pg_rca4_nand_3_2 = ~(((a >> 3) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_dadda_pg_rca4_fa3_xor0 = ((f_s_dadda_pg_rca4_fa2_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_fa0_or0 >> 0) & 0x01); - f_s_dadda_pg_rca4_fa3_and0 = ((f_s_dadda_pg_rca4_fa2_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_fa0_or0 >> 0) & 0x01); - f_s_dadda_pg_rca4_fa3_xor1 = ((f_s_dadda_pg_rca4_fa3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_nand_3_2 >> 0) & 0x01); - f_s_dadda_pg_rca4_fa3_and1 = ((f_s_dadda_pg_rca4_fa3_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_nand_3_2 >> 0) & 0x01); - f_s_dadda_pg_rca4_fa3_or0 = ((f_s_dadda_pg_rca4_fa3_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca4_fa3_and1 >> 0) & 0x01); - f_s_dadda_pg_rca4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_pg_rca4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_pg_rca4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_pg_rca4_nand_2_3 = ~(((a >> 2) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_pg_rca4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_pg_rca4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa0_xor0 = ((f_s_dadda_pg_rca4_and_1_0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_and_0_1 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa0_and0 = ((f_s_dadda_pg_rca4_and_1_0 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_and_0_1 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa1_xor0 = ((f_s_dadda_pg_rca4_and_0_2 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_ha1_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa1_and0 = ((f_s_dadda_pg_rca4_and_0_2 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_ha1_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa1_xor1 = ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa1_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa0_and0 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_and1 = ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa0_and0 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa1_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_or1 = ((f_s_dadda_pg_rca4_u_pg_rca6_and1 >> 0) & 0x01) | ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa1_and0 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa2_xor0 = ((f_s_dadda_pg_rca4_ha0_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_fa1_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa2_and0 = ((f_s_dadda_pg_rca4_ha0_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_fa1_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa2_xor1 = ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_u_pg_rca6_or1 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_and2 = ((f_s_dadda_pg_rca4_u_pg_rca6_or1 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa2_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_or2 = ((f_s_dadda_pg_rca4_u_pg_rca6_and2 >> 0) & 0x01) | ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa2_and0 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa3_xor0 = ((f_s_dadda_pg_rca4_fa0_xor1 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_fa2_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa3_and0 = ((f_s_dadda_pg_rca4_fa0_xor1 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_fa2_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa3_xor1 = ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_u_pg_rca6_or2 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_and3 = ((f_s_dadda_pg_rca4_u_pg_rca6_or2 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa3_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_or3 = ((f_s_dadda_pg_rca4_u_pg_rca6_and3 >> 0) & 0x01) | ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa3_and0 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa4_xor0 = ((f_s_dadda_pg_rca4_nand_2_3 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_fa3_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa4_and0 = ((f_s_dadda_pg_rca4_nand_2_3 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_fa3_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa4_xor1 = ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_u_pg_rca6_or3 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_and4 = ((f_s_dadda_pg_rca4_u_pg_rca6_or3 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa4_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_or4 = ((f_s_dadda_pg_rca4_u_pg_rca6_and4 >> 0) & 0x01) | ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa4_and0 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa5_xor0 = ((f_s_dadda_pg_rca4_fa3_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_and_3_3 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa5_and0 = ((f_s_dadda_pg_rca4_fa3_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_and_3_3 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_pg_fa5_xor1 = ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa5_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca4_u_pg_rca6_or4 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_and5 = ((f_s_dadda_pg_rca4_u_pg_rca6_or4 >> 0) & 0x01) & ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa5_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca4_u_pg_rca6_or5 = ((f_s_dadda_pg_rca4_u_pg_rca6_and5 >> 0) & 0x01) | ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa5_and0 >> 0) & 0x01); - f_s_dadda_pg_rca4_xor0 = ~(((f_s_dadda_pg_rca4_u_pg_rca6_or5 >> 0) & 0x01)) & 0x01; - - f_s_dadda_pg_rca4_out |= ((f_s_dadda_pg_rca4_and_0_0 >> 0) & 0x01) << 0; - f_s_dadda_pg_rca4_out |= ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa0_xor0 >> 0) & 0x01) << 1; - f_s_dadda_pg_rca4_out |= ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa1_xor1 >> 0) & 0x01) << 2; - f_s_dadda_pg_rca4_out |= ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa2_xor1 >> 0) & 0x01) << 3; - f_s_dadda_pg_rca4_out |= ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa3_xor1 >> 0) & 0x01) << 4; - f_s_dadda_pg_rca4_out |= ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa4_xor1 >> 0) & 0x01) << 5; - f_s_dadda_pg_rca4_out |= ((f_s_dadda_pg_rca4_u_pg_rca6_pg_fa5_xor1 >> 0) & 0x01) << 6; - f_s_dadda_pg_rca4_out |= ((f_s_dadda_pg_rca4_xor0 >> 0) & 0x01) << 7; - return f_s_dadda_pg_rca4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)f_s_dadda_pg_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_pg_rca8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_pg_rca8.c deleted file mode 100644 index 8c3a757..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_pg_rca8.c +++ /dev/null @@ -1,689 +0,0 @@ -#include -#include - -uint64_t f_s_dadda_pg_rca8(uint64_t a, uint64_t b){ - uint64_t f_s_dadda_pg_rca8_out = 0; - uint8_t f_s_dadda_pg_rca8_and_6_0 = 0; - uint8_t f_s_dadda_pg_rca8_and_5_1 = 0; - uint8_t f_s_dadda_pg_rca8_ha0_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_ha0_and0 = 0; - uint8_t f_s_dadda_pg_rca8_nand_7_0 = 0; - uint8_t f_s_dadda_pg_rca8_and_6_1 = 0; - uint8_t f_s_dadda_pg_rca8_fa0_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa0_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa0_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa0_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa0_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_5_2 = 0; - uint8_t f_s_dadda_pg_rca8_and_4_3 = 0; - uint8_t f_s_dadda_pg_rca8_ha1_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_ha1_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa1_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa1_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa1_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa1_or0 = 0; - uint8_t f_s_dadda_pg_rca8_nand_7_1 = 0; - uint8_t f_s_dadda_pg_rca8_and_6_2 = 0; - uint8_t f_s_dadda_pg_rca8_and_5_3 = 0; - uint8_t f_s_dadda_pg_rca8_fa2_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa2_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa2_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa2_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa2_or0 = 0; - uint8_t f_s_dadda_pg_rca8_nand_7_2 = 0; - uint8_t f_s_dadda_pg_rca8_fa3_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa3_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa3_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa3_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa3_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_3_0 = 0; - uint8_t f_s_dadda_pg_rca8_and_2_1 = 0; - uint8_t f_s_dadda_pg_rca8_ha2_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_ha2_and0 = 0; - uint8_t f_s_dadda_pg_rca8_and_4_0 = 0; - uint8_t f_s_dadda_pg_rca8_and_3_1 = 0; - uint8_t f_s_dadda_pg_rca8_fa4_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa4_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa4_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa4_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa4_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_2_2 = 0; - uint8_t f_s_dadda_pg_rca8_and_1_3 = 0; - uint8_t f_s_dadda_pg_rca8_ha3_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_ha3_and0 = 0; - uint8_t f_s_dadda_pg_rca8_and_5_0 = 0; - uint8_t f_s_dadda_pg_rca8_fa5_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa5_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa5_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa5_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa5_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_4_1 = 0; - uint8_t f_s_dadda_pg_rca8_and_3_2 = 0; - uint8_t f_s_dadda_pg_rca8_and_2_3 = 0; - uint8_t f_s_dadda_pg_rca8_fa6_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa6_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa6_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa6_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa6_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_1_4 = 0; - uint8_t f_s_dadda_pg_rca8_and_0_5 = 0; - uint8_t f_s_dadda_pg_rca8_ha4_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_ha4_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa7_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa7_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa7_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa7_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa7_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_4_2 = 0; - uint8_t f_s_dadda_pg_rca8_and_3_3 = 0; - uint8_t f_s_dadda_pg_rca8_and_2_4 = 0; - uint8_t f_s_dadda_pg_rca8_fa8_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa8_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa8_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa8_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa8_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_1_5 = 0; - uint8_t f_s_dadda_pg_rca8_and_0_6 = 0; - uint8_t f_s_dadda_pg_rca8_fa9_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa9_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa9_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa9_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa9_or0 = 0; - uint8_t f_s_dadda_pg_rca8_fa10_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa10_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa10_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa10_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa10_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_3_4 = 0; - uint8_t f_s_dadda_pg_rca8_and_2_5 = 0; - uint8_t f_s_dadda_pg_rca8_and_1_6 = 0; - uint8_t f_s_dadda_pg_rca8_fa11_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa11_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa11_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa11_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa11_or0 = 0; - uint8_t f_s_dadda_pg_rca8_nand_0_7 = 0; - uint8_t f_s_dadda_pg_rca8_fa12_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa12_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa12_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa12_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa12_or0 = 0; - uint8_t f_s_dadda_pg_rca8_fa13_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa13_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa13_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa13_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa13_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_4_4 = 0; - uint8_t f_s_dadda_pg_rca8_and_3_5 = 0; - uint8_t f_s_dadda_pg_rca8_and_2_6 = 0; - uint8_t f_s_dadda_pg_rca8_fa14_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa14_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa14_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa14_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa14_or0 = 0; - uint8_t f_s_dadda_pg_rca8_nand_1_7 = 0; - uint8_t f_s_dadda_pg_rca8_fa15_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa15_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa15_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa15_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa15_or0 = 0; - uint8_t f_s_dadda_pg_rca8_fa16_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa16_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa16_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa16_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa16_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_6_3 = 0; - uint8_t f_s_dadda_pg_rca8_and_5_4 = 0; - uint8_t f_s_dadda_pg_rca8_and_4_5 = 0; - uint8_t f_s_dadda_pg_rca8_fa17_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa17_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa17_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa17_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa17_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_3_6 = 0; - uint8_t f_s_dadda_pg_rca8_nand_2_7 = 0; - uint8_t f_s_dadda_pg_rca8_fa18_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa18_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa18_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa18_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa18_or0 = 0; - uint8_t f_s_dadda_pg_rca8_fa19_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa19_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa19_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa19_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa19_or0 = 0; - uint8_t f_s_dadda_pg_rca8_nand_7_3 = 0; - uint8_t f_s_dadda_pg_rca8_and_6_4 = 0; - uint8_t f_s_dadda_pg_rca8_fa20_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa20_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa20_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa20_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa20_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_5_5 = 0; - uint8_t f_s_dadda_pg_rca8_and_4_6 = 0; - uint8_t f_s_dadda_pg_rca8_nand_3_7 = 0; - uint8_t f_s_dadda_pg_rca8_fa21_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa21_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa21_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa21_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa21_or0 = 0; - uint8_t f_s_dadda_pg_rca8_fa22_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa22_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa22_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa22_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa22_or0 = 0; - uint8_t f_s_dadda_pg_rca8_nand_7_4 = 0; - uint8_t f_s_dadda_pg_rca8_and_6_5 = 0; - uint8_t f_s_dadda_pg_rca8_and_5_6 = 0; - uint8_t f_s_dadda_pg_rca8_fa23_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa23_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa23_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa23_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa23_or0 = 0; - uint8_t f_s_dadda_pg_rca8_nand_7_5 = 0; - uint8_t f_s_dadda_pg_rca8_fa24_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa24_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa24_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa24_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa24_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_2_0 = 0; - uint8_t f_s_dadda_pg_rca8_and_1_1 = 0; - uint8_t f_s_dadda_pg_rca8_ha5_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_ha5_and0 = 0; - uint8_t f_s_dadda_pg_rca8_and_1_2 = 0; - uint8_t f_s_dadda_pg_rca8_and_0_3 = 0; - uint8_t f_s_dadda_pg_rca8_fa25_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa25_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa25_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa25_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa25_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_0_4 = 0; - uint8_t f_s_dadda_pg_rca8_fa26_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa26_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa26_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa26_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa26_or0 = 0; - uint8_t f_s_dadda_pg_rca8_fa27_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa27_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa27_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa27_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa27_or0 = 0; - uint8_t f_s_dadda_pg_rca8_fa28_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa28_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa28_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa28_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa28_or0 = 0; - uint8_t f_s_dadda_pg_rca8_fa29_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa29_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa29_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa29_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa29_or0 = 0; - uint8_t f_s_dadda_pg_rca8_fa30_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa30_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa30_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa30_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa30_or0 = 0; - uint8_t f_s_dadda_pg_rca8_fa31_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa31_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa31_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa31_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa31_or0 = 0; - uint8_t f_s_dadda_pg_rca8_fa32_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa32_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa32_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa32_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa32_or0 = 0; - uint8_t f_s_dadda_pg_rca8_nand_4_7 = 0; - uint8_t f_s_dadda_pg_rca8_fa33_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa33_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa33_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa33_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa33_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_6_6 = 0; - uint8_t f_s_dadda_pg_rca8_nand_5_7 = 0; - uint8_t f_s_dadda_pg_rca8_fa34_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa34_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa34_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa34_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa34_or0 = 0; - uint8_t f_s_dadda_pg_rca8_nand_7_6 = 0; - uint8_t f_s_dadda_pg_rca8_fa35_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_fa35_and0 = 0; - uint8_t f_s_dadda_pg_rca8_fa35_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_fa35_and1 = 0; - uint8_t f_s_dadda_pg_rca8_fa35_or0 = 0; - uint8_t f_s_dadda_pg_rca8_and_0_0 = 0; - uint8_t f_s_dadda_pg_rca8_and_1_0 = 0; - uint8_t f_s_dadda_pg_rca8_and_0_2 = 0; - uint8_t f_s_dadda_pg_rca8_nand_6_7 = 0; - uint8_t f_s_dadda_pg_rca8_and_0_1 = 0; - uint8_t f_s_dadda_pg_rca8_and_7_7 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa0_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa0_and0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa1_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa1_and0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa1_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_and1 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_or1 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa2_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa2_and0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa2_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_and2 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_or2 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa3_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa3_and0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa3_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_and3 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_or3 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa4_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa4_and0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa4_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_and4 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_or4 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa5_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa5_and0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa5_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_and5 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_or5 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa6_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa6_and0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa6_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_and6 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_or6 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa7_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa7_and0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa7_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_and7 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_or7 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa8_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa8_and0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa8_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_and8 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_or8 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa9_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa9_and0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa9_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_and9 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_or9 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa10_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa10_and0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa10_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_and10 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_or10 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa11_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa11_and0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa11_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_and11 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_or11 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa12_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa12_and0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa12_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_and12 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_or12 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa13_xor0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa13_and0 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_pg_fa13_xor1 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_and13 = 0; - uint8_t f_s_dadda_pg_rca8_u_pg_rca14_or13 = 0; - uint8_t f_s_dadda_pg_rca8_xor0 = 0; - - f_s_dadda_pg_rca8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_pg_rca8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_pg_rca8_ha0_xor0 = ((f_s_dadda_pg_rca8_and_6_0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_5_1 >> 0) & 0x01); - f_s_dadda_pg_rca8_ha0_and0 = ((f_s_dadda_pg_rca8_and_6_0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_5_1 >> 0) & 0x01); - f_s_dadda_pg_rca8_nand_7_0 = ~(((a >> 7) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_dadda_pg_rca8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_pg_rca8_fa0_xor0 = ((f_s_dadda_pg_rca8_ha0_and0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_nand_7_0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa0_and0 = ((f_s_dadda_pg_rca8_ha0_and0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_nand_7_0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa0_xor1 = ((f_s_dadda_pg_rca8_fa0_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_6_1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa0_and1 = ((f_s_dadda_pg_rca8_fa0_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_6_1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa0_or0 = ((f_s_dadda_pg_rca8_fa0_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa0_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_pg_rca8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_pg_rca8_ha1_xor0 = ((f_s_dadda_pg_rca8_and_5_2 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_4_3 >> 0) & 0x01); - f_s_dadda_pg_rca8_ha1_and0 = ((f_s_dadda_pg_rca8_and_5_2 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_4_3 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa1_xor0 = ((f_s_dadda_pg_rca8_ha1_and0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa0_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa1_and0 = ((f_s_dadda_pg_rca8_ha1_and0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa0_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa1_xor1 = ~(((f_s_dadda_pg_rca8_fa1_xor0 >> 0) & 0x01)) & 0x01; - f_s_dadda_pg_rca8_fa1_or0 = ((f_s_dadda_pg_rca8_fa1_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa1_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_nand_7_1 = ~(((a >> 7) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_dadda_pg_rca8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_pg_rca8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_pg_rca8_fa2_xor0 = ((f_s_dadda_pg_rca8_nand_7_1 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_6_2 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa2_and0 = ((f_s_dadda_pg_rca8_nand_7_1 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_6_2 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa2_xor1 = ((f_s_dadda_pg_rca8_fa2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_5_3 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa2_and1 = ((f_s_dadda_pg_rca8_fa2_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_5_3 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa2_or0 = ((f_s_dadda_pg_rca8_fa2_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa2_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_nand_7_2 = ~(((a >> 7) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_dadda_pg_rca8_fa3_xor0 = ((f_s_dadda_pg_rca8_fa2_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa1_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa3_and0 = ((f_s_dadda_pg_rca8_fa2_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa1_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa3_xor1 = ((f_s_dadda_pg_rca8_fa3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_nand_7_2 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa3_and1 = ((f_s_dadda_pg_rca8_fa3_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_nand_7_2 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa3_or0 = ((f_s_dadda_pg_rca8_fa3_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa3_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_pg_rca8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_pg_rca8_ha2_xor0 = ((f_s_dadda_pg_rca8_and_3_0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_2_1 >> 0) & 0x01); - f_s_dadda_pg_rca8_ha2_and0 = ((f_s_dadda_pg_rca8_and_3_0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_2_1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_pg_rca8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_pg_rca8_fa4_xor0 = ((f_s_dadda_pg_rca8_ha2_and0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_4_0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa4_and0 = ((f_s_dadda_pg_rca8_ha2_and0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_4_0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa4_xor1 = ((f_s_dadda_pg_rca8_fa4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_3_1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa4_and1 = ((f_s_dadda_pg_rca8_fa4_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_3_1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa4_or0 = ((f_s_dadda_pg_rca8_fa4_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa4_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_pg_rca8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_pg_rca8_ha3_xor0 = ((f_s_dadda_pg_rca8_and_2_2 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_1_3 >> 0) & 0x01); - f_s_dadda_pg_rca8_ha3_and0 = ((f_s_dadda_pg_rca8_and_2_2 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_1_3 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_pg_rca8_fa5_xor0 = ((f_s_dadda_pg_rca8_ha3_and0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa4_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa5_and0 = ((f_s_dadda_pg_rca8_ha3_and0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa4_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa5_xor1 = ((f_s_dadda_pg_rca8_fa5_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_5_0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa5_and1 = ((f_s_dadda_pg_rca8_fa5_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_5_0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa5_or0 = ((f_s_dadda_pg_rca8_fa5_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa5_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_pg_rca8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_pg_rca8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_pg_rca8_fa6_xor0 = ((f_s_dadda_pg_rca8_and_4_1 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_3_2 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa6_and0 = ((f_s_dadda_pg_rca8_and_4_1 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_3_2 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa6_xor1 = ((f_s_dadda_pg_rca8_fa6_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_2_3 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa6_and1 = ((f_s_dadda_pg_rca8_fa6_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_2_3 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa6_or0 = ((f_s_dadda_pg_rca8_fa6_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa6_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_pg_rca8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_pg_rca8_ha4_xor0 = ((f_s_dadda_pg_rca8_and_1_4 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_0_5 >> 0) & 0x01); - f_s_dadda_pg_rca8_ha4_and0 = ((f_s_dadda_pg_rca8_and_1_4 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_0_5 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa7_xor0 = ((f_s_dadda_pg_rca8_ha4_and0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa6_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa7_and0 = ((f_s_dadda_pg_rca8_ha4_and0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa6_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa7_xor1 = ((f_s_dadda_pg_rca8_fa7_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa5_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa7_and1 = ((f_s_dadda_pg_rca8_fa7_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa5_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa7_or0 = ((f_s_dadda_pg_rca8_fa7_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa7_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_pg_rca8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_pg_rca8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_pg_rca8_fa8_xor0 = ((f_s_dadda_pg_rca8_and_4_2 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_3_3 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa8_and0 = ((f_s_dadda_pg_rca8_and_4_2 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_3_3 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa8_xor1 = ((f_s_dadda_pg_rca8_fa8_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_2_4 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa8_and1 = ((f_s_dadda_pg_rca8_fa8_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_2_4 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa8_or0 = ((f_s_dadda_pg_rca8_fa8_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa8_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_pg_rca8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_pg_rca8_fa9_xor0 = ((f_s_dadda_pg_rca8_and_1_5 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_0_6 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa9_and0 = ((f_s_dadda_pg_rca8_and_1_5 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_0_6 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa9_xor1 = ((f_s_dadda_pg_rca8_fa9_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_ha0_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa9_and1 = ((f_s_dadda_pg_rca8_fa9_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_ha0_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa9_or0 = ((f_s_dadda_pg_rca8_fa9_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa9_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa10_xor0 = ((f_s_dadda_pg_rca8_fa9_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa8_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa10_and0 = ((f_s_dadda_pg_rca8_fa9_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa8_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa10_xor1 = ((f_s_dadda_pg_rca8_fa10_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa7_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa10_and1 = ((f_s_dadda_pg_rca8_fa10_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa7_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa10_or0 = ((f_s_dadda_pg_rca8_fa10_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa10_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_pg_rca8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_pg_rca8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_pg_rca8_fa11_xor0 = ((f_s_dadda_pg_rca8_and_3_4 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_2_5 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa11_and0 = ((f_s_dadda_pg_rca8_and_3_4 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_2_5 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa11_xor1 = ((f_s_dadda_pg_rca8_fa11_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_1_6 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa11_and1 = ((f_s_dadda_pg_rca8_fa11_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_1_6 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa11_or0 = ((f_s_dadda_pg_rca8_fa11_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa11_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_nand_0_7 = ~(((a >> 0) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_pg_rca8_fa12_xor0 = ((f_s_dadda_pg_rca8_nand_0_7 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa0_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa12_and0 = ((f_s_dadda_pg_rca8_nand_0_7 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa0_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa12_xor1 = ((f_s_dadda_pg_rca8_fa12_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_ha1_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa12_and1 = ((f_s_dadda_pg_rca8_fa12_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_ha1_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa12_or0 = ((f_s_dadda_pg_rca8_fa12_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa12_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa13_xor0 = ((f_s_dadda_pg_rca8_fa12_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa11_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa13_and0 = ((f_s_dadda_pg_rca8_fa12_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa11_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa13_xor1 = ((f_s_dadda_pg_rca8_fa13_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa10_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa13_and1 = ((f_s_dadda_pg_rca8_fa13_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa10_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa13_or0 = ((f_s_dadda_pg_rca8_fa13_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa13_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_pg_rca8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_pg_rca8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_pg_rca8_fa14_xor0 = ((f_s_dadda_pg_rca8_and_4_4 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_3_5 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa14_and0 = ((f_s_dadda_pg_rca8_and_4_4 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_3_5 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa14_xor1 = ((f_s_dadda_pg_rca8_fa14_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_2_6 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa14_and1 = ((f_s_dadda_pg_rca8_fa14_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_2_6 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa14_or0 = ((f_s_dadda_pg_rca8_fa14_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa14_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_nand_1_7 = ~(((a >> 1) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_pg_rca8_fa15_xor0 = ((f_s_dadda_pg_rca8_nand_1_7 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa1_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa15_and0 = ((f_s_dadda_pg_rca8_nand_1_7 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa1_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa15_xor1 = ((f_s_dadda_pg_rca8_fa15_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa2_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa15_and1 = ((f_s_dadda_pg_rca8_fa15_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa2_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa15_or0 = ((f_s_dadda_pg_rca8_fa15_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa15_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa16_xor0 = ((f_s_dadda_pg_rca8_fa15_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa14_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa16_and0 = ((f_s_dadda_pg_rca8_fa15_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa14_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa16_xor1 = ((f_s_dadda_pg_rca8_fa16_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa13_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa16_and1 = ((f_s_dadda_pg_rca8_fa16_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa13_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa16_or0 = ((f_s_dadda_pg_rca8_fa16_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa16_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_pg_rca8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_pg_rca8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_pg_rca8_fa17_xor0 = ((f_s_dadda_pg_rca8_and_6_3 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_5_4 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa17_and0 = ((f_s_dadda_pg_rca8_and_6_3 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_5_4 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa17_xor1 = ((f_s_dadda_pg_rca8_fa17_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_4_5 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa17_and1 = ((f_s_dadda_pg_rca8_fa17_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_4_5 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa17_or0 = ((f_s_dadda_pg_rca8_fa17_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa17_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_pg_rca8_nand_2_7 = ~(((a >> 2) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_pg_rca8_fa18_xor0 = ((f_s_dadda_pg_rca8_and_3_6 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_nand_2_7 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa18_and0 = ((f_s_dadda_pg_rca8_and_3_6 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_nand_2_7 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa18_xor1 = ((f_s_dadda_pg_rca8_fa18_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa3_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa18_and1 = ((f_s_dadda_pg_rca8_fa18_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa3_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa18_or0 = ((f_s_dadda_pg_rca8_fa18_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa18_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa19_xor0 = ((f_s_dadda_pg_rca8_fa18_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa17_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa19_and0 = ((f_s_dadda_pg_rca8_fa18_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa17_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa19_xor1 = ((f_s_dadda_pg_rca8_fa19_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa16_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa19_and1 = ((f_s_dadda_pg_rca8_fa19_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa16_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa19_or0 = ((f_s_dadda_pg_rca8_fa19_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa19_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_nand_7_3 = ~(((a >> 7) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_pg_rca8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_pg_rca8_fa20_xor0 = ((f_s_dadda_pg_rca8_fa3_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_nand_7_3 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa20_and0 = ((f_s_dadda_pg_rca8_fa3_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_nand_7_3 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa20_xor1 = ((f_s_dadda_pg_rca8_fa20_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_6_4 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa20_and1 = ((f_s_dadda_pg_rca8_fa20_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_6_4 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa20_or0 = ((f_s_dadda_pg_rca8_fa20_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa20_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_pg_rca8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_pg_rca8_nand_3_7 = ~(((a >> 3) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_pg_rca8_fa21_xor0 = ((f_s_dadda_pg_rca8_and_5_5 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_4_6 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa21_and0 = ((f_s_dadda_pg_rca8_and_5_5 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_4_6 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa21_xor1 = ((f_s_dadda_pg_rca8_fa21_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_nand_3_7 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa21_and1 = ((f_s_dadda_pg_rca8_fa21_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_nand_3_7 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa21_or0 = ((f_s_dadda_pg_rca8_fa21_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa21_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa22_xor0 = ((f_s_dadda_pg_rca8_fa21_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa20_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa22_and0 = ((f_s_dadda_pg_rca8_fa21_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa20_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa22_xor1 = ((f_s_dadda_pg_rca8_fa22_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa19_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa22_and1 = ((f_s_dadda_pg_rca8_fa22_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa19_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa22_or0 = ((f_s_dadda_pg_rca8_fa22_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa22_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_nand_7_4 = ~(((a >> 7) & 0x01) & ((b >> 4) & 0x01)) & 0x01; - f_s_dadda_pg_rca8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_pg_rca8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_pg_rca8_fa23_xor0 = ((f_s_dadda_pg_rca8_nand_7_4 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_6_5 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa23_and0 = ((f_s_dadda_pg_rca8_nand_7_4 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_6_5 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa23_xor1 = ((f_s_dadda_pg_rca8_fa23_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_5_6 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa23_and1 = ((f_s_dadda_pg_rca8_fa23_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_5_6 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa23_or0 = ((f_s_dadda_pg_rca8_fa23_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa23_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_nand_7_5 = ~(((a >> 7) & 0x01) & ((b >> 5) & 0x01)) & 0x01; - f_s_dadda_pg_rca8_fa24_xor0 = ((f_s_dadda_pg_rca8_fa23_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa22_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa24_and0 = ((f_s_dadda_pg_rca8_fa23_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa22_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa24_xor1 = ((f_s_dadda_pg_rca8_fa24_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_nand_7_5 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa24_and1 = ((f_s_dadda_pg_rca8_fa24_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_nand_7_5 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa24_or0 = ((f_s_dadda_pg_rca8_fa24_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa24_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_pg_rca8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_pg_rca8_ha5_xor0 = ((f_s_dadda_pg_rca8_and_2_0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_1_1 >> 0) & 0x01); - f_s_dadda_pg_rca8_ha5_and0 = ((f_s_dadda_pg_rca8_and_2_0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_1_1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_pg_rca8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_pg_rca8_fa25_xor0 = ((f_s_dadda_pg_rca8_ha5_and0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_1_2 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa25_and0 = ((f_s_dadda_pg_rca8_ha5_and0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_1_2 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa25_xor1 = ((f_s_dadda_pg_rca8_fa25_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_0_3 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa25_and1 = ((f_s_dadda_pg_rca8_fa25_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_0_3 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa25_or0 = ((f_s_dadda_pg_rca8_fa25_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa25_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_pg_rca8_fa26_xor0 = ((f_s_dadda_pg_rca8_fa25_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_0_4 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa26_and0 = ((f_s_dadda_pg_rca8_fa25_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_0_4 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa26_xor1 = ((f_s_dadda_pg_rca8_fa26_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa4_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa26_and1 = ((f_s_dadda_pg_rca8_fa26_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa4_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa26_or0 = ((f_s_dadda_pg_rca8_fa26_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa26_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa27_xor0 = ((f_s_dadda_pg_rca8_fa26_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa5_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa27_and0 = ((f_s_dadda_pg_rca8_fa26_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa5_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa27_xor1 = ((f_s_dadda_pg_rca8_fa27_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa6_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa27_and1 = ((f_s_dadda_pg_rca8_fa27_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa6_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa27_or0 = ((f_s_dadda_pg_rca8_fa27_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa27_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa28_xor0 = ((f_s_dadda_pg_rca8_fa27_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa7_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa28_and0 = ((f_s_dadda_pg_rca8_fa27_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa7_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa28_xor1 = ((f_s_dadda_pg_rca8_fa28_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa8_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa28_and1 = ((f_s_dadda_pg_rca8_fa28_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa8_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa28_or0 = ((f_s_dadda_pg_rca8_fa28_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa28_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa29_xor0 = ((f_s_dadda_pg_rca8_fa28_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa10_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa29_and0 = ((f_s_dadda_pg_rca8_fa28_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa10_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa29_xor1 = ((f_s_dadda_pg_rca8_fa29_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa11_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa29_and1 = ((f_s_dadda_pg_rca8_fa29_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa11_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa29_or0 = ((f_s_dadda_pg_rca8_fa29_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa29_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa30_xor0 = ((f_s_dadda_pg_rca8_fa29_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa13_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa30_and0 = ((f_s_dadda_pg_rca8_fa29_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa13_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa30_xor1 = ((f_s_dadda_pg_rca8_fa30_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa14_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa30_and1 = ((f_s_dadda_pg_rca8_fa30_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa14_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa30_or0 = ((f_s_dadda_pg_rca8_fa30_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa30_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa31_xor0 = ((f_s_dadda_pg_rca8_fa30_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa16_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa31_and0 = ((f_s_dadda_pg_rca8_fa30_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa16_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa31_xor1 = ((f_s_dadda_pg_rca8_fa31_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa17_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa31_and1 = ((f_s_dadda_pg_rca8_fa31_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa17_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa31_or0 = ((f_s_dadda_pg_rca8_fa31_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa31_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa32_xor0 = ((f_s_dadda_pg_rca8_fa31_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa19_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa32_and0 = ((f_s_dadda_pg_rca8_fa31_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa19_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa32_xor1 = ((f_s_dadda_pg_rca8_fa32_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa20_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa32_and1 = ((f_s_dadda_pg_rca8_fa32_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa20_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa32_or0 = ((f_s_dadda_pg_rca8_fa32_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa32_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_nand_4_7 = ~(((a >> 4) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_pg_rca8_fa33_xor0 = ((f_s_dadda_pg_rca8_fa32_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_nand_4_7 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa33_and0 = ((f_s_dadda_pg_rca8_fa32_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_nand_4_7 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa33_xor1 = ((f_s_dadda_pg_rca8_fa33_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa22_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa33_and1 = ((f_s_dadda_pg_rca8_fa33_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa22_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa33_or0 = ((f_s_dadda_pg_rca8_fa33_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa33_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_pg_rca8_nand_5_7 = ~(((a >> 5) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_pg_rca8_fa34_xor0 = ((f_s_dadda_pg_rca8_fa33_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_6_6 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa34_and0 = ((f_s_dadda_pg_rca8_fa33_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_6_6 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa34_xor1 = ((f_s_dadda_pg_rca8_fa34_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_nand_5_7 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa34_and1 = ((f_s_dadda_pg_rca8_fa34_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_nand_5_7 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa34_or0 = ((f_s_dadda_pg_rca8_fa34_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa34_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_nand_7_6 = ~(((a >> 7) & 0x01) & ((b >> 6) & 0x01)) & 0x01; - f_s_dadda_pg_rca8_fa35_xor0 = ((f_s_dadda_pg_rca8_fa34_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa24_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa35_and0 = ((f_s_dadda_pg_rca8_fa34_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa24_or0 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa35_xor1 = ((f_s_dadda_pg_rca8_fa35_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_nand_7_6 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa35_and1 = ((f_s_dadda_pg_rca8_fa35_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_nand_7_6 >> 0) & 0x01); - f_s_dadda_pg_rca8_fa35_or0 = ((f_s_dadda_pg_rca8_fa35_and0 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_fa35_and1 >> 0) & 0x01); - f_s_dadda_pg_rca8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_pg_rca8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_pg_rca8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_pg_rca8_nand_6_7 = ~(((a >> 6) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_pg_rca8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_pg_rca8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa0_xor0 = ((f_s_dadda_pg_rca8_and_1_0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_0_1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa0_and0 = ((f_s_dadda_pg_rca8_and_1_0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_0_1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa1_xor0 = ((f_s_dadda_pg_rca8_and_0_2 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_ha5_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa1_and0 = ((f_s_dadda_pg_rca8_and_0_2 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_ha5_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa1_xor1 = ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa1_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa0_and0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_and1 = ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa0_and0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa1_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_or1 = ((f_s_dadda_pg_rca8_u_pg_rca14_and1 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa1_and0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa2_xor0 = ((f_s_dadda_pg_rca8_ha2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa25_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa2_and0 = ((f_s_dadda_pg_rca8_ha2_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa25_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa2_xor1 = ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_u_pg_rca14_or1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_and2 = ((f_s_dadda_pg_rca8_u_pg_rca14_or1 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa2_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_or2 = ((f_s_dadda_pg_rca8_u_pg_rca14_and2 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa2_and0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa3_xor0 = ((f_s_dadda_pg_rca8_ha3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa26_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa3_and0 = ((f_s_dadda_pg_rca8_ha3_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa26_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa3_xor1 = ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_u_pg_rca14_or2 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_and3 = ((f_s_dadda_pg_rca8_u_pg_rca14_or2 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa3_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_or3 = ((f_s_dadda_pg_rca8_u_pg_rca14_and3 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa3_and0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa4_xor0 = ((f_s_dadda_pg_rca8_ha4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa27_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa4_and0 = ((f_s_dadda_pg_rca8_ha4_xor0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa27_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa4_xor1 = ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_u_pg_rca14_or3 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_and4 = ((f_s_dadda_pg_rca8_u_pg_rca14_or3 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa4_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_or4 = ((f_s_dadda_pg_rca8_u_pg_rca14_and4 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa4_and0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa5_xor0 = ((f_s_dadda_pg_rca8_fa9_xor1 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa28_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa5_and0 = ((f_s_dadda_pg_rca8_fa9_xor1 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa28_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa5_xor1 = ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa5_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_u_pg_rca14_or4 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_and5 = ((f_s_dadda_pg_rca8_u_pg_rca14_or4 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa5_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_or5 = ((f_s_dadda_pg_rca8_u_pg_rca14_and5 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa5_and0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa6_xor0 = ((f_s_dadda_pg_rca8_fa12_xor1 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa29_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa6_and0 = ((f_s_dadda_pg_rca8_fa12_xor1 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa29_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa6_xor1 = ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa6_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_u_pg_rca14_or5 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_and6 = ((f_s_dadda_pg_rca8_u_pg_rca14_or5 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa6_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_or6 = ((f_s_dadda_pg_rca8_u_pg_rca14_and6 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa6_and0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa7_xor0 = ((f_s_dadda_pg_rca8_fa15_xor1 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa30_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa7_and0 = ((f_s_dadda_pg_rca8_fa15_xor1 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa30_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa7_xor1 = ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa7_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_u_pg_rca14_or6 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_and7 = ((f_s_dadda_pg_rca8_u_pg_rca14_or6 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa7_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_or7 = ((f_s_dadda_pg_rca8_u_pg_rca14_and7 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa7_and0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa8_xor0 = ((f_s_dadda_pg_rca8_fa18_xor1 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa31_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa8_and0 = ((f_s_dadda_pg_rca8_fa18_xor1 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa31_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa8_xor1 = ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa8_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_u_pg_rca14_or7 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_and8 = ((f_s_dadda_pg_rca8_u_pg_rca14_or7 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa8_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_or8 = ((f_s_dadda_pg_rca8_u_pg_rca14_and8 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa8_and0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa9_xor0 = ((f_s_dadda_pg_rca8_fa21_xor1 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa32_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa9_and0 = ((f_s_dadda_pg_rca8_fa21_xor1 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa32_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa9_xor1 = ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa9_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_u_pg_rca14_or8 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_and9 = ((f_s_dadda_pg_rca8_u_pg_rca14_or8 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa9_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_or9 = ((f_s_dadda_pg_rca8_u_pg_rca14_and9 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa9_and0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa10_xor0 = ((f_s_dadda_pg_rca8_fa23_xor1 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa33_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa10_and0 = ((f_s_dadda_pg_rca8_fa23_xor1 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa33_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa10_xor1 = ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa10_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_u_pg_rca14_or9 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_and10 = ((f_s_dadda_pg_rca8_u_pg_rca14_or9 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa10_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_or10 = ((f_s_dadda_pg_rca8_u_pg_rca14_and10 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa10_and0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa11_xor0 = ((f_s_dadda_pg_rca8_fa24_xor1 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa34_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa11_and0 = ((f_s_dadda_pg_rca8_fa24_xor1 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa34_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa11_xor1 = ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa11_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_u_pg_rca14_or10 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_and11 = ((f_s_dadda_pg_rca8_u_pg_rca14_or10 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa11_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_or11 = ((f_s_dadda_pg_rca8_u_pg_rca14_and11 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa11_and0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa12_xor0 = ((f_s_dadda_pg_rca8_nand_6_7 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_fa35_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa12_and0 = ((f_s_dadda_pg_rca8_nand_6_7 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_fa35_xor1 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa12_xor1 = ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa12_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_u_pg_rca14_or11 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_and12 = ((f_s_dadda_pg_rca8_u_pg_rca14_or11 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa12_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_or12 = ((f_s_dadda_pg_rca8_u_pg_rca14_and12 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa12_and0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa13_xor0 = ((f_s_dadda_pg_rca8_fa35_or0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_and_7_7 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa13_and0 = ((f_s_dadda_pg_rca8_fa35_or0 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_and_7_7 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_pg_fa13_xor1 = ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa13_xor0 >> 0) & 0x01) ^ ((f_s_dadda_pg_rca8_u_pg_rca14_or12 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_and13 = ((f_s_dadda_pg_rca8_u_pg_rca14_or12 >> 0) & 0x01) & ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa13_xor0 >> 0) & 0x01); - f_s_dadda_pg_rca8_u_pg_rca14_or13 = ((f_s_dadda_pg_rca8_u_pg_rca14_and13 >> 0) & 0x01) | ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa13_and0 >> 0) & 0x01); - f_s_dadda_pg_rca8_xor0 = ~(((f_s_dadda_pg_rca8_u_pg_rca14_or13 >> 0) & 0x01)) & 0x01; - - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_and_0_0 >> 0) & 0x01) << 0; - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa0_xor0 >> 0) & 0x01) << 1; - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa1_xor1 >> 0) & 0x01) << 2; - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa2_xor1 >> 0) & 0x01) << 3; - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa3_xor1 >> 0) & 0x01) << 4; - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa4_xor1 >> 0) & 0x01) << 5; - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa5_xor1 >> 0) & 0x01) << 6; - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa6_xor1 >> 0) & 0x01) << 7; - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa7_xor1 >> 0) & 0x01) << 8; - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa8_xor1 >> 0) & 0x01) << 9; - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa9_xor1 >> 0) & 0x01) << 10; - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa10_xor1 >> 0) & 0x01) << 11; - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa11_xor1 >> 0) & 0x01) << 12; - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa12_xor1 >> 0) & 0x01) << 13; - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_u_pg_rca14_pg_fa13_xor1 >> 0) & 0x01) << 14; - f_s_dadda_pg_rca8_out |= ((f_s_dadda_pg_rca8_xor0 >> 0) & 0x01) << 15; - return f_s_dadda_pg_rca8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)f_s_dadda_pg_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_rca4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_rca4.c deleted file mode 100644 index 26cdd1b..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_rca4.c +++ /dev/null @@ -1,169 +0,0 @@ -#include -#include - -uint64_t f_s_dadda_rca4(uint64_t a, uint64_t b){ - uint8_t f_s_dadda_rca4_out = 0; - uint8_t f_s_dadda_rca4_nand_3_0 = 0; - uint8_t f_s_dadda_rca4_and_2_1 = 0; - uint8_t f_s_dadda_rca4_ha0_xor0 = 0; - uint8_t f_s_dadda_rca4_ha0_and0 = 0; - uint8_t f_s_dadda_rca4_nand_3_1 = 0; - uint8_t f_s_dadda_rca4_fa0_xor0 = 0; - uint8_t f_s_dadda_rca4_fa0_xor1 = 0; - uint8_t f_s_dadda_rca4_fa0_and1 = 0; - uint8_t f_s_dadda_rca4_fa0_or0 = 0; - uint8_t f_s_dadda_rca4_and_2_0 = 0; - uint8_t f_s_dadda_rca4_and_1_1 = 0; - uint8_t f_s_dadda_rca4_ha1_xor0 = 0; - uint8_t f_s_dadda_rca4_ha1_and0 = 0; - uint8_t f_s_dadda_rca4_and_1_2 = 0; - uint8_t f_s_dadda_rca4_nand_0_3 = 0; - uint8_t f_s_dadda_rca4_fa1_xor0 = 0; - uint8_t f_s_dadda_rca4_fa1_and0 = 0; - uint8_t f_s_dadda_rca4_fa1_xor1 = 0; - uint8_t f_s_dadda_rca4_fa1_and1 = 0; - uint8_t f_s_dadda_rca4_fa1_or0 = 0; - uint8_t f_s_dadda_rca4_and_2_2 = 0; - uint8_t f_s_dadda_rca4_nand_1_3 = 0; - uint8_t f_s_dadda_rca4_fa2_xor0 = 0; - uint8_t f_s_dadda_rca4_fa2_and0 = 0; - uint8_t f_s_dadda_rca4_fa2_xor1 = 0; - uint8_t f_s_dadda_rca4_fa2_and1 = 0; - uint8_t f_s_dadda_rca4_fa2_or0 = 0; - uint8_t f_s_dadda_rca4_nand_3_2 = 0; - uint8_t f_s_dadda_rca4_fa3_xor0 = 0; - uint8_t f_s_dadda_rca4_fa3_and0 = 0; - uint8_t f_s_dadda_rca4_fa3_xor1 = 0; - uint8_t f_s_dadda_rca4_fa3_and1 = 0; - uint8_t f_s_dadda_rca4_fa3_or0 = 0; - uint8_t f_s_dadda_rca4_and_0_0 = 0; - uint8_t f_s_dadda_rca4_and_1_0 = 0; - uint8_t f_s_dadda_rca4_and_0_2 = 0; - uint8_t f_s_dadda_rca4_nand_2_3 = 0; - uint8_t f_s_dadda_rca4_and_0_1 = 0; - uint8_t f_s_dadda_rca4_and_3_3 = 0; - uint8_t f_s_dadda_rca4_u_rca6_ha_xor0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_ha_and0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa1_xor0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa1_and0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa1_xor1 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa1_and1 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa1_or0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa2_xor0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa2_and0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa2_xor1 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa2_and1 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa2_or0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa3_xor0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa3_and0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa3_xor1 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa3_and1 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa3_or0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa4_xor0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa4_and0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa4_xor1 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa4_and1 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa4_or0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa5_xor0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa5_and0 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa5_xor1 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa5_and1 = 0; - uint8_t f_s_dadda_rca4_u_rca6_fa5_or0 = 0; - uint8_t f_s_dadda_rca4_xor0 = 0; - - f_s_dadda_rca4_nand_3_0 = ~(((a >> 3) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_dadda_rca4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_rca4_ha0_xor0 = ((f_s_dadda_rca4_nand_3_0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_and_2_1 >> 0) & 0x01); - f_s_dadda_rca4_ha0_and0 = ((f_s_dadda_rca4_nand_3_0 >> 0) & 0x01) & ((f_s_dadda_rca4_and_2_1 >> 0) & 0x01); - f_s_dadda_rca4_nand_3_1 = ~(((a >> 3) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_dadda_rca4_fa0_xor0 = ~(((f_s_dadda_rca4_ha0_and0 >> 0) & 0x01)) & 0x01; - f_s_dadda_rca4_fa0_xor1 = ((f_s_dadda_rca4_fa0_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_nand_3_1 >> 0) & 0x01); - f_s_dadda_rca4_fa0_and1 = ((f_s_dadda_rca4_fa0_xor0 >> 0) & 0x01) & ((f_s_dadda_rca4_nand_3_1 >> 0) & 0x01); - f_s_dadda_rca4_fa0_or0 = ((f_s_dadda_rca4_ha0_and0 >> 0) & 0x01) | ((f_s_dadda_rca4_fa0_and1 >> 0) & 0x01); - f_s_dadda_rca4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_rca4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_rca4_ha1_xor0 = ((f_s_dadda_rca4_and_2_0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_and_1_1 >> 0) & 0x01); - f_s_dadda_rca4_ha1_and0 = ((f_s_dadda_rca4_and_2_0 >> 0) & 0x01) & ((f_s_dadda_rca4_and_1_1 >> 0) & 0x01); - f_s_dadda_rca4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_rca4_nand_0_3 = ~(((a >> 0) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_rca4_fa1_xor0 = ((f_s_dadda_rca4_ha1_and0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_and_1_2 >> 0) & 0x01); - f_s_dadda_rca4_fa1_and0 = ((f_s_dadda_rca4_ha1_and0 >> 0) & 0x01) & ((f_s_dadda_rca4_and_1_2 >> 0) & 0x01); - f_s_dadda_rca4_fa1_xor1 = ((f_s_dadda_rca4_fa1_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_nand_0_3 >> 0) & 0x01); - f_s_dadda_rca4_fa1_and1 = ((f_s_dadda_rca4_fa1_xor0 >> 0) & 0x01) & ((f_s_dadda_rca4_nand_0_3 >> 0) & 0x01); - f_s_dadda_rca4_fa1_or0 = ((f_s_dadda_rca4_fa1_and0 >> 0) & 0x01) | ((f_s_dadda_rca4_fa1_and1 >> 0) & 0x01); - f_s_dadda_rca4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_rca4_nand_1_3 = ~(((a >> 1) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_rca4_fa2_xor0 = ((f_s_dadda_rca4_fa1_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_and_2_2 >> 0) & 0x01); - f_s_dadda_rca4_fa2_and0 = ((f_s_dadda_rca4_fa1_or0 >> 0) & 0x01) & ((f_s_dadda_rca4_and_2_2 >> 0) & 0x01); - f_s_dadda_rca4_fa2_xor1 = ((f_s_dadda_rca4_fa2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_nand_1_3 >> 0) & 0x01); - f_s_dadda_rca4_fa2_and1 = ((f_s_dadda_rca4_fa2_xor0 >> 0) & 0x01) & ((f_s_dadda_rca4_nand_1_3 >> 0) & 0x01); - f_s_dadda_rca4_fa2_or0 = ((f_s_dadda_rca4_fa2_and0 >> 0) & 0x01) | ((f_s_dadda_rca4_fa2_and1 >> 0) & 0x01); - f_s_dadda_rca4_nand_3_2 = ~(((a >> 3) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_dadda_rca4_fa3_xor0 = ((f_s_dadda_rca4_fa2_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_fa0_or0 >> 0) & 0x01); - f_s_dadda_rca4_fa3_and0 = ((f_s_dadda_rca4_fa2_or0 >> 0) & 0x01) & ((f_s_dadda_rca4_fa0_or0 >> 0) & 0x01); - f_s_dadda_rca4_fa3_xor1 = ((f_s_dadda_rca4_fa3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_nand_3_2 >> 0) & 0x01); - f_s_dadda_rca4_fa3_and1 = ((f_s_dadda_rca4_fa3_xor0 >> 0) & 0x01) & ((f_s_dadda_rca4_nand_3_2 >> 0) & 0x01); - f_s_dadda_rca4_fa3_or0 = ((f_s_dadda_rca4_fa3_and0 >> 0) & 0x01) | ((f_s_dadda_rca4_fa3_and1 >> 0) & 0x01); - f_s_dadda_rca4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_rca4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_rca4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_rca4_nand_2_3 = ~(((a >> 2) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_rca4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_rca4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_rca4_u_rca6_ha_xor0 = ((f_s_dadda_rca4_and_1_0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_and_0_1 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_ha_and0 = ((f_s_dadda_rca4_and_1_0 >> 0) & 0x01) & ((f_s_dadda_rca4_and_0_1 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa1_xor0 = ((f_s_dadda_rca4_and_0_2 >> 0) & 0x01) ^ ((f_s_dadda_rca4_ha1_xor0 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa1_and0 = ((f_s_dadda_rca4_and_0_2 >> 0) & 0x01) & ((f_s_dadda_rca4_ha1_xor0 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa1_xor1 = ((f_s_dadda_rca4_u_rca6_fa1_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_u_rca6_ha_and0 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa1_and1 = ((f_s_dadda_rca4_u_rca6_fa1_xor0 >> 0) & 0x01) & ((f_s_dadda_rca4_u_rca6_ha_and0 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa1_or0 = ((f_s_dadda_rca4_u_rca6_fa1_and0 >> 0) & 0x01) | ((f_s_dadda_rca4_u_rca6_fa1_and1 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa2_xor0 = ((f_s_dadda_rca4_ha0_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_fa1_xor1 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa2_and0 = ((f_s_dadda_rca4_ha0_xor0 >> 0) & 0x01) & ((f_s_dadda_rca4_fa1_xor1 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa2_xor1 = ((f_s_dadda_rca4_u_rca6_fa2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_u_rca6_fa1_or0 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa2_and1 = ((f_s_dadda_rca4_u_rca6_fa2_xor0 >> 0) & 0x01) & ((f_s_dadda_rca4_u_rca6_fa1_or0 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa2_or0 = ((f_s_dadda_rca4_u_rca6_fa2_and0 >> 0) & 0x01) | ((f_s_dadda_rca4_u_rca6_fa2_and1 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa3_xor0 = ((f_s_dadda_rca4_fa0_xor1 >> 0) & 0x01) ^ ((f_s_dadda_rca4_fa2_xor1 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa3_and0 = ((f_s_dadda_rca4_fa0_xor1 >> 0) & 0x01) & ((f_s_dadda_rca4_fa2_xor1 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa3_xor1 = ((f_s_dadda_rca4_u_rca6_fa3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_u_rca6_fa2_or0 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa3_and1 = ((f_s_dadda_rca4_u_rca6_fa3_xor0 >> 0) & 0x01) & ((f_s_dadda_rca4_u_rca6_fa2_or0 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa3_or0 = ((f_s_dadda_rca4_u_rca6_fa3_and0 >> 0) & 0x01) | ((f_s_dadda_rca4_u_rca6_fa3_and1 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa4_xor0 = ((f_s_dadda_rca4_nand_2_3 >> 0) & 0x01) ^ ((f_s_dadda_rca4_fa3_xor1 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa4_and0 = ((f_s_dadda_rca4_nand_2_3 >> 0) & 0x01) & ((f_s_dadda_rca4_fa3_xor1 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa4_xor1 = ((f_s_dadda_rca4_u_rca6_fa4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_u_rca6_fa3_or0 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa4_and1 = ((f_s_dadda_rca4_u_rca6_fa4_xor0 >> 0) & 0x01) & ((f_s_dadda_rca4_u_rca6_fa3_or0 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa4_or0 = ((f_s_dadda_rca4_u_rca6_fa4_and0 >> 0) & 0x01) | ((f_s_dadda_rca4_u_rca6_fa4_and1 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa5_xor0 = ((f_s_dadda_rca4_fa3_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_and_3_3 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa5_and0 = ((f_s_dadda_rca4_fa3_or0 >> 0) & 0x01) & ((f_s_dadda_rca4_and_3_3 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa5_xor1 = ((f_s_dadda_rca4_u_rca6_fa5_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca4_u_rca6_fa4_or0 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa5_and1 = ((f_s_dadda_rca4_u_rca6_fa5_xor0 >> 0) & 0x01) & ((f_s_dadda_rca4_u_rca6_fa4_or0 >> 0) & 0x01); - f_s_dadda_rca4_u_rca6_fa5_or0 = ((f_s_dadda_rca4_u_rca6_fa5_and0 >> 0) & 0x01) | ((f_s_dadda_rca4_u_rca6_fa5_and1 >> 0) & 0x01); - f_s_dadda_rca4_xor0 = ~(((f_s_dadda_rca4_u_rca6_fa5_or0 >> 0) & 0x01)) & 0x01; - - f_s_dadda_rca4_out |= ((f_s_dadda_rca4_and_0_0 >> 0) & 0x01) << 0; - f_s_dadda_rca4_out |= ((f_s_dadda_rca4_u_rca6_ha_xor0 >> 0) & 0x01) << 1; - f_s_dadda_rca4_out |= ((f_s_dadda_rca4_u_rca6_fa1_xor1 >> 0) & 0x01) << 2; - f_s_dadda_rca4_out |= ((f_s_dadda_rca4_u_rca6_fa2_xor1 >> 0) & 0x01) << 3; - f_s_dadda_rca4_out |= ((f_s_dadda_rca4_u_rca6_fa3_xor1 >> 0) & 0x01) << 4; - f_s_dadda_rca4_out |= ((f_s_dadda_rca4_u_rca6_fa4_xor1 >> 0) & 0x01) << 5; - f_s_dadda_rca4_out |= ((f_s_dadda_rca4_u_rca6_fa5_xor1 >> 0) & 0x01) << 6; - f_s_dadda_rca4_out |= ((f_s_dadda_rca4_xor0 >> 0) & 0x01) << 7; - return f_s_dadda_rca4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)f_s_dadda_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_rca8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_rca8.c deleted file mode 100644 index a1ef02f..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_dadda_rca8.c +++ /dev/null @@ -1,689 +0,0 @@ -#include -#include - -uint64_t f_s_dadda_rca8(uint64_t a, uint64_t b){ - uint64_t f_s_dadda_rca8_out = 0; - uint8_t f_s_dadda_rca8_and_6_0 = 0; - uint8_t f_s_dadda_rca8_and_5_1 = 0; - uint8_t f_s_dadda_rca8_ha0_xor0 = 0; - uint8_t f_s_dadda_rca8_ha0_and0 = 0; - uint8_t f_s_dadda_rca8_nand_7_0 = 0; - uint8_t f_s_dadda_rca8_and_6_1 = 0; - uint8_t f_s_dadda_rca8_fa0_xor0 = 0; - uint8_t f_s_dadda_rca8_fa0_and0 = 0; - uint8_t f_s_dadda_rca8_fa0_xor1 = 0; - uint8_t f_s_dadda_rca8_fa0_and1 = 0; - uint8_t f_s_dadda_rca8_fa0_or0 = 0; - uint8_t f_s_dadda_rca8_and_5_2 = 0; - uint8_t f_s_dadda_rca8_and_4_3 = 0; - uint8_t f_s_dadda_rca8_ha1_xor0 = 0; - uint8_t f_s_dadda_rca8_ha1_and0 = 0; - uint8_t f_s_dadda_rca8_fa1_xor0 = 0; - uint8_t f_s_dadda_rca8_fa1_and0 = 0; - uint8_t f_s_dadda_rca8_fa1_xor1 = 0; - uint8_t f_s_dadda_rca8_fa1_or0 = 0; - uint8_t f_s_dadda_rca8_nand_7_1 = 0; - uint8_t f_s_dadda_rca8_and_6_2 = 0; - uint8_t f_s_dadda_rca8_and_5_3 = 0; - uint8_t f_s_dadda_rca8_fa2_xor0 = 0; - uint8_t f_s_dadda_rca8_fa2_and0 = 0; - uint8_t f_s_dadda_rca8_fa2_xor1 = 0; - uint8_t f_s_dadda_rca8_fa2_and1 = 0; - uint8_t f_s_dadda_rca8_fa2_or0 = 0; - uint8_t f_s_dadda_rca8_nand_7_2 = 0; - uint8_t f_s_dadda_rca8_fa3_xor0 = 0; - uint8_t f_s_dadda_rca8_fa3_and0 = 0; - uint8_t f_s_dadda_rca8_fa3_xor1 = 0; - uint8_t f_s_dadda_rca8_fa3_and1 = 0; - uint8_t f_s_dadda_rca8_fa3_or0 = 0; - uint8_t f_s_dadda_rca8_and_3_0 = 0; - uint8_t f_s_dadda_rca8_and_2_1 = 0; - uint8_t f_s_dadda_rca8_ha2_xor0 = 0; - uint8_t f_s_dadda_rca8_ha2_and0 = 0; - uint8_t f_s_dadda_rca8_and_4_0 = 0; - uint8_t f_s_dadda_rca8_and_3_1 = 0; - uint8_t f_s_dadda_rca8_fa4_xor0 = 0; - uint8_t f_s_dadda_rca8_fa4_and0 = 0; - uint8_t f_s_dadda_rca8_fa4_xor1 = 0; - uint8_t f_s_dadda_rca8_fa4_and1 = 0; - uint8_t f_s_dadda_rca8_fa4_or0 = 0; - uint8_t f_s_dadda_rca8_and_2_2 = 0; - uint8_t f_s_dadda_rca8_and_1_3 = 0; - uint8_t f_s_dadda_rca8_ha3_xor0 = 0; - uint8_t f_s_dadda_rca8_ha3_and0 = 0; - uint8_t f_s_dadda_rca8_and_5_0 = 0; - uint8_t f_s_dadda_rca8_fa5_xor0 = 0; - uint8_t f_s_dadda_rca8_fa5_and0 = 0; - uint8_t f_s_dadda_rca8_fa5_xor1 = 0; - uint8_t f_s_dadda_rca8_fa5_and1 = 0; - uint8_t f_s_dadda_rca8_fa5_or0 = 0; - uint8_t f_s_dadda_rca8_and_4_1 = 0; - uint8_t f_s_dadda_rca8_and_3_2 = 0; - uint8_t f_s_dadda_rca8_and_2_3 = 0; - uint8_t f_s_dadda_rca8_fa6_xor0 = 0; - uint8_t f_s_dadda_rca8_fa6_and0 = 0; - uint8_t f_s_dadda_rca8_fa6_xor1 = 0; - uint8_t f_s_dadda_rca8_fa6_and1 = 0; - uint8_t f_s_dadda_rca8_fa6_or0 = 0; - uint8_t f_s_dadda_rca8_and_1_4 = 0; - uint8_t f_s_dadda_rca8_and_0_5 = 0; - uint8_t f_s_dadda_rca8_ha4_xor0 = 0; - uint8_t f_s_dadda_rca8_ha4_and0 = 0; - uint8_t f_s_dadda_rca8_fa7_xor0 = 0; - uint8_t f_s_dadda_rca8_fa7_and0 = 0; - uint8_t f_s_dadda_rca8_fa7_xor1 = 0; - uint8_t f_s_dadda_rca8_fa7_and1 = 0; - uint8_t f_s_dadda_rca8_fa7_or0 = 0; - uint8_t f_s_dadda_rca8_and_4_2 = 0; - uint8_t f_s_dadda_rca8_and_3_3 = 0; - uint8_t f_s_dadda_rca8_and_2_4 = 0; - uint8_t f_s_dadda_rca8_fa8_xor0 = 0; - uint8_t f_s_dadda_rca8_fa8_and0 = 0; - uint8_t f_s_dadda_rca8_fa8_xor1 = 0; - uint8_t f_s_dadda_rca8_fa8_and1 = 0; - uint8_t f_s_dadda_rca8_fa8_or0 = 0; - uint8_t f_s_dadda_rca8_and_1_5 = 0; - uint8_t f_s_dadda_rca8_and_0_6 = 0; - uint8_t f_s_dadda_rca8_fa9_xor0 = 0; - uint8_t f_s_dadda_rca8_fa9_and0 = 0; - uint8_t f_s_dadda_rca8_fa9_xor1 = 0; - uint8_t f_s_dadda_rca8_fa9_and1 = 0; - uint8_t f_s_dadda_rca8_fa9_or0 = 0; - uint8_t f_s_dadda_rca8_fa10_xor0 = 0; - uint8_t f_s_dadda_rca8_fa10_and0 = 0; - uint8_t f_s_dadda_rca8_fa10_xor1 = 0; - uint8_t f_s_dadda_rca8_fa10_and1 = 0; - uint8_t f_s_dadda_rca8_fa10_or0 = 0; - uint8_t f_s_dadda_rca8_and_3_4 = 0; - uint8_t f_s_dadda_rca8_and_2_5 = 0; - uint8_t f_s_dadda_rca8_and_1_6 = 0; - uint8_t f_s_dadda_rca8_fa11_xor0 = 0; - uint8_t f_s_dadda_rca8_fa11_and0 = 0; - uint8_t f_s_dadda_rca8_fa11_xor1 = 0; - uint8_t f_s_dadda_rca8_fa11_and1 = 0; - uint8_t f_s_dadda_rca8_fa11_or0 = 0; - uint8_t f_s_dadda_rca8_nand_0_7 = 0; - uint8_t f_s_dadda_rca8_fa12_xor0 = 0; - uint8_t f_s_dadda_rca8_fa12_and0 = 0; - uint8_t f_s_dadda_rca8_fa12_xor1 = 0; - uint8_t f_s_dadda_rca8_fa12_and1 = 0; - uint8_t f_s_dadda_rca8_fa12_or0 = 0; - uint8_t f_s_dadda_rca8_fa13_xor0 = 0; - uint8_t f_s_dadda_rca8_fa13_and0 = 0; - uint8_t f_s_dadda_rca8_fa13_xor1 = 0; - uint8_t f_s_dadda_rca8_fa13_and1 = 0; - uint8_t f_s_dadda_rca8_fa13_or0 = 0; - uint8_t f_s_dadda_rca8_and_4_4 = 0; - uint8_t f_s_dadda_rca8_and_3_5 = 0; - uint8_t f_s_dadda_rca8_and_2_6 = 0; - uint8_t f_s_dadda_rca8_fa14_xor0 = 0; - uint8_t f_s_dadda_rca8_fa14_and0 = 0; - uint8_t f_s_dadda_rca8_fa14_xor1 = 0; - uint8_t f_s_dadda_rca8_fa14_and1 = 0; - uint8_t f_s_dadda_rca8_fa14_or0 = 0; - uint8_t f_s_dadda_rca8_nand_1_7 = 0; - uint8_t f_s_dadda_rca8_fa15_xor0 = 0; - uint8_t f_s_dadda_rca8_fa15_and0 = 0; - uint8_t f_s_dadda_rca8_fa15_xor1 = 0; - uint8_t f_s_dadda_rca8_fa15_and1 = 0; - uint8_t f_s_dadda_rca8_fa15_or0 = 0; - uint8_t f_s_dadda_rca8_fa16_xor0 = 0; - uint8_t f_s_dadda_rca8_fa16_and0 = 0; - uint8_t f_s_dadda_rca8_fa16_xor1 = 0; - uint8_t f_s_dadda_rca8_fa16_and1 = 0; - uint8_t f_s_dadda_rca8_fa16_or0 = 0; - uint8_t f_s_dadda_rca8_and_6_3 = 0; - uint8_t f_s_dadda_rca8_and_5_4 = 0; - uint8_t f_s_dadda_rca8_and_4_5 = 0; - uint8_t f_s_dadda_rca8_fa17_xor0 = 0; - uint8_t f_s_dadda_rca8_fa17_and0 = 0; - uint8_t f_s_dadda_rca8_fa17_xor1 = 0; - uint8_t f_s_dadda_rca8_fa17_and1 = 0; - uint8_t f_s_dadda_rca8_fa17_or0 = 0; - uint8_t f_s_dadda_rca8_and_3_6 = 0; - uint8_t f_s_dadda_rca8_nand_2_7 = 0; - uint8_t f_s_dadda_rca8_fa18_xor0 = 0; - uint8_t f_s_dadda_rca8_fa18_and0 = 0; - uint8_t f_s_dadda_rca8_fa18_xor1 = 0; - uint8_t f_s_dadda_rca8_fa18_and1 = 0; - uint8_t f_s_dadda_rca8_fa18_or0 = 0; - uint8_t f_s_dadda_rca8_fa19_xor0 = 0; - uint8_t f_s_dadda_rca8_fa19_and0 = 0; - uint8_t f_s_dadda_rca8_fa19_xor1 = 0; - uint8_t f_s_dadda_rca8_fa19_and1 = 0; - uint8_t f_s_dadda_rca8_fa19_or0 = 0; - uint8_t f_s_dadda_rca8_nand_7_3 = 0; - uint8_t f_s_dadda_rca8_and_6_4 = 0; - uint8_t f_s_dadda_rca8_fa20_xor0 = 0; - uint8_t f_s_dadda_rca8_fa20_and0 = 0; - uint8_t f_s_dadda_rca8_fa20_xor1 = 0; - uint8_t f_s_dadda_rca8_fa20_and1 = 0; - uint8_t f_s_dadda_rca8_fa20_or0 = 0; - uint8_t f_s_dadda_rca8_and_5_5 = 0; - uint8_t f_s_dadda_rca8_and_4_6 = 0; - uint8_t f_s_dadda_rca8_nand_3_7 = 0; - uint8_t f_s_dadda_rca8_fa21_xor0 = 0; - uint8_t f_s_dadda_rca8_fa21_and0 = 0; - uint8_t f_s_dadda_rca8_fa21_xor1 = 0; - uint8_t f_s_dadda_rca8_fa21_and1 = 0; - uint8_t f_s_dadda_rca8_fa21_or0 = 0; - uint8_t f_s_dadda_rca8_fa22_xor0 = 0; - uint8_t f_s_dadda_rca8_fa22_and0 = 0; - uint8_t f_s_dadda_rca8_fa22_xor1 = 0; - uint8_t f_s_dadda_rca8_fa22_and1 = 0; - uint8_t f_s_dadda_rca8_fa22_or0 = 0; - uint8_t f_s_dadda_rca8_nand_7_4 = 0; - uint8_t f_s_dadda_rca8_and_6_5 = 0; - uint8_t f_s_dadda_rca8_and_5_6 = 0; - uint8_t f_s_dadda_rca8_fa23_xor0 = 0; - uint8_t f_s_dadda_rca8_fa23_and0 = 0; - uint8_t f_s_dadda_rca8_fa23_xor1 = 0; - uint8_t f_s_dadda_rca8_fa23_and1 = 0; - uint8_t f_s_dadda_rca8_fa23_or0 = 0; - uint8_t f_s_dadda_rca8_nand_7_5 = 0; - uint8_t f_s_dadda_rca8_fa24_xor0 = 0; - uint8_t f_s_dadda_rca8_fa24_and0 = 0; - uint8_t f_s_dadda_rca8_fa24_xor1 = 0; - uint8_t f_s_dadda_rca8_fa24_and1 = 0; - uint8_t f_s_dadda_rca8_fa24_or0 = 0; - uint8_t f_s_dadda_rca8_and_2_0 = 0; - uint8_t f_s_dadda_rca8_and_1_1 = 0; - uint8_t f_s_dadda_rca8_ha5_xor0 = 0; - uint8_t f_s_dadda_rca8_ha5_and0 = 0; - uint8_t f_s_dadda_rca8_and_1_2 = 0; - uint8_t f_s_dadda_rca8_and_0_3 = 0; - uint8_t f_s_dadda_rca8_fa25_xor0 = 0; - uint8_t f_s_dadda_rca8_fa25_and0 = 0; - uint8_t f_s_dadda_rca8_fa25_xor1 = 0; - uint8_t f_s_dadda_rca8_fa25_and1 = 0; - uint8_t f_s_dadda_rca8_fa25_or0 = 0; - uint8_t f_s_dadda_rca8_and_0_4 = 0; - uint8_t f_s_dadda_rca8_fa26_xor0 = 0; - uint8_t f_s_dadda_rca8_fa26_and0 = 0; - uint8_t f_s_dadda_rca8_fa26_xor1 = 0; - uint8_t f_s_dadda_rca8_fa26_and1 = 0; - uint8_t f_s_dadda_rca8_fa26_or0 = 0; - uint8_t f_s_dadda_rca8_fa27_xor0 = 0; - uint8_t f_s_dadda_rca8_fa27_and0 = 0; - uint8_t f_s_dadda_rca8_fa27_xor1 = 0; - uint8_t f_s_dadda_rca8_fa27_and1 = 0; - uint8_t f_s_dadda_rca8_fa27_or0 = 0; - uint8_t f_s_dadda_rca8_fa28_xor0 = 0; - uint8_t f_s_dadda_rca8_fa28_and0 = 0; - uint8_t f_s_dadda_rca8_fa28_xor1 = 0; - uint8_t f_s_dadda_rca8_fa28_and1 = 0; - uint8_t f_s_dadda_rca8_fa28_or0 = 0; - uint8_t f_s_dadda_rca8_fa29_xor0 = 0; - uint8_t f_s_dadda_rca8_fa29_and0 = 0; - uint8_t f_s_dadda_rca8_fa29_xor1 = 0; - uint8_t f_s_dadda_rca8_fa29_and1 = 0; - uint8_t f_s_dadda_rca8_fa29_or0 = 0; - uint8_t f_s_dadda_rca8_fa30_xor0 = 0; - uint8_t f_s_dadda_rca8_fa30_and0 = 0; - uint8_t f_s_dadda_rca8_fa30_xor1 = 0; - uint8_t f_s_dadda_rca8_fa30_and1 = 0; - uint8_t f_s_dadda_rca8_fa30_or0 = 0; - uint8_t f_s_dadda_rca8_fa31_xor0 = 0; - uint8_t f_s_dadda_rca8_fa31_and0 = 0; - uint8_t f_s_dadda_rca8_fa31_xor1 = 0; - uint8_t f_s_dadda_rca8_fa31_and1 = 0; - uint8_t f_s_dadda_rca8_fa31_or0 = 0; - uint8_t f_s_dadda_rca8_fa32_xor0 = 0; - uint8_t f_s_dadda_rca8_fa32_and0 = 0; - uint8_t f_s_dadda_rca8_fa32_xor1 = 0; - uint8_t f_s_dadda_rca8_fa32_and1 = 0; - uint8_t f_s_dadda_rca8_fa32_or0 = 0; - uint8_t f_s_dadda_rca8_nand_4_7 = 0; - uint8_t f_s_dadda_rca8_fa33_xor0 = 0; - uint8_t f_s_dadda_rca8_fa33_and0 = 0; - uint8_t f_s_dadda_rca8_fa33_xor1 = 0; - uint8_t f_s_dadda_rca8_fa33_and1 = 0; - uint8_t f_s_dadda_rca8_fa33_or0 = 0; - uint8_t f_s_dadda_rca8_and_6_6 = 0; - uint8_t f_s_dadda_rca8_nand_5_7 = 0; - uint8_t f_s_dadda_rca8_fa34_xor0 = 0; - uint8_t f_s_dadda_rca8_fa34_and0 = 0; - uint8_t f_s_dadda_rca8_fa34_xor1 = 0; - uint8_t f_s_dadda_rca8_fa34_and1 = 0; - uint8_t f_s_dadda_rca8_fa34_or0 = 0; - uint8_t f_s_dadda_rca8_nand_7_6 = 0; - uint8_t f_s_dadda_rca8_fa35_xor0 = 0; - uint8_t f_s_dadda_rca8_fa35_and0 = 0; - uint8_t f_s_dadda_rca8_fa35_xor1 = 0; - uint8_t f_s_dadda_rca8_fa35_and1 = 0; - uint8_t f_s_dadda_rca8_fa35_or0 = 0; - uint8_t f_s_dadda_rca8_and_0_0 = 0; - uint8_t f_s_dadda_rca8_and_1_0 = 0; - uint8_t f_s_dadda_rca8_and_0_2 = 0; - uint8_t f_s_dadda_rca8_nand_6_7 = 0; - uint8_t f_s_dadda_rca8_and_0_1 = 0; - uint8_t f_s_dadda_rca8_and_7_7 = 0; - uint8_t f_s_dadda_rca8_u_rca14_ha_xor0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_ha_and0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa1_xor0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa1_and0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa1_xor1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa1_and1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa1_or0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa2_xor0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa2_and0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa2_xor1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa2_and1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa2_or0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa3_xor0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa3_and0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa3_xor1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa3_and1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa3_or0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa4_xor0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa4_and0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa4_xor1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa4_and1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa4_or0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa5_xor0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa5_and0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa5_xor1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa5_and1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa5_or0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa6_xor0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa6_and0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa6_xor1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa6_and1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa6_or0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa7_xor0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa7_and0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa7_xor1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa7_and1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa7_or0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa8_xor0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa8_and0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa8_xor1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa8_and1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa8_or0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa9_xor0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa9_and0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa9_xor1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa9_and1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa9_or0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa10_xor0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa10_and0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa10_xor1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa10_and1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa10_or0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa11_xor0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa11_and0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa11_xor1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa11_and1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa11_or0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa12_xor0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa12_and0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa12_xor1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa12_and1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa12_or0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa13_xor0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa13_and0 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa13_xor1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa13_and1 = 0; - uint8_t f_s_dadda_rca8_u_rca14_fa13_or0 = 0; - uint8_t f_s_dadda_rca8_xor0 = 0; - - f_s_dadda_rca8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_rca8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_rca8_ha0_xor0 = ((f_s_dadda_rca8_and_6_0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_5_1 >> 0) & 0x01); - f_s_dadda_rca8_ha0_and0 = ((f_s_dadda_rca8_and_6_0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_5_1 >> 0) & 0x01); - f_s_dadda_rca8_nand_7_0 = ~(((a >> 7) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_dadda_rca8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_rca8_fa0_xor0 = ((f_s_dadda_rca8_ha0_and0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_nand_7_0 >> 0) & 0x01); - f_s_dadda_rca8_fa0_and0 = ((f_s_dadda_rca8_ha0_and0 >> 0) & 0x01) & ((f_s_dadda_rca8_nand_7_0 >> 0) & 0x01); - f_s_dadda_rca8_fa0_xor1 = ((f_s_dadda_rca8_fa0_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_6_1 >> 0) & 0x01); - f_s_dadda_rca8_fa0_and1 = ((f_s_dadda_rca8_fa0_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_6_1 >> 0) & 0x01); - f_s_dadda_rca8_fa0_or0 = ((f_s_dadda_rca8_fa0_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa0_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_rca8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_rca8_ha1_xor0 = ((f_s_dadda_rca8_and_5_2 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_4_3 >> 0) & 0x01); - f_s_dadda_rca8_ha1_and0 = ((f_s_dadda_rca8_and_5_2 >> 0) & 0x01) & ((f_s_dadda_rca8_and_4_3 >> 0) & 0x01); - f_s_dadda_rca8_fa1_xor0 = ((f_s_dadda_rca8_ha1_and0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa0_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa1_and0 = ((f_s_dadda_rca8_ha1_and0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa0_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa1_xor1 = ~(((f_s_dadda_rca8_fa1_xor0 >> 0) & 0x01)) & 0x01; - f_s_dadda_rca8_fa1_or0 = ((f_s_dadda_rca8_fa1_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa1_xor0 >> 0) & 0x01); - f_s_dadda_rca8_nand_7_1 = ~(((a >> 7) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_dadda_rca8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_rca8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_rca8_fa2_xor0 = ((f_s_dadda_rca8_nand_7_1 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_6_2 >> 0) & 0x01); - f_s_dadda_rca8_fa2_and0 = ((f_s_dadda_rca8_nand_7_1 >> 0) & 0x01) & ((f_s_dadda_rca8_and_6_2 >> 0) & 0x01); - f_s_dadda_rca8_fa2_xor1 = ((f_s_dadda_rca8_fa2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_5_3 >> 0) & 0x01); - f_s_dadda_rca8_fa2_and1 = ((f_s_dadda_rca8_fa2_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_5_3 >> 0) & 0x01); - f_s_dadda_rca8_fa2_or0 = ((f_s_dadda_rca8_fa2_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa2_and1 >> 0) & 0x01); - f_s_dadda_rca8_nand_7_2 = ~(((a >> 7) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_dadda_rca8_fa3_xor0 = ((f_s_dadda_rca8_fa2_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa1_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa3_and0 = ((f_s_dadda_rca8_fa2_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa1_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa3_xor1 = ((f_s_dadda_rca8_fa3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_nand_7_2 >> 0) & 0x01); - f_s_dadda_rca8_fa3_and1 = ((f_s_dadda_rca8_fa3_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_nand_7_2 >> 0) & 0x01); - f_s_dadda_rca8_fa3_or0 = ((f_s_dadda_rca8_fa3_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa3_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_rca8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_rca8_ha2_xor0 = ((f_s_dadda_rca8_and_3_0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_2_1 >> 0) & 0x01); - f_s_dadda_rca8_ha2_and0 = ((f_s_dadda_rca8_and_3_0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_2_1 >> 0) & 0x01); - f_s_dadda_rca8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_rca8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_rca8_fa4_xor0 = ((f_s_dadda_rca8_ha2_and0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_4_0 >> 0) & 0x01); - f_s_dadda_rca8_fa4_and0 = ((f_s_dadda_rca8_ha2_and0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_4_0 >> 0) & 0x01); - f_s_dadda_rca8_fa4_xor1 = ((f_s_dadda_rca8_fa4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_3_1 >> 0) & 0x01); - f_s_dadda_rca8_fa4_and1 = ((f_s_dadda_rca8_fa4_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_3_1 >> 0) & 0x01); - f_s_dadda_rca8_fa4_or0 = ((f_s_dadda_rca8_fa4_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa4_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_rca8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_rca8_ha3_xor0 = ((f_s_dadda_rca8_and_2_2 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_1_3 >> 0) & 0x01); - f_s_dadda_rca8_ha3_and0 = ((f_s_dadda_rca8_and_2_2 >> 0) & 0x01) & ((f_s_dadda_rca8_and_1_3 >> 0) & 0x01); - f_s_dadda_rca8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_rca8_fa5_xor0 = ((f_s_dadda_rca8_ha3_and0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa4_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa5_and0 = ((f_s_dadda_rca8_ha3_and0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa4_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa5_xor1 = ((f_s_dadda_rca8_fa5_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_5_0 >> 0) & 0x01); - f_s_dadda_rca8_fa5_and1 = ((f_s_dadda_rca8_fa5_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_5_0 >> 0) & 0x01); - f_s_dadda_rca8_fa5_or0 = ((f_s_dadda_rca8_fa5_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa5_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_rca8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_rca8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_rca8_fa6_xor0 = ((f_s_dadda_rca8_and_4_1 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_3_2 >> 0) & 0x01); - f_s_dadda_rca8_fa6_and0 = ((f_s_dadda_rca8_and_4_1 >> 0) & 0x01) & ((f_s_dadda_rca8_and_3_2 >> 0) & 0x01); - f_s_dadda_rca8_fa6_xor1 = ((f_s_dadda_rca8_fa6_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_2_3 >> 0) & 0x01); - f_s_dadda_rca8_fa6_and1 = ((f_s_dadda_rca8_fa6_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_2_3 >> 0) & 0x01); - f_s_dadda_rca8_fa6_or0 = ((f_s_dadda_rca8_fa6_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa6_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_rca8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_rca8_ha4_xor0 = ((f_s_dadda_rca8_and_1_4 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_0_5 >> 0) & 0x01); - f_s_dadda_rca8_ha4_and0 = ((f_s_dadda_rca8_and_1_4 >> 0) & 0x01) & ((f_s_dadda_rca8_and_0_5 >> 0) & 0x01); - f_s_dadda_rca8_fa7_xor0 = ((f_s_dadda_rca8_ha4_and0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa6_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa7_and0 = ((f_s_dadda_rca8_ha4_and0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa6_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa7_xor1 = ((f_s_dadda_rca8_fa7_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa5_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa7_and1 = ((f_s_dadda_rca8_fa7_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa5_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa7_or0 = ((f_s_dadda_rca8_fa7_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa7_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_rca8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_rca8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_rca8_fa8_xor0 = ((f_s_dadda_rca8_and_4_2 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_3_3 >> 0) & 0x01); - f_s_dadda_rca8_fa8_and0 = ((f_s_dadda_rca8_and_4_2 >> 0) & 0x01) & ((f_s_dadda_rca8_and_3_3 >> 0) & 0x01); - f_s_dadda_rca8_fa8_xor1 = ((f_s_dadda_rca8_fa8_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_2_4 >> 0) & 0x01); - f_s_dadda_rca8_fa8_and1 = ((f_s_dadda_rca8_fa8_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_2_4 >> 0) & 0x01); - f_s_dadda_rca8_fa8_or0 = ((f_s_dadda_rca8_fa8_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa8_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_rca8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_rca8_fa9_xor0 = ((f_s_dadda_rca8_and_1_5 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_0_6 >> 0) & 0x01); - f_s_dadda_rca8_fa9_and0 = ((f_s_dadda_rca8_and_1_5 >> 0) & 0x01) & ((f_s_dadda_rca8_and_0_6 >> 0) & 0x01); - f_s_dadda_rca8_fa9_xor1 = ((f_s_dadda_rca8_fa9_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_ha0_xor0 >> 0) & 0x01); - f_s_dadda_rca8_fa9_and1 = ((f_s_dadda_rca8_fa9_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_ha0_xor0 >> 0) & 0x01); - f_s_dadda_rca8_fa9_or0 = ((f_s_dadda_rca8_fa9_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa9_and1 >> 0) & 0x01); - f_s_dadda_rca8_fa10_xor0 = ((f_s_dadda_rca8_fa9_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa8_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa10_and0 = ((f_s_dadda_rca8_fa9_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa8_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa10_xor1 = ((f_s_dadda_rca8_fa10_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa7_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa10_and1 = ((f_s_dadda_rca8_fa10_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa7_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa10_or0 = ((f_s_dadda_rca8_fa10_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa10_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_rca8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_rca8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_rca8_fa11_xor0 = ((f_s_dadda_rca8_and_3_4 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_2_5 >> 0) & 0x01); - f_s_dadda_rca8_fa11_and0 = ((f_s_dadda_rca8_and_3_4 >> 0) & 0x01) & ((f_s_dadda_rca8_and_2_5 >> 0) & 0x01); - f_s_dadda_rca8_fa11_xor1 = ((f_s_dadda_rca8_fa11_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_1_6 >> 0) & 0x01); - f_s_dadda_rca8_fa11_and1 = ((f_s_dadda_rca8_fa11_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_1_6 >> 0) & 0x01); - f_s_dadda_rca8_fa11_or0 = ((f_s_dadda_rca8_fa11_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa11_and1 >> 0) & 0x01); - f_s_dadda_rca8_nand_0_7 = ~(((a >> 0) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_rca8_fa12_xor0 = ((f_s_dadda_rca8_nand_0_7 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa0_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa12_and0 = ((f_s_dadda_rca8_nand_0_7 >> 0) & 0x01) & ((f_s_dadda_rca8_fa0_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa12_xor1 = ((f_s_dadda_rca8_fa12_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_ha1_xor0 >> 0) & 0x01); - f_s_dadda_rca8_fa12_and1 = ((f_s_dadda_rca8_fa12_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_ha1_xor0 >> 0) & 0x01); - f_s_dadda_rca8_fa12_or0 = ((f_s_dadda_rca8_fa12_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa12_and1 >> 0) & 0x01); - f_s_dadda_rca8_fa13_xor0 = ((f_s_dadda_rca8_fa12_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa11_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa13_and0 = ((f_s_dadda_rca8_fa12_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa11_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa13_xor1 = ((f_s_dadda_rca8_fa13_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa10_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa13_and1 = ((f_s_dadda_rca8_fa13_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa10_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa13_or0 = ((f_s_dadda_rca8_fa13_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa13_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_rca8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_rca8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_rca8_fa14_xor0 = ((f_s_dadda_rca8_and_4_4 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_3_5 >> 0) & 0x01); - f_s_dadda_rca8_fa14_and0 = ((f_s_dadda_rca8_and_4_4 >> 0) & 0x01) & ((f_s_dadda_rca8_and_3_5 >> 0) & 0x01); - f_s_dadda_rca8_fa14_xor1 = ((f_s_dadda_rca8_fa14_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_2_6 >> 0) & 0x01); - f_s_dadda_rca8_fa14_and1 = ((f_s_dadda_rca8_fa14_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_2_6 >> 0) & 0x01); - f_s_dadda_rca8_fa14_or0 = ((f_s_dadda_rca8_fa14_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa14_and1 >> 0) & 0x01); - f_s_dadda_rca8_nand_1_7 = ~(((a >> 1) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_rca8_fa15_xor0 = ((f_s_dadda_rca8_nand_1_7 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa1_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa15_and0 = ((f_s_dadda_rca8_nand_1_7 >> 0) & 0x01) & ((f_s_dadda_rca8_fa1_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa15_xor1 = ((f_s_dadda_rca8_fa15_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa2_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa15_and1 = ((f_s_dadda_rca8_fa15_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa2_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa15_or0 = ((f_s_dadda_rca8_fa15_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa15_and1 >> 0) & 0x01); - f_s_dadda_rca8_fa16_xor0 = ((f_s_dadda_rca8_fa15_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa14_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa16_and0 = ((f_s_dadda_rca8_fa15_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa14_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa16_xor1 = ((f_s_dadda_rca8_fa16_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa13_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa16_and1 = ((f_s_dadda_rca8_fa16_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa13_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa16_or0 = ((f_s_dadda_rca8_fa16_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa16_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_rca8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_rca8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_rca8_fa17_xor0 = ((f_s_dadda_rca8_and_6_3 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_5_4 >> 0) & 0x01); - f_s_dadda_rca8_fa17_and0 = ((f_s_dadda_rca8_and_6_3 >> 0) & 0x01) & ((f_s_dadda_rca8_and_5_4 >> 0) & 0x01); - f_s_dadda_rca8_fa17_xor1 = ((f_s_dadda_rca8_fa17_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_4_5 >> 0) & 0x01); - f_s_dadda_rca8_fa17_and1 = ((f_s_dadda_rca8_fa17_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_4_5 >> 0) & 0x01); - f_s_dadda_rca8_fa17_or0 = ((f_s_dadda_rca8_fa17_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa17_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_rca8_nand_2_7 = ~(((a >> 2) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_rca8_fa18_xor0 = ((f_s_dadda_rca8_and_3_6 >> 0) & 0x01) ^ ((f_s_dadda_rca8_nand_2_7 >> 0) & 0x01); - f_s_dadda_rca8_fa18_and0 = ((f_s_dadda_rca8_and_3_6 >> 0) & 0x01) & ((f_s_dadda_rca8_nand_2_7 >> 0) & 0x01); - f_s_dadda_rca8_fa18_xor1 = ((f_s_dadda_rca8_fa18_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa3_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa18_and1 = ((f_s_dadda_rca8_fa18_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa3_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa18_or0 = ((f_s_dadda_rca8_fa18_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa18_and1 >> 0) & 0x01); - f_s_dadda_rca8_fa19_xor0 = ((f_s_dadda_rca8_fa18_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa17_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa19_and0 = ((f_s_dadda_rca8_fa18_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa17_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa19_xor1 = ((f_s_dadda_rca8_fa19_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa16_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa19_and1 = ((f_s_dadda_rca8_fa19_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa16_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa19_or0 = ((f_s_dadda_rca8_fa19_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa19_and1 >> 0) & 0x01); - f_s_dadda_rca8_nand_7_3 = ~(((a >> 7) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_dadda_rca8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_rca8_fa20_xor0 = ((f_s_dadda_rca8_fa3_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_nand_7_3 >> 0) & 0x01); - f_s_dadda_rca8_fa20_and0 = ((f_s_dadda_rca8_fa3_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_nand_7_3 >> 0) & 0x01); - f_s_dadda_rca8_fa20_xor1 = ((f_s_dadda_rca8_fa20_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_6_4 >> 0) & 0x01); - f_s_dadda_rca8_fa20_and1 = ((f_s_dadda_rca8_fa20_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_6_4 >> 0) & 0x01); - f_s_dadda_rca8_fa20_or0 = ((f_s_dadda_rca8_fa20_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa20_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_rca8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_rca8_nand_3_7 = ~(((a >> 3) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_rca8_fa21_xor0 = ((f_s_dadda_rca8_and_5_5 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_4_6 >> 0) & 0x01); - f_s_dadda_rca8_fa21_and0 = ((f_s_dadda_rca8_and_5_5 >> 0) & 0x01) & ((f_s_dadda_rca8_and_4_6 >> 0) & 0x01); - f_s_dadda_rca8_fa21_xor1 = ((f_s_dadda_rca8_fa21_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_nand_3_7 >> 0) & 0x01); - f_s_dadda_rca8_fa21_and1 = ((f_s_dadda_rca8_fa21_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_nand_3_7 >> 0) & 0x01); - f_s_dadda_rca8_fa21_or0 = ((f_s_dadda_rca8_fa21_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa21_and1 >> 0) & 0x01); - f_s_dadda_rca8_fa22_xor0 = ((f_s_dadda_rca8_fa21_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa20_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa22_and0 = ((f_s_dadda_rca8_fa21_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa20_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa22_xor1 = ((f_s_dadda_rca8_fa22_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa19_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa22_and1 = ((f_s_dadda_rca8_fa22_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa19_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa22_or0 = ((f_s_dadda_rca8_fa22_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa22_and1 >> 0) & 0x01); - f_s_dadda_rca8_nand_7_4 = ~(((a >> 7) & 0x01) & ((b >> 4) & 0x01)) & 0x01; - f_s_dadda_rca8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_s_dadda_rca8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_rca8_fa23_xor0 = ((f_s_dadda_rca8_nand_7_4 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_6_5 >> 0) & 0x01); - f_s_dadda_rca8_fa23_and0 = ((f_s_dadda_rca8_nand_7_4 >> 0) & 0x01) & ((f_s_dadda_rca8_and_6_5 >> 0) & 0x01); - f_s_dadda_rca8_fa23_xor1 = ((f_s_dadda_rca8_fa23_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_5_6 >> 0) & 0x01); - f_s_dadda_rca8_fa23_and1 = ((f_s_dadda_rca8_fa23_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_5_6 >> 0) & 0x01); - f_s_dadda_rca8_fa23_or0 = ((f_s_dadda_rca8_fa23_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa23_and1 >> 0) & 0x01); - f_s_dadda_rca8_nand_7_5 = ~(((a >> 7) & 0x01) & ((b >> 5) & 0x01)) & 0x01; - f_s_dadda_rca8_fa24_xor0 = ((f_s_dadda_rca8_fa23_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa22_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa24_and0 = ((f_s_dadda_rca8_fa23_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa22_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa24_xor1 = ((f_s_dadda_rca8_fa24_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_nand_7_5 >> 0) & 0x01); - f_s_dadda_rca8_fa24_and1 = ((f_s_dadda_rca8_fa24_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_nand_7_5 >> 0) & 0x01); - f_s_dadda_rca8_fa24_or0 = ((f_s_dadda_rca8_fa24_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa24_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_rca8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_rca8_ha5_xor0 = ((f_s_dadda_rca8_and_2_0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_1_1 >> 0) & 0x01); - f_s_dadda_rca8_ha5_and0 = ((f_s_dadda_rca8_and_2_0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_1_1 >> 0) & 0x01); - f_s_dadda_rca8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_rca8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_s_dadda_rca8_fa25_xor0 = ((f_s_dadda_rca8_ha5_and0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_1_2 >> 0) & 0x01); - f_s_dadda_rca8_fa25_and0 = ((f_s_dadda_rca8_ha5_and0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_1_2 >> 0) & 0x01); - f_s_dadda_rca8_fa25_xor1 = ((f_s_dadda_rca8_fa25_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_0_3 >> 0) & 0x01); - f_s_dadda_rca8_fa25_and1 = ((f_s_dadda_rca8_fa25_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_0_3 >> 0) & 0x01); - f_s_dadda_rca8_fa25_or0 = ((f_s_dadda_rca8_fa25_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa25_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_s_dadda_rca8_fa26_xor0 = ((f_s_dadda_rca8_fa25_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_0_4 >> 0) & 0x01); - f_s_dadda_rca8_fa26_and0 = ((f_s_dadda_rca8_fa25_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_0_4 >> 0) & 0x01); - f_s_dadda_rca8_fa26_xor1 = ((f_s_dadda_rca8_fa26_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa4_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa26_and1 = ((f_s_dadda_rca8_fa26_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa4_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa26_or0 = ((f_s_dadda_rca8_fa26_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa26_and1 >> 0) & 0x01); - f_s_dadda_rca8_fa27_xor0 = ((f_s_dadda_rca8_fa26_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa5_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa27_and0 = ((f_s_dadda_rca8_fa26_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa5_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa27_xor1 = ((f_s_dadda_rca8_fa27_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa6_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa27_and1 = ((f_s_dadda_rca8_fa27_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa6_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa27_or0 = ((f_s_dadda_rca8_fa27_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa27_and1 >> 0) & 0x01); - f_s_dadda_rca8_fa28_xor0 = ((f_s_dadda_rca8_fa27_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa7_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa28_and0 = ((f_s_dadda_rca8_fa27_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa7_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa28_xor1 = ((f_s_dadda_rca8_fa28_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa8_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa28_and1 = ((f_s_dadda_rca8_fa28_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa8_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa28_or0 = ((f_s_dadda_rca8_fa28_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa28_and1 >> 0) & 0x01); - f_s_dadda_rca8_fa29_xor0 = ((f_s_dadda_rca8_fa28_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa10_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa29_and0 = ((f_s_dadda_rca8_fa28_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa10_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa29_xor1 = ((f_s_dadda_rca8_fa29_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa11_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa29_and1 = ((f_s_dadda_rca8_fa29_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa11_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa29_or0 = ((f_s_dadda_rca8_fa29_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa29_and1 >> 0) & 0x01); - f_s_dadda_rca8_fa30_xor0 = ((f_s_dadda_rca8_fa29_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa13_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa30_and0 = ((f_s_dadda_rca8_fa29_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa13_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa30_xor1 = ((f_s_dadda_rca8_fa30_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa14_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa30_and1 = ((f_s_dadda_rca8_fa30_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa14_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa30_or0 = ((f_s_dadda_rca8_fa30_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa30_and1 >> 0) & 0x01); - f_s_dadda_rca8_fa31_xor0 = ((f_s_dadda_rca8_fa30_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa16_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa31_and0 = ((f_s_dadda_rca8_fa30_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa16_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa31_xor1 = ((f_s_dadda_rca8_fa31_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa17_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa31_and1 = ((f_s_dadda_rca8_fa31_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa17_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa31_or0 = ((f_s_dadda_rca8_fa31_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa31_and1 >> 0) & 0x01); - f_s_dadda_rca8_fa32_xor0 = ((f_s_dadda_rca8_fa31_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa19_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa32_and0 = ((f_s_dadda_rca8_fa31_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa19_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa32_xor1 = ((f_s_dadda_rca8_fa32_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa20_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa32_and1 = ((f_s_dadda_rca8_fa32_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa20_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa32_or0 = ((f_s_dadda_rca8_fa32_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa32_and1 >> 0) & 0x01); - f_s_dadda_rca8_nand_4_7 = ~(((a >> 4) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_rca8_fa33_xor0 = ((f_s_dadda_rca8_fa32_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_nand_4_7 >> 0) & 0x01); - f_s_dadda_rca8_fa33_and0 = ((f_s_dadda_rca8_fa32_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_nand_4_7 >> 0) & 0x01); - f_s_dadda_rca8_fa33_xor1 = ((f_s_dadda_rca8_fa33_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa22_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa33_and1 = ((f_s_dadda_rca8_fa33_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa22_xor1 >> 0) & 0x01); - f_s_dadda_rca8_fa33_or0 = ((f_s_dadda_rca8_fa33_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa33_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_s_dadda_rca8_nand_5_7 = ~(((a >> 5) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_rca8_fa34_xor0 = ((f_s_dadda_rca8_fa33_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_6_6 >> 0) & 0x01); - f_s_dadda_rca8_fa34_and0 = ((f_s_dadda_rca8_fa33_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_6_6 >> 0) & 0x01); - f_s_dadda_rca8_fa34_xor1 = ((f_s_dadda_rca8_fa34_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_nand_5_7 >> 0) & 0x01); - f_s_dadda_rca8_fa34_and1 = ((f_s_dadda_rca8_fa34_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_nand_5_7 >> 0) & 0x01); - f_s_dadda_rca8_fa34_or0 = ((f_s_dadda_rca8_fa34_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa34_and1 >> 0) & 0x01); - f_s_dadda_rca8_nand_7_6 = ~(((a >> 7) & 0x01) & ((b >> 6) & 0x01)) & 0x01; - f_s_dadda_rca8_fa35_xor0 = ((f_s_dadda_rca8_fa34_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa24_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa35_and0 = ((f_s_dadda_rca8_fa34_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa24_or0 >> 0) & 0x01); - f_s_dadda_rca8_fa35_xor1 = ((f_s_dadda_rca8_fa35_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_nand_7_6 >> 0) & 0x01); - f_s_dadda_rca8_fa35_and1 = ((f_s_dadda_rca8_fa35_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_nand_7_6 >> 0) & 0x01); - f_s_dadda_rca8_fa35_or0 = ((f_s_dadda_rca8_fa35_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_fa35_and1 >> 0) & 0x01); - f_s_dadda_rca8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_rca8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_dadda_rca8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_dadda_rca8_nand_6_7 = ~(((a >> 6) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_dadda_rca8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_dadda_rca8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_s_dadda_rca8_u_rca14_ha_xor0 = ((f_s_dadda_rca8_and_1_0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_0_1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_ha_and0 = ((f_s_dadda_rca8_and_1_0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_0_1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa1_xor0 = ((f_s_dadda_rca8_and_0_2 >> 0) & 0x01) ^ ((f_s_dadda_rca8_ha5_xor0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa1_and0 = ((f_s_dadda_rca8_and_0_2 >> 0) & 0x01) & ((f_s_dadda_rca8_ha5_xor0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa1_xor1 = ((f_s_dadda_rca8_u_rca14_fa1_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_u_rca14_ha_and0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa1_and1 = ((f_s_dadda_rca8_u_rca14_fa1_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_u_rca14_ha_and0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa1_or0 = ((f_s_dadda_rca8_u_rca14_fa1_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_u_rca14_fa1_and1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa2_xor0 = ((f_s_dadda_rca8_ha2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa25_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa2_and0 = ((f_s_dadda_rca8_ha2_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa25_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa2_xor1 = ((f_s_dadda_rca8_u_rca14_fa2_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_u_rca14_fa1_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa2_and1 = ((f_s_dadda_rca8_u_rca14_fa2_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_u_rca14_fa1_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa2_or0 = ((f_s_dadda_rca8_u_rca14_fa2_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_u_rca14_fa2_and1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa3_xor0 = ((f_s_dadda_rca8_ha3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa26_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa3_and0 = ((f_s_dadda_rca8_ha3_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa26_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa3_xor1 = ((f_s_dadda_rca8_u_rca14_fa3_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_u_rca14_fa2_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa3_and1 = ((f_s_dadda_rca8_u_rca14_fa3_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_u_rca14_fa2_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa3_or0 = ((f_s_dadda_rca8_u_rca14_fa3_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_u_rca14_fa3_and1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa4_xor0 = ((f_s_dadda_rca8_ha4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa27_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa4_and0 = ((f_s_dadda_rca8_ha4_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_fa27_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa4_xor1 = ((f_s_dadda_rca8_u_rca14_fa4_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_u_rca14_fa3_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa4_and1 = ((f_s_dadda_rca8_u_rca14_fa4_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_u_rca14_fa3_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa4_or0 = ((f_s_dadda_rca8_u_rca14_fa4_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_u_rca14_fa4_and1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa5_xor0 = ((f_s_dadda_rca8_fa9_xor1 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa28_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa5_and0 = ((f_s_dadda_rca8_fa9_xor1 >> 0) & 0x01) & ((f_s_dadda_rca8_fa28_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa5_xor1 = ((f_s_dadda_rca8_u_rca14_fa5_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_u_rca14_fa4_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa5_and1 = ((f_s_dadda_rca8_u_rca14_fa5_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_u_rca14_fa4_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa5_or0 = ((f_s_dadda_rca8_u_rca14_fa5_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_u_rca14_fa5_and1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa6_xor0 = ((f_s_dadda_rca8_fa12_xor1 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa29_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa6_and0 = ((f_s_dadda_rca8_fa12_xor1 >> 0) & 0x01) & ((f_s_dadda_rca8_fa29_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa6_xor1 = ((f_s_dadda_rca8_u_rca14_fa6_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_u_rca14_fa5_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa6_and1 = ((f_s_dadda_rca8_u_rca14_fa6_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_u_rca14_fa5_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa6_or0 = ((f_s_dadda_rca8_u_rca14_fa6_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_u_rca14_fa6_and1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa7_xor0 = ((f_s_dadda_rca8_fa15_xor1 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa30_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa7_and0 = ((f_s_dadda_rca8_fa15_xor1 >> 0) & 0x01) & ((f_s_dadda_rca8_fa30_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa7_xor1 = ((f_s_dadda_rca8_u_rca14_fa7_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_u_rca14_fa6_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa7_and1 = ((f_s_dadda_rca8_u_rca14_fa7_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_u_rca14_fa6_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa7_or0 = ((f_s_dadda_rca8_u_rca14_fa7_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_u_rca14_fa7_and1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa8_xor0 = ((f_s_dadda_rca8_fa18_xor1 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa31_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa8_and0 = ((f_s_dadda_rca8_fa18_xor1 >> 0) & 0x01) & ((f_s_dadda_rca8_fa31_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa8_xor1 = ((f_s_dadda_rca8_u_rca14_fa8_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_u_rca14_fa7_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa8_and1 = ((f_s_dadda_rca8_u_rca14_fa8_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_u_rca14_fa7_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa8_or0 = ((f_s_dadda_rca8_u_rca14_fa8_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_u_rca14_fa8_and1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa9_xor0 = ((f_s_dadda_rca8_fa21_xor1 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa32_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa9_and0 = ((f_s_dadda_rca8_fa21_xor1 >> 0) & 0x01) & ((f_s_dadda_rca8_fa32_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa9_xor1 = ((f_s_dadda_rca8_u_rca14_fa9_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_u_rca14_fa8_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa9_and1 = ((f_s_dadda_rca8_u_rca14_fa9_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_u_rca14_fa8_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa9_or0 = ((f_s_dadda_rca8_u_rca14_fa9_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_u_rca14_fa9_and1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa10_xor0 = ((f_s_dadda_rca8_fa23_xor1 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa33_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa10_and0 = ((f_s_dadda_rca8_fa23_xor1 >> 0) & 0x01) & ((f_s_dadda_rca8_fa33_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa10_xor1 = ((f_s_dadda_rca8_u_rca14_fa10_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_u_rca14_fa9_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa10_and1 = ((f_s_dadda_rca8_u_rca14_fa10_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_u_rca14_fa9_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa10_or0 = ((f_s_dadda_rca8_u_rca14_fa10_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_u_rca14_fa10_and1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa11_xor0 = ((f_s_dadda_rca8_fa24_xor1 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa34_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa11_and0 = ((f_s_dadda_rca8_fa24_xor1 >> 0) & 0x01) & ((f_s_dadda_rca8_fa34_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa11_xor1 = ((f_s_dadda_rca8_u_rca14_fa11_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_u_rca14_fa10_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa11_and1 = ((f_s_dadda_rca8_u_rca14_fa11_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_u_rca14_fa10_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa11_or0 = ((f_s_dadda_rca8_u_rca14_fa11_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_u_rca14_fa11_and1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa12_xor0 = ((f_s_dadda_rca8_nand_6_7 >> 0) & 0x01) ^ ((f_s_dadda_rca8_fa35_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa12_and0 = ((f_s_dadda_rca8_nand_6_7 >> 0) & 0x01) & ((f_s_dadda_rca8_fa35_xor1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa12_xor1 = ((f_s_dadda_rca8_u_rca14_fa12_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_u_rca14_fa11_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa12_and1 = ((f_s_dadda_rca8_u_rca14_fa12_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_u_rca14_fa11_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa12_or0 = ((f_s_dadda_rca8_u_rca14_fa12_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_u_rca14_fa12_and1 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa13_xor0 = ((f_s_dadda_rca8_fa35_or0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_and_7_7 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa13_and0 = ((f_s_dadda_rca8_fa35_or0 >> 0) & 0x01) & ((f_s_dadda_rca8_and_7_7 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa13_xor1 = ((f_s_dadda_rca8_u_rca14_fa13_xor0 >> 0) & 0x01) ^ ((f_s_dadda_rca8_u_rca14_fa12_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa13_and1 = ((f_s_dadda_rca8_u_rca14_fa13_xor0 >> 0) & 0x01) & ((f_s_dadda_rca8_u_rca14_fa12_or0 >> 0) & 0x01); - f_s_dadda_rca8_u_rca14_fa13_or0 = ((f_s_dadda_rca8_u_rca14_fa13_and0 >> 0) & 0x01) | ((f_s_dadda_rca8_u_rca14_fa13_and1 >> 0) & 0x01); - f_s_dadda_rca8_xor0 = ~(((f_s_dadda_rca8_u_rca14_fa13_or0 >> 0) & 0x01)) & 0x01; - - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_and_0_0 >> 0) & 0x01) << 0; - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_u_rca14_ha_xor0 >> 0) & 0x01) << 1; - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_u_rca14_fa1_xor1 >> 0) & 0x01) << 2; - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_u_rca14_fa2_xor1 >> 0) & 0x01) << 3; - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_u_rca14_fa3_xor1 >> 0) & 0x01) << 4; - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_u_rca14_fa4_xor1 >> 0) & 0x01) << 5; - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_u_rca14_fa5_xor1 >> 0) & 0x01) << 6; - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_u_rca14_fa6_xor1 >> 0) & 0x01) << 7; - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_u_rca14_fa7_xor1 >> 0) & 0x01) << 8; - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_u_rca14_fa8_xor1 >> 0) & 0x01) << 9; - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_u_rca14_fa9_xor1 >> 0) & 0x01) << 10; - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_u_rca14_fa10_xor1 >> 0) & 0x01) << 11; - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_u_rca14_fa11_xor1 >> 0) & 0x01) << 12; - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_u_rca14_fa12_xor1 >> 0) & 0x01) << 13; - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_u_rca14_fa13_xor1 >> 0) & 0x01) << 14; - f_s_dadda_rca8_out |= ((f_s_dadda_rca8_xor0 >> 0) & 0x01) << 15; - return f_s_dadda_rca8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)f_s_dadda_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cla4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cla4.c deleted file mode 100644 index ef21534..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cla4.c +++ /dev/null @@ -1,211 +0,0 @@ -#include -#include - -uint64_t f_s_wallace_cla4(uint64_t a, uint64_t b){ - uint8_t f_s_wallace_cla4_out = 0; - uint8_t f_s_wallace_cla4_and_2_0 = 0; - uint8_t f_s_wallace_cla4_and_1_1 = 0; - uint8_t f_s_wallace_cla4_ha0_xor0 = 0; - uint8_t f_s_wallace_cla4_ha0_and0 = 0; - uint8_t f_s_wallace_cla4_nand_3_0 = 0; - uint8_t f_s_wallace_cla4_and_2_1 = 0; - uint8_t f_s_wallace_cla4_fa0_xor0 = 0; - uint8_t f_s_wallace_cla4_fa0_and0 = 0; - uint8_t f_s_wallace_cla4_fa0_xor1 = 0; - uint8_t f_s_wallace_cla4_fa0_and1 = 0; - uint8_t f_s_wallace_cla4_fa0_or0 = 0; - uint8_t f_s_wallace_cla4_nand_3_1 = 0; - uint8_t f_s_wallace_cla4_fa1_xor0 = 0; - uint8_t f_s_wallace_cla4_fa1_xor1 = 0; - uint8_t f_s_wallace_cla4_fa1_and1 = 0; - uint8_t f_s_wallace_cla4_fa1_or0 = 0; - uint8_t f_s_wallace_cla4_and_1_2 = 0; - uint8_t f_s_wallace_cla4_nand_0_3 = 0; - uint8_t f_s_wallace_cla4_ha1_xor0 = 0; - uint8_t f_s_wallace_cla4_ha1_and0 = 0; - uint8_t f_s_wallace_cla4_and_2_2 = 0; - uint8_t f_s_wallace_cla4_nand_1_3 = 0; - uint8_t f_s_wallace_cla4_fa2_xor0 = 0; - uint8_t f_s_wallace_cla4_fa2_and0 = 0; - uint8_t f_s_wallace_cla4_fa2_xor1 = 0; - uint8_t f_s_wallace_cla4_fa2_and1 = 0; - uint8_t f_s_wallace_cla4_fa2_or0 = 0; - uint8_t f_s_wallace_cla4_nand_3_2 = 0; - uint8_t f_s_wallace_cla4_fa3_xor0 = 0; - uint8_t f_s_wallace_cla4_fa3_and0 = 0; - uint8_t f_s_wallace_cla4_fa3_xor1 = 0; - uint8_t f_s_wallace_cla4_fa3_and1 = 0; - uint8_t f_s_wallace_cla4_fa3_or0 = 0; - uint8_t f_s_wallace_cla4_and_0_0 = 0; - uint8_t f_s_wallace_cla4_and_1_0 = 0; - uint8_t f_s_wallace_cla4_and_0_2 = 0; - uint8_t f_s_wallace_cla4_nand_2_3 = 0; - uint8_t f_s_wallace_cla4_and_0_1 = 0; - uint8_t f_s_wallace_cla4_and_3_3 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic0_or0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic0_and0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic0_xor0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic1_or0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic1_and0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic1_xor0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_xor1 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_or0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic2_or0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic2_and0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic2_xor0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_xor2 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and1 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and2 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and3 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and4 = 0; - uint8_t f_s_wallace_cla4_u_cla6_or1 = 0; - uint8_t f_s_wallace_cla4_u_cla6_or2 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic3_or0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic3_and0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic3_xor0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_xor3 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and5 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and6 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and7 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and8 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and9 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and10 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and11 = 0; - uint8_t f_s_wallace_cla4_u_cla6_or3 = 0; - uint8_t f_s_wallace_cla4_u_cla6_or4 = 0; - uint8_t f_s_wallace_cla4_u_cla6_or5 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic4_or0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic4_and0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic4_xor0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_xor4 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and12 = 0; - uint8_t f_s_wallace_cla4_u_cla6_or6 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic5_or0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic5_and0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_pg_logic5_xor0 = 0; - uint8_t f_s_wallace_cla4_u_cla6_xor5 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and13 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and14 = 0; - uint8_t f_s_wallace_cla4_u_cla6_and15 = 0; - uint8_t f_s_wallace_cla4_u_cla6_or7 = 0; - uint8_t f_s_wallace_cla4_u_cla6_or8 = 0; - uint8_t f_s_wallace_cla4_xor0 = 0; - - f_s_wallace_cla4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cla4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cla4_ha0_xor0 = ((f_s_wallace_cla4_and_2_0 >> 0) & 0x01) ^ ((f_s_wallace_cla4_and_1_1 >> 0) & 0x01); - f_s_wallace_cla4_ha0_and0 = ((f_s_wallace_cla4_and_2_0 >> 0) & 0x01) & ((f_s_wallace_cla4_and_1_1 >> 0) & 0x01); - f_s_wallace_cla4_nand_3_0 = ~(((a >> 3) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_wallace_cla4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cla4_fa0_xor0 = ((f_s_wallace_cla4_ha0_and0 >> 0) & 0x01) ^ ((f_s_wallace_cla4_nand_3_0 >> 0) & 0x01); - f_s_wallace_cla4_fa0_and0 = ((f_s_wallace_cla4_ha0_and0 >> 0) & 0x01) & ((f_s_wallace_cla4_nand_3_0 >> 0) & 0x01); - f_s_wallace_cla4_fa0_xor1 = ((f_s_wallace_cla4_fa0_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla4_and_2_1 >> 0) & 0x01); - f_s_wallace_cla4_fa0_and1 = ((f_s_wallace_cla4_fa0_xor0 >> 0) & 0x01) & ((f_s_wallace_cla4_and_2_1 >> 0) & 0x01); - f_s_wallace_cla4_fa0_or0 = ((f_s_wallace_cla4_fa0_and0 >> 0) & 0x01) | ((f_s_wallace_cla4_fa0_and1 >> 0) & 0x01); - f_s_wallace_cla4_nand_3_1 = ~(((a >> 3) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_wallace_cla4_fa1_xor0 = ~(((f_s_wallace_cla4_fa0_or0 >> 0) & 0x01)) & 0x01; - f_s_wallace_cla4_fa1_xor1 = ((f_s_wallace_cla4_fa1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla4_nand_3_1 >> 0) & 0x01); - f_s_wallace_cla4_fa1_and1 = ((f_s_wallace_cla4_fa1_xor0 >> 0) & 0x01) & ((f_s_wallace_cla4_nand_3_1 >> 0) & 0x01); - f_s_wallace_cla4_fa1_or0 = ((f_s_wallace_cla4_fa0_or0 >> 0) & 0x01) | ((f_s_wallace_cla4_fa1_and1 >> 0) & 0x01); - f_s_wallace_cla4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cla4_nand_0_3 = ~(((a >> 0) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_cla4_ha1_xor0 = ((f_s_wallace_cla4_and_1_2 >> 0) & 0x01) ^ ((f_s_wallace_cla4_nand_0_3 >> 0) & 0x01); - f_s_wallace_cla4_ha1_and0 = ((f_s_wallace_cla4_and_1_2 >> 0) & 0x01) & ((f_s_wallace_cla4_nand_0_3 >> 0) & 0x01); - f_s_wallace_cla4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cla4_nand_1_3 = ~(((a >> 1) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_cla4_fa2_xor0 = ((f_s_wallace_cla4_ha1_and0 >> 0) & 0x01) ^ ((f_s_wallace_cla4_and_2_2 >> 0) & 0x01); - f_s_wallace_cla4_fa2_and0 = ((f_s_wallace_cla4_ha1_and0 >> 0) & 0x01) & ((f_s_wallace_cla4_and_2_2 >> 0) & 0x01); - f_s_wallace_cla4_fa2_xor1 = ((f_s_wallace_cla4_fa2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla4_nand_1_3 >> 0) & 0x01); - f_s_wallace_cla4_fa2_and1 = ((f_s_wallace_cla4_fa2_xor0 >> 0) & 0x01) & ((f_s_wallace_cla4_nand_1_3 >> 0) & 0x01); - f_s_wallace_cla4_fa2_or0 = ((f_s_wallace_cla4_fa2_and0 >> 0) & 0x01) | ((f_s_wallace_cla4_fa2_and1 >> 0) & 0x01); - f_s_wallace_cla4_nand_3_2 = ~(((a >> 3) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_wallace_cla4_fa3_xor0 = ((f_s_wallace_cla4_fa2_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla4_fa1_or0 >> 0) & 0x01); - f_s_wallace_cla4_fa3_and0 = ((f_s_wallace_cla4_fa2_or0 >> 0) & 0x01) & ((f_s_wallace_cla4_fa1_or0 >> 0) & 0x01); - f_s_wallace_cla4_fa3_xor1 = ((f_s_wallace_cla4_fa3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla4_nand_3_2 >> 0) & 0x01); - f_s_wallace_cla4_fa3_and1 = ((f_s_wallace_cla4_fa3_xor0 >> 0) & 0x01) & ((f_s_wallace_cla4_nand_3_2 >> 0) & 0x01); - f_s_wallace_cla4_fa3_or0 = ((f_s_wallace_cla4_fa3_and0 >> 0) & 0x01) | ((f_s_wallace_cla4_fa3_and1 >> 0) & 0x01); - f_s_wallace_cla4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cla4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cla4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cla4_nand_2_3 = ~(((a >> 2) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_cla4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cla4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic0_or0 = ((f_s_wallace_cla4_and_1_0 >> 0) & 0x01) | ((f_s_wallace_cla4_and_0_1 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic0_and0 = ((f_s_wallace_cla4_and_1_0 >> 0) & 0x01) & ((f_s_wallace_cla4_and_0_1 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic0_xor0 = ((f_s_wallace_cla4_and_1_0 >> 0) & 0x01) ^ ((f_s_wallace_cla4_and_0_1 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic1_or0 = ((f_s_wallace_cla4_and_0_2 >> 0) & 0x01) | ((f_s_wallace_cla4_ha0_xor0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic1_and0 = ((f_s_wallace_cla4_and_0_2 >> 0) & 0x01) & ((f_s_wallace_cla4_ha0_xor0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic1_xor0 = ((f_s_wallace_cla4_and_0_2 >> 0) & 0x01) ^ ((f_s_wallace_cla4_ha0_xor0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_xor1 = ((f_s_wallace_cla4_u_cla6_pg_logic1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and0 = ((f_s_wallace_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_or0 = ((f_s_wallace_cla4_u_cla6_pg_logic1_and0 >> 0) & 0x01) | ((f_s_wallace_cla4_u_cla6_and0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic2_or0 = ((f_s_wallace_cla4_fa0_xor1 >> 0) & 0x01) | ((f_s_wallace_cla4_ha1_xor0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic2_and0 = ((f_s_wallace_cla4_fa0_xor1 >> 0) & 0x01) & ((f_s_wallace_cla4_ha1_xor0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic2_xor0 = ((f_s_wallace_cla4_fa0_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cla4_ha1_xor0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_xor2 = ((f_s_wallace_cla4_u_cla6_pg_logic2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla4_u_cla6_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and1 = ((f_s_wallace_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_pg_logic0_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and2 = ((f_s_wallace_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and3 = ((f_s_wallace_cla4_u_cla6_and2 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and4 = ((f_s_wallace_cla4_u_cla6_pg_logic1_and0 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_or1 = ((f_s_wallace_cla4_u_cla6_and3 >> 0) & 0x01) | ((f_s_wallace_cla4_u_cla6_and4 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_or2 = ((f_s_wallace_cla4_u_cla6_pg_logic2_and0 >> 0) & 0x01) | ((f_s_wallace_cla4_u_cla6_or1 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic3_or0 = ((f_s_wallace_cla4_fa1_xor1 >> 0) & 0x01) | ((f_s_wallace_cla4_fa2_xor1 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic3_and0 = ((f_s_wallace_cla4_fa1_xor1 >> 0) & 0x01) & ((f_s_wallace_cla4_fa2_xor1 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic3_xor0 = ((f_s_wallace_cla4_fa1_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cla4_fa2_xor1 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_xor3 = ((f_s_wallace_cla4_u_cla6_pg_logic3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla4_u_cla6_or2 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and5 = ((f_s_wallace_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and6 = ((f_s_wallace_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and7 = ((f_s_wallace_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and8 = ((f_s_wallace_cla4_u_cla6_and6 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_and7 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and9 = ((f_s_wallace_cla4_u_cla6_pg_logic1_and0 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and10 = ((f_s_wallace_cla4_u_cla6_and9 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and11 = ((f_s_wallace_cla4_u_cla6_pg_logic2_and0 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_or3 = ((f_s_wallace_cla4_u_cla6_and8 >> 0) & 0x01) | ((f_s_wallace_cla4_u_cla6_and11 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_or4 = ((f_s_wallace_cla4_u_cla6_and10 >> 0) & 0x01) | ((f_s_wallace_cla4_u_cla6_or3 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_or5 = ((f_s_wallace_cla4_u_cla6_pg_logic3_and0 >> 0) & 0x01) | ((f_s_wallace_cla4_u_cla6_or4 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic4_or0 = ((f_s_wallace_cla4_nand_2_3 >> 0) & 0x01) | ((f_s_wallace_cla4_fa3_xor1 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic4_and0 = ((f_s_wallace_cla4_nand_2_3 >> 0) & 0x01) & ((f_s_wallace_cla4_fa3_xor1 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic4_xor0 = ((f_s_wallace_cla4_nand_2_3 >> 0) & 0x01) ^ ((f_s_wallace_cla4_fa3_xor1 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_xor4 = ((f_s_wallace_cla4_u_cla6_pg_logic4_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla4_u_cla6_or5 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and12 = ((f_s_wallace_cla4_u_cla6_or5 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_pg_logic4_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_or6 = ((f_s_wallace_cla4_u_cla6_pg_logic4_and0 >> 0) & 0x01) | ((f_s_wallace_cla4_u_cla6_and12 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic5_or0 = ((f_s_wallace_cla4_fa3_or0 >> 0) & 0x01) | ((f_s_wallace_cla4_and_3_3 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic5_and0 = ((f_s_wallace_cla4_fa3_or0 >> 0) & 0x01) & ((f_s_wallace_cla4_and_3_3 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_pg_logic5_xor0 = ((f_s_wallace_cla4_fa3_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla4_and_3_3 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_xor5 = ((f_s_wallace_cla4_u_cla6_pg_logic5_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla4_u_cla6_or6 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and13 = ((f_s_wallace_cla4_u_cla6_or5 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_pg_logic5_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and14 = ((f_s_wallace_cla4_u_cla6_and13 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_pg_logic4_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_and15 = ((f_s_wallace_cla4_u_cla6_pg_logic4_and0 >> 0) & 0x01) & ((f_s_wallace_cla4_u_cla6_pg_logic5_or0 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_or7 = ((f_s_wallace_cla4_u_cla6_and14 >> 0) & 0x01) | ((f_s_wallace_cla4_u_cla6_and15 >> 0) & 0x01); - f_s_wallace_cla4_u_cla6_or8 = ((f_s_wallace_cla4_u_cla6_pg_logic5_and0 >> 0) & 0x01) | ((f_s_wallace_cla4_u_cla6_or7 >> 0) & 0x01); - f_s_wallace_cla4_xor0 = ~(((f_s_wallace_cla4_u_cla6_or8 >> 0) & 0x01)) & 0x01; - - f_s_wallace_cla4_out |= ((f_s_wallace_cla4_and_0_0 >> 0) & 0x01) << 0; - f_s_wallace_cla4_out |= ((f_s_wallace_cla4_u_cla6_pg_logic0_xor0 >> 0) & 0x01) << 1; - f_s_wallace_cla4_out |= ((f_s_wallace_cla4_u_cla6_xor1 >> 0) & 0x01) << 2; - f_s_wallace_cla4_out |= ((f_s_wallace_cla4_u_cla6_xor2 >> 0) & 0x01) << 3; - f_s_wallace_cla4_out |= ((f_s_wallace_cla4_u_cla6_xor3 >> 0) & 0x01) << 4; - f_s_wallace_cla4_out |= ((f_s_wallace_cla4_u_cla6_xor4 >> 0) & 0x01) << 5; - f_s_wallace_cla4_out |= ((f_s_wallace_cla4_u_cla6_xor5 >> 0) & 0x01) << 6; - f_s_wallace_cla4_out |= ((f_s_wallace_cla4_xor0 >> 0) & 0x01) << 7; - return f_s_wallace_cla4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)f_s_wallace_cla4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cla8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cla8.c deleted file mode 100644 index 6752437..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cla8.c +++ /dev/null @@ -1,835 +0,0 @@ -#include -#include - -uint64_t f_s_wallace_cla8(uint64_t a, uint64_t b){ - uint64_t f_s_wallace_cla8_out = 0; - uint8_t f_s_wallace_cla8_and_2_0 = 0; - uint8_t f_s_wallace_cla8_and_1_1 = 0; - uint8_t f_s_wallace_cla8_ha0_xor0 = 0; - uint8_t f_s_wallace_cla8_ha0_and0 = 0; - uint8_t f_s_wallace_cla8_and_3_0 = 0; - uint8_t f_s_wallace_cla8_and_2_1 = 0; - uint8_t f_s_wallace_cla8_fa0_xor0 = 0; - uint8_t f_s_wallace_cla8_fa0_and0 = 0; - uint8_t f_s_wallace_cla8_fa0_xor1 = 0; - uint8_t f_s_wallace_cla8_fa0_and1 = 0; - uint8_t f_s_wallace_cla8_fa0_or0 = 0; - uint8_t f_s_wallace_cla8_and_4_0 = 0; - uint8_t f_s_wallace_cla8_and_3_1 = 0; - uint8_t f_s_wallace_cla8_fa1_xor0 = 0; - uint8_t f_s_wallace_cla8_fa1_and0 = 0; - uint8_t f_s_wallace_cla8_fa1_xor1 = 0; - uint8_t f_s_wallace_cla8_fa1_and1 = 0; - uint8_t f_s_wallace_cla8_fa1_or0 = 0; - uint8_t f_s_wallace_cla8_and_5_0 = 0; - uint8_t f_s_wallace_cla8_and_4_1 = 0; - uint8_t f_s_wallace_cla8_fa2_xor0 = 0; - uint8_t f_s_wallace_cla8_fa2_and0 = 0; - uint8_t f_s_wallace_cla8_fa2_xor1 = 0; - uint8_t f_s_wallace_cla8_fa2_and1 = 0; - uint8_t f_s_wallace_cla8_fa2_or0 = 0; - uint8_t f_s_wallace_cla8_and_6_0 = 0; - uint8_t f_s_wallace_cla8_and_5_1 = 0; - uint8_t f_s_wallace_cla8_fa3_xor0 = 0; - uint8_t f_s_wallace_cla8_fa3_and0 = 0; - uint8_t f_s_wallace_cla8_fa3_xor1 = 0; - uint8_t f_s_wallace_cla8_fa3_and1 = 0; - uint8_t f_s_wallace_cla8_fa3_or0 = 0; - uint8_t f_s_wallace_cla8_nand_7_0 = 0; - uint8_t f_s_wallace_cla8_and_6_1 = 0; - uint8_t f_s_wallace_cla8_fa4_xor0 = 0; - uint8_t f_s_wallace_cla8_fa4_and0 = 0; - uint8_t f_s_wallace_cla8_fa4_xor1 = 0; - uint8_t f_s_wallace_cla8_fa4_and1 = 0; - uint8_t f_s_wallace_cla8_fa4_or0 = 0; - uint8_t f_s_wallace_cla8_nand_7_1 = 0; - uint8_t f_s_wallace_cla8_fa5_xor0 = 0; - uint8_t f_s_wallace_cla8_fa5_xor1 = 0; - uint8_t f_s_wallace_cla8_fa5_and1 = 0; - uint8_t f_s_wallace_cla8_fa5_or0 = 0; - uint8_t f_s_wallace_cla8_nand_7_2 = 0; - uint8_t f_s_wallace_cla8_and_6_3 = 0; - uint8_t f_s_wallace_cla8_fa6_xor0 = 0; - uint8_t f_s_wallace_cla8_fa6_and0 = 0; - uint8_t f_s_wallace_cla8_fa6_xor1 = 0; - uint8_t f_s_wallace_cla8_fa6_and1 = 0; - uint8_t f_s_wallace_cla8_fa6_or0 = 0; - uint8_t f_s_wallace_cla8_nand_7_3 = 0; - uint8_t f_s_wallace_cla8_and_6_4 = 0; - uint8_t f_s_wallace_cla8_fa7_xor0 = 0; - uint8_t f_s_wallace_cla8_fa7_and0 = 0; - uint8_t f_s_wallace_cla8_fa7_xor1 = 0; - uint8_t f_s_wallace_cla8_fa7_and1 = 0; - uint8_t f_s_wallace_cla8_fa7_or0 = 0; - uint8_t f_s_wallace_cla8_nand_7_4 = 0; - uint8_t f_s_wallace_cla8_and_6_5 = 0; - uint8_t f_s_wallace_cla8_fa8_xor0 = 0; - uint8_t f_s_wallace_cla8_fa8_and0 = 0; - uint8_t f_s_wallace_cla8_fa8_xor1 = 0; - uint8_t f_s_wallace_cla8_fa8_and1 = 0; - uint8_t f_s_wallace_cla8_fa8_or0 = 0; - uint8_t f_s_wallace_cla8_nand_7_5 = 0; - uint8_t f_s_wallace_cla8_and_6_6 = 0; - uint8_t f_s_wallace_cla8_fa9_xor0 = 0; - uint8_t f_s_wallace_cla8_fa9_and0 = 0; - uint8_t f_s_wallace_cla8_fa9_xor1 = 0; - uint8_t f_s_wallace_cla8_fa9_and1 = 0; - uint8_t f_s_wallace_cla8_fa9_or0 = 0; - uint8_t f_s_wallace_cla8_and_1_2 = 0; - uint8_t f_s_wallace_cla8_and_0_3 = 0; - uint8_t f_s_wallace_cla8_ha1_xor0 = 0; - uint8_t f_s_wallace_cla8_ha1_and0 = 0; - uint8_t f_s_wallace_cla8_and_2_2 = 0; - uint8_t f_s_wallace_cla8_and_1_3 = 0; - uint8_t f_s_wallace_cla8_fa10_xor0 = 0; - uint8_t f_s_wallace_cla8_fa10_and0 = 0; - uint8_t f_s_wallace_cla8_fa10_xor1 = 0; - uint8_t f_s_wallace_cla8_fa10_and1 = 0; - uint8_t f_s_wallace_cla8_fa10_or0 = 0; - uint8_t f_s_wallace_cla8_and_3_2 = 0; - uint8_t f_s_wallace_cla8_and_2_3 = 0; - uint8_t f_s_wallace_cla8_fa11_xor0 = 0; - uint8_t f_s_wallace_cla8_fa11_and0 = 0; - uint8_t f_s_wallace_cla8_fa11_xor1 = 0; - uint8_t f_s_wallace_cla8_fa11_and1 = 0; - uint8_t f_s_wallace_cla8_fa11_or0 = 0; - uint8_t f_s_wallace_cla8_and_4_2 = 0; - uint8_t f_s_wallace_cla8_and_3_3 = 0; - uint8_t f_s_wallace_cla8_fa12_xor0 = 0; - uint8_t f_s_wallace_cla8_fa12_and0 = 0; - uint8_t f_s_wallace_cla8_fa12_xor1 = 0; - uint8_t f_s_wallace_cla8_fa12_and1 = 0; - uint8_t f_s_wallace_cla8_fa12_or0 = 0; - uint8_t f_s_wallace_cla8_and_5_2 = 0; - uint8_t f_s_wallace_cla8_and_4_3 = 0; - uint8_t f_s_wallace_cla8_fa13_xor0 = 0; - uint8_t f_s_wallace_cla8_fa13_and0 = 0; - uint8_t f_s_wallace_cla8_fa13_xor1 = 0; - uint8_t f_s_wallace_cla8_fa13_and1 = 0; - uint8_t f_s_wallace_cla8_fa13_or0 = 0; - uint8_t f_s_wallace_cla8_and_6_2 = 0; - uint8_t f_s_wallace_cla8_and_5_3 = 0; - uint8_t f_s_wallace_cla8_fa14_xor0 = 0; - uint8_t f_s_wallace_cla8_fa14_and0 = 0; - uint8_t f_s_wallace_cla8_fa14_xor1 = 0; - uint8_t f_s_wallace_cla8_fa14_and1 = 0; - uint8_t f_s_wallace_cla8_fa14_or0 = 0; - uint8_t f_s_wallace_cla8_and_5_4 = 0; - uint8_t f_s_wallace_cla8_and_4_5 = 0; - uint8_t f_s_wallace_cla8_fa15_xor0 = 0; - uint8_t f_s_wallace_cla8_fa15_and0 = 0; - uint8_t f_s_wallace_cla8_fa15_xor1 = 0; - uint8_t f_s_wallace_cla8_fa15_and1 = 0; - uint8_t f_s_wallace_cla8_fa15_or0 = 0; - uint8_t f_s_wallace_cla8_and_5_5 = 0; - uint8_t f_s_wallace_cla8_and_4_6 = 0; - uint8_t f_s_wallace_cla8_fa16_xor0 = 0; - uint8_t f_s_wallace_cla8_fa16_and0 = 0; - uint8_t f_s_wallace_cla8_fa16_xor1 = 0; - uint8_t f_s_wallace_cla8_fa16_and1 = 0; - uint8_t f_s_wallace_cla8_fa16_or0 = 0; - uint8_t f_s_wallace_cla8_and_5_6 = 0; - uint8_t f_s_wallace_cla8_nand_4_7 = 0; - uint8_t f_s_wallace_cla8_fa17_xor0 = 0; - uint8_t f_s_wallace_cla8_fa17_and0 = 0; - uint8_t f_s_wallace_cla8_fa17_xor1 = 0; - uint8_t f_s_wallace_cla8_fa17_and1 = 0; - uint8_t f_s_wallace_cla8_fa17_or0 = 0; - uint8_t f_s_wallace_cla8_and_0_4 = 0; - uint8_t f_s_wallace_cla8_ha2_xor0 = 0; - uint8_t f_s_wallace_cla8_ha2_and0 = 0; - uint8_t f_s_wallace_cla8_and_1_4 = 0; - uint8_t f_s_wallace_cla8_and_0_5 = 0; - uint8_t f_s_wallace_cla8_fa18_xor0 = 0; - uint8_t f_s_wallace_cla8_fa18_and0 = 0; - uint8_t f_s_wallace_cla8_fa18_xor1 = 0; - uint8_t f_s_wallace_cla8_fa18_and1 = 0; - uint8_t f_s_wallace_cla8_fa18_or0 = 0; - uint8_t f_s_wallace_cla8_and_2_4 = 0; - uint8_t f_s_wallace_cla8_and_1_5 = 0; - uint8_t f_s_wallace_cla8_fa19_xor0 = 0; - uint8_t f_s_wallace_cla8_fa19_and0 = 0; - uint8_t f_s_wallace_cla8_fa19_xor1 = 0; - uint8_t f_s_wallace_cla8_fa19_and1 = 0; - uint8_t f_s_wallace_cla8_fa19_or0 = 0; - uint8_t f_s_wallace_cla8_and_3_4 = 0; - uint8_t f_s_wallace_cla8_and_2_5 = 0; - uint8_t f_s_wallace_cla8_fa20_xor0 = 0; - uint8_t f_s_wallace_cla8_fa20_and0 = 0; - uint8_t f_s_wallace_cla8_fa20_xor1 = 0; - uint8_t f_s_wallace_cla8_fa20_and1 = 0; - uint8_t f_s_wallace_cla8_fa20_or0 = 0; - uint8_t f_s_wallace_cla8_and_4_4 = 0; - uint8_t f_s_wallace_cla8_and_3_5 = 0; - uint8_t f_s_wallace_cla8_fa21_xor0 = 0; - uint8_t f_s_wallace_cla8_fa21_and0 = 0; - uint8_t f_s_wallace_cla8_fa21_xor1 = 0; - uint8_t f_s_wallace_cla8_fa21_and1 = 0; - uint8_t f_s_wallace_cla8_fa21_or0 = 0; - uint8_t f_s_wallace_cla8_and_3_6 = 0; - uint8_t f_s_wallace_cla8_nand_2_7 = 0; - uint8_t f_s_wallace_cla8_fa22_xor0 = 0; - uint8_t f_s_wallace_cla8_fa22_and0 = 0; - uint8_t f_s_wallace_cla8_fa22_xor1 = 0; - uint8_t f_s_wallace_cla8_fa22_and1 = 0; - uint8_t f_s_wallace_cla8_fa22_or0 = 0; - uint8_t f_s_wallace_cla8_nand_3_7 = 0; - uint8_t f_s_wallace_cla8_fa23_xor0 = 0; - uint8_t f_s_wallace_cla8_fa23_and0 = 0; - uint8_t f_s_wallace_cla8_fa23_xor1 = 0; - uint8_t f_s_wallace_cla8_fa23_and1 = 0; - uint8_t f_s_wallace_cla8_fa23_or0 = 0; - uint8_t f_s_wallace_cla8_ha3_xor0 = 0; - uint8_t f_s_wallace_cla8_ha3_and0 = 0; - uint8_t f_s_wallace_cla8_and_0_6 = 0; - uint8_t f_s_wallace_cla8_fa24_xor0 = 0; - uint8_t f_s_wallace_cla8_fa24_and0 = 0; - uint8_t f_s_wallace_cla8_fa24_xor1 = 0; - uint8_t f_s_wallace_cla8_fa24_and1 = 0; - uint8_t f_s_wallace_cla8_fa24_or0 = 0; - uint8_t f_s_wallace_cla8_and_1_6 = 0; - uint8_t f_s_wallace_cla8_nand_0_7 = 0; - uint8_t f_s_wallace_cla8_fa25_xor0 = 0; - uint8_t f_s_wallace_cla8_fa25_and0 = 0; - uint8_t f_s_wallace_cla8_fa25_xor1 = 0; - uint8_t f_s_wallace_cla8_fa25_and1 = 0; - uint8_t f_s_wallace_cla8_fa25_or0 = 0; - uint8_t f_s_wallace_cla8_and_2_6 = 0; - uint8_t f_s_wallace_cla8_nand_1_7 = 0; - uint8_t f_s_wallace_cla8_fa26_xor0 = 0; - uint8_t f_s_wallace_cla8_fa26_and0 = 0; - uint8_t f_s_wallace_cla8_fa26_xor1 = 0; - uint8_t f_s_wallace_cla8_fa26_and1 = 0; - uint8_t f_s_wallace_cla8_fa26_or0 = 0; - uint8_t f_s_wallace_cla8_fa27_xor0 = 0; - uint8_t f_s_wallace_cla8_fa27_and0 = 0; - uint8_t f_s_wallace_cla8_fa27_xor1 = 0; - uint8_t f_s_wallace_cla8_fa27_and1 = 0; - uint8_t f_s_wallace_cla8_fa27_or0 = 0; - uint8_t f_s_wallace_cla8_ha4_xor0 = 0; - uint8_t f_s_wallace_cla8_ha4_and0 = 0; - uint8_t f_s_wallace_cla8_fa28_xor0 = 0; - uint8_t f_s_wallace_cla8_fa28_and0 = 0; - uint8_t f_s_wallace_cla8_fa28_xor1 = 0; - uint8_t f_s_wallace_cla8_fa28_and1 = 0; - uint8_t f_s_wallace_cla8_fa28_or0 = 0; - uint8_t f_s_wallace_cla8_fa29_xor0 = 0; - uint8_t f_s_wallace_cla8_fa29_and0 = 0; - uint8_t f_s_wallace_cla8_fa29_xor1 = 0; - uint8_t f_s_wallace_cla8_fa29_and1 = 0; - uint8_t f_s_wallace_cla8_fa29_or0 = 0; - uint8_t f_s_wallace_cla8_ha5_xor0 = 0; - uint8_t f_s_wallace_cla8_ha5_and0 = 0; - uint8_t f_s_wallace_cla8_fa30_xor0 = 0; - uint8_t f_s_wallace_cla8_fa30_and0 = 0; - uint8_t f_s_wallace_cla8_fa30_xor1 = 0; - uint8_t f_s_wallace_cla8_fa30_and1 = 0; - uint8_t f_s_wallace_cla8_fa30_or0 = 0; - uint8_t f_s_wallace_cla8_fa31_xor0 = 0; - uint8_t f_s_wallace_cla8_fa31_and0 = 0; - uint8_t f_s_wallace_cla8_fa31_xor1 = 0; - uint8_t f_s_wallace_cla8_fa31_and1 = 0; - uint8_t f_s_wallace_cla8_fa31_or0 = 0; - uint8_t f_s_wallace_cla8_fa32_xor0 = 0; - uint8_t f_s_wallace_cla8_fa32_and0 = 0; - uint8_t f_s_wallace_cla8_fa32_xor1 = 0; - uint8_t f_s_wallace_cla8_fa32_and1 = 0; - uint8_t f_s_wallace_cla8_fa32_or0 = 0; - uint8_t f_s_wallace_cla8_fa33_xor0 = 0; - uint8_t f_s_wallace_cla8_fa33_and0 = 0; - uint8_t f_s_wallace_cla8_fa33_xor1 = 0; - uint8_t f_s_wallace_cla8_fa33_and1 = 0; - uint8_t f_s_wallace_cla8_fa33_or0 = 0; - uint8_t f_s_wallace_cla8_nand_5_7 = 0; - uint8_t f_s_wallace_cla8_fa34_xor0 = 0; - uint8_t f_s_wallace_cla8_fa34_and0 = 0; - uint8_t f_s_wallace_cla8_fa34_xor1 = 0; - uint8_t f_s_wallace_cla8_fa34_and1 = 0; - uint8_t f_s_wallace_cla8_fa34_or0 = 0; - uint8_t f_s_wallace_cla8_nand_7_6 = 0; - uint8_t f_s_wallace_cla8_fa35_xor0 = 0; - uint8_t f_s_wallace_cla8_fa35_and0 = 0; - uint8_t f_s_wallace_cla8_fa35_xor1 = 0; - uint8_t f_s_wallace_cla8_fa35_and1 = 0; - uint8_t f_s_wallace_cla8_fa35_or0 = 0; - uint8_t f_s_wallace_cla8_and_0_0 = 0; - uint8_t f_s_wallace_cla8_and_1_0 = 0; - uint8_t f_s_wallace_cla8_and_0_2 = 0; - uint8_t f_s_wallace_cla8_nand_6_7 = 0; - uint8_t f_s_wallace_cla8_and_0_1 = 0; - uint8_t f_s_wallace_cla8_and_7_7 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic0_or0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic0_and0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic0_xor0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic1_or0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic1_and0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic1_xor0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_xor1 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic2_or0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic2_and0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic2_xor0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_xor2 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and1 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and2 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and3 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and4 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or1 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or2 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic3_or0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic3_and0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic3_xor0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_xor3 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and5 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and6 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and7 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and8 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and9 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and10 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and11 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or3 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or4 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or5 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic4_or0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic4_and0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic4_xor0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_xor4 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and12 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or6 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic5_or0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic5_and0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic5_xor0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_xor5 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and13 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and14 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and15 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or7 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or8 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic6_or0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic6_and0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic6_xor0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_xor6 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and16 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and17 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and18 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and19 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and20 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and21 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or9 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or10 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or11 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic7_or0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic7_and0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic7_xor0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_xor7 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and22 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and23 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and24 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and25 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and26 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and27 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and28 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and29 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and30 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and31 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or12 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or13 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or14 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or15 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic8_or0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic8_and0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic8_xor0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_xor8 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and32 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or16 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic9_or0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic9_and0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic9_xor0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_xor9 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and33 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and34 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and35 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or17 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or18 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic10_or0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic10_and0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic10_xor0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_xor10 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and36 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and37 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and38 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and39 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and40 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and41 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or19 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or20 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or21 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic11_or0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic11_and0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic11_xor0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_xor11 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and42 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and43 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and44 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and45 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and46 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and47 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and48 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and49 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and50 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and51 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or22 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or23 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or24 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or25 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic12_or0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic12_and0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic12_xor0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_xor12 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and52 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or26 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic13_or0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic13_and0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_pg_logic13_xor0 = 0; - uint8_t f_s_wallace_cla8_u_cla14_xor13 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and53 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and54 = 0; - uint8_t f_s_wallace_cla8_u_cla14_and55 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or27 = 0; - uint8_t f_s_wallace_cla8_u_cla14_or28 = 0; - uint8_t f_s_wallace_cla8_xor0 = 0; - - f_s_wallace_cla8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cla8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cla8_ha0_xor0 = ((f_s_wallace_cla8_and_2_0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_1_1 >> 0) & 0x01); - f_s_wallace_cla8_ha0_and0 = ((f_s_wallace_cla8_and_2_0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_1_1 >> 0) & 0x01); - f_s_wallace_cla8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cla8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cla8_fa0_xor0 = ((f_s_wallace_cla8_ha0_and0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_3_0 >> 0) & 0x01); - f_s_wallace_cla8_fa0_and0 = ((f_s_wallace_cla8_ha0_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_3_0 >> 0) & 0x01); - f_s_wallace_cla8_fa0_xor1 = ((f_s_wallace_cla8_fa0_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_2_1 >> 0) & 0x01); - f_s_wallace_cla8_fa0_and1 = ((f_s_wallace_cla8_fa0_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_2_1 >> 0) & 0x01); - f_s_wallace_cla8_fa0_or0 = ((f_s_wallace_cla8_fa0_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa0_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cla8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cla8_fa1_xor0 = ((f_s_wallace_cla8_fa0_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_4_0 >> 0) & 0x01); - f_s_wallace_cla8_fa1_and0 = ((f_s_wallace_cla8_fa0_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_4_0 >> 0) & 0x01); - f_s_wallace_cla8_fa1_xor1 = ((f_s_wallace_cla8_fa1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_3_1 >> 0) & 0x01); - f_s_wallace_cla8_fa1_and1 = ((f_s_wallace_cla8_fa1_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_3_1 >> 0) & 0x01); - f_s_wallace_cla8_fa1_or0 = ((f_s_wallace_cla8_fa1_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa1_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cla8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cla8_fa2_xor0 = ((f_s_wallace_cla8_fa1_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_5_0 >> 0) & 0x01); - f_s_wallace_cla8_fa2_and0 = ((f_s_wallace_cla8_fa1_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_5_0 >> 0) & 0x01); - f_s_wallace_cla8_fa2_xor1 = ((f_s_wallace_cla8_fa2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_4_1 >> 0) & 0x01); - f_s_wallace_cla8_fa2_and1 = ((f_s_wallace_cla8_fa2_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_4_1 >> 0) & 0x01); - f_s_wallace_cla8_fa2_or0 = ((f_s_wallace_cla8_fa2_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa2_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cla8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cla8_fa3_xor0 = ((f_s_wallace_cla8_fa2_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_6_0 >> 0) & 0x01); - f_s_wallace_cla8_fa3_and0 = ((f_s_wallace_cla8_fa2_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_6_0 >> 0) & 0x01); - f_s_wallace_cla8_fa3_xor1 = ((f_s_wallace_cla8_fa3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_5_1 >> 0) & 0x01); - f_s_wallace_cla8_fa3_and1 = ((f_s_wallace_cla8_fa3_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_5_1 >> 0) & 0x01); - f_s_wallace_cla8_fa3_or0 = ((f_s_wallace_cla8_fa3_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa3_and1 >> 0) & 0x01); - f_s_wallace_cla8_nand_7_0 = ~(((a >> 7) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_wallace_cla8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cla8_fa4_xor0 = ((f_s_wallace_cla8_fa3_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_nand_7_0 >> 0) & 0x01); - f_s_wallace_cla8_fa4_and0 = ((f_s_wallace_cla8_fa3_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_nand_7_0 >> 0) & 0x01); - f_s_wallace_cla8_fa4_xor1 = ((f_s_wallace_cla8_fa4_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_6_1 >> 0) & 0x01); - f_s_wallace_cla8_fa4_and1 = ((f_s_wallace_cla8_fa4_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_6_1 >> 0) & 0x01); - f_s_wallace_cla8_fa4_or0 = ((f_s_wallace_cla8_fa4_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa4_and1 >> 0) & 0x01); - f_s_wallace_cla8_nand_7_1 = ~(((a >> 7) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_wallace_cla8_fa5_xor0 = ~(((f_s_wallace_cla8_fa4_or0 >> 0) & 0x01)) & 0x01; - f_s_wallace_cla8_fa5_xor1 = ((f_s_wallace_cla8_fa5_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_nand_7_1 >> 0) & 0x01); - f_s_wallace_cla8_fa5_and1 = ((f_s_wallace_cla8_fa5_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_nand_7_1 >> 0) & 0x01); - f_s_wallace_cla8_fa5_or0 = ((f_s_wallace_cla8_fa4_or0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa5_and1 >> 0) & 0x01); - f_s_wallace_cla8_nand_7_2 = ~(((a >> 7) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_wallace_cla8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cla8_fa6_xor0 = ((f_s_wallace_cla8_fa5_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_nand_7_2 >> 0) & 0x01); - f_s_wallace_cla8_fa6_and0 = ((f_s_wallace_cla8_fa5_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_nand_7_2 >> 0) & 0x01); - f_s_wallace_cla8_fa6_xor1 = ((f_s_wallace_cla8_fa6_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_6_3 >> 0) & 0x01); - f_s_wallace_cla8_fa6_and1 = ((f_s_wallace_cla8_fa6_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_6_3 >> 0) & 0x01); - f_s_wallace_cla8_fa6_or0 = ((f_s_wallace_cla8_fa6_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa6_and1 >> 0) & 0x01); - f_s_wallace_cla8_nand_7_3 = ~(((a >> 7) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_cla8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_cla8_fa7_xor0 = ((f_s_wallace_cla8_fa6_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_nand_7_3 >> 0) & 0x01); - f_s_wallace_cla8_fa7_and0 = ((f_s_wallace_cla8_fa6_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_nand_7_3 >> 0) & 0x01); - f_s_wallace_cla8_fa7_xor1 = ((f_s_wallace_cla8_fa7_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_6_4 >> 0) & 0x01); - f_s_wallace_cla8_fa7_and1 = ((f_s_wallace_cla8_fa7_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_6_4 >> 0) & 0x01); - f_s_wallace_cla8_fa7_or0 = ((f_s_wallace_cla8_fa7_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa7_and1 >> 0) & 0x01); - f_s_wallace_cla8_nand_7_4 = ~(((a >> 7) & 0x01) & ((b >> 4) & 0x01)) & 0x01; - f_s_wallace_cla8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_cla8_fa8_xor0 = ((f_s_wallace_cla8_fa7_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_nand_7_4 >> 0) & 0x01); - f_s_wallace_cla8_fa8_and0 = ((f_s_wallace_cla8_fa7_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_nand_7_4 >> 0) & 0x01); - f_s_wallace_cla8_fa8_xor1 = ((f_s_wallace_cla8_fa8_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_6_5 >> 0) & 0x01); - f_s_wallace_cla8_fa8_and1 = ((f_s_wallace_cla8_fa8_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_6_5 >> 0) & 0x01); - f_s_wallace_cla8_fa8_or0 = ((f_s_wallace_cla8_fa8_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa8_and1 >> 0) & 0x01); - f_s_wallace_cla8_nand_7_5 = ~(((a >> 7) & 0x01) & ((b >> 5) & 0x01)) & 0x01; - f_s_wallace_cla8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_cla8_fa9_xor0 = ((f_s_wallace_cla8_fa8_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_nand_7_5 >> 0) & 0x01); - f_s_wallace_cla8_fa9_and0 = ((f_s_wallace_cla8_fa8_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_nand_7_5 >> 0) & 0x01); - f_s_wallace_cla8_fa9_xor1 = ((f_s_wallace_cla8_fa9_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_6_6 >> 0) & 0x01); - f_s_wallace_cla8_fa9_and1 = ((f_s_wallace_cla8_fa9_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_6_6 >> 0) & 0x01); - f_s_wallace_cla8_fa9_or0 = ((f_s_wallace_cla8_fa9_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa9_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cla8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cla8_ha1_xor0 = ((f_s_wallace_cla8_and_1_2 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_0_3 >> 0) & 0x01); - f_s_wallace_cla8_ha1_and0 = ((f_s_wallace_cla8_and_1_2 >> 0) & 0x01) & ((f_s_wallace_cla8_and_0_3 >> 0) & 0x01); - f_s_wallace_cla8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cla8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cla8_fa10_xor0 = ((f_s_wallace_cla8_ha1_and0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_2_2 >> 0) & 0x01); - f_s_wallace_cla8_fa10_and0 = ((f_s_wallace_cla8_ha1_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_2_2 >> 0) & 0x01); - f_s_wallace_cla8_fa10_xor1 = ((f_s_wallace_cla8_fa10_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_1_3 >> 0) & 0x01); - f_s_wallace_cla8_fa10_and1 = ((f_s_wallace_cla8_fa10_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_1_3 >> 0) & 0x01); - f_s_wallace_cla8_fa10_or0 = ((f_s_wallace_cla8_fa10_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa10_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cla8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cla8_fa11_xor0 = ((f_s_wallace_cla8_fa10_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_3_2 >> 0) & 0x01); - f_s_wallace_cla8_fa11_and0 = ((f_s_wallace_cla8_fa10_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_3_2 >> 0) & 0x01); - f_s_wallace_cla8_fa11_xor1 = ((f_s_wallace_cla8_fa11_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_2_3 >> 0) & 0x01); - f_s_wallace_cla8_fa11_and1 = ((f_s_wallace_cla8_fa11_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_2_3 >> 0) & 0x01); - f_s_wallace_cla8_fa11_or0 = ((f_s_wallace_cla8_fa11_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa11_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cla8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cla8_fa12_xor0 = ((f_s_wallace_cla8_fa11_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_4_2 >> 0) & 0x01); - f_s_wallace_cla8_fa12_and0 = ((f_s_wallace_cla8_fa11_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_4_2 >> 0) & 0x01); - f_s_wallace_cla8_fa12_xor1 = ((f_s_wallace_cla8_fa12_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_3_3 >> 0) & 0x01); - f_s_wallace_cla8_fa12_and1 = ((f_s_wallace_cla8_fa12_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_3_3 >> 0) & 0x01); - f_s_wallace_cla8_fa12_or0 = ((f_s_wallace_cla8_fa12_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa12_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cla8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cla8_fa13_xor0 = ((f_s_wallace_cla8_fa12_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_5_2 >> 0) & 0x01); - f_s_wallace_cla8_fa13_and0 = ((f_s_wallace_cla8_fa12_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_5_2 >> 0) & 0x01); - f_s_wallace_cla8_fa13_xor1 = ((f_s_wallace_cla8_fa13_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_4_3 >> 0) & 0x01); - f_s_wallace_cla8_fa13_and1 = ((f_s_wallace_cla8_fa13_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_4_3 >> 0) & 0x01); - f_s_wallace_cla8_fa13_or0 = ((f_s_wallace_cla8_fa13_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa13_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cla8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cla8_fa14_xor0 = ((f_s_wallace_cla8_fa13_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_6_2 >> 0) & 0x01); - f_s_wallace_cla8_fa14_and0 = ((f_s_wallace_cla8_fa13_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_6_2 >> 0) & 0x01); - f_s_wallace_cla8_fa14_xor1 = ((f_s_wallace_cla8_fa14_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_5_3 >> 0) & 0x01); - f_s_wallace_cla8_fa14_and1 = ((f_s_wallace_cla8_fa14_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_5_3 >> 0) & 0x01); - f_s_wallace_cla8_fa14_or0 = ((f_s_wallace_cla8_fa14_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa14_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_cla8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_cla8_fa15_xor0 = ((f_s_wallace_cla8_fa14_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_5_4 >> 0) & 0x01); - f_s_wallace_cla8_fa15_and0 = ((f_s_wallace_cla8_fa14_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_5_4 >> 0) & 0x01); - f_s_wallace_cla8_fa15_xor1 = ((f_s_wallace_cla8_fa15_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_4_5 >> 0) & 0x01); - f_s_wallace_cla8_fa15_and1 = ((f_s_wallace_cla8_fa15_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_4_5 >> 0) & 0x01); - f_s_wallace_cla8_fa15_or0 = ((f_s_wallace_cla8_fa15_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa15_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_cla8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_cla8_fa16_xor0 = ((f_s_wallace_cla8_fa15_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_5_5 >> 0) & 0x01); - f_s_wallace_cla8_fa16_and0 = ((f_s_wallace_cla8_fa15_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_5_5 >> 0) & 0x01); - f_s_wallace_cla8_fa16_xor1 = ((f_s_wallace_cla8_fa16_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_4_6 >> 0) & 0x01); - f_s_wallace_cla8_fa16_and1 = ((f_s_wallace_cla8_fa16_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_4_6 >> 0) & 0x01); - f_s_wallace_cla8_fa16_or0 = ((f_s_wallace_cla8_fa16_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa16_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_cla8_nand_4_7 = ~(((a >> 4) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_cla8_fa17_xor0 = ((f_s_wallace_cla8_fa16_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_5_6 >> 0) & 0x01); - f_s_wallace_cla8_fa17_and0 = ((f_s_wallace_cla8_fa16_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_5_6 >> 0) & 0x01); - f_s_wallace_cla8_fa17_xor1 = ((f_s_wallace_cla8_fa17_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_nand_4_7 >> 0) & 0x01); - f_s_wallace_cla8_fa17_and1 = ((f_s_wallace_cla8_fa17_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_nand_4_7 >> 0) & 0x01); - f_s_wallace_cla8_fa17_or0 = ((f_s_wallace_cla8_fa17_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa17_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_cla8_ha2_xor0 = ((f_s_wallace_cla8_and_0_4 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa1_xor1 >> 0) & 0x01); - f_s_wallace_cla8_ha2_and0 = ((f_s_wallace_cla8_and_0_4 >> 0) & 0x01) & ((f_s_wallace_cla8_fa1_xor1 >> 0) & 0x01); - f_s_wallace_cla8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_cla8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_cla8_fa18_xor0 = ((f_s_wallace_cla8_ha2_and0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_1_4 >> 0) & 0x01); - f_s_wallace_cla8_fa18_and0 = ((f_s_wallace_cla8_ha2_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_1_4 >> 0) & 0x01); - f_s_wallace_cla8_fa18_xor1 = ((f_s_wallace_cla8_fa18_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_0_5 >> 0) & 0x01); - f_s_wallace_cla8_fa18_and1 = ((f_s_wallace_cla8_fa18_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_0_5 >> 0) & 0x01); - f_s_wallace_cla8_fa18_or0 = ((f_s_wallace_cla8_fa18_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa18_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_cla8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_cla8_fa19_xor0 = ((f_s_wallace_cla8_fa18_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_2_4 >> 0) & 0x01); - f_s_wallace_cla8_fa19_and0 = ((f_s_wallace_cla8_fa18_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_2_4 >> 0) & 0x01); - f_s_wallace_cla8_fa19_xor1 = ((f_s_wallace_cla8_fa19_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_1_5 >> 0) & 0x01); - f_s_wallace_cla8_fa19_and1 = ((f_s_wallace_cla8_fa19_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_1_5 >> 0) & 0x01); - f_s_wallace_cla8_fa19_or0 = ((f_s_wallace_cla8_fa19_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa19_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_cla8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_cla8_fa20_xor0 = ((f_s_wallace_cla8_fa19_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_3_4 >> 0) & 0x01); - f_s_wallace_cla8_fa20_and0 = ((f_s_wallace_cla8_fa19_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_3_4 >> 0) & 0x01); - f_s_wallace_cla8_fa20_xor1 = ((f_s_wallace_cla8_fa20_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_2_5 >> 0) & 0x01); - f_s_wallace_cla8_fa20_and1 = ((f_s_wallace_cla8_fa20_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_2_5 >> 0) & 0x01); - f_s_wallace_cla8_fa20_or0 = ((f_s_wallace_cla8_fa20_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa20_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_cla8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_cla8_fa21_xor0 = ((f_s_wallace_cla8_fa20_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_4_4 >> 0) & 0x01); - f_s_wallace_cla8_fa21_and0 = ((f_s_wallace_cla8_fa20_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_4_4 >> 0) & 0x01); - f_s_wallace_cla8_fa21_xor1 = ((f_s_wallace_cla8_fa21_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_3_5 >> 0) & 0x01); - f_s_wallace_cla8_fa21_and1 = ((f_s_wallace_cla8_fa21_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_3_5 >> 0) & 0x01); - f_s_wallace_cla8_fa21_or0 = ((f_s_wallace_cla8_fa21_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa21_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_cla8_nand_2_7 = ~(((a >> 2) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_cla8_fa22_xor0 = ((f_s_wallace_cla8_fa21_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_3_6 >> 0) & 0x01); - f_s_wallace_cla8_fa22_and0 = ((f_s_wallace_cla8_fa21_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_3_6 >> 0) & 0x01); - f_s_wallace_cla8_fa22_xor1 = ((f_s_wallace_cla8_fa22_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_nand_2_7 >> 0) & 0x01); - f_s_wallace_cla8_fa22_and1 = ((f_s_wallace_cla8_fa22_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_nand_2_7 >> 0) & 0x01); - f_s_wallace_cla8_fa22_or0 = ((f_s_wallace_cla8_fa22_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa22_and1 >> 0) & 0x01); - f_s_wallace_cla8_nand_3_7 = ~(((a >> 3) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_cla8_fa23_xor0 = ((f_s_wallace_cla8_fa22_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_nand_3_7 >> 0) & 0x01); - f_s_wallace_cla8_fa23_and0 = ((f_s_wallace_cla8_fa22_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_nand_3_7 >> 0) & 0x01); - f_s_wallace_cla8_fa23_xor1 = ((f_s_wallace_cla8_fa23_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa7_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa23_and1 = ((f_s_wallace_cla8_fa23_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa7_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa23_or0 = ((f_s_wallace_cla8_fa23_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa23_and1 >> 0) & 0x01); - f_s_wallace_cla8_ha3_xor0 = ((f_s_wallace_cla8_fa2_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa11_xor1 >> 0) & 0x01); - f_s_wallace_cla8_ha3_and0 = ((f_s_wallace_cla8_fa2_xor1 >> 0) & 0x01) & ((f_s_wallace_cla8_fa11_xor1 >> 0) & 0x01); - f_s_wallace_cla8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_cla8_fa24_xor0 = ((f_s_wallace_cla8_ha3_and0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_0_6 >> 0) & 0x01); - f_s_wallace_cla8_fa24_and0 = ((f_s_wallace_cla8_ha3_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_0_6 >> 0) & 0x01); - f_s_wallace_cla8_fa24_xor1 = ((f_s_wallace_cla8_fa24_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa3_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa24_and1 = ((f_s_wallace_cla8_fa24_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa3_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa24_or0 = ((f_s_wallace_cla8_fa24_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa24_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_cla8_nand_0_7 = ~(((a >> 0) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_cla8_fa25_xor0 = ((f_s_wallace_cla8_fa24_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_1_6 >> 0) & 0x01); - f_s_wallace_cla8_fa25_and0 = ((f_s_wallace_cla8_fa24_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_1_6 >> 0) & 0x01); - f_s_wallace_cla8_fa25_xor1 = ((f_s_wallace_cla8_fa25_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_nand_0_7 >> 0) & 0x01); - f_s_wallace_cla8_fa25_and1 = ((f_s_wallace_cla8_fa25_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_nand_0_7 >> 0) & 0x01); - f_s_wallace_cla8_fa25_or0 = ((f_s_wallace_cla8_fa25_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa25_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_cla8_nand_1_7 = ~(((a >> 1) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_cla8_fa26_xor0 = ((f_s_wallace_cla8_fa25_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_2_6 >> 0) & 0x01); - f_s_wallace_cla8_fa26_and0 = ((f_s_wallace_cla8_fa25_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_2_6 >> 0) & 0x01); - f_s_wallace_cla8_fa26_xor1 = ((f_s_wallace_cla8_fa26_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_nand_1_7 >> 0) & 0x01); - f_s_wallace_cla8_fa26_and1 = ((f_s_wallace_cla8_fa26_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_nand_1_7 >> 0) & 0x01); - f_s_wallace_cla8_fa26_or0 = ((f_s_wallace_cla8_fa26_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa26_and1 >> 0) & 0x01); - f_s_wallace_cla8_fa27_xor0 = ((f_s_wallace_cla8_fa26_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa6_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa27_and0 = ((f_s_wallace_cla8_fa26_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa6_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa27_xor1 = ((f_s_wallace_cla8_fa27_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa15_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa27_and1 = ((f_s_wallace_cla8_fa27_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa15_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa27_or0 = ((f_s_wallace_cla8_fa27_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa27_and1 >> 0) & 0x01); - f_s_wallace_cla8_ha4_xor0 = ((f_s_wallace_cla8_fa12_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa19_xor1 >> 0) & 0x01); - f_s_wallace_cla8_ha4_and0 = ((f_s_wallace_cla8_fa12_xor1 >> 0) & 0x01) & ((f_s_wallace_cla8_fa19_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa28_xor0 = ((f_s_wallace_cla8_ha4_and0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa4_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa28_and0 = ((f_s_wallace_cla8_ha4_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa4_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa28_xor1 = ((f_s_wallace_cla8_fa28_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa13_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa28_and1 = ((f_s_wallace_cla8_fa28_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa13_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa28_or0 = ((f_s_wallace_cla8_fa28_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa28_and1 >> 0) & 0x01); - f_s_wallace_cla8_fa29_xor0 = ((f_s_wallace_cla8_fa28_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa5_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa29_and0 = ((f_s_wallace_cla8_fa28_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa5_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa29_xor1 = ((f_s_wallace_cla8_fa29_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa14_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa29_and1 = ((f_s_wallace_cla8_fa29_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa14_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa29_or0 = ((f_s_wallace_cla8_fa29_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa29_and1 >> 0) & 0x01); - f_s_wallace_cla8_ha5_xor0 = ((f_s_wallace_cla8_fa20_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa25_xor1 >> 0) & 0x01); - f_s_wallace_cla8_ha5_and0 = ((f_s_wallace_cla8_fa20_xor1 >> 0) & 0x01) & ((f_s_wallace_cla8_fa25_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa30_xor0 = ((f_s_wallace_cla8_ha5_and0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa21_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa30_and0 = ((f_s_wallace_cla8_ha5_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa21_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa30_xor1 = ((f_s_wallace_cla8_fa30_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa26_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa30_and1 = ((f_s_wallace_cla8_fa30_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa26_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa30_or0 = ((f_s_wallace_cla8_fa30_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa30_and1 >> 0) & 0x01); - f_s_wallace_cla8_fa31_xor0 = ((f_s_wallace_cla8_fa30_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa29_or0 >> 0) & 0x01); - f_s_wallace_cla8_fa31_and0 = ((f_s_wallace_cla8_fa30_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa29_or0 >> 0) & 0x01); - f_s_wallace_cla8_fa31_xor1 = ((f_s_wallace_cla8_fa31_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa22_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa31_and1 = ((f_s_wallace_cla8_fa31_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa22_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa31_or0 = ((f_s_wallace_cla8_fa31_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa31_and1 >> 0) & 0x01); - f_s_wallace_cla8_fa32_xor0 = ((f_s_wallace_cla8_fa31_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa27_or0 >> 0) & 0x01); - f_s_wallace_cla8_fa32_and0 = ((f_s_wallace_cla8_fa31_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa27_or0 >> 0) & 0x01); - f_s_wallace_cla8_fa32_xor1 = ((f_s_wallace_cla8_fa32_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa16_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa32_and1 = ((f_s_wallace_cla8_fa32_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa16_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa32_or0 = ((f_s_wallace_cla8_fa32_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa32_and1 >> 0) & 0x01); - f_s_wallace_cla8_fa33_xor0 = ((f_s_wallace_cla8_fa32_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa23_or0 >> 0) & 0x01); - f_s_wallace_cla8_fa33_and0 = ((f_s_wallace_cla8_fa32_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa23_or0 >> 0) & 0x01); - f_s_wallace_cla8_fa33_xor1 = ((f_s_wallace_cla8_fa33_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa8_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa33_and1 = ((f_s_wallace_cla8_fa33_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa8_xor1 >> 0) & 0x01); - f_s_wallace_cla8_fa33_or0 = ((f_s_wallace_cla8_fa33_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa33_and1 >> 0) & 0x01); - f_s_wallace_cla8_nand_5_7 = ~(((a >> 5) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_cla8_fa34_xor0 = ((f_s_wallace_cla8_fa33_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa17_or0 >> 0) & 0x01); - f_s_wallace_cla8_fa34_and0 = ((f_s_wallace_cla8_fa33_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa17_or0 >> 0) & 0x01); - f_s_wallace_cla8_fa34_xor1 = ((f_s_wallace_cla8_fa34_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_nand_5_7 >> 0) & 0x01); - f_s_wallace_cla8_fa34_and1 = ((f_s_wallace_cla8_fa34_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_nand_5_7 >> 0) & 0x01); - f_s_wallace_cla8_fa34_or0 = ((f_s_wallace_cla8_fa34_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa34_and1 >> 0) & 0x01); - f_s_wallace_cla8_nand_7_6 = ~(((a >> 7) & 0x01) & ((b >> 6) & 0x01)) & 0x01; - f_s_wallace_cla8_fa35_xor0 = ((f_s_wallace_cla8_fa34_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa9_or0 >> 0) & 0x01); - f_s_wallace_cla8_fa35_and0 = ((f_s_wallace_cla8_fa34_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_fa9_or0 >> 0) & 0x01); - f_s_wallace_cla8_fa35_xor1 = ((f_s_wallace_cla8_fa35_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_nand_7_6 >> 0) & 0x01); - f_s_wallace_cla8_fa35_and1 = ((f_s_wallace_cla8_fa35_xor0 >> 0) & 0x01) & ((f_s_wallace_cla8_nand_7_6 >> 0) & 0x01); - f_s_wallace_cla8_fa35_or0 = ((f_s_wallace_cla8_fa35_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_fa35_and1 >> 0) & 0x01); - f_s_wallace_cla8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cla8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cla8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cla8_nand_6_7 = ~(((a >> 6) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_cla8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cla8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic0_or0 = ((f_s_wallace_cla8_and_1_0 >> 0) & 0x01) | ((f_s_wallace_cla8_and_0_1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic0_and0 = ((f_s_wallace_cla8_and_1_0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_0_1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic0_xor0 = ((f_s_wallace_cla8_and_1_0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_0_1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic1_or0 = ((f_s_wallace_cla8_and_0_2 >> 0) & 0x01) | ((f_s_wallace_cla8_ha0_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic1_and0 = ((f_s_wallace_cla8_and_0_2 >> 0) & 0x01) & ((f_s_wallace_cla8_ha0_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic1_xor0 = ((f_s_wallace_cla8_and_0_2 >> 0) & 0x01) ^ ((f_s_wallace_cla8_ha0_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_xor1 = ((f_s_wallace_cla8_u_cla14_pg_logic1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and0 = ((f_s_wallace_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or0 = ((f_s_wallace_cla8_u_cla14_pg_logic1_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic2_or0 = ((f_s_wallace_cla8_fa0_xor1 >> 0) & 0x01) | ((f_s_wallace_cla8_ha1_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic2_and0 = ((f_s_wallace_cla8_fa0_xor1 >> 0) & 0x01) & ((f_s_wallace_cla8_ha1_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic2_xor0 = ((f_s_wallace_cla8_fa0_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cla8_ha1_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_xor2 = ((f_s_wallace_cla8_u_cla14_pg_logic2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_u_cla14_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and1 = ((f_s_wallace_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic0_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and2 = ((f_s_wallace_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and3 = ((f_s_wallace_cla8_u_cla14_and2 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and4 = ((f_s_wallace_cla8_u_cla14_pg_logic1_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or1 = ((f_s_wallace_cla8_u_cla14_and3 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and4 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or2 = ((f_s_wallace_cla8_u_cla14_pg_logic2_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_or1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic3_or0 = ((f_s_wallace_cla8_fa10_xor1 >> 0) & 0x01) | ((f_s_wallace_cla8_ha2_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic3_and0 = ((f_s_wallace_cla8_fa10_xor1 >> 0) & 0x01) & ((f_s_wallace_cla8_ha2_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic3_xor0 = ((f_s_wallace_cla8_fa10_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cla8_ha2_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_xor3 = ((f_s_wallace_cla8_u_cla14_pg_logic3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_u_cla14_or2 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and5 = ((f_s_wallace_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and6 = ((f_s_wallace_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and7 = ((f_s_wallace_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and8 = ((f_s_wallace_cla8_u_cla14_and6 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_and7 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and9 = ((f_s_wallace_cla8_u_cla14_pg_logic1_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and10 = ((f_s_wallace_cla8_u_cla14_and9 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and11 = ((f_s_wallace_cla8_u_cla14_pg_logic2_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or3 = ((f_s_wallace_cla8_u_cla14_and8 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and11 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or4 = ((f_s_wallace_cla8_u_cla14_and10 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_or3 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or5 = ((f_s_wallace_cla8_u_cla14_pg_logic3_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_or4 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic4_or0 = ((f_s_wallace_cla8_fa18_xor1 >> 0) & 0x01) | ((f_s_wallace_cla8_ha3_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic4_and0 = ((f_s_wallace_cla8_fa18_xor1 >> 0) & 0x01) & ((f_s_wallace_cla8_ha3_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic4_xor0 = ((f_s_wallace_cla8_fa18_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cla8_ha3_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_xor4 = ((f_s_wallace_cla8_u_cla14_pg_logic4_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_u_cla14_or5 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and12 = ((f_s_wallace_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or6 = ((f_s_wallace_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and12 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic5_or0 = ((f_s_wallace_cla8_fa24_xor1 >> 0) & 0x01) | ((f_s_wallace_cla8_ha4_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic5_and0 = ((f_s_wallace_cla8_fa24_xor1 >> 0) & 0x01) & ((f_s_wallace_cla8_ha4_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic5_xor0 = ((f_s_wallace_cla8_fa24_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cla8_ha4_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_xor5 = ((f_s_wallace_cla8_u_cla14_pg_logic5_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_u_cla14_or6 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and13 = ((f_s_wallace_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and14 = ((f_s_wallace_cla8_u_cla14_and13 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and15 = ((f_s_wallace_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or7 = ((f_s_wallace_cla8_u_cla14_and14 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and15 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or8 = ((f_s_wallace_cla8_u_cla14_pg_logic5_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_or7 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic6_or0 = ((f_s_wallace_cla8_fa28_xor1 >> 0) & 0x01) | ((f_s_wallace_cla8_ha5_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic6_and0 = ((f_s_wallace_cla8_fa28_xor1 >> 0) & 0x01) & ((f_s_wallace_cla8_ha5_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic6_xor0 = ((f_s_wallace_cla8_fa28_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cla8_ha5_xor0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_xor6 = ((f_s_wallace_cla8_u_cla14_pg_logic6_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_u_cla14_or8 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and16 = ((f_s_wallace_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and17 = ((f_s_wallace_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and18 = ((f_s_wallace_cla8_u_cla14_and16 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_and17 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and19 = ((f_s_wallace_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and20 = ((f_s_wallace_cla8_u_cla14_and19 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and21 = ((f_s_wallace_cla8_u_cla14_pg_logic5_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or9 = ((f_s_wallace_cla8_u_cla14_and18 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and20 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or10 = ((f_s_wallace_cla8_u_cla14_or9 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and21 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or11 = ((f_s_wallace_cla8_u_cla14_pg_logic6_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_or10 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic7_or0 = ((f_s_wallace_cla8_fa29_xor1 >> 0) & 0x01) | ((f_s_wallace_cla8_fa30_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic7_and0 = ((f_s_wallace_cla8_fa29_xor1 >> 0) & 0x01) & ((f_s_wallace_cla8_fa30_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic7_xor0 = ((f_s_wallace_cla8_fa29_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa30_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_xor7 = ((f_s_wallace_cla8_u_cla14_pg_logic7_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_u_cla14_or11 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and22 = ((f_s_wallace_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and23 = ((f_s_wallace_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and24 = ((f_s_wallace_cla8_u_cla14_and22 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_and23 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and25 = ((f_s_wallace_cla8_u_cla14_and24 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and26 = ((f_s_wallace_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and27 = ((f_s_wallace_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and28 = ((f_s_wallace_cla8_u_cla14_and26 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_and27 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and29 = ((f_s_wallace_cla8_u_cla14_pg_logic5_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and30 = ((f_s_wallace_cla8_u_cla14_and29 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and31 = ((f_s_wallace_cla8_u_cla14_pg_logic6_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or12 = ((f_s_wallace_cla8_u_cla14_and25 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and30 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or13 = ((f_s_wallace_cla8_u_cla14_and28 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and31 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or14 = ((f_s_wallace_cla8_u_cla14_or12 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_or13 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or15 = ((f_s_wallace_cla8_u_cla14_pg_logic7_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_or14 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic8_or0 = ((f_s_wallace_cla8_fa27_xor1 >> 0) & 0x01) | ((f_s_wallace_cla8_fa31_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic8_and0 = ((f_s_wallace_cla8_fa27_xor1 >> 0) & 0x01) & ((f_s_wallace_cla8_fa31_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic8_xor0 = ((f_s_wallace_cla8_fa27_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa31_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_xor8 = ((f_s_wallace_cla8_u_cla14_pg_logic8_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_u_cla14_or15 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and32 = ((f_s_wallace_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or16 = ((f_s_wallace_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and32 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic9_or0 = ((f_s_wallace_cla8_fa23_xor1 >> 0) & 0x01) | ((f_s_wallace_cla8_fa32_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic9_and0 = ((f_s_wallace_cla8_fa23_xor1 >> 0) & 0x01) & ((f_s_wallace_cla8_fa32_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic9_xor0 = ((f_s_wallace_cla8_fa23_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa32_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_xor9 = ((f_s_wallace_cla8_u_cla14_pg_logic9_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_u_cla14_or16 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and33 = ((f_s_wallace_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and34 = ((f_s_wallace_cla8_u_cla14_and33 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and35 = ((f_s_wallace_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or17 = ((f_s_wallace_cla8_u_cla14_and34 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and35 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or18 = ((f_s_wallace_cla8_u_cla14_pg_logic9_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_or17 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic10_or0 = ((f_s_wallace_cla8_fa17_xor1 >> 0) & 0x01) | ((f_s_wallace_cla8_fa33_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic10_and0 = ((f_s_wallace_cla8_fa17_xor1 >> 0) & 0x01) & ((f_s_wallace_cla8_fa33_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic10_xor0 = ((f_s_wallace_cla8_fa17_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa33_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_xor10 = ((f_s_wallace_cla8_u_cla14_pg_logic10_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_u_cla14_or18 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and36 = ((f_s_wallace_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and37 = ((f_s_wallace_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and38 = ((f_s_wallace_cla8_u_cla14_and36 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_and37 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and39 = ((f_s_wallace_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and40 = ((f_s_wallace_cla8_u_cla14_and39 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and41 = ((f_s_wallace_cla8_u_cla14_pg_logic9_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or19 = ((f_s_wallace_cla8_u_cla14_and38 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and40 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or20 = ((f_s_wallace_cla8_u_cla14_or19 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and41 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or21 = ((f_s_wallace_cla8_u_cla14_pg_logic10_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_or20 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic11_or0 = ((f_s_wallace_cla8_fa9_xor1 >> 0) & 0x01) | ((f_s_wallace_cla8_fa34_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic11_and0 = ((f_s_wallace_cla8_fa9_xor1 >> 0) & 0x01) & ((f_s_wallace_cla8_fa34_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic11_xor0 = ((f_s_wallace_cla8_fa9_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa34_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_xor11 = ((f_s_wallace_cla8_u_cla14_pg_logic11_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_u_cla14_or21 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and42 = ((f_s_wallace_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and43 = ((f_s_wallace_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and44 = ((f_s_wallace_cla8_u_cla14_and42 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_and43 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and45 = ((f_s_wallace_cla8_u_cla14_and44 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and46 = ((f_s_wallace_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and47 = ((f_s_wallace_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and48 = ((f_s_wallace_cla8_u_cla14_and46 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_and47 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and49 = ((f_s_wallace_cla8_u_cla14_pg_logic9_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and50 = ((f_s_wallace_cla8_u_cla14_and49 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and51 = ((f_s_wallace_cla8_u_cla14_pg_logic10_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or22 = ((f_s_wallace_cla8_u_cla14_and45 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and50 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or23 = ((f_s_wallace_cla8_u_cla14_and48 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and51 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or24 = ((f_s_wallace_cla8_u_cla14_or22 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_or23 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or25 = ((f_s_wallace_cla8_u_cla14_pg_logic11_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_or24 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic12_or0 = ((f_s_wallace_cla8_nand_6_7 >> 0) & 0x01) | ((f_s_wallace_cla8_fa35_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic12_and0 = ((f_s_wallace_cla8_nand_6_7 >> 0) & 0x01) & ((f_s_wallace_cla8_fa35_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic12_xor0 = ((f_s_wallace_cla8_nand_6_7 >> 0) & 0x01) ^ ((f_s_wallace_cla8_fa35_xor1 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_xor12 = ((f_s_wallace_cla8_u_cla14_pg_logic12_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_u_cla14_or25 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and52 = ((f_s_wallace_cla8_u_cla14_or25 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic12_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or26 = ((f_s_wallace_cla8_u_cla14_pg_logic12_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and52 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic13_or0 = ((f_s_wallace_cla8_fa35_or0 >> 0) & 0x01) | ((f_s_wallace_cla8_and_7_7 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic13_and0 = ((f_s_wallace_cla8_fa35_or0 >> 0) & 0x01) & ((f_s_wallace_cla8_and_7_7 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_pg_logic13_xor0 = ((f_s_wallace_cla8_fa35_or0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_and_7_7 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_xor13 = ((f_s_wallace_cla8_u_cla14_pg_logic13_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cla8_u_cla14_or26 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and53 = ((f_s_wallace_cla8_u_cla14_or25 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic13_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and54 = ((f_s_wallace_cla8_u_cla14_and53 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic12_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_and55 = ((f_s_wallace_cla8_u_cla14_pg_logic12_and0 >> 0) & 0x01) & ((f_s_wallace_cla8_u_cla14_pg_logic13_or0 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or27 = ((f_s_wallace_cla8_u_cla14_and54 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_and55 >> 0) & 0x01); - f_s_wallace_cla8_u_cla14_or28 = ((f_s_wallace_cla8_u_cla14_pg_logic13_and0 >> 0) & 0x01) | ((f_s_wallace_cla8_u_cla14_or27 >> 0) & 0x01); - f_s_wallace_cla8_xor0 = ~(((f_s_wallace_cla8_u_cla14_or28 >> 0) & 0x01)) & 0x01; - - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_and_0_0 >> 0) & 0x01) << 0; - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_u_cla14_pg_logic0_xor0 >> 0) & 0x01) << 1; - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_u_cla14_xor1 >> 0) & 0x01) << 2; - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_u_cla14_xor2 >> 0) & 0x01) << 3; - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_u_cla14_xor3 >> 0) & 0x01) << 4; - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_u_cla14_xor4 >> 0) & 0x01) << 5; - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_u_cla14_xor5 >> 0) & 0x01) << 6; - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_u_cla14_xor6 >> 0) & 0x01) << 7; - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_u_cla14_xor7 >> 0) & 0x01) << 8; - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_u_cla14_xor8 >> 0) & 0x01) << 9; - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_u_cla14_xor9 >> 0) & 0x01) << 10; - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_u_cla14_xor10 >> 0) & 0x01) << 11; - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_u_cla14_xor11 >> 0) & 0x01) << 12; - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_u_cla14_xor12 >> 0) & 0x01) << 13; - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_u_cla14_xor13 >> 0) & 0x01) << 14; - f_s_wallace_cla8_out |= ((f_s_wallace_cla8_xor0 >> 0) & 0x01) << 15; - return f_s_wallace_cla8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)f_s_wallace_cla8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cska4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cska4.c deleted file mode 100644 index 4a13816..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cska4.c +++ /dev/null @@ -1,201 +0,0 @@ -#include -#include - -uint64_t f_s_wallace_cska4(uint64_t a, uint64_t b){ - uint8_t f_s_wallace_cska4_out = 0; - uint8_t f_s_wallace_cska4_and_2_0 = 0; - uint8_t f_s_wallace_cska4_and_1_1 = 0; - uint8_t f_s_wallace_cska4_ha0_xor0 = 0; - uint8_t f_s_wallace_cska4_ha0_and0 = 0; - uint8_t f_s_wallace_cska4_nand_3_0 = 0; - uint8_t f_s_wallace_cska4_and_2_1 = 0; - uint8_t f_s_wallace_cska4_fa0_xor0 = 0; - uint8_t f_s_wallace_cska4_fa0_and0 = 0; - uint8_t f_s_wallace_cska4_fa0_xor1 = 0; - uint8_t f_s_wallace_cska4_fa0_and1 = 0; - uint8_t f_s_wallace_cska4_fa0_or0 = 0; - uint8_t f_s_wallace_cska4_nand_3_1 = 0; - uint8_t f_s_wallace_cska4_fa1_xor0 = 0; - uint8_t f_s_wallace_cska4_fa1_xor1 = 0; - uint8_t f_s_wallace_cska4_fa1_and1 = 0; - uint8_t f_s_wallace_cska4_fa1_or0 = 0; - uint8_t f_s_wallace_cska4_and_1_2 = 0; - uint8_t f_s_wallace_cska4_nand_0_3 = 0; - uint8_t f_s_wallace_cska4_ha1_xor0 = 0; - uint8_t f_s_wallace_cska4_ha1_and0 = 0; - uint8_t f_s_wallace_cska4_and_2_2 = 0; - uint8_t f_s_wallace_cska4_nand_1_3 = 0; - uint8_t f_s_wallace_cska4_fa2_xor0 = 0; - uint8_t f_s_wallace_cska4_fa2_and0 = 0; - uint8_t f_s_wallace_cska4_fa2_xor1 = 0; - uint8_t f_s_wallace_cska4_fa2_and1 = 0; - uint8_t f_s_wallace_cska4_fa2_or0 = 0; - uint8_t f_s_wallace_cska4_nand_3_2 = 0; - uint8_t f_s_wallace_cska4_fa3_xor0 = 0; - uint8_t f_s_wallace_cska4_fa3_and0 = 0; - uint8_t f_s_wallace_cska4_fa3_xor1 = 0; - uint8_t f_s_wallace_cska4_fa3_and1 = 0; - uint8_t f_s_wallace_cska4_fa3_or0 = 0; - uint8_t f_s_wallace_cska4_and_0_0 = 0; - uint8_t f_s_wallace_cska4_and_1_0 = 0; - uint8_t f_s_wallace_cska4_and_0_2 = 0; - uint8_t f_s_wallace_cska4_nand_2_3 = 0; - uint8_t f_s_wallace_cska4_and_0_1 = 0; - uint8_t f_s_wallace_cska4_and_3_3 = 0; - uint8_t f_s_wallace_cska4_u_cska6_xor0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_ha0_xor0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_ha0_and0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_xor1 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa0_xor0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa0_and0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa0_xor1 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa0_and1 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa0_or0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_xor2 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa1_xor0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa1_and0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa1_xor1 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa1_and1 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa1_or0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_xor3 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa2_xor0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa2_and0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa2_xor1 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa2_and1 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa2_or0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_and_propagate00 = 0; - uint8_t f_s_wallace_cska4_u_cska6_and_propagate01 = 0; - uint8_t f_s_wallace_cska4_u_cska6_and_propagate02 = 0; - uint8_t f_s_wallace_cska4_u_cska6_mux2to10_not0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_mux2to10_and1 = 0; - uint8_t f_s_wallace_cska4_u_cska6_xor4 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa3_xor0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa3_and0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa3_xor1 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa3_and1 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa3_or0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_xor5 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa4_xor0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa4_and0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa4_xor1 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa4_and1 = 0; - uint8_t f_s_wallace_cska4_u_cska6_fa4_or0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_and_propagate13 = 0; - uint8_t f_s_wallace_cska4_u_cska6_mux2to11_and0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_mux2to11_not0 = 0; - uint8_t f_s_wallace_cska4_u_cska6_mux2to11_and1 = 0; - uint8_t f_s_wallace_cska4_u_cska6_mux2to11_xor0 = 0; - uint8_t f_s_wallace_cska4_xor0 = 0; - - f_s_wallace_cska4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cska4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cska4_ha0_xor0 = ((f_s_wallace_cska4_and_2_0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_and_1_1 >> 0) & 0x01); - f_s_wallace_cska4_ha0_and0 = ((f_s_wallace_cska4_and_2_0 >> 0) & 0x01) & ((f_s_wallace_cska4_and_1_1 >> 0) & 0x01); - f_s_wallace_cska4_nand_3_0 = ~(((a >> 3) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_wallace_cska4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cska4_fa0_xor0 = ((f_s_wallace_cska4_ha0_and0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_nand_3_0 >> 0) & 0x01); - f_s_wallace_cska4_fa0_and0 = ((f_s_wallace_cska4_ha0_and0 >> 0) & 0x01) & ((f_s_wallace_cska4_nand_3_0 >> 0) & 0x01); - f_s_wallace_cska4_fa0_xor1 = ((f_s_wallace_cska4_fa0_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_and_2_1 >> 0) & 0x01); - f_s_wallace_cska4_fa0_and1 = ((f_s_wallace_cska4_fa0_xor0 >> 0) & 0x01) & ((f_s_wallace_cska4_and_2_1 >> 0) & 0x01); - f_s_wallace_cska4_fa0_or0 = ((f_s_wallace_cska4_fa0_and0 >> 0) & 0x01) | ((f_s_wallace_cska4_fa0_and1 >> 0) & 0x01); - f_s_wallace_cska4_nand_3_1 = ~(((a >> 3) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_wallace_cska4_fa1_xor0 = ~(((f_s_wallace_cska4_fa0_or0 >> 0) & 0x01)) & 0x01; - f_s_wallace_cska4_fa1_xor1 = ((f_s_wallace_cska4_fa1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_nand_3_1 >> 0) & 0x01); - f_s_wallace_cska4_fa1_and1 = ((f_s_wallace_cska4_fa1_xor0 >> 0) & 0x01) & ((f_s_wallace_cska4_nand_3_1 >> 0) & 0x01); - f_s_wallace_cska4_fa1_or0 = ((f_s_wallace_cska4_fa0_or0 >> 0) & 0x01) | ((f_s_wallace_cska4_fa1_and1 >> 0) & 0x01); - f_s_wallace_cska4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cska4_nand_0_3 = ~(((a >> 0) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_cska4_ha1_xor0 = ((f_s_wallace_cska4_and_1_2 >> 0) & 0x01) ^ ((f_s_wallace_cska4_nand_0_3 >> 0) & 0x01); - f_s_wallace_cska4_ha1_and0 = ((f_s_wallace_cska4_and_1_2 >> 0) & 0x01) & ((f_s_wallace_cska4_nand_0_3 >> 0) & 0x01); - f_s_wallace_cska4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cska4_nand_1_3 = ~(((a >> 1) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_cska4_fa2_xor0 = ((f_s_wallace_cska4_ha1_and0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_and_2_2 >> 0) & 0x01); - f_s_wallace_cska4_fa2_and0 = ((f_s_wallace_cska4_ha1_and0 >> 0) & 0x01) & ((f_s_wallace_cska4_and_2_2 >> 0) & 0x01); - f_s_wallace_cska4_fa2_xor1 = ((f_s_wallace_cska4_fa2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_nand_1_3 >> 0) & 0x01); - f_s_wallace_cska4_fa2_and1 = ((f_s_wallace_cska4_fa2_xor0 >> 0) & 0x01) & ((f_s_wallace_cska4_nand_1_3 >> 0) & 0x01); - f_s_wallace_cska4_fa2_or0 = ((f_s_wallace_cska4_fa2_and0 >> 0) & 0x01) | ((f_s_wallace_cska4_fa2_and1 >> 0) & 0x01); - f_s_wallace_cska4_nand_3_2 = ~(((a >> 3) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_wallace_cska4_fa3_xor0 = ((f_s_wallace_cska4_fa2_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_fa1_or0 >> 0) & 0x01); - f_s_wallace_cska4_fa3_and0 = ((f_s_wallace_cska4_fa2_or0 >> 0) & 0x01) & ((f_s_wallace_cska4_fa1_or0 >> 0) & 0x01); - f_s_wallace_cska4_fa3_xor1 = ((f_s_wallace_cska4_fa3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_nand_3_2 >> 0) & 0x01); - f_s_wallace_cska4_fa3_and1 = ((f_s_wallace_cska4_fa3_xor0 >> 0) & 0x01) & ((f_s_wallace_cska4_nand_3_2 >> 0) & 0x01); - f_s_wallace_cska4_fa3_or0 = ((f_s_wallace_cska4_fa3_and0 >> 0) & 0x01) | ((f_s_wallace_cska4_fa3_and1 >> 0) & 0x01); - f_s_wallace_cska4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cska4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cska4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cska4_nand_2_3 = ~(((a >> 2) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_cska4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cska4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cska4_u_cska6_xor0 = ((f_s_wallace_cska4_and_1_0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_and_0_1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_ha0_xor0 = ((f_s_wallace_cska4_and_1_0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_and_0_1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_ha0_and0 = ((f_s_wallace_cska4_and_1_0 >> 0) & 0x01) & ((f_s_wallace_cska4_and_0_1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_xor1 = ((f_s_wallace_cska4_and_0_2 >> 0) & 0x01) ^ ((f_s_wallace_cska4_ha0_xor0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa0_xor0 = ((f_s_wallace_cska4_and_0_2 >> 0) & 0x01) ^ ((f_s_wallace_cska4_ha0_xor0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa0_and0 = ((f_s_wallace_cska4_and_0_2 >> 0) & 0x01) & ((f_s_wallace_cska4_ha0_xor0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa0_xor1 = ((f_s_wallace_cska4_u_cska6_fa0_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_u_cska6_ha0_and0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa0_and1 = ((f_s_wallace_cska4_u_cska6_fa0_xor0 >> 0) & 0x01) & ((f_s_wallace_cska4_u_cska6_ha0_and0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa0_or0 = ((f_s_wallace_cska4_u_cska6_fa0_and0 >> 0) & 0x01) | ((f_s_wallace_cska4_u_cska6_fa0_and1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_xor2 = ((f_s_wallace_cska4_fa0_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska4_ha1_xor0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa1_xor0 = ((f_s_wallace_cska4_fa0_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska4_ha1_xor0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa1_and0 = ((f_s_wallace_cska4_fa0_xor1 >> 0) & 0x01) & ((f_s_wallace_cska4_ha1_xor0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa1_xor1 = ((f_s_wallace_cska4_u_cska6_fa1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_u_cska6_fa0_or0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa1_and1 = ((f_s_wallace_cska4_u_cska6_fa1_xor0 >> 0) & 0x01) & ((f_s_wallace_cska4_u_cska6_fa0_or0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa1_or0 = ((f_s_wallace_cska4_u_cska6_fa1_and0 >> 0) & 0x01) | ((f_s_wallace_cska4_u_cska6_fa1_and1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_xor3 = ((f_s_wallace_cska4_fa1_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska4_fa2_xor1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa2_xor0 = ((f_s_wallace_cska4_fa1_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska4_fa2_xor1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa2_and0 = ((f_s_wallace_cska4_fa1_xor1 >> 0) & 0x01) & ((f_s_wallace_cska4_fa2_xor1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa2_xor1 = ((f_s_wallace_cska4_u_cska6_fa2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_u_cska6_fa1_or0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa2_and1 = ((f_s_wallace_cska4_u_cska6_fa2_xor0 >> 0) & 0x01) & ((f_s_wallace_cska4_u_cska6_fa1_or0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa2_or0 = ((f_s_wallace_cska4_u_cska6_fa2_and0 >> 0) & 0x01) | ((f_s_wallace_cska4_u_cska6_fa2_and1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_and_propagate00 = ((f_s_wallace_cska4_u_cska6_xor0 >> 0) & 0x01) & ((f_s_wallace_cska4_u_cska6_xor2 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_and_propagate01 = ((f_s_wallace_cska4_u_cska6_xor1 >> 0) & 0x01) & ((f_s_wallace_cska4_u_cska6_xor3 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_and_propagate02 = ((f_s_wallace_cska4_u_cska6_and_propagate00 >> 0) & 0x01) & ((f_s_wallace_cska4_u_cska6_and_propagate01 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_mux2to10_not0 = ~(((f_s_wallace_cska4_u_cska6_and_propagate02 >> 0) & 0x01)) & 0x01; - f_s_wallace_cska4_u_cska6_mux2to10_and1 = ((f_s_wallace_cska4_u_cska6_fa2_or0 >> 0) & 0x01) & ((f_s_wallace_cska4_u_cska6_mux2to10_not0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_xor4 = ((f_s_wallace_cska4_nand_2_3 >> 0) & 0x01) ^ ((f_s_wallace_cska4_fa3_xor1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa3_xor0 = ((f_s_wallace_cska4_nand_2_3 >> 0) & 0x01) ^ ((f_s_wallace_cska4_fa3_xor1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa3_and0 = ((f_s_wallace_cska4_nand_2_3 >> 0) & 0x01) & ((f_s_wallace_cska4_fa3_xor1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa3_xor1 = ((f_s_wallace_cska4_u_cska6_fa3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_u_cska6_mux2to10_and1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa3_and1 = ((f_s_wallace_cska4_u_cska6_fa3_xor0 >> 0) & 0x01) & ((f_s_wallace_cska4_u_cska6_mux2to10_and1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa3_or0 = ((f_s_wallace_cska4_u_cska6_fa3_and0 >> 0) & 0x01) | ((f_s_wallace_cska4_u_cska6_fa3_and1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_xor5 = ((f_s_wallace_cska4_fa3_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_and_3_3 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa4_xor0 = ((f_s_wallace_cska4_fa3_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_and_3_3 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa4_and0 = ((f_s_wallace_cska4_fa3_or0 >> 0) & 0x01) & ((f_s_wallace_cska4_and_3_3 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa4_xor1 = ((f_s_wallace_cska4_u_cska6_fa4_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_u_cska6_fa3_or0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa4_and1 = ((f_s_wallace_cska4_u_cska6_fa4_xor0 >> 0) & 0x01) & ((f_s_wallace_cska4_u_cska6_fa3_or0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_fa4_or0 = ((f_s_wallace_cska4_u_cska6_fa4_and0 >> 0) & 0x01) | ((f_s_wallace_cska4_u_cska6_fa4_and1 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_and_propagate13 = ((f_s_wallace_cska4_u_cska6_xor4 >> 0) & 0x01) & ((f_s_wallace_cska4_u_cska6_xor5 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_mux2to11_and0 = ((f_s_wallace_cska4_u_cska6_mux2to10_and1 >> 0) & 0x01) & ((f_s_wallace_cska4_u_cska6_and_propagate13 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_mux2to11_not0 = ~(((f_s_wallace_cska4_u_cska6_and_propagate13 >> 0) & 0x01)) & 0x01; - f_s_wallace_cska4_u_cska6_mux2to11_and1 = ((f_s_wallace_cska4_u_cska6_fa4_or0 >> 0) & 0x01) & ((f_s_wallace_cska4_u_cska6_mux2to11_not0 >> 0) & 0x01); - f_s_wallace_cska4_u_cska6_mux2to11_xor0 = ((f_s_wallace_cska4_u_cska6_mux2to11_and0 >> 0) & 0x01) ^ ((f_s_wallace_cska4_u_cska6_mux2to11_and1 >> 0) & 0x01); - f_s_wallace_cska4_xor0 = ~(((f_s_wallace_cska4_u_cska6_mux2to11_xor0 >> 0) & 0x01)) & 0x01; - - f_s_wallace_cska4_out |= ((f_s_wallace_cska4_and_0_0 >> 0) & 0x01) << 0; - f_s_wallace_cska4_out |= ((f_s_wallace_cska4_u_cska6_ha0_xor0 >> 0) & 0x01) << 1; - f_s_wallace_cska4_out |= ((f_s_wallace_cska4_u_cska6_fa0_xor1 >> 0) & 0x01) << 2; - f_s_wallace_cska4_out |= ((f_s_wallace_cska4_u_cska6_fa1_xor1 >> 0) & 0x01) << 3; - f_s_wallace_cska4_out |= ((f_s_wallace_cska4_u_cska6_fa2_xor1 >> 0) & 0x01) << 4; - f_s_wallace_cska4_out |= ((f_s_wallace_cska4_u_cska6_fa3_xor1 >> 0) & 0x01) << 5; - f_s_wallace_cska4_out |= ((f_s_wallace_cska4_u_cska6_fa4_xor1 >> 0) & 0x01) << 6; - f_s_wallace_cska4_out |= ((f_s_wallace_cska4_xor0 >> 0) & 0x01) << 7; - return f_s_wallace_cska4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)f_s_wallace_cska4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cska8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cska8.c deleted file mode 100644 index 45b8543..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_cska8.c +++ /dev/null @@ -1,765 +0,0 @@ -#include -#include - -uint64_t f_s_wallace_cska8(uint64_t a, uint64_t b){ - uint64_t f_s_wallace_cska8_out = 0; - uint8_t f_s_wallace_cska8_and_2_0 = 0; - uint8_t f_s_wallace_cska8_and_1_1 = 0; - uint8_t f_s_wallace_cska8_ha0_xor0 = 0; - uint8_t f_s_wallace_cska8_ha0_and0 = 0; - uint8_t f_s_wallace_cska8_and_3_0 = 0; - uint8_t f_s_wallace_cska8_and_2_1 = 0; - uint8_t f_s_wallace_cska8_fa0_xor0 = 0; - uint8_t f_s_wallace_cska8_fa0_and0 = 0; - uint8_t f_s_wallace_cska8_fa0_xor1 = 0; - uint8_t f_s_wallace_cska8_fa0_and1 = 0; - uint8_t f_s_wallace_cska8_fa0_or0 = 0; - uint8_t f_s_wallace_cska8_and_4_0 = 0; - uint8_t f_s_wallace_cska8_and_3_1 = 0; - uint8_t f_s_wallace_cska8_fa1_xor0 = 0; - uint8_t f_s_wallace_cska8_fa1_and0 = 0; - uint8_t f_s_wallace_cska8_fa1_xor1 = 0; - uint8_t f_s_wallace_cska8_fa1_and1 = 0; - uint8_t f_s_wallace_cska8_fa1_or0 = 0; - uint8_t f_s_wallace_cska8_and_5_0 = 0; - uint8_t f_s_wallace_cska8_and_4_1 = 0; - uint8_t f_s_wallace_cska8_fa2_xor0 = 0; - uint8_t f_s_wallace_cska8_fa2_and0 = 0; - uint8_t f_s_wallace_cska8_fa2_xor1 = 0; - uint8_t f_s_wallace_cska8_fa2_and1 = 0; - uint8_t f_s_wallace_cska8_fa2_or0 = 0; - uint8_t f_s_wallace_cska8_and_6_0 = 0; - uint8_t f_s_wallace_cska8_and_5_1 = 0; - uint8_t f_s_wallace_cska8_fa3_xor0 = 0; - uint8_t f_s_wallace_cska8_fa3_and0 = 0; - uint8_t f_s_wallace_cska8_fa3_xor1 = 0; - uint8_t f_s_wallace_cska8_fa3_and1 = 0; - uint8_t f_s_wallace_cska8_fa3_or0 = 0; - uint8_t f_s_wallace_cska8_nand_7_0 = 0; - uint8_t f_s_wallace_cska8_and_6_1 = 0; - uint8_t f_s_wallace_cska8_fa4_xor0 = 0; - uint8_t f_s_wallace_cska8_fa4_and0 = 0; - uint8_t f_s_wallace_cska8_fa4_xor1 = 0; - uint8_t f_s_wallace_cska8_fa4_and1 = 0; - uint8_t f_s_wallace_cska8_fa4_or0 = 0; - uint8_t f_s_wallace_cska8_nand_7_1 = 0; - uint8_t f_s_wallace_cska8_fa5_xor0 = 0; - uint8_t f_s_wallace_cska8_fa5_xor1 = 0; - uint8_t f_s_wallace_cska8_fa5_and1 = 0; - uint8_t f_s_wallace_cska8_fa5_or0 = 0; - uint8_t f_s_wallace_cska8_nand_7_2 = 0; - uint8_t f_s_wallace_cska8_and_6_3 = 0; - uint8_t f_s_wallace_cska8_fa6_xor0 = 0; - uint8_t f_s_wallace_cska8_fa6_and0 = 0; - uint8_t f_s_wallace_cska8_fa6_xor1 = 0; - uint8_t f_s_wallace_cska8_fa6_and1 = 0; - uint8_t f_s_wallace_cska8_fa6_or0 = 0; - uint8_t f_s_wallace_cska8_nand_7_3 = 0; - uint8_t f_s_wallace_cska8_and_6_4 = 0; - uint8_t f_s_wallace_cska8_fa7_xor0 = 0; - uint8_t f_s_wallace_cska8_fa7_and0 = 0; - uint8_t f_s_wallace_cska8_fa7_xor1 = 0; - uint8_t f_s_wallace_cska8_fa7_and1 = 0; - uint8_t f_s_wallace_cska8_fa7_or0 = 0; - uint8_t f_s_wallace_cska8_nand_7_4 = 0; - uint8_t f_s_wallace_cska8_and_6_5 = 0; - uint8_t f_s_wallace_cska8_fa8_xor0 = 0; - uint8_t f_s_wallace_cska8_fa8_and0 = 0; - uint8_t f_s_wallace_cska8_fa8_xor1 = 0; - uint8_t f_s_wallace_cska8_fa8_and1 = 0; - uint8_t f_s_wallace_cska8_fa8_or0 = 0; - uint8_t f_s_wallace_cska8_nand_7_5 = 0; - uint8_t f_s_wallace_cska8_and_6_6 = 0; - uint8_t f_s_wallace_cska8_fa9_xor0 = 0; - uint8_t f_s_wallace_cska8_fa9_and0 = 0; - uint8_t f_s_wallace_cska8_fa9_xor1 = 0; - uint8_t f_s_wallace_cska8_fa9_and1 = 0; - uint8_t f_s_wallace_cska8_fa9_or0 = 0; - uint8_t f_s_wallace_cska8_and_1_2 = 0; - uint8_t f_s_wallace_cska8_and_0_3 = 0; - uint8_t f_s_wallace_cska8_ha1_xor0 = 0; - uint8_t f_s_wallace_cska8_ha1_and0 = 0; - uint8_t f_s_wallace_cska8_and_2_2 = 0; - uint8_t f_s_wallace_cska8_and_1_3 = 0; - uint8_t f_s_wallace_cska8_fa10_xor0 = 0; - uint8_t f_s_wallace_cska8_fa10_and0 = 0; - uint8_t f_s_wallace_cska8_fa10_xor1 = 0; - uint8_t f_s_wallace_cska8_fa10_and1 = 0; - uint8_t f_s_wallace_cska8_fa10_or0 = 0; - uint8_t f_s_wallace_cska8_and_3_2 = 0; - uint8_t f_s_wallace_cska8_and_2_3 = 0; - uint8_t f_s_wallace_cska8_fa11_xor0 = 0; - uint8_t f_s_wallace_cska8_fa11_and0 = 0; - uint8_t f_s_wallace_cska8_fa11_xor1 = 0; - uint8_t f_s_wallace_cska8_fa11_and1 = 0; - uint8_t f_s_wallace_cska8_fa11_or0 = 0; - uint8_t f_s_wallace_cska8_and_4_2 = 0; - uint8_t f_s_wallace_cska8_and_3_3 = 0; - uint8_t f_s_wallace_cska8_fa12_xor0 = 0; - uint8_t f_s_wallace_cska8_fa12_and0 = 0; - uint8_t f_s_wallace_cska8_fa12_xor1 = 0; - uint8_t f_s_wallace_cska8_fa12_and1 = 0; - uint8_t f_s_wallace_cska8_fa12_or0 = 0; - uint8_t f_s_wallace_cska8_and_5_2 = 0; - uint8_t f_s_wallace_cska8_and_4_3 = 0; - uint8_t f_s_wallace_cska8_fa13_xor0 = 0; - uint8_t f_s_wallace_cska8_fa13_and0 = 0; - uint8_t f_s_wallace_cska8_fa13_xor1 = 0; - uint8_t f_s_wallace_cska8_fa13_and1 = 0; - uint8_t f_s_wallace_cska8_fa13_or0 = 0; - uint8_t f_s_wallace_cska8_and_6_2 = 0; - uint8_t f_s_wallace_cska8_and_5_3 = 0; - uint8_t f_s_wallace_cska8_fa14_xor0 = 0; - uint8_t f_s_wallace_cska8_fa14_and0 = 0; - uint8_t f_s_wallace_cska8_fa14_xor1 = 0; - uint8_t f_s_wallace_cska8_fa14_and1 = 0; - uint8_t f_s_wallace_cska8_fa14_or0 = 0; - uint8_t f_s_wallace_cska8_and_5_4 = 0; - uint8_t f_s_wallace_cska8_and_4_5 = 0; - uint8_t f_s_wallace_cska8_fa15_xor0 = 0; - uint8_t f_s_wallace_cska8_fa15_and0 = 0; - uint8_t f_s_wallace_cska8_fa15_xor1 = 0; - uint8_t f_s_wallace_cska8_fa15_and1 = 0; - uint8_t f_s_wallace_cska8_fa15_or0 = 0; - uint8_t f_s_wallace_cska8_and_5_5 = 0; - uint8_t f_s_wallace_cska8_and_4_6 = 0; - uint8_t f_s_wallace_cska8_fa16_xor0 = 0; - uint8_t f_s_wallace_cska8_fa16_and0 = 0; - uint8_t f_s_wallace_cska8_fa16_xor1 = 0; - uint8_t f_s_wallace_cska8_fa16_and1 = 0; - uint8_t f_s_wallace_cska8_fa16_or0 = 0; - uint8_t f_s_wallace_cska8_and_5_6 = 0; - uint8_t f_s_wallace_cska8_nand_4_7 = 0; - uint8_t f_s_wallace_cska8_fa17_xor0 = 0; - uint8_t f_s_wallace_cska8_fa17_and0 = 0; - uint8_t f_s_wallace_cska8_fa17_xor1 = 0; - uint8_t f_s_wallace_cska8_fa17_and1 = 0; - uint8_t f_s_wallace_cska8_fa17_or0 = 0; - uint8_t f_s_wallace_cska8_and_0_4 = 0; - uint8_t f_s_wallace_cska8_ha2_xor0 = 0; - uint8_t f_s_wallace_cska8_ha2_and0 = 0; - uint8_t f_s_wallace_cska8_and_1_4 = 0; - uint8_t f_s_wallace_cska8_and_0_5 = 0; - uint8_t f_s_wallace_cska8_fa18_xor0 = 0; - uint8_t f_s_wallace_cska8_fa18_and0 = 0; - uint8_t f_s_wallace_cska8_fa18_xor1 = 0; - uint8_t f_s_wallace_cska8_fa18_and1 = 0; - uint8_t f_s_wallace_cska8_fa18_or0 = 0; - uint8_t f_s_wallace_cska8_and_2_4 = 0; - uint8_t f_s_wallace_cska8_and_1_5 = 0; - uint8_t f_s_wallace_cska8_fa19_xor0 = 0; - uint8_t f_s_wallace_cska8_fa19_and0 = 0; - uint8_t f_s_wallace_cska8_fa19_xor1 = 0; - uint8_t f_s_wallace_cska8_fa19_and1 = 0; - uint8_t f_s_wallace_cska8_fa19_or0 = 0; - uint8_t f_s_wallace_cska8_and_3_4 = 0; - uint8_t f_s_wallace_cska8_and_2_5 = 0; - uint8_t f_s_wallace_cska8_fa20_xor0 = 0; - uint8_t f_s_wallace_cska8_fa20_and0 = 0; - uint8_t f_s_wallace_cska8_fa20_xor1 = 0; - uint8_t f_s_wallace_cska8_fa20_and1 = 0; - uint8_t f_s_wallace_cska8_fa20_or0 = 0; - uint8_t f_s_wallace_cska8_and_4_4 = 0; - uint8_t f_s_wallace_cska8_and_3_5 = 0; - uint8_t f_s_wallace_cska8_fa21_xor0 = 0; - uint8_t f_s_wallace_cska8_fa21_and0 = 0; - uint8_t f_s_wallace_cska8_fa21_xor1 = 0; - uint8_t f_s_wallace_cska8_fa21_and1 = 0; - uint8_t f_s_wallace_cska8_fa21_or0 = 0; - uint8_t f_s_wallace_cska8_and_3_6 = 0; - uint8_t f_s_wallace_cska8_nand_2_7 = 0; - uint8_t f_s_wallace_cska8_fa22_xor0 = 0; - uint8_t f_s_wallace_cska8_fa22_and0 = 0; - uint8_t f_s_wallace_cska8_fa22_xor1 = 0; - uint8_t f_s_wallace_cska8_fa22_and1 = 0; - uint8_t f_s_wallace_cska8_fa22_or0 = 0; - uint8_t f_s_wallace_cska8_nand_3_7 = 0; - uint8_t f_s_wallace_cska8_fa23_xor0 = 0; - uint8_t f_s_wallace_cska8_fa23_and0 = 0; - uint8_t f_s_wallace_cska8_fa23_xor1 = 0; - uint8_t f_s_wallace_cska8_fa23_and1 = 0; - uint8_t f_s_wallace_cska8_fa23_or0 = 0; - uint8_t f_s_wallace_cska8_ha3_xor0 = 0; - uint8_t f_s_wallace_cska8_ha3_and0 = 0; - uint8_t f_s_wallace_cska8_and_0_6 = 0; - uint8_t f_s_wallace_cska8_fa24_xor0 = 0; - uint8_t f_s_wallace_cska8_fa24_and0 = 0; - uint8_t f_s_wallace_cska8_fa24_xor1 = 0; - uint8_t f_s_wallace_cska8_fa24_and1 = 0; - uint8_t f_s_wallace_cska8_fa24_or0 = 0; - uint8_t f_s_wallace_cska8_and_1_6 = 0; - uint8_t f_s_wallace_cska8_nand_0_7 = 0; - uint8_t f_s_wallace_cska8_fa25_xor0 = 0; - uint8_t f_s_wallace_cska8_fa25_and0 = 0; - uint8_t f_s_wallace_cska8_fa25_xor1 = 0; - uint8_t f_s_wallace_cska8_fa25_and1 = 0; - uint8_t f_s_wallace_cska8_fa25_or0 = 0; - uint8_t f_s_wallace_cska8_and_2_6 = 0; - uint8_t f_s_wallace_cska8_nand_1_7 = 0; - uint8_t f_s_wallace_cska8_fa26_xor0 = 0; - uint8_t f_s_wallace_cska8_fa26_and0 = 0; - uint8_t f_s_wallace_cska8_fa26_xor1 = 0; - uint8_t f_s_wallace_cska8_fa26_and1 = 0; - uint8_t f_s_wallace_cska8_fa26_or0 = 0; - uint8_t f_s_wallace_cska8_fa27_xor0 = 0; - uint8_t f_s_wallace_cska8_fa27_and0 = 0; - uint8_t f_s_wallace_cska8_fa27_xor1 = 0; - uint8_t f_s_wallace_cska8_fa27_and1 = 0; - uint8_t f_s_wallace_cska8_fa27_or0 = 0; - uint8_t f_s_wallace_cska8_ha4_xor0 = 0; - uint8_t f_s_wallace_cska8_ha4_and0 = 0; - uint8_t f_s_wallace_cska8_fa28_xor0 = 0; - uint8_t f_s_wallace_cska8_fa28_and0 = 0; - uint8_t f_s_wallace_cska8_fa28_xor1 = 0; - uint8_t f_s_wallace_cska8_fa28_and1 = 0; - uint8_t f_s_wallace_cska8_fa28_or0 = 0; - uint8_t f_s_wallace_cska8_fa29_xor0 = 0; - uint8_t f_s_wallace_cska8_fa29_and0 = 0; - uint8_t f_s_wallace_cska8_fa29_xor1 = 0; - uint8_t f_s_wallace_cska8_fa29_and1 = 0; - uint8_t f_s_wallace_cska8_fa29_or0 = 0; - uint8_t f_s_wallace_cska8_ha5_xor0 = 0; - uint8_t f_s_wallace_cska8_ha5_and0 = 0; - uint8_t f_s_wallace_cska8_fa30_xor0 = 0; - uint8_t f_s_wallace_cska8_fa30_and0 = 0; - uint8_t f_s_wallace_cska8_fa30_xor1 = 0; - uint8_t f_s_wallace_cska8_fa30_and1 = 0; - uint8_t f_s_wallace_cska8_fa30_or0 = 0; - uint8_t f_s_wallace_cska8_fa31_xor0 = 0; - uint8_t f_s_wallace_cska8_fa31_and0 = 0; - uint8_t f_s_wallace_cska8_fa31_xor1 = 0; - uint8_t f_s_wallace_cska8_fa31_and1 = 0; - uint8_t f_s_wallace_cska8_fa31_or0 = 0; - uint8_t f_s_wallace_cska8_fa32_xor0 = 0; - uint8_t f_s_wallace_cska8_fa32_and0 = 0; - uint8_t f_s_wallace_cska8_fa32_xor1 = 0; - uint8_t f_s_wallace_cska8_fa32_and1 = 0; - uint8_t f_s_wallace_cska8_fa32_or0 = 0; - uint8_t f_s_wallace_cska8_fa33_xor0 = 0; - uint8_t f_s_wallace_cska8_fa33_and0 = 0; - uint8_t f_s_wallace_cska8_fa33_xor1 = 0; - uint8_t f_s_wallace_cska8_fa33_and1 = 0; - uint8_t f_s_wallace_cska8_fa33_or0 = 0; - uint8_t f_s_wallace_cska8_nand_5_7 = 0; - uint8_t f_s_wallace_cska8_fa34_xor0 = 0; - uint8_t f_s_wallace_cska8_fa34_and0 = 0; - uint8_t f_s_wallace_cska8_fa34_xor1 = 0; - uint8_t f_s_wallace_cska8_fa34_and1 = 0; - uint8_t f_s_wallace_cska8_fa34_or0 = 0; - uint8_t f_s_wallace_cska8_nand_7_6 = 0; - uint8_t f_s_wallace_cska8_fa35_xor0 = 0; - uint8_t f_s_wallace_cska8_fa35_and0 = 0; - uint8_t f_s_wallace_cska8_fa35_xor1 = 0; - uint8_t f_s_wallace_cska8_fa35_and1 = 0; - uint8_t f_s_wallace_cska8_fa35_or0 = 0; - uint8_t f_s_wallace_cska8_and_0_0 = 0; - uint8_t f_s_wallace_cska8_and_1_0 = 0; - uint8_t f_s_wallace_cska8_and_0_2 = 0; - uint8_t f_s_wallace_cska8_nand_6_7 = 0; - uint8_t f_s_wallace_cska8_and_0_1 = 0; - uint8_t f_s_wallace_cska8_and_7_7 = 0; - uint8_t f_s_wallace_cska8_u_cska14_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_ha0_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_ha0_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_xor1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa0_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa0_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa0_xor1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa0_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa0_or0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_xor2 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa1_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa1_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa1_xor1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa1_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa1_or0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_xor3 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa2_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa2_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa2_xor1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa2_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa2_or0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_and_propagate00 = 0; - uint8_t f_s_wallace_cska8_u_cska14_and_propagate01 = 0; - uint8_t f_s_wallace_cska8_u_cska14_and_propagate02 = 0; - uint8_t f_s_wallace_cska8_u_cska14_mux2to10_not0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_mux2to10_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_xor4 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa3_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa3_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa3_xor1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa3_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa3_or0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_xor5 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa4_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa4_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa4_xor1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa4_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa4_or0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_xor6 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa5_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa5_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa5_xor1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa5_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa5_or0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_xor7 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa6_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa6_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa6_xor1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa6_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa6_or0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_and_propagate13 = 0; - uint8_t f_s_wallace_cska8_u_cska14_and_propagate14 = 0; - uint8_t f_s_wallace_cska8_u_cska14_and_propagate15 = 0; - uint8_t f_s_wallace_cska8_u_cska14_mux2to11_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_mux2to11_not0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_mux2to11_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_mux2to11_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_xor8 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa7_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa7_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa7_xor1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa7_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa7_or0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_xor9 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa8_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa8_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa8_xor1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa8_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa8_or0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_xor10 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa9_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa9_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa9_xor1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa9_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa9_or0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_xor11 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa10_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa10_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa10_xor1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa10_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa10_or0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_and_propagate26 = 0; - uint8_t f_s_wallace_cska8_u_cska14_and_propagate27 = 0; - uint8_t f_s_wallace_cska8_u_cska14_and_propagate28 = 0; - uint8_t f_s_wallace_cska8_u_cska14_mux2to12_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_mux2to12_not0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_mux2to12_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_mux2to12_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_xor12 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa11_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa11_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa11_xor1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa11_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa11_or0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_xor13 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa12_xor0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa12_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa12_xor1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa12_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_fa12_or0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_and_propagate39 = 0; - uint8_t f_s_wallace_cska8_u_cska14_mux2to13_and0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_mux2to13_not0 = 0; - uint8_t f_s_wallace_cska8_u_cska14_mux2to13_and1 = 0; - uint8_t f_s_wallace_cska8_u_cska14_mux2to13_xor0 = 0; - uint8_t f_s_wallace_cska8_xor0 = 0; - - f_s_wallace_cska8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cska8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cska8_ha0_xor0 = ((f_s_wallace_cska8_and_2_0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_1_1 >> 0) & 0x01); - f_s_wallace_cska8_ha0_and0 = ((f_s_wallace_cska8_and_2_0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_1_1 >> 0) & 0x01); - f_s_wallace_cska8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cska8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cska8_fa0_xor0 = ((f_s_wallace_cska8_ha0_and0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_3_0 >> 0) & 0x01); - f_s_wallace_cska8_fa0_and0 = ((f_s_wallace_cska8_ha0_and0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_3_0 >> 0) & 0x01); - f_s_wallace_cska8_fa0_xor1 = ((f_s_wallace_cska8_fa0_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_2_1 >> 0) & 0x01); - f_s_wallace_cska8_fa0_and1 = ((f_s_wallace_cska8_fa0_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_2_1 >> 0) & 0x01); - f_s_wallace_cska8_fa0_or0 = ((f_s_wallace_cska8_fa0_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa0_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cska8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cska8_fa1_xor0 = ((f_s_wallace_cska8_fa0_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_4_0 >> 0) & 0x01); - f_s_wallace_cska8_fa1_and0 = ((f_s_wallace_cska8_fa0_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_4_0 >> 0) & 0x01); - f_s_wallace_cska8_fa1_xor1 = ((f_s_wallace_cska8_fa1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_3_1 >> 0) & 0x01); - f_s_wallace_cska8_fa1_and1 = ((f_s_wallace_cska8_fa1_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_3_1 >> 0) & 0x01); - f_s_wallace_cska8_fa1_or0 = ((f_s_wallace_cska8_fa1_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa1_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cska8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cska8_fa2_xor0 = ((f_s_wallace_cska8_fa1_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_5_0 >> 0) & 0x01); - f_s_wallace_cska8_fa2_and0 = ((f_s_wallace_cska8_fa1_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_5_0 >> 0) & 0x01); - f_s_wallace_cska8_fa2_xor1 = ((f_s_wallace_cska8_fa2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_4_1 >> 0) & 0x01); - f_s_wallace_cska8_fa2_and1 = ((f_s_wallace_cska8_fa2_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_4_1 >> 0) & 0x01); - f_s_wallace_cska8_fa2_or0 = ((f_s_wallace_cska8_fa2_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa2_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cska8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cska8_fa3_xor0 = ((f_s_wallace_cska8_fa2_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_6_0 >> 0) & 0x01); - f_s_wallace_cska8_fa3_and0 = ((f_s_wallace_cska8_fa2_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_6_0 >> 0) & 0x01); - f_s_wallace_cska8_fa3_xor1 = ((f_s_wallace_cska8_fa3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_5_1 >> 0) & 0x01); - f_s_wallace_cska8_fa3_and1 = ((f_s_wallace_cska8_fa3_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_5_1 >> 0) & 0x01); - f_s_wallace_cska8_fa3_or0 = ((f_s_wallace_cska8_fa3_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa3_and1 >> 0) & 0x01); - f_s_wallace_cska8_nand_7_0 = ~(((a >> 7) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_wallace_cska8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cska8_fa4_xor0 = ((f_s_wallace_cska8_fa3_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_nand_7_0 >> 0) & 0x01); - f_s_wallace_cska8_fa4_and0 = ((f_s_wallace_cska8_fa3_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_nand_7_0 >> 0) & 0x01); - f_s_wallace_cska8_fa4_xor1 = ((f_s_wallace_cska8_fa4_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_6_1 >> 0) & 0x01); - f_s_wallace_cska8_fa4_and1 = ((f_s_wallace_cska8_fa4_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_6_1 >> 0) & 0x01); - f_s_wallace_cska8_fa4_or0 = ((f_s_wallace_cska8_fa4_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa4_and1 >> 0) & 0x01); - f_s_wallace_cska8_nand_7_1 = ~(((a >> 7) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_wallace_cska8_fa5_xor0 = ~(((f_s_wallace_cska8_fa4_or0 >> 0) & 0x01)) & 0x01; - f_s_wallace_cska8_fa5_xor1 = ((f_s_wallace_cska8_fa5_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_nand_7_1 >> 0) & 0x01); - f_s_wallace_cska8_fa5_and1 = ((f_s_wallace_cska8_fa5_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_nand_7_1 >> 0) & 0x01); - f_s_wallace_cska8_fa5_or0 = ((f_s_wallace_cska8_fa4_or0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa5_and1 >> 0) & 0x01); - f_s_wallace_cska8_nand_7_2 = ~(((a >> 7) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_wallace_cska8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cska8_fa6_xor0 = ((f_s_wallace_cska8_fa5_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_nand_7_2 >> 0) & 0x01); - f_s_wallace_cska8_fa6_and0 = ((f_s_wallace_cska8_fa5_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_nand_7_2 >> 0) & 0x01); - f_s_wallace_cska8_fa6_xor1 = ((f_s_wallace_cska8_fa6_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_6_3 >> 0) & 0x01); - f_s_wallace_cska8_fa6_and1 = ((f_s_wallace_cska8_fa6_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_6_3 >> 0) & 0x01); - f_s_wallace_cska8_fa6_or0 = ((f_s_wallace_cska8_fa6_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa6_and1 >> 0) & 0x01); - f_s_wallace_cska8_nand_7_3 = ~(((a >> 7) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_cska8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_cska8_fa7_xor0 = ((f_s_wallace_cska8_fa6_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_nand_7_3 >> 0) & 0x01); - f_s_wallace_cska8_fa7_and0 = ((f_s_wallace_cska8_fa6_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_nand_7_3 >> 0) & 0x01); - f_s_wallace_cska8_fa7_xor1 = ((f_s_wallace_cska8_fa7_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_6_4 >> 0) & 0x01); - f_s_wallace_cska8_fa7_and1 = ((f_s_wallace_cska8_fa7_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_6_4 >> 0) & 0x01); - f_s_wallace_cska8_fa7_or0 = ((f_s_wallace_cska8_fa7_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa7_and1 >> 0) & 0x01); - f_s_wallace_cska8_nand_7_4 = ~(((a >> 7) & 0x01) & ((b >> 4) & 0x01)) & 0x01; - f_s_wallace_cska8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_cska8_fa8_xor0 = ((f_s_wallace_cska8_fa7_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_nand_7_4 >> 0) & 0x01); - f_s_wallace_cska8_fa8_and0 = ((f_s_wallace_cska8_fa7_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_nand_7_4 >> 0) & 0x01); - f_s_wallace_cska8_fa8_xor1 = ((f_s_wallace_cska8_fa8_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_6_5 >> 0) & 0x01); - f_s_wallace_cska8_fa8_and1 = ((f_s_wallace_cska8_fa8_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_6_5 >> 0) & 0x01); - f_s_wallace_cska8_fa8_or0 = ((f_s_wallace_cska8_fa8_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa8_and1 >> 0) & 0x01); - f_s_wallace_cska8_nand_7_5 = ~(((a >> 7) & 0x01) & ((b >> 5) & 0x01)) & 0x01; - f_s_wallace_cska8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_cska8_fa9_xor0 = ((f_s_wallace_cska8_fa8_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_nand_7_5 >> 0) & 0x01); - f_s_wallace_cska8_fa9_and0 = ((f_s_wallace_cska8_fa8_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_nand_7_5 >> 0) & 0x01); - f_s_wallace_cska8_fa9_xor1 = ((f_s_wallace_cska8_fa9_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_6_6 >> 0) & 0x01); - f_s_wallace_cska8_fa9_and1 = ((f_s_wallace_cska8_fa9_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_6_6 >> 0) & 0x01); - f_s_wallace_cska8_fa9_or0 = ((f_s_wallace_cska8_fa9_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa9_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cska8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cska8_ha1_xor0 = ((f_s_wallace_cska8_and_1_2 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_0_3 >> 0) & 0x01); - f_s_wallace_cska8_ha1_and0 = ((f_s_wallace_cska8_and_1_2 >> 0) & 0x01) & ((f_s_wallace_cska8_and_0_3 >> 0) & 0x01); - f_s_wallace_cska8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cska8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cska8_fa10_xor0 = ((f_s_wallace_cska8_ha1_and0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_2_2 >> 0) & 0x01); - f_s_wallace_cska8_fa10_and0 = ((f_s_wallace_cska8_ha1_and0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_2_2 >> 0) & 0x01); - f_s_wallace_cska8_fa10_xor1 = ((f_s_wallace_cska8_fa10_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_1_3 >> 0) & 0x01); - f_s_wallace_cska8_fa10_and1 = ((f_s_wallace_cska8_fa10_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_1_3 >> 0) & 0x01); - f_s_wallace_cska8_fa10_or0 = ((f_s_wallace_cska8_fa10_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa10_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cska8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cska8_fa11_xor0 = ((f_s_wallace_cska8_fa10_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_3_2 >> 0) & 0x01); - f_s_wallace_cska8_fa11_and0 = ((f_s_wallace_cska8_fa10_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_3_2 >> 0) & 0x01); - f_s_wallace_cska8_fa11_xor1 = ((f_s_wallace_cska8_fa11_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_2_3 >> 0) & 0x01); - f_s_wallace_cska8_fa11_and1 = ((f_s_wallace_cska8_fa11_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_2_3 >> 0) & 0x01); - f_s_wallace_cska8_fa11_or0 = ((f_s_wallace_cska8_fa11_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa11_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cska8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cska8_fa12_xor0 = ((f_s_wallace_cska8_fa11_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_4_2 >> 0) & 0x01); - f_s_wallace_cska8_fa12_and0 = ((f_s_wallace_cska8_fa11_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_4_2 >> 0) & 0x01); - f_s_wallace_cska8_fa12_xor1 = ((f_s_wallace_cska8_fa12_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_3_3 >> 0) & 0x01); - f_s_wallace_cska8_fa12_and1 = ((f_s_wallace_cska8_fa12_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_3_3 >> 0) & 0x01); - f_s_wallace_cska8_fa12_or0 = ((f_s_wallace_cska8_fa12_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa12_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cska8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cska8_fa13_xor0 = ((f_s_wallace_cska8_fa12_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_5_2 >> 0) & 0x01); - f_s_wallace_cska8_fa13_and0 = ((f_s_wallace_cska8_fa12_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_5_2 >> 0) & 0x01); - f_s_wallace_cska8_fa13_xor1 = ((f_s_wallace_cska8_fa13_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_4_3 >> 0) & 0x01); - f_s_wallace_cska8_fa13_and1 = ((f_s_wallace_cska8_fa13_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_4_3 >> 0) & 0x01); - f_s_wallace_cska8_fa13_or0 = ((f_s_wallace_cska8_fa13_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa13_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cska8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_cska8_fa14_xor0 = ((f_s_wallace_cska8_fa13_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_6_2 >> 0) & 0x01); - f_s_wallace_cska8_fa14_and0 = ((f_s_wallace_cska8_fa13_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_6_2 >> 0) & 0x01); - f_s_wallace_cska8_fa14_xor1 = ((f_s_wallace_cska8_fa14_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_5_3 >> 0) & 0x01); - f_s_wallace_cska8_fa14_and1 = ((f_s_wallace_cska8_fa14_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_5_3 >> 0) & 0x01); - f_s_wallace_cska8_fa14_or0 = ((f_s_wallace_cska8_fa14_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa14_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_cska8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_cska8_fa15_xor0 = ((f_s_wallace_cska8_fa14_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_5_4 >> 0) & 0x01); - f_s_wallace_cska8_fa15_and0 = ((f_s_wallace_cska8_fa14_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_5_4 >> 0) & 0x01); - f_s_wallace_cska8_fa15_xor1 = ((f_s_wallace_cska8_fa15_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_4_5 >> 0) & 0x01); - f_s_wallace_cska8_fa15_and1 = ((f_s_wallace_cska8_fa15_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_4_5 >> 0) & 0x01); - f_s_wallace_cska8_fa15_or0 = ((f_s_wallace_cska8_fa15_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa15_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_cska8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_cska8_fa16_xor0 = ((f_s_wallace_cska8_fa15_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_5_5 >> 0) & 0x01); - f_s_wallace_cska8_fa16_and0 = ((f_s_wallace_cska8_fa15_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_5_5 >> 0) & 0x01); - f_s_wallace_cska8_fa16_xor1 = ((f_s_wallace_cska8_fa16_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_4_6 >> 0) & 0x01); - f_s_wallace_cska8_fa16_and1 = ((f_s_wallace_cska8_fa16_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_4_6 >> 0) & 0x01); - f_s_wallace_cska8_fa16_or0 = ((f_s_wallace_cska8_fa16_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa16_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_cska8_nand_4_7 = ~(((a >> 4) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_cska8_fa17_xor0 = ((f_s_wallace_cska8_fa16_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_5_6 >> 0) & 0x01); - f_s_wallace_cska8_fa17_and0 = ((f_s_wallace_cska8_fa16_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_5_6 >> 0) & 0x01); - f_s_wallace_cska8_fa17_xor1 = ((f_s_wallace_cska8_fa17_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_nand_4_7 >> 0) & 0x01); - f_s_wallace_cska8_fa17_and1 = ((f_s_wallace_cska8_fa17_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_nand_4_7 >> 0) & 0x01); - f_s_wallace_cska8_fa17_or0 = ((f_s_wallace_cska8_fa17_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa17_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_cska8_ha2_xor0 = ((f_s_wallace_cska8_and_0_4 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa1_xor1 >> 0) & 0x01); - f_s_wallace_cska8_ha2_and0 = ((f_s_wallace_cska8_and_0_4 >> 0) & 0x01) & ((f_s_wallace_cska8_fa1_xor1 >> 0) & 0x01); - f_s_wallace_cska8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_cska8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_cska8_fa18_xor0 = ((f_s_wallace_cska8_ha2_and0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_1_4 >> 0) & 0x01); - f_s_wallace_cska8_fa18_and0 = ((f_s_wallace_cska8_ha2_and0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_1_4 >> 0) & 0x01); - f_s_wallace_cska8_fa18_xor1 = ((f_s_wallace_cska8_fa18_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_0_5 >> 0) & 0x01); - f_s_wallace_cska8_fa18_and1 = ((f_s_wallace_cska8_fa18_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_0_5 >> 0) & 0x01); - f_s_wallace_cska8_fa18_or0 = ((f_s_wallace_cska8_fa18_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa18_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_cska8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_cska8_fa19_xor0 = ((f_s_wallace_cska8_fa18_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_2_4 >> 0) & 0x01); - f_s_wallace_cska8_fa19_and0 = ((f_s_wallace_cska8_fa18_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_2_4 >> 0) & 0x01); - f_s_wallace_cska8_fa19_xor1 = ((f_s_wallace_cska8_fa19_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_1_5 >> 0) & 0x01); - f_s_wallace_cska8_fa19_and1 = ((f_s_wallace_cska8_fa19_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_1_5 >> 0) & 0x01); - f_s_wallace_cska8_fa19_or0 = ((f_s_wallace_cska8_fa19_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa19_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_cska8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_cska8_fa20_xor0 = ((f_s_wallace_cska8_fa19_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_3_4 >> 0) & 0x01); - f_s_wallace_cska8_fa20_and0 = ((f_s_wallace_cska8_fa19_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_3_4 >> 0) & 0x01); - f_s_wallace_cska8_fa20_xor1 = ((f_s_wallace_cska8_fa20_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_2_5 >> 0) & 0x01); - f_s_wallace_cska8_fa20_and1 = ((f_s_wallace_cska8_fa20_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_2_5 >> 0) & 0x01); - f_s_wallace_cska8_fa20_or0 = ((f_s_wallace_cska8_fa20_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa20_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_cska8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_cska8_fa21_xor0 = ((f_s_wallace_cska8_fa20_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_4_4 >> 0) & 0x01); - f_s_wallace_cska8_fa21_and0 = ((f_s_wallace_cska8_fa20_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_4_4 >> 0) & 0x01); - f_s_wallace_cska8_fa21_xor1 = ((f_s_wallace_cska8_fa21_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_3_5 >> 0) & 0x01); - f_s_wallace_cska8_fa21_and1 = ((f_s_wallace_cska8_fa21_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_3_5 >> 0) & 0x01); - f_s_wallace_cska8_fa21_or0 = ((f_s_wallace_cska8_fa21_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa21_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_cska8_nand_2_7 = ~(((a >> 2) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_cska8_fa22_xor0 = ((f_s_wallace_cska8_fa21_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_3_6 >> 0) & 0x01); - f_s_wallace_cska8_fa22_and0 = ((f_s_wallace_cska8_fa21_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_3_6 >> 0) & 0x01); - f_s_wallace_cska8_fa22_xor1 = ((f_s_wallace_cska8_fa22_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_nand_2_7 >> 0) & 0x01); - f_s_wallace_cska8_fa22_and1 = ((f_s_wallace_cska8_fa22_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_nand_2_7 >> 0) & 0x01); - f_s_wallace_cska8_fa22_or0 = ((f_s_wallace_cska8_fa22_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa22_and1 >> 0) & 0x01); - f_s_wallace_cska8_nand_3_7 = ~(((a >> 3) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_cska8_fa23_xor0 = ((f_s_wallace_cska8_fa22_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_nand_3_7 >> 0) & 0x01); - f_s_wallace_cska8_fa23_and0 = ((f_s_wallace_cska8_fa22_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_nand_3_7 >> 0) & 0x01); - f_s_wallace_cska8_fa23_xor1 = ((f_s_wallace_cska8_fa23_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa7_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa23_and1 = ((f_s_wallace_cska8_fa23_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa7_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa23_or0 = ((f_s_wallace_cska8_fa23_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa23_and1 >> 0) & 0x01); - f_s_wallace_cska8_ha3_xor0 = ((f_s_wallace_cska8_fa2_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa11_xor1 >> 0) & 0x01); - f_s_wallace_cska8_ha3_and0 = ((f_s_wallace_cska8_fa2_xor1 >> 0) & 0x01) & ((f_s_wallace_cska8_fa11_xor1 >> 0) & 0x01); - f_s_wallace_cska8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_cska8_fa24_xor0 = ((f_s_wallace_cska8_ha3_and0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_0_6 >> 0) & 0x01); - f_s_wallace_cska8_fa24_and0 = ((f_s_wallace_cska8_ha3_and0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_0_6 >> 0) & 0x01); - f_s_wallace_cska8_fa24_xor1 = ((f_s_wallace_cska8_fa24_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa3_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa24_and1 = ((f_s_wallace_cska8_fa24_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa3_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa24_or0 = ((f_s_wallace_cska8_fa24_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa24_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_cska8_nand_0_7 = ~(((a >> 0) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_cska8_fa25_xor0 = ((f_s_wallace_cska8_fa24_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_1_6 >> 0) & 0x01); - f_s_wallace_cska8_fa25_and0 = ((f_s_wallace_cska8_fa24_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_1_6 >> 0) & 0x01); - f_s_wallace_cska8_fa25_xor1 = ((f_s_wallace_cska8_fa25_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_nand_0_7 >> 0) & 0x01); - f_s_wallace_cska8_fa25_and1 = ((f_s_wallace_cska8_fa25_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_nand_0_7 >> 0) & 0x01); - f_s_wallace_cska8_fa25_or0 = ((f_s_wallace_cska8_fa25_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa25_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_cska8_nand_1_7 = ~(((a >> 1) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_cska8_fa26_xor0 = ((f_s_wallace_cska8_fa25_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_2_6 >> 0) & 0x01); - f_s_wallace_cska8_fa26_and0 = ((f_s_wallace_cska8_fa25_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_2_6 >> 0) & 0x01); - f_s_wallace_cska8_fa26_xor1 = ((f_s_wallace_cska8_fa26_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_nand_1_7 >> 0) & 0x01); - f_s_wallace_cska8_fa26_and1 = ((f_s_wallace_cska8_fa26_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_nand_1_7 >> 0) & 0x01); - f_s_wallace_cska8_fa26_or0 = ((f_s_wallace_cska8_fa26_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa26_and1 >> 0) & 0x01); - f_s_wallace_cska8_fa27_xor0 = ((f_s_wallace_cska8_fa26_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa6_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa27_and0 = ((f_s_wallace_cska8_fa26_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa6_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa27_xor1 = ((f_s_wallace_cska8_fa27_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa15_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa27_and1 = ((f_s_wallace_cska8_fa27_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa15_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa27_or0 = ((f_s_wallace_cska8_fa27_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa27_and1 >> 0) & 0x01); - f_s_wallace_cska8_ha4_xor0 = ((f_s_wallace_cska8_fa12_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa19_xor1 >> 0) & 0x01); - f_s_wallace_cska8_ha4_and0 = ((f_s_wallace_cska8_fa12_xor1 >> 0) & 0x01) & ((f_s_wallace_cska8_fa19_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa28_xor0 = ((f_s_wallace_cska8_ha4_and0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa4_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa28_and0 = ((f_s_wallace_cska8_ha4_and0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa4_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa28_xor1 = ((f_s_wallace_cska8_fa28_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa13_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa28_and1 = ((f_s_wallace_cska8_fa28_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa13_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa28_or0 = ((f_s_wallace_cska8_fa28_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa28_and1 >> 0) & 0x01); - f_s_wallace_cska8_fa29_xor0 = ((f_s_wallace_cska8_fa28_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa5_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa29_and0 = ((f_s_wallace_cska8_fa28_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa5_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa29_xor1 = ((f_s_wallace_cska8_fa29_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa14_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa29_and1 = ((f_s_wallace_cska8_fa29_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa14_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa29_or0 = ((f_s_wallace_cska8_fa29_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa29_and1 >> 0) & 0x01); - f_s_wallace_cska8_ha5_xor0 = ((f_s_wallace_cska8_fa20_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa25_xor1 >> 0) & 0x01); - f_s_wallace_cska8_ha5_and0 = ((f_s_wallace_cska8_fa20_xor1 >> 0) & 0x01) & ((f_s_wallace_cska8_fa25_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa30_xor0 = ((f_s_wallace_cska8_ha5_and0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa21_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa30_and0 = ((f_s_wallace_cska8_ha5_and0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa21_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa30_xor1 = ((f_s_wallace_cska8_fa30_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa26_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa30_and1 = ((f_s_wallace_cska8_fa30_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa26_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa30_or0 = ((f_s_wallace_cska8_fa30_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa30_and1 >> 0) & 0x01); - f_s_wallace_cska8_fa31_xor0 = ((f_s_wallace_cska8_fa30_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa29_or0 >> 0) & 0x01); - f_s_wallace_cska8_fa31_and0 = ((f_s_wallace_cska8_fa30_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa29_or0 >> 0) & 0x01); - f_s_wallace_cska8_fa31_xor1 = ((f_s_wallace_cska8_fa31_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa22_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa31_and1 = ((f_s_wallace_cska8_fa31_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa22_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa31_or0 = ((f_s_wallace_cska8_fa31_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa31_and1 >> 0) & 0x01); - f_s_wallace_cska8_fa32_xor0 = ((f_s_wallace_cska8_fa31_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa27_or0 >> 0) & 0x01); - f_s_wallace_cska8_fa32_and0 = ((f_s_wallace_cska8_fa31_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa27_or0 >> 0) & 0x01); - f_s_wallace_cska8_fa32_xor1 = ((f_s_wallace_cska8_fa32_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa16_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa32_and1 = ((f_s_wallace_cska8_fa32_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa16_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa32_or0 = ((f_s_wallace_cska8_fa32_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa32_and1 >> 0) & 0x01); - f_s_wallace_cska8_fa33_xor0 = ((f_s_wallace_cska8_fa32_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa23_or0 >> 0) & 0x01); - f_s_wallace_cska8_fa33_and0 = ((f_s_wallace_cska8_fa32_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa23_or0 >> 0) & 0x01); - f_s_wallace_cska8_fa33_xor1 = ((f_s_wallace_cska8_fa33_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa8_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa33_and1 = ((f_s_wallace_cska8_fa33_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa8_xor1 >> 0) & 0x01); - f_s_wallace_cska8_fa33_or0 = ((f_s_wallace_cska8_fa33_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa33_and1 >> 0) & 0x01); - f_s_wallace_cska8_nand_5_7 = ~(((a >> 5) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_cska8_fa34_xor0 = ((f_s_wallace_cska8_fa33_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa17_or0 >> 0) & 0x01); - f_s_wallace_cska8_fa34_and0 = ((f_s_wallace_cska8_fa33_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa17_or0 >> 0) & 0x01); - f_s_wallace_cska8_fa34_xor1 = ((f_s_wallace_cska8_fa34_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_nand_5_7 >> 0) & 0x01); - f_s_wallace_cska8_fa34_and1 = ((f_s_wallace_cska8_fa34_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_nand_5_7 >> 0) & 0x01); - f_s_wallace_cska8_fa34_or0 = ((f_s_wallace_cska8_fa34_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa34_and1 >> 0) & 0x01); - f_s_wallace_cska8_nand_7_6 = ~(((a >> 7) & 0x01) & ((b >> 6) & 0x01)) & 0x01; - f_s_wallace_cska8_fa35_xor0 = ((f_s_wallace_cska8_fa34_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa9_or0 >> 0) & 0x01); - f_s_wallace_cska8_fa35_and0 = ((f_s_wallace_cska8_fa34_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_fa9_or0 >> 0) & 0x01); - f_s_wallace_cska8_fa35_xor1 = ((f_s_wallace_cska8_fa35_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_nand_7_6 >> 0) & 0x01); - f_s_wallace_cska8_fa35_and1 = ((f_s_wallace_cska8_fa35_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_nand_7_6 >> 0) & 0x01); - f_s_wallace_cska8_fa35_or0 = ((f_s_wallace_cska8_fa35_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_fa35_and1 >> 0) & 0x01); - f_s_wallace_cska8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cska8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_cska8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_cska8_nand_6_7 = ~(((a >> 6) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_cska8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_cska8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_s_wallace_cska8_u_cska14_xor0 = ((f_s_wallace_cska8_and_1_0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_0_1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_ha0_xor0 = ((f_s_wallace_cska8_and_1_0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_0_1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_ha0_and0 = ((f_s_wallace_cska8_and_1_0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_0_1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_xor1 = ((f_s_wallace_cska8_and_0_2 >> 0) & 0x01) ^ ((f_s_wallace_cska8_ha0_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa0_xor0 = ((f_s_wallace_cska8_and_0_2 >> 0) & 0x01) ^ ((f_s_wallace_cska8_ha0_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa0_and0 = ((f_s_wallace_cska8_and_0_2 >> 0) & 0x01) & ((f_s_wallace_cska8_ha0_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa0_xor1 = ((f_s_wallace_cska8_u_cska14_fa0_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_ha0_and0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa0_and1 = ((f_s_wallace_cska8_u_cska14_fa0_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_ha0_and0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa0_or0 = ((f_s_wallace_cska8_u_cska14_fa0_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_u_cska14_fa0_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_xor2 = ((f_s_wallace_cska8_fa0_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_ha1_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa1_xor0 = ((f_s_wallace_cska8_fa0_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_ha1_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa1_and0 = ((f_s_wallace_cska8_fa0_xor1 >> 0) & 0x01) & ((f_s_wallace_cska8_ha1_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa1_xor1 = ((f_s_wallace_cska8_u_cska14_fa1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_fa0_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa1_and1 = ((f_s_wallace_cska8_u_cska14_fa1_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_fa0_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa1_or0 = ((f_s_wallace_cska8_u_cska14_fa1_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_u_cska14_fa1_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_xor3 = ((f_s_wallace_cska8_fa10_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_ha2_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa2_xor0 = ((f_s_wallace_cska8_fa10_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_ha2_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa2_and0 = ((f_s_wallace_cska8_fa10_xor1 >> 0) & 0x01) & ((f_s_wallace_cska8_ha2_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa2_xor1 = ((f_s_wallace_cska8_u_cska14_fa2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_fa1_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa2_and1 = ((f_s_wallace_cska8_u_cska14_fa2_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_fa1_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa2_or0 = ((f_s_wallace_cska8_u_cska14_fa2_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_u_cska14_fa2_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_and_propagate00 = ((f_s_wallace_cska8_u_cska14_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_xor2 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_and_propagate01 = ((f_s_wallace_cska8_u_cska14_xor1 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_xor3 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_and_propagate02 = ((f_s_wallace_cska8_u_cska14_and_propagate00 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_and_propagate01 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_mux2to10_not0 = ~(((f_s_wallace_cska8_u_cska14_and_propagate02 >> 0) & 0x01)) & 0x01; - f_s_wallace_cska8_u_cska14_mux2to10_and1 = ((f_s_wallace_cska8_u_cska14_fa2_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_mux2to10_not0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_xor4 = ((f_s_wallace_cska8_fa18_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_ha3_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa3_xor0 = ((f_s_wallace_cska8_fa18_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_ha3_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa3_and0 = ((f_s_wallace_cska8_fa18_xor1 >> 0) & 0x01) & ((f_s_wallace_cska8_ha3_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa3_xor1 = ((f_s_wallace_cska8_u_cska14_fa3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_mux2to10_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa3_and1 = ((f_s_wallace_cska8_u_cska14_fa3_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_mux2to10_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa3_or0 = ((f_s_wallace_cska8_u_cska14_fa3_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_u_cska14_fa3_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_xor5 = ((f_s_wallace_cska8_fa24_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_ha4_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa4_xor0 = ((f_s_wallace_cska8_fa24_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_ha4_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa4_and0 = ((f_s_wallace_cska8_fa24_xor1 >> 0) & 0x01) & ((f_s_wallace_cska8_ha4_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa4_xor1 = ((f_s_wallace_cska8_u_cska14_fa4_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_fa3_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa4_and1 = ((f_s_wallace_cska8_u_cska14_fa4_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_fa3_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa4_or0 = ((f_s_wallace_cska8_u_cska14_fa4_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_u_cska14_fa4_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_xor6 = ((f_s_wallace_cska8_fa28_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_ha5_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa5_xor0 = ((f_s_wallace_cska8_fa28_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_ha5_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa5_and0 = ((f_s_wallace_cska8_fa28_xor1 >> 0) & 0x01) & ((f_s_wallace_cska8_ha5_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa5_xor1 = ((f_s_wallace_cska8_u_cska14_fa5_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_fa4_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa5_and1 = ((f_s_wallace_cska8_u_cska14_fa5_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_fa4_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa5_or0 = ((f_s_wallace_cska8_u_cska14_fa5_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_u_cska14_fa5_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_xor7 = ((f_s_wallace_cska8_fa29_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa30_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa6_xor0 = ((f_s_wallace_cska8_fa29_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa30_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa6_and0 = ((f_s_wallace_cska8_fa29_xor1 >> 0) & 0x01) & ((f_s_wallace_cska8_fa30_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa6_xor1 = ((f_s_wallace_cska8_u_cska14_fa6_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_fa5_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa6_and1 = ((f_s_wallace_cska8_u_cska14_fa6_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_fa5_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa6_or0 = ((f_s_wallace_cska8_u_cska14_fa6_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_u_cska14_fa6_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_and_propagate13 = ((f_s_wallace_cska8_u_cska14_xor4 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_xor6 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_and_propagate14 = ((f_s_wallace_cska8_u_cska14_xor5 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_xor7 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_and_propagate15 = ((f_s_wallace_cska8_u_cska14_and_propagate13 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_and_propagate14 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_mux2to11_and0 = ((f_s_wallace_cska8_u_cska14_mux2to10_and1 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_and_propagate15 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_mux2to11_not0 = ~(((f_s_wallace_cska8_u_cska14_and_propagate15 >> 0) & 0x01)) & 0x01; - f_s_wallace_cska8_u_cska14_mux2to11_and1 = ((f_s_wallace_cska8_u_cska14_fa6_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_mux2to11_not0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_mux2to11_xor0 = ((f_s_wallace_cska8_u_cska14_mux2to11_and0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_mux2to11_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_xor8 = ((f_s_wallace_cska8_fa27_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa31_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa7_xor0 = ((f_s_wallace_cska8_fa27_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa31_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa7_and0 = ((f_s_wallace_cska8_fa27_xor1 >> 0) & 0x01) & ((f_s_wallace_cska8_fa31_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa7_xor1 = ((f_s_wallace_cska8_u_cska14_fa7_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_mux2to11_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa7_and1 = ((f_s_wallace_cska8_u_cska14_fa7_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_mux2to11_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa7_or0 = ((f_s_wallace_cska8_u_cska14_fa7_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_u_cska14_fa7_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_xor9 = ((f_s_wallace_cska8_fa23_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa32_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa8_xor0 = ((f_s_wallace_cska8_fa23_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa32_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa8_and0 = ((f_s_wallace_cska8_fa23_xor1 >> 0) & 0x01) & ((f_s_wallace_cska8_fa32_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa8_xor1 = ((f_s_wallace_cska8_u_cska14_fa8_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_fa7_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa8_and1 = ((f_s_wallace_cska8_u_cska14_fa8_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_fa7_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa8_or0 = ((f_s_wallace_cska8_u_cska14_fa8_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_u_cska14_fa8_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_xor10 = ((f_s_wallace_cska8_fa17_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa33_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa9_xor0 = ((f_s_wallace_cska8_fa17_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa33_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa9_and0 = ((f_s_wallace_cska8_fa17_xor1 >> 0) & 0x01) & ((f_s_wallace_cska8_fa33_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa9_xor1 = ((f_s_wallace_cska8_u_cska14_fa9_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_fa8_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa9_and1 = ((f_s_wallace_cska8_u_cska14_fa9_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_fa8_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa9_or0 = ((f_s_wallace_cska8_u_cska14_fa9_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_u_cska14_fa9_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_xor11 = ((f_s_wallace_cska8_fa9_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa34_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa10_xor0 = ((f_s_wallace_cska8_fa9_xor1 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa34_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa10_and0 = ((f_s_wallace_cska8_fa9_xor1 >> 0) & 0x01) & ((f_s_wallace_cska8_fa34_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa10_xor1 = ((f_s_wallace_cska8_u_cska14_fa10_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_fa9_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa10_and1 = ((f_s_wallace_cska8_u_cska14_fa10_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_fa9_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa10_or0 = ((f_s_wallace_cska8_u_cska14_fa10_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_u_cska14_fa10_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_and_propagate26 = ((f_s_wallace_cska8_u_cska14_xor8 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_xor10 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_and_propagate27 = ((f_s_wallace_cska8_u_cska14_xor9 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_xor11 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_and_propagate28 = ((f_s_wallace_cska8_u_cska14_and_propagate26 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_and_propagate27 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_mux2to12_and0 = ((f_s_wallace_cska8_u_cska14_mux2to11_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_and_propagate28 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_mux2to12_not0 = ~(((f_s_wallace_cska8_u_cska14_and_propagate28 >> 0) & 0x01)) & 0x01; - f_s_wallace_cska8_u_cska14_mux2to12_and1 = ((f_s_wallace_cska8_u_cska14_fa10_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_mux2to12_not0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_mux2to12_xor0 = ((f_s_wallace_cska8_u_cska14_mux2to12_and0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_mux2to12_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_xor12 = ((f_s_wallace_cska8_nand_6_7 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa35_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa11_xor0 = ((f_s_wallace_cska8_nand_6_7 >> 0) & 0x01) ^ ((f_s_wallace_cska8_fa35_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa11_and0 = ((f_s_wallace_cska8_nand_6_7 >> 0) & 0x01) & ((f_s_wallace_cska8_fa35_xor1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa11_xor1 = ((f_s_wallace_cska8_u_cska14_fa11_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_mux2to12_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa11_and1 = ((f_s_wallace_cska8_u_cska14_fa11_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_mux2to12_xor0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa11_or0 = ((f_s_wallace_cska8_u_cska14_fa11_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_u_cska14_fa11_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_xor13 = ((f_s_wallace_cska8_fa35_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_7_7 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa12_xor0 = ((f_s_wallace_cska8_fa35_or0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_and_7_7 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa12_and0 = ((f_s_wallace_cska8_fa35_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_and_7_7 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa12_xor1 = ((f_s_wallace_cska8_u_cska14_fa12_xor0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_fa11_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa12_and1 = ((f_s_wallace_cska8_u_cska14_fa12_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_fa11_or0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_fa12_or0 = ((f_s_wallace_cska8_u_cska14_fa12_and0 >> 0) & 0x01) | ((f_s_wallace_cska8_u_cska14_fa12_and1 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_and_propagate39 = ((f_s_wallace_cska8_u_cska14_xor12 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_xor13 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_mux2to13_and0 = ((f_s_wallace_cska8_u_cska14_mux2to12_xor0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_and_propagate39 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_mux2to13_not0 = ~(((f_s_wallace_cska8_u_cska14_and_propagate39 >> 0) & 0x01)) & 0x01; - f_s_wallace_cska8_u_cska14_mux2to13_and1 = ((f_s_wallace_cska8_u_cska14_fa12_or0 >> 0) & 0x01) & ((f_s_wallace_cska8_u_cska14_mux2to13_not0 >> 0) & 0x01); - f_s_wallace_cska8_u_cska14_mux2to13_xor0 = ((f_s_wallace_cska8_u_cska14_mux2to13_and0 >> 0) & 0x01) ^ ((f_s_wallace_cska8_u_cska14_mux2to13_and1 >> 0) & 0x01); - f_s_wallace_cska8_xor0 = ~(((f_s_wallace_cska8_u_cska14_mux2to13_xor0 >> 0) & 0x01)) & 0x01; - - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_and_0_0 >> 0) & 0x01) << 0; - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_u_cska14_ha0_xor0 >> 0) & 0x01) << 1; - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_u_cska14_fa0_xor1 >> 0) & 0x01) << 2; - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_u_cska14_fa1_xor1 >> 0) & 0x01) << 3; - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_u_cska14_fa2_xor1 >> 0) & 0x01) << 4; - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_u_cska14_fa3_xor1 >> 0) & 0x01) << 5; - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_u_cska14_fa4_xor1 >> 0) & 0x01) << 6; - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_u_cska14_fa5_xor1 >> 0) & 0x01) << 7; - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_u_cska14_fa6_xor1 >> 0) & 0x01) << 8; - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_u_cska14_fa7_xor1 >> 0) & 0x01) << 9; - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_u_cska14_fa8_xor1 >> 0) & 0x01) << 10; - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_u_cska14_fa9_xor1 >> 0) & 0x01) << 11; - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_u_cska14_fa10_xor1 >> 0) & 0x01) << 12; - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_u_cska14_fa11_xor1 >> 0) & 0x01) << 13; - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_u_cska14_fa12_xor1 >> 0) & 0x01) << 14; - f_s_wallace_cska8_out |= ((f_s_wallace_cska8_xor0 >> 0) & 0x01) << 15; - return f_s_wallace_cska8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)f_s_wallace_cska8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_pg_rca4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_pg_rca4.c deleted file mode 100644 index e0fa00e..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_pg_rca4.c +++ /dev/null @@ -1,169 +0,0 @@ -#include -#include - -uint64_t f_s_wallace_pg_rca4(uint64_t a, uint64_t b){ - uint8_t f_s_wallace_pg_rca4_out = 0; - uint8_t f_s_wallace_pg_rca4_and_2_0 = 0; - uint8_t f_s_wallace_pg_rca4_and_1_1 = 0; - uint8_t f_s_wallace_pg_rca4_ha0_xor0 = 0; - uint8_t f_s_wallace_pg_rca4_ha0_and0 = 0; - uint8_t f_s_wallace_pg_rca4_nand_3_0 = 0; - uint8_t f_s_wallace_pg_rca4_and_2_1 = 0; - uint8_t f_s_wallace_pg_rca4_fa0_xor0 = 0; - uint8_t f_s_wallace_pg_rca4_fa0_and0 = 0; - uint8_t f_s_wallace_pg_rca4_fa0_xor1 = 0; - uint8_t f_s_wallace_pg_rca4_fa0_and1 = 0; - uint8_t f_s_wallace_pg_rca4_fa0_or0 = 0; - uint8_t f_s_wallace_pg_rca4_nand_3_1 = 0; - uint8_t f_s_wallace_pg_rca4_fa1_xor0 = 0; - uint8_t f_s_wallace_pg_rca4_fa1_xor1 = 0; - uint8_t f_s_wallace_pg_rca4_fa1_and1 = 0; - uint8_t f_s_wallace_pg_rca4_fa1_or0 = 0; - uint8_t f_s_wallace_pg_rca4_and_1_2 = 0; - uint8_t f_s_wallace_pg_rca4_nand_0_3 = 0; - uint8_t f_s_wallace_pg_rca4_ha1_xor0 = 0; - uint8_t f_s_wallace_pg_rca4_ha1_and0 = 0; - uint8_t f_s_wallace_pg_rca4_and_2_2 = 0; - uint8_t f_s_wallace_pg_rca4_nand_1_3 = 0; - uint8_t f_s_wallace_pg_rca4_fa2_xor0 = 0; - uint8_t f_s_wallace_pg_rca4_fa2_and0 = 0; - uint8_t f_s_wallace_pg_rca4_fa2_xor1 = 0; - uint8_t f_s_wallace_pg_rca4_fa2_and1 = 0; - uint8_t f_s_wallace_pg_rca4_fa2_or0 = 0; - uint8_t f_s_wallace_pg_rca4_nand_3_2 = 0; - uint8_t f_s_wallace_pg_rca4_fa3_xor0 = 0; - uint8_t f_s_wallace_pg_rca4_fa3_and0 = 0; - uint8_t f_s_wallace_pg_rca4_fa3_xor1 = 0; - uint8_t f_s_wallace_pg_rca4_fa3_and1 = 0; - uint8_t f_s_wallace_pg_rca4_fa3_or0 = 0; - uint8_t f_s_wallace_pg_rca4_and_0_0 = 0; - uint8_t f_s_wallace_pg_rca4_and_1_0 = 0; - uint8_t f_s_wallace_pg_rca4_and_0_2 = 0; - uint8_t f_s_wallace_pg_rca4_nand_2_3 = 0; - uint8_t f_s_wallace_pg_rca4_and_0_1 = 0; - uint8_t f_s_wallace_pg_rca4_and_3_3 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa0_xor0 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa0_and0 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa1_xor0 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa1_and0 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa1_xor1 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_and1 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_or1 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa2_xor0 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa2_and0 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa2_xor1 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_and2 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_or2 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa3_xor0 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa3_and0 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa3_xor1 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_and3 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_or3 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa4_xor0 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa4_and0 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa4_xor1 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_and4 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_or4 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa5_xor0 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa5_and0 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_pg_fa5_xor1 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_and5 = 0; - uint8_t f_s_wallace_pg_rca4_u_pg_rca6_or5 = 0; - uint8_t f_s_wallace_pg_rca4_xor0 = 0; - - f_s_wallace_pg_rca4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_pg_rca4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_pg_rca4_ha0_xor0 = ((f_s_wallace_pg_rca4_and_2_0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_and_1_1 >> 0) & 0x01); - f_s_wallace_pg_rca4_ha0_and0 = ((f_s_wallace_pg_rca4_and_2_0 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_and_1_1 >> 0) & 0x01); - f_s_wallace_pg_rca4_nand_3_0 = ~(((a >> 3) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_wallace_pg_rca4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_pg_rca4_fa0_xor0 = ((f_s_wallace_pg_rca4_ha0_and0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_nand_3_0 >> 0) & 0x01); - f_s_wallace_pg_rca4_fa0_and0 = ((f_s_wallace_pg_rca4_ha0_and0 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_nand_3_0 >> 0) & 0x01); - f_s_wallace_pg_rca4_fa0_xor1 = ((f_s_wallace_pg_rca4_fa0_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_and_2_1 >> 0) & 0x01); - f_s_wallace_pg_rca4_fa0_and1 = ((f_s_wallace_pg_rca4_fa0_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_and_2_1 >> 0) & 0x01); - f_s_wallace_pg_rca4_fa0_or0 = ((f_s_wallace_pg_rca4_fa0_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca4_fa0_and1 >> 0) & 0x01); - f_s_wallace_pg_rca4_nand_3_1 = ~(((a >> 3) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_wallace_pg_rca4_fa1_xor0 = ~(((f_s_wallace_pg_rca4_fa0_or0 >> 0) & 0x01)) & 0x01; - f_s_wallace_pg_rca4_fa1_xor1 = ((f_s_wallace_pg_rca4_fa1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_nand_3_1 >> 0) & 0x01); - f_s_wallace_pg_rca4_fa1_and1 = ((f_s_wallace_pg_rca4_fa1_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_nand_3_1 >> 0) & 0x01); - f_s_wallace_pg_rca4_fa1_or0 = ((f_s_wallace_pg_rca4_fa0_or0 >> 0) & 0x01) | ((f_s_wallace_pg_rca4_fa1_and1 >> 0) & 0x01); - f_s_wallace_pg_rca4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_pg_rca4_nand_0_3 = ~(((a >> 0) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_pg_rca4_ha1_xor0 = ((f_s_wallace_pg_rca4_and_1_2 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_nand_0_3 >> 0) & 0x01); - f_s_wallace_pg_rca4_ha1_and0 = ((f_s_wallace_pg_rca4_and_1_2 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_nand_0_3 >> 0) & 0x01); - f_s_wallace_pg_rca4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_pg_rca4_nand_1_3 = ~(((a >> 1) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_pg_rca4_fa2_xor0 = ((f_s_wallace_pg_rca4_ha1_and0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_and_2_2 >> 0) & 0x01); - f_s_wallace_pg_rca4_fa2_and0 = ((f_s_wallace_pg_rca4_ha1_and0 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_and_2_2 >> 0) & 0x01); - f_s_wallace_pg_rca4_fa2_xor1 = ((f_s_wallace_pg_rca4_fa2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_nand_1_3 >> 0) & 0x01); - f_s_wallace_pg_rca4_fa2_and1 = ((f_s_wallace_pg_rca4_fa2_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_nand_1_3 >> 0) & 0x01); - f_s_wallace_pg_rca4_fa2_or0 = ((f_s_wallace_pg_rca4_fa2_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca4_fa2_and1 >> 0) & 0x01); - f_s_wallace_pg_rca4_nand_3_2 = ~(((a >> 3) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_wallace_pg_rca4_fa3_xor0 = ((f_s_wallace_pg_rca4_fa2_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_fa1_or0 >> 0) & 0x01); - f_s_wallace_pg_rca4_fa3_and0 = ((f_s_wallace_pg_rca4_fa2_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_fa1_or0 >> 0) & 0x01); - f_s_wallace_pg_rca4_fa3_xor1 = ((f_s_wallace_pg_rca4_fa3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_nand_3_2 >> 0) & 0x01); - f_s_wallace_pg_rca4_fa3_and1 = ((f_s_wallace_pg_rca4_fa3_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_nand_3_2 >> 0) & 0x01); - f_s_wallace_pg_rca4_fa3_or0 = ((f_s_wallace_pg_rca4_fa3_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca4_fa3_and1 >> 0) & 0x01); - f_s_wallace_pg_rca4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_pg_rca4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_pg_rca4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_pg_rca4_nand_2_3 = ~(((a >> 2) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_pg_rca4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_pg_rca4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa0_xor0 = ((f_s_wallace_pg_rca4_and_1_0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_and_0_1 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa0_and0 = ((f_s_wallace_pg_rca4_and_1_0 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_and_0_1 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa1_xor0 = ((f_s_wallace_pg_rca4_and_0_2 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_ha0_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa1_and0 = ((f_s_wallace_pg_rca4_and_0_2 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_ha0_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa1_xor1 = ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa0_and0 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_and1 = ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa0_and0 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa1_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_or1 = ((f_s_wallace_pg_rca4_u_pg_rca6_and1 >> 0) & 0x01) | ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa1_and0 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa2_xor0 = ((f_s_wallace_pg_rca4_fa0_xor1 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_ha1_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa2_and0 = ((f_s_wallace_pg_rca4_fa0_xor1 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_ha1_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa2_xor1 = ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_u_pg_rca6_or1 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_and2 = ((f_s_wallace_pg_rca4_u_pg_rca6_or1 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa2_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_or2 = ((f_s_wallace_pg_rca4_u_pg_rca6_and2 >> 0) & 0x01) | ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa2_and0 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa3_xor0 = ((f_s_wallace_pg_rca4_fa1_xor1 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_fa2_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa3_and0 = ((f_s_wallace_pg_rca4_fa1_xor1 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_fa2_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa3_xor1 = ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_u_pg_rca6_or2 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_and3 = ((f_s_wallace_pg_rca4_u_pg_rca6_or2 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa3_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_or3 = ((f_s_wallace_pg_rca4_u_pg_rca6_and3 >> 0) & 0x01) | ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa3_and0 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa4_xor0 = ((f_s_wallace_pg_rca4_nand_2_3 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_fa3_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa4_and0 = ((f_s_wallace_pg_rca4_nand_2_3 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_fa3_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa4_xor1 = ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa4_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_u_pg_rca6_or3 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_and4 = ((f_s_wallace_pg_rca4_u_pg_rca6_or3 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa4_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_or4 = ((f_s_wallace_pg_rca4_u_pg_rca6_and4 >> 0) & 0x01) | ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa4_and0 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa5_xor0 = ((f_s_wallace_pg_rca4_fa3_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_and_3_3 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa5_and0 = ((f_s_wallace_pg_rca4_fa3_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_and_3_3 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_pg_fa5_xor1 = ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa5_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca4_u_pg_rca6_or4 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_and5 = ((f_s_wallace_pg_rca4_u_pg_rca6_or4 >> 0) & 0x01) & ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa5_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca4_u_pg_rca6_or5 = ((f_s_wallace_pg_rca4_u_pg_rca6_and5 >> 0) & 0x01) | ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa5_and0 >> 0) & 0x01); - f_s_wallace_pg_rca4_xor0 = ~(((f_s_wallace_pg_rca4_u_pg_rca6_or5 >> 0) & 0x01)) & 0x01; - - f_s_wallace_pg_rca4_out |= ((f_s_wallace_pg_rca4_and_0_0 >> 0) & 0x01) << 0; - f_s_wallace_pg_rca4_out |= ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa0_xor0 >> 0) & 0x01) << 1; - f_s_wallace_pg_rca4_out |= ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa1_xor1 >> 0) & 0x01) << 2; - f_s_wallace_pg_rca4_out |= ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa2_xor1 >> 0) & 0x01) << 3; - f_s_wallace_pg_rca4_out |= ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa3_xor1 >> 0) & 0x01) << 4; - f_s_wallace_pg_rca4_out |= ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa4_xor1 >> 0) & 0x01) << 5; - f_s_wallace_pg_rca4_out |= ((f_s_wallace_pg_rca4_u_pg_rca6_pg_fa5_xor1 >> 0) & 0x01) << 6; - f_s_wallace_pg_rca4_out |= ((f_s_wallace_pg_rca4_xor0 >> 0) & 0x01) << 7; - return f_s_wallace_pg_rca4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)f_s_wallace_pg_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_pg_rca8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_pg_rca8.c deleted file mode 100644 index b2c6cc8..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_pg_rca8.c +++ /dev/null @@ -1,689 +0,0 @@ -#include -#include - -uint64_t f_s_wallace_pg_rca8(uint64_t a, uint64_t b){ - uint64_t f_s_wallace_pg_rca8_out = 0; - uint8_t f_s_wallace_pg_rca8_and_2_0 = 0; - uint8_t f_s_wallace_pg_rca8_and_1_1 = 0; - uint8_t f_s_wallace_pg_rca8_ha0_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_ha0_and0 = 0; - uint8_t f_s_wallace_pg_rca8_and_3_0 = 0; - uint8_t f_s_wallace_pg_rca8_and_2_1 = 0; - uint8_t f_s_wallace_pg_rca8_fa0_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa0_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa0_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa0_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa0_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_4_0 = 0; - uint8_t f_s_wallace_pg_rca8_and_3_1 = 0; - uint8_t f_s_wallace_pg_rca8_fa1_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa1_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa1_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa1_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa1_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_5_0 = 0; - uint8_t f_s_wallace_pg_rca8_and_4_1 = 0; - uint8_t f_s_wallace_pg_rca8_fa2_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa2_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa2_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa2_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa2_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_6_0 = 0; - uint8_t f_s_wallace_pg_rca8_and_5_1 = 0; - uint8_t f_s_wallace_pg_rca8_fa3_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa3_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa3_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa3_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa3_or0 = 0; - uint8_t f_s_wallace_pg_rca8_nand_7_0 = 0; - uint8_t f_s_wallace_pg_rca8_and_6_1 = 0; - uint8_t f_s_wallace_pg_rca8_fa4_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa4_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa4_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa4_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa4_or0 = 0; - uint8_t f_s_wallace_pg_rca8_nand_7_1 = 0; - uint8_t f_s_wallace_pg_rca8_fa5_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa5_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa5_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa5_or0 = 0; - uint8_t f_s_wallace_pg_rca8_nand_7_2 = 0; - uint8_t f_s_wallace_pg_rca8_and_6_3 = 0; - uint8_t f_s_wallace_pg_rca8_fa6_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa6_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa6_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa6_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa6_or0 = 0; - uint8_t f_s_wallace_pg_rca8_nand_7_3 = 0; - uint8_t f_s_wallace_pg_rca8_and_6_4 = 0; - uint8_t f_s_wallace_pg_rca8_fa7_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa7_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa7_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa7_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa7_or0 = 0; - uint8_t f_s_wallace_pg_rca8_nand_7_4 = 0; - uint8_t f_s_wallace_pg_rca8_and_6_5 = 0; - uint8_t f_s_wallace_pg_rca8_fa8_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa8_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa8_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa8_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa8_or0 = 0; - uint8_t f_s_wallace_pg_rca8_nand_7_5 = 0; - uint8_t f_s_wallace_pg_rca8_and_6_6 = 0; - uint8_t f_s_wallace_pg_rca8_fa9_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa9_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa9_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa9_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa9_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_1_2 = 0; - uint8_t f_s_wallace_pg_rca8_and_0_3 = 0; - uint8_t f_s_wallace_pg_rca8_ha1_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_ha1_and0 = 0; - uint8_t f_s_wallace_pg_rca8_and_2_2 = 0; - uint8_t f_s_wallace_pg_rca8_and_1_3 = 0; - uint8_t f_s_wallace_pg_rca8_fa10_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa10_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa10_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa10_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa10_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_3_2 = 0; - uint8_t f_s_wallace_pg_rca8_and_2_3 = 0; - uint8_t f_s_wallace_pg_rca8_fa11_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa11_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa11_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa11_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa11_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_4_2 = 0; - uint8_t f_s_wallace_pg_rca8_and_3_3 = 0; - uint8_t f_s_wallace_pg_rca8_fa12_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa12_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa12_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa12_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa12_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_5_2 = 0; - uint8_t f_s_wallace_pg_rca8_and_4_3 = 0; - uint8_t f_s_wallace_pg_rca8_fa13_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa13_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa13_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa13_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa13_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_6_2 = 0; - uint8_t f_s_wallace_pg_rca8_and_5_3 = 0; - uint8_t f_s_wallace_pg_rca8_fa14_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa14_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa14_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa14_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa14_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_5_4 = 0; - uint8_t f_s_wallace_pg_rca8_and_4_5 = 0; - uint8_t f_s_wallace_pg_rca8_fa15_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa15_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa15_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa15_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa15_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_5_5 = 0; - uint8_t f_s_wallace_pg_rca8_and_4_6 = 0; - uint8_t f_s_wallace_pg_rca8_fa16_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa16_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa16_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa16_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa16_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_5_6 = 0; - uint8_t f_s_wallace_pg_rca8_nand_4_7 = 0; - uint8_t f_s_wallace_pg_rca8_fa17_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa17_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa17_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa17_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa17_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_0_4 = 0; - uint8_t f_s_wallace_pg_rca8_ha2_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_ha2_and0 = 0; - uint8_t f_s_wallace_pg_rca8_and_1_4 = 0; - uint8_t f_s_wallace_pg_rca8_and_0_5 = 0; - uint8_t f_s_wallace_pg_rca8_fa18_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa18_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa18_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa18_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa18_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_2_4 = 0; - uint8_t f_s_wallace_pg_rca8_and_1_5 = 0; - uint8_t f_s_wallace_pg_rca8_fa19_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa19_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa19_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa19_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa19_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_3_4 = 0; - uint8_t f_s_wallace_pg_rca8_and_2_5 = 0; - uint8_t f_s_wallace_pg_rca8_fa20_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa20_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa20_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa20_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa20_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_4_4 = 0; - uint8_t f_s_wallace_pg_rca8_and_3_5 = 0; - uint8_t f_s_wallace_pg_rca8_fa21_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa21_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa21_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa21_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa21_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_3_6 = 0; - uint8_t f_s_wallace_pg_rca8_nand_2_7 = 0; - uint8_t f_s_wallace_pg_rca8_fa22_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa22_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa22_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa22_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa22_or0 = 0; - uint8_t f_s_wallace_pg_rca8_nand_3_7 = 0; - uint8_t f_s_wallace_pg_rca8_fa23_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa23_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa23_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa23_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa23_or0 = 0; - uint8_t f_s_wallace_pg_rca8_ha3_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_ha3_and0 = 0; - uint8_t f_s_wallace_pg_rca8_and_0_6 = 0; - uint8_t f_s_wallace_pg_rca8_fa24_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa24_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa24_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa24_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa24_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_1_6 = 0; - uint8_t f_s_wallace_pg_rca8_nand_0_7 = 0; - uint8_t f_s_wallace_pg_rca8_fa25_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa25_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa25_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa25_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa25_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_2_6 = 0; - uint8_t f_s_wallace_pg_rca8_nand_1_7 = 0; - uint8_t f_s_wallace_pg_rca8_fa26_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa26_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa26_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa26_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa26_or0 = 0; - uint8_t f_s_wallace_pg_rca8_fa27_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa27_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa27_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa27_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa27_or0 = 0; - uint8_t f_s_wallace_pg_rca8_ha4_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_ha4_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa28_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa28_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa28_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa28_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa28_or0 = 0; - uint8_t f_s_wallace_pg_rca8_fa29_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa29_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa29_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa29_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa29_or0 = 0; - uint8_t f_s_wallace_pg_rca8_ha5_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_ha5_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa30_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa30_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa30_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa30_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa30_or0 = 0; - uint8_t f_s_wallace_pg_rca8_fa31_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa31_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa31_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa31_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa31_or0 = 0; - uint8_t f_s_wallace_pg_rca8_fa32_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa32_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa32_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa32_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa32_or0 = 0; - uint8_t f_s_wallace_pg_rca8_fa33_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa33_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa33_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa33_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa33_or0 = 0; - uint8_t f_s_wallace_pg_rca8_nand_5_7 = 0; - uint8_t f_s_wallace_pg_rca8_fa34_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa34_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa34_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa34_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa34_or0 = 0; - uint8_t f_s_wallace_pg_rca8_nand_7_6 = 0; - uint8_t f_s_wallace_pg_rca8_fa35_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_fa35_and0 = 0; - uint8_t f_s_wallace_pg_rca8_fa35_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_fa35_and1 = 0; - uint8_t f_s_wallace_pg_rca8_fa35_or0 = 0; - uint8_t f_s_wallace_pg_rca8_and_0_0 = 0; - uint8_t f_s_wallace_pg_rca8_and_1_0 = 0; - uint8_t f_s_wallace_pg_rca8_and_0_2 = 0; - uint8_t f_s_wallace_pg_rca8_nand_6_7 = 0; - uint8_t f_s_wallace_pg_rca8_and_0_1 = 0; - uint8_t f_s_wallace_pg_rca8_and_7_7 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa0_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa0_and0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa1_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa1_and0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa1_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_and1 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_or1 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa2_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa2_and0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa2_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_and2 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_or2 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa3_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa3_and0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa3_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_and3 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_or3 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa4_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa4_and0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa4_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_and4 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_or4 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa5_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa5_and0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa5_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_and5 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_or5 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa6_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa6_and0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa6_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_and6 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_or6 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa7_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa7_and0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa7_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_and7 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_or7 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa8_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa8_and0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa8_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_and8 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_or8 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa9_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa9_and0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa9_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_and9 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_or9 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa10_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa10_and0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa10_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_and10 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_or10 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa11_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa11_and0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa11_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_and11 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_or11 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa12_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa12_and0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa12_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_and12 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_or12 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa13_xor0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa13_and0 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_pg_fa13_xor1 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_and13 = 0; - uint8_t f_s_wallace_pg_rca8_u_pg_rca14_or13 = 0; - uint8_t f_s_wallace_pg_rca8_xor0 = 0; - - f_s_wallace_pg_rca8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_pg_rca8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_pg_rca8_ha0_xor0 = ((f_s_wallace_pg_rca8_and_2_0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_1_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_ha0_and0 = ((f_s_wallace_pg_rca8_and_2_0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_1_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_pg_rca8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_pg_rca8_fa0_xor0 = ((f_s_wallace_pg_rca8_ha0_and0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_3_0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa0_and0 = ((f_s_wallace_pg_rca8_ha0_and0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_3_0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa0_xor1 = ((f_s_wallace_pg_rca8_fa0_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_2_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa0_and1 = ((f_s_wallace_pg_rca8_fa0_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_2_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa0_or0 = ((f_s_wallace_pg_rca8_fa0_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa0_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_pg_rca8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_pg_rca8_fa1_xor0 = ((f_s_wallace_pg_rca8_fa0_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_4_0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa1_and0 = ((f_s_wallace_pg_rca8_fa0_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_4_0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa1_xor1 = ((f_s_wallace_pg_rca8_fa1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_3_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa1_and1 = ((f_s_wallace_pg_rca8_fa1_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_3_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa1_or0 = ((f_s_wallace_pg_rca8_fa1_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa1_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_pg_rca8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_pg_rca8_fa2_xor0 = ((f_s_wallace_pg_rca8_fa1_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_5_0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa2_and0 = ((f_s_wallace_pg_rca8_fa1_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_5_0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa2_xor1 = ((f_s_wallace_pg_rca8_fa2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_4_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa2_and1 = ((f_s_wallace_pg_rca8_fa2_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_4_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa2_or0 = ((f_s_wallace_pg_rca8_fa2_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa2_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_pg_rca8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_pg_rca8_fa3_xor0 = ((f_s_wallace_pg_rca8_fa2_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_6_0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa3_and0 = ((f_s_wallace_pg_rca8_fa2_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_6_0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa3_xor1 = ((f_s_wallace_pg_rca8_fa3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_5_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa3_and1 = ((f_s_wallace_pg_rca8_fa3_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_5_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa3_or0 = ((f_s_wallace_pg_rca8_fa3_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa3_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_nand_7_0 = ~(((a >> 7) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_wallace_pg_rca8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_pg_rca8_fa4_xor0 = ((f_s_wallace_pg_rca8_fa3_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_nand_7_0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa4_and0 = ((f_s_wallace_pg_rca8_fa3_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_nand_7_0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa4_xor1 = ((f_s_wallace_pg_rca8_fa4_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_6_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa4_and1 = ((f_s_wallace_pg_rca8_fa4_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_6_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa4_or0 = ((f_s_wallace_pg_rca8_fa4_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa4_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_nand_7_1 = ~(((a >> 7) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_wallace_pg_rca8_fa5_xor0 = ~(((f_s_wallace_pg_rca8_fa4_or0 >> 0) & 0x01)) & 0x01; - f_s_wallace_pg_rca8_fa5_xor1 = ((f_s_wallace_pg_rca8_fa5_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_nand_7_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa5_and1 = ((f_s_wallace_pg_rca8_fa5_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_nand_7_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa5_or0 = ((f_s_wallace_pg_rca8_fa4_or0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa5_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_nand_7_2 = ~(((a >> 7) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_wallace_pg_rca8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_pg_rca8_fa6_xor0 = ((f_s_wallace_pg_rca8_fa5_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_nand_7_2 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa6_and0 = ((f_s_wallace_pg_rca8_fa5_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_nand_7_2 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa6_xor1 = ((f_s_wallace_pg_rca8_fa6_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_6_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa6_and1 = ((f_s_wallace_pg_rca8_fa6_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_6_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa6_or0 = ((f_s_wallace_pg_rca8_fa6_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa6_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_nand_7_3 = ~(((a >> 7) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_pg_rca8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_pg_rca8_fa7_xor0 = ((f_s_wallace_pg_rca8_fa6_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_nand_7_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa7_and0 = ((f_s_wallace_pg_rca8_fa6_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_nand_7_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa7_xor1 = ((f_s_wallace_pg_rca8_fa7_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_6_4 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa7_and1 = ((f_s_wallace_pg_rca8_fa7_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_6_4 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa7_or0 = ((f_s_wallace_pg_rca8_fa7_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa7_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_nand_7_4 = ~(((a >> 7) & 0x01) & ((b >> 4) & 0x01)) & 0x01; - f_s_wallace_pg_rca8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_pg_rca8_fa8_xor0 = ((f_s_wallace_pg_rca8_fa7_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_nand_7_4 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa8_and0 = ((f_s_wallace_pg_rca8_fa7_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_nand_7_4 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa8_xor1 = ((f_s_wallace_pg_rca8_fa8_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_6_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa8_and1 = ((f_s_wallace_pg_rca8_fa8_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_6_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa8_or0 = ((f_s_wallace_pg_rca8_fa8_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa8_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_nand_7_5 = ~(((a >> 7) & 0x01) & ((b >> 5) & 0x01)) & 0x01; - f_s_wallace_pg_rca8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_pg_rca8_fa9_xor0 = ((f_s_wallace_pg_rca8_fa8_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_nand_7_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa9_and0 = ((f_s_wallace_pg_rca8_fa8_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_nand_7_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa9_xor1 = ((f_s_wallace_pg_rca8_fa9_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_6_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa9_and1 = ((f_s_wallace_pg_rca8_fa9_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_6_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa9_or0 = ((f_s_wallace_pg_rca8_fa9_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa9_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_pg_rca8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_pg_rca8_ha1_xor0 = ((f_s_wallace_pg_rca8_and_1_2 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_0_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_ha1_and0 = ((f_s_wallace_pg_rca8_and_1_2 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_0_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_pg_rca8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_pg_rca8_fa10_xor0 = ((f_s_wallace_pg_rca8_ha1_and0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_2_2 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa10_and0 = ((f_s_wallace_pg_rca8_ha1_and0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_2_2 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa10_xor1 = ((f_s_wallace_pg_rca8_fa10_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_1_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa10_and1 = ((f_s_wallace_pg_rca8_fa10_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_1_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa10_or0 = ((f_s_wallace_pg_rca8_fa10_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa10_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_pg_rca8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_pg_rca8_fa11_xor0 = ((f_s_wallace_pg_rca8_fa10_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_3_2 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa11_and0 = ((f_s_wallace_pg_rca8_fa10_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_3_2 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa11_xor1 = ((f_s_wallace_pg_rca8_fa11_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_2_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa11_and1 = ((f_s_wallace_pg_rca8_fa11_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_2_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa11_or0 = ((f_s_wallace_pg_rca8_fa11_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa11_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_pg_rca8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_pg_rca8_fa12_xor0 = ((f_s_wallace_pg_rca8_fa11_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_4_2 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa12_and0 = ((f_s_wallace_pg_rca8_fa11_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_4_2 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa12_xor1 = ((f_s_wallace_pg_rca8_fa12_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_3_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa12_and1 = ((f_s_wallace_pg_rca8_fa12_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_3_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa12_or0 = ((f_s_wallace_pg_rca8_fa12_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa12_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_pg_rca8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_pg_rca8_fa13_xor0 = ((f_s_wallace_pg_rca8_fa12_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_5_2 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa13_and0 = ((f_s_wallace_pg_rca8_fa12_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_5_2 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa13_xor1 = ((f_s_wallace_pg_rca8_fa13_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_4_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa13_and1 = ((f_s_wallace_pg_rca8_fa13_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_4_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa13_or0 = ((f_s_wallace_pg_rca8_fa13_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa13_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_pg_rca8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_pg_rca8_fa14_xor0 = ((f_s_wallace_pg_rca8_fa13_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_6_2 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa14_and0 = ((f_s_wallace_pg_rca8_fa13_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_6_2 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa14_xor1 = ((f_s_wallace_pg_rca8_fa14_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_5_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa14_and1 = ((f_s_wallace_pg_rca8_fa14_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_5_3 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa14_or0 = ((f_s_wallace_pg_rca8_fa14_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa14_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_pg_rca8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_pg_rca8_fa15_xor0 = ((f_s_wallace_pg_rca8_fa14_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_5_4 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa15_and0 = ((f_s_wallace_pg_rca8_fa14_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_5_4 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa15_xor1 = ((f_s_wallace_pg_rca8_fa15_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_4_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa15_and1 = ((f_s_wallace_pg_rca8_fa15_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_4_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa15_or0 = ((f_s_wallace_pg_rca8_fa15_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa15_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_pg_rca8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_pg_rca8_fa16_xor0 = ((f_s_wallace_pg_rca8_fa15_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_5_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa16_and0 = ((f_s_wallace_pg_rca8_fa15_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_5_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa16_xor1 = ((f_s_wallace_pg_rca8_fa16_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_4_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa16_and1 = ((f_s_wallace_pg_rca8_fa16_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_4_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa16_or0 = ((f_s_wallace_pg_rca8_fa16_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa16_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_pg_rca8_nand_4_7 = ~(((a >> 4) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_pg_rca8_fa17_xor0 = ((f_s_wallace_pg_rca8_fa16_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_5_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa17_and0 = ((f_s_wallace_pg_rca8_fa16_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_5_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa17_xor1 = ((f_s_wallace_pg_rca8_fa17_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_nand_4_7 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa17_and1 = ((f_s_wallace_pg_rca8_fa17_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_nand_4_7 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa17_or0 = ((f_s_wallace_pg_rca8_fa17_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa17_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_pg_rca8_ha2_xor0 = ((f_s_wallace_pg_rca8_and_0_4 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa1_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_ha2_and0 = ((f_s_wallace_pg_rca8_and_0_4 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa1_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_pg_rca8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_pg_rca8_fa18_xor0 = ((f_s_wallace_pg_rca8_ha2_and0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_1_4 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa18_and0 = ((f_s_wallace_pg_rca8_ha2_and0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_1_4 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa18_xor1 = ((f_s_wallace_pg_rca8_fa18_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_0_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa18_and1 = ((f_s_wallace_pg_rca8_fa18_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_0_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa18_or0 = ((f_s_wallace_pg_rca8_fa18_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa18_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_pg_rca8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_pg_rca8_fa19_xor0 = ((f_s_wallace_pg_rca8_fa18_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_2_4 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa19_and0 = ((f_s_wallace_pg_rca8_fa18_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_2_4 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa19_xor1 = ((f_s_wallace_pg_rca8_fa19_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_1_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa19_and1 = ((f_s_wallace_pg_rca8_fa19_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_1_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa19_or0 = ((f_s_wallace_pg_rca8_fa19_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa19_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_pg_rca8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_pg_rca8_fa20_xor0 = ((f_s_wallace_pg_rca8_fa19_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_3_4 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa20_and0 = ((f_s_wallace_pg_rca8_fa19_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_3_4 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa20_xor1 = ((f_s_wallace_pg_rca8_fa20_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_2_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa20_and1 = ((f_s_wallace_pg_rca8_fa20_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_2_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa20_or0 = ((f_s_wallace_pg_rca8_fa20_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa20_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_pg_rca8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_pg_rca8_fa21_xor0 = ((f_s_wallace_pg_rca8_fa20_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_4_4 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa21_and0 = ((f_s_wallace_pg_rca8_fa20_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_4_4 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa21_xor1 = ((f_s_wallace_pg_rca8_fa21_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_3_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa21_and1 = ((f_s_wallace_pg_rca8_fa21_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_3_5 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa21_or0 = ((f_s_wallace_pg_rca8_fa21_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa21_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_pg_rca8_nand_2_7 = ~(((a >> 2) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_pg_rca8_fa22_xor0 = ((f_s_wallace_pg_rca8_fa21_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_3_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa22_and0 = ((f_s_wallace_pg_rca8_fa21_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_3_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa22_xor1 = ((f_s_wallace_pg_rca8_fa22_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_nand_2_7 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa22_and1 = ((f_s_wallace_pg_rca8_fa22_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_nand_2_7 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa22_or0 = ((f_s_wallace_pg_rca8_fa22_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa22_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_nand_3_7 = ~(((a >> 3) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_pg_rca8_fa23_xor0 = ((f_s_wallace_pg_rca8_fa22_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_nand_3_7 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa23_and0 = ((f_s_wallace_pg_rca8_fa22_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_nand_3_7 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa23_xor1 = ((f_s_wallace_pg_rca8_fa23_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa7_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa23_and1 = ((f_s_wallace_pg_rca8_fa23_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa7_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa23_or0 = ((f_s_wallace_pg_rca8_fa23_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa23_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_ha3_xor0 = ((f_s_wallace_pg_rca8_fa2_xor1 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa11_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_ha3_and0 = ((f_s_wallace_pg_rca8_fa2_xor1 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa11_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_pg_rca8_fa24_xor0 = ((f_s_wallace_pg_rca8_ha3_and0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_0_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa24_and0 = ((f_s_wallace_pg_rca8_ha3_and0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_0_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa24_xor1 = ((f_s_wallace_pg_rca8_fa24_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa3_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa24_and1 = ((f_s_wallace_pg_rca8_fa24_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa3_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa24_or0 = ((f_s_wallace_pg_rca8_fa24_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa24_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_pg_rca8_nand_0_7 = ~(((a >> 0) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_pg_rca8_fa25_xor0 = ((f_s_wallace_pg_rca8_fa24_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_1_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa25_and0 = ((f_s_wallace_pg_rca8_fa24_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_1_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa25_xor1 = ((f_s_wallace_pg_rca8_fa25_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_nand_0_7 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa25_and1 = ((f_s_wallace_pg_rca8_fa25_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_nand_0_7 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa25_or0 = ((f_s_wallace_pg_rca8_fa25_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa25_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_pg_rca8_nand_1_7 = ~(((a >> 1) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_pg_rca8_fa26_xor0 = ((f_s_wallace_pg_rca8_fa25_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_2_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa26_and0 = ((f_s_wallace_pg_rca8_fa25_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_2_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa26_xor1 = ((f_s_wallace_pg_rca8_fa26_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_nand_1_7 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa26_and1 = ((f_s_wallace_pg_rca8_fa26_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_nand_1_7 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa26_or0 = ((f_s_wallace_pg_rca8_fa26_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa26_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa27_xor0 = ((f_s_wallace_pg_rca8_fa26_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa6_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa27_and0 = ((f_s_wallace_pg_rca8_fa26_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa6_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa27_xor1 = ((f_s_wallace_pg_rca8_fa27_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa15_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa27_and1 = ((f_s_wallace_pg_rca8_fa27_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa15_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa27_or0 = ((f_s_wallace_pg_rca8_fa27_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa27_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_ha4_xor0 = ((f_s_wallace_pg_rca8_fa12_xor1 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa19_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_ha4_and0 = ((f_s_wallace_pg_rca8_fa12_xor1 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa19_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa28_xor0 = ((f_s_wallace_pg_rca8_ha4_and0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa4_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa28_and0 = ((f_s_wallace_pg_rca8_ha4_and0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa4_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa28_xor1 = ((f_s_wallace_pg_rca8_fa28_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa13_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa28_and1 = ((f_s_wallace_pg_rca8_fa28_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa13_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa28_or0 = ((f_s_wallace_pg_rca8_fa28_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa28_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa29_xor0 = ((f_s_wallace_pg_rca8_fa28_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa5_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa29_and0 = ((f_s_wallace_pg_rca8_fa28_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa5_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa29_xor1 = ((f_s_wallace_pg_rca8_fa29_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa14_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa29_and1 = ((f_s_wallace_pg_rca8_fa29_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa14_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa29_or0 = ((f_s_wallace_pg_rca8_fa29_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa29_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_ha5_xor0 = ((f_s_wallace_pg_rca8_fa20_xor1 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa25_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_ha5_and0 = ((f_s_wallace_pg_rca8_fa20_xor1 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa25_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa30_xor0 = ((f_s_wallace_pg_rca8_ha5_and0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa21_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa30_and0 = ((f_s_wallace_pg_rca8_ha5_and0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa21_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa30_xor1 = ((f_s_wallace_pg_rca8_fa30_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa26_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa30_and1 = ((f_s_wallace_pg_rca8_fa30_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa26_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa30_or0 = ((f_s_wallace_pg_rca8_fa30_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa30_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa31_xor0 = ((f_s_wallace_pg_rca8_fa30_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa29_or0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa31_and0 = ((f_s_wallace_pg_rca8_fa30_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa29_or0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa31_xor1 = ((f_s_wallace_pg_rca8_fa31_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa22_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa31_and1 = ((f_s_wallace_pg_rca8_fa31_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa22_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa31_or0 = ((f_s_wallace_pg_rca8_fa31_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa31_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa32_xor0 = ((f_s_wallace_pg_rca8_fa31_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa27_or0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa32_and0 = ((f_s_wallace_pg_rca8_fa31_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa27_or0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa32_xor1 = ((f_s_wallace_pg_rca8_fa32_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa16_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa32_and1 = ((f_s_wallace_pg_rca8_fa32_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa16_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa32_or0 = ((f_s_wallace_pg_rca8_fa32_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa32_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa33_xor0 = ((f_s_wallace_pg_rca8_fa32_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa23_or0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa33_and0 = ((f_s_wallace_pg_rca8_fa32_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa23_or0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa33_xor1 = ((f_s_wallace_pg_rca8_fa33_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa8_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa33_and1 = ((f_s_wallace_pg_rca8_fa33_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa8_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa33_or0 = ((f_s_wallace_pg_rca8_fa33_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa33_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_nand_5_7 = ~(((a >> 5) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_pg_rca8_fa34_xor0 = ((f_s_wallace_pg_rca8_fa33_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa17_or0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa34_and0 = ((f_s_wallace_pg_rca8_fa33_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa17_or0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa34_xor1 = ((f_s_wallace_pg_rca8_fa34_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_nand_5_7 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa34_and1 = ((f_s_wallace_pg_rca8_fa34_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_nand_5_7 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa34_or0 = ((f_s_wallace_pg_rca8_fa34_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa34_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_nand_7_6 = ~(((a >> 7) & 0x01) & ((b >> 6) & 0x01)) & 0x01; - f_s_wallace_pg_rca8_fa35_xor0 = ((f_s_wallace_pg_rca8_fa34_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa9_or0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa35_and0 = ((f_s_wallace_pg_rca8_fa34_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa9_or0 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa35_xor1 = ((f_s_wallace_pg_rca8_fa35_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_nand_7_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa35_and1 = ((f_s_wallace_pg_rca8_fa35_xor0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_nand_7_6 >> 0) & 0x01); - f_s_wallace_pg_rca8_fa35_or0 = ((f_s_wallace_pg_rca8_fa35_and0 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_fa35_and1 >> 0) & 0x01); - f_s_wallace_pg_rca8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_pg_rca8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_pg_rca8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_pg_rca8_nand_6_7 = ~(((a >> 6) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_pg_rca8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_pg_rca8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa0_xor0 = ((f_s_wallace_pg_rca8_and_1_0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_0_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa0_and0 = ((f_s_wallace_pg_rca8_and_1_0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_0_1 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa1_xor0 = ((f_s_wallace_pg_rca8_and_0_2 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_ha0_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa1_and0 = ((f_s_wallace_pg_rca8_and_0_2 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_ha0_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa1_xor1 = ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa0_and0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_and1 = ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa0_and0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa1_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_or1 = ((f_s_wallace_pg_rca8_u_pg_rca14_and1 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa1_and0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa2_xor0 = ((f_s_wallace_pg_rca8_fa0_xor1 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_ha1_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa2_and0 = ((f_s_wallace_pg_rca8_fa0_xor1 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_ha1_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa2_xor1 = ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_u_pg_rca14_or1 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_and2 = ((f_s_wallace_pg_rca8_u_pg_rca14_or1 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa2_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_or2 = ((f_s_wallace_pg_rca8_u_pg_rca14_and2 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa2_and0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa3_xor0 = ((f_s_wallace_pg_rca8_fa10_xor1 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_ha2_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa3_and0 = ((f_s_wallace_pg_rca8_fa10_xor1 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_ha2_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa3_xor1 = ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_u_pg_rca14_or2 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_and3 = ((f_s_wallace_pg_rca8_u_pg_rca14_or2 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa3_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_or3 = ((f_s_wallace_pg_rca8_u_pg_rca14_and3 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa3_and0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa4_xor0 = ((f_s_wallace_pg_rca8_fa18_xor1 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_ha3_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa4_and0 = ((f_s_wallace_pg_rca8_fa18_xor1 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_ha3_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa4_xor1 = ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa4_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_u_pg_rca14_or3 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_and4 = ((f_s_wallace_pg_rca8_u_pg_rca14_or3 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa4_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_or4 = ((f_s_wallace_pg_rca8_u_pg_rca14_and4 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa4_and0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa5_xor0 = ((f_s_wallace_pg_rca8_fa24_xor1 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_ha4_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa5_and0 = ((f_s_wallace_pg_rca8_fa24_xor1 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_ha4_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa5_xor1 = ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa5_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_u_pg_rca14_or4 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_and5 = ((f_s_wallace_pg_rca8_u_pg_rca14_or4 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa5_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_or5 = ((f_s_wallace_pg_rca8_u_pg_rca14_and5 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa5_and0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa6_xor0 = ((f_s_wallace_pg_rca8_fa28_xor1 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_ha5_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa6_and0 = ((f_s_wallace_pg_rca8_fa28_xor1 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_ha5_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa6_xor1 = ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa6_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_u_pg_rca14_or5 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_and6 = ((f_s_wallace_pg_rca8_u_pg_rca14_or5 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa6_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_or6 = ((f_s_wallace_pg_rca8_u_pg_rca14_and6 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa6_and0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa7_xor0 = ((f_s_wallace_pg_rca8_fa29_xor1 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa30_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa7_and0 = ((f_s_wallace_pg_rca8_fa29_xor1 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa30_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa7_xor1 = ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa7_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_u_pg_rca14_or6 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_and7 = ((f_s_wallace_pg_rca8_u_pg_rca14_or6 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa7_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_or7 = ((f_s_wallace_pg_rca8_u_pg_rca14_and7 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa7_and0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa8_xor0 = ((f_s_wallace_pg_rca8_fa27_xor1 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa31_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa8_and0 = ((f_s_wallace_pg_rca8_fa27_xor1 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa31_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa8_xor1 = ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa8_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_u_pg_rca14_or7 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_and8 = ((f_s_wallace_pg_rca8_u_pg_rca14_or7 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa8_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_or8 = ((f_s_wallace_pg_rca8_u_pg_rca14_and8 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa8_and0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa9_xor0 = ((f_s_wallace_pg_rca8_fa23_xor1 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa32_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa9_and0 = ((f_s_wallace_pg_rca8_fa23_xor1 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa32_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa9_xor1 = ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa9_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_u_pg_rca14_or8 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_and9 = ((f_s_wallace_pg_rca8_u_pg_rca14_or8 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa9_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_or9 = ((f_s_wallace_pg_rca8_u_pg_rca14_and9 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa9_and0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa10_xor0 = ((f_s_wallace_pg_rca8_fa17_xor1 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa33_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa10_and0 = ((f_s_wallace_pg_rca8_fa17_xor1 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa33_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa10_xor1 = ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa10_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_u_pg_rca14_or9 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_and10 = ((f_s_wallace_pg_rca8_u_pg_rca14_or9 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa10_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_or10 = ((f_s_wallace_pg_rca8_u_pg_rca14_and10 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa10_and0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa11_xor0 = ((f_s_wallace_pg_rca8_fa9_xor1 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa34_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa11_and0 = ((f_s_wallace_pg_rca8_fa9_xor1 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa34_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa11_xor1 = ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa11_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_u_pg_rca14_or10 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_and11 = ((f_s_wallace_pg_rca8_u_pg_rca14_or10 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa11_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_or11 = ((f_s_wallace_pg_rca8_u_pg_rca14_and11 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa11_and0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa12_xor0 = ((f_s_wallace_pg_rca8_nand_6_7 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_fa35_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa12_and0 = ((f_s_wallace_pg_rca8_nand_6_7 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_fa35_xor1 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa12_xor1 = ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa12_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_u_pg_rca14_or11 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_and12 = ((f_s_wallace_pg_rca8_u_pg_rca14_or11 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa12_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_or12 = ((f_s_wallace_pg_rca8_u_pg_rca14_and12 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa12_and0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa13_xor0 = ((f_s_wallace_pg_rca8_fa35_or0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_and_7_7 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa13_and0 = ((f_s_wallace_pg_rca8_fa35_or0 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_and_7_7 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_pg_fa13_xor1 = ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa13_xor0 >> 0) & 0x01) ^ ((f_s_wallace_pg_rca8_u_pg_rca14_or12 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_and13 = ((f_s_wallace_pg_rca8_u_pg_rca14_or12 >> 0) & 0x01) & ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa13_xor0 >> 0) & 0x01); - f_s_wallace_pg_rca8_u_pg_rca14_or13 = ((f_s_wallace_pg_rca8_u_pg_rca14_and13 >> 0) & 0x01) | ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa13_and0 >> 0) & 0x01); - f_s_wallace_pg_rca8_xor0 = ~(((f_s_wallace_pg_rca8_u_pg_rca14_or13 >> 0) & 0x01)) & 0x01; - - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_and_0_0 >> 0) & 0x01) << 0; - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa0_xor0 >> 0) & 0x01) << 1; - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa1_xor1 >> 0) & 0x01) << 2; - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa2_xor1 >> 0) & 0x01) << 3; - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa3_xor1 >> 0) & 0x01) << 4; - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa4_xor1 >> 0) & 0x01) << 5; - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa5_xor1 >> 0) & 0x01) << 6; - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa6_xor1 >> 0) & 0x01) << 7; - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa7_xor1 >> 0) & 0x01) << 8; - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa8_xor1 >> 0) & 0x01) << 9; - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa9_xor1 >> 0) & 0x01) << 10; - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa10_xor1 >> 0) & 0x01) << 11; - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa11_xor1 >> 0) & 0x01) << 12; - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa12_xor1 >> 0) & 0x01) << 13; - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_u_pg_rca14_pg_fa13_xor1 >> 0) & 0x01) << 14; - f_s_wallace_pg_rca8_out |= ((f_s_wallace_pg_rca8_xor0 >> 0) & 0x01) << 15; - return f_s_wallace_pg_rca8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)f_s_wallace_pg_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_rca4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_rca4.c deleted file mode 100644 index 0f4dd20..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_rca4.c +++ /dev/null @@ -1,169 +0,0 @@ -#include -#include - -uint64_t f_s_wallace_rca4(uint64_t a, uint64_t b){ - uint8_t f_s_wallace_rca4_out = 0; - uint8_t f_s_wallace_rca4_and_2_0 = 0; - uint8_t f_s_wallace_rca4_and_1_1 = 0; - uint8_t f_s_wallace_rca4_ha0_xor0 = 0; - uint8_t f_s_wallace_rca4_ha0_and0 = 0; - uint8_t f_s_wallace_rca4_nand_3_0 = 0; - uint8_t f_s_wallace_rca4_and_2_1 = 0; - uint8_t f_s_wallace_rca4_fa0_xor0 = 0; - uint8_t f_s_wallace_rca4_fa0_and0 = 0; - uint8_t f_s_wallace_rca4_fa0_xor1 = 0; - uint8_t f_s_wallace_rca4_fa0_and1 = 0; - uint8_t f_s_wallace_rca4_fa0_or0 = 0; - uint8_t f_s_wallace_rca4_nand_3_1 = 0; - uint8_t f_s_wallace_rca4_fa1_xor0 = 0; - uint8_t f_s_wallace_rca4_fa1_xor1 = 0; - uint8_t f_s_wallace_rca4_fa1_and1 = 0; - uint8_t f_s_wallace_rca4_fa1_or0 = 0; - uint8_t f_s_wallace_rca4_and_1_2 = 0; - uint8_t f_s_wallace_rca4_nand_0_3 = 0; - uint8_t f_s_wallace_rca4_ha1_xor0 = 0; - uint8_t f_s_wallace_rca4_ha1_and0 = 0; - uint8_t f_s_wallace_rca4_and_2_2 = 0; - uint8_t f_s_wallace_rca4_nand_1_3 = 0; - uint8_t f_s_wallace_rca4_fa2_xor0 = 0; - uint8_t f_s_wallace_rca4_fa2_and0 = 0; - uint8_t f_s_wallace_rca4_fa2_xor1 = 0; - uint8_t f_s_wallace_rca4_fa2_and1 = 0; - uint8_t f_s_wallace_rca4_fa2_or0 = 0; - uint8_t f_s_wallace_rca4_nand_3_2 = 0; - uint8_t f_s_wallace_rca4_fa3_xor0 = 0; - uint8_t f_s_wallace_rca4_fa3_and0 = 0; - uint8_t f_s_wallace_rca4_fa3_xor1 = 0; - uint8_t f_s_wallace_rca4_fa3_and1 = 0; - uint8_t f_s_wallace_rca4_fa3_or0 = 0; - uint8_t f_s_wallace_rca4_and_0_0 = 0; - uint8_t f_s_wallace_rca4_and_1_0 = 0; - uint8_t f_s_wallace_rca4_and_0_2 = 0; - uint8_t f_s_wallace_rca4_nand_2_3 = 0; - uint8_t f_s_wallace_rca4_and_0_1 = 0; - uint8_t f_s_wallace_rca4_and_3_3 = 0; - uint8_t f_s_wallace_rca4_u_rca6_ha_xor0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_ha_and0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa1_xor0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa1_and0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa1_xor1 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa1_and1 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa1_or0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa2_xor0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa2_and0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa2_xor1 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa2_and1 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa2_or0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa3_xor0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa3_and0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa3_xor1 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa3_and1 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa3_or0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa4_xor0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa4_and0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa4_xor1 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa4_and1 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa4_or0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa5_xor0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa5_and0 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa5_xor1 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa5_and1 = 0; - uint8_t f_s_wallace_rca4_u_rca6_fa5_or0 = 0; - uint8_t f_s_wallace_rca4_xor0 = 0; - - f_s_wallace_rca4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_rca4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_rca4_ha0_xor0 = ((f_s_wallace_rca4_and_2_0 >> 0) & 0x01) ^ ((f_s_wallace_rca4_and_1_1 >> 0) & 0x01); - f_s_wallace_rca4_ha0_and0 = ((f_s_wallace_rca4_and_2_0 >> 0) & 0x01) & ((f_s_wallace_rca4_and_1_1 >> 0) & 0x01); - f_s_wallace_rca4_nand_3_0 = ~(((a >> 3) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_wallace_rca4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_rca4_fa0_xor0 = ((f_s_wallace_rca4_ha0_and0 >> 0) & 0x01) ^ ((f_s_wallace_rca4_nand_3_0 >> 0) & 0x01); - f_s_wallace_rca4_fa0_and0 = ((f_s_wallace_rca4_ha0_and0 >> 0) & 0x01) & ((f_s_wallace_rca4_nand_3_0 >> 0) & 0x01); - f_s_wallace_rca4_fa0_xor1 = ((f_s_wallace_rca4_fa0_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca4_and_2_1 >> 0) & 0x01); - f_s_wallace_rca4_fa0_and1 = ((f_s_wallace_rca4_fa0_xor0 >> 0) & 0x01) & ((f_s_wallace_rca4_and_2_1 >> 0) & 0x01); - f_s_wallace_rca4_fa0_or0 = ((f_s_wallace_rca4_fa0_and0 >> 0) & 0x01) | ((f_s_wallace_rca4_fa0_and1 >> 0) & 0x01); - f_s_wallace_rca4_nand_3_1 = ~(((a >> 3) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_wallace_rca4_fa1_xor0 = ~(((f_s_wallace_rca4_fa0_or0 >> 0) & 0x01)) & 0x01; - f_s_wallace_rca4_fa1_xor1 = ((f_s_wallace_rca4_fa1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca4_nand_3_1 >> 0) & 0x01); - f_s_wallace_rca4_fa1_and1 = ((f_s_wallace_rca4_fa1_xor0 >> 0) & 0x01) & ((f_s_wallace_rca4_nand_3_1 >> 0) & 0x01); - f_s_wallace_rca4_fa1_or0 = ((f_s_wallace_rca4_fa0_or0 >> 0) & 0x01) | ((f_s_wallace_rca4_fa1_and1 >> 0) & 0x01); - f_s_wallace_rca4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_rca4_nand_0_3 = ~(((a >> 0) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_rca4_ha1_xor0 = ((f_s_wallace_rca4_and_1_2 >> 0) & 0x01) ^ ((f_s_wallace_rca4_nand_0_3 >> 0) & 0x01); - f_s_wallace_rca4_ha1_and0 = ((f_s_wallace_rca4_and_1_2 >> 0) & 0x01) & ((f_s_wallace_rca4_nand_0_3 >> 0) & 0x01); - f_s_wallace_rca4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_rca4_nand_1_3 = ~(((a >> 1) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_rca4_fa2_xor0 = ((f_s_wallace_rca4_ha1_and0 >> 0) & 0x01) ^ ((f_s_wallace_rca4_and_2_2 >> 0) & 0x01); - f_s_wallace_rca4_fa2_and0 = ((f_s_wallace_rca4_ha1_and0 >> 0) & 0x01) & ((f_s_wallace_rca4_and_2_2 >> 0) & 0x01); - f_s_wallace_rca4_fa2_xor1 = ((f_s_wallace_rca4_fa2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca4_nand_1_3 >> 0) & 0x01); - f_s_wallace_rca4_fa2_and1 = ((f_s_wallace_rca4_fa2_xor0 >> 0) & 0x01) & ((f_s_wallace_rca4_nand_1_3 >> 0) & 0x01); - f_s_wallace_rca4_fa2_or0 = ((f_s_wallace_rca4_fa2_and0 >> 0) & 0x01) | ((f_s_wallace_rca4_fa2_and1 >> 0) & 0x01); - f_s_wallace_rca4_nand_3_2 = ~(((a >> 3) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_wallace_rca4_fa3_xor0 = ((f_s_wallace_rca4_fa2_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca4_fa1_or0 >> 0) & 0x01); - f_s_wallace_rca4_fa3_and0 = ((f_s_wallace_rca4_fa2_or0 >> 0) & 0x01) & ((f_s_wallace_rca4_fa1_or0 >> 0) & 0x01); - f_s_wallace_rca4_fa3_xor1 = ((f_s_wallace_rca4_fa3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca4_nand_3_2 >> 0) & 0x01); - f_s_wallace_rca4_fa3_and1 = ((f_s_wallace_rca4_fa3_xor0 >> 0) & 0x01) & ((f_s_wallace_rca4_nand_3_2 >> 0) & 0x01); - f_s_wallace_rca4_fa3_or0 = ((f_s_wallace_rca4_fa3_and0 >> 0) & 0x01) | ((f_s_wallace_rca4_fa3_and1 >> 0) & 0x01); - f_s_wallace_rca4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_rca4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_rca4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_rca4_nand_2_3 = ~(((a >> 2) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_rca4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_rca4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_rca4_u_rca6_ha_xor0 = ((f_s_wallace_rca4_and_1_0 >> 0) & 0x01) ^ ((f_s_wallace_rca4_and_0_1 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_ha_and0 = ((f_s_wallace_rca4_and_1_0 >> 0) & 0x01) & ((f_s_wallace_rca4_and_0_1 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa1_xor0 = ((f_s_wallace_rca4_and_0_2 >> 0) & 0x01) ^ ((f_s_wallace_rca4_ha0_xor0 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa1_and0 = ((f_s_wallace_rca4_and_0_2 >> 0) & 0x01) & ((f_s_wallace_rca4_ha0_xor0 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa1_xor1 = ((f_s_wallace_rca4_u_rca6_fa1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca4_u_rca6_ha_and0 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa1_and1 = ((f_s_wallace_rca4_u_rca6_fa1_xor0 >> 0) & 0x01) & ((f_s_wallace_rca4_u_rca6_ha_and0 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa1_or0 = ((f_s_wallace_rca4_u_rca6_fa1_and0 >> 0) & 0x01) | ((f_s_wallace_rca4_u_rca6_fa1_and1 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa2_xor0 = ((f_s_wallace_rca4_fa0_xor1 >> 0) & 0x01) ^ ((f_s_wallace_rca4_ha1_xor0 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa2_and0 = ((f_s_wallace_rca4_fa0_xor1 >> 0) & 0x01) & ((f_s_wallace_rca4_ha1_xor0 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa2_xor1 = ((f_s_wallace_rca4_u_rca6_fa2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca4_u_rca6_fa1_or0 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa2_and1 = ((f_s_wallace_rca4_u_rca6_fa2_xor0 >> 0) & 0x01) & ((f_s_wallace_rca4_u_rca6_fa1_or0 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa2_or0 = ((f_s_wallace_rca4_u_rca6_fa2_and0 >> 0) & 0x01) | ((f_s_wallace_rca4_u_rca6_fa2_and1 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa3_xor0 = ((f_s_wallace_rca4_fa1_xor1 >> 0) & 0x01) ^ ((f_s_wallace_rca4_fa2_xor1 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa3_and0 = ((f_s_wallace_rca4_fa1_xor1 >> 0) & 0x01) & ((f_s_wallace_rca4_fa2_xor1 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa3_xor1 = ((f_s_wallace_rca4_u_rca6_fa3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca4_u_rca6_fa2_or0 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa3_and1 = ((f_s_wallace_rca4_u_rca6_fa3_xor0 >> 0) & 0x01) & ((f_s_wallace_rca4_u_rca6_fa2_or0 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa3_or0 = ((f_s_wallace_rca4_u_rca6_fa3_and0 >> 0) & 0x01) | ((f_s_wallace_rca4_u_rca6_fa3_and1 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa4_xor0 = ((f_s_wallace_rca4_nand_2_3 >> 0) & 0x01) ^ ((f_s_wallace_rca4_fa3_xor1 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa4_and0 = ((f_s_wallace_rca4_nand_2_3 >> 0) & 0x01) & ((f_s_wallace_rca4_fa3_xor1 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa4_xor1 = ((f_s_wallace_rca4_u_rca6_fa4_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca4_u_rca6_fa3_or0 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa4_and1 = ((f_s_wallace_rca4_u_rca6_fa4_xor0 >> 0) & 0x01) & ((f_s_wallace_rca4_u_rca6_fa3_or0 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa4_or0 = ((f_s_wallace_rca4_u_rca6_fa4_and0 >> 0) & 0x01) | ((f_s_wallace_rca4_u_rca6_fa4_and1 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa5_xor0 = ((f_s_wallace_rca4_fa3_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca4_and_3_3 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa5_and0 = ((f_s_wallace_rca4_fa3_or0 >> 0) & 0x01) & ((f_s_wallace_rca4_and_3_3 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa5_xor1 = ((f_s_wallace_rca4_u_rca6_fa5_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca4_u_rca6_fa4_or0 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa5_and1 = ((f_s_wallace_rca4_u_rca6_fa5_xor0 >> 0) & 0x01) & ((f_s_wallace_rca4_u_rca6_fa4_or0 >> 0) & 0x01); - f_s_wallace_rca4_u_rca6_fa5_or0 = ((f_s_wallace_rca4_u_rca6_fa5_and0 >> 0) & 0x01) | ((f_s_wallace_rca4_u_rca6_fa5_and1 >> 0) & 0x01); - f_s_wallace_rca4_xor0 = ~(((f_s_wallace_rca4_u_rca6_fa5_or0 >> 0) & 0x01)) & 0x01; - - f_s_wallace_rca4_out |= ((f_s_wallace_rca4_and_0_0 >> 0) & 0x01) << 0; - f_s_wallace_rca4_out |= ((f_s_wallace_rca4_u_rca6_ha_xor0 >> 0) & 0x01) << 1; - f_s_wallace_rca4_out |= ((f_s_wallace_rca4_u_rca6_fa1_xor1 >> 0) & 0x01) << 2; - f_s_wallace_rca4_out |= ((f_s_wallace_rca4_u_rca6_fa2_xor1 >> 0) & 0x01) << 3; - f_s_wallace_rca4_out |= ((f_s_wallace_rca4_u_rca6_fa3_xor1 >> 0) & 0x01) << 4; - f_s_wallace_rca4_out |= ((f_s_wallace_rca4_u_rca6_fa4_xor1 >> 0) & 0x01) << 5; - f_s_wallace_rca4_out |= ((f_s_wallace_rca4_u_rca6_fa5_xor1 >> 0) & 0x01) << 6; - f_s_wallace_rca4_out |= ((f_s_wallace_rca4_xor0 >> 0) & 0x01) << 7; - return f_s_wallace_rca4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)f_s_wallace_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_rca8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_rca8.c deleted file mode 100644 index 572e4df..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_s_wallace_rca8.c +++ /dev/null @@ -1,689 +0,0 @@ -#include -#include - -uint64_t f_s_wallace_rca8(uint64_t a, uint64_t b){ - uint64_t f_s_wallace_rca8_out = 0; - uint8_t f_s_wallace_rca8_and_2_0 = 0; - uint8_t f_s_wallace_rca8_and_1_1 = 0; - uint8_t f_s_wallace_rca8_ha0_xor0 = 0; - uint8_t f_s_wallace_rca8_ha0_and0 = 0; - uint8_t f_s_wallace_rca8_and_3_0 = 0; - uint8_t f_s_wallace_rca8_and_2_1 = 0; - uint8_t f_s_wallace_rca8_fa0_xor0 = 0; - uint8_t f_s_wallace_rca8_fa0_and0 = 0; - uint8_t f_s_wallace_rca8_fa0_xor1 = 0; - uint8_t f_s_wallace_rca8_fa0_and1 = 0; - uint8_t f_s_wallace_rca8_fa0_or0 = 0; - uint8_t f_s_wallace_rca8_and_4_0 = 0; - uint8_t f_s_wallace_rca8_and_3_1 = 0; - uint8_t f_s_wallace_rca8_fa1_xor0 = 0; - uint8_t f_s_wallace_rca8_fa1_and0 = 0; - uint8_t f_s_wallace_rca8_fa1_xor1 = 0; - uint8_t f_s_wallace_rca8_fa1_and1 = 0; - uint8_t f_s_wallace_rca8_fa1_or0 = 0; - uint8_t f_s_wallace_rca8_and_5_0 = 0; - uint8_t f_s_wallace_rca8_and_4_1 = 0; - uint8_t f_s_wallace_rca8_fa2_xor0 = 0; - uint8_t f_s_wallace_rca8_fa2_and0 = 0; - uint8_t f_s_wallace_rca8_fa2_xor1 = 0; - uint8_t f_s_wallace_rca8_fa2_and1 = 0; - uint8_t f_s_wallace_rca8_fa2_or0 = 0; - uint8_t f_s_wallace_rca8_and_6_0 = 0; - uint8_t f_s_wallace_rca8_and_5_1 = 0; - uint8_t f_s_wallace_rca8_fa3_xor0 = 0; - uint8_t f_s_wallace_rca8_fa3_and0 = 0; - uint8_t f_s_wallace_rca8_fa3_xor1 = 0; - uint8_t f_s_wallace_rca8_fa3_and1 = 0; - uint8_t f_s_wallace_rca8_fa3_or0 = 0; - uint8_t f_s_wallace_rca8_nand_7_0 = 0; - uint8_t f_s_wallace_rca8_and_6_1 = 0; - uint8_t f_s_wallace_rca8_fa4_xor0 = 0; - uint8_t f_s_wallace_rca8_fa4_and0 = 0; - uint8_t f_s_wallace_rca8_fa4_xor1 = 0; - uint8_t f_s_wallace_rca8_fa4_and1 = 0; - uint8_t f_s_wallace_rca8_fa4_or0 = 0; - uint8_t f_s_wallace_rca8_nand_7_1 = 0; - uint8_t f_s_wallace_rca8_fa5_xor0 = 0; - uint8_t f_s_wallace_rca8_fa5_xor1 = 0; - uint8_t f_s_wallace_rca8_fa5_and1 = 0; - uint8_t f_s_wallace_rca8_fa5_or0 = 0; - uint8_t f_s_wallace_rca8_nand_7_2 = 0; - uint8_t f_s_wallace_rca8_and_6_3 = 0; - uint8_t f_s_wallace_rca8_fa6_xor0 = 0; - uint8_t f_s_wallace_rca8_fa6_and0 = 0; - uint8_t f_s_wallace_rca8_fa6_xor1 = 0; - uint8_t f_s_wallace_rca8_fa6_and1 = 0; - uint8_t f_s_wallace_rca8_fa6_or0 = 0; - uint8_t f_s_wallace_rca8_nand_7_3 = 0; - uint8_t f_s_wallace_rca8_and_6_4 = 0; - uint8_t f_s_wallace_rca8_fa7_xor0 = 0; - uint8_t f_s_wallace_rca8_fa7_and0 = 0; - uint8_t f_s_wallace_rca8_fa7_xor1 = 0; - uint8_t f_s_wallace_rca8_fa7_and1 = 0; - uint8_t f_s_wallace_rca8_fa7_or0 = 0; - uint8_t f_s_wallace_rca8_nand_7_4 = 0; - uint8_t f_s_wallace_rca8_and_6_5 = 0; - uint8_t f_s_wallace_rca8_fa8_xor0 = 0; - uint8_t f_s_wallace_rca8_fa8_and0 = 0; - uint8_t f_s_wallace_rca8_fa8_xor1 = 0; - uint8_t f_s_wallace_rca8_fa8_and1 = 0; - uint8_t f_s_wallace_rca8_fa8_or0 = 0; - uint8_t f_s_wallace_rca8_nand_7_5 = 0; - uint8_t f_s_wallace_rca8_and_6_6 = 0; - uint8_t f_s_wallace_rca8_fa9_xor0 = 0; - uint8_t f_s_wallace_rca8_fa9_and0 = 0; - uint8_t f_s_wallace_rca8_fa9_xor1 = 0; - uint8_t f_s_wallace_rca8_fa9_and1 = 0; - uint8_t f_s_wallace_rca8_fa9_or0 = 0; - uint8_t f_s_wallace_rca8_and_1_2 = 0; - uint8_t f_s_wallace_rca8_and_0_3 = 0; - uint8_t f_s_wallace_rca8_ha1_xor0 = 0; - uint8_t f_s_wallace_rca8_ha1_and0 = 0; - uint8_t f_s_wallace_rca8_and_2_2 = 0; - uint8_t f_s_wallace_rca8_and_1_3 = 0; - uint8_t f_s_wallace_rca8_fa10_xor0 = 0; - uint8_t f_s_wallace_rca8_fa10_and0 = 0; - uint8_t f_s_wallace_rca8_fa10_xor1 = 0; - uint8_t f_s_wallace_rca8_fa10_and1 = 0; - uint8_t f_s_wallace_rca8_fa10_or0 = 0; - uint8_t f_s_wallace_rca8_and_3_2 = 0; - uint8_t f_s_wallace_rca8_and_2_3 = 0; - uint8_t f_s_wallace_rca8_fa11_xor0 = 0; - uint8_t f_s_wallace_rca8_fa11_and0 = 0; - uint8_t f_s_wallace_rca8_fa11_xor1 = 0; - uint8_t f_s_wallace_rca8_fa11_and1 = 0; - uint8_t f_s_wallace_rca8_fa11_or0 = 0; - uint8_t f_s_wallace_rca8_and_4_2 = 0; - uint8_t f_s_wallace_rca8_and_3_3 = 0; - uint8_t f_s_wallace_rca8_fa12_xor0 = 0; - uint8_t f_s_wallace_rca8_fa12_and0 = 0; - uint8_t f_s_wallace_rca8_fa12_xor1 = 0; - uint8_t f_s_wallace_rca8_fa12_and1 = 0; - uint8_t f_s_wallace_rca8_fa12_or0 = 0; - uint8_t f_s_wallace_rca8_and_5_2 = 0; - uint8_t f_s_wallace_rca8_and_4_3 = 0; - uint8_t f_s_wallace_rca8_fa13_xor0 = 0; - uint8_t f_s_wallace_rca8_fa13_and0 = 0; - uint8_t f_s_wallace_rca8_fa13_xor1 = 0; - uint8_t f_s_wallace_rca8_fa13_and1 = 0; - uint8_t f_s_wallace_rca8_fa13_or0 = 0; - uint8_t f_s_wallace_rca8_and_6_2 = 0; - uint8_t f_s_wallace_rca8_and_5_3 = 0; - uint8_t f_s_wallace_rca8_fa14_xor0 = 0; - uint8_t f_s_wallace_rca8_fa14_and0 = 0; - uint8_t f_s_wallace_rca8_fa14_xor1 = 0; - uint8_t f_s_wallace_rca8_fa14_and1 = 0; - uint8_t f_s_wallace_rca8_fa14_or0 = 0; - uint8_t f_s_wallace_rca8_and_5_4 = 0; - uint8_t f_s_wallace_rca8_and_4_5 = 0; - uint8_t f_s_wallace_rca8_fa15_xor0 = 0; - uint8_t f_s_wallace_rca8_fa15_and0 = 0; - uint8_t f_s_wallace_rca8_fa15_xor1 = 0; - uint8_t f_s_wallace_rca8_fa15_and1 = 0; - uint8_t f_s_wallace_rca8_fa15_or0 = 0; - uint8_t f_s_wallace_rca8_and_5_5 = 0; - uint8_t f_s_wallace_rca8_and_4_6 = 0; - uint8_t f_s_wallace_rca8_fa16_xor0 = 0; - uint8_t f_s_wallace_rca8_fa16_and0 = 0; - uint8_t f_s_wallace_rca8_fa16_xor1 = 0; - uint8_t f_s_wallace_rca8_fa16_and1 = 0; - uint8_t f_s_wallace_rca8_fa16_or0 = 0; - uint8_t f_s_wallace_rca8_and_5_6 = 0; - uint8_t f_s_wallace_rca8_nand_4_7 = 0; - uint8_t f_s_wallace_rca8_fa17_xor0 = 0; - uint8_t f_s_wallace_rca8_fa17_and0 = 0; - uint8_t f_s_wallace_rca8_fa17_xor1 = 0; - uint8_t f_s_wallace_rca8_fa17_and1 = 0; - uint8_t f_s_wallace_rca8_fa17_or0 = 0; - uint8_t f_s_wallace_rca8_and_0_4 = 0; - uint8_t f_s_wallace_rca8_ha2_xor0 = 0; - uint8_t f_s_wallace_rca8_ha2_and0 = 0; - uint8_t f_s_wallace_rca8_and_1_4 = 0; - uint8_t f_s_wallace_rca8_and_0_5 = 0; - uint8_t f_s_wallace_rca8_fa18_xor0 = 0; - uint8_t f_s_wallace_rca8_fa18_and0 = 0; - uint8_t f_s_wallace_rca8_fa18_xor1 = 0; - uint8_t f_s_wallace_rca8_fa18_and1 = 0; - uint8_t f_s_wallace_rca8_fa18_or0 = 0; - uint8_t f_s_wallace_rca8_and_2_4 = 0; - uint8_t f_s_wallace_rca8_and_1_5 = 0; - uint8_t f_s_wallace_rca8_fa19_xor0 = 0; - uint8_t f_s_wallace_rca8_fa19_and0 = 0; - uint8_t f_s_wallace_rca8_fa19_xor1 = 0; - uint8_t f_s_wallace_rca8_fa19_and1 = 0; - uint8_t f_s_wallace_rca8_fa19_or0 = 0; - uint8_t f_s_wallace_rca8_and_3_4 = 0; - uint8_t f_s_wallace_rca8_and_2_5 = 0; - uint8_t f_s_wallace_rca8_fa20_xor0 = 0; - uint8_t f_s_wallace_rca8_fa20_and0 = 0; - uint8_t f_s_wallace_rca8_fa20_xor1 = 0; - uint8_t f_s_wallace_rca8_fa20_and1 = 0; - uint8_t f_s_wallace_rca8_fa20_or0 = 0; - uint8_t f_s_wallace_rca8_and_4_4 = 0; - uint8_t f_s_wallace_rca8_and_3_5 = 0; - uint8_t f_s_wallace_rca8_fa21_xor0 = 0; - uint8_t f_s_wallace_rca8_fa21_and0 = 0; - uint8_t f_s_wallace_rca8_fa21_xor1 = 0; - uint8_t f_s_wallace_rca8_fa21_and1 = 0; - uint8_t f_s_wallace_rca8_fa21_or0 = 0; - uint8_t f_s_wallace_rca8_and_3_6 = 0; - uint8_t f_s_wallace_rca8_nand_2_7 = 0; - uint8_t f_s_wallace_rca8_fa22_xor0 = 0; - uint8_t f_s_wallace_rca8_fa22_and0 = 0; - uint8_t f_s_wallace_rca8_fa22_xor1 = 0; - uint8_t f_s_wallace_rca8_fa22_and1 = 0; - uint8_t f_s_wallace_rca8_fa22_or0 = 0; - uint8_t f_s_wallace_rca8_nand_3_7 = 0; - uint8_t f_s_wallace_rca8_fa23_xor0 = 0; - uint8_t f_s_wallace_rca8_fa23_and0 = 0; - uint8_t f_s_wallace_rca8_fa23_xor1 = 0; - uint8_t f_s_wallace_rca8_fa23_and1 = 0; - uint8_t f_s_wallace_rca8_fa23_or0 = 0; - uint8_t f_s_wallace_rca8_ha3_xor0 = 0; - uint8_t f_s_wallace_rca8_ha3_and0 = 0; - uint8_t f_s_wallace_rca8_and_0_6 = 0; - uint8_t f_s_wallace_rca8_fa24_xor0 = 0; - uint8_t f_s_wallace_rca8_fa24_and0 = 0; - uint8_t f_s_wallace_rca8_fa24_xor1 = 0; - uint8_t f_s_wallace_rca8_fa24_and1 = 0; - uint8_t f_s_wallace_rca8_fa24_or0 = 0; - uint8_t f_s_wallace_rca8_and_1_6 = 0; - uint8_t f_s_wallace_rca8_nand_0_7 = 0; - uint8_t f_s_wallace_rca8_fa25_xor0 = 0; - uint8_t f_s_wallace_rca8_fa25_and0 = 0; - uint8_t f_s_wallace_rca8_fa25_xor1 = 0; - uint8_t f_s_wallace_rca8_fa25_and1 = 0; - uint8_t f_s_wallace_rca8_fa25_or0 = 0; - uint8_t f_s_wallace_rca8_and_2_6 = 0; - uint8_t f_s_wallace_rca8_nand_1_7 = 0; - uint8_t f_s_wallace_rca8_fa26_xor0 = 0; - uint8_t f_s_wallace_rca8_fa26_and0 = 0; - uint8_t f_s_wallace_rca8_fa26_xor1 = 0; - uint8_t f_s_wallace_rca8_fa26_and1 = 0; - uint8_t f_s_wallace_rca8_fa26_or0 = 0; - uint8_t f_s_wallace_rca8_fa27_xor0 = 0; - uint8_t f_s_wallace_rca8_fa27_and0 = 0; - uint8_t f_s_wallace_rca8_fa27_xor1 = 0; - uint8_t f_s_wallace_rca8_fa27_and1 = 0; - uint8_t f_s_wallace_rca8_fa27_or0 = 0; - uint8_t f_s_wallace_rca8_ha4_xor0 = 0; - uint8_t f_s_wallace_rca8_ha4_and0 = 0; - uint8_t f_s_wallace_rca8_fa28_xor0 = 0; - uint8_t f_s_wallace_rca8_fa28_and0 = 0; - uint8_t f_s_wallace_rca8_fa28_xor1 = 0; - uint8_t f_s_wallace_rca8_fa28_and1 = 0; - uint8_t f_s_wallace_rca8_fa28_or0 = 0; - uint8_t f_s_wallace_rca8_fa29_xor0 = 0; - uint8_t f_s_wallace_rca8_fa29_and0 = 0; - uint8_t f_s_wallace_rca8_fa29_xor1 = 0; - uint8_t f_s_wallace_rca8_fa29_and1 = 0; - uint8_t f_s_wallace_rca8_fa29_or0 = 0; - uint8_t f_s_wallace_rca8_ha5_xor0 = 0; - uint8_t f_s_wallace_rca8_ha5_and0 = 0; - uint8_t f_s_wallace_rca8_fa30_xor0 = 0; - uint8_t f_s_wallace_rca8_fa30_and0 = 0; - uint8_t f_s_wallace_rca8_fa30_xor1 = 0; - uint8_t f_s_wallace_rca8_fa30_and1 = 0; - uint8_t f_s_wallace_rca8_fa30_or0 = 0; - uint8_t f_s_wallace_rca8_fa31_xor0 = 0; - uint8_t f_s_wallace_rca8_fa31_and0 = 0; - uint8_t f_s_wallace_rca8_fa31_xor1 = 0; - uint8_t f_s_wallace_rca8_fa31_and1 = 0; - uint8_t f_s_wallace_rca8_fa31_or0 = 0; - uint8_t f_s_wallace_rca8_fa32_xor0 = 0; - uint8_t f_s_wallace_rca8_fa32_and0 = 0; - uint8_t f_s_wallace_rca8_fa32_xor1 = 0; - uint8_t f_s_wallace_rca8_fa32_and1 = 0; - uint8_t f_s_wallace_rca8_fa32_or0 = 0; - uint8_t f_s_wallace_rca8_fa33_xor0 = 0; - uint8_t f_s_wallace_rca8_fa33_and0 = 0; - uint8_t f_s_wallace_rca8_fa33_xor1 = 0; - uint8_t f_s_wallace_rca8_fa33_and1 = 0; - uint8_t f_s_wallace_rca8_fa33_or0 = 0; - uint8_t f_s_wallace_rca8_nand_5_7 = 0; - uint8_t f_s_wallace_rca8_fa34_xor0 = 0; - uint8_t f_s_wallace_rca8_fa34_and0 = 0; - uint8_t f_s_wallace_rca8_fa34_xor1 = 0; - uint8_t f_s_wallace_rca8_fa34_and1 = 0; - uint8_t f_s_wallace_rca8_fa34_or0 = 0; - uint8_t f_s_wallace_rca8_nand_7_6 = 0; - uint8_t f_s_wallace_rca8_fa35_xor0 = 0; - uint8_t f_s_wallace_rca8_fa35_and0 = 0; - uint8_t f_s_wallace_rca8_fa35_xor1 = 0; - uint8_t f_s_wallace_rca8_fa35_and1 = 0; - uint8_t f_s_wallace_rca8_fa35_or0 = 0; - uint8_t f_s_wallace_rca8_and_0_0 = 0; - uint8_t f_s_wallace_rca8_and_1_0 = 0; - uint8_t f_s_wallace_rca8_and_0_2 = 0; - uint8_t f_s_wallace_rca8_nand_6_7 = 0; - uint8_t f_s_wallace_rca8_and_0_1 = 0; - uint8_t f_s_wallace_rca8_and_7_7 = 0; - uint8_t f_s_wallace_rca8_u_rca14_ha_xor0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_ha_and0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa1_xor0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa1_and0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa1_xor1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa1_and1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa1_or0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa2_xor0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa2_and0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa2_xor1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa2_and1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa2_or0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa3_xor0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa3_and0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa3_xor1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa3_and1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa3_or0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa4_xor0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa4_and0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa4_xor1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa4_and1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa4_or0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa5_xor0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa5_and0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa5_xor1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa5_and1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa5_or0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa6_xor0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa6_and0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa6_xor1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa6_and1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa6_or0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa7_xor0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa7_and0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa7_xor1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa7_and1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa7_or0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa8_xor0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa8_and0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa8_xor1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa8_and1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa8_or0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa9_xor0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa9_and0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa9_xor1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa9_and1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa9_or0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa10_xor0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa10_and0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa10_xor1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa10_and1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa10_or0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa11_xor0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa11_and0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa11_xor1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa11_and1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa11_or0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa12_xor0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa12_and0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa12_xor1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa12_and1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa12_or0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa13_xor0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa13_and0 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa13_xor1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa13_and1 = 0; - uint8_t f_s_wallace_rca8_u_rca14_fa13_or0 = 0; - uint8_t f_s_wallace_rca8_xor0 = 0; - - f_s_wallace_rca8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_rca8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_rca8_ha0_xor0 = ((f_s_wallace_rca8_and_2_0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_1_1 >> 0) & 0x01); - f_s_wallace_rca8_ha0_and0 = ((f_s_wallace_rca8_and_2_0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_1_1 >> 0) & 0x01); - f_s_wallace_rca8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_rca8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_rca8_fa0_xor0 = ((f_s_wallace_rca8_ha0_and0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_3_0 >> 0) & 0x01); - f_s_wallace_rca8_fa0_and0 = ((f_s_wallace_rca8_ha0_and0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_3_0 >> 0) & 0x01); - f_s_wallace_rca8_fa0_xor1 = ((f_s_wallace_rca8_fa0_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_2_1 >> 0) & 0x01); - f_s_wallace_rca8_fa0_and1 = ((f_s_wallace_rca8_fa0_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_2_1 >> 0) & 0x01); - f_s_wallace_rca8_fa0_or0 = ((f_s_wallace_rca8_fa0_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa0_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_rca8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_rca8_fa1_xor0 = ((f_s_wallace_rca8_fa0_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_4_0 >> 0) & 0x01); - f_s_wallace_rca8_fa1_and0 = ((f_s_wallace_rca8_fa0_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_4_0 >> 0) & 0x01); - f_s_wallace_rca8_fa1_xor1 = ((f_s_wallace_rca8_fa1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_3_1 >> 0) & 0x01); - f_s_wallace_rca8_fa1_and1 = ((f_s_wallace_rca8_fa1_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_3_1 >> 0) & 0x01); - f_s_wallace_rca8_fa1_or0 = ((f_s_wallace_rca8_fa1_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa1_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_rca8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_rca8_fa2_xor0 = ((f_s_wallace_rca8_fa1_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_5_0 >> 0) & 0x01); - f_s_wallace_rca8_fa2_and0 = ((f_s_wallace_rca8_fa1_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_5_0 >> 0) & 0x01); - f_s_wallace_rca8_fa2_xor1 = ((f_s_wallace_rca8_fa2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_4_1 >> 0) & 0x01); - f_s_wallace_rca8_fa2_and1 = ((f_s_wallace_rca8_fa2_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_4_1 >> 0) & 0x01); - f_s_wallace_rca8_fa2_or0 = ((f_s_wallace_rca8_fa2_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa2_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_rca8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_rca8_fa3_xor0 = ((f_s_wallace_rca8_fa2_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_6_0 >> 0) & 0x01); - f_s_wallace_rca8_fa3_and0 = ((f_s_wallace_rca8_fa2_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_6_0 >> 0) & 0x01); - f_s_wallace_rca8_fa3_xor1 = ((f_s_wallace_rca8_fa3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_5_1 >> 0) & 0x01); - f_s_wallace_rca8_fa3_and1 = ((f_s_wallace_rca8_fa3_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_5_1 >> 0) & 0x01); - f_s_wallace_rca8_fa3_or0 = ((f_s_wallace_rca8_fa3_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa3_and1 >> 0) & 0x01); - f_s_wallace_rca8_nand_7_0 = ~(((a >> 7) & 0x01) & ((b >> 0) & 0x01)) & 0x01; - f_s_wallace_rca8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_rca8_fa4_xor0 = ((f_s_wallace_rca8_fa3_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_nand_7_0 >> 0) & 0x01); - f_s_wallace_rca8_fa4_and0 = ((f_s_wallace_rca8_fa3_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_nand_7_0 >> 0) & 0x01); - f_s_wallace_rca8_fa4_xor1 = ((f_s_wallace_rca8_fa4_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_6_1 >> 0) & 0x01); - f_s_wallace_rca8_fa4_and1 = ((f_s_wallace_rca8_fa4_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_6_1 >> 0) & 0x01); - f_s_wallace_rca8_fa4_or0 = ((f_s_wallace_rca8_fa4_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa4_and1 >> 0) & 0x01); - f_s_wallace_rca8_nand_7_1 = ~(((a >> 7) & 0x01) & ((b >> 1) & 0x01)) & 0x01; - f_s_wallace_rca8_fa5_xor0 = ~(((f_s_wallace_rca8_fa4_or0 >> 0) & 0x01)) & 0x01; - f_s_wallace_rca8_fa5_xor1 = ((f_s_wallace_rca8_fa5_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_nand_7_1 >> 0) & 0x01); - f_s_wallace_rca8_fa5_and1 = ((f_s_wallace_rca8_fa5_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_nand_7_1 >> 0) & 0x01); - f_s_wallace_rca8_fa5_or0 = ((f_s_wallace_rca8_fa4_or0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa5_and1 >> 0) & 0x01); - f_s_wallace_rca8_nand_7_2 = ~(((a >> 7) & 0x01) & ((b >> 2) & 0x01)) & 0x01; - f_s_wallace_rca8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_rca8_fa6_xor0 = ((f_s_wallace_rca8_fa5_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_nand_7_2 >> 0) & 0x01); - f_s_wallace_rca8_fa6_and0 = ((f_s_wallace_rca8_fa5_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_nand_7_2 >> 0) & 0x01); - f_s_wallace_rca8_fa6_xor1 = ((f_s_wallace_rca8_fa6_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_6_3 >> 0) & 0x01); - f_s_wallace_rca8_fa6_and1 = ((f_s_wallace_rca8_fa6_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_6_3 >> 0) & 0x01); - f_s_wallace_rca8_fa6_or0 = ((f_s_wallace_rca8_fa6_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa6_and1 >> 0) & 0x01); - f_s_wallace_rca8_nand_7_3 = ~(((a >> 7) & 0x01) & ((b >> 3) & 0x01)) & 0x01; - f_s_wallace_rca8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_rca8_fa7_xor0 = ((f_s_wallace_rca8_fa6_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_nand_7_3 >> 0) & 0x01); - f_s_wallace_rca8_fa7_and0 = ((f_s_wallace_rca8_fa6_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_nand_7_3 >> 0) & 0x01); - f_s_wallace_rca8_fa7_xor1 = ((f_s_wallace_rca8_fa7_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_6_4 >> 0) & 0x01); - f_s_wallace_rca8_fa7_and1 = ((f_s_wallace_rca8_fa7_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_6_4 >> 0) & 0x01); - f_s_wallace_rca8_fa7_or0 = ((f_s_wallace_rca8_fa7_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa7_and1 >> 0) & 0x01); - f_s_wallace_rca8_nand_7_4 = ~(((a >> 7) & 0x01) & ((b >> 4) & 0x01)) & 0x01; - f_s_wallace_rca8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_rca8_fa8_xor0 = ((f_s_wallace_rca8_fa7_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_nand_7_4 >> 0) & 0x01); - f_s_wallace_rca8_fa8_and0 = ((f_s_wallace_rca8_fa7_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_nand_7_4 >> 0) & 0x01); - f_s_wallace_rca8_fa8_xor1 = ((f_s_wallace_rca8_fa8_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_6_5 >> 0) & 0x01); - f_s_wallace_rca8_fa8_and1 = ((f_s_wallace_rca8_fa8_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_6_5 >> 0) & 0x01); - f_s_wallace_rca8_fa8_or0 = ((f_s_wallace_rca8_fa8_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa8_and1 >> 0) & 0x01); - f_s_wallace_rca8_nand_7_5 = ~(((a >> 7) & 0x01) & ((b >> 5) & 0x01)) & 0x01; - f_s_wallace_rca8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_rca8_fa9_xor0 = ((f_s_wallace_rca8_fa8_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_nand_7_5 >> 0) & 0x01); - f_s_wallace_rca8_fa9_and0 = ((f_s_wallace_rca8_fa8_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_nand_7_5 >> 0) & 0x01); - f_s_wallace_rca8_fa9_xor1 = ((f_s_wallace_rca8_fa9_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_6_6 >> 0) & 0x01); - f_s_wallace_rca8_fa9_and1 = ((f_s_wallace_rca8_fa9_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_6_6 >> 0) & 0x01); - f_s_wallace_rca8_fa9_or0 = ((f_s_wallace_rca8_fa9_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa9_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_rca8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_rca8_ha1_xor0 = ((f_s_wallace_rca8_and_1_2 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_0_3 >> 0) & 0x01); - f_s_wallace_rca8_ha1_and0 = ((f_s_wallace_rca8_and_1_2 >> 0) & 0x01) & ((f_s_wallace_rca8_and_0_3 >> 0) & 0x01); - f_s_wallace_rca8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_rca8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_rca8_fa10_xor0 = ((f_s_wallace_rca8_ha1_and0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_2_2 >> 0) & 0x01); - f_s_wallace_rca8_fa10_and0 = ((f_s_wallace_rca8_ha1_and0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_2_2 >> 0) & 0x01); - f_s_wallace_rca8_fa10_xor1 = ((f_s_wallace_rca8_fa10_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_1_3 >> 0) & 0x01); - f_s_wallace_rca8_fa10_and1 = ((f_s_wallace_rca8_fa10_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_1_3 >> 0) & 0x01); - f_s_wallace_rca8_fa10_or0 = ((f_s_wallace_rca8_fa10_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa10_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_rca8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_rca8_fa11_xor0 = ((f_s_wallace_rca8_fa10_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_3_2 >> 0) & 0x01); - f_s_wallace_rca8_fa11_and0 = ((f_s_wallace_rca8_fa10_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_3_2 >> 0) & 0x01); - f_s_wallace_rca8_fa11_xor1 = ((f_s_wallace_rca8_fa11_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_2_3 >> 0) & 0x01); - f_s_wallace_rca8_fa11_and1 = ((f_s_wallace_rca8_fa11_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_2_3 >> 0) & 0x01); - f_s_wallace_rca8_fa11_or0 = ((f_s_wallace_rca8_fa11_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa11_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_rca8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_rca8_fa12_xor0 = ((f_s_wallace_rca8_fa11_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_4_2 >> 0) & 0x01); - f_s_wallace_rca8_fa12_and0 = ((f_s_wallace_rca8_fa11_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_4_2 >> 0) & 0x01); - f_s_wallace_rca8_fa12_xor1 = ((f_s_wallace_rca8_fa12_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_3_3 >> 0) & 0x01); - f_s_wallace_rca8_fa12_and1 = ((f_s_wallace_rca8_fa12_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_3_3 >> 0) & 0x01); - f_s_wallace_rca8_fa12_or0 = ((f_s_wallace_rca8_fa12_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa12_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_rca8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_rca8_fa13_xor0 = ((f_s_wallace_rca8_fa12_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_5_2 >> 0) & 0x01); - f_s_wallace_rca8_fa13_and0 = ((f_s_wallace_rca8_fa12_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_5_2 >> 0) & 0x01); - f_s_wallace_rca8_fa13_xor1 = ((f_s_wallace_rca8_fa13_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_4_3 >> 0) & 0x01); - f_s_wallace_rca8_fa13_and1 = ((f_s_wallace_rca8_fa13_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_4_3 >> 0) & 0x01); - f_s_wallace_rca8_fa13_or0 = ((f_s_wallace_rca8_fa13_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa13_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_rca8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_s_wallace_rca8_fa14_xor0 = ((f_s_wallace_rca8_fa13_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_6_2 >> 0) & 0x01); - f_s_wallace_rca8_fa14_and0 = ((f_s_wallace_rca8_fa13_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_6_2 >> 0) & 0x01); - f_s_wallace_rca8_fa14_xor1 = ((f_s_wallace_rca8_fa14_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_5_3 >> 0) & 0x01); - f_s_wallace_rca8_fa14_and1 = ((f_s_wallace_rca8_fa14_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_5_3 >> 0) & 0x01); - f_s_wallace_rca8_fa14_or0 = ((f_s_wallace_rca8_fa14_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa14_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_rca8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_rca8_fa15_xor0 = ((f_s_wallace_rca8_fa14_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_5_4 >> 0) & 0x01); - f_s_wallace_rca8_fa15_and0 = ((f_s_wallace_rca8_fa14_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_5_4 >> 0) & 0x01); - f_s_wallace_rca8_fa15_xor1 = ((f_s_wallace_rca8_fa15_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_4_5 >> 0) & 0x01); - f_s_wallace_rca8_fa15_and1 = ((f_s_wallace_rca8_fa15_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_4_5 >> 0) & 0x01); - f_s_wallace_rca8_fa15_or0 = ((f_s_wallace_rca8_fa15_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa15_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_rca8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_rca8_fa16_xor0 = ((f_s_wallace_rca8_fa15_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_5_5 >> 0) & 0x01); - f_s_wallace_rca8_fa16_and0 = ((f_s_wallace_rca8_fa15_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_5_5 >> 0) & 0x01); - f_s_wallace_rca8_fa16_xor1 = ((f_s_wallace_rca8_fa16_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_4_6 >> 0) & 0x01); - f_s_wallace_rca8_fa16_and1 = ((f_s_wallace_rca8_fa16_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_4_6 >> 0) & 0x01); - f_s_wallace_rca8_fa16_or0 = ((f_s_wallace_rca8_fa16_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa16_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_rca8_nand_4_7 = ~(((a >> 4) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_rca8_fa17_xor0 = ((f_s_wallace_rca8_fa16_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_5_6 >> 0) & 0x01); - f_s_wallace_rca8_fa17_and0 = ((f_s_wallace_rca8_fa16_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_5_6 >> 0) & 0x01); - f_s_wallace_rca8_fa17_xor1 = ((f_s_wallace_rca8_fa17_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_nand_4_7 >> 0) & 0x01); - f_s_wallace_rca8_fa17_and1 = ((f_s_wallace_rca8_fa17_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_nand_4_7 >> 0) & 0x01); - f_s_wallace_rca8_fa17_or0 = ((f_s_wallace_rca8_fa17_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa17_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_rca8_ha2_xor0 = ((f_s_wallace_rca8_and_0_4 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa1_xor1 >> 0) & 0x01); - f_s_wallace_rca8_ha2_and0 = ((f_s_wallace_rca8_and_0_4 >> 0) & 0x01) & ((f_s_wallace_rca8_fa1_xor1 >> 0) & 0x01); - f_s_wallace_rca8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_rca8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_rca8_fa18_xor0 = ((f_s_wallace_rca8_ha2_and0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_1_4 >> 0) & 0x01); - f_s_wallace_rca8_fa18_and0 = ((f_s_wallace_rca8_ha2_and0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_1_4 >> 0) & 0x01); - f_s_wallace_rca8_fa18_xor1 = ((f_s_wallace_rca8_fa18_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_0_5 >> 0) & 0x01); - f_s_wallace_rca8_fa18_and1 = ((f_s_wallace_rca8_fa18_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_0_5 >> 0) & 0x01); - f_s_wallace_rca8_fa18_or0 = ((f_s_wallace_rca8_fa18_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa18_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_rca8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_rca8_fa19_xor0 = ((f_s_wallace_rca8_fa18_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_2_4 >> 0) & 0x01); - f_s_wallace_rca8_fa19_and0 = ((f_s_wallace_rca8_fa18_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_2_4 >> 0) & 0x01); - f_s_wallace_rca8_fa19_xor1 = ((f_s_wallace_rca8_fa19_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_1_5 >> 0) & 0x01); - f_s_wallace_rca8_fa19_and1 = ((f_s_wallace_rca8_fa19_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_1_5 >> 0) & 0x01); - f_s_wallace_rca8_fa19_or0 = ((f_s_wallace_rca8_fa19_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa19_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_rca8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_rca8_fa20_xor0 = ((f_s_wallace_rca8_fa19_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_3_4 >> 0) & 0x01); - f_s_wallace_rca8_fa20_and0 = ((f_s_wallace_rca8_fa19_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_3_4 >> 0) & 0x01); - f_s_wallace_rca8_fa20_xor1 = ((f_s_wallace_rca8_fa20_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_2_5 >> 0) & 0x01); - f_s_wallace_rca8_fa20_and1 = ((f_s_wallace_rca8_fa20_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_2_5 >> 0) & 0x01); - f_s_wallace_rca8_fa20_or0 = ((f_s_wallace_rca8_fa20_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa20_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_s_wallace_rca8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_s_wallace_rca8_fa21_xor0 = ((f_s_wallace_rca8_fa20_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_4_4 >> 0) & 0x01); - f_s_wallace_rca8_fa21_and0 = ((f_s_wallace_rca8_fa20_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_4_4 >> 0) & 0x01); - f_s_wallace_rca8_fa21_xor1 = ((f_s_wallace_rca8_fa21_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_3_5 >> 0) & 0x01); - f_s_wallace_rca8_fa21_and1 = ((f_s_wallace_rca8_fa21_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_3_5 >> 0) & 0x01); - f_s_wallace_rca8_fa21_or0 = ((f_s_wallace_rca8_fa21_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa21_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_rca8_nand_2_7 = ~(((a >> 2) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_rca8_fa22_xor0 = ((f_s_wallace_rca8_fa21_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_3_6 >> 0) & 0x01); - f_s_wallace_rca8_fa22_and0 = ((f_s_wallace_rca8_fa21_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_3_6 >> 0) & 0x01); - f_s_wallace_rca8_fa22_xor1 = ((f_s_wallace_rca8_fa22_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_nand_2_7 >> 0) & 0x01); - f_s_wallace_rca8_fa22_and1 = ((f_s_wallace_rca8_fa22_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_nand_2_7 >> 0) & 0x01); - f_s_wallace_rca8_fa22_or0 = ((f_s_wallace_rca8_fa22_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa22_and1 >> 0) & 0x01); - f_s_wallace_rca8_nand_3_7 = ~(((a >> 3) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_rca8_fa23_xor0 = ((f_s_wallace_rca8_fa22_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_nand_3_7 >> 0) & 0x01); - f_s_wallace_rca8_fa23_and0 = ((f_s_wallace_rca8_fa22_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_nand_3_7 >> 0) & 0x01); - f_s_wallace_rca8_fa23_xor1 = ((f_s_wallace_rca8_fa23_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa7_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa23_and1 = ((f_s_wallace_rca8_fa23_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa7_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa23_or0 = ((f_s_wallace_rca8_fa23_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa23_and1 >> 0) & 0x01); - f_s_wallace_rca8_ha3_xor0 = ((f_s_wallace_rca8_fa2_xor1 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa11_xor1 >> 0) & 0x01); - f_s_wallace_rca8_ha3_and0 = ((f_s_wallace_rca8_fa2_xor1 >> 0) & 0x01) & ((f_s_wallace_rca8_fa11_xor1 >> 0) & 0x01); - f_s_wallace_rca8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_rca8_fa24_xor0 = ((f_s_wallace_rca8_ha3_and0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_0_6 >> 0) & 0x01); - f_s_wallace_rca8_fa24_and0 = ((f_s_wallace_rca8_ha3_and0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_0_6 >> 0) & 0x01); - f_s_wallace_rca8_fa24_xor1 = ((f_s_wallace_rca8_fa24_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa3_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa24_and1 = ((f_s_wallace_rca8_fa24_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa3_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa24_or0 = ((f_s_wallace_rca8_fa24_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa24_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_rca8_nand_0_7 = ~(((a >> 0) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_rca8_fa25_xor0 = ((f_s_wallace_rca8_fa24_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_1_6 >> 0) & 0x01); - f_s_wallace_rca8_fa25_and0 = ((f_s_wallace_rca8_fa24_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_1_6 >> 0) & 0x01); - f_s_wallace_rca8_fa25_xor1 = ((f_s_wallace_rca8_fa25_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_nand_0_7 >> 0) & 0x01); - f_s_wallace_rca8_fa25_and1 = ((f_s_wallace_rca8_fa25_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_nand_0_7 >> 0) & 0x01); - f_s_wallace_rca8_fa25_or0 = ((f_s_wallace_rca8_fa25_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa25_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_s_wallace_rca8_nand_1_7 = ~(((a >> 1) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_rca8_fa26_xor0 = ((f_s_wallace_rca8_fa25_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_2_6 >> 0) & 0x01); - f_s_wallace_rca8_fa26_and0 = ((f_s_wallace_rca8_fa25_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_2_6 >> 0) & 0x01); - f_s_wallace_rca8_fa26_xor1 = ((f_s_wallace_rca8_fa26_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_nand_1_7 >> 0) & 0x01); - f_s_wallace_rca8_fa26_and1 = ((f_s_wallace_rca8_fa26_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_nand_1_7 >> 0) & 0x01); - f_s_wallace_rca8_fa26_or0 = ((f_s_wallace_rca8_fa26_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa26_and1 >> 0) & 0x01); - f_s_wallace_rca8_fa27_xor0 = ((f_s_wallace_rca8_fa26_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa6_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa27_and0 = ((f_s_wallace_rca8_fa26_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa6_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa27_xor1 = ((f_s_wallace_rca8_fa27_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa15_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa27_and1 = ((f_s_wallace_rca8_fa27_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa15_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa27_or0 = ((f_s_wallace_rca8_fa27_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa27_and1 >> 0) & 0x01); - f_s_wallace_rca8_ha4_xor0 = ((f_s_wallace_rca8_fa12_xor1 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa19_xor1 >> 0) & 0x01); - f_s_wallace_rca8_ha4_and0 = ((f_s_wallace_rca8_fa12_xor1 >> 0) & 0x01) & ((f_s_wallace_rca8_fa19_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa28_xor0 = ((f_s_wallace_rca8_ha4_and0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa4_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa28_and0 = ((f_s_wallace_rca8_ha4_and0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa4_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa28_xor1 = ((f_s_wallace_rca8_fa28_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa13_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa28_and1 = ((f_s_wallace_rca8_fa28_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa13_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa28_or0 = ((f_s_wallace_rca8_fa28_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa28_and1 >> 0) & 0x01); - f_s_wallace_rca8_fa29_xor0 = ((f_s_wallace_rca8_fa28_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa5_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa29_and0 = ((f_s_wallace_rca8_fa28_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa5_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa29_xor1 = ((f_s_wallace_rca8_fa29_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa14_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa29_and1 = ((f_s_wallace_rca8_fa29_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa14_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa29_or0 = ((f_s_wallace_rca8_fa29_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa29_and1 >> 0) & 0x01); - f_s_wallace_rca8_ha5_xor0 = ((f_s_wallace_rca8_fa20_xor1 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa25_xor1 >> 0) & 0x01); - f_s_wallace_rca8_ha5_and0 = ((f_s_wallace_rca8_fa20_xor1 >> 0) & 0x01) & ((f_s_wallace_rca8_fa25_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa30_xor0 = ((f_s_wallace_rca8_ha5_and0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa21_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa30_and0 = ((f_s_wallace_rca8_ha5_and0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa21_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa30_xor1 = ((f_s_wallace_rca8_fa30_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa26_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa30_and1 = ((f_s_wallace_rca8_fa30_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa26_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa30_or0 = ((f_s_wallace_rca8_fa30_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa30_and1 >> 0) & 0x01); - f_s_wallace_rca8_fa31_xor0 = ((f_s_wallace_rca8_fa30_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa29_or0 >> 0) & 0x01); - f_s_wallace_rca8_fa31_and0 = ((f_s_wallace_rca8_fa30_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa29_or0 >> 0) & 0x01); - f_s_wallace_rca8_fa31_xor1 = ((f_s_wallace_rca8_fa31_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa22_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa31_and1 = ((f_s_wallace_rca8_fa31_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa22_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa31_or0 = ((f_s_wallace_rca8_fa31_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa31_and1 >> 0) & 0x01); - f_s_wallace_rca8_fa32_xor0 = ((f_s_wallace_rca8_fa31_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa27_or0 >> 0) & 0x01); - f_s_wallace_rca8_fa32_and0 = ((f_s_wallace_rca8_fa31_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa27_or0 >> 0) & 0x01); - f_s_wallace_rca8_fa32_xor1 = ((f_s_wallace_rca8_fa32_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa16_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa32_and1 = ((f_s_wallace_rca8_fa32_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa16_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa32_or0 = ((f_s_wallace_rca8_fa32_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa32_and1 >> 0) & 0x01); - f_s_wallace_rca8_fa33_xor0 = ((f_s_wallace_rca8_fa32_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa23_or0 >> 0) & 0x01); - f_s_wallace_rca8_fa33_and0 = ((f_s_wallace_rca8_fa32_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa23_or0 >> 0) & 0x01); - f_s_wallace_rca8_fa33_xor1 = ((f_s_wallace_rca8_fa33_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa8_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa33_and1 = ((f_s_wallace_rca8_fa33_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa8_xor1 >> 0) & 0x01); - f_s_wallace_rca8_fa33_or0 = ((f_s_wallace_rca8_fa33_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa33_and1 >> 0) & 0x01); - f_s_wallace_rca8_nand_5_7 = ~(((a >> 5) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_rca8_fa34_xor0 = ((f_s_wallace_rca8_fa33_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa17_or0 >> 0) & 0x01); - f_s_wallace_rca8_fa34_and0 = ((f_s_wallace_rca8_fa33_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa17_or0 >> 0) & 0x01); - f_s_wallace_rca8_fa34_xor1 = ((f_s_wallace_rca8_fa34_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_nand_5_7 >> 0) & 0x01); - f_s_wallace_rca8_fa34_and1 = ((f_s_wallace_rca8_fa34_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_nand_5_7 >> 0) & 0x01); - f_s_wallace_rca8_fa34_or0 = ((f_s_wallace_rca8_fa34_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa34_and1 >> 0) & 0x01); - f_s_wallace_rca8_nand_7_6 = ~(((a >> 7) & 0x01) & ((b >> 6) & 0x01)) & 0x01; - f_s_wallace_rca8_fa35_xor0 = ((f_s_wallace_rca8_fa34_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa9_or0 >> 0) & 0x01); - f_s_wallace_rca8_fa35_and0 = ((f_s_wallace_rca8_fa34_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_fa9_or0 >> 0) & 0x01); - f_s_wallace_rca8_fa35_xor1 = ((f_s_wallace_rca8_fa35_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_nand_7_6 >> 0) & 0x01); - f_s_wallace_rca8_fa35_and1 = ((f_s_wallace_rca8_fa35_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_nand_7_6 >> 0) & 0x01); - f_s_wallace_rca8_fa35_or0 = ((f_s_wallace_rca8_fa35_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_fa35_and1 >> 0) & 0x01); - f_s_wallace_rca8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_rca8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_s_wallace_rca8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_s_wallace_rca8_nand_6_7 = ~(((a >> 6) & 0x01) & ((b >> 7) & 0x01)) & 0x01; - f_s_wallace_rca8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_s_wallace_rca8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_s_wallace_rca8_u_rca14_ha_xor0 = ((f_s_wallace_rca8_and_1_0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_0_1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_ha_and0 = ((f_s_wallace_rca8_and_1_0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_0_1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa1_xor0 = ((f_s_wallace_rca8_and_0_2 >> 0) & 0x01) ^ ((f_s_wallace_rca8_ha0_xor0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa1_and0 = ((f_s_wallace_rca8_and_0_2 >> 0) & 0x01) & ((f_s_wallace_rca8_ha0_xor0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa1_xor1 = ((f_s_wallace_rca8_u_rca14_fa1_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_u_rca14_ha_and0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa1_and1 = ((f_s_wallace_rca8_u_rca14_fa1_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_u_rca14_ha_and0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa1_or0 = ((f_s_wallace_rca8_u_rca14_fa1_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_u_rca14_fa1_and1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa2_xor0 = ((f_s_wallace_rca8_fa0_xor1 >> 0) & 0x01) ^ ((f_s_wallace_rca8_ha1_xor0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa2_and0 = ((f_s_wallace_rca8_fa0_xor1 >> 0) & 0x01) & ((f_s_wallace_rca8_ha1_xor0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa2_xor1 = ((f_s_wallace_rca8_u_rca14_fa2_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_u_rca14_fa1_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa2_and1 = ((f_s_wallace_rca8_u_rca14_fa2_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_u_rca14_fa1_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa2_or0 = ((f_s_wallace_rca8_u_rca14_fa2_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_u_rca14_fa2_and1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa3_xor0 = ((f_s_wallace_rca8_fa10_xor1 >> 0) & 0x01) ^ ((f_s_wallace_rca8_ha2_xor0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa3_and0 = ((f_s_wallace_rca8_fa10_xor1 >> 0) & 0x01) & ((f_s_wallace_rca8_ha2_xor0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa3_xor1 = ((f_s_wallace_rca8_u_rca14_fa3_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_u_rca14_fa2_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa3_and1 = ((f_s_wallace_rca8_u_rca14_fa3_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_u_rca14_fa2_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa3_or0 = ((f_s_wallace_rca8_u_rca14_fa3_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_u_rca14_fa3_and1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa4_xor0 = ((f_s_wallace_rca8_fa18_xor1 >> 0) & 0x01) ^ ((f_s_wallace_rca8_ha3_xor0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa4_and0 = ((f_s_wallace_rca8_fa18_xor1 >> 0) & 0x01) & ((f_s_wallace_rca8_ha3_xor0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa4_xor1 = ((f_s_wallace_rca8_u_rca14_fa4_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_u_rca14_fa3_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa4_and1 = ((f_s_wallace_rca8_u_rca14_fa4_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_u_rca14_fa3_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa4_or0 = ((f_s_wallace_rca8_u_rca14_fa4_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_u_rca14_fa4_and1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa5_xor0 = ((f_s_wallace_rca8_fa24_xor1 >> 0) & 0x01) ^ ((f_s_wallace_rca8_ha4_xor0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa5_and0 = ((f_s_wallace_rca8_fa24_xor1 >> 0) & 0x01) & ((f_s_wallace_rca8_ha4_xor0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa5_xor1 = ((f_s_wallace_rca8_u_rca14_fa5_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_u_rca14_fa4_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa5_and1 = ((f_s_wallace_rca8_u_rca14_fa5_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_u_rca14_fa4_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa5_or0 = ((f_s_wallace_rca8_u_rca14_fa5_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_u_rca14_fa5_and1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa6_xor0 = ((f_s_wallace_rca8_fa28_xor1 >> 0) & 0x01) ^ ((f_s_wallace_rca8_ha5_xor0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa6_and0 = ((f_s_wallace_rca8_fa28_xor1 >> 0) & 0x01) & ((f_s_wallace_rca8_ha5_xor0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa6_xor1 = ((f_s_wallace_rca8_u_rca14_fa6_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_u_rca14_fa5_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa6_and1 = ((f_s_wallace_rca8_u_rca14_fa6_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_u_rca14_fa5_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa6_or0 = ((f_s_wallace_rca8_u_rca14_fa6_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_u_rca14_fa6_and1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa7_xor0 = ((f_s_wallace_rca8_fa29_xor1 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa30_xor1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa7_and0 = ((f_s_wallace_rca8_fa29_xor1 >> 0) & 0x01) & ((f_s_wallace_rca8_fa30_xor1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa7_xor1 = ((f_s_wallace_rca8_u_rca14_fa7_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_u_rca14_fa6_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa7_and1 = ((f_s_wallace_rca8_u_rca14_fa7_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_u_rca14_fa6_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa7_or0 = ((f_s_wallace_rca8_u_rca14_fa7_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_u_rca14_fa7_and1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa8_xor0 = ((f_s_wallace_rca8_fa27_xor1 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa31_xor1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa8_and0 = ((f_s_wallace_rca8_fa27_xor1 >> 0) & 0x01) & ((f_s_wallace_rca8_fa31_xor1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa8_xor1 = ((f_s_wallace_rca8_u_rca14_fa8_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_u_rca14_fa7_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa8_and1 = ((f_s_wallace_rca8_u_rca14_fa8_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_u_rca14_fa7_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa8_or0 = ((f_s_wallace_rca8_u_rca14_fa8_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_u_rca14_fa8_and1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa9_xor0 = ((f_s_wallace_rca8_fa23_xor1 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa32_xor1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa9_and0 = ((f_s_wallace_rca8_fa23_xor1 >> 0) & 0x01) & ((f_s_wallace_rca8_fa32_xor1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa9_xor1 = ((f_s_wallace_rca8_u_rca14_fa9_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_u_rca14_fa8_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa9_and1 = ((f_s_wallace_rca8_u_rca14_fa9_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_u_rca14_fa8_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa9_or0 = ((f_s_wallace_rca8_u_rca14_fa9_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_u_rca14_fa9_and1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa10_xor0 = ((f_s_wallace_rca8_fa17_xor1 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa33_xor1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa10_and0 = ((f_s_wallace_rca8_fa17_xor1 >> 0) & 0x01) & ((f_s_wallace_rca8_fa33_xor1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa10_xor1 = ((f_s_wallace_rca8_u_rca14_fa10_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_u_rca14_fa9_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa10_and1 = ((f_s_wallace_rca8_u_rca14_fa10_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_u_rca14_fa9_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa10_or0 = ((f_s_wallace_rca8_u_rca14_fa10_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_u_rca14_fa10_and1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa11_xor0 = ((f_s_wallace_rca8_fa9_xor1 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa34_xor1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa11_and0 = ((f_s_wallace_rca8_fa9_xor1 >> 0) & 0x01) & ((f_s_wallace_rca8_fa34_xor1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa11_xor1 = ((f_s_wallace_rca8_u_rca14_fa11_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_u_rca14_fa10_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa11_and1 = ((f_s_wallace_rca8_u_rca14_fa11_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_u_rca14_fa10_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa11_or0 = ((f_s_wallace_rca8_u_rca14_fa11_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_u_rca14_fa11_and1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa12_xor0 = ((f_s_wallace_rca8_nand_6_7 >> 0) & 0x01) ^ ((f_s_wallace_rca8_fa35_xor1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa12_and0 = ((f_s_wallace_rca8_nand_6_7 >> 0) & 0x01) & ((f_s_wallace_rca8_fa35_xor1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa12_xor1 = ((f_s_wallace_rca8_u_rca14_fa12_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_u_rca14_fa11_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa12_and1 = ((f_s_wallace_rca8_u_rca14_fa12_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_u_rca14_fa11_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa12_or0 = ((f_s_wallace_rca8_u_rca14_fa12_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_u_rca14_fa12_and1 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa13_xor0 = ((f_s_wallace_rca8_fa35_or0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_and_7_7 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa13_and0 = ((f_s_wallace_rca8_fa35_or0 >> 0) & 0x01) & ((f_s_wallace_rca8_and_7_7 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa13_xor1 = ((f_s_wallace_rca8_u_rca14_fa13_xor0 >> 0) & 0x01) ^ ((f_s_wallace_rca8_u_rca14_fa12_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa13_and1 = ((f_s_wallace_rca8_u_rca14_fa13_xor0 >> 0) & 0x01) & ((f_s_wallace_rca8_u_rca14_fa12_or0 >> 0) & 0x01); - f_s_wallace_rca8_u_rca14_fa13_or0 = ((f_s_wallace_rca8_u_rca14_fa13_and0 >> 0) & 0x01) | ((f_s_wallace_rca8_u_rca14_fa13_and1 >> 0) & 0x01); - f_s_wallace_rca8_xor0 = ~(((f_s_wallace_rca8_u_rca14_fa13_or0 >> 0) & 0x01)) & 0x01; - - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_and_0_0 >> 0) & 0x01) << 0; - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_u_rca14_ha_xor0 >> 0) & 0x01) << 1; - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_u_rca14_fa1_xor1 >> 0) & 0x01) << 2; - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_u_rca14_fa2_xor1 >> 0) & 0x01) << 3; - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_u_rca14_fa3_xor1 >> 0) & 0x01) << 4; - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_u_rca14_fa4_xor1 >> 0) & 0x01) << 5; - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_u_rca14_fa5_xor1 >> 0) & 0x01) << 6; - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_u_rca14_fa6_xor1 >> 0) & 0x01) << 7; - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_u_rca14_fa7_xor1 >> 0) & 0x01) << 8; - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_u_rca14_fa8_xor1 >> 0) & 0x01) << 9; - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_u_rca14_fa9_xor1 >> 0) & 0x01) << 10; - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_u_rca14_fa10_xor1 >> 0) & 0x01) << 11; - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_u_rca14_fa11_xor1 >> 0) & 0x01) << 12; - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_u_rca14_fa12_xor1 >> 0) & 0x01) << 13; - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_u_rca14_fa13_xor1 >> 0) & 0x01) << 14; - f_s_wallace_rca8_out |= ((f_s_wallace_rca8_xor0 >> 0) & 0x01) << 15; - return f_s_wallace_rca8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)f_s_wallace_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_arrmul4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_arrmul4.c deleted file mode 100644 index 6bbee12..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_arrmul4.c +++ /dev/null @@ -1,155 +0,0 @@ -#include -#include - -uint64_t f_u_arrmul4(uint64_t a, uint64_t b){ - uint8_t f_u_arrmul4_out = 0; - uint8_t f_u_arrmul4_and0_0 = 0; - uint8_t f_u_arrmul4_and1_0 = 0; - uint8_t f_u_arrmul4_and2_0 = 0; - uint8_t f_u_arrmul4_and3_0 = 0; - uint8_t f_u_arrmul4_and0_1 = 0; - uint8_t f_u_arrmul4_ha0_1_xor0 = 0; - uint8_t f_u_arrmul4_ha0_1_and0 = 0; - uint8_t f_u_arrmul4_and1_1 = 0; - uint8_t f_u_arrmul4_fa1_1_xor0 = 0; - uint8_t f_u_arrmul4_fa1_1_and0 = 0; - uint8_t f_u_arrmul4_fa1_1_xor1 = 0; - uint8_t f_u_arrmul4_fa1_1_and1 = 0; - uint8_t f_u_arrmul4_fa1_1_or0 = 0; - uint8_t f_u_arrmul4_and2_1 = 0; - uint8_t f_u_arrmul4_fa2_1_xor0 = 0; - uint8_t f_u_arrmul4_fa2_1_and0 = 0; - uint8_t f_u_arrmul4_fa2_1_xor1 = 0; - uint8_t f_u_arrmul4_fa2_1_and1 = 0; - uint8_t f_u_arrmul4_fa2_1_or0 = 0; - uint8_t f_u_arrmul4_and3_1 = 0; - uint8_t f_u_arrmul4_ha3_1_xor0 = 0; - uint8_t f_u_arrmul4_ha3_1_and0 = 0; - uint8_t f_u_arrmul4_and0_2 = 0; - uint8_t f_u_arrmul4_ha0_2_xor0 = 0; - uint8_t f_u_arrmul4_ha0_2_and0 = 0; - uint8_t f_u_arrmul4_and1_2 = 0; - uint8_t f_u_arrmul4_fa1_2_xor0 = 0; - uint8_t f_u_arrmul4_fa1_2_and0 = 0; - uint8_t f_u_arrmul4_fa1_2_xor1 = 0; - uint8_t f_u_arrmul4_fa1_2_and1 = 0; - uint8_t f_u_arrmul4_fa1_2_or0 = 0; - uint8_t f_u_arrmul4_and2_2 = 0; - uint8_t f_u_arrmul4_fa2_2_xor0 = 0; - uint8_t f_u_arrmul4_fa2_2_and0 = 0; - uint8_t f_u_arrmul4_fa2_2_xor1 = 0; - uint8_t f_u_arrmul4_fa2_2_and1 = 0; - uint8_t f_u_arrmul4_fa2_2_or0 = 0; - uint8_t f_u_arrmul4_and3_2 = 0; - uint8_t f_u_arrmul4_fa3_2_xor0 = 0; - uint8_t f_u_arrmul4_fa3_2_and0 = 0; - uint8_t f_u_arrmul4_fa3_2_xor1 = 0; - uint8_t f_u_arrmul4_fa3_2_and1 = 0; - uint8_t f_u_arrmul4_fa3_2_or0 = 0; - uint8_t f_u_arrmul4_and0_3 = 0; - uint8_t f_u_arrmul4_ha0_3_xor0 = 0; - uint8_t f_u_arrmul4_ha0_3_and0 = 0; - uint8_t f_u_arrmul4_and1_3 = 0; - uint8_t f_u_arrmul4_fa1_3_xor0 = 0; - uint8_t f_u_arrmul4_fa1_3_and0 = 0; - uint8_t f_u_arrmul4_fa1_3_xor1 = 0; - uint8_t f_u_arrmul4_fa1_3_and1 = 0; - uint8_t f_u_arrmul4_fa1_3_or0 = 0; - uint8_t f_u_arrmul4_and2_3 = 0; - uint8_t f_u_arrmul4_fa2_3_xor0 = 0; - uint8_t f_u_arrmul4_fa2_3_and0 = 0; - uint8_t f_u_arrmul4_fa2_3_xor1 = 0; - uint8_t f_u_arrmul4_fa2_3_and1 = 0; - uint8_t f_u_arrmul4_fa2_3_or0 = 0; - uint8_t f_u_arrmul4_and3_3 = 0; - uint8_t f_u_arrmul4_fa3_3_xor0 = 0; - uint8_t f_u_arrmul4_fa3_3_and0 = 0; - uint8_t f_u_arrmul4_fa3_3_xor1 = 0; - uint8_t f_u_arrmul4_fa3_3_and1 = 0; - uint8_t f_u_arrmul4_fa3_3_or0 = 0; - - f_u_arrmul4_and0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_arrmul4_and1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_arrmul4_and2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_arrmul4_and3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_arrmul4_and0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_arrmul4_ha0_1_xor0 = ((f_u_arrmul4_and0_1 >> 0) & 0x01) ^ ((f_u_arrmul4_and1_0 >> 0) & 0x01); - f_u_arrmul4_ha0_1_and0 = ((f_u_arrmul4_and0_1 >> 0) & 0x01) & ((f_u_arrmul4_and1_0 >> 0) & 0x01); - f_u_arrmul4_and1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_arrmul4_fa1_1_xor0 = ((f_u_arrmul4_and1_1 >> 0) & 0x01) ^ ((f_u_arrmul4_and2_0 >> 0) & 0x01); - f_u_arrmul4_fa1_1_and0 = ((f_u_arrmul4_and1_1 >> 0) & 0x01) & ((f_u_arrmul4_and2_0 >> 0) & 0x01); - f_u_arrmul4_fa1_1_xor1 = ((f_u_arrmul4_fa1_1_xor0 >> 0) & 0x01) ^ ((f_u_arrmul4_ha0_1_and0 >> 0) & 0x01); - f_u_arrmul4_fa1_1_and1 = ((f_u_arrmul4_fa1_1_xor0 >> 0) & 0x01) & ((f_u_arrmul4_ha0_1_and0 >> 0) & 0x01); - f_u_arrmul4_fa1_1_or0 = ((f_u_arrmul4_fa1_1_and0 >> 0) & 0x01) | ((f_u_arrmul4_fa1_1_and1 >> 0) & 0x01); - f_u_arrmul4_and2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_arrmul4_fa2_1_xor0 = ((f_u_arrmul4_and2_1 >> 0) & 0x01) ^ ((f_u_arrmul4_and3_0 >> 0) & 0x01); - f_u_arrmul4_fa2_1_and0 = ((f_u_arrmul4_and2_1 >> 0) & 0x01) & ((f_u_arrmul4_and3_0 >> 0) & 0x01); - f_u_arrmul4_fa2_1_xor1 = ((f_u_arrmul4_fa2_1_xor0 >> 0) & 0x01) ^ ((f_u_arrmul4_fa1_1_or0 >> 0) & 0x01); - f_u_arrmul4_fa2_1_and1 = ((f_u_arrmul4_fa2_1_xor0 >> 0) & 0x01) & ((f_u_arrmul4_fa1_1_or0 >> 0) & 0x01); - f_u_arrmul4_fa2_1_or0 = ((f_u_arrmul4_fa2_1_and0 >> 0) & 0x01) | ((f_u_arrmul4_fa2_1_and1 >> 0) & 0x01); - f_u_arrmul4_and3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_arrmul4_ha3_1_xor0 = ((f_u_arrmul4_and3_1 >> 0) & 0x01) ^ ((f_u_arrmul4_fa2_1_or0 >> 0) & 0x01); - f_u_arrmul4_ha3_1_and0 = ((f_u_arrmul4_and3_1 >> 0) & 0x01) & ((f_u_arrmul4_fa2_1_or0 >> 0) & 0x01); - f_u_arrmul4_and0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_arrmul4_ha0_2_xor0 = ((f_u_arrmul4_and0_2 >> 0) & 0x01) ^ ((f_u_arrmul4_fa1_1_xor1 >> 0) & 0x01); - f_u_arrmul4_ha0_2_and0 = ((f_u_arrmul4_and0_2 >> 0) & 0x01) & ((f_u_arrmul4_fa1_1_xor1 >> 0) & 0x01); - f_u_arrmul4_and1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_arrmul4_fa1_2_xor0 = ((f_u_arrmul4_and1_2 >> 0) & 0x01) ^ ((f_u_arrmul4_fa2_1_xor1 >> 0) & 0x01); - f_u_arrmul4_fa1_2_and0 = ((f_u_arrmul4_and1_2 >> 0) & 0x01) & ((f_u_arrmul4_fa2_1_xor1 >> 0) & 0x01); - f_u_arrmul4_fa1_2_xor1 = ((f_u_arrmul4_fa1_2_xor0 >> 0) & 0x01) ^ ((f_u_arrmul4_ha0_2_and0 >> 0) & 0x01); - f_u_arrmul4_fa1_2_and1 = ((f_u_arrmul4_fa1_2_xor0 >> 0) & 0x01) & ((f_u_arrmul4_ha0_2_and0 >> 0) & 0x01); - f_u_arrmul4_fa1_2_or0 = ((f_u_arrmul4_fa1_2_and0 >> 0) & 0x01) | ((f_u_arrmul4_fa1_2_and1 >> 0) & 0x01); - f_u_arrmul4_and2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_arrmul4_fa2_2_xor0 = ((f_u_arrmul4_and2_2 >> 0) & 0x01) ^ ((f_u_arrmul4_ha3_1_xor0 >> 0) & 0x01); - f_u_arrmul4_fa2_2_and0 = ((f_u_arrmul4_and2_2 >> 0) & 0x01) & ((f_u_arrmul4_ha3_1_xor0 >> 0) & 0x01); - f_u_arrmul4_fa2_2_xor1 = ((f_u_arrmul4_fa2_2_xor0 >> 0) & 0x01) ^ ((f_u_arrmul4_fa1_2_or0 >> 0) & 0x01); - f_u_arrmul4_fa2_2_and1 = ((f_u_arrmul4_fa2_2_xor0 >> 0) & 0x01) & ((f_u_arrmul4_fa1_2_or0 >> 0) & 0x01); - f_u_arrmul4_fa2_2_or0 = ((f_u_arrmul4_fa2_2_and0 >> 0) & 0x01) | ((f_u_arrmul4_fa2_2_and1 >> 0) & 0x01); - f_u_arrmul4_and3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_arrmul4_fa3_2_xor0 = ((f_u_arrmul4_and3_2 >> 0) & 0x01) ^ ((f_u_arrmul4_ha3_1_and0 >> 0) & 0x01); - f_u_arrmul4_fa3_2_and0 = ((f_u_arrmul4_and3_2 >> 0) & 0x01) & ((f_u_arrmul4_ha3_1_and0 >> 0) & 0x01); - f_u_arrmul4_fa3_2_xor1 = ((f_u_arrmul4_fa3_2_xor0 >> 0) & 0x01) ^ ((f_u_arrmul4_fa2_2_or0 >> 0) & 0x01); - f_u_arrmul4_fa3_2_and1 = ((f_u_arrmul4_fa3_2_xor0 >> 0) & 0x01) & ((f_u_arrmul4_fa2_2_or0 >> 0) & 0x01); - f_u_arrmul4_fa3_2_or0 = ((f_u_arrmul4_fa3_2_and0 >> 0) & 0x01) | ((f_u_arrmul4_fa3_2_and1 >> 0) & 0x01); - f_u_arrmul4_and0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_arrmul4_ha0_3_xor0 = ((f_u_arrmul4_and0_3 >> 0) & 0x01) ^ ((f_u_arrmul4_fa1_2_xor1 >> 0) & 0x01); - f_u_arrmul4_ha0_3_and0 = ((f_u_arrmul4_and0_3 >> 0) & 0x01) & ((f_u_arrmul4_fa1_2_xor1 >> 0) & 0x01); - f_u_arrmul4_and1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_arrmul4_fa1_3_xor0 = ((f_u_arrmul4_and1_3 >> 0) & 0x01) ^ ((f_u_arrmul4_fa2_2_xor1 >> 0) & 0x01); - f_u_arrmul4_fa1_3_and0 = ((f_u_arrmul4_and1_3 >> 0) & 0x01) & ((f_u_arrmul4_fa2_2_xor1 >> 0) & 0x01); - f_u_arrmul4_fa1_3_xor1 = ((f_u_arrmul4_fa1_3_xor0 >> 0) & 0x01) ^ ((f_u_arrmul4_ha0_3_and0 >> 0) & 0x01); - f_u_arrmul4_fa1_3_and1 = ((f_u_arrmul4_fa1_3_xor0 >> 0) & 0x01) & ((f_u_arrmul4_ha0_3_and0 >> 0) & 0x01); - f_u_arrmul4_fa1_3_or0 = ((f_u_arrmul4_fa1_3_and0 >> 0) & 0x01) | ((f_u_arrmul4_fa1_3_and1 >> 0) & 0x01); - f_u_arrmul4_and2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_arrmul4_fa2_3_xor0 = ((f_u_arrmul4_and2_3 >> 0) & 0x01) ^ ((f_u_arrmul4_fa3_2_xor1 >> 0) & 0x01); - f_u_arrmul4_fa2_3_and0 = ((f_u_arrmul4_and2_3 >> 0) & 0x01) & ((f_u_arrmul4_fa3_2_xor1 >> 0) & 0x01); - f_u_arrmul4_fa2_3_xor1 = ((f_u_arrmul4_fa2_3_xor0 >> 0) & 0x01) ^ ((f_u_arrmul4_fa1_3_or0 >> 0) & 0x01); - f_u_arrmul4_fa2_3_and1 = ((f_u_arrmul4_fa2_3_xor0 >> 0) & 0x01) & ((f_u_arrmul4_fa1_3_or0 >> 0) & 0x01); - f_u_arrmul4_fa2_3_or0 = ((f_u_arrmul4_fa2_3_and0 >> 0) & 0x01) | ((f_u_arrmul4_fa2_3_and1 >> 0) & 0x01); - f_u_arrmul4_and3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_arrmul4_fa3_3_xor0 = ((f_u_arrmul4_and3_3 >> 0) & 0x01) ^ ((f_u_arrmul4_fa3_2_or0 >> 0) & 0x01); - f_u_arrmul4_fa3_3_and0 = ((f_u_arrmul4_and3_3 >> 0) & 0x01) & ((f_u_arrmul4_fa3_2_or0 >> 0) & 0x01); - f_u_arrmul4_fa3_3_xor1 = ((f_u_arrmul4_fa3_3_xor0 >> 0) & 0x01) ^ ((f_u_arrmul4_fa2_3_or0 >> 0) & 0x01); - f_u_arrmul4_fa3_3_and1 = ((f_u_arrmul4_fa3_3_xor0 >> 0) & 0x01) & ((f_u_arrmul4_fa2_3_or0 >> 0) & 0x01); - f_u_arrmul4_fa3_3_or0 = ((f_u_arrmul4_fa3_3_and0 >> 0) & 0x01) | ((f_u_arrmul4_fa3_3_and1 >> 0) & 0x01); - - f_u_arrmul4_out |= ((f_u_arrmul4_and0_0 >> 0) & 0x01) << 0; - f_u_arrmul4_out |= ((f_u_arrmul4_ha0_1_xor0 >> 0) & 0x01) << 1; - f_u_arrmul4_out |= ((f_u_arrmul4_ha0_2_xor0 >> 0) & 0x01) << 2; - f_u_arrmul4_out |= ((f_u_arrmul4_ha0_3_xor0 >> 0) & 0x01) << 3; - f_u_arrmul4_out |= ((f_u_arrmul4_fa1_3_xor1 >> 0) & 0x01) << 4; - f_u_arrmul4_out |= ((f_u_arrmul4_fa2_3_xor1 >> 0) & 0x01) << 5; - f_u_arrmul4_out |= ((f_u_arrmul4_fa3_3_xor1 >> 0) & 0x01) << 6; - f_u_arrmul4_out |= ((f_u_arrmul4_fa3_3_or0 >> 0) & 0x01) << 7; - return f_u_arrmul4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == f_u_arrmul4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_arrmul8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_arrmul8.c deleted file mode 100644 index 7c1ac51..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_arrmul8.c +++ /dev/null @@ -1,675 +0,0 @@ -#include -#include - -uint64_t f_u_arrmul8(uint64_t a, uint64_t b){ - uint64_t f_u_arrmul8_out = 0; - uint8_t f_u_arrmul8_and0_0 = 0; - uint8_t f_u_arrmul8_and1_0 = 0; - uint8_t f_u_arrmul8_and2_0 = 0; - uint8_t f_u_arrmul8_and3_0 = 0; - uint8_t f_u_arrmul8_and4_0 = 0; - uint8_t f_u_arrmul8_and5_0 = 0; - uint8_t f_u_arrmul8_and6_0 = 0; - uint8_t f_u_arrmul8_and7_0 = 0; - uint8_t f_u_arrmul8_and0_1 = 0; - uint8_t f_u_arrmul8_ha0_1_xor0 = 0; - uint8_t f_u_arrmul8_ha0_1_and0 = 0; - uint8_t f_u_arrmul8_and1_1 = 0; - uint8_t f_u_arrmul8_fa1_1_xor0 = 0; - uint8_t f_u_arrmul8_fa1_1_and0 = 0; - uint8_t f_u_arrmul8_fa1_1_xor1 = 0; - uint8_t f_u_arrmul8_fa1_1_and1 = 0; - uint8_t f_u_arrmul8_fa1_1_or0 = 0; - uint8_t f_u_arrmul8_and2_1 = 0; - uint8_t f_u_arrmul8_fa2_1_xor0 = 0; - uint8_t f_u_arrmul8_fa2_1_and0 = 0; - uint8_t f_u_arrmul8_fa2_1_xor1 = 0; - uint8_t f_u_arrmul8_fa2_1_and1 = 0; - uint8_t f_u_arrmul8_fa2_1_or0 = 0; - uint8_t f_u_arrmul8_and3_1 = 0; - uint8_t f_u_arrmul8_fa3_1_xor0 = 0; - uint8_t f_u_arrmul8_fa3_1_and0 = 0; - uint8_t f_u_arrmul8_fa3_1_xor1 = 0; - uint8_t f_u_arrmul8_fa3_1_and1 = 0; - uint8_t f_u_arrmul8_fa3_1_or0 = 0; - uint8_t f_u_arrmul8_and4_1 = 0; - uint8_t f_u_arrmul8_fa4_1_xor0 = 0; - uint8_t f_u_arrmul8_fa4_1_and0 = 0; - uint8_t f_u_arrmul8_fa4_1_xor1 = 0; - uint8_t f_u_arrmul8_fa4_1_and1 = 0; - uint8_t f_u_arrmul8_fa4_1_or0 = 0; - uint8_t f_u_arrmul8_and5_1 = 0; - uint8_t f_u_arrmul8_fa5_1_xor0 = 0; - uint8_t f_u_arrmul8_fa5_1_and0 = 0; - uint8_t f_u_arrmul8_fa5_1_xor1 = 0; - uint8_t f_u_arrmul8_fa5_1_and1 = 0; - uint8_t f_u_arrmul8_fa5_1_or0 = 0; - uint8_t f_u_arrmul8_and6_1 = 0; - uint8_t f_u_arrmul8_fa6_1_xor0 = 0; - uint8_t f_u_arrmul8_fa6_1_and0 = 0; - uint8_t f_u_arrmul8_fa6_1_xor1 = 0; - uint8_t f_u_arrmul8_fa6_1_and1 = 0; - uint8_t f_u_arrmul8_fa6_1_or0 = 0; - uint8_t f_u_arrmul8_and7_1 = 0; - uint8_t f_u_arrmul8_ha7_1_xor0 = 0; - uint8_t f_u_arrmul8_ha7_1_and0 = 0; - uint8_t f_u_arrmul8_and0_2 = 0; - uint8_t f_u_arrmul8_ha0_2_xor0 = 0; - uint8_t f_u_arrmul8_ha0_2_and0 = 0; - uint8_t f_u_arrmul8_and1_2 = 0; - uint8_t f_u_arrmul8_fa1_2_xor0 = 0; - uint8_t f_u_arrmul8_fa1_2_and0 = 0; - uint8_t f_u_arrmul8_fa1_2_xor1 = 0; - uint8_t f_u_arrmul8_fa1_2_and1 = 0; - uint8_t f_u_arrmul8_fa1_2_or0 = 0; - uint8_t f_u_arrmul8_and2_2 = 0; - uint8_t f_u_arrmul8_fa2_2_xor0 = 0; - uint8_t f_u_arrmul8_fa2_2_and0 = 0; - uint8_t f_u_arrmul8_fa2_2_xor1 = 0; - uint8_t f_u_arrmul8_fa2_2_and1 = 0; - uint8_t f_u_arrmul8_fa2_2_or0 = 0; - uint8_t f_u_arrmul8_and3_2 = 0; - uint8_t f_u_arrmul8_fa3_2_xor0 = 0; - uint8_t f_u_arrmul8_fa3_2_and0 = 0; - uint8_t f_u_arrmul8_fa3_2_xor1 = 0; - uint8_t f_u_arrmul8_fa3_2_and1 = 0; - uint8_t f_u_arrmul8_fa3_2_or0 = 0; - uint8_t f_u_arrmul8_and4_2 = 0; - uint8_t f_u_arrmul8_fa4_2_xor0 = 0; - uint8_t f_u_arrmul8_fa4_2_and0 = 0; - uint8_t f_u_arrmul8_fa4_2_xor1 = 0; - uint8_t f_u_arrmul8_fa4_2_and1 = 0; - uint8_t f_u_arrmul8_fa4_2_or0 = 0; - uint8_t f_u_arrmul8_and5_2 = 0; - uint8_t f_u_arrmul8_fa5_2_xor0 = 0; - uint8_t f_u_arrmul8_fa5_2_and0 = 0; - uint8_t f_u_arrmul8_fa5_2_xor1 = 0; - uint8_t f_u_arrmul8_fa5_2_and1 = 0; - uint8_t f_u_arrmul8_fa5_2_or0 = 0; - uint8_t f_u_arrmul8_and6_2 = 0; - uint8_t f_u_arrmul8_fa6_2_xor0 = 0; - uint8_t f_u_arrmul8_fa6_2_and0 = 0; - uint8_t f_u_arrmul8_fa6_2_xor1 = 0; - uint8_t f_u_arrmul8_fa6_2_and1 = 0; - uint8_t f_u_arrmul8_fa6_2_or0 = 0; - uint8_t f_u_arrmul8_and7_2 = 0; - uint8_t f_u_arrmul8_fa7_2_xor0 = 0; - uint8_t f_u_arrmul8_fa7_2_and0 = 0; - uint8_t f_u_arrmul8_fa7_2_xor1 = 0; - uint8_t f_u_arrmul8_fa7_2_and1 = 0; - uint8_t f_u_arrmul8_fa7_2_or0 = 0; - uint8_t f_u_arrmul8_and0_3 = 0; - uint8_t f_u_arrmul8_ha0_3_xor0 = 0; - uint8_t f_u_arrmul8_ha0_3_and0 = 0; - uint8_t f_u_arrmul8_and1_3 = 0; - uint8_t f_u_arrmul8_fa1_3_xor0 = 0; - uint8_t f_u_arrmul8_fa1_3_and0 = 0; - uint8_t f_u_arrmul8_fa1_3_xor1 = 0; - uint8_t f_u_arrmul8_fa1_3_and1 = 0; - uint8_t f_u_arrmul8_fa1_3_or0 = 0; - uint8_t f_u_arrmul8_and2_3 = 0; - uint8_t f_u_arrmul8_fa2_3_xor0 = 0; - uint8_t f_u_arrmul8_fa2_3_and0 = 0; - uint8_t f_u_arrmul8_fa2_3_xor1 = 0; - uint8_t f_u_arrmul8_fa2_3_and1 = 0; - uint8_t f_u_arrmul8_fa2_3_or0 = 0; - uint8_t f_u_arrmul8_and3_3 = 0; - uint8_t f_u_arrmul8_fa3_3_xor0 = 0; - uint8_t f_u_arrmul8_fa3_3_and0 = 0; - uint8_t f_u_arrmul8_fa3_3_xor1 = 0; - uint8_t f_u_arrmul8_fa3_3_and1 = 0; - uint8_t f_u_arrmul8_fa3_3_or0 = 0; - uint8_t f_u_arrmul8_and4_3 = 0; - uint8_t f_u_arrmul8_fa4_3_xor0 = 0; - uint8_t f_u_arrmul8_fa4_3_and0 = 0; - uint8_t f_u_arrmul8_fa4_3_xor1 = 0; - uint8_t f_u_arrmul8_fa4_3_and1 = 0; - uint8_t f_u_arrmul8_fa4_3_or0 = 0; - uint8_t f_u_arrmul8_and5_3 = 0; - uint8_t f_u_arrmul8_fa5_3_xor0 = 0; - uint8_t f_u_arrmul8_fa5_3_and0 = 0; - uint8_t f_u_arrmul8_fa5_3_xor1 = 0; - uint8_t f_u_arrmul8_fa5_3_and1 = 0; - uint8_t f_u_arrmul8_fa5_3_or0 = 0; - uint8_t f_u_arrmul8_and6_3 = 0; - uint8_t f_u_arrmul8_fa6_3_xor0 = 0; - uint8_t f_u_arrmul8_fa6_3_and0 = 0; - uint8_t f_u_arrmul8_fa6_3_xor1 = 0; - uint8_t f_u_arrmul8_fa6_3_and1 = 0; - uint8_t f_u_arrmul8_fa6_3_or0 = 0; - uint8_t f_u_arrmul8_and7_3 = 0; - uint8_t f_u_arrmul8_fa7_3_xor0 = 0; - uint8_t f_u_arrmul8_fa7_3_and0 = 0; - uint8_t f_u_arrmul8_fa7_3_xor1 = 0; - uint8_t f_u_arrmul8_fa7_3_and1 = 0; - uint8_t f_u_arrmul8_fa7_3_or0 = 0; - uint8_t f_u_arrmul8_and0_4 = 0; - uint8_t f_u_arrmul8_ha0_4_xor0 = 0; - uint8_t f_u_arrmul8_ha0_4_and0 = 0; - uint8_t f_u_arrmul8_and1_4 = 0; - uint8_t f_u_arrmul8_fa1_4_xor0 = 0; - uint8_t f_u_arrmul8_fa1_4_and0 = 0; - uint8_t f_u_arrmul8_fa1_4_xor1 = 0; - uint8_t f_u_arrmul8_fa1_4_and1 = 0; - uint8_t f_u_arrmul8_fa1_4_or0 = 0; - uint8_t f_u_arrmul8_and2_4 = 0; - uint8_t f_u_arrmul8_fa2_4_xor0 = 0; - uint8_t f_u_arrmul8_fa2_4_and0 = 0; - uint8_t f_u_arrmul8_fa2_4_xor1 = 0; - uint8_t f_u_arrmul8_fa2_4_and1 = 0; - uint8_t f_u_arrmul8_fa2_4_or0 = 0; - uint8_t f_u_arrmul8_and3_4 = 0; - uint8_t f_u_arrmul8_fa3_4_xor0 = 0; - uint8_t f_u_arrmul8_fa3_4_and0 = 0; - uint8_t f_u_arrmul8_fa3_4_xor1 = 0; - uint8_t f_u_arrmul8_fa3_4_and1 = 0; - uint8_t f_u_arrmul8_fa3_4_or0 = 0; - uint8_t f_u_arrmul8_and4_4 = 0; - uint8_t f_u_arrmul8_fa4_4_xor0 = 0; - uint8_t f_u_arrmul8_fa4_4_and0 = 0; - uint8_t f_u_arrmul8_fa4_4_xor1 = 0; - uint8_t f_u_arrmul8_fa4_4_and1 = 0; - uint8_t f_u_arrmul8_fa4_4_or0 = 0; - uint8_t f_u_arrmul8_and5_4 = 0; - uint8_t f_u_arrmul8_fa5_4_xor0 = 0; - uint8_t f_u_arrmul8_fa5_4_and0 = 0; - uint8_t f_u_arrmul8_fa5_4_xor1 = 0; - uint8_t f_u_arrmul8_fa5_4_and1 = 0; - uint8_t f_u_arrmul8_fa5_4_or0 = 0; - uint8_t f_u_arrmul8_and6_4 = 0; - uint8_t f_u_arrmul8_fa6_4_xor0 = 0; - uint8_t f_u_arrmul8_fa6_4_and0 = 0; - uint8_t f_u_arrmul8_fa6_4_xor1 = 0; - uint8_t f_u_arrmul8_fa6_4_and1 = 0; - uint8_t f_u_arrmul8_fa6_4_or0 = 0; - uint8_t f_u_arrmul8_and7_4 = 0; - uint8_t f_u_arrmul8_fa7_4_xor0 = 0; - uint8_t f_u_arrmul8_fa7_4_and0 = 0; - uint8_t f_u_arrmul8_fa7_4_xor1 = 0; - uint8_t f_u_arrmul8_fa7_4_and1 = 0; - uint8_t f_u_arrmul8_fa7_4_or0 = 0; - uint8_t f_u_arrmul8_and0_5 = 0; - uint8_t f_u_arrmul8_ha0_5_xor0 = 0; - uint8_t f_u_arrmul8_ha0_5_and0 = 0; - uint8_t f_u_arrmul8_and1_5 = 0; - uint8_t f_u_arrmul8_fa1_5_xor0 = 0; - uint8_t f_u_arrmul8_fa1_5_and0 = 0; - uint8_t f_u_arrmul8_fa1_5_xor1 = 0; - uint8_t f_u_arrmul8_fa1_5_and1 = 0; - uint8_t f_u_arrmul8_fa1_5_or0 = 0; - uint8_t f_u_arrmul8_and2_5 = 0; - uint8_t f_u_arrmul8_fa2_5_xor0 = 0; - uint8_t f_u_arrmul8_fa2_5_and0 = 0; - uint8_t f_u_arrmul8_fa2_5_xor1 = 0; - uint8_t f_u_arrmul8_fa2_5_and1 = 0; - uint8_t f_u_arrmul8_fa2_5_or0 = 0; - uint8_t f_u_arrmul8_and3_5 = 0; - uint8_t f_u_arrmul8_fa3_5_xor0 = 0; - uint8_t f_u_arrmul8_fa3_5_and0 = 0; - uint8_t f_u_arrmul8_fa3_5_xor1 = 0; - uint8_t f_u_arrmul8_fa3_5_and1 = 0; - uint8_t f_u_arrmul8_fa3_5_or0 = 0; - uint8_t f_u_arrmul8_and4_5 = 0; - uint8_t f_u_arrmul8_fa4_5_xor0 = 0; - uint8_t f_u_arrmul8_fa4_5_and0 = 0; - uint8_t f_u_arrmul8_fa4_5_xor1 = 0; - uint8_t f_u_arrmul8_fa4_5_and1 = 0; - uint8_t f_u_arrmul8_fa4_5_or0 = 0; - uint8_t f_u_arrmul8_and5_5 = 0; - uint8_t f_u_arrmul8_fa5_5_xor0 = 0; - uint8_t f_u_arrmul8_fa5_5_and0 = 0; - uint8_t f_u_arrmul8_fa5_5_xor1 = 0; - uint8_t f_u_arrmul8_fa5_5_and1 = 0; - uint8_t f_u_arrmul8_fa5_5_or0 = 0; - uint8_t f_u_arrmul8_and6_5 = 0; - uint8_t f_u_arrmul8_fa6_5_xor0 = 0; - uint8_t f_u_arrmul8_fa6_5_and0 = 0; - uint8_t f_u_arrmul8_fa6_5_xor1 = 0; - uint8_t f_u_arrmul8_fa6_5_and1 = 0; - uint8_t f_u_arrmul8_fa6_5_or0 = 0; - uint8_t f_u_arrmul8_and7_5 = 0; - uint8_t f_u_arrmul8_fa7_5_xor0 = 0; - uint8_t f_u_arrmul8_fa7_5_and0 = 0; - uint8_t f_u_arrmul8_fa7_5_xor1 = 0; - uint8_t f_u_arrmul8_fa7_5_and1 = 0; - uint8_t f_u_arrmul8_fa7_5_or0 = 0; - uint8_t f_u_arrmul8_and0_6 = 0; - uint8_t f_u_arrmul8_ha0_6_xor0 = 0; - uint8_t f_u_arrmul8_ha0_6_and0 = 0; - uint8_t f_u_arrmul8_and1_6 = 0; - uint8_t f_u_arrmul8_fa1_6_xor0 = 0; - uint8_t f_u_arrmul8_fa1_6_and0 = 0; - uint8_t f_u_arrmul8_fa1_6_xor1 = 0; - uint8_t f_u_arrmul8_fa1_6_and1 = 0; - uint8_t f_u_arrmul8_fa1_6_or0 = 0; - uint8_t f_u_arrmul8_and2_6 = 0; - uint8_t f_u_arrmul8_fa2_6_xor0 = 0; - uint8_t f_u_arrmul8_fa2_6_and0 = 0; - uint8_t f_u_arrmul8_fa2_6_xor1 = 0; - uint8_t f_u_arrmul8_fa2_6_and1 = 0; - uint8_t f_u_arrmul8_fa2_6_or0 = 0; - uint8_t f_u_arrmul8_and3_6 = 0; - uint8_t f_u_arrmul8_fa3_6_xor0 = 0; - uint8_t f_u_arrmul8_fa3_6_and0 = 0; - uint8_t f_u_arrmul8_fa3_6_xor1 = 0; - uint8_t f_u_arrmul8_fa3_6_and1 = 0; - uint8_t f_u_arrmul8_fa3_6_or0 = 0; - uint8_t f_u_arrmul8_and4_6 = 0; - uint8_t f_u_arrmul8_fa4_6_xor0 = 0; - uint8_t f_u_arrmul8_fa4_6_and0 = 0; - uint8_t f_u_arrmul8_fa4_6_xor1 = 0; - uint8_t f_u_arrmul8_fa4_6_and1 = 0; - uint8_t f_u_arrmul8_fa4_6_or0 = 0; - uint8_t f_u_arrmul8_and5_6 = 0; - uint8_t f_u_arrmul8_fa5_6_xor0 = 0; - uint8_t f_u_arrmul8_fa5_6_and0 = 0; - uint8_t f_u_arrmul8_fa5_6_xor1 = 0; - uint8_t f_u_arrmul8_fa5_6_and1 = 0; - uint8_t f_u_arrmul8_fa5_6_or0 = 0; - uint8_t f_u_arrmul8_and6_6 = 0; - uint8_t f_u_arrmul8_fa6_6_xor0 = 0; - uint8_t f_u_arrmul8_fa6_6_and0 = 0; - uint8_t f_u_arrmul8_fa6_6_xor1 = 0; - uint8_t f_u_arrmul8_fa6_6_and1 = 0; - uint8_t f_u_arrmul8_fa6_6_or0 = 0; - uint8_t f_u_arrmul8_and7_6 = 0; - uint8_t f_u_arrmul8_fa7_6_xor0 = 0; - uint8_t f_u_arrmul8_fa7_6_and0 = 0; - uint8_t f_u_arrmul8_fa7_6_xor1 = 0; - uint8_t f_u_arrmul8_fa7_6_and1 = 0; - uint8_t f_u_arrmul8_fa7_6_or0 = 0; - uint8_t f_u_arrmul8_and0_7 = 0; - uint8_t f_u_arrmul8_ha0_7_xor0 = 0; - uint8_t f_u_arrmul8_ha0_7_and0 = 0; - uint8_t f_u_arrmul8_and1_7 = 0; - uint8_t f_u_arrmul8_fa1_7_xor0 = 0; - uint8_t f_u_arrmul8_fa1_7_and0 = 0; - uint8_t f_u_arrmul8_fa1_7_xor1 = 0; - uint8_t f_u_arrmul8_fa1_7_and1 = 0; - uint8_t f_u_arrmul8_fa1_7_or0 = 0; - uint8_t f_u_arrmul8_and2_7 = 0; - uint8_t f_u_arrmul8_fa2_7_xor0 = 0; - uint8_t f_u_arrmul8_fa2_7_and0 = 0; - uint8_t f_u_arrmul8_fa2_7_xor1 = 0; - uint8_t f_u_arrmul8_fa2_7_and1 = 0; - uint8_t f_u_arrmul8_fa2_7_or0 = 0; - uint8_t f_u_arrmul8_and3_7 = 0; - uint8_t f_u_arrmul8_fa3_7_xor0 = 0; - uint8_t f_u_arrmul8_fa3_7_and0 = 0; - uint8_t f_u_arrmul8_fa3_7_xor1 = 0; - uint8_t f_u_arrmul8_fa3_7_and1 = 0; - uint8_t f_u_arrmul8_fa3_7_or0 = 0; - uint8_t f_u_arrmul8_and4_7 = 0; - uint8_t f_u_arrmul8_fa4_7_xor0 = 0; - uint8_t f_u_arrmul8_fa4_7_and0 = 0; - uint8_t f_u_arrmul8_fa4_7_xor1 = 0; - uint8_t f_u_arrmul8_fa4_7_and1 = 0; - uint8_t f_u_arrmul8_fa4_7_or0 = 0; - uint8_t f_u_arrmul8_and5_7 = 0; - uint8_t f_u_arrmul8_fa5_7_xor0 = 0; - uint8_t f_u_arrmul8_fa5_7_and0 = 0; - uint8_t f_u_arrmul8_fa5_7_xor1 = 0; - uint8_t f_u_arrmul8_fa5_7_and1 = 0; - uint8_t f_u_arrmul8_fa5_7_or0 = 0; - uint8_t f_u_arrmul8_and6_7 = 0; - uint8_t f_u_arrmul8_fa6_7_xor0 = 0; - uint8_t f_u_arrmul8_fa6_7_and0 = 0; - uint8_t f_u_arrmul8_fa6_7_xor1 = 0; - uint8_t f_u_arrmul8_fa6_7_and1 = 0; - uint8_t f_u_arrmul8_fa6_7_or0 = 0; - uint8_t f_u_arrmul8_and7_7 = 0; - uint8_t f_u_arrmul8_fa7_7_xor0 = 0; - uint8_t f_u_arrmul8_fa7_7_and0 = 0; - uint8_t f_u_arrmul8_fa7_7_xor1 = 0; - uint8_t f_u_arrmul8_fa7_7_and1 = 0; - uint8_t f_u_arrmul8_fa7_7_or0 = 0; - - f_u_arrmul8_and0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_arrmul8_and1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_arrmul8_and2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_arrmul8_and3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_arrmul8_and4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_u_arrmul8_and5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_u_arrmul8_and6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_u_arrmul8_and7_0 = ((a >> 7) & 0x01) & ((b >> 0) & 0x01); - f_u_arrmul8_and0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_arrmul8_ha0_1_xor0 = ((f_u_arrmul8_and0_1 >> 0) & 0x01) ^ ((f_u_arrmul8_and1_0 >> 0) & 0x01); - f_u_arrmul8_ha0_1_and0 = ((f_u_arrmul8_and0_1 >> 0) & 0x01) & ((f_u_arrmul8_and1_0 >> 0) & 0x01); - f_u_arrmul8_and1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_arrmul8_fa1_1_xor0 = ((f_u_arrmul8_and1_1 >> 0) & 0x01) ^ ((f_u_arrmul8_and2_0 >> 0) & 0x01); - f_u_arrmul8_fa1_1_and0 = ((f_u_arrmul8_and1_1 >> 0) & 0x01) & ((f_u_arrmul8_and2_0 >> 0) & 0x01); - f_u_arrmul8_fa1_1_xor1 = ((f_u_arrmul8_fa1_1_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_ha0_1_and0 >> 0) & 0x01); - f_u_arrmul8_fa1_1_and1 = ((f_u_arrmul8_fa1_1_xor0 >> 0) & 0x01) & ((f_u_arrmul8_ha0_1_and0 >> 0) & 0x01); - f_u_arrmul8_fa1_1_or0 = ((f_u_arrmul8_fa1_1_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa1_1_and1 >> 0) & 0x01); - f_u_arrmul8_and2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_arrmul8_fa2_1_xor0 = ((f_u_arrmul8_and2_1 >> 0) & 0x01) ^ ((f_u_arrmul8_and3_0 >> 0) & 0x01); - f_u_arrmul8_fa2_1_and0 = ((f_u_arrmul8_and2_1 >> 0) & 0x01) & ((f_u_arrmul8_and3_0 >> 0) & 0x01); - f_u_arrmul8_fa2_1_xor1 = ((f_u_arrmul8_fa2_1_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa1_1_or0 >> 0) & 0x01); - f_u_arrmul8_fa2_1_and1 = ((f_u_arrmul8_fa2_1_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa1_1_or0 >> 0) & 0x01); - f_u_arrmul8_fa2_1_or0 = ((f_u_arrmul8_fa2_1_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa2_1_and1 >> 0) & 0x01); - f_u_arrmul8_and3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_arrmul8_fa3_1_xor0 = ((f_u_arrmul8_and3_1 >> 0) & 0x01) ^ ((f_u_arrmul8_and4_0 >> 0) & 0x01); - f_u_arrmul8_fa3_1_and0 = ((f_u_arrmul8_and3_1 >> 0) & 0x01) & ((f_u_arrmul8_and4_0 >> 0) & 0x01); - f_u_arrmul8_fa3_1_xor1 = ((f_u_arrmul8_fa3_1_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa2_1_or0 >> 0) & 0x01); - f_u_arrmul8_fa3_1_and1 = ((f_u_arrmul8_fa3_1_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa2_1_or0 >> 0) & 0x01); - f_u_arrmul8_fa3_1_or0 = ((f_u_arrmul8_fa3_1_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa3_1_and1 >> 0) & 0x01); - f_u_arrmul8_and4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_u_arrmul8_fa4_1_xor0 = ((f_u_arrmul8_and4_1 >> 0) & 0x01) ^ ((f_u_arrmul8_and5_0 >> 0) & 0x01); - f_u_arrmul8_fa4_1_and0 = ((f_u_arrmul8_and4_1 >> 0) & 0x01) & ((f_u_arrmul8_and5_0 >> 0) & 0x01); - f_u_arrmul8_fa4_1_xor1 = ((f_u_arrmul8_fa4_1_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa3_1_or0 >> 0) & 0x01); - f_u_arrmul8_fa4_1_and1 = ((f_u_arrmul8_fa4_1_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa3_1_or0 >> 0) & 0x01); - f_u_arrmul8_fa4_1_or0 = ((f_u_arrmul8_fa4_1_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa4_1_and1 >> 0) & 0x01); - f_u_arrmul8_and5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_u_arrmul8_fa5_1_xor0 = ((f_u_arrmul8_and5_1 >> 0) & 0x01) ^ ((f_u_arrmul8_and6_0 >> 0) & 0x01); - f_u_arrmul8_fa5_1_and0 = ((f_u_arrmul8_and5_1 >> 0) & 0x01) & ((f_u_arrmul8_and6_0 >> 0) & 0x01); - f_u_arrmul8_fa5_1_xor1 = ((f_u_arrmul8_fa5_1_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa4_1_or0 >> 0) & 0x01); - f_u_arrmul8_fa5_1_and1 = ((f_u_arrmul8_fa5_1_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa4_1_or0 >> 0) & 0x01); - f_u_arrmul8_fa5_1_or0 = ((f_u_arrmul8_fa5_1_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa5_1_and1 >> 0) & 0x01); - f_u_arrmul8_and6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_u_arrmul8_fa6_1_xor0 = ((f_u_arrmul8_and6_1 >> 0) & 0x01) ^ ((f_u_arrmul8_and7_0 >> 0) & 0x01); - f_u_arrmul8_fa6_1_and0 = ((f_u_arrmul8_and6_1 >> 0) & 0x01) & ((f_u_arrmul8_and7_0 >> 0) & 0x01); - f_u_arrmul8_fa6_1_xor1 = ((f_u_arrmul8_fa6_1_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa5_1_or0 >> 0) & 0x01); - f_u_arrmul8_fa6_1_and1 = ((f_u_arrmul8_fa6_1_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa5_1_or0 >> 0) & 0x01); - f_u_arrmul8_fa6_1_or0 = ((f_u_arrmul8_fa6_1_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa6_1_and1 >> 0) & 0x01); - f_u_arrmul8_and7_1 = ((a >> 7) & 0x01) & ((b >> 1) & 0x01); - f_u_arrmul8_ha7_1_xor0 = ((f_u_arrmul8_and7_1 >> 0) & 0x01) ^ ((f_u_arrmul8_fa6_1_or0 >> 0) & 0x01); - f_u_arrmul8_ha7_1_and0 = ((f_u_arrmul8_and7_1 >> 0) & 0x01) & ((f_u_arrmul8_fa6_1_or0 >> 0) & 0x01); - f_u_arrmul8_and0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_arrmul8_ha0_2_xor0 = ((f_u_arrmul8_and0_2 >> 0) & 0x01) ^ ((f_u_arrmul8_fa1_1_xor1 >> 0) & 0x01); - f_u_arrmul8_ha0_2_and0 = ((f_u_arrmul8_and0_2 >> 0) & 0x01) & ((f_u_arrmul8_fa1_1_xor1 >> 0) & 0x01); - f_u_arrmul8_and1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_arrmul8_fa1_2_xor0 = ((f_u_arrmul8_and1_2 >> 0) & 0x01) ^ ((f_u_arrmul8_fa2_1_xor1 >> 0) & 0x01); - f_u_arrmul8_fa1_2_and0 = ((f_u_arrmul8_and1_2 >> 0) & 0x01) & ((f_u_arrmul8_fa2_1_xor1 >> 0) & 0x01); - f_u_arrmul8_fa1_2_xor1 = ((f_u_arrmul8_fa1_2_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_ha0_2_and0 >> 0) & 0x01); - f_u_arrmul8_fa1_2_and1 = ((f_u_arrmul8_fa1_2_xor0 >> 0) & 0x01) & ((f_u_arrmul8_ha0_2_and0 >> 0) & 0x01); - f_u_arrmul8_fa1_2_or0 = ((f_u_arrmul8_fa1_2_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa1_2_and1 >> 0) & 0x01); - f_u_arrmul8_and2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_arrmul8_fa2_2_xor0 = ((f_u_arrmul8_and2_2 >> 0) & 0x01) ^ ((f_u_arrmul8_fa3_1_xor1 >> 0) & 0x01); - f_u_arrmul8_fa2_2_and0 = ((f_u_arrmul8_and2_2 >> 0) & 0x01) & ((f_u_arrmul8_fa3_1_xor1 >> 0) & 0x01); - f_u_arrmul8_fa2_2_xor1 = ((f_u_arrmul8_fa2_2_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa1_2_or0 >> 0) & 0x01); - f_u_arrmul8_fa2_2_and1 = ((f_u_arrmul8_fa2_2_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa1_2_or0 >> 0) & 0x01); - f_u_arrmul8_fa2_2_or0 = ((f_u_arrmul8_fa2_2_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa2_2_and1 >> 0) & 0x01); - f_u_arrmul8_and3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_arrmul8_fa3_2_xor0 = ((f_u_arrmul8_and3_2 >> 0) & 0x01) ^ ((f_u_arrmul8_fa4_1_xor1 >> 0) & 0x01); - f_u_arrmul8_fa3_2_and0 = ((f_u_arrmul8_and3_2 >> 0) & 0x01) & ((f_u_arrmul8_fa4_1_xor1 >> 0) & 0x01); - f_u_arrmul8_fa3_2_xor1 = ((f_u_arrmul8_fa3_2_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa2_2_or0 >> 0) & 0x01); - f_u_arrmul8_fa3_2_and1 = ((f_u_arrmul8_fa3_2_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa2_2_or0 >> 0) & 0x01); - f_u_arrmul8_fa3_2_or0 = ((f_u_arrmul8_fa3_2_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa3_2_and1 >> 0) & 0x01); - f_u_arrmul8_and4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_u_arrmul8_fa4_2_xor0 = ((f_u_arrmul8_and4_2 >> 0) & 0x01) ^ ((f_u_arrmul8_fa5_1_xor1 >> 0) & 0x01); - f_u_arrmul8_fa4_2_and0 = ((f_u_arrmul8_and4_2 >> 0) & 0x01) & ((f_u_arrmul8_fa5_1_xor1 >> 0) & 0x01); - f_u_arrmul8_fa4_2_xor1 = ((f_u_arrmul8_fa4_2_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa3_2_or0 >> 0) & 0x01); - f_u_arrmul8_fa4_2_and1 = ((f_u_arrmul8_fa4_2_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa3_2_or0 >> 0) & 0x01); - f_u_arrmul8_fa4_2_or0 = ((f_u_arrmul8_fa4_2_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa4_2_and1 >> 0) & 0x01); - f_u_arrmul8_and5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_u_arrmul8_fa5_2_xor0 = ((f_u_arrmul8_and5_2 >> 0) & 0x01) ^ ((f_u_arrmul8_fa6_1_xor1 >> 0) & 0x01); - f_u_arrmul8_fa5_2_and0 = ((f_u_arrmul8_and5_2 >> 0) & 0x01) & ((f_u_arrmul8_fa6_1_xor1 >> 0) & 0x01); - f_u_arrmul8_fa5_2_xor1 = ((f_u_arrmul8_fa5_2_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa4_2_or0 >> 0) & 0x01); - f_u_arrmul8_fa5_2_and1 = ((f_u_arrmul8_fa5_2_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa4_2_or0 >> 0) & 0x01); - f_u_arrmul8_fa5_2_or0 = ((f_u_arrmul8_fa5_2_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa5_2_and1 >> 0) & 0x01); - f_u_arrmul8_and6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_u_arrmul8_fa6_2_xor0 = ((f_u_arrmul8_and6_2 >> 0) & 0x01) ^ ((f_u_arrmul8_ha7_1_xor0 >> 0) & 0x01); - f_u_arrmul8_fa6_2_and0 = ((f_u_arrmul8_and6_2 >> 0) & 0x01) & ((f_u_arrmul8_ha7_1_xor0 >> 0) & 0x01); - f_u_arrmul8_fa6_2_xor1 = ((f_u_arrmul8_fa6_2_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa5_2_or0 >> 0) & 0x01); - f_u_arrmul8_fa6_2_and1 = ((f_u_arrmul8_fa6_2_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa5_2_or0 >> 0) & 0x01); - f_u_arrmul8_fa6_2_or0 = ((f_u_arrmul8_fa6_2_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa6_2_and1 >> 0) & 0x01); - f_u_arrmul8_and7_2 = ((a >> 7) & 0x01) & ((b >> 2) & 0x01); - f_u_arrmul8_fa7_2_xor0 = ((f_u_arrmul8_and7_2 >> 0) & 0x01) ^ ((f_u_arrmul8_ha7_1_and0 >> 0) & 0x01); - f_u_arrmul8_fa7_2_and0 = ((f_u_arrmul8_and7_2 >> 0) & 0x01) & ((f_u_arrmul8_ha7_1_and0 >> 0) & 0x01); - f_u_arrmul8_fa7_2_xor1 = ((f_u_arrmul8_fa7_2_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa6_2_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_2_and1 = ((f_u_arrmul8_fa7_2_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa6_2_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_2_or0 = ((f_u_arrmul8_fa7_2_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa7_2_and1 >> 0) & 0x01); - f_u_arrmul8_and0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_arrmul8_ha0_3_xor0 = ((f_u_arrmul8_and0_3 >> 0) & 0x01) ^ ((f_u_arrmul8_fa1_2_xor1 >> 0) & 0x01); - f_u_arrmul8_ha0_3_and0 = ((f_u_arrmul8_and0_3 >> 0) & 0x01) & ((f_u_arrmul8_fa1_2_xor1 >> 0) & 0x01); - f_u_arrmul8_and1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_arrmul8_fa1_3_xor0 = ((f_u_arrmul8_and1_3 >> 0) & 0x01) ^ ((f_u_arrmul8_fa2_2_xor1 >> 0) & 0x01); - f_u_arrmul8_fa1_3_and0 = ((f_u_arrmul8_and1_3 >> 0) & 0x01) & ((f_u_arrmul8_fa2_2_xor1 >> 0) & 0x01); - f_u_arrmul8_fa1_3_xor1 = ((f_u_arrmul8_fa1_3_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_ha0_3_and0 >> 0) & 0x01); - f_u_arrmul8_fa1_3_and1 = ((f_u_arrmul8_fa1_3_xor0 >> 0) & 0x01) & ((f_u_arrmul8_ha0_3_and0 >> 0) & 0x01); - f_u_arrmul8_fa1_3_or0 = ((f_u_arrmul8_fa1_3_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa1_3_and1 >> 0) & 0x01); - f_u_arrmul8_and2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_arrmul8_fa2_3_xor0 = ((f_u_arrmul8_and2_3 >> 0) & 0x01) ^ ((f_u_arrmul8_fa3_2_xor1 >> 0) & 0x01); - f_u_arrmul8_fa2_3_and0 = ((f_u_arrmul8_and2_3 >> 0) & 0x01) & ((f_u_arrmul8_fa3_2_xor1 >> 0) & 0x01); - f_u_arrmul8_fa2_3_xor1 = ((f_u_arrmul8_fa2_3_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa1_3_or0 >> 0) & 0x01); - f_u_arrmul8_fa2_3_and1 = ((f_u_arrmul8_fa2_3_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa1_3_or0 >> 0) & 0x01); - f_u_arrmul8_fa2_3_or0 = ((f_u_arrmul8_fa2_3_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa2_3_and1 >> 0) & 0x01); - f_u_arrmul8_and3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_arrmul8_fa3_3_xor0 = ((f_u_arrmul8_and3_3 >> 0) & 0x01) ^ ((f_u_arrmul8_fa4_2_xor1 >> 0) & 0x01); - f_u_arrmul8_fa3_3_and0 = ((f_u_arrmul8_and3_3 >> 0) & 0x01) & ((f_u_arrmul8_fa4_2_xor1 >> 0) & 0x01); - f_u_arrmul8_fa3_3_xor1 = ((f_u_arrmul8_fa3_3_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa2_3_or0 >> 0) & 0x01); - f_u_arrmul8_fa3_3_and1 = ((f_u_arrmul8_fa3_3_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa2_3_or0 >> 0) & 0x01); - f_u_arrmul8_fa3_3_or0 = ((f_u_arrmul8_fa3_3_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa3_3_and1 >> 0) & 0x01); - f_u_arrmul8_and4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_u_arrmul8_fa4_3_xor0 = ((f_u_arrmul8_and4_3 >> 0) & 0x01) ^ ((f_u_arrmul8_fa5_2_xor1 >> 0) & 0x01); - f_u_arrmul8_fa4_3_and0 = ((f_u_arrmul8_and4_3 >> 0) & 0x01) & ((f_u_arrmul8_fa5_2_xor1 >> 0) & 0x01); - f_u_arrmul8_fa4_3_xor1 = ((f_u_arrmul8_fa4_3_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa3_3_or0 >> 0) & 0x01); - f_u_arrmul8_fa4_3_and1 = ((f_u_arrmul8_fa4_3_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa3_3_or0 >> 0) & 0x01); - f_u_arrmul8_fa4_3_or0 = ((f_u_arrmul8_fa4_3_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa4_3_and1 >> 0) & 0x01); - f_u_arrmul8_and5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_u_arrmul8_fa5_3_xor0 = ((f_u_arrmul8_and5_3 >> 0) & 0x01) ^ ((f_u_arrmul8_fa6_2_xor1 >> 0) & 0x01); - f_u_arrmul8_fa5_3_and0 = ((f_u_arrmul8_and5_3 >> 0) & 0x01) & ((f_u_arrmul8_fa6_2_xor1 >> 0) & 0x01); - f_u_arrmul8_fa5_3_xor1 = ((f_u_arrmul8_fa5_3_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa4_3_or0 >> 0) & 0x01); - f_u_arrmul8_fa5_3_and1 = ((f_u_arrmul8_fa5_3_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa4_3_or0 >> 0) & 0x01); - f_u_arrmul8_fa5_3_or0 = ((f_u_arrmul8_fa5_3_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa5_3_and1 >> 0) & 0x01); - f_u_arrmul8_and6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_u_arrmul8_fa6_3_xor0 = ((f_u_arrmul8_and6_3 >> 0) & 0x01) ^ ((f_u_arrmul8_fa7_2_xor1 >> 0) & 0x01); - f_u_arrmul8_fa6_3_and0 = ((f_u_arrmul8_and6_3 >> 0) & 0x01) & ((f_u_arrmul8_fa7_2_xor1 >> 0) & 0x01); - f_u_arrmul8_fa6_3_xor1 = ((f_u_arrmul8_fa6_3_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa5_3_or0 >> 0) & 0x01); - f_u_arrmul8_fa6_3_and1 = ((f_u_arrmul8_fa6_3_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa5_3_or0 >> 0) & 0x01); - f_u_arrmul8_fa6_3_or0 = ((f_u_arrmul8_fa6_3_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa6_3_and1 >> 0) & 0x01); - f_u_arrmul8_and7_3 = ((a >> 7) & 0x01) & ((b >> 3) & 0x01); - f_u_arrmul8_fa7_3_xor0 = ((f_u_arrmul8_and7_3 >> 0) & 0x01) ^ ((f_u_arrmul8_fa7_2_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_3_and0 = ((f_u_arrmul8_and7_3 >> 0) & 0x01) & ((f_u_arrmul8_fa7_2_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_3_xor1 = ((f_u_arrmul8_fa7_3_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa6_3_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_3_and1 = ((f_u_arrmul8_fa7_3_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa6_3_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_3_or0 = ((f_u_arrmul8_fa7_3_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa7_3_and1 >> 0) & 0x01); - f_u_arrmul8_and0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_u_arrmul8_ha0_4_xor0 = ((f_u_arrmul8_and0_4 >> 0) & 0x01) ^ ((f_u_arrmul8_fa1_3_xor1 >> 0) & 0x01); - f_u_arrmul8_ha0_4_and0 = ((f_u_arrmul8_and0_4 >> 0) & 0x01) & ((f_u_arrmul8_fa1_3_xor1 >> 0) & 0x01); - f_u_arrmul8_and1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_u_arrmul8_fa1_4_xor0 = ((f_u_arrmul8_and1_4 >> 0) & 0x01) ^ ((f_u_arrmul8_fa2_3_xor1 >> 0) & 0x01); - f_u_arrmul8_fa1_4_and0 = ((f_u_arrmul8_and1_4 >> 0) & 0x01) & ((f_u_arrmul8_fa2_3_xor1 >> 0) & 0x01); - f_u_arrmul8_fa1_4_xor1 = ((f_u_arrmul8_fa1_4_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_ha0_4_and0 >> 0) & 0x01); - f_u_arrmul8_fa1_4_and1 = ((f_u_arrmul8_fa1_4_xor0 >> 0) & 0x01) & ((f_u_arrmul8_ha0_4_and0 >> 0) & 0x01); - f_u_arrmul8_fa1_4_or0 = ((f_u_arrmul8_fa1_4_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa1_4_and1 >> 0) & 0x01); - f_u_arrmul8_and2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_u_arrmul8_fa2_4_xor0 = ((f_u_arrmul8_and2_4 >> 0) & 0x01) ^ ((f_u_arrmul8_fa3_3_xor1 >> 0) & 0x01); - f_u_arrmul8_fa2_4_and0 = ((f_u_arrmul8_and2_4 >> 0) & 0x01) & ((f_u_arrmul8_fa3_3_xor1 >> 0) & 0x01); - f_u_arrmul8_fa2_4_xor1 = ((f_u_arrmul8_fa2_4_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa1_4_or0 >> 0) & 0x01); - f_u_arrmul8_fa2_4_and1 = ((f_u_arrmul8_fa2_4_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa1_4_or0 >> 0) & 0x01); - f_u_arrmul8_fa2_4_or0 = ((f_u_arrmul8_fa2_4_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa2_4_and1 >> 0) & 0x01); - f_u_arrmul8_and3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_u_arrmul8_fa3_4_xor0 = ((f_u_arrmul8_and3_4 >> 0) & 0x01) ^ ((f_u_arrmul8_fa4_3_xor1 >> 0) & 0x01); - f_u_arrmul8_fa3_4_and0 = ((f_u_arrmul8_and3_4 >> 0) & 0x01) & ((f_u_arrmul8_fa4_3_xor1 >> 0) & 0x01); - f_u_arrmul8_fa3_4_xor1 = ((f_u_arrmul8_fa3_4_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa2_4_or0 >> 0) & 0x01); - f_u_arrmul8_fa3_4_and1 = ((f_u_arrmul8_fa3_4_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa2_4_or0 >> 0) & 0x01); - f_u_arrmul8_fa3_4_or0 = ((f_u_arrmul8_fa3_4_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa3_4_and1 >> 0) & 0x01); - f_u_arrmul8_and4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_u_arrmul8_fa4_4_xor0 = ((f_u_arrmul8_and4_4 >> 0) & 0x01) ^ ((f_u_arrmul8_fa5_3_xor1 >> 0) & 0x01); - f_u_arrmul8_fa4_4_and0 = ((f_u_arrmul8_and4_4 >> 0) & 0x01) & ((f_u_arrmul8_fa5_3_xor1 >> 0) & 0x01); - f_u_arrmul8_fa4_4_xor1 = ((f_u_arrmul8_fa4_4_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa3_4_or0 >> 0) & 0x01); - f_u_arrmul8_fa4_4_and1 = ((f_u_arrmul8_fa4_4_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa3_4_or0 >> 0) & 0x01); - f_u_arrmul8_fa4_4_or0 = ((f_u_arrmul8_fa4_4_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa4_4_and1 >> 0) & 0x01); - f_u_arrmul8_and5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_u_arrmul8_fa5_4_xor0 = ((f_u_arrmul8_and5_4 >> 0) & 0x01) ^ ((f_u_arrmul8_fa6_3_xor1 >> 0) & 0x01); - f_u_arrmul8_fa5_4_and0 = ((f_u_arrmul8_and5_4 >> 0) & 0x01) & ((f_u_arrmul8_fa6_3_xor1 >> 0) & 0x01); - f_u_arrmul8_fa5_4_xor1 = ((f_u_arrmul8_fa5_4_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa4_4_or0 >> 0) & 0x01); - f_u_arrmul8_fa5_4_and1 = ((f_u_arrmul8_fa5_4_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa4_4_or0 >> 0) & 0x01); - f_u_arrmul8_fa5_4_or0 = ((f_u_arrmul8_fa5_4_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa5_4_and1 >> 0) & 0x01); - f_u_arrmul8_and6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_u_arrmul8_fa6_4_xor0 = ((f_u_arrmul8_and6_4 >> 0) & 0x01) ^ ((f_u_arrmul8_fa7_3_xor1 >> 0) & 0x01); - f_u_arrmul8_fa6_4_and0 = ((f_u_arrmul8_and6_4 >> 0) & 0x01) & ((f_u_arrmul8_fa7_3_xor1 >> 0) & 0x01); - f_u_arrmul8_fa6_4_xor1 = ((f_u_arrmul8_fa6_4_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa5_4_or0 >> 0) & 0x01); - f_u_arrmul8_fa6_4_and1 = ((f_u_arrmul8_fa6_4_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa5_4_or0 >> 0) & 0x01); - f_u_arrmul8_fa6_4_or0 = ((f_u_arrmul8_fa6_4_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa6_4_and1 >> 0) & 0x01); - f_u_arrmul8_and7_4 = ((a >> 7) & 0x01) & ((b >> 4) & 0x01); - f_u_arrmul8_fa7_4_xor0 = ((f_u_arrmul8_and7_4 >> 0) & 0x01) ^ ((f_u_arrmul8_fa7_3_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_4_and0 = ((f_u_arrmul8_and7_4 >> 0) & 0x01) & ((f_u_arrmul8_fa7_3_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_4_xor1 = ((f_u_arrmul8_fa7_4_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa6_4_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_4_and1 = ((f_u_arrmul8_fa7_4_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa6_4_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_4_or0 = ((f_u_arrmul8_fa7_4_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa7_4_and1 >> 0) & 0x01); - f_u_arrmul8_and0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_u_arrmul8_ha0_5_xor0 = ((f_u_arrmul8_and0_5 >> 0) & 0x01) ^ ((f_u_arrmul8_fa1_4_xor1 >> 0) & 0x01); - f_u_arrmul8_ha0_5_and0 = ((f_u_arrmul8_and0_5 >> 0) & 0x01) & ((f_u_arrmul8_fa1_4_xor1 >> 0) & 0x01); - f_u_arrmul8_and1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_u_arrmul8_fa1_5_xor0 = ((f_u_arrmul8_and1_5 >> 0) & 0x01) ^ ((f_u_arrmul8_fa2_4_xor1 >> 0) & 0x01); - f_u_arrmul8_fa1_5_and0 = ((f_u_arrmul8_and1_5 >> 0) & 0x01) & ((f_u_arrmul8_fa2_4_xor1 >> 0) & 0x01); - f_u_arrmul8_fa1_5_xor1 = ((f_u_arrmul8_fa1_5_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_ha0_5_and0 >> 0) & 0x01); - f_u_arrmul8_fa1_5_and1 = ((f_u_arrmul8_fa1_5_xor0 >> 0) & 0x01) & ((f_u_arrmul8_ha0_5_and0 >> 0) & 0x01); - f_u_arrmul8_fa1_5_or0 = ((f_u_arrmul8_fa1_5_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa1_5_and1 >> 0) & 0x01); - f_u_arrmul8_and2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_u_arrmul8_fa2_5_xor0 = ((f_u_arrmul8_and2_5 >> 0) & 0x01) ^ ((f_u_arrmul8_fa3_4_xor1 >> 0) & 0x01); - f_u_arrmul8_fa2_5_and0 = ((f_u_arrmul8_and2_5 >> 0) & 0x01) & ((f_u_arrmul8_fa3_4_xor1 >> 0) & 0x01); - f_u_arrmul8_fa2_5_xor1 = ((f_u_arrmul8_fa2_5_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa1_5_or0 >> 0) & 0x01); - f_u_arrmul8_fa2_5_and1 = ((f_u_arrmul8_fa2_5_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa1_5_or0 >> 0) & 0x01); - f_u_arrmul8_fa2_5_or0 = ((f_u_arrmul8_fa2_5_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa2_5_and1 >> 0) & 0x01); - f_u_arrmul8_and3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_u_arrmul8_fa3_5_xor0 = ((f_u_arrmul8_and3_5 >> 0) & 0x01) ^ ((f_u_arrmul8_fa4_4_xor1 >> 0) & 0x01); - f_u_arrmul8_fa3_5_and0 = ((f_u_arrmul8_and3_5 >> 0) & 0x01) & ((f_u_arrmul8_fa4_4_xor1 >> 0) & 0x01); - f_u_arrmul8_fa3_5_xor1 = ((f_u_arrmul8_fa3_5_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa2_5_or0 >> 0) & 0x01); - f_u_arrmul8_fa3_5_and1 = ((f_u_arrmul8_fa3_5_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa2_5_or0 >> 0) & 0x01); - f_u_arrmul8_fa3_5_or0 = ((f_u_arrmul8_fa3_5_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa3_5_and1 >> 0) & 0x01); - f_u_arrmul8_and4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_u_arrmul8_fa4_5_xor0 = ((f_u_arrmul8_and4_5 >> 0) & 0x01) ^ ((f_u_arrmul8_fa5_4_xor1 >> 0) & 0x01); - f_u_arrmul8_fa4_5_and0 = ((f_u_arrmul8_and4_5 >> 0) & 0x01) & ((f_u_arrmul8_fa5_4_xor1 >> 0) & 0x01); - f_u_arrmul8_fa4_5_xor1 = ((f_u_arrmul8_fa4_5_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa3_5_or0 >> 0) & 0x01); - f_u_arrmul8_fa4_5_and1 = ((f_u_arrmul8_fa4_5_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa3_5_or0 >> 0) & 0x01); - f_u_arrmul8_fa4_5_or0 = ((f_u_arrmul8_fa4_5_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa4_5_and1 >> 0) & 0x01); - f_u_arrmul8_and5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_u_arrmul8_fa5_5_xor0 = ((f_u_arrmul8_and5_5 >> 0) & 0x01) ^ ((f_u_arrmul8_fa6_4_xor1 >> 0) & 0x01); - f_u_arrmul8_fa5_5_and0 = ((f_u_arrmul8_and5_5 >> 0) & 0x01) & ((f_u_arrmul8_fa6_4_xor1 >> 0) & 0x01); - f_u_arrmul8_fa5_5_xor1 = ((f_u_arrmul8_fa5_5_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa4_5_or0 >> 0) & 0x01); - f_u_arrmul8_fa5_5_and1 = ((f_u_arrmul8_fa5_5_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa4_5_or0 >> 0) & 0x01); - f_u_arrmul8_fa5_5_or0 = ((f_u_arrmul8_fa5_5_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa5_5_and1 >> 0) & 0x01); - f_u_arrmul8_and6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_u_arrmul8_fa6_5_xor0 = ((f_u_arrmul8_and6_5 >> 0) & 0x01) ^ ((f_u_arrmul8_fa7_4_xor1 >> 0) & 0x01); - f_u_arrmul8_fa6_5_and0 = ((f_u_arrmul8_and6_5 >> 0) & 0x01) & ((f_u_arrmul8_fa7_4_xor1 >> 0) & 0x01); - f_u_arrmul8_fa6_5_xor1 = ((f_u_arrmul8_fa6_5_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa5_5_or0 >> 0) & 0x01); - f_u_arrmul8_fa6_5_and1 = ((f_u_arrmul8_fa6_5_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa5_5_or0 >> 0) & 0x01); - f_u_arrmul8_fa6_5_or0 = ((f_u_arrmul8_fa6_5_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa6_5_and1 >> 0) & 0x01); - f_u_arrmul8_and7_5 = ((a >> 7) & 0x01) & ((b >> 5) & 0x01); - f_u_arrmul8_fa7_5_xor0 = ((f_u_arrmul8_and7_5 >> 0) & 0x01) ^ ((f_u_arrmul8_fa7_4_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_5_and0 = ((f_u_arrmul8_and7_5 >> 0) & 0x01) & ((f_u_arrmul8_fa7_4_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_5_xor1 = ((f_u_arrmul8_fa7_5_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa6_5_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_5_and1 = ((f_u_arrmul8_fa7_5_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa6_5_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_5_or0 = ((f_u_arrmul8_fa7_5_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa7_5_and1 >> 0) & 0x01); - f_u_arrmul8_and0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_u_arrmul8_ha0_6_xor0 = ((f_u_arrmul8_and0_6 >> 0) & 0x01) ^ ((f_u_arrmul8_fa1_5_xor1 >> 0) & 0x01); - f_u_arrmul8_ha0_6_and0 = ((f_u_arrmul8_and0_6 >> 0) & 0x01) & ((f_u_arrmul8_fa1_5_xor1 >> 0) & 0x01); - f_u_arrmul8_and1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_u_arrmul8_fa1_6_xor0 = ((f_u_arrmul8_and1_6 >> 0) & 0x01) ^ ((f_u_arrmul8_fa2_5_xor1 >> 0) & 0x01); - f_u_arrmul8_fa1_6_and0 = ((f_u_arrmul8_and1_6 >> 0) & 0x01) & ((f_u_arrmul8_fa2_5_xor1 >> 0) & 0x01); - f_u_arrmul8_fa1_6_xor1 = ((f_u_arrmul8_fa1_6_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_ha0_6_and0 >> 0) & 0x01); - f_u_arrmul8_fa1_6_and1 = ((f_u_arrmul8_fa1_6_xor0 >> 0) & 0x01) & ((f_u_arrmul8_ha0_6_and0 >> 0) & 0x01); - f_u_arrmul8_fa1_6_or0 = ((f_u_arrmul8_fa1_6_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa1_6_and1 >> 0) & 0x01); - f_u_arrmul8_and2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_u_arrmul8_fa2_6_xor0 = ((f_u_arrmul8_and2_6 >> 0) & 0x01) ^ ((f_u_arrmul8_fa3_5_xor1 >> 0) & 0x01); - f_u_arrmul8_fa2_6_and0 = ((f_u_arrmul8_and2_6 >> 0) & 0x01) & ((f_u_arrmul8_fa3_5_xor1 >> 0) & 0x01); - f_u_arrmul8_fa2_6_xor1 = ((f_u_arrmul8_fa2_6_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa1_6_or0 >> 0) & 0x01); - f_u_arrmul8_fa2_6_and1 = ((f_u_arrmul8_fa2_6_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa1_6_or0 >> 0) & 0x01); - f_u_arrmul8_fa2_6_or0 = ((f_u_arrmul8_fa2_6_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa2_6_and1 >> 0) & 0x01); - f_u_arrmul8_and3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_u_arrmul8_fa3_6_xor0 = ((f_u_arrmul8_and3_6 >> 0) & 0x01) ^ ((f_u_arrmul8_fa4_5_xor1 >> 0) & 0x01); - f_u_arrmul8_fa3_6_and0 = ((f_u_arrmul8_and3_6 >> 0) & 0x01) & ((f_u_arrmul8_fa4_5_xor1 >> 0) & 0x01); - f_u_arrmul8_fa3_6_xor1 = ((f_u_arrmul8_fa3_6_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa2_6_or0 >> 0) & 0x01); - f_u_arrmul8_fa3_6_and1 = ((f_u_arrmul8_fa3_6_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa2_6_or0 >> 0) & 0x01); - f_u_arrmul8_fa3_6_or0 = ((f_u_arrmul8_fa3_6_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa3_6_and1 >> 0) & 0x01); - f_u_arrmul8_and4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_u_arrmul8_fa4_6_xor0 = ((f_u_arrmul8_and4_6 >> 0) & 0x01) ^ ((f_u_arrmul8_fa5_5_xor1 >> 0) & 0x01); - f_u_arrmul8_fa4_6_and0 = ((f_u_arrmul8_and4_6 >> 0) & 0x01) & ((f_u_arrmul8_fa5_5_xor1 >> 0) & 0x01); - f_u_arrmul8_fa4_6_xor1 = ((f_u_arrmul8_fa4_6_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa3_6_or0 >> 0) & 0x01); - f_u_arrmul8_fa4_6_and1 = ((f_u_arrmul8_fa4_6_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa3_6_or0 >> 0) & 0x01); - f_u_arrmul8_fa4_6_or0 = ((f_u_arrmul8_fa4_6_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa4_6_and1 >> 0) & 0x01); - f_u_arrmul8_and5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_u_arrmul8_fa5_6_xor0 = ((f_u_arrmul8_and5_6 >> 0) & 0x01) ^ ((f_u_arrmul8_fa6_5_xor1 >> 0) & 0x01); - f_u_arrmul8_fa5_6_and0 = ((f_u_arrmul8_and5_6 >> 0) & 0x01) & ((f_u_arrmul8_fa6_5_xor1 >> 0) & 0x01); - f_u_arrmul8_fa5_6_xor1 = ((f_u_arrmul8_fa5_6_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa4_6_or0 >> 0) & 0x01); - f_u_arrmul8_fa5_6_and1 = ((f_u_arrmul8_fa5_6_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa4_6_or0 >> 0) & 0x01); - f_u_arrmul8_fa5_6_or0 = ((f_u_arrmul8_fa5_6_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa5_6_and1 >> 0) & 0x01); - f_u_arrmul8_and6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_u_arrmul8_fa6_6_xor0 = ((f_u_arrmul8_and6_6 >> 0) & 0x01) ^ ((f_u_arrmul8_fa7_5_xor1 >> 0) & 0x01); - f_u_arrmul8_fa6_6_and0 = ((f_u_arrmul8_and6_6 >> 0) & 0x01) & ((f_u_arrmul8_fa7_5_xor1 >> 0) & 0x01); - f_u_arrmul8_fa6_6_xor1 = ((f_u_arrmul8_fa6_6_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa5_6_or0 >> 0) & 0x01); - f_u_arrmul8_fa6_6_and1 = ((f_u_arrmul8_fa6_6_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa5_6_or0 >> 0) & 0x01); - f_u_arrmul8_fa6_6_or0 = ((f_u_arrmul8_fa6_6_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa6_6_and1 >> 0) & 0x01); - f_u_arrmul8_and7_6 = ((a >> 7) & 0x01) & ((b >> 6) & 0x01); - f_u_arrmul8_fa7_6_xor0 = ((f_u_arrmul8_and7_6 >> 0) & 0x01) ^ ((f_u_arrmul8_fa7_5_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_6_and0 = ((f_u_arrmul8_and7_6 >> 0) & 0x01) & ((f_u_arrmul8_fa7_5_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_6_xor1 = ((f_u_arrmul8_fa7_6_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa6_6_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_6_and1 = ((f_u_arrmul8_fa7_6_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa6_6_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_6_or0 = ((f_u_arrmul8_fa7_6_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa7_6_and1 >> 0) & 0x01); - f_u_arrmul8_and0_7 = ((a >> 0) & 0x01) & ((b >> 7) & 0x01); - f_u_arrmul8_ha0_7_xor0 = ((f_u_arrmul8_and0_7 >> 0) & 0x01) ^ ((f_u_arrmul8_fa1_6_xor1 >> 0) & 0x01); - f_u_arrmul8_ha0_7_and0 = ((f_u_arrmul8_and0_7 >> 0) & 0x01) & ((f_u_arrmul8_fa1_6_xor1 >> 0) & 0x01); - f_u_arrmul8_and1_7 = ((a >> 1) & 0x01) & ((b >> 7) & 0x01); - f_u_arrmul8_fa1_7_xor0 = ((f_u_arrmul8_and1_7 >> 0) & 0x01) ^ ((f_u_arrmul8_fa2_6_xor1 >> 0) & 0x01); - f_u_arrmul8_fa1_7_and0 = ((f_u_arrmul8_and1_7 >> 0) & 0x01) & ((f_u_arrmul8_fa2_6_xor1 >> 0) & 0x01); - f_u_arrmul8_fa1_7_xor1 = ((f_u_arrmul8_fa1_7_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_ha0_7_and0 >> 0) & 0x01); - f_u_arrmul8_fa1_7_and1 = ((f_u_arrmul8_fa1_7_xor0 >> 0) & 0x01) & ((f_u_arrmul8_ha0_7_and0 >> 0) & 0x01); - f_u_arrmul8_fa1_7_or0 = ((f_u_arrmul8_fa1_7_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa1_7_and1 >> 0) & 0x01); - f_u_arrmul8_and2_7 = ((a >> 2) & 0x01) & ((b >> 7) & 0x01); - f_u_arrmul8_fa2_7_xor0 = ((f_u_arrmul8_and2_7 >> 0) & 0x01) ^ ((f_u_arrmul8_fa3_6_xor1 >> 0) & 0x01); - f_u_arrmul8_fa2_7_and0 = ((f_u_arrmul8_and2_7 >> 0) & 0x01) & ((f_u_arrmul8_fa3_6_xor1 >> 0) & 0x01); - f_u_arrmul8_fa2_7_xor1 = ((f_u_arrmul8_fa2_7_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa1_7_or0 >> 0) & 0x01); - f_u_arrmul8_fa2_7_and1 = ((f_u_arrmul8_fa2_7_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa1_7_or0 >> 0) & 0x01); - f_u_arrmul8_fa2_7_or0 = ((f_u_arrmul8_fa2_7_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa2_7_and1 >> 0) & 0x01); - f_u_arrmul8_and3_7 = ((a >> 3) & 0x01) & ((b >> 7) & 0x01); - f_u_arrmul8_fa3_7_xor0 = ((f_u_arrmul8_and3_7 >> 0) & 0x01) ^ ((f_u_arrmul8_fa4_6_xor1 >> 0) & 0x01); - f_u_arrmul8_fa3_7_and0 = ((f_u_arrmul8_and3_7 >> 0) & 0x01) & ((f_u_arrmul8_fa4_6_xor1 >> 0) & 0x01); - f_u_arrmul8_fa3_7_xor1 = ((f_u_arrmul8_fa3_7_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa2_7_or0 >> 0) & 0x01); - f_u_arrmul8_fa3_7_and1 = ((f_u_arrmul8_fa3_7_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa2_7_or0 >> 0) & 0x01); - f_u_arrmul8_fa3_7_or0 = ((f_u_arrmul8_fa3_7_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa3_7_and1 >> 0) & 0x01); - f_u_arrmul8_and4_7 = ((a >> 4) & 0x01) & ((b >> 7) & 0x01); - f_u_arrmul8_fa4_7_xor0 = ((f_u_arrmul8_and4_7 >> 0) & 0x01) ^ ((f_u_arrmul8_fa5_6_xor1 >> 0) & 0x01); - f_u_arrmul8_fa4_7_and0 = ((f_u_arrmul8_and4_7 >> 0) & 0x01) & ((f_u_arrmul8_fa5_6_xor1 >> 0) & 0x01); - f_u_arrmul8_fa4_7_xor1 = ((f_u_arrmul8_fa4_7_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa3_7_or0 >> 0) & 0x01); - f_u_arrmul8_fa4_7_and1 = ((f_u_arrmul8_fa4_7_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa3_7_or0 >> 0) & 0x01); - f_u_arrmul8_fa4_7_or0 = ((f_u_arrmul8_fa4_7_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa4_7_and1 >> 0) & 0x01); - f_u_arrmul8_and5_7 = ((a >> 5) & 0x01) & ((b >> 7) & 0x01); - f_u_arrmul8_fa5_7_xor0 = ((f_u_arrmul8_and5_7 >> 0) & 0x01) ^ ((f_u_arrmul8_fa6_6_xor1 >> 0) & 0x01); - f_u_arrmul8_fa5_7_and0 = ((f_u_arrmul8_and5_7 >> 0) & 0x01) & ((f_u_arrmul8_fa6_6_xor1 >> 0) & 0x01); - f_u_arrmul8_fa5_7_xor1 = ((f_u_arrmul8_fa5_7_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa4_7_or0 >> 0) & 0x01); - f_u_arrmul8_fa5_7_and1 = ((f_u_arrmul8_fa5_7_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa4_7_or0 >> 0) & 0x01); - f_u_arrmul8_fa5_7_or0 = ((f_u_arrmul8_fa5_7_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa5_7_and1 >> 0) & 0x01); - f_u_arrmul8_and6_7 = ((a >> 6) & 0x01) & ((b >> 7) & 0x01); - f_u_arrmul8_fa6_7_xor0 = ((f_u_arrmul8_and6_7 >> 0) & 0x01) ^ ((f_u_arrmul8_fa7_6_xor1 >> 0) & 0x01); - f_u_arrmul8_fa6_7_and0 = ((f_u_arrmul8_and6_7 >> 0) & 0x01) & ((f_u_arrmul8_fa7_6_xor1 >> 0) & 0x01); - f_u_arrmul8_fa6_7_xor1 = ((f_u_arrmul8_fa6_7_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa5_7_or0 >> 0) & 0x01); - f_u_arrmul8_fa6_7_and1 = ((f_u_arrmul8_fa6_7_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa5_7_or0 >> 0) & 0x01); - f_u_arrmul8_fa6_7_or0 = ((f_u_arrmul8_fa6_7_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa6_7_and1 >> 0) & 0x01); - f_u_arrmul8_and7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_u_arrmul8_fa7_7_xor0 = ((f_u_arrmul8_and7_7 >> 0) & 0x01) ^ ((f_u_arrmul8_fa7_6_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_7_and0 = ((f_u_arrmul8_and7_7 >> 0) & 0x01) & ((f_u_arrmul8_fa7_6_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_7_xor1 = ((f_u_arrmul8_fa7_7_xor0 >> 0) & 0x01) ^ ((f_u_arrmul8_fa6_7_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_7_and1 = ((f_u_arrmul8_fa7_7_xor0 >> 0) & 0x01) & ((f_u_arrmul8_fa6_7_or0 >> 0) & 0x01); - f_u_arrmul8_fa7_7_or0 = ((f_u_arrmul8_fa7_7_and0 >> 0) & 0x01) | ((f_u_arrmul8_fa7_7_and1 >> 0) & 0x01); - - f_u_arrmul8_out |= ((f_u_arrmul8_and0_0 >> 0) & 0x01) << 0; - f_u_arrmul8_out |= ((f_u_arrmul8_ha0_1_xor0 >> 0) & 0x01) << 1; - f_u_arrmul8_out |= ((f_u_arrmul8_ha0_2_xor0 >> 0) & 0x01) << 2; - f_u_arrmul8_out |= ((f_u_arrmul8_ha0_3_xor0 >> 0) & 0x01) << 3; - f_u_arrmul8_out |= ((f_u_arrmul8_ha0_4_xor0 >> 0) & 0x01) << 4; - f_u_arrmul8_out |= ((f_u_arrmul8_ha0_5_xor0 >> 0) & 0x01) << 5; - f_u_arrmul8_out |= ((f_u_arrmul8_ha0_6_xor0 >> 0) & 0x01) << 6; - f_u_arrmul8_out |= ((f_u_arrmul8_ha0_7_xor0 >> 0) & 0x01) << 7; - f_u_arrmul8_out |= ((f_u_arrmul8_fa1_7_xor1 >> 0) & 0x01) << 8; - f_u_arrmul8_out |= ((f_u_arrmul8_fa2_7_xor1 >> 0) & 0x01) << 9; - f_u_arrmul8_out |= ((f_u_arrmul8_fa3_7_xor1 >> 0) & 0x01) << 10; - f_u_arrmul8_out |= ((f_u_arrmul8_fa4_7_xor1 >> 0) & 0x01) << 11; - f_u_arrmul8_out |= ((f_u_arrmul8_fa5_7_xor1 >> 0) & 0x01) << 12; - f_u_arrmul8_out |= ((f_u_arrmul8_fa6_7_xor1 >> 0) & 0x01) << 13; - f_u_arrmul8_out |= ((f_u_arrmul8_fa7_7_xor1 >> 0) & 0x01) << 14; - f_u_arrmul8_out |= ((f_u_arrmul8_fa7_7_or0 >> 0) & 0x01) << 15; - return f_u_arrmul8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == f_u_arrmul8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cla4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cla4.c deleted file mode 100644 index a2b1b9f..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cla4.c +++ /dev/null @@ -1,197 +0,0 @@ -#include -#include - -uint64_t f_u_dadda_cla4(uint64_t a, uint64_t b){ - uint8_t f_u_dadda_cla4_out = 0; - uint8_t f_u_dadda_cla4_and_3_0 = 0; - uint8_t f_u_dadda_cla4_and_2_1 = 0; - uint8_t f_u_dadda_cla4_ha0_xor0 = 0; - uint8_t f_u_dadda_cla4_ha0_and0 = 0; - uint8_t f_u_dadda_cla4_and_3_1 = 0; - uint8_t f_u_dadda_cla4_ha1_xor0 = 0; - uint8_t f_u_dadda_cla4_ha1_and0 = 0; - uint8_t f_u_dadda_cla4_and_2_0 = 0; - uint8_t f_u_dadda_cla4_and_1_1 = 0; - uint8_t f_u_dadda_cla4_ha2_xor0 = 0; - uint8_t f_u_dadda_cla4_ha2_and0 = 0; - uint8_t f_u_dadda_cla4_and_1_2 = 0; - uint8_t f_u_dadda_cla4_and_0_3 = 0; - uint8_t f_u_dadda_cla4_fa0_xor0 = 0; - uint8_t f_u_dadda_cla4_fa0_and0 = 0; - uint8_t f_u_dadda_cla4_fa0_xor1 = 0; - uint8_t f_u_dadda_cla4_fa0_and1 = 0; - uint8_t f_u_dadda_cla4_fa0_or0 = 0; - uint8_t f_u_dadda_cla4_and_2_2 = 0; - uint8_t f_u_dadda_cla4_and_1_3 = 0; - uint8_t f_u_dadda_cla4_fa1_xor0 = 0; - uint8_t f_u_dadda_cla4_fa1_and0 = 0; - uint8_t f_u_dadda_cla4_fa1_xor1 = 0; - uint8_t f_u_dadda_cla4_fa1_and1 = 0; - uint8_t f_u_dadda_cla4_fa1_or0 = 0; - uint8_t f_u_dadda_cla4_and_3_2 = 0; - uint8_t f_u_dadda_cla4_fa2_xor0 = 0; - uint8_t f_u_dadda_cla4_fa2_and0 = 0; - uint8_t f_u_dadda_cla4_fa2_xor1 = 0; - uint8_t f_u_dadda_cla4_fa2_and1 = 0; - uint8_t f_u_dadda_cla4_fa2_or0 = 0; - uint8_t f_u_dadda_cla4_and_0_0 = 0; - uint8_t f_u_dadda_cla4_and_1_0 = 0; - uint8_t f_u_dadda_cla4_and_0_2 = 0; - uint8_t f_u_dadda_cla4_and_2_3 = 0; - uint8_t f_u_dadda_cla4_and_0_1 = 0; - uint8_t f_u_dadda_cla4_and_3_3 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic0_or0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic0_and0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic0_xor0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic1_or0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic1_and0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic1_xor0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_xor1 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_or0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic2_or0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic2_and0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic2_xor0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_xor2 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and1 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and2 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and3 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and4 = 0; - uint8_t f_u_dadda_cla4_u_cla6_or1 = 0; - uint8_t f_u_dadda_cla4_u_cla6_or2 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic3_or0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic3_and0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic3_xor0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_xor3 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and5 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and6 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and7 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and8 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and9 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and10 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and11 = 0; - uint8_t f_u_dadda_cla4_u_cla6_or3 = 0; - uint8_t f_u_dadda_cla4_u_cla6_or4 = 0; - uint8_t f_u_dadda_cla4_u_cla6_or5 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic4_or0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic4_and0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic4_xor0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_xor4 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and12 = 0; - uint8_t f_u_dadda_cla4_u_cla6_or6 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic5_or0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic5_and0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_pg_logic5_xor0 = 0; - uint8_t f_u_dadda_cla4_u_cla6_xor5 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and13 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and14 = 0; - uint8_t f_u_dadda_cla4_u_cla6_and15 = 0; - uint8_t f_u_dadda_cla4_u_cla6_or7 = 0; - uint8_t f_u_dadda_cla4_u_cla6_or8 = 0; - - f_u_dadda_cla4_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cla4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cla4_ha0_xor0 = ((f_u_dadda_cla4_and_3_0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_and_2_1 >> 0) & 0x01); - f_u_dadda_cla4_ha0_and0 = ((f_u_dadda_cla4_and_3_0 >> 0) & 0x01) & ((f_u_dadda_cla4_and_2_1 >> 0) & 0x01); - f_u_dadda_cla4_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cla4_ha1_xor0 = ((f_u_dadda_cla4_ha0_and0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_and_3_1 >> 0) & 0x01); - f_u_dadda_cla4_ha1_and0 = ((f_u_dadda_cla4_ha0_and0 >> 0) & 0x01) & ((f_u_dadda_cla4_and_3_1 >> 0) & 0x01); - f_u_dadda_cla4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cla4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cla4_ha2_xor0 = ((f_u_dadda_cla4_and_2_0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_and_1_1 >> 0) & 0x01); - f_u_dadda_cla4_ha2_and0 = ((f_u_dadda_cla4_and_2_0 >> 0) & 0x01) & ((f_u_dadda_cla4_and_1_1 >> 0) & 0x01); - f_u_dadda_cla4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cla4_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cla4_fa0_xor0 = ((f_u_dadda_cla4_ha2_and0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_and_1_2 >> 0) & 0x01); - f_u_dadda_cla4_fa0_and0 = ((f_u_dadda_cla4_ha2_and0 >> 0) & 0x01) & ((f_u_dadda_cla4_and_1_2 >> 0) & 0x01); - f_u_dadda_cla4_fa0_xor1 = ((f_u_dadda_cla4_fa0_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_and_0_3 >> 0) & 0x01); - f_u_dadda_cla4_fa0_and1 = ((f_u_dadda_cla4_fa0_xor0 >> 0) & 0x01) & ((f_u_dadda_cla4_and_0_3 >> 0) & 0x01); - f_u_dadda_cla4_fa0_or0 = ((f_u_dadda_cla4_fa0_and0 >> 0) & 0x01) | ((f_u_dadda_cla4_fa0_and1 >> 0) & 0x01); - f_u_dadda_cla4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cla4_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cla4_fa1_xor0 = ((f_u_dadda_cla4_fa0_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_and_2_2 >> 0) & 0x01); - f_u_dadda_cla4_fa1_and0 = ((f_u_dadda_cla4_fa0_or0 >> 0) & 0x01) & ((f_u_dadda_cla4_and_2_2 >> 0) & 0x01); - f_u_dadda_cla4_fa1_xor1 = ((f_u_dadda_cla4_fa1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_and_1_3 >> 0) & 0x01); - f_u_dadda_cla4_fa1_and1 = ((f_u_dadda_cla4_fa1_xor0 >> 0) & 0x01) & ((f_u_dadda_cla4_and_1_3 >> 0) & 0x01); - f_u_dadda_cla4_fa1_or0 = ((f_u_dadda_cla4_fa1_and0 >> 0) & 0x01) | ((f_u_dadda_cla4_fa1_and1 >> 0) & 0x01); - f_u_dadda_cla4_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cla4_fa2_xor0 = ((f_u_dadda_cla4_fa1_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_ha1_and0 >> 0) & 0x01); - f_u_dadda_cla4_fa2_and0 = ((f_u_dadda_cla4_fa1_or0 >> 0) & 0x01) & ((f_u_dadda_cla4_ha1_and0 >> 0) & 0x01); - f_u_dadda_cla4_fa2_xor1 = ((f_u_dadda_cla4_fa2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_and_3_2 >> 0) & 0x01); - f_u_dadda_cla4_fa2_and1 = ((f_u_dadda_cla4_fa2_xor0 >> 0) & 0x01) & ((f_u_dadda_cla4_and_3_2 >> 0) & 0x01); - f_u_dadda_cla4_fa2_or0 = ((f_u_dadda_cla4_fa2_and0 >> 0) & 0x01) | ((f_u_dadda_cla4_fa2_and1 >> 0) & 0x01); - f_u_dadda_cla4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cla4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cla4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cla4_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cla4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cla4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic0_or0 = ((f_u_dadda_cla4_and_1_0 >> 0) & 0x01) | ((f_u_dadda_cla4_and_0_1 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic0_and0 = ((f_u_dadda_cla4_and_1_0 >> 0) & 0x01) & ((f_u_dadda_cla4_and_0_1 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic0_xor0 = ((f_u_dadda_cla4_and_1_0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_and_0_1 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic1_or0 = ((f_u_dadda_cla4_and_0_2 >> 0) & 0x01) | ((f_u_dadda_cla4_ha2_xor0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic1_and0 = ((f_u_dadda_cla4_and_0_2 >> 0) & 0x01) & ((f_u_dadda_cla4_ha2_xor0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic1_xor0 = ((f_u_dadda_cla4_and_0_2 >> 0) & 0x01) ^ ((f_u_dadda_cla4_ha2_xor0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_xor1 = ((f_u_dadda_cla4_u_cla6_pg_logic1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and0 = ((f_u_dadda_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_or0 = ((f_u_dadda_cla4_u_cla6_pg_logic1_and0 >> 0) & 0x01) | ((f_u_dadda_cla4_u_cla6_and0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic2_or0 = ((f_u_dadda_cla4_ha0_xor0 >> 0) & 0x01) | ((f_u_dadda_cla4_fa0_xor1 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic2_and0 = ((f_u_dadda_cla4_ha0_xor0 >> 0) & 0x01) & ((f_u_dadda_cla4_fa0_xor1 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic2_xor0 = ((f_u_dadda_cla4_ha0_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_fa0_xor1 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_xor2 = ((f_u_dadda_cla4_u_cla6_pg_logic2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_u_cla6_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and1 = ((f_u_dadda_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_pg_logic0_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and2 = ((f_u_dadda_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and3 = ((f_u_dadda_cla4_u_cla6_and2 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and4 = ((f_u_dadda_cla4_u_cla6_pg_logic1_and0 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_or1 = ((f_u_dadda_cla4_u_cla6_and3 >> 0) & 0x01) | ((f_u_dadda_cla4_u_cla6_and4 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_or2 = ((f_u_dadda_cla4_u_cla6_pg_logic2_and0 >> 0) & 0x01) | ((f_u_dadda_cla4_u_cla6_or1 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic3_or0 = ((f_u_dadda_cla4_ha1_xor0 >> 0) & 0x01) | ((f_u_dadda_cla4_fa1_xor1 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic3_and0 = ((f_u_dadda_cla4_ha1_xor0 >> 0) & 0x01) & ((f_u_dadda_cla4_fa1_xor1 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic3_xor0 = ((f_u_dadda_cla4_ha1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_fa1_xor1 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_xor3 = ((f_u_dadda_cla4_u_cla6_pg_logic3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_u_cla6_or2 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and5 = ((f_u_dadda_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and6 = ((f_u_dadda_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and7 = ((f_u_dadda_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and8 = ((f_u_dadda_cla4_u_cla6_and6 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_and7 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and9 = ((f_u_dadda_cla4_u_cla6_pg_logic1_and0 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and10 = ((f_u_dadda_cla4_u_cla6_and9 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and11 = ((f_u_dadda_cla4_u_cla6_pg_logic2_and0 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_or3 = ((f_u_dadda_cla4_u_cla6_and8 >> 0) & 0x01) | ((f_u_dadda_cla4_u_cla6_and11 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_or4 = ((f_u_dadda_cla4_u_cla6_and10 >> 0) & 0x01) | ((f_u_dadda_cla4_u_cla6_or3 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_or5 = ((f_u_dadda_cla4_u_cla6_pg_logic3_and0 >> 0) & 0x01) | ((f_u_dadda_cla4_u_cla6_or4 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic4_or0 = ((f_u_dadda_cla4_and_2_3 >> 0) & 0x01) | ((f_u_dadda_cla4_fa2_xor1 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic4_and0 = ((f_u_dadda_cla4_and_2_3 >> 0) & 0x01) & ((f_u_dadda_cla4_fa2_xor1 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic4_xor0 = ((f_u_dadda_cla4_and_2_3 >> 0) & 0x01) ^ ((f_u_dadda_cla4_fa2_xor1 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_xor4 = ((f_u_dadda_cla4_u_cla6_pg_logic4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_u_cla6_or5 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and12 = ((f_u_dadda_cla4_u_cla6_or5 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_pg_logic4_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_or6 = ((f_u_dadda_cla4_u_cla6_pg_logic4_and0 >> 0) & 0x01) | ((f_u_dadda_cla4_u_cla6_and12 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic5_or0 = ((f_u_dadda_cla4_fa2_or0 >> 0) & 0x01) | ((f_u_dadda_cla4_and_3_3 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic5_and0 = ((f_u_dadda_cla4_fa2_or0 >> 0) & 0x01) & ((f_u_dadda_cla4_and_3_3 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_pg_logic5_xor0 = ((f_u_dadda_cla4_fa2_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_and_3_3 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_xor5 = ((f_u_dadda_cla4_u_cla6_pg_logic5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla4_u_cla6_or6 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and13 = ((f_u_dadda_cla4_u_cla6_or5 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_pg_logic5_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and14 = ((f_u_dadda_cla4_u_cla6_and13 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_pg_logic4_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_and15 = ((f_u_dadda_cla4_u_cla6_pg_logic4_and0 >> 0) & 0x01) & ((f_u_dadda_cla4_u_cla6_pg_logic5_or0 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_or7 = ((f_u_dadda_cla4_u_cla6_and14 >> 0) & 0x01) | ((f_u_dadda_cla4_u_cla6_and15 >> 0) & 0x01); - f_u_dadda_cla4_u_cla6_or8 = ((f_u_dadda_cla4_u_cla6_pg_logic5_and0 >> 0) & 0x01) | ((f_u_dadda_cla4_u_cla6_or7 >> 0) & 0x01); - - f_u_dadda_cla4_out |= ((f_u_dadda_cla4_and_0_0 >> 0) & 0x01) << 0; - f_u_dadda_cla4_out |= ((f_u_dadda_cla4_u_cla6_pg_logic0_xor0 >> 0) & 0x01) << 1; - f_u_dadda_cla4_out |= ((f_u_dadda_cla4_u_cla6_xor1 >> 0) & 0x01) << 2; - f_u_dadda_cla4_out |= ((f_u_dadda_cla4_u_cla6_xor2 >> 0) & 0x01) << 3; - f_u_dadda_cla4_out |= ((f_u_dadda_cla4_u_cla6_xor3 >> 0) & 0x01) << 4; - f_u_dadda_cla4_out |= ((f_u_dadda_cla4_u_cla6_xor4 >> 0) & 0x01) << 5; - f_u_dadda_cla4_out |= ((f_u_dadda_cla4_u_cla6_xor5 >> 0) & 0x01) << 6; - f_u_dadda_cla4_out |= ((f_u_dadda_cla4_u_cla6_or8 >> 0) & 0x01) << 7; - return f_u_dadda_cla4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == f_u_dadda_cla4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cla8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cla8.c deleted file mode 100644 index eec5c32..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cla8.c +++ /dev/null @@ -1,821 +0,0 @@ -#include -#include - -uint64_t f_u_dadda_cla8(uint64_t a, uint64_t b){ - uint64_t f_u_dadda_cla8_out = 0; - uint8_t f_u_dadda_cla8_and_6_0 = 0; - uint8_t f_u_dadda_cla8_and_5_1 = 0; - uint8_t f_u_dadda_cla8_ha0_xor0 = 0; - uint8_t f_u_dadda_cla8_ha0_and0 = 0; - uint8_t f_u_dadda_cla8_and_7_0 = 0; - uint8_t f_u_dadda_cla8_and_6_1 = 0; - uint8_t f_u_dadda_cla8_fa0_xor0 = 0; - uint8_t f_u_dadda_cla8_fa0_and0 = 0; - uint8_t f_u_dadda_cla8_fa0_xor1 = 0; - uint8_t f_u_dadda_cla8_fa0_and1 = 0; - uint8_t f_u_dadda_cla8_fa0_or0 = 0; - uint8_t f_u_dadda_cla8_and_5_2 = 0; - uint8_t f_u_dadda_cla8_and_4_3 = 0; - uint8_t f_u_dadda_cla8_ha1_xor0 = 0; - uint8_t f_u_dadda_cla8_ha1_and0 = 0; - uint8_t f_u_dadda_cla8_and_7_1 = 0; - uint8_t f_u_dadda_cla8_fa1_xor0 = 0; - uint8_t f_u_dadda_cla8_fa1_and0 = 0; - uint8_t f_u_dadda_cla8_fa1_xor1 = 0; - uint8_t f_u_dadda_cla8_fa1_and1 = 0; - uint8_t f_u_dadda_cla8_fa1_or0 = 0; - uint8_t f_u_dadda_cla8_and_6_2 = 0; - uint8_t f_u_dadda_cla8_and_5_3 = 0; - uint8_t f_u_dadda_cla8_ha2_xor0 = 0; - uint8_t f_u_dadda_cla8_ha2_and0 = 0; - uint8_t f_u_dadda_cla8_and_7_2 = 0; - uint8_t f_u_dadda_cla8_fa2_xor0 = 0; - uint8_t f_u_dadda_cla8_fa2_and0 = 0; - uint8_t f_u_dadda_cla8_fa2_xor1 = 0; - uint8_t f_u_dadda_cla8_fa2_and1 = 0; - uint8_t f_u_dadda_cla8_fa2_or0 = 0; - uint8_t f_u_dadda_cla8_and_3_0 = 0; - uint8_t f_u_dadda_cla8_and_2_1 = 0; - uint8_t f_u_dadda_cla8_ha3_xor0 = 0; - uint8_t f_u_dadda_cla8_ha3_and0 = 0; - uint8_t f_u_dadda_cla8_and_4_0 = 0; - uint8_t f_u_dadda_cla8_and_3_1 = 0; - uint8_t f_u_dadda_cla8_fa3_xor0 = 0; - uint8_t f_u_dadda_cla8_fa3_and0 = 0; - uint8_t f_u_dadda_cla8_fa3_xor1 = 0; - uint8_t f_u_dadda_cla8_fa3_and1 = 0; - uint8_t f_u_dadda_cla8_fa3_or0 = 0; - uint8_t f_u_dadda_cla8_and_2_2 = 0; - uint8_t f_u_dadda_cla8_and_1_3 = 0; - uint8_t f_u_dadda_cla8_ha4_xor0 = 0; - uint8_t f_u_dadda_cla8_ha4_and0 = 0; - uint8_t f_u_dadda_cla8_and_5_0 = 0; - uint8_t f_u_dadda_cla8_fa4_xor0 = 0; - uint8_t f_u_dadda_cla8_fa4_and0 = 0; - uint8_t f_u_dadda_cla8_fa4_xor1 = 0; - uint8_t f_u_dadda_cla8_fa4_and1 = 0; - uint8_t f_u_dadda_cla8_fa4_or0 = 0; - uint8_t f_u_dadda_cla8_and_4_1 = 0; - uint8_t f_u_dadda_cla8_and_3_2 = 0; - uint8_t f_u_dadda_cla8_and_2_3 = 0; - uint8_t f_u_dadda_cla8_fa5_xor0 = 0; - uint8_t f_u_dadda_cla8_fa5_and0 = 0; - uint8_t f_u_dadda_cla8_fa5_xor1 = 0; - uint8_t f_u_dadda_cla8_fa5_and1 = 0; - uint8_t f_u_dadda_cla8_fa5_or0 = 0; - uint8_t f_u_dadda_cla8_and_1_4 = 0; - uint8_t f_u_dadda_cla8_and_0_5 = 0; - uint8_t f_u_dadda_cla8_ha5_xor0 = 0; - uint8_t f_u_dadda_cla8_ha5_and0 = 0; - uint8_t f_u_dadda_cla8_fa6_xor0 = 0; - uint8_t f_u_dadda_cla8_fa6_and0 = 0; - uint8_t f_u_dadda_cla8_fa6_xor1 = 0; - uint8_t f_u_dadda_cla8_fa6_and1 = 0; - uint8_t f_u_dadda_cla8_fa6_or0 = 0; - uint8_t f_u_dadda_cla8_and_4_2 = 0; - uint8_t f_u_dadda_cla8_and_3_3 = 0; - uint8_t f_u_dadda_cla8_and_2_4 = 0; - uint8_t f_u_dadda_cla8_fa7_xor0 = 0; - uint8_t f_u_dadda_cla8_fa7_and0 = 0; - uint8_t f_u_dadda_cla8_fa7_xor1 = 0; - uint8_t f_u_dadda_cla8_fa7_and1 = 0; - uint8_t f_u_dadda_cla8_fa7_or0 = 0; - uint8_t f_u_dadda_cla8_and_1_5 = 0; - uint8_t f_u_dadda_cla8_and_0_6 = 0; - uint8_t f_u_dadda_cla8_fa8_xor0 = 0; - uint8_t f_u_dadda_cla8_fa8_and0 = 0; - uint8_t f_u_dadda_cla8_fa8_xor1 = 0; - uint8_t f_u_dadda_cla8_fa8_and1 = 0; - uint8_t f_u_dadda_cla8_fa8_or0 = 0; - uint8_t f_u_dadda_cla8_fa9_xor0 = 0; - uint8_t f_u_dadda_cla8_fa9_and0 = 0; - uint8_t f_u_dadda_cla8_fa9_xor1 = 0; - uint8_t f_u_dadda_cla8_fa9_and1 = 0; - uint8_t f_u_dadda_cla8_fa9_or0 = 0; - uint8_t f_u_dadda_cla8_and_3_4 = 0; - uint8_t f_u_dadda_cla8_and_2_5 = 0; - uint8_t f_u_dadda_cla8_and_1_6 = 0; - uint8_t f_u_dadda_cla8_fa10_xor0 = 0; - uint8_t f_u_dadda_cla8_fa10_and0 = 0; - uint8_t f_u_dadda_cla8_fa10_xor1 = 0; - uint8_t f_u_dadda_cla8_fa10_and1 = 0; - uint8_t f_u_dadda_cla8_fa10_or0 = 0; - uint8_t f_u_dadda_cla8_and_0_7 = 0; - uint8_t f_u_dadda_cla8_fa11_xor0 = 0; - uint8_t f_u_dadda_cla8_fa11_and0 = 0; - uint8_t f_u_dadda_cla8_fa11_xor1 = 0; - uint8_t f_u_dadda_cla8_fa11_and1 = 0; - uint8_t f_u_dadda_cla8_fa11_or0 = 0; - uint8_t f_u_dadda_cla8_fa12_xor0 = 0; - uint8_t f_u_dadda_cla8_fa12_and0 = 0; - uint8_t f_u_dadda_cla8_fa12_xor1 = 0; - uint8_t f_u_dadda_cla8_fa12_and1 = 0; - uint8_t f_u_dadda_cla8_fa12_or0 = 0; - uint8_t f_u_dadda_cla8_and_4_4 = 0; - uint8_t f_u_dadda_cla8_and_3_5 = 0; - uint8_t f_u_dadda_cla8_and_2_6 = 0; - uint8_t f_u_dadda_cla8_fa13_xor0 = 0; - uint8_t f_u_dadda_cla8_fa13_and0 = 0; - uint8_t f_u_dadda_cla8_fa13_xor1 = 0; - uint8_t f_u_dadda_cla8_fa13_and1 = 0; - uint8_t f_u_dadda_cla8_fa13_or0 = 0; - uint8_t f_u_dadda_cla8_and_1_7 = 0; - uint8_t f_u_dadda_cla8_fa14_xor0 = 0; - uint8_t f_u_dadda_cla8_fa14_and0 = 0; - uint8_t f_u_dadda_cla8_fa14_xor1 = 0; - uint8_t f_u_dadda_cla8_fa14_and1 = 0; - uint8_t f_u_dadda_cla8_fa14_or0 = 0; - uint8_t f_u_dadda_cla8_fa15_xor0 = 0; - uint8_t f_u_dadda_cla8_fa15_and0 = 0; - uint8_t f_u_dadda_cla8_fa15_xor1 = 0; - uint8_t f_u_dadda_cla8_fa15_and1 = 0; - uint8_t f_u_dadda_cla8_fa15_or0 = 0; - uint8_t f_u_dadda_cla8_and_6_3 = 0; - uint8_t f_u_dadda_cla8_and_5_4 = 0; - uint8_t f_u_dadda_cla8_and_4_5 = 0; - uint8_t f_u_dadda_cla8_fa16_xor0 = 0; - uint8_t f_u_dadda_cla8_fa16_and0 = 0; - uint8_t f_u_dadda_cla8_fa16_xor1 = 0; - uint8_t f_u_dadda_cla8_fa16_and1 = 0; - uint8_t f_u_dadda_cla8_fa16_or0 = 0; - uint8_t f_u_dadda_cla8_and_3_6 = 0; - uint8_t f_u_dadda_cla8_and_2_7 = 0; - uint8_t f_u_dadda_cla8_fa17_xor0 = 0; - uint8_t f_u_dadda_cla8_fa17_and0 = 0; - uint8_t f_u_dadda_cla8_fa17_xor1 = 0; - uint8_t f_u_dadda_cla8_fa17_and1 = 0; - uint8_t f_u_dadda_cla8_fa17_or0 = 0; - uint8_t f_u_dadda_cla8_fa18_xor0 = 0; - uint8_t f_u_dadda_cla8_fa18_and0 = 0; - uint8_t f_u_dadda_cla8_fa18_xor1 = 0; - uint8_t f_u_dadda_cla8_fa18_and1 = 0; - uint8_t f_u_dadda_cla8_fa18_or0 = 0; - uint8_t f_u_dadda_cla8_and_7_3 = 0; - uint8_t f_u_dadda_cla8_and_6_4 = 0; - uint8_t f_u_dadda_cla8_fa19_xor0 = 0; - uint8_t f_u_dadda_cla8_fa19_and0 = 0; - uint8_t f_u_dadda_cla8_fa19_xor1 = 0; - uint8_t f_u_dadda_cla8_fa19_and1 = 0; - uint8_t f_u_dadda_cla8_fa19_or0 = 0; - uint8_t f_u_dadda_cla8_and_5_5 = 0; - uint8_t f_u_dadda_cla8_and_4_6 = 0; - uint8_t f_u_dadda_cla8_and_3_7 = 0; - uint8_t f_u_dadda_cla8_fa20_xor0 = 0; - uint8_t f_u_dadda_cla8_fa20_and0 = 0; - uint8_t f_u_dadda_cla8_fa20_xor1 = 0; - uint8_t f_u_dadda_cla8_fa20_and1 = 0; - uint8_t f_u_dadda_cla8_fa20_or0 = 0; - uint8_t f_u_dadda_cla8_fa21_xor0 = 0; - uint8_t f_u_dadda_cla8_fa21_and0 = 0; - uint8_t f_u_dadda_cla8_fa21_xor1 = 0; - uint8_t f_u_dadda_cla8_fa21_and1 = 0; - uint8_t f_u_dadda_cla8_fa21_or0 = 0; - uint8_t f_u_dadda_cla8_and_7_4 = 0; - uint8_t f_u_dadda_cla8_and_6_5 = 0; - uint8_t f_u_dadda_cla8_and_5_6 = 0; - uint8_t f_u_dadda_cla8_fa22_xor0 = 0; - uint8_t f_u_dadda_cla8_fa22_and0 = 0; - uint8_t f_u_dadda_cla8_fa22_xor1 = 0; - uint8_t f_u_dadda_cla8_fa22_and1 = 0; - uint8_t f_u_dadda_cla8_fa22_or0 = 0; - uint8_t f_u_dadda_cla8_and_7_5 = 0; - uint8_t f_u_dadda_cla8_fa23_xor0 = 0; - uint8_t f_u_dadda_cla8_fa23_and0 = 0; - uint8_t f_u_dadda_cla8_fa23_xor1 = 0; - uint8_t f_u_dadda_cla8_fa23_and1 = 0; - uint8_t f_u_dadda_cla8_fa23_or0 = 0; - uint8_t f_u_dadda_cla8_and_2_0 = 0; - uint8_t f_u_dadda_cla8_and_1_1 = 0; - uint8_t f_u_dadda_cla8_ha6_xor0 = 0; - uint8_t f_u_dadda_cla8_ha6_and0 = 0; - uint8_t f_u_dadda_cla8_and_1_2 = 0; - uint8_t f_u_dadda_cla8_and_0_3 = 0; - uint8_t f_u_dadda_cla8_fa24_xor0 = 0; - uint8_t f_u_dadda_cla8_fa24_and0 = 0; - uint8_t f_u_dadda_cla8_fa24_xor1 = 0; - uint8_t f_u_dadda_cla8_fa24_and1 = 0; - uint8_t f_u_dadda_cla8_fa24_or0 = 0; - uint8_t f_u_dadda_cla8_and_0_4 = 0; - uint8_t f_u_dadda_cla8_fa25_xor0 = 0; - uint8_t f_u_dadda_cla8_fa25_and0 = 0; - uint8_t f_u_dadda_cla8_fa25_xor1 = 0; - uint8_t f_u_dadda_cla8_fa25_and1 = 0; - uint8_t f_u_dadda_cla8_fa25_or0 = 0; - uint8_t f_u_dadda_cla8_fa26_xor0 = 0; - uint8_t f_u_dadda_cla8_fa26_and0 = 0; - uint8_t f_u_dadda_cla8_fa26_xor1 = 0; - uint8_t f_u_dadda_cla8_fa26_and1 = 0; - uint8_t f_u_dadda_cla8_fa26_or0 = 0; - uint8_t f_u_dadda_cla8_fa27_xor0 = 0; - uint8_t f_u_dadda_cla8_fa27_and0 = 0; - uint8_t f_u_dadda_cla8_fa27_xor1 = 0; - uint8_t f_u_dadda_cla8_fa27_and1 = 0; - uint8_t f_u_dadda_cla8_fa27_or0 = 0; - uint8_t f_u_dadda_cla8_fa28_xor0 = 0; - uint8_t f_u_dadda_cla8_fa28_and0 = 0; - uint8_t f_u_dadda_cla8_fa28_xor1 = 0; - uint8_t f_u_dadda_cla8_fa28_and1 = 0; - uint8_t f_u_dadda_cla8_fa28_or0 = 0; - uint8_t f_u_dadda_cla8_fa29_xor0 = 0; - uint8_t f_u_dadda_cla8_fa29_and0 = 0; - uint8_t f_u_dadda_cla8_fa29_xor1 = 0; - uint8_t f_u_dadda_cla8_fa29_and1 = 0; - uint8_t f_u_dadda_cla8_fa29_or0 = 0; - uint8_t f_u_dadda_cla8_fa30_xor0 = 0; - uint8_t f_u_dadda_cla8_fa30_and0 = 0; - uint8_t f_u_dadda_cla8_fa30_xor1 = 0; - uint8_t f_u_dadda_cla8_fa30_and1 = 0; - uint8_t f_u_dadda_cla8_fa30_or0 = 0; - uint8_t f_u_dadda_cla8_fa31_xor0 = 0; - uint8_t f_u_dadda_cla8_fa31_and0 = 0; - uint8_t f_u_dadda_cla8_fa31_xor1 = 0; - uint8_t f_u_dadda_cla8_fa31_and1 = 0; - uint8_t f_u_dadda_cla8_fa31_or0 = 0; - uint8_t f_u_dadda_cla8_and_4_7 = 0; - uint8_t f_u_dadda_cla8_fa32_xor0 = 0; - uint8_t f_u_dadda_cla8_fa32_and0 = 0; - uint8_t f_u_dadda_cla8_fa32_xor1 = 0; - uint8_t f_u_dadda_cla8_fa32_and1 = 0; - uint8_t f_u_dadda_cla8_fa32_or0 = 0; - uint8_t f_u_dadda_cla8_and_6_6 = 0; - uint8_t f_u_dadda_cla8_and_5_7 = 0; - uint8_t f_u_dadda_cla8_fa33_xor0 = 0; - uint8_t f_u_dadda_cla8_fa33_and0 = 0; - uint8_t f_u_dadda_cla8_fa33_xor1 = 0; - uint8_t f_u_dadda_cla8_fa33_and1 = 0; - uint8_t f_u_dadda_cla8_fa33_or0 = 0; - uint8_t f_u_dadda_cla8_and_7_6 = 0; - uint8_t f_u_dadda_cla8_fa34_xor0 = 0; - uint8_t f_u_dadda_cla8_fa34_and0 = 0; - uint8_t f_u_dadda_cla8_fa34_xor1 = 0; - uint8_t f_u_dadda_cla8_fa34_and1 = 0; - uint8_t f_u_dadda_cla8_fa34_or0 = 0; - uint8_t f_u_dadda_cla8_and_0_0 = 0; - uint8_t f_u_dadda_cla8_and_1_0 = 0; - uint8_t f_u_dadda_cla8_and_0_2 = 0; - uint8_t f_u_dadda_cla8_and_6_7 = 0; - uint8_t f_u_dadda_cla8_and_0_1 = 0; - uint8_t f_u_dadda_cla8_and_7_7 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic0_or0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic0_and0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic0_xor0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic1_or0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic1_and0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic1_xor0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_xor1 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic2_or0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic2_and0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic2_xor0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_xor2 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and1 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and2 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and3 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and4 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or1 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or2 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic3_or0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic3_and0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic3_xor0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_xor3 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and5 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and6 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and7 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and8 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and9 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and10 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and11 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or3 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or4 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or5 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic4_or0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic4_and0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic4_xor0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_xor4 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and12 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or6 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic5_or0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic5_and0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic5_xor0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_xor5 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and13 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and14 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and15 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or7 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or8 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic6_or0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic6_and0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic6_xor0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_xor6 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and16 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and17 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and18 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and19 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and20 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and21 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or9 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or10 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or11 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic7_or0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic7_and0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic7_xor0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_xor7 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and22 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and23 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and24 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and25 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and26 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and27 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and28 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and29 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and30 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and31 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or12 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or13 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or14 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or15 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic8_or0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic8_and0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic8_xor0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_xor8 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and32 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or16 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic9_or0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic9_and0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic9_xor0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_xor9 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and33 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and34 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and35 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or17 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or18 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic10_or0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic10_and0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic10_xor0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_xor10 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and36 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and37 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and38 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and39 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and40 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and41 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or19 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or20 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or21 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic11_or0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic11_and0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic11_xor0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_xor11 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and42 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and43 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and44 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and45 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and46 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and47 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and48 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and49 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and50 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and51 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or22 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or23 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or24 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or25 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic12_or0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic12_and0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic12_xor0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_xor12 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and52 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or26 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic13_or0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic13_and0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_pg_logic13_xor0 = 0; - uint8_t f_u_dadda_cla8_u_cla14_xor13 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and53 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and54 = 0; - uint8_t f_u_dadda_cla8_u_cla14_and55 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or27 = 0; - uint8_t f_u_dadda_cla8_u_cla14_or28 = 0; - - f_u_dadda_cla8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cla8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cla8_ha0_xor0 = ((f_u_dadda_cla8_and_6_0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_5_1 >> 0) & 0x01); - f_u_dadda_cla8_ha0_and0 = ((f_u_dadda_cla8_and_6_0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_5_1 >> 0) & 0x01); - f_u_dadda_cla8_and_7_0 = ((a >> 7) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cla8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cla8_fa0_xor0 = ((f_u_dadda_cla8_ha0_and0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_7_0 >> 0) & 0x01); - f_u_dadda_cla8_fa0_and0 = ((f_u_dadda_cla8_ha0_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_7_0 >> 0) & 0x01); - f_u_dadda_cla8_fa0_xor1 = ((f_u_dadda_cla8_fa0_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_6_1 >> 0) & 0x01); - f_u_dadda_cla8_fa0_and1 = ((f_u_dadda_cla8_fa0_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_6_1 >> 0) & 0x01); - f_u_dadda_cla8_fa0_or0 = ((f_u_dadda_cla8_fa0_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa0_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cla8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cla8_ha1_xor0 = ((f_u_dadda_cla8_and_5_2 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_4_3 >> 0) & 0x01); - f_u_dadda_cla8_ha1_and0 = ((f_u_dadda_cla8_and_5_2 >> 0) & 0x01) & ((f_u_dadda_cla8_and_4_3 >> 0) & 0x01); - f_u_dadda_cla8_and_7_1 = ((a >> 7) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cla8_fa1_xor0 = ((f_u_dadda_cla8_ha1_and0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa0_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa1_and0 = ((f_u_dadda_cla8_ha1_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa0_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa1_xor1 = ((f_u_dadda_cla8_fa1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_7_1 >> 0) & 0x01); - f_u_dadda_cla8_fa1_and1 = ((f_u_dadda_cla8_fa1_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_7_1 >> 0) & 0x01); - f_u_dadda_cla8_fa1_or0 = ((f_u_dadda_cla8_fa1_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa1_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cla8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cla8_ha2_xor0 = ((f_u_dadda_cla8_and_6_2 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_5_3 >> 0) & 0x01); - f_u_dadda_cla8_ha2_and0 = ((f_u_dadda_cla8_and_6_2 >> 0) & 0x01) & ((f_u_dadda_cla8_and_5_3 >> 0) & 0x01); - f_u_dadda_cla8_and_7_2 = ((a >> 7) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cla8_fa2_xor0 = ((f_u_dadda_cla8_ha2_and0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa1_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa2_and0 = ((f_u_dadda_cla8_ha2_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa1_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa2_xor1 = ((f_u_dadda_cla8_fa2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_7_2 >> 0) & 0x01); - f_u_dadda_cla8_fa2_and1 = ((f_u_dadda_cla8_fa2_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_7_2 >> 0) & 0x01); - f_u_dadda_cla8_fa2_or0 = ((f_u_dadda_cla8_fa2_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa2_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cla8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cla8_ha3_xor0 = ((f_u_dadda_cla8_and_3_0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_2_1 >> 0) & 0x01); - f_u_dadda_cla8_ha3_and0 = ((f_u_dadda_cla8_and_3_0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_2_1 >> 0) & 0x01); - f_u_dadda_cla8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cla8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cla8_fa3_xor0 = ((f_u_dadda_cla8_ha3_and0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_4_0 >> 0) & 0x01); - f_u_dadda_cla8_fa3_and0 = ((f_u_dadda_cla8_ha3_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_4_0 >> 0) & 0x01); - f_u_dadda_cla8_fa3_xor1 = ((f_u_dadda_cla8_fa3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_3_1 >> 0) & 0x01); - f_u_dadda_cla8_fa3_and1 = ((f_u_dadda_cla8_fa3_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_3_1 >> 0) & 0x01); - f_u_dadda_cla8_fa3_or0 = ((f_u_dadda_cla8_fa3_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa3_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cla8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cla8_ha4_xor0 = ((f_u_dadda_cla8_and_2_2 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_1_3 >> 0) & 0x01); - f_u_dadda_cla8_ha4_and0 = ((f_u_dadda_cla8_and_2_2 >> 0) & 0x01) & ((f_u_dadda_cla8_and_1_3 >> 0) & 0x01); - f_u_dadda_cla8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cla8_fa4_xor0 = ((f_u_dadda_cla8_ha4_and0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa3_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa4_and0 = ((f_u_dadda_cla8_ha4_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa3_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa4_xor1 = ((f_u_dadda_cla8_fa4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_5_0 >> 0) & 0x01); - f_u_dadda_cla8_fa4_and1 = ((f_u_dadda_cla8_fa4_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_5_0 >> 0) & 0x01); - f_u_dadda_cla8_fa4_or0 = ((f_u_dadda_cla8_fa4_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa4_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cla8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cla8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cla8_fa5_xor0 = ((f_u_dadda_cla8_and_4_1 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_3_2 >> 0) & 0x01); - f_u_dadda_cla8_fa5_and0 = ((f_u_dadda_cla8_and_4_1 >> 0) & 0x01) & ((f_u_dadda_cla8_and_3_2 >> 0) & 0x01); - f_u_dadda_cla8_fa5_xor1 = ((f_u_dadda_cla8_fa5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_2_3 >> 0) & 0x01); - f_u_dadda_cla8_fa5_and1 = ((f_u_dadda_cla8_fa5_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_2_3 >> 0) & 0x01); - f_u_dadda_cla8_fa5_or0 = ((f_u_dadda_cla8_fa5_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa5_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cla8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cla8_ha5_xor0 = ((f_u_dadda_cla8_and_1_4 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_0_5 >> 0) & 0x01); - f_u_dadda_cla8_ha5_and0 = ((f_u_dadda_cla8_and_1_4 >> 0) & 0x01) & ((f_u_dadda_cla8_and_0_5 >> 0) & 0x01); - f_u_dadda_cla8_fa6_xor0 = ((f_u_dadda_cla8_ha5_and0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa5_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa6_and0 = ((f_u_dadda_cla8_ha5_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa5_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa6_xor1 = ((f_u_dadda_cla8_fa6_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa4_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa6_and1 = ((f_u_dadda_cla8_fa6_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa4_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa6_or0 = ((f_u_dadda_cla8_fa6_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa6_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cla8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cla8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cla8_fa7_xor0 = ((f_u_dadda_cla8_and_4_2 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_3_3 >> 0) & 0x01); - f_u_dadda_cla8_fa7_and0 = ((f_u_dadda_cla8_and_4_2 >> 0) & 0x01) & ((f_u_dadda_cla8_and_3_3 >> 0) & 0x01); - f_u_dadda_cla8_fa7_xor1 = ((f_u_dadda_cla8_fa7_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_2_4 >> 0) & 0x01); - f_u_dadda_cla8_fa7_and1 = ((f_u_dadda_cla8_fa7_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_2_4 >> 0) & 0x01); - f_u_dadda_cla8_fa7_or0 = ((f_u_dadda_cla8_fa7_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa7_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cla8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cla8_fa8_xor0 = ((f_u_dadda_cla8_and_1_5 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_0_6 >> 0) & 0x01); - f_u_dadda_cla8_fa8_and0 = ((f_u_dadda_cla8_and_1_5 >> 0) & 0x01) & ((f_u_dadda_cla8_and_0_6 >> 0) & 0x01); - f_u_dadda_cla8_fa8_xor1 = ((f_u_dadda_cla8_fa8_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_ha0_xor0 >> 0) & 0x01); - f_u_dadda_cla8_fa8_and1 = ((f_u_dadda_cla8_fa8_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_ha0_xor0 >> 0) & 0x01); - f_u_dadda_cla8_fa8_or0 = ((f_u_dadda_cla8_fa8_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa8_and1 >> 0) & 0x01); - f_u_dadda_cla8_fa9_xor0 = ((f_u_dadda_cla8_fa8_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa7_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa9_and0 = ((f_u_dadda_cla8_fa8_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa7_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa9_xor1 = ((f_u_dadda_cla8_fa9_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa6_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa9_and1 = ((f_u_dadda_cla8_fa9_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa6_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa9_or0 = ((f_u_dadda_cla8_fa9_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa9_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cla8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cla8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cla8_fa10_xor0 = ((f_u_dadda_cla8_and_3_4 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_2_5 >> 0) & 0x01); - f_u_dadda_cla8_fa10_and0 = ((f_u_dadda_cla8_and_3_4 >> 0) & 0x01) & ((f_u_dadda_cla8_and_2_5 >> 0) & 0x01); - f_u_dadda_cla8_fa10_xor1 = ((f_u_dadda_cla8_fa10_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_1_6 >> 0) & 0x01); - f_u_dadda_cla8_fa10_and1 = ((f_u_dadda_cla8_fa10_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_1_6 >> 0) & 0x01); - f_u_dadda_cla8_fa10_or0 = ((f_u_dadda_cla8_fa10_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa10_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_0_7 = ((a >> 0) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cla8_fa11_xor0 = ((f_u_dadda_cla8_and_0_7 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa0_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa11_and0 = ((f_u_dadda_cla8_and_0_7 >> 0) & 0x01) & ((f_u_dadda_cla8_fa0_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa11_xor1 = ((f_u_dadda_cla8_fa11_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_ha1_xor0 >> 0) & 0x01); - f_u_dadda_cla8_fa11_and1 = ((f_u_dadda_cla8_fa11_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_ha1_xor0 >> 0) & 0x01); - f_u_dadda_cla8_fa11_or0 = ((f_u_dadda_cla8_fa11_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa11_and1 >> 0) & 0x01); - f_u_dadda_cla8_fa12_xor0 = ((f_u_dadda_cla8_fa11_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa10_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa12_and0 = ((f_u_dadda_cla8_fa11_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa10_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa12_xor1 = ((f_u_dadda_cla8_fa12_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa9_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa12_and1 = ((f_u_dadda_cla8_fa12_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa9_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa12_or0 = ((f_u_dadda_cla8_fa12_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa12_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cla8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cla8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cla8_fa13_xor0 = ((f_u_dadda_cla8_and_4_4 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_3_5 >> 0) & 0x01); - f_u_dadda_cla8_fa13_and0 = ((f_u_dadda_cla8_and_4_4 >> 0) & 0x01) & ((f_u_dadda_cla8_and_3_5 >> 0) & 0x01); - f_u_dadda_cla8_fa13_xor1 = ((f_u_dadda_cla8_fa13_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_2_6 >> 0) & 0x01); - f_u_dadda_cla8_fa13_and1 = ((f_u_dadda_cla8_fa13_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_2_6 >> 0) & 0x01); - f_u_dadda_cla8_fa13_or0 = ((f_u_dadda_cla8_fa13_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa13_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_1_7 = ((a >> 1) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cla8_fa14_xor0 = ((f_u_dadda_cla8_and_1_7 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa1_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa14_and0 = ((f_u_dadda_cla8_and_1_7 >> 0) & 0x01) & ((f_u_dadda_cla8_fa1_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa14_xor1 = ((f_u_dadda_cla8_fa14_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_ha2_xor0 >> 0) & 0x01); - f_u_dadda_cla8_fa14_and1 = ((f_u_dadda_cla8_fa14_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_ha2_xor0 >> 0) & 0x01); - f_u_dadda_cla8_fa14_or0 = ((f_u_dadda_cla8_fa14_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa14_and1 >> 0) & 0x01); - f_u_dadda_cla8_fa15_xor0 = ((f_u_dadda_cla8_fa14_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa13_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa15_and0 = ((f_u_dadda_cla8_fa14_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa13_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa15_xor1 = ((f_u_dadda_cla8_fa15_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa12_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa15_and1 = ((f_u_dadda_cla8_fa15_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa12_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa15_or0 = ((f_u_dadda_cla8_fa15_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa15_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cla8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cla8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cla8_fa16_xor0 = ((f_u_dadda_cla8_and_6_3 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_5_4 >> 0) & 0x01); - f_u_dadda_cla8_fa16_and0 = ((f_u_dadda_cla8_and_6_3 >> 0) & 0x01) & ((f_u_dadda_cla8_and_5_4 >> 0) & 0x01); - f_u_dadda_cla8_fa16_xor1 = ((f_u_dadda_cla8_fa16_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_4_5 >> 0) & 0x01); - f_u_dadda_cla8_fa16_and1 = ((f_u_dadda_cla8_fa16_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_4_5 >> 0) & 0x01); - f_u_dadda_cla8_fa16_or0 = ((f_u_dadda_cla8_fa16_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa16_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cla8_and_2_7 = ((a >> 2) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cla8_fa17_xor0 = ((f_u_dadda_cla8_and_3_6 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_2_7 >> 0) & 0x01); - f_u_dadda_cla8_fa17_and0 = ((f_u_dadda_cla8_and_3_6 >> 0) & 0x01) & ((f_u_dadda_cla8_and_2_7 >> 0) & 0x01); - f_u_dadda_cla8_fa17_xor1 = ((f_u_dadda_cla8_fa17_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa2_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa17_and1 = ((f_u_dadda_cla8_fa17_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa2_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa17_or0 = ((f_u_dadda_cla8_fa17_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa17_and1 >> 0) & 0x01); - f_u_dadda_cla8_fa18_xor0 = ((f_u_dadda_cla8_fa17_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa16_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa18_and0 = ((f_u_dadda_cla8_fa17_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa16_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa18_xor1 = ((f_u_dadda_cla8_fa18_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa15_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa18_and1 = ((f_u_dadda_cla8_fa18_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa15_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa18_or0 = ((f_u_dadda_cla8_fa18_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa18_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_7_3 = ((a >> 7) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cla8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cla8_fa19_xor0 = ((f_u_dadda_cla8_fa2_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_7_3 >> 0) & 0x01); - f_u_dadda_cla8_fa19_and0 = ((f_u_dadda_cla8_fa2_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_7_3 >> 0) & 0x01); - f_u_dadda_cla8_fa19_xor1 = ((f_u_dadda_cla8_fa19_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_6_4 >> 0) & 0x01); - f_u_dadda_cla8_fa19_and1 = ((f_u_dadda_cla8_fa19_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_6_4 >> 0) & 0x01); - f_u_dadda_cla8_fa19_or0 = ((f_u_dadda_cla8_fa19_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa19_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cla8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cla8_and_3_7 = ((a >> 3) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cla8_fa20_xor0 = ((f_u_dadda_cla8_and_5_5 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_4_6 >> 0) & 0x01); - f_u_dadda_cla8_fa20_and0 = ((f_u_dadda_cla8_and_5_5 >> 0) & 0x01) & ((f_u_dadda_cla8_and_4_6 >> 0) & 0x01); - f_u_dadda_cla8_fa20_xor1 = ((f_u_dadda_cla8_fa20_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_3_7 >> 0) & 0x01); - f_u_dadda_cla8_fa20_and1 = ((f_u_dadda_cla8_fa20_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_3_7 >> 0) & 0x01); - f_u_dadda_cla8_fa20_or0 = ((f_u_dadda_cla8_fa20_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa20_and1 >> 0) & 0x01); - f_u_dadda_cla8_fa21_xor0 = ((f_u_dadda_cla8_fa20_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa19_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa21_and0 = ((f_u_dadda_cla8_fa20_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa19_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa21_xor1 = ((f_u_dadda_cla8_fa21_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa18_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa21_and1 = ((f_u_dadda_cla8_fa21_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa18_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa21_or0 = ((f_u_dadda_cla8_fa21_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa21_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_7_4 = ((a >> 7) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cla8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cla8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cla8_fa22_xor0 = ((f_u_dadda_cla8_and_7_4 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_6_5 >> 0) & 0x01); - f_u_dadda_cla8_fa22_and0 = ((f_u_dadda_cla8_and_7_4 >> 0) & 0x01) & ((f_u_dadda_cla8_and_6_5 >> 0) & 0x01); - f_u_dadda_cla8_fa22_xor1 = ((f_u_dadda_cla8_fa22_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_5_6 >> 0) & 0x01); - f_u_dadda_cla8_fa22_and1 = ((f_u_dadda_cla8_fa22_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_5_6 >> 0) & 0x01); - f_u_dadda_cla8_fa22_or0 = ((f_u_dadda_cla8_fa22_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa22_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_7_5 = ((a >> 7) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cla8_fa23_xor0 = ((f_u_dadda_cla8_fa22_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa21_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa23_and0 = ((f_u_dadda_cla8_fa22_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa21_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa23_xor1 = ((f_u_dadda_cla8_fa23_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_7_5 >> 0) & 0x01); - f_u_dadda_cla8_fa23_and1 = ((f_u_dadda_cla8_fa23_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_7_5 >> 0) & 0x01); - f_u_dadda_cla8_fa23_or0 = ((f_u_dadda_cla8_fa23_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa23_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cla8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cla8_ha6_xor0 = ((f_u_dadda_cla8_and_2_0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_1_1 >> 0) & 0x01); - f_u_dadda_cla8_ha6_and0 = ((f_u_dadda_cla8_and_2_0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_1_1 >> 0) & 0x01); - f_u_dadda_cla8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cla8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cla8_fa24_xor0 = ((f_u_dadda_cla8_ha6_and0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_1_2 >> 0) & 0x01); - f_u_dadda_cla8_fa24_and0 = ((f_u_dadda_cla8_ha6_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_1_2 >> 0) & 0x01); - f_u_dadda_cla8_fa24_xor1 = ((f_u_dadda_cla8_fa24_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_0_3 >> 0) & 0x01); - f_u_dadda_cla8_fa24_and1 = ((f_u_dadda_cla8_fa24_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_0_3 >> 0) & 0x01); - f_u_dadda_cla8_fa24_or0 = ((f_u_dadda_cla8_fa24_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa24_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cla8_fa25_xor0 = ((f_u_dadda_cla8_fa24_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_0_4 >> 0) & 0x01); - f_u_dadda_cla8_fa25_and0 = ((f_u_dadda_cla8_fa24_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_0_4 >> 0) & 0x01); - f_u_dadda_cla8_fa25_xor1 = ((f_u_dadda_cla8_fa25_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa3_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa25_and1 = ((f_u_dadda_cla8_fa25_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa3_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa25_or0 = ((f_u_dadda_cla8_fa25_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa25_and1 >> 0) & 0x01); - f_u_dadda_cla8_fa26_xor0 = ((f_u_dadda_cla8_fa25_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa4_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa26_and0 = ((f_u_dadda_cla8_fa25_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa4_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa26_xor1 = ((f_u_dadda_cla8_fa26_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa5_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa26_and1 = ((f_u_dadda_cla8_fa26_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa5_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa26_or0 = ((f_u_dadda_cla8_fa26_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa26_and1 >> 0) & 0x01); - f_u_dadda_cla8_fa27_xor0 = ((f_u_dadda_cla8_fa26_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa6_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa27_and0 = ((f_u_dadda_cla8_fa26_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa6_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa27_xor1 = ((f_u_dadda_cla8_fa27_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa7_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa27_and1 = ((f_u_dadda_cla8_fa27_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa7_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa27_or0 = ((f_u_dadda_cla8_fa27_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa27_and1 >> 0) & 0x01); - f_u_dadda_cla8_fa28_xor0 = ((f_u_dadda_cla8_fa27_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa9_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa28_and0 = ((f_u_dadda_cla8_fa27_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa9_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa28_xor1 = ((f_u_dadda_cla8_fa28_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa10_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa28_and1 = ((f_u_dadda_cla8_fa28_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa10_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa28_or0 = ((f_u_dadda_cla8_fa28_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa28_and1 >> 0) & 0x01); - f_u_dadda_cla8_fa29_xor0 = ((f_u_dadda_cla8_fa28_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa12_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa29_and0 = ((f_u_dadda_cla8_fa28_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa12_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa29_xor1 = ((f_u_dadda_cla8_fa29_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa13_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa29_and1 = ((f_u_dadda_cla8_fa29_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa13_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa29_or0 = ((f_u_dadda_cla8_fa29_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa29_and1 >> 0) & 0x01); - f_u_dadda_cla8_fa30_xor0 = ((f_u_dadda_cla8_fa29_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa15_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa30_and0 = ((f_u_dadda_cla8_fa29_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa15_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa30_xor1 = ((f_u_dadda_cla8_fa30_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa16_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa30_and1 = ((f_u_dadda_cla8_fa30_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa16_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa30_or0 = ((f_u_dadda_cla8_fa30_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa30_and1 >> 0) & 0x01); - f_u_dadda_cla8_fa31_xor0 = ((f_u_dadda_cla8_fa30_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa18_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa31_and0 = ((f_u_dadda_cla8_fa30_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa18_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa31_xor1 = ((f_u_dadda_cla8_fa31_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa19_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa31_and1 = ((f_u_dadda_cla8_fa31_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa19_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa31_or0 = ((f_u_dadda_cla8_fa31_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa31_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_4_7 = ((a >> 4) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cla8_fa32_xor0 = ((f_u_dadda_cla8_fa31_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_4_7 >> 0) & 0x01); - f_u_dadda_cla8_fa32_and0 = ((f_u_dadda_cla8_fa31_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_4_7 >> 0) & 0x01); - f_u_dadda_cla8_fa32_xor1 = ((f_u_dadda_cla8_fa32_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa21_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa32_and1 = ((f_u_dadda_cla8_fa32_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa21_xor1 >> 0) & 0x01); - f_u_dadda_cla8_fa32_or0 = ((f_u_dadda_cla8_fa32_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa32_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cla8_and_5_7 = ((a >> 5) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cla8_fa33_xor0 = ((f_u_dadda_cla8_fa32_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_6_6 >> 0) & 0x01); - f_u_dadda_cla8_fa33_and0 = ((f_u_dadda_cla8_fa32_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_6_6 >> 0) & 0x01); - f_u_dadda_cla8_fa33_xor1 = ((f_u_dadda_cla8_fa33_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_5_7 >> 0) & 0x01); - f_u_dadda_cla8_fa33_and1 = ((f_u_dadda_cla8_fa33_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_5_7 >> 0) & 0x01); - f_u_dadda_cla8_fa33_or0 = ((f_u_dadda_cla8_fa33_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa33_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_7_6 = ((a >> 7) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cla8_fa34_xor0 = ((f_u_dadda_cla8_fa33_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa23_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa34_and0 = ((f_u_dadda_cla8_fa33_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa23_or0 >> 0) & 0x01); - f_u_dadda_cla8_fa34_xor1 = ((f_u_dadda_cla8_fa34_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_7_6 >> 0) & 0x01); - f_u_dadda_cla8_fa34_and1 = ((f_u_dadda_cla8_fa34_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_7_6 >> 0) & 0x01); - f_u_dadda_cla8_fa34_or0 = ((f_u_dadda_cla8_fa34_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa34_and1 >> 0) & 0x01); - f_u_dadda_cla8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cla8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cla8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cla8_and_6_7 = ((a >> 6) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cla8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cla8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic0_or0 = ((f_u_dadda_cla8_and_1_0 >> 0) & 0x01) | ((f_u_dadda_cla8_and_0_1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic0_and0 = ((f_u_dadda_cla8_and_1_0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_0_1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic0_xor0 = ((f_u_dadda_cla8_and_1_0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_0_1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic1_or0 = ((f_u_dadda_cla8_and_0_2 >> 0) & 0x01) | ((f_u_dadda_cla8_ha6_xor0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic1_and0 = ((f_u_dadda_cla8_and_0_2 >> 0) & 0x01) & ((f_u_dadda_cla8_ha6_xor0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic1_xor0 = ((f_u_dadda_cla8_and_0_2 >> 0) & 0x01) ^ ((f_u_dadda_cla8_ha6_xor0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_xor1 = ((f_u_dadda_cla8_u_cla14_pg_logic1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and0 = ((f_u_dadda_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or0 = ((f_u_dadda_cla8_u_cla14_pg_logic1_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic2_or0 = ((f_u_dadda_cla8_ha3_xor0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa24_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic2_and0 = ((f_u_dadda_cla8_ha3_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa24_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic2_xor0 = ((f_u_dadda_cla8_ha3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa24_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_xor2 = ((f_u_dadda_cla8_u_cla14_pg_logic2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_u_cla14_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and1 = ((f_u_dadda_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic0_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and2 = ((f_u_dadda_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and3 = ((f_u_dadda_cla8_u_cla14_and2 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and4 = ((f_u_dadda_cla8_u_cla14_pg_logic1_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or1 = ((f_u_dadda_cla8_u_cla14_and3 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and4 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or2 = ((f_u_dadda_cla8_u_cla14_pg_logic2_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_or1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic3_or0 = ((f_u_dadda_cla8_ha4_xor0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa25_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic3_and0 = ((f_u_dadda_cla8_ha4_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa25_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic3_xor0 = ((f_u_dadda_cla8_ha4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa25_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_xor3 = ((f_u_dadda_cla8_u_cla14_pg_logic3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_u_cla14_or2 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and5 = ((f_u_dadda_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and6 = ((f_u_dadda_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and7 = ((f_u_dadda_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and8 = ((f_u_dadda_cla8_u_cla14_and6 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_and7 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and9 = ((f_u_dadda_cla8_u_cla14_pg_logic1_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and10 = ((f_u_dadda_cla8_u_cla14_and9 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and11 = ((f_u_dadda_cla8_u_cla14_pg_logic2_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or3 = ((f_u_dadda_cla8_u_cla14_and8 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and11 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or4 = ((f_u_dadda_cla8_u_cla14_and10 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_or3 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or5 = ((f_u_dadda_cla8_u_cla14_pg_logic3_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_or4 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic4_or0 = ((f_u_dadda_cla8_ha5_xor0 >> 0) & 0x01) | ((f_u_dadda_cla8_fa26_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic4_and0 = ((f_u_dadda_cla8_ha5_xor0 >> 0) & 0x01) & ((f_u_dadda_cla8_fa26_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic4_xor0 = ((f_u_dadda_cla8_ha5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa26_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_xor4 = ((f_u_dadda_cla8_u_cla14_pg_logic4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_u_cla14_or5 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and12 = ((f_u_dadda_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or6 = ((f_u_dadda_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and12 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic5_or0 = ((f_u_dadda_cla8_fa8_xor1 >> 0) & 0x01) | ((f_u_dadda_cla8_fa27_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic5_and0 = ((f_u_dadda_cla8_fa8_xor1 >> 0) & 0x01) & ((f_u_dadda_cla8_fa27_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic5_xor0 = ((f_u_dadda_cla8_fa8_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa27_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_xor5 = ((f_u_dadda_cla8_u_cla14_pg_logic5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_u_cla14_or6 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and13 = ((f_u_dadda_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and14 = ((f_u_dadda_cla8_u_cla14_and13 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and15 = ((f_u_dadda_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or7 = ((f_u_dadda_cla8_u_cla14_and14 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and15 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or8 = ((f_u_dadda_cla8_u_cla14_pg_logic5_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_or7 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic6_or0 = ((f_u_dadda_cla8_fa11_xor1 >> 0) & 0x01) | ((f_u_dadda_cla8_fa28_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic6_and0 = ((f_u_dadda_cla8_fa11_xor1 >> 0) & 0x01) & ((f_u_dadda_cla8_fa28_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic6_xor0 = ((f_u_dadda_cla8_fa11_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa28_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_xor6 = ((f_u_dadda_cla8_u_cla14_pg_logic6_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_u_cla14_or8 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and16 = ((f_u_dadda_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and17 = ((f_u_dadda_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and18 = ((f_u_dadda_cla8_u_cla14_and16 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_and17 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and19 = ((f_u_dadda_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and20 = ((f_u_dadda_cla8_u_cla14_and19 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and21 = ((f_u_dadda_cla8_u_cla14_pg_logic5_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or9 = ((f_u_dadda_cla8_u_cla14_and18 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and20 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or10 = ((f_u_dadda_cla8_u_cla14_or9 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and21 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or11 = ((f_u_dadda_cla8_u_cla14_pg_logic6_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_or10 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic7_or0 = ((f_u_dadda_cla8_fa14_xor1 >> 0) & 0x01) | ((f_u_dadda_cla8_fa29_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic7_and0 = ((f_u_dadda_cla8_fa14_xor1 >> 0) & 0x01) & ((f_u_dadda_cla8_fa29_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic7_xor0 = ((f_u_dadda_cla8_fa14_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa29_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_xor7 = ((f_u_dadda_cla8_u_cla14_pg_logic7_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_u_cla14_or11 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and22 = ((f_u_dadda_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and23 = ((f_u_dadda_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and24 = ((f_u_dadda_cla8_u_cla14_and22 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_and23 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and25 = ((f_u_dadda_cla8_u_cla14_and24 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and26 = ((f_u_dadda_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and27 = ((f_u_dadda_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and28 = ((f_u_dadda_cla8_u_cla14_and26 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_and27 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and29 = ((f_u_dadda_cla8_u_cla14_pg_logic5_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and30 = ((f_u_dadda_cla8_u_cla14_and29 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and31 = ((f_u_dadda_cla8_u_cla14_pg_logic6_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or12 = ((f_u_dadda_cla8_u_cla14_and25 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and30 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or13 = ((f_u_dadda_cla8_u_cla14_and28 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and31 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or14 = ((f_u_dadda_cla8_u_cla14_or12 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_or13 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or15 = ((f_u_dadda_cla8_u_cla14_pg_logic7_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_or14 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic8_or0 = ((f_u_dadda_cla8_fa17_xor1 >> 0) & 0x01) | ((f_u_dadda_cla8_fa30_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic8_and0 = ((f_u_dadda_cla8_fa17_xor1 >> 0) & 0x01) & ((f_u_dadda_cla8_fa30_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic8_xor0 = ((f_u_dadda_cla8_fa17_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa30_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_xor8 = ((f_u_dadda_cla8_u_cla14_pg_logic8_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_u_cla14_or15 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and32 = ((f_u_dadda_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or16 = ((f_u_dadda_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and32 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic9_or0 = ((f_u_dadda_cla8_fa20_xor1 >> 0) & 0x01) | ((f_u_dadda_cla8_fa31_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic9_and0 = ((f_u_dadda_cla8_fa20_xor1 >> 0) & 0x01) & ((f_u_dadda_cla8_fa31_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic9_xor0 = ((f_u_dadda_cla8_fa20_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa31_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_xor9 = ((f_u_dadda_cla8_u_cla14_pg_logic9_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_u_cla14_or16 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and33 = ((f_u_dadda_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and34 = ((f_u_dadda_cla8_u_cla14_and33 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and35 = ((f_u_dadda_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or17 = ((f_u_dadda_cla8_u_cla14_and34 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and35 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or18 = ((f_u_dadda_cla8_u_cla14_pg_logic9_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_or17 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic10_or0 = ((f_u_dadda_cla8_fa22_xor1 >> 0) & 0x01) | ((f_u_dadda_cla8_fa32_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic10_and0 = ((f_u_dadda_cla8_fa22_xor1 >> 0) & 0x01) & ((f_u_dadda_cla8_fa32_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic10_xor0 = ((f_u_dadda_cla8_fa22_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa32_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_xor10 = ((f_u_dadda_cla8_u_cla14_pg_logic10_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_u_cla14_or18 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and36 = ((f_u_dadda_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and37 = ((f_u_dadda_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and38 = ((f_u_dadda_cla8_u_cla14_and36 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_and37 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and39 = ((f_u_dadda_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and40 = ((f_u_dadda_cla8_u_cla14_and39 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and41 = ((f_u_dadda_cla8_u_cla14_pg_logic9_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or19 = ((f_u_dadda_cla8_u_cla14_and38 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and40 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or20 = ((f_u_dadda_cla8_u_cla14_or19 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and41 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or21 = ((f_u_dadda_cla8_u_cla14_pg_logic10_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_or20 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic11_or0 = ((f_u_dadda_cla8_fa23_xor1 >> 0) & 0x01) | ((f_u_dadda_cla8_fa33_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic11_and0 = ((f_u_dadda_cla8_fa23_xor1 >> 0) & 0x01) & ((f_u_dadda_cla8_fa33_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic11_xor0 = ((f_u_dadda_cla8_fa23_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa33_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_xor11 = ((f_u_dadda_cla8_u_cla14_pg_logic11_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_u_cla14_or21 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and42 = ((f_u_dadda_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and43 = ((f_u_dadda_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and44 = ((f_u_dadda_cla8_u_cla14_and42 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_and43 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and45 = ((f_u_dadda_cla8_u_cla14_and44 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and46 = ((f_u_dadda_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and47 = ((f_u_dadda_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and48 = ((f_u_dadda_cla8_u_cla14_and46 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_and47 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and49 = ((f_u_dadda_cla8_u_cla14_pg_logic9_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and50 = ((f_u_dadda_cla8_u_cla14_and49 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and51 = ((f_u_dadda_cla8_u_cla14_pg_logic10_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or22 = ((f_u_dadda_cla8_u_cla14_and45 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and50 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or23 = ((f_u_dadda_cla8_u_cla14_and48 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and51 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or24 = ((f_u_dadda_cla8_u_cla14_or22 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_or23 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or25 = ((f_u_dadda_cla8_u_cla14_pg_logic11_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_or24 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic12_or0 = ((f_u_dadda_cla8_and_6_7 >> 0) & 0x01) | ((f_u_dadda_cla8_fa34_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic12_and0 = ((f_u_dadda_cla8_and_6_7 >> 0) & 0x01) & ((f_u_dadda_cla8_fa34_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic12_xor0 = ((f_u_dadda_cla8_and_6_7 >> 0) & 0x01) ^ ((f_u_dadda_cla8_fa34_xor1 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_xor12 = ((f_u_dadda_cla8_u_cla14_pg_logic12_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_u_cla14_or25 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and52 = ((f_u_dadda_cla8_u_cla14_or25 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic12_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or26 = ((f_u_dadda_cla8_u_cla14_pg_logic12_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and52 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic13_or0 = ((f_u_dadda_cla8_fa34_or0 >> 0) & 0x01) | ((f_u_dadda_cla8_and_7_7 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic13_and0 = ((f_u_dadda_cla8_fa34_or0 >> 0) & 0x01) & ((f_u_dadda_cla8_and_7_7 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_pg_logic13_xor0 = ((f_u_dadda_cla8_fa34_or0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_and_7_7 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_xor13 = ((f_u_dadda_cla8_u_cla14_pg_logic13_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cla8_u_cla14_or26 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and53 = ((f_u_dadda_cla8_u_cla14_or25 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic13_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and54 = ((f_u_dadda_cla8_u_cla14_and53 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic12_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_and55 = ((f_u_dadda_cla8_u_cla14_pg_logic12_and0 >> 0) & 0x01) & ((f_u_dadda_cla8_u_cla14_pg_logic13_or0 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or27 = ((f_u_dadda_cla8_u_cla14_and54 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_and55 >> 0) & 0x01); - f_u_dadda_cla8_u_cla14_or28 = ((f_u_dadda_cla8_u_cla14_pg_logic13_and0 >> 0) & 0x01) | ((f_u_dadda_cla8_u_cla14_or27 >> 0) & 0x01); - - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_and_0_0 >> 0) & 0x01) << 0; - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_u_cla14_pg_logic0_xor0 >> 0) & 0x01) << 1; - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_u_cla14_xor1 >> 0) & 0x01) << 2; - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_u_cla14_xor2 >> 0) & 0x01) << 3; - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_u_cla14_xor3 >> 0) & 0x01) << 4; - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_u_cla14_xor4 >> 0) & 0x01) << 5; - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_u_cla14_xor5 >> 0) & 0x01) << 6; - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_u_cla14_xor6 >> 0) & 0x01) << 7; - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_u_cla14_xor7 >> 0) & 0x01) << 8; - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_u_cla14_xor8 >> 0) & 0x01) << 9; - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_u_cla14_xor9 >> 0) & 0x01) << 10; - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_u_cla14_xor10 >> 0) & 0x01) << 11; - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_u_cla14_xor11 >> 0) & 0x01) << 12; - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_u_cla14_xor12 >> 0) & 0x01) << 13; - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_u_cla14_xor13 >> 0) & 0x01) << 14; - f_u_dadda_cla8_out |= ((f_u_dadda_cla8_u_cla14_or28 >> 0) & 0x01) << 15; - return f_u_dadda_cla8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == f_u_dadda_cla8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cska4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cska4.c deleted file mode 100644 index 2e7958d..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cska4.c +++ /dev/null @@ -1,187 +0,0 @@ -#include -#include - -uint64_t f_u_dadda_cska4(uint64_t a, uint64_t b){ - uint8_t f_u_dadda_cska4_out = 0; - uint8_t f_u_dadda_cska4_and_3_0 = 0; - uint8_t f_u_dadda_cska4_and_2_1 = 0; - uint8_t f_u_dadda_cska4_ha0_xor0 = 0; - uint8_t f_u_dadda_cska4_ha0_and0 = 0; - uint8_t f_u_dadda_cska4_and_3_1 = 0; - uint8_t f_u_dadda_cska4_ha1_xor0 = 0; - uint8_t f_u_dadda_cska4_ha1_and0 = 0; - uint8_t f_u_dadda_cska4_and_2_0 = 0; - uint8_t f_u_dadda_cska4_and_1_1 = 0; - uint8_t f_u_dadda_cska4_ha2_xor0 = 0; - uint8_t f_u_dadda_cska4_ha2_and0 = 0; - uint8_t f_u_dadda_cska4_and_1_2 = 0; - uint8_t f_u_dadda_cska4_and_0_3 = 0; - uint8_t f_u_dadda_cska4_fa0_xor0 = 0; - uint8_t f_u_dadda_cska4_fa0_and0 = 0; - uint8_t f_u_dadda_cska4_fa0_xor1 = 0; - uint8_t f_u_dadda_cska4_fa0_and1 = 0; - uint8_t f_u_dadda_cska4_fa0_or0 = 0; - uint8_t f_u_dadda_cska4_and_2_2 = 0; - uint8_t f_u_dadda_cska4_and_1_3 = 0; - uint8_t f_u_dadda_cska4_fa1_xor0 = 0; - uint8_t f_u_dadda_cska4_fa1_and0 = 0; - uint8_t f_u_dadda_cska4_fa1_xor1 = 0; - uint8_t f_u_dadda_cska4_fa1_and1 = 0; - uint8_t f_u_dadda_cska4_fa1_or0 = 0; - uint8_t f_u_dadda_cska4_and_3_2 = 0; - uint8_t f_u_dadda_cska4_fa2_xor0 = 0; - uint8_t f_u_dadda_cska4_fa2_and0 = 0; - uint8_t f_u_dadda_cska4_fa2_xor1 = 0; - uint8_t f_u_dadda_cska4_fa2_and1 = 0; - uint8_t f_u_dadda_cska4_fa2_or0 = 0; - uint8_t f_u_dadda_cska4_and_0_0 = 0; - uint8_t f_u_dadda_cska4_and_1_0 = 0; - uint8_t f_u_dadda_cska4_and_0_2 = 0; - uint8_t f_u_dadda_cska4_and_2_3 = 0; - uint8_t f_u_dadda_cska4_and_0_1 = 0; - uint8_t f_u_dadda_cska4_and_3_3 = 0; - uint8_t f_u_dadda_cska4_u_cska6_xor0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_ha0_xor0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_ha0_and0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_xor1 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa0_xor0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa0_and0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa0_xor1 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa0_and1 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa0_or0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_xor2 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa1_xor0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa1_and0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa1_xor1 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa1_and1 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa1_or0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_xor3 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa2_xor0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa2_and0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa2_xor1 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa2_and1 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa2_or0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_and_propagate00 = 0; - uint8_t f_u_dadda_cska4_u_cska6_and_propagate01 = 0; - uint8_t f_u_dadda_cska4_u_cska6_and_propagate02 = 0; - uint8_t f_u_dadda_cska4_u_cska6_mux2to10_not0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_mux2to10_and1 = 0; - uint8_t f_u_dadda_cska4_u_cska6_xor4 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa3_xor0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa3_and0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa3_xor1 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa3_and1 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa3_or0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_xor5 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa4_xor0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa4_and0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa4_xor1 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa4_and1 = 0; - uint8_t f_u_dadda_cska4_u_cska6_fa4_or0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_and_propagate13 = 0; - uint8_t f_u_dadda_cska4_u_cska6_mux2to11_and0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_mux2to11_not0 = 0; - uint8_t f_u_dadda_cska4_u_cska6_mux2to11_and1 = 0; - uint8_t f_u_dadda_cska4_u_cska6_mux2to11_xor0 = 0; - - f_u_dadda_cska4_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cska4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cska4_ha0_xor0 = ((f_u_dadda_cska4_and_3_0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_and_2_1 >> 0) & 0x01); - f_u_dadda_cska4_ha0_and0 = ((f_u_dadda_cska4_and_3_0 >> 0) & 0x01) & ((f_u_dadda_cska4_and_2_1 >> 0) & 0x01); - f_u_dadda_cska4_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cska4_ha1_xor0 = ((f_u_dadda_cska4_ha0_and0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_and_3_1 >> 0) & 0x01); - f_u_dadda_cska4_ha1_and0 = ((f_u_dadda_cska4_ha0_and0 >> 0) & 0x01) & ((f_u_dadda_cska4_and_3_1 >> 0) & 0x01); - f_u_dadda_cska4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cska4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cska4_ha2_xor0 = ((f_u_dadda_cska4_and_2_0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_and_1_1 >> 0) & 0x01); - f_u_dadda_cska4_ha2_and0 = ((f_u_dadda_cska4_and_2_0 >> 0) & 0x01) & ((f_u_dadda_cska4_and_1_1 >> 0) & 0x01); - f_u_dadda_cska4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cska4_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cska4_fa0_xor0 = ((f_u_dadda_cska4_ha2_and0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_and_1_2 >> 0) & 0x01); - f_u_dadda_cska4_fa0_and0 = ((f_u_dadda_cska4_ha2_and0 >> 0) & 0x01) & ((f_u_dadda_cska4_and_1_2 >> 0) & 0x01); - f_u_dadda_cska4_fa0_xor1 = ((f_u_dadda_cska4_fa0_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_and_0_3 >> 0) & 0x01); - f_u_dadda_cska4_fa0_and1 = ((f_u_dadda_cska4_fa0_xor0 >> 0) & 0x01) & ((f_u_dadda_cska4_and_0_3 >> 0) & 0x01); - f_u_dadda_cska4_fa0_or0 = ((f_u_dadda_cska4_fa0_and0 >> 0) & 0x01) | ((f_u_dadda_cska4_fa0_and1 >> 0) & 0x01); - f_u_dadda_cska4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cska4_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cska4_fa1_xor0 = ((f_u_dadda_cska4_fa0_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_and_2_2 >> 0) & 0x01); - f_u_dadda_cska4_fa1_and0 = ((f_u_dadda_cska4_fa0_or0 >> 0) & 0x01) & ((f_u_dadda_cska4_and_2_2 >> 0) & 0x01); - f_u_dadda_cska4_fa1_xor1 = ((f_u_dadda_cska4_fa1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_and_1_3 >> 0) & 0x01); - f_u_dadda_cska4_fa1_and1 = ((f_u_dadda_cska4_fa1_xor0 >> 0) & 0x01) & ((f_u_dadda_cska4_and_1_3 >> 0) & 0x01); - f_u_dadda_cska4_fa1_or0 = ((f_u_dadda_cska4_fa1_and0 >> 0) & 0x01) | ((f_u_dadda_cska4_fa1_and1 >> 0) & 0x01); - f_u_dadda_cska4_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cska4_fa2_xor0 = ((f_u_dadda_cska4_fa1_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_ha1_and0 >> 0) & 0x01); - f_u_dadda_cska4_fa2_and0 = ((f_u_dadda_cska4_fa1_or0 >> 0) & 0x01) & ((f_u_dadda_cska4_ha1_and0 >> 0) & 0x01); - f_u_dadda_cska4_fa2_xor1 = ((f_u_dadda_cska4_fa2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_and_3_2 >> 0) & 0x01); - f_u_dadda_cska4_fa2_and1 = ((f_u_dadda_cska4_fa2_xor0 >> 0) & 0x01) & ((f_u_dadda_cska4_and_3_2 >> 0) & 0x01); - f_u_dadda_cska4_fa2_or0 = ((f_u_dadda_cska4_fa2_and0 >> 0) & 0x01) | ((f_u_dadda_cska4_fa2_and1 >> 0) & 0x01); - f_u_dadda_cska4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cska4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cska4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cska4_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cska4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cska4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cska4_u_cska6_xor0 = ((f_u_dadda_cska4_and_1_0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_and_0_1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_ha0_xor0 = ((f_u_dadda_cska4_and_1_0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_and_0_1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_ha0_and0 = ((f_u_dadda_cska4_and_1_0 >> 0) & 0x01) & ((f_u_dadda_cska4_and_0_1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_xor1 = ((f_u_dadda_cska4_and_0_2 >> 0) & 0x01) ^ ((f_u_dadda_cska4_ha2_xor0 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa0_xor0 = ((f_u_dadda_cska4_and_0_2 >> 0) & 0x01) ^ ((f_u_dadda_cska4_ha2_xor0 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa0_and0 = ((f_u_dadda_cska4_and_0_2 >> 0) & 0x01) & ((f_u_dadda_cska4_ha2_xor0 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa0_xor1 = ((f_u_dadda_cska4_u_cska6_fa0_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_u_cska6_ha0_and0 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa0_and1 = ((f_u_dadda_cska4_u_cska6_fa0_xor0 >> 0) & 0x01) & ((f_u_dadda_cska4_u_cska6_ha0_and0 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa0_or0 = ((f_u_dadda_cska4_u_cska6_fa0_and0 >> 0) & 0x01) | ((f_u_dadda_cska4_u_cska6_fa0_and1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_xor2 = ((f_u_dadda_cska4_ha0_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_fa0_xor1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa1_xor0 = ((f_u_dadda_cska4_ha0_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_fa0_xor1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa1_and0 = ((f_u_dadda_cska4_ha0_xor0 >> 0) & 0x01) & ((f_u_dadda_cska4_fa0_xor1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa1_xor1 = ((f_u_dadda_cska4_u_cska6_fa1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_u_cska6_fa0_or0 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa1_and1 = ((f_u_dadda_cska4_u_cska6_fa1_xor0 >> 0) & 0x01) & ((f_u_dadda_cska4_u_cska6_fa0_or0 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa1_or0 = ((f_u_dadda_cska4_u_cska6_fa1_and0 >> 0) & 0x01) | ((f_u_dadda_cska4_u_cska6_fa1_and1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_xor3 = ((f_u_dadda_cska4_ha1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_fa1_xor1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa2_xor0 = ((f_u_dadda_cska4_ha1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_fa1_xor1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa2_and0 = ((f_u_dadda_cska4_ha1_xor0 >> 0) & 0x01) & ((f_u_dadda_cska4_fa1_xor1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa2_xor1 = ((f_u_dadda_cska4_u_cska6_fa2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_u_cska6_fa1_or0 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa2_and1 = ((f_u_dadda_cska4_u_cska6_fa2_xor0 >> 0) & 0x01) & ((f_u_dadda_cska4_u_cska6_fa1_or0 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa2_or0 = ((f_u_dadda_cska4_u_cska6_fa2_and0 >> 0) & 0x01) | ((f_u_dadda_cska4_u_cska6_fa2_and1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_and_propagate00 = ((f_u_dadda_cska4_u_cska6_xor0 >> 0) & 0x01) & ((f_u_dadda_cska4_u_cska6_xor2 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_and_propagate01 = ((f_u_dadda_cska4_u_cska6_xor1 >> 0) & 0x01) & ((f_u_dadda_cska4_u_cska6_xor3 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_and_propagate02 = ((f_u_dadda_cska4_u_cska6_and_propagate00 >> 0) & 0x01) & ((f_u_dadda_cska4_u_cska6_and_propagate01 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_mux2to10_not0 = ~(((f_u_dadda_cska4_u_cska6_and_propagate02 >> 0) & 0x01)) & 0x01; - f_u_dadda_cska4_u_cska6_mux2to10_and1 = ((f_u_dadda_cska4_u_cska6_fa2_or0 >> 0) & 0x01) & ((f_u_dadda_cska4_u_cska6_mux2to10_not0 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_xor4 = ((f_u_dadda_cska4_and_2_3 >> 0) & 0x01) ^ ((f_u_dadda_cska4_fa2_xor1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa3_xor0 = ((f_u_dadda_cska4_and_2_3 >> 0) & 0x01) ^ ((f_u_dadda_cska4_fa2_xor1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa3_and0 = ((f_u_dadda_cska4_and_2_3 >> 0) & 0x01) & ((f_u_dadda_cska4_fa2_xor1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa3_xor1 = ((f_u_dadda_cska4_u_cska6_fa3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_u_cska6_mux2to10_and1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa3_and1 = ((f_u_dadda_cska4_u_cska6_fa3_xor0 >> 0) & 0x01) & ((f_u_dadda_cska4_u_cska6_mux2to10_and1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa3_or0 = ((f_u_dadda_cska4_u_cska6_fa3_and0 >> 0) & 0x01) | ((f_u_dadda_cska4_u_cska6_fa3_and1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_xor5 = ((f_u_dadda_cska4_fa2_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_and_3_3 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa4_xor0 = ((f_u_dadda_cska4_fa2_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_and_3_3 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa4_and0 = ((f_u_dadda_cska4_fa2_or0 >> 0) & 0x01) & ((f_u_dadda_cska4_and_3_3 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa4_xor1 = ((f_u_dadda_cska4_u_cska6_fa4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_u_cska6_fa3_or0 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa4_and1 = ((f_u_dadda_cska4_u_cska6_fa4_xor0 >> 0) & 0x01) & ((f_u_dadda_cska4_u_cska6_fa3_or0 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_fa4_or0 = ((f_u_dadda_cska4_u_cska6_fa4_and0 >> 0) & 0x01) | ((f_u_dadda_cska4_u_cska6_fa4_and1 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_and_propagate13 = ((f_u_dadda_cska4_u_cska6_xor4 >> 0) & 0x01) & ((f_u_dadda_cska4_u_cska6_xor5 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_mux2to11_and0 = ((f_u_dadda_cska4_u_cska6_mux2to10_and1 >> 0) & 0x01) & ((f_u_dadda_cska4_u_cska6_and_propagate13 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_mux2to11_not0 = ~(((f_u_dadda_cska4_u_cska6_and_propagate13 >> 0) & 0x01)) & 0x01; - f_u_dadda_cska4_u_cska6_mux2to11_and1 = ((f_u_dadda_cska4_u_cska6_fa4_or0 >> 0) & 0x01) & ((f_u_dadda_cska4_u_cska6_mux2to11_not0 >> 0) & 0x01); - f_u_dadda_cska4_u_cska6_mux2to11_xor0 = ((f_u_dadda_cska4_u_cska6_mux2to11_and0 >> 0) & 0x01) ^ ((f_u_dadda_cska4_u_cska6_mux2to11_and1 >> 0) & 0x01); - - f_u_dadda_cska4_out |= ((f_u_dadda_cska4_and_0_0 >> 0) & 0x01) << 0; - f_u_dadda_cska4_out |= ((f_u_dadda_cska4_u_cska6_ha0_xor0 >> 0) & 0x01) << 1; - f_u_dadda_cska4_out |= ((f_u_dadda_cska4_u_cska6_fa0_xor1 >> 0) & 0x01) << 2; - f_u_dadda_cska4_out |= ((f_u_dadda_cska4_u_cska6_fa1_xor1 >> 0) & 0x01) << 3; - f_u_dadda_cska4_out |= ((f_u_dadda_cska4_u_cska6_fa2_xor1 >> 0) & 0x01) << 4; - f_u_dadda_cska4_out |= ((f_u_dadda_cska4_u_cska6_fa3_xor1 >> 0) & 0x01) << 5; - f_u_dadda_cska4_out |= ((f_u_dadda_cska4_u_cska6_fa4_xor1 >> 0) & 0x01) << 6; - f_u_dadda_cska4_out |= ((f_u_dadda_cska4_u_cska6_mux2to11_xor0 >> 0) & 0x01) << 7; - return f_u_dadda_cska4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == f_u_dadda_cska4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cska8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cska8.c deleted file mode 100644 index 913e980..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_cska8.c +++ /dev/null @@ -1,751 +0,0 @@ -#include -#include - -uint64_t f_u_dadda_cska8(uint64_t a, uint64_t b){ - uint64_t f_u_dadda_cska8_out = 0; - uint8_t f_u_dadda_cska8_and_6_0 = 0; - uint8_t f_u_dadda_cska8_and_5_1 = 0; - uint8_t f_u_dadda_cska8_ha0_xor0 = 0; - uint8_t f_u_dadda_cska8_ha0_and0 = 0; - uint8_t f_u_dadda_cska8_and_7_0 = 0; - uint8_t f_u_dadda_cska8_and_6_1 = 0; - uint8_t f_u_dadda_cska8_fa0_xor0 = 0; - uint8_t f_u_dadda_cska8_fa0_and0 = 0; - uint8_t f_u_dadda_cska8_fa0_xor1 = 0; - uint8_t f_u_dadda_cska8_fa0_and1 = 0; - uint8_t f_u_dadda_cska8_fa0_or0 = 0; - uint8_t f_u_dadda_cska8_and_5_2 = 0; - uint8_t f_u_dadda_cska8_and_4_3 = 0; - uint8_t f_u_dadda_cska8_ha1_xor0 = 0; - uint8_t f_u_dadda_cska8_ha1_and0 = 0; - uint8_t f_u_dadda_cska8_and_7_1 = 0; - uint8_t f_u_dadda_cska8_fa1_xor0 = 0; - uint8_t f_u_dadda_cska8_fa1_and0 = 0; - uint8_t f_u_dadda_cska8_fa1_xor1 = 0; - uint8_t f_u_dadda_cska8_fa1_and1 = 0; - uint8_t f_u_dadda_cska8_fa1_or0 = 0; - uint8_t f_u_dadda_cska8_and_6_2 = 0; - uint8_t f_u_dadda_cska8_and_5_3 = 0; - uint8_t f_u_dadda_cska8_ha2_xor0 = 0; - uint8_t f_u_dadda_cska8_ha2_and0 = 0; - uint8_t f_u_dadda_cska8_and_7_2 = 0; - uint8_t f_u_dadda_cska8_fa2_xor0 = 0; - uint8_t f_u_dadda_cska8_fa2_and0 = 0; - uint8_t f_u_dadda_cska8_fa2_xor1 = 0; - uint8_t f_u_dadda_cska8_fa2_and1 = 0; - uint8_t f_u_dadda_cska8_fa2_or0 = 0; - uint8_t f_u_dadda_cska8_and_3_0 = 0; - uint8_t f_u_dadda_cska8_and_2_1 = 0; - uint8_t f_u_dadda_cska8_ha3_xor0 = 0; - uint8_t f_u_dadda_cska8_ha3_and0 = 0; - uint8_t f_u_dadda_cska8_and_4_0 = 0; - uint8_t f_u_dadda_cska8_and_3_1 = 0; - uint8_t f_u_dadda_cska8_fa3_xor0 = 0; - uint8_t f_u_dadda_cska8_fa3_and0 = 0; - uint8_t f_u_dadda_cska8_fa3_xor1 = 0; - uint8_t f_u_dadda_cska8_fa3_and1 = 0; - uint8_t f_u_dadda_cska8_fa3_or0 = 0; - uint8_t f_u_dadda_cska8_and_2_2 = 0; - uint8_t f_u_dadda_cska8_and_1_3 = 0; - uint8_t f_u_dadda_cska8_ha4_xor0 = 0; - uint8_t f_u_dadda_cska8_ha4_and0 = 0; - uint8_t f_u_dadda_cska8_and_5_0 = 0; - uint8_t f_u_dadda_cska8_fa4_xor0 = 0; - uint8_t f_u_dadda_cska8_fa4_and0 = 0; - uint8_t f_u_dadda_cska8_fa4_xor1 = 0; - uint8_t f_u_dadda_cska8_fa4_and1 = 0; - uint8_t f_u_dadda_cska8_fa4_or0 = 0; - uint8_t f_u_dadda_cska8_and_4_1 = 0; - uint8_t f_u_dadda_cska8_and_3_2 = 0; - uint8_t f_u_dadda_cska8_and_2_3 = 0; - uint8_t f_u_dadda_cska8_fa5_xor0 = 0; - uint8_t f_u_dadda_cska8_fa5_and0 = 0; - uint8_t f_u_dadda_cska8_fa5_xor1 = 0; - uint8_t f_u_dadda_cska8_fa5_and1 = 0; - uint8_t f_u_dadda_cska8_fa5_or0 = 0; - uint8_t f_u_dadda_cska8_and_1_4 = 0; - uint8_t f_u_dadda_cska8_and_0_5 = 0; - uint8_t f_u_dadda_cska8_ha5_xor0 = 0; - uint8_t f_u_dadda_cska8_ha5_and0 = 0; - uint8_t f_u_dadda_cska8_fa6_xor0 = 0; - uint8_t f_u_dadda_cska8_fa6_and0 = 0; - uint8_t f_u_dadda_cska8_fa6_xor1 = 0; - uint8_t f_u_dadda_cska8_fa6_and1 = 0; - uint8_t f_u_dadda_cska8_fa6_or0 = 0; - uint8_t f_u_dadda_cska8_and_4_2 = 0; - uint8_t f_u_dadda_cska8_and_3_3 = 0; - uint8_t f_u_dadda_cska8_and_2_4 = 0; - uint8_t f_u_dadda_cska8_fa7_xor0 = 0; - uint8_t f_u_dadda_cska8_fa7_and0 = 0; - uint8_t f_u_dadda_cska8_fa7_xor1 = 0; - uint8_t f_u_dadda_cska8_fa7_and1 = 0; - uint8_t f_u_dadda_cska8_fa7_or0 = 0; - uint8_t f_u_dadda_cska8_and_1_5 = 0; - uint8_t f_u_dadda_cska8_and_0_6 = 0; - uint8_t f_u_dadda_cska8_fa8_xor0 = 0; - uint8_t f_u_dadda_cska8_fa8_and0 = 0; - uint8_t f_u_dadda_cska8_fa8_xor1 = 0; - uint8_t f_u_dadda_cska8_fa8_and1 = 0; - uint8_t f_u_dadda_cska8_fa8_or0 = 0; - uint8_t f_u_dadda_cska8_fa9_xor0 = 0; - uint8_t f_u_dadda_cska8_fa9_and0 = 0; - uint8_t f_u_dadda_cska8_fa9_xor1 = 0; - uint8_t f_u_dadda_cska8_fa9_and1 = 0; - uint8_t f_u_dadda_cska8_fa9_or0 = 0; - uint8_t f_u_dadda_cska8_and_3_4 = 0; - uint8_t f_u_dadda_cska8_and_2_5 = 0; - uint8_t f_u_dadda_cska8_and_1_6 = 0; - uint8_t f_u_dadda_cska8_fa10_xor0 = 0; - uint8_t f_u_dadda_cska8_fa10_and0 = 0; - uint8_t f_u_dadda_cska8_fa10_xor1 = 0; - uint8_t f_u_dadda_cska8_fa10_and1 = 0; - uint8_t f_u_dadda_cska8_fa10_or0 = 0; - uint8_t f_u_dadda_cska8_and_0_7 = 0; - uint8_t f_u_dadda_cska8_fa11_xor0 = 0; - uint8_t f_u_dadda_cska8_fa11_and0 = 0; - uint8_t f_u_dadda_cska8_fa11_xor1 = 0; - uint8_t f_u_dadda_cska8_fa11_and1 = 0; - uint8_t f_u_dadda_cska8_fa11_or0 = 0; - uint8_t f_u_dadda_cska8_fa12_xor0 = 0; - uint8_t f_u_dadda_cska8_fa12_and0 = 0; - uint8_t f_u_dadda_cska8_fa12_xor1 = 0; - uint8_t f_u_dadda_cska8_fa12_and1 = 0; - uint8_t f_u_dadda_cska8_fa12_or0 = 0; - uint8_t f_u_dadda_cska8_and_4_4 = 0; - uint8_t f_u_dadda_cska8_and_3_5 = 0; - uint8_t f_u_dadda_cska8_and_2_6 = 0; - uint8_t f_u_dadda_cska8_fa13_xor0 = 0; - uint8_t f_u_dadda_cska8_fa13_and0 = 0; - uint8_t f_u_dadda_cska8_fa13_xor1 = 0; - uint8_t f_u_dadda_cska8_fa13_and1 = 0; - uint8_t f_u_dadda_cska8_fa13_or0 = 0; - uint8_t f_u_dadda_cska8_and_1_7 = 0; - uint8_t f_u_dadda_cska8_fa14_xor0 = 0; - uint8_t f_u_dadda_cska8_fa14_and0 = 0; - uint8_t f_u_dadda_cska8_fa14_xor1 = 0; - uint8_t f_u_dadda_cska8_fa14_and1 = 0; - uint8_t f_u_dadda_cska8_fa14_or0 = 0; - uint8_t f_u_dadda_cska8_fa15_xor0 = 0; - uint8_t f_u_dadda_cska8_fa15_and0 = 0; - uint8_t f_u_dadda_cska8_fa15_xor1 = 0; - uint8_t f_u_dadda_cska8_fa15_and1 = 0; - uint8_t f_u_dadda_cska8_fa15_or0 = 0; - uint8_t f_u_dadda_cska8_and_6_3 = 0; - uint8_t f_u_dadda_cska8_and_5_4 = 0; - uint8_t f_u_dadda_cska8_and_4_5 = 0; - uint8_t f_u_dadda_cska8_fa16_xor0 = 0; - uint8_t f_u_dadda_cska8_fa16_and0 = 0; - uint8_t f_u_dadda_cska8_fa16_xor1 = 0; - uint8_t f_u_dadda_cska8_fa16_and1 = 0; - uint8_t f_u_dadda_cska8_fa16_or0 = 0; - uint8_t f_u_dadda_cska8_and_3_6 = 0; - uint8_t f_u_dadda_cska8_and_2_7 = 0; - uint8_t f_u_dadda_cska8_fa17_xor0 = 0; - uint8_t f_u_dadda_cska8_fa17_and0 = 0; - uint8_t f_u_dadda_cska8_fa17_xor1 = 0; - uint8_t f_u_dadda_cska8_fa17_and1 = 0; - uint8_t f_u_dadda_cska8_fa17_or0 = 0; - uint8_t f_u_dadda_cska8_fa18_xor0 = 0; - uint8_t f_u_dadda_cska8_fa18_and0 = 0; - uint8_t f_u_dadda_cska8_fa18_xor1 = 0; - uint8_t f_u_dadda_cska8_fa18_and1 = 0; - uint8_t f_u_dadda_cska8_fa18_or0 = 0; - uint8_t f_u_dadda_cska8_and_7_3 = 0; - uint8_t f_u_dadda_cska8_and_6_4 = 0; - uint8_t f_u_dadda_cska8_fa19_xor0 = 0; - uint8_t f_u_dadda_cska8_fa19_and0 = 0; - uint8_t f_u_dadda_cska8_fa19_xor1 = 0; - uint8_t f_u_dadda_cska8_fa19_and1 = 0; - uint8_t f_u_dadda_cska8_fa19_or0 = 0; - uint8_t f_u_dadda_cska8_and_5_5 = 0; - uint8_t f_u_dadda_cska8_and_4_6 = 0; - uint8_t f_u_dadda_cska8_and_3_7 = 0; - uint8_t f_u_dadda_cska8_fa20_xor0 = 0; - uint8_t f_u_dadda_cska8_fa20_and0 = 0; - uint8_t f_u_dadda_cska8_fa20_xor1 = 0; - uint8_t f_u_dadda_cska8_fa20_and1 = 0; - uint8_t f_u_dadda_cska8_fa20_or0 = 0; - uint8_t f_u_dadda_cska8_fa21_xor0 = 0; - uint8_t f_u_dadda_cska8_fa21_and0 = 0; - uint8_t f_u_dadda_cska8_fa21_xor1 = 0; - uint8_t f_u_dadda_cska8_fa21_and1 = 0; - uint8_t f_u_dadda_cska8_fa21_or0 = 0; - uint8_t f_u_dadda_cska8_and_7_4 = 0; - uint8_t f_u_dadda_cska8_and_6_5 = 0; - uint8_t f_u_dadda_cska8_and_5_6 = 0; - uint8_t f_u_dadda_cska8_fa22_xor0 = 0; - uint8_t f_u_dadda_cska8_fa22_and0 = 0; - uint8_t f_u_dadda_cska8_fa22_xor1 = 0; - uint8_t f_u_dadda_cska8_fa22_and1 = 0; - uint8_t f_u_dadda_cska8_fa22_or0 = 0; - uint8_t f_u_dadda_cska8_and_7_5 = 0; - uint8_t f_u_dadda_cska8_fa23_xor0 = 0; - uint8_t f_u_dadda_cska8_fa23_and0 = 0; - uint8_t f_u_dadda_cska8_fa23_xor1 = 0; - uint8_t f_u_dadda_cska8_fa23_and1 = 0; - uint8_t f_u_dadda_cska8_fa23_or0 = 0; - uint8_t f_u_dadda_cska8_and_2_0 = 0; - uint8_t f_u_dadda_cska8_and_1_1 = 0; - uint8_t f_u_dadda_cska8_ha6_xor0 = 0; - uint8_t f_u_dadda_cska8_ha6_and0 = 0; - uint8_t f_u_dadda_cska8_and_1_2 = 0; - uint8_t f_u_dadda_cska8_and_0_3 = 0; - uint8_t f_u_dadda_cska8_fa24_xor0 = 0; - uint8_t f_u_dadda_cska8_fa24_and0 = 0; - uint8_t f_u_dadda_cska8_fa24_xor1 = 0; - uint8_t f_u_dadda_cska8_fa24_and1 = 0; - uint8_t f_u_dadda_cska8_fa24_or0 = 0; - uint8_t f_u_dadda_cska8_and_0_4 = 0; - uint8_t f_u_dadda_cska8_fa25_xor0 = 0; - uint8_t f_u_dadda_cska8_fa25_and0 = 0; - uint8_t f_u_dadda_cska8_fa25_xor1 = 0; - uint8_t f_u_dadda_cska8_fa25_and1 = 0; - uint8_t f_u_dadda_cska8_fa25_or0 = 0; - uint8_t f_u_dadda_cska8_fa26_xor0 = 0; - uint8_t f_u_dadda_cska8_fa26_and0 = 0; - uint8_t f_u_dadda_cska8_fa26_xor1 = 0; - uint8_t f_u_dadda_cska8_fa26_and1 = 0; - uint8_t f_u_dadda_cska8_fa26_or0 = 0; - uint8_t f_u_dadda_cska8_fa27_xor0 = 0; - uint8_t f_u_dadda_cska8_fa27_and0 = 0; - uint8_t f_u_dadda_cska8_fa27_xor1 = 0; - uint8_t f_u_dadda_cska8_fa27_and1 = 0; - uint8_t f_u_dadda_cska8_fa27_or0 = 0; - uint8_t f_u_dadda_cska8_fa28_xor0 = 0; - uint8_t f_u_dadda_cska8_fa28_and0 = 0; - uint8_t f_u_dadda_cska8_fa28_xor1 = 0; - uint8_t f_u_dadda_cska8_fa28_and1 = 0; - uint8_t f_u_dadda_cska8_fa28_or0 = 0; - uint8_t f_u_dadda_cska8_fa29_xor0 = 0; - uint8_t f_u_dadda_cska8_fa29_and0 = 0; - uint8_t f_u_dadda_cska8_fa29_xor1 = 0; - uint8_t f_u_dadda_cska8_fa29_and1 = 0; - uint8_t f_u_dadda_cska8_fa29_or0 = 0; - uint8_t f_u_dadda_cska8_fa30_xor0 = 0; - uint8_t f_u_dadda_cska8_fa30_and0 = 0; - uint8_t f_u_dadda_cska8_fa30_xor1 = 0; - uint8_t f_u_dadda_cska8_fa30_and1 = 0; - uint8_t f_u_dadda_cska8_fa30_or0 = 0; - uint8_t f_u_dadda_cska8_fa31_xor0 = 0; - uint8_t f_u_dadda_cska8_fa31_and0 = 0; - uint8_t f_u_dadda_cska8_fa31_xor1 = 0; - uint8_t f_u_dadda_cska8_fa31_and1 = 0; - uint8_t f_u_dadda_cska8_fa31_or0 = 0; - uint8_t f_u_dadda_cska8_and_4_7 = 0; - uint8_t f_u_dadda_cska8_fa32_xor0 = 0; - uint8_t f_u_dadda_cska8_fa32_and0 = 0; - uint8_t f_u_dadda_cska8_fa32_xor1 = 0; - uint8_t f_u_dadda_cska8_fa32_and1 = 0; - uint8_t f_u_dadda_cska8_fa32_or0 = 0; - uint8_t f_u_dadda_cska8_and_6_6 = 0; - uint8_t f_u_dadda_cska8_and_5_7 = 0; - uint8_t f_u_dadda_cska8_fa33_xor0 = 0; - uint8_t f_u_dadda_cska8_fa33_and0 = 0; - uint8_t f_u_dadda_cska8_fa33_xor1 = 0; - uint8_t f_u_dadda_cska8_fa33_and1 = 0; - uint8_t f_u_dadda_cska8_fa33_or0 = 0; - uint8_t f_u_dadda_cska8_and_7_6 = 0; - uint8_t f_u_dadda_cska8_fa34_xor0 = 0; - uint8_t f_u_dadda_cska8_fa34_and0 = 0; - uint8_t f_u_dadda_cska8_fa34_xor1 = 0; - uint8_t f_u_dadda_cska8_fa34_and1 = 0; - uint8_t f_u_dadda_cska8_fa34_or0 = 0; - uint8_t f_u_dadda_cska8_and_0_0 = 0; - uint8_t f_u_dadda_cska8_and_1_0 = 0; - uint8_t f_u_dadda_cska8_and_0_2 = 0; - uint8_t f_u_dadda_cska8_and_6_7 = 0; - uint8_t f_u_dadda_cska8_and_0_1 = 0; - uint8_t f_u_dadda_cska8_and_7_7 = 0; - uint8_t f_u_dadda_cska8_u_cska14_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_ha0_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_ha0_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_xor1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa0_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa0_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa0_xor1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa0_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa0_or0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_xor2 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa1_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa1_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa1_xor1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa1_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa1_or0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_xor3 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa2_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa2_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa2_xor1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa2_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa2_or0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_and_propagate00 = 0; - uint8_t f_u_dadda_cska8_u_cska14_and_propagate01 = 0; - uint8_t f_u_dadda_cska8_u_cska14_and_propagate02 = 0; - uint8_t f_u_dadda_cska8_u_cska14_mux2to10_not0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_mux2to10_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_xor4 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa3_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa3_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa3_xor1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa3_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa3_or0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_xor5 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa4_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa4_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa4_xor1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa4_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa4_or0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_xor6 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa5_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa5_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa5_xor1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa5_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa5_or0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_xor7 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa6_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa6_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa6_xor1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa6_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa6_or0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_and_propagate13 = 0; - uint8_t f_u_dadda_cska8_u_cska14_and_propagate14 = 0; - uint8_t f_u_dadda_cska8_u_cska14_and_propagate15 = 0; - uint8_t f_u_dadda_cska8_u_cska14_mux2to11_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_mux2to11_not0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_mux2to11_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_mux2to11_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_xor8 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa7_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa7_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa7_xor1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa7_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa7_or0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_xor9 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa8_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa8_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa8_xor1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa8_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa8_or0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_xor10 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa9_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa9_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa9_xor1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa9_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa9_or0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_xor11 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa10_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa10_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa10_xor1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa10_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa10_or0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_and_propagate26 = 0; - uint8_t f_u_dadda_cska8_u_cska14_and_propagate27 = 0; - uint8_t f_u_dadda_cska8_u_cska14_and_propagate28 = 0; - uint8_t f_u_dadda_cska8_u_cska14_mux2to12_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_mux2to12_not0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_mux2to12_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_mux2to12_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_xor12 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa11_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa11_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa11_xor1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa11_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa11_or0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_xor13 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa12_xor0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa12_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa12_xor1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa12_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_fa12_or0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_and_propagate39 = 0; - uint8_t f_u_dadda_cska8_u_cska14_mux2to13_and0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_mux2to13_not0 = 0; - uint8_t f_u_dadda_cska8_u_cska14_mux2to13_and1 = 0; - uint8_t f_u_dadda_cska8_u_cska14_mux2to13_xor0 = 0; - - f_u_dadda_cska8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cska8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cska8_ha0_xor0 = ((f_u_dadda_cska8_and_6_0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_5_1 >> 0) & 0x01); - f_u_dadda_cska8_ha0_and0 = ((f_u_dadda_cska8_and_6_0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_5_1 >> 0) & 0x01); - f_u_dadda_cska8_and_7_0 = ((a >> 7) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cska8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cska8_fa0_xor0 = ((f_u_dadda_cska8_ha0_and0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_7_0 >> 0) & 0x01); - f_u_dadda_cska8_fa0_and0 = ((f_u_dadda_cska8_ha0_and0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_7_0 >> 0) & 0x01); - f_u_dadda_cska8_fa0_xor1 = ((f_u_dadda_cska8_fa0_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_6_1 >> 0) & 0x01); - f_u_dadda_cska8_fa0_and1 = ((f_u_dadda_cska8_fa0_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_6_1 >> 0) & 0x01); - f_u_dadda_cska8_fa0_or0 = ((f_u_dadda_cska8_fa0_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa0_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cska8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cska8_ha1_xor0 = ((f_u_dadda_cska8_and_5_2 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_4_3 >> 0) & 0x01); - f_u_dadda_cska8_ha1_and0 = ((f_u_dadda_cska8_and_5_2 >> 0) & 0x01) & ((f_u_dadda_cska8_and_4_3 >> 0) & 0x01); - f_u_dadda_cska8_and_7_1 = ((a >> 7) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cska8_fa1_xor0 = ((f_u_dadda_cska8_ha1_and0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa0_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa1_and0 = ((f_u_dadda_cska8_ha1_and0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa0_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa1_xor1 = ((f_u_dadda_cska8_fa1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_7_1 >> 0) & 0x01); - f_u_dadda_cska8_fa1_and1 = ((f_u_dadda_cska8_fa1_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_7_1 >> 0) & 0x01); - f_u_dadda_cska8_fa1_or0 = ((f_u_dadda_cska8_fa1_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa1_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cska8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cska8_ha2_xor0 = ((f_u_dadda_cska8_and_6_2 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_5_3 >> 0) & 0x01); - f_u_dadda_cska8_ha2_and0 = ((f_u_dadda_cska8_and_6_2 >> 0) & 0x01) & ((f_u_dadda_cska8_and_5_3 >> 0) & 0x01); - f_u_dadda_cska8_and_7_2 = ((a >> 7) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cska8_fa2_xor0 = ((f_u_dadda_cska8_ha2_and0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa1_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa2_and0 = ((f_u_dadda_cska8_ha2_and0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa1_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa2_xor1 = ((f_u_dadda_cska8_fa2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_7_2 >> 0) & 0x01); - f_u_dadda_cska8_fa2_and1 = ((f_u_dadda_cska8_fa2_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_7_2 >> 0) & 0x01); - f_u_dadda_cska8_fa2_or0 = ((f_u_dadda_cska8_fa2_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa2_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cska8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cska8_ha3_xor0 = ((f_u_dadda_cska8_and_3_0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_2_1 >> 0) & 0x01); - f_u_dadda_cska8_ha3_and0 = ((f_u_dadda_cska8_and_3_0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_2_1 >> 0) & 0x01); - f_u_dadda_cska8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cska8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cska8_fa3_xor0 = ((f_u_dadda_cska8_ha3_and0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_4_0 >> 0) & 0x01); - f_u_dadda_cska8_fa3_and0 = ((f_u_dadda_cska8_ha3_and0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_4_0 >> 0) & 0x01); - f_u_dadda_cska8_fa3_xor1 = ((f_u_dadda_cska8_fa3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_3_1 >> 0) & 0x01); - f_u_dadda_cska8_fa3_and1 = ((f_u_dadda_cska8_fa3_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_3_1 >> 0) & 0x01); - f_u_dadda_cska8_fa3_or0 = ((f_u_dadda_cska8_fa3_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa3_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cska8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cska8_ha4_xor0 = ((f_u_dadda_cska8_and_2_2 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_1_3 >> 0) & 0x01); - f_u_dadda_cska8_ha4_and0 = ((f_u_dadda_cska8_and_2_2 >> 0) & 0x01) & ((f_u_dadda_cska8_and_1_3 >> 0) & 0x01); - f_u_dadda_cska8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cska8_fa4_xor0 = ((f_u_dadda_cska8_ha4_and0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa3_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa4_and0 = ((f_u_dadda_cska8_ha4_and0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa3_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa4_xor1 = ((f_u_dadda_cska8_fa4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_5_0 >> 0) & 0x01); - f_u_dadda_cska8_fa4_and1 = ((f_u_dadda_cska8_fa4_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_5_0 >> 0) & 0x01); - f_u_dadda_cska8_fa4_or0 = ((f_u_dadda_cska8_fa4_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa4_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cska8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cska8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cska8_fa5_xor0 = ((f_u_dadda_cska8_and_4_1 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_3_2 >> 0) & 0x01); - f_u_dadda_cska8_fa5_and0 = ((f_u_dadda_cska8_and_4_1 >> 0) & 0x01) & ((f_u_dadda_cska8_and_3_2 >> 0) & 0x01); - f_u_dadda_cska8_fa5_xor1 = ((f_u_dadda_cska8_fa5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_2_3 >> 0) & 0x01); - f_u_dadda_cska8_fa5_and1 = ((f_u_dadda_cska8_fa5_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_2_3 >> 0) & 0x01); - f_u_dadda_cska8_fa5_or0 = ((f_u_dadda_cska8_fa5_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa5_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cska8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cska8_ha5_xor0 = ((f_u_dadda_cska8_and_1_4 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_0_5 >> 0) & 0x01); - f_u_dadda_cska8_ha5_and0 = ((f_u_dadda_cska8_and_1_4 >> 0) & 0x01) & ((f_u_dadda_cska8_and_0_5 >> 0) & 0x01); - f_u_dadda_cska8_fa6_xor0 = ((f_u_dadda_cska8_ha5_and0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa5_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa6_and0 = ((f_u_dadda_cska8_ha5_and0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa5_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa6_xor1 = ((f_u_dadda_cska8_fa6_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa4_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa6_and1 = ((f_u_dadda_cska8_fa6_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa4_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa6_or0 = ((f_u_dadda_cska8_fa6_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa6_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cska8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cska8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cska8_fa7_xor0 = ((f_u_dadda_cska8_and_4_2 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_3_3 >> 0) & 0x01); - f_u_dadda_cska8_fa7_and0 = ((f_u_dadda_cska8_and_4_2 >> 0) & 0x01) & ((f_u_dadda_cska8_and_3_3 >> 0) & 0x01); - f_u_dadda_cska8_fa7_xor1 = ((f_u_dadda_cska8_fa7_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_2_4 >> 0) & 0x01); - f_u_dadda_cska8_fa7_and1 = ((f_u_dadda_cska8_fa7_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_2_4 >> 0) & 0x01); - f_u_dadda_cska8_fa7_or0 = ((f_u_dadda_cska8_fa7_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa7_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cska8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cska8_fa8_xor0 = ((f_u_dadda_cska8_and_1_5 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_0_6 >> 0) & 0x01); - f_u_dadda_cska8_fa8_and0 = ((f_u_dadda_cska8_and_1_5 >> 0) & 0x01) & ((f_u_dadda_cska8_and_0_6 >> 0) & 0x01); - f_u_dadda_cska8_fa8_xor1 = ((f_u_dadda_cska8_fa8_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_ha0_xor0 >> 0) & 0x01); - f_u_dadda_cska8_fa8_and1 = ((f_u_dadda_cska8_fa8_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_ha0_xor0 >> 0) & 0x01); - f_u_dadda_cska8_fa8_or0 = ((f_u_dadda_cska8_fa8_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa8_and1 >> 0) & 0x01); - f_u_dadda_cska8_fa9_xor0 = ((f_u_dadda_cska8_fa8_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa7_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa9_and0 = ((f_u_dadda_cska8_fa8_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa7_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa9_xor1 = ((f_u_dadda_cska8_fa9_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa6_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa9_and1 = ((f_u_dadda_cska8_fa9_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa6_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa9_or0 = ((f_u_dadda_cska8_fa9_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa9_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cska8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cska8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cska8_fa10_xor0 = ((f_u_dadda_cska8_and_3_4 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_2_5 >> 0) & 0x01); - f_u_dadda_cska8_fa10_and0 = ((f_u_dadda_cska8_and_3_4 >> 0) & 0x01) & ((f_u_dadda_cska8_and_2_5 >> 0) & 0x01); - f_u_dadda_cska8_fa10_xor1 = ((f_u_dadda_cska8_fa10_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_1_6 >> 0) & 0x01); - f_u_dadda_cska8_fa10_and1 = ((f_u_dadda_cska8_fa10_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_1_6 >> 0) & 0x01); - f_u_dadda_cska8_fa10_or0 = ((f_u_dadda_cska8_fa10_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa10_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_0_7 = ((a >> 0) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cska8_fa11_xor0 = ((f_u_dadda_cska8_and_0_7 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa0_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa11_and0 = ((f_u_dadda_cska8_and_0_7 >> 0) & 0x01) & ((f_u_dadda_cska8_fa0_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa11_xor1 = ((f_u_dadda_cska8_fa11_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_ha1_xor0 >> 0) & 0x01); - f_u_dadda_cska8_fa11_and1 = ((f_u_dadda_cska8_fa11_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_ha1_xor0 >> 0) & 0x01); - f_u_dadda_cska8_fa11_or0 = ((f_u_dadda_cska8_fa11_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa11_and1 >> 0) & 0x01); - f_u_dadda_cska8_fa12_xor0 = ((f_u_dadda_cska8_fa11_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa10_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa12_and0 = ((f_u_dadda_cska8_fa11_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa10_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa12_xor1 = ((f_u_dadda_cska8_fa12_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa9_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa12_and1 = ((f_u_dadda_cska8_fa12_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa9_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa12_or0 = ((f_u_dadda_cska8_fa12_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa12_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cska8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cska8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cska8_fa13_xor0 = ((f_u_dadda_cska8_and_4_4 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_3_5 >> 0) & 0x01); - f_u_dadda_cska8_fa13_and0 = ((f_u_dadda_cska8_and_4_4 >> 0) & 0x01) & ((f_u_dadda_cska8_and_3_5 >> 0) & 0x01); - f_u_dadda_cska8_fa13_xor1 = ((f_u_dadda_cska8_fa13_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_2_6 >> 0) & 0x01); - f_u_dadda_cska8_fa13_and1 = ((f_u_dadda_cska8_fa13_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_2_6 >> 0) & 0x01); - f_u_dadda_cska8_fa13_or0 = ((f_u_dadda_cska8_fa13_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa13_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_1_7 = ((a >> 1) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cska8_fa14_xor0 = ((f_u_dadda_cska8_and_1_7 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa1_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa14_and0 = ((f_u_dadda_cska8_and_1_7 >> 0) & 0x01) & ((f_u_dadda_cska8_fa1_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa14_xor1 = ((f_u_dadda_cska8_fa14_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_ha2_xor0 >> 0) & 0x01); - f_u_dadda_cska8_fa14_and1 = ((f_u_dadda_cska8_fa14_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_ha2_xor0 >> 0) & 0x01); - f_u_dadda_cska8_fa14_or0 = ((f_u_dadda_cska8_fa14_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa14_and1 >> 0) & 0x01); - f_u_dadda_cska8_fa15_xor0 = ((f_u_dadda_cska8_fa14_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa13_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa15_and0 = ((f_u_dadda_cska8_fa14_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa13_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa15_xor1 = ((f_u_dadda_cska8_fa15_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa12_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa15_and1 = ((f_u_dadda_cska8_fa15_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa12_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa15_or0 = ((f_u_dadda_cska8_fa15_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa15_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cska8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cska8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cska8_fa16_xor0 = ((f_u_dadda_cska8_and_6_3 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_5_4 >> 0) & 0x01); - f_u_dadda_cska8_fa16_and0 = ((f_u_dadda_cska8_and_6_3 >> 0) & 0x01) & ((f_u_dadda_cska8_and_5_4 >> 0) & 0x01); - f_u_dadda_cska8_fa16_xor1 = ((f_u_dadda_cska8_fa16_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_4_5 >> 0) & 0x01); - f_u_dadda_cska8_fa16_and1 = ((f_u_dadda_cska8_fa16_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_4_5 >> 0) & 0x01); - f_u_dadda_cska8_fa16_or0 = ((f_u_dadda_cska8_fa16_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa16_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cska8_and_2_7 = ((a >> 2) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cska8_fa17_xor0 = ((f_u_dadda_cska8_and_3_6 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_2_7 >> 0) & 0x01); - f_u_dadda_cska8_fa17_and0 = ((f_u_dadda_cska8_and_3_6 >> 0) & 0x01) & ((f_u_dadda_cska8_and_2_7 >> 0) & 0x01); - f_u_dadda_cska8_fa17_xor1 = ((f_u_dadda_cska8_fa17_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa2_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa17_and1 = ((f_u_dadda_cska8_fa17_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa2_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa17_or0 = ((f_u_dadda_cska8_fa17_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa17_and1 >> 0) & 0x01); - f_u_dadda_cska8_fa18_xor0 = ((f_u_dadda_cska8_fa17_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa16_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa18_and0 = ((f_u_dadda_cska8_fa17_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa16_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa18_xor1 = ((f_u_dadda_cska8_fa18_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa15_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa18_and1 = ((f_u_dadda_cska8_fa18_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa15_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa18_or0 = ((f_u_dadda_cska8_fa18_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa18_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_7_3 = ((a >> 7) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cska8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cska8_fa19_xor0 = ((f_u_dadda_cska8_fa2_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_7_3 >> 0) & 0x01); - f_u_dadda_cska8_fa19_and0 = ((f_u_dadda_cska8_fa2_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_7_3 >> 0) & 0x01); - f_u_dadda_cska8_fa19_xor1 = ((f_u_dadda_cska8_fa19_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_6_4 >> 0) & 0x01); - f_u_dadda_cska8_fa19_and1 = ((f_u_dadda_cska8_fa19_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_6_4 >> 0) & 0x01); - f_u_dadda_cska8_fa19_or0 = ((f_u_dadda_cska8_fa19_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa19_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cska8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cska8_and_3_7 = ((a >> 3) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cska8_fa20_xor0 = ((f_u_dadda_cska8_and_5_5 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_4_6 >> 0) & 0x01); - f_u_dadda_cska8_fa20_and0 = ((f_u_dadda_cska8_and_5_5 >> 0) & 0x01) & ((f_u_dadda_cska8_and_4_6 >> 0) & 0x01); - f_u_dadda_cska8_fa20_xor1 = ((f_u_dadda_cska8_fa20_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_3_7 >> 0) & 0x01); - f_u_dadda_cska8_fa20_and1 = ((f_u_dadda_cska8_fa20_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_3_7 >> 0) & 0x01); - f_u_dadda_cska8_fa20_or0 = ((f_u_dadda_cska8_fa20_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa20_and1 >> 0) & 0x01); - f_u_dadda_cska8_fa21_xor0 = ((f_u_dadda_cska8_fa20_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa19_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa21_and0 = ((f_u_dadda_cska8_fa20_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa19_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa21_xor1 = ((f_u_dadda_cska8_fa21_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa18_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa21_and1 = ((f_u_dadda_cska8_fa21_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa18_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa21_or0 = ((f_u_dadda_cska8_fa21_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa21_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_7_4 = ((a >> 7) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cska8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cska8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cska8_fa22_xor0 = ((f_u_dadda_cska8_and_7_4 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_6_5 >> 0) & 0x01); - f_u_dadda_cska8_fa22_and0 = ((f_u_dadda_cska8_and_7_4 >> 0) & 0x01) & ((f_u_dadda_cska8_and_6_5 >> 0) & 0x01); - f_u_dadda_cska8_fa22_xor1 = ((f_u_dadda_cska8_fa22_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_5_6 >> 0) & 0x01); - f_u_dadda_cska8_fa22_and1 = ((f_u_dadda_cska8_fa22_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_5_6 >> 0) & 0x01); - f_u_dadda_cska8_fa22_or0 = ((f_u_dadda_cska8_fa22_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa22_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_7_5 = ((a >> 7) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_cska8_fa23_xor0 = ((f_u_dadda_cska8_fa22_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa21_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa23_and0 = ((f_u_dadda_cska8_fa22_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa21_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa23_xor1 = ((f_u_dadda_cska8_fa23_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_7_5 >> 0) & 0x01); - f_u_dadda_cska8_fa23_and1 = ((f_u_dadda_cska8_fa23_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_7_5 >> 0) & 0x01); - f_u_dadda_cska8_fa23_or0 = ((f_u_dadda_cska8_fa23_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa23_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cska8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cska8_ha6_xor0 = ((f_u_dadda_cska8_and_2_0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_1_1 >> 0) & 0x01); - f_u_dadda_cska8_ha6_and0 = ((f_u_dadda_cska8_and_2_0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_1_1 >> 0) & 0x01); - f_u_dadda_cska8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cska8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_cska8_fa24_xor0 = ((f_u_dadda_cska8_ha6_and0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_1_2 >> 0) & 0x01); - f_u_dadda_cska8_fa24_and0 = ((f_u_dadda_cska8_ha6_and0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_1_2 >> 0) & 0x01); - f_u_dadda_cska8_fa24_xor1 = ((f_u_dadda_cska8_fa24_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_0_3 >> 0) & 0x01); - f_u_dadda_cska8_fa24_and1 = ((f_u_dadda_cska8_fa24_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_0_3 >> 0) & 0x01); - f_u_dadda_cska8_fa24_or0 = ((f_u_dadda_cska8_fa24_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa24_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_cska8_fa25_xor0 = ((f_u_dadda_cska8_fa24_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_0_4 >> 0) & 0x01); - f_u_dadda_cska8_fa25_and0 = ((f_u_dadda_cska8_fa24_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_0_4 >> 0) & 0x01); - f_u_dadda_cska8_fa25_xor1 = ((f_u_dadda_cska8_fa25_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa3_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa25_and1 = ((f_u_dadda_cska8_fa25_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa3_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa25_or0 = ((f_u_dadda_cska8_fa25_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa25_and1 >> 0) & 0x01); - f_u_dadda_cska8_fa26_xor0 = ((f_u_dadda_cska8_fa25_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa4_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa26_and0 = ((f_u_dadda_cska8_fa25_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa4_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa26_xor1 = ((f_u_dadda_cska8_fa26_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa5_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa26_and1 = ((f_u_dadda_cska8_fa26_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa5_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa26_or0 = ((f_u_dadda_cska8_fa26_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa26_and1 >> 0) & 0x01); - f_u_dadda_cska8_fa27_xor0 = ((f_u_dadda_cska8_fa26_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa6_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa27_and0 = ((f_u_dadda_cska8_fa26_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa6_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa27_xor1 = ((f_u_dadda_cska8_fa27_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa7_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa27_and1 = ((f_u_dadda_cska8_fa27_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa7_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa27_or0 = ((f_u_dadda_cska8_fa27_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa27_and1 >> 0) & 0x01); - f_u_dadda_cska8_fa28_xor0 = ((f_u_dadda_cska8_fa27_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa9_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa28_and0 = ((f_u_dadda_cska8_fa27_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa9_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa28_xor1 = ((f_u_dadda_cska8_fa28_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa10_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa28_and1 = ((f_u_dadda_cska8_fa28_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa10_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa28_or0 = ((f_u_dadda_cska8_fa28_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa28_and1 >> 0) & 0x01); - f_u_dadda_cska8_fa29_xor0 = ((f_u_dadda_cska8_fa28_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa12_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa29_and0 = ((f_u_dadda_cska8_fa28_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa12_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa29_xor1 = ((f_u_dadda_cska8_fa29_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa13_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa29_and1 = ((f_u_dadda_cska8_fa29_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa13_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa29_or0 = ((f_u_dadda_cska8_fa29_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa29_and1 >> 0) & 0x01); - f_u_dadda_cska8_fa30_xor0 = ((f_u_dadda_cska8_fa29_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa15_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa30_and0 = ((f_u_dadda_cska8_fa29_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa15_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa30_xor1 = ((f_u_dadda_cska8_fa30_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa16_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa30_and1 = ((f_u_dadda_cska8_fa30_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa16_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa30_or0 = ((f_u_dadda_cska8_fa30_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa30_and1 >> 0) & 0x01); - f_u_dadda_cska8_fa31_xor0 = ((f_u_dadda_cska8_fa30_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa18_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa31_and0 = ((f_u_dadda_cska8_fa30_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa18_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa31_xor1 = ((f_u_dadda_cska8_fa31_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa19_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa31_and1 = ((f_u_dadda_cska8_fa31_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa19_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa31_or0 = ((f_u_dadda_cska8_fa31_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa31_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_4_7 = ((a >> 4) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cska8_fa32_xor0 = ((f_u_dadda_cska8_fa31_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_4_7 >> 0) & 0x01); - f_u_dadda_cska8_fa32_and0 = ((f_u_dadda_cska8_fa31_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_4_7 >> 0) & 0x01); - f_u_dadda_cska8_fa32_xor1 = ((f_u_dadda_cska8_fa32_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa21_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa32_and1 = ((f_u_dadda_cska8_fa32_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa21_xor1 >> 0) & 0x01); - f_u_dadda_cska8_fa32_or0 = ((f_u_dadda_cska8_fa32_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa32_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cska8_and_5_7 = ((a >> 5) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cska8_fa33_xor0 = ((f_u_dadda_cska8_fa32_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_6_6 >> 0) & 0x01); - f_u_dadda_cska8_fa33_and0 = ((f_u_dadda_cska8_fa32_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_6_6 >> 0) & 0x01); - f_u_dadda_cska8_fa33_xor1 = ((f_u_dadda_cska8_fa33_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_5_7 >> 0) & 0x01); - f_u_dadda_cska8_fa33_and1 = ((f_u_dadda_cska8_fa33_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_5_7 >> 0) & 0x01); - f_u_dadda_cska8_fa33_or0 = ((f_u_dadda_cska8_fa33_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa33_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_7_6 = ((a >> 7) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_cska8_fa34_xor0 = ((f_u_dadda_cska8_fa33_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa23_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa34_and0 = ((f_u_dadda_cska8_fa33_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa23_or0 >> 0) & 0x01); - f_u_dadda_cska8_fa34_xor1 = ((f_u_dadda_cska8_fa34_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_7_6 >> 0) & 0x01); - f_u_dadda_cska8_fa34_and1 = ((f_u_dadda_cska8_fa34_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_7_6 >> 0) & 0x01); - f_u_dadda_cska8_fa34_or0 = ((f_u_dadda_cska8_fa34_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_fa34_and1 >> 0) & 0x01); - f_u_dadda_cska8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cska8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_cska8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_cska8_and_6_7 = ((a >> 6) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cska8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_cska8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_cska8_u_cska14_xor0 = ((f_u_dadda_cska8_and_1_0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_0_1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_ha0_xor0 = ((f_u_dadda_cska8_and_1_0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_0_1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_ha0_and0 = ((f_u_dadda_cska8_and_1_0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_0_1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_xor1 = ((f_u_dadda_cska8_and_0_2 >> 0) & 0x01) ^ ((f_u_dadda_cska8_ha6_xor0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa0_xor0 = ((f_u_dadda_cska8_and_0_2 >> 0) & 0x01) ^ ((f_u_dadda_cska8_ha6_xor0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa0_and0 = ((f_u_dadda_cska8_and_0_2 >> 0) & 0x01) & ((f_u_dadda_cska8_ha6_xor0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa0_xor1 = ((f_u_dadda_cska8_u_cska14_fa0_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_ha0_and0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa0_and1 = ((f_u_dadda_cska8_u_cska14_fa0_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_ha0_and0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa0_or0 = ((f_u_dadda_cska8_u_cska14_fa0_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_u_cska14_fa0_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_xor2 = ((f_u_dadda_cska8_ha3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa24_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa1_xor0 = ((f_u_dadda_cska8_ha3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa24_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa1_and0 = ((f_u_dadda_cska8_ha3_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa24_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa1_xor1 = ((f_u_dadda_cska8_u_cska14_fa1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_fa0_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa1_and1 = ((f_u_dadda_cska8_u_cska14_fa1_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_fa0_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa1_or0 = ((f_u_dadda_cska8_u_cska14_fa1_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_u_cska14_fa1_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_xor3 = ((f_u_dadda_cska8_ha4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa25_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa2_xor0 = ((f_u_dadda_cska8_ha4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa25_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa2_and0 = ((f_u_dadda_cska8_ha4_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa25_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa2_xor1 = ((f_u_dadda_cska8_u_cska14_fa2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_fa1_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa2_and1 = ((f_u_dadda_cska8_u_cska14_fa2_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_fa1_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa2_or0 = ((f_u_dadda_cska8_u_cska14_fa2_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_u_cska14_fa2_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_and_propagate00 = ((f_u_dadda_cska8_u_cska14_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_xor2 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_and_propagate01 = ((f_u_dadda_cska8_u_cska14_xor1 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_xor3 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_and_propagate02 = ((f_u_dadda_cska8_u_cska14_and_propagate00 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_and_propagate01 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_mux2to10_not0 = ~(((f_u_dadda_cska8_u_cska14_and_propagate02 >> 0) & 0x01)) & 0x01; - f_u_dadda_cska8_u_cska14_mux2to10_and1 = ((f_u_dadda_cska8_u_cska14_fa2_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_mux2to10_not0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_xor4 = ((f_u_dadda_cska8_ha5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa26_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa3_xor0 = ((f_u_dadda_cska8_ha5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa26_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa3_and0 = ((f_u_dadda_cska8_ha5_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_fa26_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa3_xor1 = ((f_u_dadda_cska8_u_cska14_fa3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_mux2to10_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa3_and1 = ((f_u_dadda_cska8_u_cska14_fa3_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_mux2to10_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa3_or0 = ((f_u_dadda_cska8_u_cska14_fa3_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_u_cska14_fa3_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_xor5 = ((f_u_dadda_cska8_fa8_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa27_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa4_xor0 = ((f_u_dadda_cska8_fa8_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa27_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa4_and0 = ((f_u_dadda_cska8_fa8_xor1 >> 0) & 0x01) & ((f_u_dadda_cska8_fa27_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa4_xor1 = ((f_u_dadda_cska8_u_cska14_fa4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_fa3_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa4_and1 = ((f_u_dadda_cska8_u_cska14_fa4_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_fa3_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa4_or0 = ((f_u_dadda_cska8_u_cska14_fa4_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_u_cska14_fa4_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_xor6 = ((f_u_dadda_cska8_fa11_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa28_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa5_xor0 = ((f_u_dadda_cska8_fa11_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa28_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa5_and0 = ((f_u_dadda_cska8_fa11_xor1 >> 0) & 0x01) & ((f_u_dadda_cska8_fa28_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa5_xor1 = ((f_u_dadda_cska8_u_cska14_fa5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_fa4_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa5_and1 = ((f_u_dadda_cska8_u_cska14_fa5_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_fa4_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa5_or0 = ((f_u_dadda_cska8_u_cska14_fa5_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_u_cska14_fa5_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_xor7 = ((f_u_dadda_cska8_fa14_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa29_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa6_xor0 = ((f_u_dadda_cska8_fa14_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa29_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa6_and0 = ((f_u_dadda_cska8_fa14_xor1 >> 0) & 0x01) & ((f_u_dadda_cska8_fa29_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa6_xor1 = ((f_u_dadda_cska8_u_cska14_fa6_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_fa5_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa6_and1 = ((f_u_dadda_cska8_u_cska14_fa6_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_fa5_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa6_or0 = ((f_u_dadda_cska8_u_cska14_fa6_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_u_cska14_fa6_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_and_propagate13 = ((f_u_dadda_cska8_u_cska14_xor4 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_xor6 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_and_propagate14 = ((f_u_dadda_cska8_u_cska14_xor5 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_xor7 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_and_propagate15 = ((f_u_dadda_cska8_u_cska14_and_propagate13 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_and_propagate14 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_mux2to11_and0 = ((f_u_dadda_cska8_u_cska14_mux2to10_and1 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_and_propagate15 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_mux2to11_not0 = ~(((f_u_dadda_cska8_u_cska14_and_propagate15 >> 0) & 0x01)) & 0x01; - f_u_dadda_cska8_u_cska14_mux2to11_and1 = ((f_u_dadda_cska8_u_cska14_fa6_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_mux2to11_not0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_mux2to11_xor0 = ((f_u_dadda_cska8_u_cska14_mux2to11_and0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_mux2to11_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_xor8 = ((f_u_dadda_cska8_fa17_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa30_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa7_xor0 = ((f_u_dadda_cska8_fa17_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa30_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa7_and0 = ((f_u_dadda_cska8_fa17_xor1 >> 0) & 0x01) & ((f_u_dadda_cska8_fa30_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa7_xor1 = ((f_u_dadda_cska8_u_cska14_fa7_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_mux2to11_xor0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa7_and1 = ((f_u_dadda_cska8_u_cska14_fa7_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_mux2to11_xor0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa7_or0 = ((f_u_dadda_cska8_u_cska14_fa7_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_u_cska14_fa7_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_xor9 = ((f_u_dadda_cska8_fa20_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa31_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa8_xor0 = ((f_u_dadda_cska8_fa20_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa31_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa8_and0 = ((f_u_dadda_cska8_fa20_xor1 >> 0) & 0x01) & ((f_u_dadda_cska8_fa31_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa8_xor1 = ((f_u_dadda_cska8_u_cska14_fa8_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_fa7_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa8_and1 = ((f_u_dadda_cska8_u_cska14_fa8_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_fa7_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa8_or0 = ((f_u_dadda_cska8_u_cska14_fa8_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_u_cska14_fa8_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_xor10 = ((f_u_dadda_cska8_fa22_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa32_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa9_xor0 = ((f_u_dadda_cska8_fa22_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa32_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa9_and0 = ((f_u_dadda_cska8_fa22_xor1 >> 0) & 0x01) & ((f_u_dadda_cska8_fa32_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa9_xor1 = ((f_u_dadda_cska8_u_cska14_fa9_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_fa8_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa9_and1 = ((f_u_dadda_cska8_u_cska14_fa9_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_fa8_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa9_or0 = ((f_u_dadda_cska8_u_cska14_fa9_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_u_cska14_fa9_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_xor11 = ((f_u_dadda_cska8_fa23_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa33_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa10_xor0 = ((f_u_dadda_cska8_fa23_xor1 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa33_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa10_and0 = ((f_u_dadda_cska8_fa23_xor1 >> 0) & 0x01) & ((f_u_dadda_cska8_fa33_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa10_xor1 = ((f_u_dadda_cska8_u_cska14_fa10_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_fa9_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa10_and1 = ((f_u_dadda_cska8_u_cska14_fa10_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_fa9_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa10_or0 = ((f_u_dadda_cska8_u_cska14_fa10_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_u_cska14_fa10_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_and_propagate26 = ((f_u_dadda_cska8_u_cska14_xor8 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_xor10 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_and_propagate27 = ((f_u_dadda_cska8_u_cska14_xor9 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_xor11 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_and_propagate28 = ((f_u_dadda_cska8_u_cska14_and_propagate26 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_and_propagate27 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_mux2to12_and0 = ((f_u_dadda_cska8_u_cska14_mux2to11_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_and_propagate28 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_mux2to12_not0 = ~(((f_u_dadda_cska8_u_cska14_and_propagate28 >> 0) & 0x01)) & 0x01; - f_u_dadda_cska8_u_cska14_mux2to12_and1 = ((f_u_dadda_cska8_u_cska14_fa10_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_mux2to12_not0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_mux2to12_xor0 = ((f_u_dadda_cska8_u_cska14_mux2to12_and0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_mux2to12_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_xor12 = ((f_u_dadda_cska8_and_6_7 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa34_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa11_xor0 = ((f_u_dadda_cska8_and_6_7 >> 0) & 0x01) ^ ((f_u_dadda_cska8_fa34_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa11_and0 = ((f_u_dadda_cska8_and_6_7 >> 0) & 0x01) & ((f_u_dadda_cska8_fa34_xor1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa11_xor1 = ((f_u_dadda_cska8_u_cska14_fa11_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_mux2to12_xor0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa11_and1 = ((f_u_dadda_cska8_u_cska14_fa11_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_mux2to12_xor0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa11_or0 = ((f_u_dadda_cska8_u_cska14_fa11_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_u_cska14_fa11_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_xor13 = ((f_u_dadda_cska8_fa34_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_7_7 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa12_xor0 = ((f_u_dadda_cska8_fa34_or0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_and_7_7 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa12_and0 = ((f_u_dadda_cska8_fa34_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_and_7_7 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa12_xor1 = ((f_u_dadda_cska8_u_cska14_fa12_xor0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_fa11_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa12_and1 = ((f_u_dadda_cska8_u_cska14_fa12_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_fa11_or0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_fa12_or0 = ((f_u_dadda_cska8_u_cska14_fa12_and0 >> 0) & 0x01) | ((f_u_dadda_cska8_u_cska14_fa12_and1 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_and_propagate39 = ((f_u_dadda_cska8_u_cska14_xor12 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_xor13 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_mux2to13_and0 = ((f_u_dadda_cska8_u_cska14_mux2to12_xor0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_and_propagate39 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_mux2to13_not0 = ~(((f_u_dadda_cska8_u_cska14_and_propagate39 >> 0) & 0x01)) & 0x01; - f_u_dadda_cska8_u_cska14_mux2to13_and1 = ((f_u_dadda_cska8_u_cska14_fa12_or0 >> 0) & 0x01) & ((f_u_dadda_cska8_u_cska14_mux2to13_not0 >> 0) & 0x01); - f_u_dadda_cska8_u_cska14_mux2to13_xor0 = ((f_u_dadda_cska8_u_cska14_mux2to13_and0 >> 0) & 0x01) ^ ((f_u_dadda_cska8_u_cska14_mux2to13_and1 >> 0) & 0x01); - - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_and_0_0 >> 0) & 0x01) << 0; - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_u_cska14_ha0_xor0 >> 0) & 0x01) << 1; - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_u_cska14_fa0_xor1 >> 0) & 0x01) << 2; - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_u_cska14_fa1_xor1 >> 0) & 0x01) << 3; - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_u_cska14_fa2_xor1 >> 0) & 0x01) << 4; - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_u_cska14_fa3_xor1 >> 0) & 0x01) << 5; - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_u_cska14_fa4_xor1 >> 0) & 0x01) << 6; - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_u_cska14_fa5_xor1 >> 0) & 0x01) << 7; - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_u_cska14_fa6_xor1 >> 0) & 0x01) << 8; - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_u_cska14_fa7_xor1 >> 0) & 0x01) << 9; - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_u_cska14_fa8_xor1 >> 0) & 0x01) << 10; - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_u_cska14_fa9_xor1 >> 0) & 0x01) << 11; - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_u_cska14_fa10_xor1 >> 0) & 0x01) << 12; - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_u_cska14_fa11_xor1 >> 0) & 0x01) << 13; - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_u_cska14_fa12_xor1 >> 0) & 0x01) << 14; - f_u_dadda_cska8_out |= ((f_u_dadda_cska8_u_cska14_mux2to13_xor0 >> 0) & 0x01) << 15; - return f_u_dadda_cska8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == f_u_dadda_cska8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_pg_rca4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_pg_rca4.c deleted file mode 100644 index f896ea2..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_pg_rca4.c +++ /dev/null @@ -1,155 +0,0 @@ -#include -#include - -uint64_t f_u_dadda_pg_rca4(uint64_t a, uint64_t b){ - uint8_t f_u_dadda_pg_rca4_out = 0; - uint8_t f_u_dadda_pg_rca4_and_3_0 = 0; - uint8_t f_u_dadda_pg_rca4_and_2_1 = 0; - uint8_t f_u_dadda_pg_rca4_ha0_xor0 = 0; - uint8_t f_u_dadda_pg_rca4_ha0_and0 = 0; - uint8_t f_u_dadda_pg_rca4_and_3_1 = 0; - uint8_t f_u_dadda_pg_rca4_ha1_xor0 = 0; - uint8_t f_u_dadda_pg_rca4_ha1_and0 = 0; - uint8_t f_u_dadda_pg_rca4_and_2_0 = 0; - uint8_t f_u_dadda_pg_rca4_and_1_1 = 0; - uint8_t f_u_dadda_pg_rca4_ha2_xor0 = 0; - uint8_t f_u_dadda_pg_rca4_ha2_and0 = 0; - uint8_t f_u_dadda_pg_rca4_and_1_2 = 0; - uint8_t f_u_dadda_pg_rca4_and_0_3 = 0; - uint8_t f_u_dadda_pg_rca4_fa0_xor0 = 0; - uint8_t f_u_dadda_pg_rca4_fa0_and0 = 0; - uint8_t f_u_dadda_pg_rca4_fa0_xor1 = 0; - uint8_t f_u_dadda_pg_rca4_fa0_and1 = 0; - uint8_t f_u_dadda_pg_rca4_fa0_or0 = 0; - uint8_t f_u_dadda_pg_rca4_and_2_2 = 0; - uint8_t f_u_dadda_pg_rca4_and_1_3 = 0; - uint8_t f_u_dadda_pg_rca4_fa1_xor0 = 0; - uint8_t f_u_dadda_pg_rca4_fa1_and0 = 0; - uint8_t f_u_dadda_pg_rca4_fa1_xor1 = 0; - uint8_t f_u_dadda_pg_rca4_fa1_and1 = 0; - uint8_t f_u_dadda_pg_rca4_fa1_or0 = 0; - uint8_t f_u_dadda_pg_rca4_and_3_2 = 0; - uint8_t f_u_dadda_pg_rca4_fa2_xor0 = 0; - uint8_t f_u_dadda_pg_rca4_fa2_and0 = 0; - uint8_t f_u_dadda_pg_rca4_fa2_xor1 = 0; - uint8_t f_u_dadda_pg_rca4_fa2_and1 = 0; - uint8_t f_u_dadda_pg_rca4_fa2_or0 = 0; - uint8_t f_u_dadda_pg_rca4_and_0_0 = 0; - uint8_t f_u_dadda_pg_rca4_and_1_0 = 0; - uint8_t f_u_dadda_pg_rca4_and_0_2 = 0; - uint8_t f_u_dadda_pg_rca4_and_2_3 = 0; - uint8_t f_u_dadda_pg_rca4_and_0_1 = 0; - uint8_t f_u_dadda_pg_rca4_and_3_3 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa0_xor0 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa0_and0 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa1_xor0 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa1_and0 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa1_xor1 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_and1 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_or1 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa2_xor0 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa2_and0 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa2_xor1 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_and2 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_or2 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa3_xor0 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa3_and0 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa3_xor1 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_and3 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_or3 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa4_xor0 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa4_and0 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa4_xor1 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_and4 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_or4 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa5_xor0 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa5_and0 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_pg_fa5_xor1 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_and5 = 0; - uint8_t f_u_dadda_pg_rca4_u_pg_rca6_or5 = 0; - - f_u_dadda_pg_rca4_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_pg_rca4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_pg_rca4_ha0_xor0 = ((f_u_dadda_pg_rca4_and_3_0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_and_2_1 >> 0) & 0x01); - f_u_dadda_pg_rca4_ha0_and0 = ((f_u_dadda_pg_rca4_and_3_0 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_and_2_1 >> 0) & 0x01); - f_u_dadda_pg_rca4_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_pg_rca4_ha1_xor0 = ((f_u_dadda_pg_rca4_ha0_and0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_and_3_1 >> 0) & 0x01); - f_u_dadda_pg_rca4_ha1_and0 = ((f_u_dadda_pg_rca4_ha0_and0 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_and_3_1 >> 0) & 0x01); - f_u_dadda_pg_rca4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_pg_rca4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_pg_rca4_ha2_xor0 = ((f_u_dadda_pg_rca4_and_2_0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_and_1_1 >> 0) & 0x01); - f_u_dadda_pg_rca4_ha2_and0 = ((f_u_dadda_pg_rca4_and_2_0 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_and_1_1 >> 0) & 0x01); - f_u_dadda_pg_rca4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_pg_rca4_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_pg_rca4_fa0_xor0 = ((f_u_dadda_pg_rca4_ha2_and0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_and_1_2 >> 0) & 0x01); - f_u_dadda_pg_rca4_fa0_and0 = ((f_u_dadda_pg_rca4_ha2_and0 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_and_1_2 >> 0) & 0x01); - f_u_dadda_pg_rca4_fa0_xor1 = ((f_u_dadda_pg_rca4_fa0_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_and_0_3 >> 0) & 0x01); - f_u_dadda_pg_rca4_fa0_and1 = ((f_u_dadda_pg_rca4_fa0_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_and_0_3 >> 0) & 0x01); - f_u_dadda_pg_rca4_fa0_or0 = ((f_u_dadda_pg_rca4_fa0_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca4_fa0_and1 >> 0) & 0x01); - f_u_dadda_pg_rca4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_pg_rca4_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_pg_rca4_fa1_xor0 = ((f_u_dadda_pg_rca4_fa0_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_and_2_2 >> 0) & 0x01); - f_u_dadda_pg_rca4_fa1_and0 = ((f_u_dadda_pg_rca4_fa0_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_and_2_2 >> 0) & 0x01); - f_u_dadda_pg_rca4_fa1_xor1 = ((f_u_dadda_pg_rca4_fa1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_and_1_3 >> 0) & 0x01); - f_u_dadda_pg_rca4_fa1_and1 = ((f_u_dadda_pg_rca4_fa1_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_and_1_3 >> 0) & 0x01); - f_u_dadda_pg_rca4_fa1_or0 = ((f_u_dadda_pg_rca4_fa1_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca4_fa1_and1 >> 0) & 0x01); - f_u_dadda_pg_rca4_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_pg_rca4_fa2_xor0 = ((f_u_dadda_pg_rca4_fa1_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_ha1_and0 >> 0) & 0x01); - f_u_dadda_pg_rca4_fa2_and0 = ((f_u_dadda_pg_rca4_fa1_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_ha1_and0 >> 0) & 0x01); - f_u_dadda_pg_rca4_fa2_xor1 = ((f_u_dadda_pg_rca4_fa2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_and_3_2 >> 0) & 0x01); - f_u_dadda_pg_rca4_fa2_and1 = ((f_u_dadda_pg_rca4_fa2_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_and_3_2 >> 0) & 0x01); - f_u_dadda_pg_rca4_fa2_or0 = ((f_u_dadda_pg_rca4_fa2_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca4_fa2_and1 >> 0) & 0x01); - f_u_dadda_pg_rca4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_pg_rca4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_pg_rca4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_pg_rca4_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_pg_rca4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_pg_rca4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa0_xor0 = ((f_u_dadda_pg_rca4_and_1_0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_and_0_1 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa0_and0 = ((f_u_dadda_pg_rca4_and_1_0 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_and_0_1 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa1_xor0 = ((f_u_dadda_pg_rca4_and_0_2 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_ha2_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa1_and0 = ((f_u_dadda_pg_rca4_and_0_2 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_ha2_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa1_xor1 = ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa0_and0 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_and1 = ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa0_and0 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa1_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_or1 = ((f_u_dadda_pg_rca4_u_pg_rca6_and1 >> 0) & 0x01) | ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa1_and0 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa2_xor0 = ((f_u_dadda_pg_rca4_ha0_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_fa0_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa2_and0 = ((f_u_dadda_pg_rca4_ha0_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_fa0_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa2_xor1 = ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_u_pg_rca6_or1 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_and2 = ((f_u_dadda_pg_rca4_u_pg_rca6_or1 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa2_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_or2 = ((f_u_dadda_pg_rca4_u_pg_rca6_and2 >> 0) & 0x01) | ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa2_and0 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa3_xor0 = ((f_u_dadda_pg_rca4_ha1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_fa1_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa3_and0 = ((f_u_dadda_pg_rca4_ha1_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_fa1_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa3_xor1 = ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_u_pg_rca6_or2 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_and3 = ((f_u_dadda_pg_rca4_u_pg_rca6_or2 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa3_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_or3 = ((f_u_dadda_pg_rca4_u_pg_rca6_and3 >> 0) & 0x01) | ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa3_and0 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa4_xor0 = ((f_u_dadda_pg_rca4_and_2_3 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_fa2_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa4_and0 = ((f_u_dadda_pg_rca4_and_2_3 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_fa2_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa4_xor1 = ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_u_pg_rca6_or3 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_and4 = ((f_u_dadda_pg_rca4_u_pg_rca6_or3 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa4_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_or4 = ((f_u_dadda_pg_rca4_u_pg_rca6_and4 >> 0) & 0x01) | ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa4_and0 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa5_xor0 = ((f_u_dadda_pg_rca4_fa2_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_and_3_3 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa5_and0 = ((f_u_dadda_pg_rca4_fa2_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_and_3_3 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_pg_fa5_xor1 = ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca4_u_pg_rca6_or4 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_and5 = ((f_u_dadda_pg_rca4_u_pg_rca6_or4 >> 0) & 0x01) & ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa5_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca4_u_pg_rca6_or5 = ((f_u_dadda_pg_rca4_u_pg_rca6_and5 >> 0) & 0x01) | ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa5_and0 >> 0) & 0x01); - - f_u_dadda_pg_rca4_out |= ((f_u_dadda_pg_rca4_and_0_0 >> 0) & 0x01) << 0; - f_u_dadda_pg_rca4_out |= ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa0_xor0 >> 0) & 0x01) << 1; - f_u_dadda_pg_rca4_out |= ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa1_xor1 >> 0) & 0x01) << 2; - f_u_dadda_pg_rca4_out |= ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa2_xor1 >> 0) & 0x01) << 3; - f_u_dadda_pg_rca4_out |= ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa3_xor1 >> 0) & 0x01) << 4; - f_u_dadda_pg_rca4_out |= ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa4_xor1 >> 0) & 0x01) << 5; - f_u_dadda_pg_rca4_out |= ((f_u_dadda_pg_rca4_u_pg_rca6_pg_fa5_xor1 >> 0) & 0x01) << 6; - f_u_dadda_pg_rca4_out |= ((f_u_dadda_pg_rca4_u_pg_rca6_or5 >> 0) & 0x01) << 7; - return f_u_dadda_pg_rca4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == f_u_dadda_pg_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_pg_rca8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_pg_rca8.c deleted file mode 100644 index 8ff691d..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_pg_rca8.c +++ /dev/null @@ -1,675 +0,0 @@ -#include -#include - -uint64_t f_u_dadda_pg_rca8(uint64_t a, uint64_t b){ - uint64_t f_u_dadda_pg_rca8_out = 0; - uint8_t f_u_dadda_pg_rca8_and_6_0 = 0; - uint8_t f_u_dadda_pg_rca8_and_5_1 = 0; - uint8_t f_u_dadda_pg_rca8_ha0_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_ha0_and0 = 0; - uint8_t f_u_dadda_pg_rca8_and_7_0 = 0; - uint8_t f_u_dadda_pg_rca8_and_6_1 = 0; - uint8_t f_u_dadda_pg_rca8_fa0_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa0_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa0_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa0_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa0_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_5_2 = 0; - uint8_t f_u_dadda_pg_rca8_and_4_3 = 0; - uint8_t f_u_dadda_pg_rca8_ha1_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_ha1_and0 = 0; - uint8_t f_u_dadda_pg_rca8_and_7_1 = 0; - uint8_t f_u_dadda_pg_rca8_fa1_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa1_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa1_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa1_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa1_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_6_2 = 0; - uint8_t f_u_dadda_pg_rca8_and_5_3 = 0; - uint8_t f_u_dadda_pg_rca8_ha2_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_ha2_and0 = 0; - uint8_t f_u_dadda_pg_rca8_and_7_2 = 0; - uint8_t f_u_dadda_pg_rca8_fa2_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa2_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa2_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa2_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa2_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_3_0 = 0; - uint8_t f_u_dadda_pg_rca8_and_2_1 = 0; - uint8_t f_u_dadda_pg_rca8_ha3_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_ha3_and0 = 0; - uint8_t f_u_dadda_pg_rca8_and_4_0 = 0; - uint8_t f_u_dadda_pg_rca8_and_3_1 = 0; - uint8_t f_u_dadda_pg_rca8_fa3_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa3_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa3_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa3_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa3_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_2_2 = 0; - uint8_t f_u_dadda_pg_rca8_and_1_3 = 0; - uint8_t f_u_dadda_pg_rca8_ha4_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_ha4_and0 = 0; - uint8_t f_u_dadda_pg_rca8_and_5_0 = 0; - uint8_t f_u_dadda_pg_rca8_fa4_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa4_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa4_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa4_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa4_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_4_1 = 0; - uint8_t f_u_dadda_pg_rca8_and_3_2 = 0; - uint8_t f_u_dadda_pg_rca8_and_2_3 = 0; - uint8_t f_u_dadda_pg_rca8_fa5_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa5_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa5_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa5_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa5_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_1_4 = 0; - uint8_t f_u_dadda_pg_rca8_and_0_5 = 0; - uint8_t f_u_dadda_pg_rca8_ha5_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_ha5_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa6_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa6_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa6_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa6_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa6_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_4_2 = 0; - uint8_t f_u_dadda_pg_rca8_and_3_3 = 0; - uint8_t f_u_dadda_pg_rca8_and_2_4 = 0; - uint8_t f_u_dadda_pg_rca8_fa7_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa7_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa7_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa7_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa7_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_1_5 = 0; - uint8_t f_u_dadda_pg_rca8_and_0_6 = 0; - uint8_t f_u_dadda_pg_rca8_fa8_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa8_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa8_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa8_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa8_or0 = 0; - uint8_t f_u_dadda_pg_rca8_fa9_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa9_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa9_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa9_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa9_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_3_4 = 0; - uint8_t f_u_dadda_pg_rca8_and_2_5 = 0; - uint8_t f_u_dadda_pg_rca8_and_1_6 = 0; - uint8_t f_u_dadda_pg_rca8_fa10_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa10_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa10_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa10_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa10_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_0_7 = 0; - uint8_t f_u_dadda_pg_rca8_fa11_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa11_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa11_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa11_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa11_or0 = 0; - uint8_t f_u_dadda_pg_rca8_fa12_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa12_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa12_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa12_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa12_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_4_4 = 0; - uint8_t f_u_dadda_pg_rca8_and_3_5 = 0; - uint8_t f_u_dadda_pg_rca8_and_2_6 = 0; - uint8_t f_u_dadda_pg_rca8_fa13_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa13_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa13_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa13_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa13_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_1_7 = 0; - uint8_t f_u_dadda_pg_rca8_fa14_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa14_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa14_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa14_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa14_or0 = 0; - uint8_t f_u_dadda_pg_rca8_fa15_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa15_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa15_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa15_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa15_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_6_3 = 0; - uint8_t f_u_dadda_pg_rca8_and_5_4 = 0; - uint8_t f_u_dadda_pg_rca8_and_4_5 = 0; - uint8_t f_u_dadda_pg_rca8_fa16_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa16_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa16_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa16_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa16_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_3_6 = 0; - uint8_t f_u_dadda_pg_rca8_and_2_7 = 0; - uint8_t f_u_dadda_pg_rca8_fa17_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa17_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa17_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa17_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa17_or0 = 0; - uint8_t f_u_dadda_pg_rca8_fa18_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa18_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa18_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa18_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa18_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_7_3 = 0; - uint8_t f_u_dadda_pg_rca8_and_6_4 = 0; - uint8_t f_u_dadda_pg_rca8_fa19_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa19_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa19_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa19_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa19_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_5_5 = 0; - uint8_t f_u_dadda_pg_rca8_and_4_6 = 0; - uint8_t f_u_dadda_pg_rca8_and_3_7 = 0; - uint8_t f_u_dadda_pg_rca8_fa20_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa20_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa20_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa20_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa20_or0 = 0; - uint8_t f_u_dadda_pg_rca8_fa21_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa21_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa21_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa21_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa21_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_7_4 = 0; - uint8_t f_u_dadda_pg_rca8_and_6_5 = 0; - uint8_t f_u_dadda_pg_rca8_and_5_6 = 0; - uint8_t f_u_dadda_pg_rca8_fa22_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa22_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa22_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa22_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa22_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_7_5 = 0; - uint8_t f_u_dadda_pg_rca8_fa23_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa23_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa23_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa23_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa23_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_2_0 = 0; - uint8_t f_u_dadda_pg_rca8_and_1_1 = 0; - uint8_t f_u_dadda_pg_rca8_ha6_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_ha6_and0 = 0; - uint8_t f_u_dadda_pg_rca8_and_1_2 = 0; - uint8_t f_u_dadda_pg_rca8_and_0_3 = 0; - uint8_t f_u_dadda_pg_rca8_fa24_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa24_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa24_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa24_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa24_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_0_4 = 0; - uint8_t f_u_dadda_pg_rca8_fa25_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa25_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa25_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa25_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa25_or0 = 0; - uint8_t f_u_dadda_pg_rca8_fa26_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa26_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa26_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa26_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa26_or0 = 0; - uint8_t f_u_dadda_pg_rca8_fa27_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa27_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa27_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa27_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa27_or0 = 0; - uint8_t f_u_dadda_pg_rca8_fa28_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa28_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa28_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa28_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa28_or0 = 0; - uint8_t f_u_dadda_pg_rca8_fa29_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa29_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa29_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa29_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa29_or0 = 0; - uint8_t f_u_dadda_pg_rca8_fa30_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa30_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa30_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa30_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa30_or0 = 0; - uint8_t f_u_dadda_pg_rca8_fa31_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa31_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa31_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa31_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa31_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_4_7 = 0; - uint8_t f_u_dadda_pg_rca8_fa32_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa32_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa32_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa32_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa32_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_6_6 = 0; - uint8_t f_u_dadda_pg_rca8_and_5_7 = 0; - uint8_t f_u_dadda_pg_rca8_fa33_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa33_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa33_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa33_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa33_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_7_6 = 0; - uint8_t f_u_dadda_pg_rca8_fa34_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_fa34_and0 = 0; - uint8_t f_u_dadda_pg_rca8_fa34_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_fa34_and1 = 0; - uint8_t f_u_dadda_pg_rca8_fa34_or0 = 0; - uint8_t f_u_dadda_pg_rca8_and_0_0 = 0; - uint8_t f_u_dadda_pg_rca8_and_1_0 = 0; - uint8_t f_u_dadda_pg_rca8_and_0_2 = 0; - uint8_t f_u_dadda_pg_rca8_and_6_7 = 0; - uint8_t f_u_dadda_pg_rca8_and_0_1 = 0; - uint8_t f_u_dadda_pg_rca8_and_7_7 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa0_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa0_and0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa1_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa1_and0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa1_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_and1 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_or1 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa2_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa2_and0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa2_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_and2 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_or2 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa3_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa3_and0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa3_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_and3 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_or3 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa4_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa4_and0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa4_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_and4 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_or4 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa5_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa5_and0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa5_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_and5 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_or5 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa6_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa6_and0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa6_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_and6 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_or6 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa7_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa7_and0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa7_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_and7 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_or7 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa8_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa8_and0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa8_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_and8 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_or8 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa9_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa9_and0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa9_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_and9 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_or9 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa10_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa10_and0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa10_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_and10 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_or10 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa11_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa11_and0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa11_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_and11 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_or11 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa12_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa12_and0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa12_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_and12 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_or12 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa13_xor0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa13_and0 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_pg_fa13_xor1 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_and13 = 0; - uint8_t f_u_dadda_pg_rca8_u_pg_rca14_or13 = 0; - - f_u_dadda_pg_rca8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_pg_rca8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_pg_rca8_ha0_xor0 = ((f_u_dadda_pg_rca8_and_6_0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_5_1 >> 0) & 0x01); - f_u_dadda_pg_rca8_ha0_and0 = ((f_u_dadda_pg_rca8_and_6_0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_5_1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_7_0 = ((a >> 7) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_pg_rca8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_pg_rca8_fa0_xor0 = ((f_u_dadda_pg_rca8_ha0_and0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_7_0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa0_and0 = ((f_u_dadda_pg_rca8_ha0_and0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_7_0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa0_xor1 = ((f_u_dadda_pg_rca8_fa0_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_6_1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa0_and1 = ((f_u_dadda_pg_rca8_fa0_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_6_1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa0_or0 = ((f_u_dadda_pg_rca8_fa0_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa0_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_pg_rca8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_pg_rca8_ha1_xor0 = ((f_u_dadda_pg_rca8_and_5_2 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_4_3 >> 0) & 0x01); - f_u_dadda_pg_rca8_ha1_and0 = ((f_u_dadda_pg_rca8_and_5_2 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_4_3 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_7_1 = ((a >> 7) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_pg_rca8_fa1_xor0 = ((f_u_dadda_pg_rca8_ha1_and0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa0_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa1_and0 = ((f_u_dadda_pg_rca8_ha1_and0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa0_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa1_xor1 = ((f_u_dadda_pg_rca8_fa1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_7_1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa1_and1 = ((f_u_dadda_pg_rca8_fa1_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_7_1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa1_or0 = ((f_u_dadda_pg_rca8_fa1_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa1_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_pg_rca8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_pg_rca8_ha2_xor0 = ((f_u_dadda_pg_rca8_and_6_2 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_5_3 >> 0) & 0x01); - f_u_dadda_pg_rca8_ha2_and0 = ((f_u_dadda_pg_rca8_and_6_2 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_5_3 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_7_2 = ((a >> 7) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_pg_rca8_fa2_xor0 = ((f_u_dadda_pg_rca8_ha2_and0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa1_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa2_and0 = ((f_u_dadda_pg_rca8_ha2_and0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa1_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa2_xor1 = ((f_u_dadda_pg_rca8_fa2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_7_2 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa2_and1 = ((f_u_dadda_pg_rca8_fa2_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_7_2 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa2_or0 = ((f_u_dadda_pg_rca8_fa2_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa2_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_pg_rca8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_pg_rca8_ha3_xor0 = ((f_u_dadda_pg_rca8_and_3_0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_2_1 >> 0) & 0x01); - f_u_dadda_pg_rca8_ha3_and0 = ((f_u_dadda_pg_rca8_and_3_0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_2_1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_pg_rca8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_pg_rca8_fa3_xor0 = ((f_u_dadda_pg_rca8_ha3_and0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_4_0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa3_and0 = ((f_u_dadda_pg_rca8_ha3_and0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_4_0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa3_xor1 = ((f_u_dadda_pg_rca8_fa3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_3_1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa3_and1 = ((f_u_dadda_pg_rca8_fa3_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_3_1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa3_or0 = ((f_u_dadda_pg_rca8_fa3_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa3_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_pg_rca8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_pg_rca8_ha4_xor0 = ((f_u_dadda_pg_rca8_and_2_2 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_1_3 >> 0) & 0x01); - f_u_dadda_pg_rca8_ha4_and0 = ((f_u_dadda_pg_rca8_and_2_2 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_1_3 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_pg_rca8_fa4_xor0 = ((f_u_dadda_pg_rca8_ha4_and0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa3_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa4_and0 = ((f_u_dadda_pg_rca8_ha4_and0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa3_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa4_xor1 = ((f_u_dadda_pg_rca8_fa4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_5_0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa4_and1 = ((f_u_dadda_pg_rca8_fa4_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_5_0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa4_or0 = ((f_u_dadda_pg_rca8_fa4_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa4_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_pg_rca8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_pg_rca8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_pg_rca8_fa5_xor0 = ((f_u_dadda_pg_rca8_and_4_1 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_3_2 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa5_and0 = ((f_u_dadda_pg_rca8_and_4_1 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_3_2 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa5_xor1 = ((f_u_dadda_pg_rca8_fa5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_2_3 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa5_and1 = ((f_u_dadda_pg_rca8_fa5_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_2_3 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa5_or0 = ((f_u_dadda_pg_rca8_fa5_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa5_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_pg_rca8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_pg_rca8_ha5_xor0 = ((f_u_dadda_pg_rca8_and_1_4 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_0_5 >> 0) & 0x01); - f_u_dadda_pg_rca8_ha5_and0 = ((f_u_dadda_pg_rca8_and_1_4 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_0_5 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa6_xor0 = ((f_u_dadda_pg_rca8_ha5_and0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa5_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa6_and0 = ((f_u_dadda_pg_rca8_ha5_and0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa5_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa6_xor1 = ((f_u_dadda_pg_rca8_fa6_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa4_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa6_and1 = ((f_u_dadda_pg_rca8_fa6_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa4_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa6_or0 = ((f_u_dadda_pg_rca8_fa6_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa6_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_pg_rca8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_pg_rca8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_pg_rca8_fa7_xor0 = ((f_u_dadda_pg_rca8_and_4_2 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_3_3 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa7_and0 = ((f_u_dadda_pg_rca8_and_4_2 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_3_3 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa7_xor1 = ((f_u_dadda_pg_rca8_fa7_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_2_4 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa7_and1 = ((f_u_dadda_pg_rca8_fa7_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_2_4 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa7_or0 = ((f_u_dadda_pg_rca8_fa7_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa7_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_pg_rca8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_pg_rca8_fa8_xor0 = ((f_u_dadda_pg_rca8_and_1_5 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_0_6 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa8_and0 = ((f_u_dadda_pg_rca8_and_1_5 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_0_6 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa8_xor1 = ((f_u_dadda_pg_rca8_fa8_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_ha0_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa8_and1 = ((f_u_dadda_pg_rca8_fa8_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_ha0_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa8_or0 = ((f_u_dadda_pg_rca8_fa8_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa8_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa9_xor0 = ((f_u_dadda_pg_rca8_fa8_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa7_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa9_and0 = ((f_u_dadda_pg_rca8_fa8_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa7_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa9_xor1 = ((f_u_dadda_pg_rca8_fa9_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa6_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa9_and1 = ((f_u_dadda_pg_rca8_fa9_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa6_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa9_or0 = ((f_u_dadda_pg_rca8_fa9_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa9_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_pg_rca8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_pg_rca8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_pg_rca8_fa10_xor0 = ((f_u_dadda_pg_rca8_and_3_4 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_2_5 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa10_and0 = ((f_u_dadda_pg_rca8_and_3_4 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_2_5 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa10_xor1 = ((f_u_dadda_pg_rca8_fa10_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_1_6 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa10_and1 = ((f_u_dadda_pg_rca8_fa10_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_1_6 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa10_or0 = ((f_u_dadda_pg_rca8_fa10_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa10_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_0_7 = ((a >> 0) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_pg_rca8_fa11_xor0 = ((f_u_dadda_pg_rca8_and_0_7 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa0_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa11_and0 = ((f_u_dadda_pg_rca8_and_0_7 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa0_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa11_xor1 = ((f_u_dadda_pg_rca8_fa11_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_ha1_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa11_and1 = ((f_u_dadda_pg_rca8_fa11_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_ha1_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa11_or0 = ((f_u_dadda_pg_rca8_fa11_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa11_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa12_xor0 = ((f_u_dadda_pg_rca8_fa11_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa10_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa12_and0 = ((f_u_dadda_pg_rca8_fa11_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa10_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa12_xor1 = ((f_u_dadda_pg_rca8_fa12_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa9_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa12_and1 = ((f_u_dadda_pg_rca8_fa12_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa9_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa12_or0 = ((f_u_dadda_pg_rca8_fa12_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa12_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_pg_rca8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_pg_rca8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_pg_rca8_fa13_xor0 = ((f_u_dadda_pg_rca8_and_4_4 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_3_5 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa13_and0 = ((f_u_dadda_pg_rca8_and_4_4 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_3_5 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa13_xor1 = ((f_u_dadda_pg_rca8_fa13_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_2_6 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa13_and1 = ((f_u_dadda_pg_rca8_fa13_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_2_6 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa13_or0 = ((f_u_dadda_pg_rca8_fa13_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa13_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_1_7 = ((a >> 1) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_pg_rca8_fa14_xor0 = ((f_u_dadda_pg_rca8_and_1_7 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa1_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa14_and0 = ((f_u_dadda_pg_rca8_and_1_7 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa1_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa14_xor1 = ((f_u_dadda_pg_rca8_fa14_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_ha2_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa14_and1 = ((f_u_dadda_pg_rca8_fa14_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_ha2_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa14_or0 = ((f_u_dadda_pg_rca8_fa14_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa14_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa15_xor0 = ((f_u_dadda_pg_rca8_fa14_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa13_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa15_and0 = ((f_u_dadda_pg_rca8_fa14_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa13_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa15_xor1 = ((f_u_dadda_pg_rca8_fa15_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa12_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa15_and1 = ((f_u_dadda_pg_rca8_fa15_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa12_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa15_or0 = ((f_u_dadda_pg_rca8_fa15_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa15_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_pg_rca8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_pg_rca8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_pg_rca8_fa16_xor0 = ((f_u_dadda_pg_rca8_and_6_3 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_5_4 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa16_and0 = ((f_u_dadda_pg_rca8_and_6_3 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_5_4 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa16_xor1 = ((f_u_dadda_pg_rca8_fa16_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_4_5 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa16_and1 = ((f_u_dadda_pg_rca8_fa16_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_4_5 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa16_or0 = ((f_u_dadda_pg_rca8_fa16_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa16_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_pg_rca8_and_2_7 = ((a >> 2) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_pg_rca8_fa17_xor0 = ((f_u_dadda_pg_rca8_and_3_6 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_2_7 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa17_and0 = ((f_u_dadda_pg_rca8_and_3_6 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_2_7 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa17_xor1 = ((f_u_dadda_pg_rca8_fa17_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa2_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa17_and1 = ((f_u_dadda_pg_rca8_fa17_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa2_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa17_or0 = ((f_u_dadda_pg_rca8_fa17_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa17_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa18_xor0 = ((f_u_dadda_pg_rca8_fa17_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa16_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa18_and0 = ((f_u_dadda_pg_rca8_fa17_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa16_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa18_xor1 = ((f_u_dadda_pg_rca8_fa18_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa15_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa18_and1 = ((f_u_dadda_pg_rca8_fa18_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa15_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa18_or0 = ((f_u_dadda_pg_rca8_fa18_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa18_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_7_3 = ((a >> 7) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_pg_rca8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_pg_rca8_fa19_xor0 = ((f_u_dadda_pg_rca8_fa2_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_7_3 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa19_and0 = ((f_u_dadda_pg_rca8_fa2_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_7_3 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa19_xor1 = ((f_u_dadda_pg_rca8_fa19_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_6_4 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa19_and1 = ((f_u_dadda_pg_rca8_fa19_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_6_4 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa19_or0 = ((f_u_dadda_pg_rca8_fa19_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa19_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_pg_rca8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_pg_rca8_and_3_7 = ((a >> 3) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_pg_rca8_fa20_xor0 = ((f_u_dadda_pg_rca8_and_5_5 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_4_6 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa20_and0 = ((f_u_dadda_pg_rca8_and_5_5 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_4_6 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa20_xor1 = ((f_u_dadda_pg_rca8_fa20_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_3_7 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa20_and1 = ((f_u_dadda_pg_rca8_fa20_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_3_7 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa20_or0 = ((f_u_dadda_pg_rca8_fa20_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa20_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa21_xor0 = ((f_u_dadda_pg_rca8_fa20_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa19_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa21_and0 = ((f_u_dadda_pg_rca8_fa20_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa19_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa21_xor1 = ((f_u_dadda_pg_rca8_fa21_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa18_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa21_and1 = ((f_u_dadda_pg_rca8_fa21_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa18_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa21_or0 = ((f_u_dadda_pg_rca8_fa21_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa21_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_7_4 = ((a >> 7) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_pg_rca8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_pg_rca8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_pg_rca8_fa22_xor0 = ((f_u_dadda_pg_rca8_and_7_4 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_6_5 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa22_and0 = ((f_u_dadda_pg_rca8_and_7_4 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_6_5 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa22_xor1 = ((f_u_dadda_pg_rca8_fa22_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_5_6 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa22_and1 = ((f_u_dadda_pg_rca8_fa22_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_5_6 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa22_or0 = ((f_u_dadda_pg_rca8_fa22_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa22_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_7_5 = ((a >> 7) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_pg_rca8_fa23_xor0 = ((f_u_dadda_pg_rca8_fa22_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa21_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa23_and0 = ((f_u_dadda_pg_rca8_fa22_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa21_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa23_xor1 = ((f_u_dadda_pg_rca8_fa23_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_7_5 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa23_and1 = ((f_u_dadda_pg_rca8_fa23_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_7_5 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa23_or0 = ((f_u_dadda_pg_rca8_fa23_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa23_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_pg_rca8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_pg_rca8_ha6_xor0 = ((f_u_dadda_pg_rca8_and_2_0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_1_1 >> 0) & 0x01); - f_u_dadda_pg_rca8_ha6_and0 = ((f_u_dadda_pg_rca8_and_2_0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_1_1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_pg_rca8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_pg_rca8_fa24_xor0 = ((f_u_dadda_pg_rca8_ha6_and0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_1_2 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa24_and0 = ((f_u_dadda_pg_rca8_ha6_and0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_1_2 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa24_xor1 = ((f_u_dadda_pg_rca8_fa24_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_0_3 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa24_and1 = ((f_u_dadda_pg_rca8_fa24_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_0_3 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa24_or0 = ((f_u_dadda_pg_rca8_fa24_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa24_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_pg_rca8_fa25_xor0 = ((f_u_dadda_pg_rca8_fa24_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_0_4 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa25_and0 = ((f_u_dadda_pg_rca8_fa24_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_0_4 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa25_xor1 = ((f_u_dadda_pg_rca8_fa25_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa3_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa25_and1 = ((f_u_dadda_pg_rca8_fa25_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa3_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa25_or0 = ((f_u_dadda_pg_rca8_fa25_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa25_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa26_xor0 = ((f_u_dadda_pg_rca8_fa25_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa4_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa26_and0 = ((f_u_dadda_pg_rca8_fa25_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa4_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa26_xor1 = ((f_u_dadda_pg_rca8_fa26_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa5_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa26_and1 = ((f_u_dadda_pg_rca8_fa26_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa5_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa26_or0 = ((f_u_dadda_pg_rca8_fa26_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa26_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa27_xor0 = ((f_u_dadda_pg_rca8_fa26_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa6_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa27_and0 = ((f_u_dadda_pg_rca8_fa26_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa6_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa27_xor1 = ((f_u_dadda_pg_rca8_fa27_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa7_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa27_and1 = ((f_u_dadda_pg_rca8_fa27_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa7_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa27_or0 = ((f_u_dadda_pg_rca8_fa27_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa27_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa28_xor0 = ((f_u_dadda_pg_rca8_fa27_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa9_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa28_and0 = ((f_u_dadda_pg_rca8_fa27_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa9_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa28_xor1 = ((f_u_dadda_pg_rca8_fa28_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa10_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa28_and1 = ((f_u_dadda_pg_rca8_fa28_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa10_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa28_or0 = ((f_u_dadda_pg_rca8_fa28_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa28_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa29_xor0 = ((f_u_dadda_pg_rca8_fa28_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa12_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa29_and0 = ((f_u_dadda_pg_rca8_fa28_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa12_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa29_xor1 = ((f_u_dadda_pg_rca8_fa29_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa13_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa29_and1 = ((f_u_dadda_pg_rca8_fa29_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa13_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa29_or0 = ((f_u_dadda_pg_rca8_fa29_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa29_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa30_xor0 = ((f_u_dadda_pg_rca8_fa29_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa15_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa30_and0 = ((f_u_dadda_pg_rca8_fa29_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa15_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa30_xor1 = ((f_u_dadda_pg_rca8_fa30_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa16_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa30_and1 = ((f_u_dadda_pg_rca8_fa30_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa16_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa30_or0 = ((f_u_dadda_pg_rca8_fa30_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa30_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa31_xor0 = ((f_u_dadda_pg_rca8_fa30_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa18_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa31_and0 = ((f_u_dadda_pg_rca8_fa30_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa18_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa31_xor1 = ((f_u_dadda_pg_rca8_fa31_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa19_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa31_and1 = ((f_u_dadda_pg_rca8_fa31_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa19_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa31_or0 = ((f_u_dadda_pg_rca8_fa31_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa31_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_4_7 = ((a >> 4) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_pg_rca8_fa32_xor0 = ((f_u_dadda_pg_rca8_fa31_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_4_7 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa32_and0 = ((f_u_dadda_pg_rca8_fa31_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_4_7 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa32_xor1 = ((f_u_dadda_pg_rca8_fa32_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa21_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa32_and1 = ((f_u_dadda_pg_rca8_fa32_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa21_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa32_or0 = ((f_u_dadda_pg_rca8_fa32_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa32_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_pg_rca8_and_5_7 = ((a >> 5) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_pg_rca8_fa33_xor0 = ((f_u_dadda_pg_rca8_fa32_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_6_6 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa33_and0 = ((f_u_dadda_pg_rca8_fa32_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_6_6 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa33_xor1 = ((f_u_dadda_pg_rca8_fa33_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_5_7 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa33_and1 = ((f_u_dadda_pg_rca8_fa33_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_5_7 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa33_or0 = ((f_u_dadda_pg_rca8_fa33_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa33_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_7_6 = ((a >> 7) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_pg_rca8_fa34_xor0 = ((f_u_dadda_pg_rca8_fa33_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa23_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa34_and0 = ((f_u_dadda_pg_rca8_fa33_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa23_or0 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa34_xor1 = ((f_u_dadda_pg_rca8_fa34_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_7_6 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa34_and1 = ((f_u_dadda_pg_rca8_fa34_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_7_6 >> 0) & 0x01); - f_u_dadda_pg_rca8_fa34_or0 = ((f_u_dadda_pg_rca8_fa34_and0 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_fa34_and1 >> 0) & 0x01); - f_u_dadda_pg_rca8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_pg_rca8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_pg_rca8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_pg_rca8_and_6_7 = ((a >> 6) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_pg_rca8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_pg_rca8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa0_xor0 = ((f_u_dadda_pg_rca8_and_1_0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_0_1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa0_and0 = ((f_u_dadda_pg_rca8_and_1_0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_0_1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa1_xor0 = ((f_u_dadda_pg_rca8_and_0_2 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_ha6_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa1_and0 = ((f_u_dadda_pg_rca8_and_0_2 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_ha6_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa1_xor1 = ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa0_and0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_and1 = ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa0_and0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa1_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_or1 = ((f_u_dadda_pg_rca8_u_pg_rca14_and1 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa1_and0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa2_xor0 = ((f_u_dadda_pg_rca8_ha3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa24_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa2_and0 = ((f_u_dadda_pg_rca8_ha3_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa24_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa2_xor1 = ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_u_pg_rca14_or1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_and2 = ((f_u_dadda_pg_rca8_u_pg_rca14_or1 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa2_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_or2 = ((f_u_dadda_pg_rca8_u_pg_rca14_and2 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa2_and0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa3_xor0 = ((f_u_dadda_pg_rca8_ha4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa25_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa3_and0 = ((f_u_dadda_pg_rca8_ha4_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa25_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa3_xor1 = ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_u_pg_rca14_or2 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_and3 = ((f_u_dadda_pg_rca8_u_pg_rca14_or2 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa3_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_or3 = ((f_u_dadda_pg_rca8_u_pg_rca14_and3 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa3_and0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa4_xor0 = ((f_u_dadda_pg_rca8_ha5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa26_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa4_and0 = ((f_u_dadda_pg_rca8_ha5_xor0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa26_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa4_xor1 = ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_u_pg_rca14_or3 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_and4 = ((f_u_dadda_pg_rca8_u_pg_rca14_or3 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa4_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_or4 = ((f_u_dadda_pg_rca8_u_pg_rca14_and4 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa4_and0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa5_xor0 = ((f_u_dadda_pg_rca8_fa8_xor1 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa27_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa5_and0 = ((f_u_dadda_pg_rca8_fa8_xor1 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa27_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa5_xor1 = ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_u_pg_rca14_or4 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_and5 = ((f_u_dadda_pg_rca8_u_pg_rca14_or4 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa5_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_or5 = ((f_u_dadda_pg_rca8_u_pg_rca14_and5 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa5_and0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa6_xor0 = ((f_u_dadda_pg_rca8_fa11_xor1 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa28_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa6_and0 = ((f_u_dadda_pg_rca8_fa11_xor1 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa28_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa6_xor1 = ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa6_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_u_pg_rca14_or5 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_and6 = ((f_u_dadda_pg_rca8_u_pg_rca14_or5 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa6_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_or6 = ((f_u_dadda_pg_rca8_u_pg_rca14_and6 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa6_and0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa7_xor0 = ((f_u_dadda_pg_rca8_fa14_xor1 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa29_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa7_and0 = ((f_u_dadda_pg_rca8_fa14_xor1 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa29_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa7_xor1 = ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa7_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_u_pg_rca14_or6 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_and7 = ((f_u_dadda_pg_rca8_u_pg_rca14_or6 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa7_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_or7 = ((f_u_dadda_pg_rca8_u_pg_rca14_and7 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa7_and0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa8_xor0 = ((f_u_dadda_pg_rca8_fa17_xor1 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa30_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa8_and0 = ((f_u_dadda_pg_rca8_fa17_xor1 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa30_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa8_xor1 = ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa8_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_u_pg_rca14_or7 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_and8 = ((f_u_dadda_pg_rca8_u_pg_rca14_or7 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa8_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_or8 = ((f_u_dadda_pg_rca8_u_pg_rca14_and8 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa8_and0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa9_xor0 = ((f_u_dadda_pg_rca8_fa20_xor1 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa31_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa9_and0 = ((f_u_dadda_pg_rca8_fa20_xor1 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa31_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa9_xor1 = ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa9_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_u_pg_rca14_or8 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_and9 = ((f_u_dadda_pg_rca8_u_pg_rca14_or8 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa9_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_or9 = ((f_u_dadda_pg_rca8_u_pg_rca14_and9 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa9_and0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa10_xor0 = ((f_u_dadda_pg_rca8_fa22_xor1 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa32_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa10_and0 = ((f_u_dadda_pg_rca8_fa22_xor1 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa32_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa10_xor1 = ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa10_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_u_pg_rca14_or9 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_and10 = ((f_u_dadda_pg_rca8_u_pg_rca14_or9 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa10_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_or10 = ((f_u_dadda_pg_rca8_u_pg_rca14_and10 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa10_and0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa11_xor0 = ((f_u_dadda_pg_rca8_fa23_xor1 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa33_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa11_and0 = ((f_u_dadda_pg_rca8_fa23_xor1 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa33_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa11_xor1 = ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa11_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_u_pg_rca14_or10 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_and11 = ((f_u_dadda_pg_rca8_u_pg_rca14_or10 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa11_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_or11 = ((f_u_dadda_pg_rca8_u_pg_rca14_and11 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa11_and0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa12_xor0 = ((f_u_dadda_pg_rca8_and_6_7 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_fa34_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa12_and0 = ((f_u_dadda_pg_rca8_and_6_7 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_fa34_xor1 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa12_xor1 = ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa12_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_u_pg_rca14_or11 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_and12 = ((f_u_dadda_pg_rca8_u_pg_rca14_or11 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa12_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_or12 = ((f_u_dadda_pg_rca8_u_pg_rca14_and12 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa12_and0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa13_xor0 = ((f_u_dadda_pg_rca8_fa34_or0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_and_7_7 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa13_and0 = ((f_u_dadda_pg_rca8_fa34_or0 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_and_7_7 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_pg_fa13_xor1 = ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa13_xor0 >> 0) & 0x01) ^ ((f_u_dadda_pg_rca8_u_pg_rca14_or12 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_and13 = ((f_u_dadda_pg_rca8_u_pg_rca14_or12 >> 0) & 0x01) & ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa13_xor0 >> 0) & 0x01); - f_u_dadda_pg_rca8_u_pg_rca14_or13 = ((f_u_dadda_pg_rca8_u_pg_rca14_and13 >> 0) & 0x01) | ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa13_and0 >> 0) & 0x01); - - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_and_0_0 >> 0) & 0x01) << 0; - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa0_xor0 >> 0) & 0x01) << 1; - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa1_xor1 >> 0) & 0x01) << 2; - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa2_xor1 >> 0) & 0x01) << 3; - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa3_xor1 >> 0) & 0x01) << 4; - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa4_xor1 >> 0) & 0x01) << 5; - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa5_xor1 >> 0) & 0x01) << 6; - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa6_xor1 >> 0) & 0x01) << 7; - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa7_xor1 >> 0) & 0x01) << 8; - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa8_xor1 >> 0) & 0x01) << 9; - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa9_xor1 >> 0) & 0x01) << 10; - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa10_xor1 >> 0) & 0x01) << 11; - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa11_xor1 >> 0) & 0x01) << 12; - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa12_xor1 >> 0) & 0x01) << 13; - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_u_pg_rca14_pg_fa13_xor1 >> 0) & 0x01) << 14; - f_u_dadda_pg_rca8_out |= ((f_u_dadda_pg_rca8_u_pg_rca14_or13 >> 0) & 0x01) << 15; - return f_u_dadda_pg_rca8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == f_u_dadda_pg_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_rca4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_rca4.c deleted file mode 100644 index 396df58..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_rca4.c +++ /dev/null @@ -1,155 +0,0 @@ -#include -#include - -uint64_t f_u_dadda_rca4(uint64_t a, uint64_t b){ - uint8_t f_u_dadda_rca4_out = 0; - uint8_t f_u_dadda_rca4_and_3_0 = 0; - uint8_t f_u_dadda_rca4_and_2_1 = 0; - uint8_t f_u_dadda_rca4_ha0_xor0 = 0; - uint8_t f_u_dadda_rca4_ha0_and0 = 0; - uint8_t f_u_dadda_rca4_and_3_1 = 0; - uint8_t f_u_dadda_rca4_ha1_xor0 = 0; - uint8_t f_u_dadda_rca4_ha1_and0 = 0; - uint8_t f_u_dadda_rca4_and_2_0 = 0; - uint8_t f_u_dadda_rca4_and_1_1 = 0; - uint8_t f_u_dadda_rca4_ha2_xor0 = 0; - uint8_t f_u_dadda_rca4_ha2_and0 = 0; - uint8_t f_u_dadda_rca4_and_1_2 = 0; - uint8_t f_u_dadda_rca4_and_0_3 = 0; - uint8_t f_u_dadda_rca4_fa0_xor0 = 0; - uint8_t f_u_dadda_rca4_fa0_and0 = 0; - uint8_t f_u_dadda_rca4_fa0_xor1 = 0; - uint8_t f_u_dadda_rca4_fa0_and1 = 0; - uint8_t f_u_dadda_rca4_fa0_or0 = 0; - uint8_t f_u_dadda_rca4_and_2_2 = 0; - uint8_t f_u_dadda_rca4_and_1_3 = 0; - uint8_t f_u_dadda_rca4_fa1_xor0 = 0; - uint8_t f_u_dadda_rca4_fa1_and0 = 0; - uint8_t f_u_dadda_rca4_fa1_xor1 = 0; - uint8_t f_u_dadda_rca4_fa1_and1 = 0; - uint8_t f_u_dadda_rca4_fa1_or0 = 0; - uint8_t f_u_dadda_rca4_and_3_2 = 0; - uint8_t f_u_dadda_rca4_fa2_xor0 = 0; - uint8_t f_u_dadda_rca4_fa2_and0 = 0; - uint8_t f_u_dadda_rca4_fa2_xor1 = 0; - uint8_t f_u_dadda_rca4_fa2_and1 = 0; - uint8_t f_u_dadda_rca4_fa2_or0 = 0; - uint8_t f_u_dadda_rca4_and_0_0 = 0; - uint8_t f_u_dadda_rca4_and_1_0 = 0; - uint8_t f_u_dadda_rca4_and_0_2 = 0; - uint8_t f_u_dadda_rca4_and_2_3 = 0; - uint8_t f_u_dadda_rca4_and_0_1 = 0; - uint8_t f_u_dadda_rca4_and_3_3 = 0; - uint8_t f_u_dadda_rca4_u_rca6_ha_xor0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_ha_and0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa1_xor0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa1_and0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa1_xor1 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa1_and1 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa1_or0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa2_xor0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa2_and0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa2_xor1 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa2_and1 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa2_or0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa3_xor0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa3_and0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa3_xor1 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa3_and1 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa3_or0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa4_xor0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa4_and0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa4_xor1 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa4_and1 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa4_or0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa5_xor0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa5_and0 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa5_xor1 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa5_and1 = 0; - uint8_t f_u_dadda_rca4_u_rca6_fa5_or0 = 0; - - f_u_dadda_rca4_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_rca4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_rca4_ha0_xor0 = ((f_u_dadda_rca4_and_3_0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_and_2_1 >> 0) & 0x01); - f_u_dadda_rca4_ha0_and0 = ((f_u_dadda_rca4_and_3_0 >> 0) & 0x01) & ((f_u_dadda_rca4_and_2_1 >> 0) & 0x01); - f_u_dadda_rca4_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_rca4_ha1_xor0 = ((f_u_dadda_rca4_ha0_and0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_and_3_1 >> 0) & 0x01); - f_u_dadda_rca4_ha1_and0 = ((f_u_dadda_rca4_ha0_and0 >> 0) & 0x01) & ((f_u_dadda_rca4_and_3_1 >> 0) & 0x01); - f_u_dadda_rca4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_rca4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_rca4_ha2_xor0 = ((f_u_dadda_rca4_and_2_0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_and_1_1 >> 0) & 0x01); - f_u_dadda_rca4_ha2_and0 = ((f_u_dadda_rca4_and_2_0 >> 0) & 0x01) & ((f_u_dadda_rca4_and_1_1 >> 0) & 0x01); - f_u_dadda_rca4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_rca4_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_rca4_fa0_xor0 = ((f_u_dadda_rca4_ha2_and0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_and_1_2 >> 0) & 0x01); - f_u_dadda_rca4_fa0_and0 = ((f_u_dadda_rca4_ha2_and0 >> 0) & 0x01) & ((f_u_dadda_rca4_and_1_2 >> 0) & 0x01); - f_u_dadda_rca4_fa0_xor1 = ((f_u_dadda_rca4_fa0_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_and_0_3 >> 0) & 0x01); - f_u_dadda_rca4_fa0_and1 = ((f_u_dadda_rca4_fa0_xor0 >> 0) & 0x01) & ((f_u_dadda_rca4_and_0_3 >> 0) & 0x01); - f_u_dadda_rca4_fa0_or0 = ((f_u_dadda_rca4_fa0_and0 >> 0) & 0x01) | ((f_u_dadda_rca4_fa0_and1 >> 0) & 0x01); - f_u_dadda_rca4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_rca4_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_rca4_fa1_xor0 = ((f_u_dadda_rca4_fa0_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_and_2_2 >> 0) & 0x01); - f_u_dadda_rca4_fa1_and0 = ((f_u_dadda_rca4_fa0_or0 >> 0) & 0x01) & ((f_u_dadda_rca4_and_2_2 >> 0) & 0x01); - f_u_dadda_rca4_fa1_xor1 = ((f_u_dadda_rca4_fa1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_and_1_3 >> 0) & 0x01); - f_u_dadda_rca4_fa1_and1 = ((f_u_dadda_rca4_fa1_xor0 >> 0) & 0x01) & ((f_u_dadda_rca4_and_1_3 >> 0) & 0x01); - f_u_dadda_rca4_fa1_or0 = ((f_u_dadda_rca4_fa1_and0 >> 0) & 0x01) | ((f_u_dadda_rca4_fa1_and1 >> 0) & 0x01); - f_u_dadda_rca4_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_rca4_fa2_xor0 = ((f_u_dadda_rca4_fa1_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_ha1_and0 >> 0) & 0x01); - f_u_dadda_rca4_fa2_and0 = ((f_u_dadda_rca4_fa1_or0 >> 0) & 0x01) & ((f_u_dadda_rca4_ha1_and0 >> 0) & 0x01); - f_u_dadda_rca4_fa2_xor1 = ((f_u_dadda_rca4_fa2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_and_3_2 >> 0) & 0x01); - f_u_dadda_rca4_fa2_and1 = ((f_u_dadda_rca4_fa2_xor0 >> 0) & 0x01) & ((f_u_dadda_rca4_and_3_2 >> 0) & 0x01); - f_u_dadda_rca4_fa2_or0 = ((f_u_dadda_rca4_fa2_and0 >> 0) & 0x01) | ((f_u_dadda_rca4_fa2_and1 >> 0) & 0x01); - f_u_dadda_rca4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_rca4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_rca4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_rca4_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_rca4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_rca4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_rca4_u_rca6_ha_xor0 = ((f_u_dadda_rca4_and_1_0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_and_0_1 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_ha_and0 = ((f_u_dadda_rca4_and_1_0 >> 0) & 0x01) & ((f_u_dadda_rca4_and_0_1 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa1_xor0 = ((f_u_dadda_rca4_and_0_2 >> 0) & 0x01) ^ ((f_u_dadda_rca4_ha2_xor0 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa1_and0 = ((f_u_dadda_rca4_and_0_2 >> 0) & 0x01) & ((f_u_dadda_rca4_ha2_xor0 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa1_xor1 = ((f_u_dadda_rca4_u_rca6_fa1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_u_rca6_ha_and0 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa1_and1 = ((f_u_dadda_rca4_u_rca6_fa1_xor0 >> 0) & 0x01) & ((f_u_dadda_rca4_u_rca6_ha_and0 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa1_or0 = ((f_u_dadda_rca4_u_rca6_fa1_and0 >> 0) & 0x01) | ((f_u_dadda_rca4_u_rca6_fa1_and1 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa2_xor0 = ((f_u_dadda_rca4_ha0_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_fa0_xor1 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa2_and0 = ((f_u_dadda_rca4_ha0_xor0 >> 0) & 0x01) & ((f_u_dadda_rca4_fa0_xor1 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa2_xor1 = ((f_u_dadda_rca4_u_rca6_fa2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_u_rca6_fa1_or0 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa2_and1 = ((f_u_dadda_rca4_u_rca6_fa2_xor0 >> 0) & 0x01) & ((f_u_dadda_rca4_u_rca6_fa1_or0 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa2_or0 = ((f_u_dadda_rca4_u_rca6_fa2_and0 >> 0) & 0x01) | ((f_u_dadda_rca4_u_rca6_fa2_and1 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa3_xor0 = ((f_u_dadda_rca4_ha1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_fa1_xor1 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa3_and0 = ((f_u_dadda_rca4_ha1_xor0 >> 0) & 0x01) & ((f_u_dadda_rca4_fa1_xor1 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa3_xor1 = ((f_u_dadda_rca4_u_rca6_fa3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_u_rca6_fa2_or0 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa3_and1 = ((f_u_dadda_rca4_u_rca6_fa3_xor0 >> 0) & 0x01) & ((f_u_dadda_rca4_u_rca6_fa2_or0 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa3_or0 = ((f_u_dadda_rca4_u_rca6_fa3_and0 >> 0) & 0x01) | ((f_u_dadda_rca4_u_rca6_fa3_and1 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa4_xor0 = ((f_u_dadda_rca4_and_2_3 >> 0) & 0x01) ^ ((f_u_dadda_rca4_fa2_xor1 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa4_and0 = ((f_u_dadda_rca4_and_2_3 >> 0) & 0x01) & ((f_u_dadda_rca4_fa2_xor1 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa4_xor1 = ((f_u_dadda_rca4_u_rca6_fa4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_u_rca6_fa3_or0 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa4_and1 = ((f_u_dadda_rca4_u_rca6_fa4_xor0 >> 0) & 0x01) & ((f_u_dadda_rca4_u_rca6_fa3_or0 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa4_or0 = ((f_u_dadda_rca4_u_rca6_fa4_and0 >> 0) & 0x01) | ((f_u_dadda_rca4_u_rca6_fa4_and1 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa5_xor0 = ((f_u_dadda_rca4_fa2_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_and_3_3 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa5_and0 = ((f_u_dadda_rca4_fa2_or0 >> 0) & 0x01) & ((f_u_dadda_rca4_and_3_3 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa5_xor1 = ((f_u_dadda_rca4_u_rca6_fa5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca4_u_rca6_fa4_or0 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa5_and1 = ((f_u_dadda_rca4_u_rca6_fa5_xor0 >> 0) & 0x01) & ((f_u_dadda_rca4_u_rca6_fa4_or0 >> 0) & 0x01); - f_u_dadda_rca4_u_rca6_fa5_or0 = ((f_u_dadda_rca4_u_rca6_fa5_and0 >> 0) & 0x01) | ((f_u_dadda_rca4_u_rca6_fa5_and1 >> 0) & 0x01); - - f_u_dadda_rca4_out |= ((f_u_dadda_rca4_and_0_0 >> 0) & 0x01) << 0; - f_u_dadda_rca4_out |= ((f_u_dadda_rca4_u_rca6_ha_xor0 >> 0) & 0x01) << 1; - f_u_dadda_rca4_out |= ((f_u_dadda_rca4_u_rca6_fa1_xor1 >> 0) & 0x01) << 2; - f_u_dadda_rca4_out |= ((f_u_dadda_rca4_u_rca6_fa2_xor1 >> 0) & 0x01) << 3; - f_u_dadda_rca4_out |= ((f_u_dadda_rca4_u_rca6_fa3_xor1 >> 0) & 0x01) << 4; - f_u_dadda_rca4_out |= ((f_u_dadda_rca4_u_rca6_fa4_xor1 >> 0) & 0x01) << 5; - f_u_dadda_rca4_out |= ((f_u_dadda_rca4_u_rca6_fa5_xor1 >> 0) & 0x01) << 6; - f_u_dadda_rca4_out |= ((f_u_dadda_rca4_u_rca6_fa5_or0 >> 0) & 0x01) << 7; - return f_u_dadda_rca4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == f_u_dadda_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_rca8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_rca8.c deleted file mode 100644 index ddff3ac..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_dadda_rca8.c +++ /dev/null @@ -1,675 +0,0 @@ -#include -#include - -uint64_t f_u_dadda_rca8(uint64_t a, uint64_t b){ - uint64_t f_u_dadda_rca8_out = 0; - uint8_t f_u_dadda_rca8_and_6_0 = 0; - uint8_t f_u_dadda_rca8_and_5_1 = 0; - uint8_t f_u_dadda_rca8_ha0_xor0 = 0; - uint8_t f_u_dadda_rca8_ha0_and0 = 0; - uint8_t f_u_dadda_rca8_and_7_0 = 0; - uint8_t f_u_dadda_rca8_and_6_1 = 0; - uint8_t f_u_dadda_rca8_fa0_xor0 = 0; - uint8_t f_u_dadda_rca8_fa0_and0 = 0; - uint8_t f_u_dadda_rca8_fa0_xor1 = 0; - uint8_t f_u_dadda_rca8_fa0_and1 = 0; - uint8_t f_u_dadda_rca8_fa0_or0 = 0; - uint8_t f_u_dadda_rca8_and_5_2 = 0; - uint8_t f_u_dadda_rca8_and_4_3 = 0; - uint8_t f_u_dadda_rca8_ha1_xor0 = 0; - uint8_t f_u_dadda_rca8_ha1_and0 = 0; - uint8_t f_u_dadda_rca8_and_7_1 = 0; - uint8_t f_u_dadda_rca8_fa1_xor0 = 0; - uint8_t f_u_dadda_rca8_fa1_and0 = 0; - uint8_t f_u_dadda_rca8_fa1_xor1 = 0; - uint8_t f_u_dadda_rca8_fa1_and1 = 0; - uint8_t f_u_dadda_rca8_fa1_or0 = 0; - uint8_t f_u_dadda_rca8_and_6_2 = 0; - uint8_t f_u_dadda_rca8_and_5_3 = 0; - uint8_t f_u_dadda_rca8_ha2_xor0 = 0; - uint8_t f_u_dadda_rca8_ha2_and0 = 0; - uint8_t f_u_dadda_rca8_and_7_2 = 0; - uint8_t f_u_dadda_rca8_fa2_xor0 = 0; - uint8_t f_u_dadda_rca8_fa2_and0 = 0; - uint8_t f_u_dadda_rca8_fa2_xor1 = 0; - uint8_t f_u_dadda_rca8_fa2_and1 = 0; - uint8_t f_u_dadda_rca8_fa2_or0 = 0; - uint8_t f_u_dadda_rca8_and_3_0 = 0; - uint8_t f_u_dadda_rca8_and_2_1 = 0; - uint8_t f_u_dadda_rca8_ha3_xor0 = 0; - uint8_t f_u_dadda_rca8_ha3_and0 = 0; - uint8_t f_u_dadda_rca8_and_4_0 = 0; - uint8_t f_u_dadda_rca8_and_3_1 = 0; - uint8_t f_u_dadda_rca8_fa3_xor0 = 0; - uint8_t f_u_dadda_rca8_fa3_and0 = 0; - uint8_t f_u_dadda_rca8_fa3_xor1 = 0; - uint8_t f_u_dadda_rca8_fa3_and1 = 0; - uint8_t f_u_dadda_rca8_fa3_or0 = 0; - uint8_t f_u_dadda_rca8_and_2_2 = 0; - uint8_t f_u_dadda_rca8_and_1_3 = 0; - uint8_t f_u_dadda_rca8_ha4_xor0 = 0; - uint8_t f_u_dadda_rca8_ha4_and0 = 0; - uint8_t f_u_dadda_rca8_and_5_0 = 0; - uint8_t f_u_dadda_rca8_fa4_xor0 = 0; - uint8_t f_u_dadda_rca8_fa4_and0 = 0; - uint8_t f_u_dadda_rca8_fa4_xor1 = 0; - uint8_t f_u_dadda_rca8_fa4_and1 = 0; - uint8_t f_u_dadda_rca8_fa4_or0 = 0; - uint8_t f_u_dadda_rca8_and_4_1 = 0; - uint8_t f_u_dadda_rca8_and_3_2 = 0; - uint8_t f_u_dadda_rca8_and_2_3 = 0; - uint8_t f_u_dadda_rca8_fa5_xor0 = 0; - uint8_t f_u_dadda_rca8_fa5_and0 = 0; - uint8_t f_u_dadda_rca8_fa5_xor1 = 0; - uint8_t f_u_dadda_rca8_fa5_and1 = 0; - uint8_t f_u_dadda_rca8_fa5_or0 = 0; - uint8_t f_u_dadda_rca8_and_1_4 = 0; - uint8_t f_u_dadda_rca8_and_0_5 = 0; - uint8_t f_u_dadda_rca8_ha5_xor0 = 0; - uint8_t f_u_dadda_rca8_ha5_and0 = 0; - uint8_t f_u_dadda_rca8_fa6_xor0 = 0; - uint8_t f_u_dadda_rca8_fa6_and0 = 0; - uint8_t f_u_dadda_rca8_fa6_xor1 = 0; - uint8_t f_u_dadda_rca8_fa6_and1 = 0; - uint8_t f_u_dadda_rca8_fa6_or0 = 0; - uint8_t f_u_dadda_rca8_and_4_2 = 0; - uint8_t f_u_dadda_rca8_and_3_3 = 0; - uint8_t f_u_dadda_rca8_and_2_4 = 0; - uint8_t f_u_dadda_rca8_fa7_xor0 = 0; - uint8_t f_u_dadda_rca8_fa7_and0 = 0; - uint8_t f_u_dadda_rca8_fa7_xor1 = 0; - uint8_t f_u_dadda_rca8_fa7_and1 = 0; - uint8_t f_u_dadda_rca8_fa7_or0 = 0; - uint8_t f_u_dadda_rca8_and_1_5 = 0; - uint8_t f_u_dadda_rca8_and_0_6 = 0; - uint8_t f_u_dadda_rca8_fa8_xor0 = 0; - uint8_t f_u_dadda_rca8_fa8_and0 = 0; - uint8_t f_u_dadda_rca8_fa8_xor1 = 0; - uint8_t f_u_dadda_rca8_fa8_and1 = 0; - uint8_t f_u_dadda_rca8_fa8_or0 = 0; - uint8_t f_u_dadda_rca8_fa9_xor0 = 0; - uint8_t f_u_dadda_rca8_fa9_and0 = 0; - uint8_t f_u_dadda_rca8_fa9_xor1 = 0; - uint8_t f_u_dadda_rca8_fa9_and1 = 0; - uint8_t f_u_dadda_rca8_fa9_or0 = 0; - uint8_t f_u_dadda_rca8_and_3_4 = 0; - uint8_t f_u_dadda_rca8_and_2_5 = 0; - uint8_t f_u_dadda_rca8_and_1_6 = 0; - uint8_t f_u_dadda_rca8_fa10_xor0 = 0; - uint8_t f_u_dadda_rca8_fa10_and0 = 0; - uint8_t f_u_dadda_rca8_fa10_xor1 = 0; - uint8_t f_u_dadda_rca8_fa10_and1 = 0; - uint8_t f_u_dadda_rca8_fa10_or0 = 0; - uint8_t f_u_dadda_rca8_and_0_7 = 0; - uint8_t f_u_dadda_rca8_fa11_xor0 = 0; - uint8_t f_u_dadda_rca8_fa11_and0 = 0; - uint8_t f_u_dadda_rca8_fa11_xor1 = 0; - uint8_t f_u_dadda_rca8_fa11_and1 = 0; - uint8_t f_u_dadda_rca8_fa11_or0 = 0; - uint8_t f_u_dadda_rca8_fa12_xor0 = 0; - uint8_t f_u_dadda_rca8_fa12_and0 = 0; - uint8_t f_u_dadda_rca8_fa12_xor1 = 0; - uint8_t f_u_dadda_rca8_fa12_and1 = 0; - uint8_t f_u_dadda_rca8_fa12_or0 = 0; - uint8_t f_u_dadda_rca8_and_4_4 = 0; - uint8_t f_u_dadda_rca8_and_3_5 = 0; - uint8_t f_u_dadda_rca8_and_2_6 = 0; - uint8_t f_u_dadda_rca8_fa13_xor0 = 0; - uint8_t f_u_dadda_rca8_fa13_and0 = 0; - uint8_t f_u_dadda_rca8_fa13_xor1 = 0; - uint8_t f_u_dadda_rca8_fa13_and1 = 0; - uint8_t f_u_dadda_rca8_fa13_or0 = 0; - uint8_t f_u_dadda_rca8_and_1_7 = 0; - uint8_t f_u_dadda_rca8_fa14_xor0 = 0; - uint8_t f_u_dadda_rca8_fa14_and0 = 0; - uint8_t f_u_dadda_rca8_fa14_xor1 = 0; - uint8_t f_u_dadda_rca8_fa14_and1 = 0; - uint8_t f_u_dadda_rca8_fa14_or0 = 0; - uint8_t f_u_dadda_rca8_fa15_xor0 = 0; - uint8_t f_u_dadda_rca8_fa15_and0 = 0; - uint8_t f_u_dadda_rca8_fa15_xor1 = 0; - uint8_t f_u_dadda_rca8_fa15_and1 = 0; - uint8_t f_u_dadda_rca8_fa15_or0 = 0; - uint8_t f_u_dadda_rca8_and_6_3 = 0; - uint8_t f_u_dadda_rca8_and_5_4 = 0; - uint8_t f_u_dadda_rca8_and_4_5 = 0; - uint8_t f_u_dadda_rca8_fa16_xor0 = 0; - uint8_t f_u_dadda_rca8_fa16_and0 = 0; - uint8_t f_u_dadda_rca8_fa16_xor1 = 0; - uint8_t f_u_dadda_rca8_fa16_and1 = 0; - uint8_t f_u_dadda_rca8_fa16_or0 = 0; - uint8_t f_u_dadda_rca8_and_3_6 = 0; - uint8_t f_u_dadda_rca8_and_2_7 = 0; - uint8_t f_u_dadda_rca8_fa17_xor0 = 0; - uint8_t f_u_dadda_rca8_fa17_and0 = 0; - uint8_t f_u_dadda_rca8_fa17_xor1 = 0; - uint8_t f_u_dadda_rca8_fa17_and1 = 0; - uint8_t f_u_dadda_rca8_fa17_or0 = 0; - uint8_t f_u_dadda_rca8_fa18_xor0 = 0; - uint8_t f_u_dadda_rca8_fa18_and0 = 0; - uint8_t f_u_dadda_rca8_fa18_xor1 = 0; - uint8_t f_u_dadda_rca8_fa18_and1 = 0; - uint8_t f_u_dadda_rca8_fa18_or0 = 0; - uint8_t f_u_dadda_rca8_and_7_3 = 0; - uint8_t f_u_dadda_rca8_and_6_4 = 0; - uint8_t f_u_dadda_rca8_fa19_xor0 = 0; - uint8_t f_u_dadda_rca8_fa19_and0 = 0; - uint8_t f_u_dadda_rca8_fa19_xor1 = 0; - uint8_t f_u_dadda_rca8_fa19_and1 = 0; - uint8_t f_u_dadda_rca8_fa19_or0 = 0; - uint8_t f_u_dadda_rca8_and_5_5 = 0; - uint8_t f_u_dadda_rca8_and_4_6 = 0; - uint8_t f_u_dadda_rca8_and_3_7 = 0; - uint8_t f_u_dadda_rca8_fa20_xor0 = 0; - uint8_t f_u_dadda_rca8_fa20_and0 = 0; - uint8_t f_u_dadda_rca8_fa20_xor1 = 0; - uint8_t f_u_dadda_rca8_fa20_and1 = 0; - uint8_t f_u_dadda_rca8_fa20_or0 = 0; - uint8_t f_u_dadda_rca8_fa21_xor0 = 0; - uint8_t f_u_dadda_rca8_fa21_and0 = 0; - uint8_t f_u_dadda_rca8_fa21_xor1 = 0; - uint8_t f_u_dadda_rca8_fa21_and1 = 0; - uint8_t f_u_dadda_rca8_fa21_or0 = 0; - uint8_t f_u_dadda_rca8_and_7_4 = 0; - uint8_t f_u_dadda_rca8_and_6_5 = 0; - uint8_t f_u_dadda_rca8_and_5_6 = 0; - uint8_t f_u_dadda_rca8_fa22_xor0 = 0; - uint8_t f_u_dadda_rca8_fa22_and0 = 0; - uint8_t f_u_dadda_rca8_fa22_xor1 = 0; - uint8_t f_u_dadda_rca8_fa22_and1 = 0; - uint8_t f_u_dadda_rca8_fa22_or0 = 0; - uint8_t f_u_dadda_rca8_and_7_5 = 0; - uint8_t f_u_dadda_rca8_fa23_xor0 = 0; - uint8_t f_u_dadda_rca8_fa23_and0 = 0; - uint8_t f_u_dadda_rca8_fa23_xor1 = 0; - uint8_t f_u_dadda_rca8_fa23_and1 = 0; - uint8_t f_u_dadda_rca8_fa23_or0 = 0; - uint8_t f_u_dadda_rca8_and_2_0 = 0; - uint8_t f_u_dadda_rca8_and_1_1 = 0; - uint8_t f_u_dadda_rca8_ha6_xor0 = 0; - uint8_t f_u_dadda_rca8_ha6_and0 = 0; - uint8_t f_u_dadda_rca8_and_1_2 = 0; - uint8_t f_u_dadda_rca8_and_0_3 = 0; - uint8_t f_u_dadda_rca8_fa24_xor0 = 0; - uint8_t f_u_dadda_rca8_fa24_and0 = 0; - uint8_t f_u_dadda_rca8_fa24_xor1 = 0; - uint8_t f_u_dadda_rca8_fa24_and1 = 0; - uint8_t f_u_dadda_rca8_fa24_or0 = 0; - uint8_t f_u_dadda_rca8_and_0_4 = 0; - uint8_t f_u_dadda_rca8_fa25_xor0 = 0; - uint8_t f_u_dadda_rca8_fa25_and0 = 0; - uint8_t f_u_dadda_rca8_fa25_xor1 = 0; - uint8_t f_u_dadda_rca8_fa25_and1 = 0; - uint8_t f_u_dadda_rca8_fa25_or0 = 0; - uint8_t f_u_dadda_rca8_fa26_xor0 = 0; - uint8_t f_u_dadda_rca8_fa26_and0 = 0; - uint8_t f_u_dadda_rca8_fa26_xor1 = 0; - uint8_t f_u_dadda_rca8_fa26_and1 = 0; - uint8_t f_u_dadda_rca8_fa26_or0 = 0; - uint8_t f_u_dadda_rca8_fa27_xor0 = 0; - uint8_t f_u_dadda_rca8_fa27_and0 = 0; - uint8_t f_u_dadda_rca8_fa27_xor1 = 0; - uint8_t f_u_dadda_rca8_fa27_and1 = 0; - uint8_t f_u_dadda_rca8_fa27_or0 = 0; - uint8_t f_u_dadda_rca8_fa28_xor0 = 0; - uint8_t f_u_dadda_rca8_fa28_and0 = 0; - uint8_t f_u_dadda_rca8_fa28_xor1 = 0; - uint8_t f_u_dadda_rca8_fa28_and1 = 0; - uint8_t f_u_dadda_rca8_fa28_or0 = 0; - uint8_t f_u_dadda_rca8_fa29_xor0 = 0; - uint8_t f_u_dadda_rca8_fa29_and0 = 0; - uint8_t f_u_dadda_rca8_fa29_xor1 = 0; - uint8_t f_u_dadda_rca8_fa29_and1 = 0; - uint8_t f_u_dadda_rca8_fa29_or0 = 0; - uint8_t f_u_dadda_rca8_fa30_xor0 = 0; - uint8_t f_u_dadda_rca8_fa30_and0 = 0; - uint8_t f_u_dadda_rca8_fa30_xor1 = 0; - uint8_t f_u_dadda_rca8_fa30_and1 = 0; - uint8_t f_u_dadda_rca8_fa30_or0 = 0; - uint8_t f_u_dadda_rca8_fa31_xor0 = 0; - uint8_t f_u_dadda_rca8_fa31_and0 = 0; - uint8_t f_u_dadda_rca8_fa31_xor1 = 0; - uint8_t f_u_dadda_rca8_fa31_and1 = 0; - uint8_t f_u_dadda_rca8_fa31_or0 = 0; - uint8_t f_u_dadda_rca8_and_4_7 = 0; - uint8_t f_u_dadda_rca8_fa32_xor0 = 0; - uint8_t f_u_dadda_rca8_fa32_and0 = 0; - uint8_t f_u_dadda_rca8_fa32_xor1 = 0; - uint8_t f_u_dadda_rca8_fa32_and1 = 0; - uint8_t f_u_dadda_rca8_fa32_or0 = 0; - uint8_t f_u_dadda_rca8_and_6_6 = 0; - uint8_t f_u_dadda_rca8_and_5_7 = 0; - uint8_t f_u_dadda_rca8_fa33_xor0 = 0; - uint8_t f_u_dadda_rca8_fa33_and0 = 0; - uint8_t f_u_dadda_rca8_fa33_xor1 = 0; - uint8_t f_u_dadda_rca8_fa33_and1 = 0; - uint8_t f_u_dadda_rca8_fa33_or0 = 0; - uint8_t f_u_dadda_rca8_and_7_6 = 0; - uint8_t f_u_dadda_rca8_fa34_xor0 = 0; - uint8_t f_u_dadda_rca8_fa34_and0 = 0; - uint8_t f_u_dadda_rca8_fa34_xor1 = 0; - uint8_t f_u_dadda_rca8_fa34_and1 = 0; - uint8_t f_u_dadda_rca8_fa34_or0 = 0; - uint8_t f_u_dadda_rca8_and_0_0 = 0; - uint8_t f_u_dadda_rca8_and_1_0 = 0; - uint8_t f_u_dadda_rca8_and_0_2 = 0; - uint8_t f_u_dadda_rca8_and_6_7 = 0; - uint8_t f_u_dadda_rca8_and_0_1 = 0; - uint8_t f_u_dadda_rca8_and_7_7 = 0; - uint8_t f_u_dadda_rca8_u_rca14_ha_xor0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_ha_and0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa1_xor0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa1_and0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa1_xor1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa1_and1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa1_or0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa2_xor0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa2_and0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa2_xor1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa2_and1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa2_or0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa3_xor0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa3_and0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa3_xor1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa3_and1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa3_or0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa4_xor0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa4_and0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa4_xor1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa4_and1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa4_or0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa5_xor0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa5_and0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa5_xor1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa5_and1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa5_or0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa6_xor0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa6_and0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa6_xor1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa6_and1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa6_or0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa7_xor0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa7_and0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa7_xor1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa7_and1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa7_or0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa8_xor0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa8_and0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa8_xor1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa8_and1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa8_or0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa9_xor0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa9_and0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa9_xor1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa9_and1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa9_or0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa10_xor0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa10_and0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa10_xor1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa10_and1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa10_or0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa11_xor0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa11_and0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa11_xor1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa11_and1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa11_or0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa12_xor0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa12_and0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa12_xor1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa12_and1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa12_or0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa13_xor0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa13_and0 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa13_xor1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa13_and1 = 0; - uint8_t f_u_dadda_rca8_u_rca14_fa13_or0 = 0; - - f_u_dadda_rca8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_rca8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_rca8_ha0_xor0 = ((f_u_dadda_rca8_and_6_0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_5_1 >> 0) & 0x01); - f_u_dadda_rca8_ha0_and0 = ((f_u_dadda_rca8_and_6_0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_5_1 >> 0) & 0x01); - f_u_dadda_rca8_and_7_0 = ((a >> 7) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_rca8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_rca8_fa0_xor0 = ((f_u_dadda_rca8_ha0_and0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_7_0 >> 0) & 0x01); - f_u_dadda_rca8_fa0_and0 = ((f_u_dadda_rca8_ha0_and0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_7_0 >> 0) & 0x01); - f_u_dadda_rca8_fa0_xor1 = ((f_u_dadda_rca8_fa0_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_6_1 >> 0) & 0x01); - f_u_dadda_rca8_fa0_and1 = ((f_u_dadda_rca8_fa0_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_6_1 >> 0) & 0x01); - f_u_dadda_rca8_fa0_or0 = ((f_u_dadda_rca8_fa0_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa0_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_rca8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_rca8_ha1_xor0 = ((f_u_dadda_rca8_and_5_2 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_4_3 >> 0) & 0x01); - f_u_dadda_rca8_ha1_and0 = ((f_u_dadda_rca8_and_5_2 >> 0) & 0x01) & ((f_u_dadda_rca8_and_4_3 >> 0) & 0x01); - f_u_dadda_rca8_and_7_1 = ((a >> 7) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_rca8_fa1_xor0 = ((f_u_dadda_rca8_ha1_and0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa0_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa1_and0 = ((f_u_dadda_rca8_ha1_and0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa0_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa1_xor1 = ((f_u_dadda_rca8_fa1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_7_1 >> 0) & 0x01); - f_u_dadda_rca8_fa1_and1 = ((f_u_dadda_rca8_fa1_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_7_1 >> 0) & 0x01); - f_u_dadda_rca8_fa1_or0 = ((f_u_dadda_rca8_fa1_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa1_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_rca8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_rca8_ha2_xor0 = ((f_u_dadda_rca8_and_6_2 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_5_3 >> 0) & 0x01); - f_u_dadda_rca8_ha2_and0 = ((f_u_dadda_rca8_and_6_2 >> 0) & 0x01) & ((f_u_dadda_rca8_and_5_3 >> 0) & 0x01); - f_u_dadda_rca8_and_7_2 = ((a >> 7) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_rca8_fa2_xor0 = ((f_u_dadda_rca8_ha2_and0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa1_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa2_and0 = ((f_u_dadda_rca8_ha2_and0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa1_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa2_xor1 = ((f_u_dadda_rca8_fa2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_7_2 >> 0) & 0x01); - f_u_dadda_rca8_fa2_and1 = ((f_u_dadda_rca8_fa2_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_7_2 >> 0) & 0x01); - f_u_dadda_rca8_fa2_or0 = ((f_u_dadda_rca8_fa2_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa2_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_rca8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_rca8_ha3_xor0 = ((f_u_dadda_rca8_and_3_0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_2_1 >> 0) & 0x01); - f_u_dadda_rca8_ha3_and0 = ((f_u_dadda_rca8_and_3_0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_2_1 >> 0) & 0x01); - f_u_dadda_rca8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_rca8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_rca8_fa3_xor0 = ((f_u_dadda_rca8_ha3_and0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_4_0 >> 0) & 0x01); - f_u_dadda_rca8_fa3_and0 = ((f_u_dadda_rca8_ha3_and0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_4_0 >> 0) & 0x01); - f_u_dadda_rca8_fa3_xor1 = ((f_u_dadda_rca8_fa3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_3_1 >> 0) & 0x01); - f_u_dadda_rca8_fa3_and1 = ((f_u_dadda_rca8_fa3_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_3_1 >> 0) & 0x01); - f_u_dadda_rca8_fa3_or0 = ((f_u_dadda_rca8_fa3_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa3_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_rca8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_rca8_ha4_xor0 = ((f_u_dadda_rca8_and_2_2 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_1_3 >> 0) & 0x01); - f_u_dadda_rca8_ha4_and0 = ((f_u_dadda_rca8_and_2_2 >> 0) & 0x01) & ((f_u_dadda_rca8_and_1_3 >> 0) & 0x01); - f_u_dadda_rca8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_rca8_fa4_xor0 = ((f_u_dadda_rca8_ha4_and0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa3_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa4_and0 = ((f_u_dadda_rca8_ha4_and0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa3_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa4_xor1 = ((f_u_dadda_rca8_fa4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_5_0 >> 0) & 0x01); - f_u_dadda_rca8_fa4_and1 = ((f_u_dadda_rca8_fa4_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_5_0 >> 0) & 0x01); - f_u_dadda_rca8_fa4_or0 = ((f_u_dadda_rca8_fa4_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa4_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_rca8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_rca8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_rca8_fa5_xor0 = ((f_u_dadda_rca8_and_4_1 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_3_2 >> 0) & 0x01); - f_u_dadda_rca8_fa5_and0 = ((f_u_dadda_rca8_and_4_1 >> 0) & 0x01) & ((f_u_dadda_rca8_and_3_2 >> 0) & 0x01); - f_u_dadda_rca8_fa5_xor1 = ((f_u_dadda_rca8_fa5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_2_3 >> 0) & 0x01); - f_u_dadda_rca8_fa5_and1 = ((f_u_dadda_rca8_fa5_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_2_3 >> 0) & 0x01); - f_u_dadda_rca8_fa5_or0 = ((f_u_dadda_rca8_fa5_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa5_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_rca8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_rca8_ha5_xor0 = ((f_u_dadda_rca8_and_1_4 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_0_5 >> 0) & 0x01); - f_u_dadda_rca8_ha5_and0 = ((f_u_dadda_rca8_and_1_4 >> 0) & 0x01) & ((f_u_dadda_rca8_and_0_5 >> 0) & 0x01); - f_u_dadda_rca8_fa6_xor0 = ((f_u_dadda_rca8_ha5_and0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa5_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa6_and0 = ((f_u_dadda_rca8_ha5_and0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa5_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa6_xor1 = ((f_u_dadda_rca8_fa6_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa4_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa6_and1 = ((f_u_dadda_rca8_fa6_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa4_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa6_or0 = ((f_u_dadda_rca8_fa6_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa6_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_rca8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_rca8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_rca8_fa7_xor0 = ((f_u_dadda_rca8_and_4_2 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_3_3 >> 0) & 0x01); - f_u_dadda_rca8_fa7_and0 = ((f_u_dadda_rca8_and_4_2 >> 0) & 0x01) & ((f_u_dadda_rca8_and_3_3 >> 0) & 0x01); - f_u_dadda_rca8_fa7_xor1 = ((f_u_dadda_rca8_fa7_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_2_4 >> 0) & 0x01); - f_u_dadda_rca8_fa7_and1 = ((f_u_dadda_rca8_fa7_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_2_4 >> 0) & 0x01); - f_u_dadda_rca8_fa7_or0 = ((f_u_dadda_rca8_fa7_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa7_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_rca8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_rca8_fa8_xor0 = ((f_u_dadda_rca8_and_1_5 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_0_6 >> 0) & 0x01); - f_u_dadda_rca8_fa8_and0 = ((f_u_dadda_rca8_and_1_5 >> 0) & 0x01) & ((f_u_dadda_rca8_and_0_6 >> 0) & 0x01); - f_u_dadda_rca8_fa8_xor1 = ((f_u_dadda_rca8_fa8_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_ha0_xor0 >> 0) & 0x01); - f_u_dadda_rca8_fa8_and1 = ((f_u_dadda_rca8_fa8_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_ha0_xor0 >> 0) & 0x01); - f_u_dadda_rca8_fa8_or0 = ((f_u_dadda_rca8_fa8_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa8_and1 >> 0) & 0x01); - f_u_dadda_rca8_fa9_xor0 = ((f_u_dadda_rca8_fa8_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa7_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa9_and0 = ((f_u_dadda_rca8_fa8_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa7_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa9_xor1 = ((f_u_dadda_rca8_fa9_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa6_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa9_and1 = ((f_u_dadda_rca8_fa9_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa6_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa9_or0 = ((f_u_dadda_rca8_fa9_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa9_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_rca8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_rca8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_rca8_fa10_xor0 = ((f_u_dadda_rca8_and_3_4 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_2_5 >> 0) & 0x01); - f_u_dadda_rca8_fa10_and0 = ((f_u_dadda_rca8_and_3_4 >> 0) & 0x01) & ((f_u_dadda_rca8_and_2_5 >> 0) & 0x01); - f_u_dadda_rca8_fa10_xor1 = ((f_u_dadda_rca8_fa10_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_1_6 >> 0) & 0x01); - f_u_dadda_rca8_fa10_and1 = ((f_u_dadda_rca8_fa10_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_1_6 >> 0) & 0x01); - f_u_dadda_rca8_fa10_or0 = ((f_u_dadda_rca8_fa10_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa10_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_0_7 = ((a >> 0) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_rca8_fa11_xor0 = ((f_u_dadda_rca8_and_0_7 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa0_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa11_and0 = ((f_u_dadda_rca8_and_0_7 >> 0) & 0x01) & ((f_u_dadda_rca8_fa0_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa11_xor1 = ((f_u_dadda_rca8_fa11_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_ha1_xor0 >> 0) & 0x01); - f_u_dadda_rca8_fa11_and1 = ((f_u_dadda_rca8_fa11_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_ha1_xor0 >> 0) & 0x01); - f_u_dadda_rca8_fa11_or0 = ((f_u_dadda_rca8_fa11_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa11_and1 >> 0) & 0x01); - f_u_dadda_rca8_fa12_xor0 = ((f_u_dadda_rca8_fa11_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa10_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa12_and0 = ((f_u_dadda_rca8_fa11_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa10_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa12_xor1 = ((f_u_dadda_rca8_fa12_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa9_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa12_and1 = ((f_u_dadda_rca8_fa12_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa9_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa12_or0 = ((f_u_dadda_rca8_fa12_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa12_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_rca8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_rca8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_rca8_fa13_xor0 = ((f_u_dadda_rca8_and_4_4 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_3_5 >> 0) & 0x01); - f_u_dadda_rca8_fa13_and0 = ((f_u_dadda_rca8_and_4_4 >> 0) & 0x01) & ((f_u_dadda_rca8_and_3_5 >> 0) & 0x01); - f_u_dadda_rca8_fa13_xor1 = ((f_u_dadda_rca8_fa13_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_2_6 >> 0) & 0x01); - f_u_dadda_rca8_fa13_and1 = ((f_u_dadda_rca8_fa13_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_2_6 >> 0) & 0x01); - f_u_dadda_rca8_fa13_or0 = ((f_u_dadda_rca8_fa13_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa13_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_1_7 = ((a >> 1) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_rca8_fa14_xor0 = ((f_u_dadda_rca8_and_1_7 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa1_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa14_and0 = ((f_u_dadda_rca8_and_1_7 >> 0) & 0x01) & ((f_u_dadda_rca8_fa1_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa14_xor1 = ((f_u_dadda_rca8_fa14_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_ha2_xor0 >> 0) & 0x01); - f_u_dadda_rca8_fa14_and1 = ((f_u_dadda_rca8_fa14_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_ha2_xor0 >> 0) & 0x01); - f_u_dadda_rca8_fa14_or0 = ((f_u_dadda_rca8_fa14_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa14_and1 >> 0) & 0x01); - f_u_dadda_rca8_fa15_xor0 = ((f_u_dadda_rca8_fa14_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa13_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa15_and0 = ((f_u_dadda_rca8_fa14_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa13_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa15_xor1 = ((f_u_dadda_rca8_fa15_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa12_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa15_and1 = ((f_u_dadda_rca8_fa15_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa12_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa15_or0 = ((f_u_dadda_rca8_fa15_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa15_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_rca8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_rca8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_rca8_fa16_xor0 = ((f_u_dadda_rca8_and_6_3 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_5_4 >> 0) & 0x01); - f_u_dadda_rca8_fa16_and0 = ((f_u_dadda_rca8_and_6_3 >> 0) & 0x01) & ((f_u_dadda_rca8_and_5_4 >> 0) & 0x01); - f_u_dadda_rca8_fa16_xor1 = ((f_u_dadda_rca8_fa16_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_4_5 >> 0) & 0x01); - f_u_dadda_rca8_fa16_and1 = ((f_u_dadda_rca8_fa16_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_4_5 >> 0) & 0x01); - f_u_dadda_rca8_fa16_or0 = ((f_u_dadda_rca8_fa16_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa16_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_rca8_and_2_7 = ((a >> 2) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_rca8_fa17_xor0 = ((f_u_dadda_rca8_and_3_6 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_2_7 >> 0) & 0x01); - f_u_dadda_rca8_fa17_and0 = ((f_u_dadda_rca8_and_3_6 >> 0) & 0x01) & ((f_u_dadda_rca8_and_2_7 >> 0) & 0x01); - f_u_dadda_rca8_fa17_xor1 = ((f_u_dadda_rca8_fa17_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa2_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa17_and1 = ((f_u_dadda_rca8_fa17_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa2_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa17_or0 = ((f_u_dadda_rca8_fa17_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa17_and1 >> 0) & 0x01); - f_u_dadda_rca8_fa18_xor0 = ((f_u_dadda_rca8_fa17_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa16_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa18_and0 = ((f_u_dadda_rca8_fa17_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa16_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa18_xor1 = ((f_u_dadda_rca8_fa18_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa15_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa18_and1 = ((f_u_dadda_rca8_fa18_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa15_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa18_or0 = ((f_u_dadda_rca8_fa18_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa18_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_7_3 = ((a >> 7) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_rca8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_rca8_fa19_xor0 = ((f_u_dadda_rca8_fa2_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_7_3 >> 0) & 0x01); - f_u_dadda_rca8_fa19_and0 = ((f_u_dadda_rca8_fa2_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_7_3 >> 0) & 0x01); - f_u_dadda_rca8_fa19_xor1 = ((f_u_dadda_rca8_fa19_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_6_4 >> 0) & 0x01); - f_u_dadda_rca8_fa19_and1 = ((f_u_dadda_rca8_fa19_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_6_4 >> 0) & 0x01); - f_u_dadda_rca8_fa19_or0 = ((f_u_dadda_rca8_fa19_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa19_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_rca8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_rca8_and_3_7 = ((a >> 3) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_rca8_fa20_xor0 = ((f_u_dadda_rca8_and_5_5 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_4_6 >> 0) & 0x01); - f_u_dadda_rca8_fa20_and0 = ((f_u_dadda_rca8_and_5_5 >> 0) & 0x01) & ((f_u_dadda_rca8_and_4_6 >> 0) & 0x01); - f_u_dadda_rca8_fa20_xor1 = ((f_u_dadda_rca8_fa20_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_3_7 >> 0) & 0x01); - f_u_dadda_rca8_fa20_and1 = ((f_u_dadda_rca8_fa20_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_3_7 >> 0) & 0x01); - f_u_dadda_rca8_fa20_or0 = ((f_u_dadda_rca8_fa20_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa20_and1 >> 0) & 0x01); - f_u_dadda_rca8_fa21_xor0 = ((f_u_dadda_rca8_fa20_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa19_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa21_and0 = ((f_u_dadda_rca8_fa20_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa19_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa21_xor1 = ((f_u_dadda_rca8_fa21_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa18_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa21_and1 = ((f_u_dadda_rca8_fa21_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa18_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa21_or0 = ((f_u_dadda_rca8_fa21_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa21_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_7_4 = ((a >> 7) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_rca8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_rca8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_rca8_fa22_xor0 = ((f_u_dadda_rca8_and_7_4 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_6_5 >> 0) & 0x01); - f_u_dadda_rca8_fa22_and0 = ((f_u_dadda_rca8_and_7_4 >> 0) & 0x01) & ((f_u_dadda_rca8_and_6_5 >> 0) & 0x01); - f_u_dadda_rca8_fa22_xor1 = ((f_u_dadda_rca8_fa22_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_5_6 >> 0) & 0x01); - f_u_dadda_rca8_fa22_and1 = ((f_u_dadda_rca8_fa22_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_5_6 >> 0) & 0x01); - f_u_dadda_rca8_fa22_or0 = ((f_u_dadda_rca8_fa22_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa22_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_7_5 = ((a >> 7) & 0x01) & ((b >> 5) & 0x01); - f_u_dadda_rca8_fa23_xor0 = ((f_u_dadda_rca8_fa22_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa21_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa23_and0 = ((f_u_dadda_rca8_fa22_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa21_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa23_xor1 = ((f_u_dadda_rca8_fa23_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_7_5 >> 0) & 0x01); - f_u_dadda_rca8_fa23_and1 = ((f_u_dadda_rca8_fa23_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_7_5 >> 0) & 0x01); - f_u_dadda_rca8_fa23_or0 = ((f_u_dadda_rca8_fa23_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa23_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_rca8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_rca8_ha6_xor0 = ((f_u_dadda_rca8_and_2_0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_1_1 >> 0) & 0x01); - f_u_dadda_rca8_ha6_and0 = ((f_u_dadda_rca8_and_2_0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_1_1 >> 0) & 0x01); - f_u_dadda_rca8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_rca8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_dadda_rca8_fa24_xor0 = ((f_u_dadda_rca8_ha6_and0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_1_2 >> 0) & 0x01); - f_u_dadda_rca8_fa24_and0 = ((f_u_dadda_rca8_ha6_and0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_1_2 >> 0) & 0x01); - f_u_dadda_rca8_fa24_xor1 = ((f_u_dadda_rca8_fa24_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_0_3 >> 0) & 0x01); - f_u_dadda_rca8_fa24_and1 = ((f_u_dadda_rca8_fa24_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_0_3 >> 0) & 0x01); - f_u_dadda_rca8_fa24_or0 = ((f_u_dadda_rca8_fa24_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa24_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_u_dadda_rca8_fa25_xor0 = ((f_u_dadda_rca8_fa24_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_0_4 >> 0) & 0x01); - f_u_dadda_rca8_fa25_and0 = ((f_u_dadda_rca8_fa24_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_0_4 >> 0) & 0x01); - f_u_dadda_rca8_fa25_xor1 = ((f_u_dadda_rca8_fa25_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa3_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa25_and1 = ((f_u_dadda_rca8_fa25_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa3_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa25_or0 = ((f_u_dadda_rca8_fa25_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa25_and1 >> 0) & 0x01); - f_u_dadda_rca8_fa26_xor0 = ((f_u_dadda_rca8_fa25_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa4_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa26_and0 = ((f_u_dadda_rca8_fa25_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa4_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa26_xor1 = ((f_u_dadda_rca8_fa26_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa5_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa26_and1 = ((f_u_dadda_rca8_fa26_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa5_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa26_or0 = ((f_u_dadda_rca8_fa26_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa26_and1 >> 0) & 0x01); - f_u_dadda_rca8_fa27_xor0 = ((f_u_dadda_rca8_fa26_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa6_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa27_and0 = ((f_u_dadda_rca8_fa26_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa6_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa27_xor1 = ((f_u_dadda_rca8_fa27_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa7_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa27_and1 = ((f_u_dadda_rca8_fa27_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa7_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa27_or0 = ((f_u_dadda_rca8_fa27_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa27_and1 >> 0) & 0x01); - f_u_dadda_rca8_fa28_xor0 = ((f_u_dadda_rca8_fa27_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa9_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa28_and0 = ((f_u_dadda_rca8_fa27_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa9_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa28_xor1 = ((f_u_dadda_rca8_fa28_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa10_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa28_and1 = ((f_u_dadda_rca8_fa28_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa10_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa28_or0 = ((f_u_dadda_rca8_fa28_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa28_and1 >> 0) & 0x01); - f_u_dadda_rca8_fa29_xor0 = ((f_u_dadda_rca8_fa28_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa12_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa29_and0 = ((f_u_dadda_rca8_fa28_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa12_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa29_xor1 = ((f_u_dadda_rca8_fa29_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa13_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa29_and1 = ((f_u_dadda_rca8_fa29_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa13_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa29_or0 = ((f_u_dadda_rca8_fa29_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa29_and1 >> 0) & 0x01); - f_u_dadda_rca8_fa30_xor0 = ((f_u_dadda_rca8_fa29_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa15_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa30_and0 = ((f_u_dadda_rca8_fa29_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa15_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa30_xor1 = ((f_u_dadda_rca8_fa30_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa16_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa30_and1 = ((f_u_dadda_rca8_fa30_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa16_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa30_or0 = ((f_u_dadda_rca8_fa30_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa30_and1 >> 0) & 0x01); - f_u_dadda_rca8_fa31_xor0 = ((f_u_dadda_rca8_fa30_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa18_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa31_and0 = ((f_u_dadda_rca8_fa30_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa18_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa31_xor1 = ((f_u_dadda_rca8_fa31_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa19_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa31_and1 = ((f_u_dadda_rca8_fa31_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa19_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa31_or0 = ((f_u_dadda_rca8_fa31_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa31_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_4_7 = ((a >> 4) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_rca8_fa32_xor0 = ((f_u_dadda_rca8_fa31_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_4_7 >> 0) & 0x01); - f_u_dadda_rca8_fa32_and0 = ((f_u_dadda_rca8_fa31_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_4_7 >> 0) & 0x01); - f_u_dadda_rca8_fa32_xor1 = ((f_u_dadda_rca8_fa32_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa21_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa32_and1 = ((f_u_dadda_rca8_fa32_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa21_xor1 >> 0) & 0x01); - f_u_dadda_rca8_fa32_or0 = ((f_u_dadda_rca8_fa32_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa32_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_rca8_and_5_7 = ((a >> 5) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_rca8_fa33_xor0 = ((f_u_dadda_rca8_fa32_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_6_6 >> 0) & 0x01); - f_u_dadda_rca8_fa33_and0 = ((f_u_dadda_rca8_fa32_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_6_6 >> 0) & 0x01); - f_u_dadda_rca8_fa33_xor1 = ((f_u_dadda_rca8_fa33_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_5_7 >> 0) & 0x01); - f_u_dadda_rca8_fa33_and1 = ((f_u_dadda_rca8_fa33_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_5_7 >> 0) & 0x01); - f_u_dadda_rca8_fa33_or0 = ((f_u_dadda_rca8_fa33_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa33_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_7_6 = ((a >> 7) & 0x01) & ((b >> 6) & 0x01); - f_u_dadda_rca8_fa34_xor0 = ((f_u_dadda_rca8_fa33_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa23_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa34_and0 = ((f_u_dadda_rca8_fa33_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa23_or0 >> 0) & 0x01); - f_u_dadda_rca8_fa34_xor1 = ((f_u_dadda_rca8_fa34_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_7_6 >> 0) & 0x01); - f_u_dadda_rca8_fa34_and1 = ((f_u_dadda_rca8_fa34_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_7_6 >> 0) & 0x01); - f_u_dadda_rca8_fa34_or0 = ((f_u_dadda_rca8_fa34_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_fa34_and1 >> 0) & 0x01); - f_u_dadda_rca8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_rca8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_dadda_rca8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_dadda_rca8_and_6_7 = ((a >> 6) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_rca8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_dadda_rca8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_u_dadda_rca8_u_rca14_ha_xor0 = ((f_u_dadda_rca8_and_1_0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_0_1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_ha_and0 = ((f_u_dadda_rca8_and_1_0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_0_1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa1_xor0 = ((f_u_dadda_rca8_and_0_2 >> 0) & 0x01) ^ ((f_u_dadda_rca8_ha6_xor0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa1_and0 = ((f_u_dadda_rca8_and_0_2 >> 0) & 0x01) & ((f_u_dadda_rca8_ha6_xor0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa1_xor1 = ((f_u_dadda_rca8_u_rca14_fa1_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_u_rca14_ha_and0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa1_and1 = ((f_u_dadda_rca8_u_rca14_fa1_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_u_rca14_ha_and0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa1_or0 = ((f_u_dadda_rca8_u_rca14_fa1_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_u_rca14_fa1_and1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa2_xor0 = ((f_u_dadda_rca8_ha3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa24_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa2_and0 = ((f_u_dadda_rca8_ha3_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa24_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa2_xor1 = ((f_u_dadda_rca8_u_rca14_fa2_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_u_rca14_fa1_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa2_and1 = ((f_u_dadda_rca8_u_rca14_fa2_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_u_rca14_fa1_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa2_or0 = ((f_u_dadda_rca8_u_rca14_fa2_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_u_rca14_fa2_and1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa3_xor0 = ((f_u_dadda_rca8_ha4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa25_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa3_and0 = ((f_u_dadda_rca8_ha4_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa25_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa3_xor1 = ((f_u_dadda_rca8_u_rca14_fa3_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_u_rca14_fa2_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa3_and1 = ((f_u_dadda_rca8_u_rca14_fa3_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_u_rca14_fa2_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa3_or0 = ((f_u_dadda_rca8_u_rca14_fa3_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_u_rca14_fa3_and1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa4_xor0 = ((f_u_dadda_rca8_ha5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa26_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa4_and0 = ((f_u_dadda_rca8_ha5_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_fa26_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa4_xor1 = ((f_u_dadda_rca8_u_rca14_fa4_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_u_rca14_fa3_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa4_and1 = ((f_u_dadda_rca8_u_rca14_fa4_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_u_rca14_fa3_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa4_or0 = ((f_u_dadda_rca8_u_rca14_fa4_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_u_rca14_fa4_and1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa5_xor0 = ((f_u_dadda_rca8_fa8_xor1 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa27_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa5_and0 = ((f_u_dadda_rca8_fa8_xor1 >> 0) & 0x01) & ((f_u_dadda_rca8_fa27_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa5_xor1 = ((f_u_dadda_rca8_u_rca14_fa5_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_u_rca14_fa4_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa5_and1 = ((f_u_dadda_rca8_u_rca14_fa5_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_u_rca14_fa4_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa5_or0 = ((f_u_dadda_rca8_u_rca14_fa5_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_u_rca14_fa5_and1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa6_xor0 = ((f_u_dadda_rca8_fa11_xor1 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa28_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa6_and0 = ((f_u_dadda_rca8_fa11_xor1 >> 0) & 0x01) & ((f_u_dadda_rca8_fa28_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa6_xor1 = ((f_u_dadda_rca8_u_rca14_fa6_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_u_rca14_fa5_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa6_and1 = ((f_u_dadda_rca8_u_rca14_fa6_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_u_rca14_fa5_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa6_or0 = ((f_u_dadda_rca8_u_rca14_fa6_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_u_rca14_fa6_and1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa7_xor0 = ((f_u_dadda_rca8_fa14_xor1 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa29_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa7_and0 = ((f_u_dadda_rca8_fa14_xor1 >> 0) & 0x01) & ((f_u_dadda_rca8_fa29_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa7_xor1 = ((f_u_dadda_rca8_u_rca14_fa7_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_u_rca14_fa6_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa7_and1 = ((f_u_dadda_rca8_u_rca14_fa7_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_u_rca14_fa6_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa7_or0 = ((f_u_dadda_rca8_u_rca14_fa7_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_u_rca14_fa7_and1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa8_xor0 = ((f_u_dadda_rca8_fa17_xor1 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa30_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa8_and0 = ((f_u_dadda_rca8_fa17_xor1 >> 0) & 0x01) & ((f_u_dadda_rca8_fa30_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa8_xor1 = ((f_u_dadda_rca8_u_rca14_fa8_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_u_rca14_fa7_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa8_and1 = ((f_u_dadda_rca8_u_rca14_fa8_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_u_rca14_fa7_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa8_or0 = ((f_u_dadda_rca8_u_rca14_fa8_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_u_rca14_fa8_and1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa9_xor0 = ((f_u_dadda_rca8_fa20_xor1 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa31_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa9_and0 = ((f_u_dadda_rca8_fa20_xor1 >> 0) & 0x01) & ((f_u_dadda_rca8_fa31_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa9_xor1 = ((f_u_dadda_rca8_u_rca14_fa9_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_u_rca14_fa8_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa9_and1 = ((f_u_dadda_rca8_u_rca14_fa9_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_u_rca14_fa8_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa9_or0 = ((f_u_dadda_rca8_u_rca14_fa9_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_u_rca14_fa9_and1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa10_xor0 = ((f_u_dadda_rca8_fa22_xor1 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa32_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa10_and0 = ((f_u_dadda_rca8_fa22_xor1 >> 0) & 0x01) & ((f_u_dadda_rca8_fa32_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa10_xor1 = ((f_u_dadda_rca8_u_rca14_fa10_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_u_rca14_fa9_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa10_and1 = ((f_u_dadda_rca8_u_rca14_fa10_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_u_rca14_fa9_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa10_or0 = ((f_u_dadda_rca8_u_rca14_fa10_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_u_rca14_fa10_and1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa11_xor0 = ((f_u_dadda_rca8_fa23_xor1 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa33_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa11_and0 = ((f_u_dadda_rca8_fa23_xor1 >> 0) & 0x01) & ((f_u_dadda_rca8_fa33_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa11_xor1 = ((f_u_dadda_rca8_u_rca14_fa11_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_u_rca14_fa10_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa11_and1 = ((f_u_dadda_rca8_u_rca14_fa11_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_u_rca14_fa10_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa11_or0 = ((f_u_dadda_rca8_u_rca14_fa11_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_u_rca14_fa11_and1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa12_xor0 = ((f_u_dadda_rca8_and_6_7 >> 0) & 0x01) ^ ((f_u_dadda_rca8_fa34_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa12_and0 = ((f_u_dadda_rca8_and_6_7 >> 0) & 0x01) & ((f_u_dadda_rca8_fa34_xor1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa12_xor1 = ((f_u_dadda_rca8_u_rca14_fa12_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_u_rca14_fa11_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa12_and1 = ((f_u_dadda_rca8_u_rca14_fa12_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_u_rca14_fa11_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa12_or0 = ((f_u_dadda_rca8_u_rca14_fa12_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_u_rca14_fa12_and1 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa13_xor0 = ((f_u_dadda_rca8_fa34_or0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_and_7_7 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa13_and0 = ((f_u_dadda_rca8_fa34_or0 >> 0) & 0x01) & ((f_u_dadda_rca8_and_7_7 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa13_xor1 = ((f_u_dadda_rca8_u_rca14_fa13_xor0 >> 0) & 0x01) ^ ((f_u_dadda_rca8_u_rca14_fa12_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa13_and1 = ((f_u_dadda_rca8_u_rca14_fa13_xor0 >> 0) & 0x01) & ((f_u_dadda_rca8_u_rca14_fa12_or0 >> 0) & 0x01); - f_u_dadda_rca8_u_rca14_fa13_or0 = ((f_u_dadda_rca8_u_rca14_fa13_and0 >> 0) & 0x01) | ((f_u_dadda_rca8_u_rca14_fa13_and1 >> 0) & 0x01); - - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_and_0_0 >> 0) & 0x01) << 0; - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_u_rca14_ha_xor0 >> 0) & 0x01) << 1; - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_u_rca14_fa1_xor1 >> 0) & 0x01) << 2; - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_u_rca14_fa2_xor1 >> 0) & 0x01) << 3; - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_u_rca14_fa3_xor1 >> 0) & 0x01) << 4; - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_u_rca14_fa4_xor1 >> 0) & 0x01) << 5; - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_u_rca14_fa5_xor1 >> 0) & 0x01) << 6; - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_u_rca14_fa6_xor1 >> 0) & 0x01) << 7; - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_u_rca14_fa7_xor1 >> 0) & 0x01) << 8; - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_u_rca14_fa8_xor1 >> 0) & 0x01) << 9; - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_u_rca14_fa9_xor1 >> 0) & 0x01) << 10; - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_u_rca14_fa10_xor1 >> 0) & 0x01) << 11; - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_u_rca14_fa11_xor1 >> 0) & 0x01) << 12; - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_u_rca14_fa12_xor1 >> 0) & 0x01) << 13; - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_u_rca14_fa13_xor1 >> 0) & 0x01) << 14; - f_u_dadda_rca8_out |= ((f_u_dadda_rca8_u_rca14_fa13_or0 >> 0) & 0x01) << 15; - return f_u_dadda_rca8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == f_u_dadda_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cla4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cla4.c deleted file mode 100644 index 80b68d9..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cla4.c +++ /dev/null @@ -1,197 +0,0 @@ -#include -#include - -uint64_t f_u_wallace_cla4(uint64_t a, uint64_t b){ - uint8_t f_u_wallace_cla4_out = 0; - uint8_t f_u_wallace_cla4_and_2_0 = 0; - uint8_t f_u_wallace_cla4_and_1_1 = 0; - uint8_t f_u_wallace_cla4_ha0_xor0 = 0; - uint8_t f_u_wallace_cla4_ha0_and0 = 0; - uint8_t f_u_wallace_cla4_and_3_0 = 0; - uint8_t f_u_wallace_cla4_and_2_1 = 0; - uint8_t f_u_wallace_cla4_fa0_xor0 = 0; - uint8_t f_u_wallace_cla4_fa0_and0 = 0; - uint8_t f_u_wallace_cla4_fa0_xor1 = 0; - uint8_t f_u_wallace_cla4_fa0_and1 = 0; - uint8_t f_u_wallace_cla4_fa0_or0 = 0; - uint8_t f_u_wallace_cla4_and_3_1 = 0; - uint8_t f_u_wallace_cla4_and_2_2 = 0; - uint8_t f_u_wallace_cla4_fa1_xor0 = 0; - uint8_t f_u_wallace_cla4_fa1_and0 = 0; - uint8_t f_u_wallace_cla4_fa1_xor1 = 0; - uint8_t f_u_wallace_cla4_fa1_and1 = 0; - uint8_t f_u_wallace_cla4_fa1_or0 = 0; - uint8_t f_u_wallace_cla4_and_1_2 = 0; - uint8_t f_u_wallace_cla4_and_0_3 = 0; - uint8_t f_u_wallace_cla4_ha1_xor0 = 0; - uint8_t f_u_wallace_cla4_ha1_and0 = 0; - uint8_t f_u_wallace_cla4_and_1_3 = 0; - uint8_t f_u_wallace_cla4_ha2_xor0 = 0; - uint8_t f_u_wallace_cla4_ha2_and0 = 0; - uint8_t f_u_wallace_cla4_and_3_2 = 0; - uint8_t f_u_wallace_cla4_fa2_xor0 = 0; - uint8_t f_u_wallace_cla4_fa2_and0 = 0; - uint8_t f_u_wallace_cla4_fa2_xor1 = 0; - uint8_t f_u_wallace_cla4_fa2_and1 = 0; - uint8_t f_u_wallace_cla4_fa2_or0 = 0; - uint8_t f_u_wallace_cla4_and_0_0 = 0; - uint8_t f_u_wallace_cla4_and_1_0 = 0; - uint8_t f_u_wallace_cla4_and_0_2 = 0; - uint8_t f_u_wallace_cla4_and_2_3 = 0; - uint8_t f_u_wallace_cla4_and_0_1 = 0; - uint8_t f_u_wallace_cla4_and_3_3 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic0_or0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic0_and0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic0_xor0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic1_or0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic1_and0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic1_xor0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_xor1 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_or0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic2_or0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic2_and0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic2_xor0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_xor2 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and1 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and2 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and3 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and4 = 0; - uint8_t f_u_wallace_cla4_u_cla6_or1 = 0; - uint8_t f_u_wallace_cla4_u_cla6_or2 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic3_or0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic3_and0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic3_xor0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_xor3 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and5 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and6 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and7 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and8 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and9 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and10 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and11 = 0; - uint8_t f_u_wallace_cla4_u_cla6_or3 = 0; - uint8_t f_u_wallace_cla4_u_cla6_or4 = 0; - uint8_t f_u_wallace_cla4_u_cla6_or5 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic4_or0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic4_and0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic4_xor0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_xor4 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and12 = 0; - uint8_t f_u_wallace_cla4_u_cla6_or6 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic5_or0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic5_and0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_pg_logic5_xor0 = 0; - uint8_t f_u_wallace_cla4_u_cla6_xor5 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and13 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and14 = 0; - uint8_t f_u_wallace_cla4_u_cla6_and15 = 0; - uint8_t f_u_wallace_cla4_u_cla6_or7 = 0; - uint8_t f_u_wallace_cla4_u_cla6_or8 = 0; - - f_u_wallace_cla4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cla4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cla4_ha0_xor0 = ((f_u_wallace_cla4_and_2_0 >> 0) & 0x01) ^ ((f_u_wallace_cla4_and_1_1 >> 0) & 0x01); - f_u_wallace_cla4_ha0_and0 = ((f_u_wallace_cla4_and_2_0 >> 0) & 0x01) & ((f_u_wallace_cla4_and_1_1 >> 0) & 0x01); - f_u_wallace_cla4_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cla4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cla4_fa0_xor0 = ((f_u_wallace_cla4_ha0_and0 >> 0) & 0x01) ^ ((f_u_wallace_cla4_and_3_0 >> 0) & 0x01); - f_u_wallace_cla4_fa0_and0 = ((f_u_wallace_cla4_ha0_and0 >> 0) & 0x01) & ((f_u_wallace_cla4_and_3_0 >> 0) & 0x01); - f_u_wallace_cla4_fa0_xor1 = ((f_u_wallace_cla4_fa0_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla4_and_2_1 >> 0) & 0x01); - f_u_wallace_cla4_fa0_and1 = ((f_u_wallace_cla4_fa0_xor0 >> 0) & 0x01) & ((f_u_wallace_cla4_and_2_1 >> 0) & 0x01); - f_u_wallace_cla4_fa0_or0 = ((f_u_wallace_cla4_fa0_and0 >> 0) & 0x01) | ((f_u_wallace_cla4_fa0_and1 >> 0) & 0x01); - f_u_wallace_cla4_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cla4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cla4_fa1_xor0 = ((f_u_wallace_cla4_fa0_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla4_and_3_1 >> 0) & 0x01); - f_u_wallace_cla4_fa1_and0 = ((f_u_wallace_cla4_fa0_or0 >> 0) & 0x01) & ((f_u_wallace_cla4_and_3_1 >> 0) & 0x01); - f_u_wallace_cla4_fa1_xor1 = ((f_u_wallace_cla4_fa1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla4_and_2_2 >> 0) & 0x01); - f_u_wallace_cla4_fa1_and1 = ((f_u_wallace_cla4_fa1_xor0 >> 0) & 0x01) & ((f_u_wallace_cla4_and_2_2 >> 0) & 0x01); - f_u_wallace_cla4_fa1_or0 = ((f_u_wallace_cla4_fa1_and0 >> 0) & 0x01) | ((f_u_wallace_cla4_fa1_and1 >> 0) & 0x01); - f_u_wallace_cla4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cla4_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cla4_ha1_xor0 = ((f_u_wallace_cla4_and_1_2 >> 0) & 0x01) ^ ((f_u_wallace_cla4_and_0_3 >> 0) & 0x01); - f_u_wallace_cla4_ha1_and0 = ((f_u_wallace_cla4_and_1_2 >> 0) & 0x01) & ((f_u_wallace_cla4_and_0_3 >> 0) & 0x01); - f_u_wallace_cla4_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cla4_ha2_xor0 = ((f_u_wallace_cla4_ha1_and0 >> 0) & 0x01) ^ ((f_u_wallace_cla4_and_1_3 >> 0) & 0x01); - f_u_wallace_cla4_ha2_and0 = ((f_u_wallace_cla4_ha1_and0 >> 0) & 0x01) & ((f_u_wallace_cla4_and_1_3 >> 0) & 0x01); - f_u_wallace_cla4_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cla4_fa2_xor0 = ((f_u_wallace_cla4_ha2_and0 >> 0) & 0x01) ^ ((f_u_wallace_cla4_fa1_or0 >> 0) & 0x01); - f_u_wallace_cla4_fa2_and0 = ((f_u_wallace_cla4_ha2_and0 >> 0) & 0x01) & ((f_u_wallace_cla4_fa1_or0 >> 0) & 0x01); - f_u_wallace_cla4_fa2_xor1 = ((f_u_wallace_cla4_fa2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla4_and_3_2 >> 0) & 0x01); - f_u_wallace_cla4_fa2_and1 = ((f_u_wallace_cla4_fa2_xor0 >> 0) & 0x01) & ((f_u_wallace_cla4_and_3_2 >> 0) & 0x01); - f_u_wallace_cla4_fa2_or0 = ((f_u_wallace_cla4_fa2_and0 >> 0) & 0x01) | ((f_u_wallace_cla4_fa2_and1 >> 0) & 0x01); - f_u_wallace_cla4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cla4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cla4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cla4_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cla4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cla4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic0_or0 = ((f_u_wallace_cla4_and_1_0 >> 0) & 0x01) | ((f_u_wallace_cla4_and_0_1 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic0_and0 = ((f_u_wallace_cla4_and_1_0 >> 0) & 0x01) & ((f_u_wallace_cla4_and_0_1 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic0_xor0 = ((f_u_wallace_cla4_and_1_0 >> 0) & 0x01) ^ ((f_u_wallace_cla4_and_0_1 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic1_or0 = ((f_u_wallace_cla4_and_0_2 >> 0) & 0x01) | ((f_u_wallace_cla4_ha0_xor0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic1_and0 = ((f_u_wallace_cla4_and_0_2 >> 0) & 0x01) & ((f_u_wallace_cla4_ha0_xor0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic1_xor0 = ((f_u_wallace_cla4_and_0_2 >> 0) & 0x01) ^ ((f_u_wallace_cla4_ha0_xor0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_xor1 = ((f_u_wallace_cla4_u_cla6_pg_logic1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and0 = ((f_u_wallace_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_or0 = ((f_u_wallace_cla4_u_cla6_pg_logic1_and0 >> 0) & 0x01) | ((f_u_wallace_cla4_u_cla6_and0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic2_or0 = ((f_u_wallace_cla4_fa0_xor1 >> 0) & 0x01) | ((f_u_wallace_cla4_ha1_xor0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic2_and0 = ((f_u_wallace_cla4_fa0_xor1 >> 0) & 0x01) & ((f_u_wallace_cla4_ha1_xor0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic2_xor0 = ((f_u_wallace_cla4_fa0_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cla4_ha1_xor0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_xor2 = ((f_u_wallace_cla4_u_cla6_pg_logic2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla4_u_cla6_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and1 = ((f_u_wallace_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_pg_logic0_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and2 = ((f_u_wallace_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and3 = ((f_u_wallace_cla4_u_cla6_and2 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and4 = ((f_u_wallace_cla4_u_cla6_pg_logic1_and0 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_or1 = ((f_u_wallace_cla4_u_cla6_and3 >> 0) & 0x01) | ((f_u_wallace_cla4_u_cla6_and4 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_or2 = ((f_u_wallace_cla4_u_cla6_pg_logic2_and0 >> 0) & 0x01) | ((f_u_wallace_cla4_u_cla6_or1 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic3_or0 = ((f_u_wallace_cla4_fa1_xor1 >> 0) & 0x01) | ((f_u_wallace_cla4_ha2_xor0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic3_and0 = ((f_u_wallace_cla4_fa1_xor1 >> 0) & 0x01) & ((f_u_wallace_cla4_ha2_xor0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic3_xor0 = ((f_u_wallace_cla4_fa1_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cla4_ha2_xor0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_xor3 = ((f_u_wallace_cla4_u_cla6_pg_logic3_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla4_u_cla6_or2 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and5 = ((f_u_wallace_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and6 = ((f_u_wallace_cla4_u_cla6_pg_logic0_and0 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and7 = ((f_u_wallace_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_pg_logic1_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and8 = ((f_u_wallace_cla4_u_cla6_and6 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_and7 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and9 = ((f_u_wallace_cla4_u_cla6_pg_logic1_and0 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and10 = ((f_u_wallace_cla4_u_cla6_and9 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_pg_logic2_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and11 = ((f_u_wallace_cla4_u_cla6_pg_logic2_and0 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_pg_logic3_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_or3 = ((f_u_wallace_cla4_u_cla6_and8 >> 0) & 0x01) | ((f_u_wallace_cla4_u_cla6_and11 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_or4 = ((f_u_wallace_cla4_u_cla6_and10 >> 0) & 0x01) | ((f_u_wallace_cla4_u_cla6_or3 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_or5 = ((f_u_wallace_cla4_u_cla6_pg_logic3_and0 >> 0) & 0x01) | ((f_u_wallace_cla4_u_cla6_or4 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic4_or0 = ((f_u_wallace_cla4_and_2_3 >> 0) & 0x01) | ((f_u_wallace_cla4_fa2_xor1 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic4_and0 = ((f_u_wallace_cla4_and_2_3 >> 0) & 0x01) & ((f_u_wallace_cla4_fa2_xor1 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic4_xor0 = ((f_u_wallace_cla4_and_2_3 >> 0) & 0x01) ^ ((f_u_wallace_cla4_fa2_xor1 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_xor4 = ((f_u_wallace_cla4_u_cla6_pg_logic4_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla4_u_cla6_or5 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and12 = ((f_u_wallace_cla4_u_cla6_or5 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_pg_logic4_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_or6 = ((f_u_wallace_cla4_u_cla6_pg_logic4_and0 >> 0) & 0x01) | ((f_u_wallace_cla4_u_cla6_and12 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic5_or0 = ((f_u_wallace_cla4_fa2_or0 >> 0) & 0x01) | ((f_u_wallace_cla4_and_3_3 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic5_and0 = ((f_u_wallace_cla4_fa2_or0 >> 0) & 0x01) & ((f_u_wallace_cla4_and_3_3 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_pg_logic5_xor0 = ((f_u_wallace_cla4_fa2_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla4_and_3_3 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_xor5 = ((f_u_wallace_cla4_u_cla6_pg_logic5_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla4_u_cla6_or6 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and13 = ((f_u_wallace_cla4_u_cla6_or5 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_pg_logic5_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and14 = ((f_u_wallace_cla4_u_cla6_and13 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_pg_logic4_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_and15 = ((f_u_wallace_cla4_u_cla6_pg_logic4_and0 >> 0) & 0x01) & ((f_u_wallace_cla4_u_cla6_pg_logic5_or0 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_or7 = ((f_u_wallace_cla4_u_cla6_and14 >> 0) & 0x01) | ((f_u_wallace_cla4_u_cla6_and15 >> 0) & 0x01); - f_u_wallace_cla4_u_cla6_or8 = ((f_u_wallace_cla4_u_cla6_pg_logic5_and0 >> 0) & 0x01) | ((f_u_wallace_cla4_u_cla6_or7 >> 0) & 0x01); - - f_u_wallace_cla4_out |= ((f_u_wallace_cla4_and_0_0 >> 0) & 0x01) << 0; - f_u_wallace_cla4_out |= ((f_u_wallace_cla4_u_cla6_pg_logic0_xor0 >> 0) & 0x01) << 1; - f_u_wallace_cla4_out |= ((f_u_wallace_cla4_u_cla6_xor1 >> 0) & 0x01) << 2; - f_u_wallace_cla4_out |= ((f_u_wallace_cla4_u_cla6_xor2 >> 0) & 0x01) << 3; - f_u_wallace_cla4_out |= ((f_u_wallace_cla4_u_cla6_xor3 >> 0) & 0x01) << 4; - f_u_wallace_cla4_out |= ((f_u_wallace_cla4_u_cla6_xor4 >> 0) & 0x01) << 5; - f_u_wallace_cla4_out |= ((f_u_wallace_cla4_u_cla6_xor5 >> 0) & 0x01) << 6; - f_u_wallace_cla4_out |= ((f_u_wallace_cla4_u_cla6_or8 >> 0) & 0x01) << 7; - return f_u_wallace_cla4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == f_u_wallace_cla4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cla8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cla8.c deleted file mode 100644 index d7490ab..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cla8.c +++ /dev/null @@ -1,821 +0,0 @@ -#include -#include - -uint64_t f_u_wallace_cla8(uint64_t a, uint64_t b){ - uint64_t f_u_wallace_cla8_out = 0; - uint8_t f_u_wallace_cla8_and_2_0 = 0; - uint8_t f_u_wallace_cla8_and_1_1 = 0; - uint8_t f_u_wallace_cla8_ha0_xor0 = 0; - uint8_t f_u_wallace_cla8_ha0_and0 = 0; - uint8_t f_u_wallace_cla8_and_3_0 = 0; - uint8_t f_u_wallace_cla8_and_2_1 = 0; - uint8_t f_u_wallace_cla8_fa0_xor0 = 0; - uint8_t f_u_wallace_cla8_fa0_and0 = 0; - uint8_t f_u_wallace_cla8_fa0_xor1 = 0; - uint8_t f_u_wallace_cla8_fa0_and1 = 0; - uint8_t f_u_wallace_cla8_fa0_or0 = 0; - uint8_t f_u_wallace_cla8_and_4_0 = 0; - uint8_t f_u_wallace_cla8_and_3_1 = 0; - uint8_t f_u_wallace_cla8_fa1_xor0 = 0; - uint8_t f_u_wallace_cla8_fa1_and0 = 0; - uint8_t f_u_wallace_cla8_fa1_xor1 = 0; - uint8_t f_u_wallace_cla8_fa1_and1 = 0; - uint8_t f_u_wallace_cla8_fa1_or0 = 0; - uint8_t f_u_wallace_cla8_and_5_0 = 0; - uint8_t f_u_wallace_cla8_and_4_1 = 0; - uint8_t f_u_wallace_cla8_fa2_xor0 = 0; - uint8_t f_u_wallace_cla8_fa2_and0 = 0; - uint8_t f_u_wallace_cla8_fa2_xor1 = 0; - uint8_t f_u_wallace_cla8_fa2_and1 = 0; - uint8_t f_u_wallace_cla8_fa2_or0 = 0; - uint8_t f_u_wallace_cla8_and_6_0 = 0; - uint8_t f_u_wallace_cla8_and_5_1 = 0; - uint8_t f_u_wallace_cla8_fa3_xor0 = 0; - uint8_t f_u_wallace_cla8_fa3_and0 = 0; - uint8_t f_u_wallace_cla8_fa3_xor1 = 0; - uint8_t f_u_wallace_cla8_fa3_and1 = 0; - uint8_t f_u_wallace_cla8_fa3_or0 = 0; - uint8_t f_u_wallace_cla8_and_7_0 = 0; - uint8_t f_u_wallace_cla8_and_6_1 = 0; - uint8_t f_u_wallace_cla8_fa4_xor0 = 0; - uint8_t f_u_wallace_cla8_fa4_and0 = 0; - uint8_t f_u_wallace_cla8_fa4_xor1 = 0; - uint8_t f_u_wallace_cla8_fa4_and1 = 0; - uint8_t f_u_wallace_cla8_fa4_or0 = 0; - uint8_t f_u_wallace_cla8_and_7_1 = 0; - uint8_t f_u_wallace_cla8_and_6_2 = 0; - uint8_t f_u_wallace_cla8_fa5_xor0 = 0; - uint8_t f_u_wallace_cla8_fa5_and0 = 0; - uint8_t f_u_wallace_cla8_fa5_xor1 = 0; - uint8_t f_u_wallace_cla8_fa5_and1 = 0; - uint8_t f_u_wallace_cla8_fa5_or0 = 0; - uint8_t f_u_wallace_cla8_and_7_2 = 0; - uint8_t f_u_wallace_cla8_and_6_3 = 0; - uint8_t f_u_wallace_cla8_fa6_xor0 = 0; - uint8_t f_u_wallace_cla8_fa6_and0 = 0; - uint8_t f_u_wallace_cla8_fa6_xor1 = 0; - uint8_t f_u_wallace_cla8_fa6_and1 = 0; - uint8_t f_u_wallace_cla8_fa6_or0 = 0; - uint8_t f_u_wallace_cla8_and_7_3 = 0; - uint8_t f_u_wallace_cla8_and_6_4 = 0; - uint8_t f_u_wallace_cla8_fa7_xor0 = 0; - uint8_t f_u_wallace_cla8_fa7_and0 = 0; - uint8_t f_u_wallace_cla8_fa7_xor1 = 0; - uint8_t f_u_wallace_cla8_fa7_and1 = 0; - uint8_t f_u_wallace_cla8_fa7_or0 = 0; - uint8_t f_u_wallace_cla8_and_7_4 = 0; - uint8_t f_u_wallace_cla8_and_6_5 = 0; - uint8_t f_u_wallace_cla8_fa8_xor0 = 0; - uint8_t f_u_wallace_cla8_fa8_and0 = 0; - uint8_t f_u_wallace_cla8_fa8_xor1 = 0; - uint8_t f_u_wallace_cla8_fa8_and1 = 0; - uint8_t f_u_wallace_cla8_fa8_or0 = 0; - uint8_t f_u_wallace_cla8_and_7_5 = 0; - uint8_t f_u_wallace_cla8_and_6_6 = 0; - uint8_t f_u_wallace_cla8_fa9_xor0 = 0; - uint8_t f_u_wallace_cla8_fa9_and0 = 0; - uint8_t f_u_wallace_cla8_fa9_xor1 = 0; - uint8_t f_u_wallace_cla8_fa9_and1 = 0; - uint8_t f_u_wallace_cla8_fa9_or0 = 0; - uint8_t f_u_wallace_cla8_and_1_2 = 0; - uint8_t f_u_wallace_cla8_and_0_3 = 0; - uint8_t f_u_wallace_cla8_ha1_xor0 = 0; - uint8_t f_u_wallace_cla8_ha1_and0 = 0; - uint8_t f_u_wallace_cla8_and_2_2 = 0; - uint8_t f_u_wallace_cla8_and_1_3 = 0; - uint8_t f_u_wallace_cla8_fa10_xor0 = 0; - uint8_t f_u_wallace_cla8_fa10_and0 = 0; - uint8_t f_u_wallace_cla8_fa10_xor1 = 0; - uint8_t f_u_wallace_cla8_fa10_and1 = 0; - uint8_t f_u_wallace_cla8_fa10_or0 = 0; - uint8_t f_u_wallace_cla8_and_3_2 = 0; - uint8_t f_u_wallace_cla8_and_2_3 = 0; - uint8_t f_u_wallace_cla8_fa11_xor0 = 0; - uint8_t f_u_wallace_cla8_fa11_and0 = 0; - uint8_t f_u_wallace_cla8_fa11_xor1 = 0; - uint8_t f_u_wallace_cla8_fa11_and1 = 0; - uint8_t f_u_wallace_cla8_fa11_or0 = 0; - uint8_t f_u_wallace_cla8_and_4_2 = 0; - uint8_t f_u_wallace_cla8_and_3_3 = 0; - uint8_t f_u_wallace_cla8_fa12_xor0 = 0; - uint8_t f_u_wallace_cla8_fa12_and0 = 0; - uint8_t f_u_wallace_cla8_fa12_xor1 = 0; - uint8_t f_u_wallace_cla8_fa12_and1 = 0; - uint8_t f_u_wallace_cla8_fa12_or0 = 0; - uint8_t f_u_wallace_cla8_and_5_2 = 0; - uint8_t f_u_wallace_cla8_and_4_3 = 0; - uint8_t f_u_wallace_cla8_fa13_xor0 = 0; - uint8_t f_u_wallace_cla8_fa13_and0 = 0; - uint8_t f_u_wallace_cla8_fa13_xor1 = 0; - uint8_t f_u_wallace_cla8_fa13_and1 = 0; - uint8_t f_u_wallace_cla8_fa13_or0 = 0; - uint8_t f_u_wallace_cla8_and_5_3 = 0; - uint8_t f_u_wallace_cla8_and_4_4 = 0; - uint8_t f_u_wallace_cla8_fa14_xor0 = 0; - uint8_t f_u_wallace_cla8_fa14_and0 = 0; - uint8_t f_u_wallace_cla8_fa14_xor1 = 0; - uint8_t f_u_wallace_cla8_fa14_and1 = 0; - uint8_t f_u_wallace_cla8_fa14_or0 = 0; - uint8_t f_u_wallace_cla8_and_5_4 = 0; - uint8_t f_u_wallace_cla8_and_4_5 = 0; - uint8_t f_u_wallace_cla8_fa15_xor0 = 0; - uint8_t f_u_wallace_cla8_fa15_and0 = 0; - uint8_t f_u_wallace_cla8_fa15_xor1 = 0; - uint8_t f_u_wallace_cla8_fa15_and1 = 0; - uint8_t f_u_wallace_cla8_fa15_or0 = 0; - uint8_t f_u_wallace_cla8_and_5_5 = 0; - uint8_t f_u_wallace_cla8_and_4_6 = 0; - uint8_t f_u_wallace_cla8_fa16_xor0 = 0; - uint8_t f_u_wallace_cla8_fa16_and0 = 0; - uint8_t f_u_wallace_cla8_fa16_xor1 = 0; - uint8_t f_u_wallace_cla8_fa16_and1 = 0; - uint8_t f_u_wallace_cla8_fa16_or0 = 0; - uint8_t f_u_wallace_cla8_and_5_6 = 0; - uint8_t f_u_wallace_cla8_and_4_7 = 0; - uint8_t f_u_wallace_cla8_fa17_xor0 = 0; - uint8_t f_u_wallace_cla8_fa17_and0 = 0; - uint8_t f_u_wallace_cla8_fa17_xor1 = 0; - uint8_t f_u_wallace_cla8_fa17_and1 = 0; - uint8_t f_u_wallace_cla8_fa17_or0 = 0; - uint8_t f_u_wallace_cla8_and_0_4 = 0; - uint8_t f_u_wallace_cla8_ha2_xor0 = 0; - uint8_t f_u_wallace_cla8_ha2_and0 = 0; - uint8_t f_u_wallace_cla8_and_1_4 = 0; - uint8_t f_u_wallace_cla8_and_0_5 = 0; - uint8_t f_u_wallace_cla8_fa18_xor0 = 0; - uint8_t f_u_wallace_cla8_fa18_and0 = 0; - uint8_t f_u_wallace_cla8_fa18_xor1 = 0; - uint8_t f_u_wallace_cla8_fa18_and1 = 0; - uint8_t f_u_wallace_cla8_fa18_or0 = 0; - uint8_t f_u_wallace_cla8_and_2_4 = 0; - uint8_t f_u_wallace_cla8_and_1_5 = 0; - uint8_t f_u_wallace_cla8_fa19_xor0 = 0; - uint8_t f_u_wallace_cla8_fa19_and0 = 0; - uint8_t f_u_wallace_cla8_fa19_xor1 = 0; - uint8_t f_u_wallace_cla8_fa19_and1 = 0; - uint8_t f_u_wallace_cla8_fa19_or0 = 0; - uint8_t f_u_wallace_cla8_and_3_4 = 0; - uint8_t f_u_wallace_cla8_and_2_5 = 0; - uint8_t f_u_wallace_cla8_fa20_xor0 = 0; - uint8_t f_u_wallace_cla8_fa20_and0 = 0; - uint8_t f_u_wallace_cla8_fa20_xor1 = 0; - uint8_t f_u_wallace_cla8_fa20_and1 = 0; - uint8_t f_u_wallace_cla8_fa20_or0 = 0; - uint8_t f_u_wallace_cla8_and_3_5 = 0; - uint8_t f_u_wallace_cla8_and_2_6 = 0; - uint8_t f_u_wallace_cla8_fa21_xor0 = 0; - uint8_t f_u_wallace_cla8_fa21_and0 = 0; - uint8_t f_u_wallace_cla8_fa21_xor1 = 0; - uint8_t f_u_wallace_cla8_fa21_and1 = 0; - uint8_t f_u_wallace_cla8_fa21_or0 = 0; - uint8_t f_u_wallace_cla8_and_3_6 = 0; - uint8_t f_u_wallace_cla8_and_2_7 = 0; - uint8_t f_u_wallace_cla8_fa22_xor0 = 0; - uint8_t f_u_wallace_cla8_fa22_and0 = 0; - uint8_t f_u_wallace_cla8_fa22_xor1 = 0; - uint8_t f_u_wallace_cla8_fa22_and1 = 0; - uint8_t f_u_wallace_cla8_fa22_or0 = 0; - uint8_t f_u_wallace_cla8_and_3_7 = 0; - uint8_t f_u_wallace_cla8_fa23_xor0 = 0; - uint8_t f_u_wallace_cla8_fa23_and0 = 0; - uint8_t f_u_wallace_cla8_fa23_xor1 = 0; - uint8_t f_u_wallace_cla8_fa23_and1 = 0; - uint8_t f_u_wallace_cla8_fa23_or0 = 0; - uint8_t f_u_wallace_cla8_ha3_xor0 = 0; - uint8_t f_u_wallace_cla8_ha3_and0 = 0; - uint8_t f_u_wallace_cla8_and_0_6 = 0; - uint8_t f_u_wallace_cla8_fa24_xor0 = 0; - uint8_t f_u_wallace_cla8_fa24_and0 = 0; - uint8_t f_u_wallace_cla8_fa24_xor1 = 0; - uint8_t f_u_wallace_cla8_fa24_and1 = 0; - uint8_t f_u_wallace_cla8_fa24_or0 = 0; - uint8_t f_u_wallace_cla8_and_1_6 = 0; - uint8_t f_u_wallace_cla8_and_0_7 = 0; - uint8_t f_u_wallace_cla8_fa25_xor0 = 0; - uint8_t f_u_wallace_cla8_fa25_and0 = 0; - uint8_t f_u_wallace_cla8_fa25_xor1 = 0; - uint8_t f_u_wallace_cla8_fa25_and1 = 0; - uint8_t f_u_wallace_cla8_fa25_or0 = 0; - uint8_t f_u_wallace_cla8_and_1_7 = 0; - uint8_t f_u_wallace_cla8_fa26_xor0 = 0; - uint8_t f_u_wallace_cla8_fa26_and0 = 0; - uint8_t f_u_wallace_cla8_fa26_xor1 = 0; - uint8_t f_u_wallace_cla8_fa26_and1 = 0; - uint8_t f_u_wallace_cla8_fa26_or0 = 0; - uint8_t f_u_wallace_cla8_fa27_xor0 = 0; - uint8_t f_u_wallace_cla8_fa27_and0 = 0; - uint8_t f_u_wallace_cla8_fa27_xor1 = 0; - uint8_t f_u_wallace_cla8_fa27_and1 = 0; - uint8_t f_u_wallace_cla8_fa27_or0 = 0; - uint8_t f_u_wallace_cla8_ha4_xor0 = 0; - uint8_t f_u_wallace_cla8_ha4_and0 = 0; - uint8_t f_u_wallace_cla8_fa28_xor0 = 0; - uint8_t f_u_wallace_cla8_fa28_and0 = 0; - uint8_t f_u_wallace_cla8_fa28_xor1 = 0; - uint8_t f_u_wallace_cla8_fa28_and1 = 0; - uint8_t f_u_wallace_cla8_fa28_or0 = 0; - uint8_t f_u_wallace_cla8_fa29_xor0 = 0; - uint8_t f_u_wallace_cla8_fa29_and0 = 0; - uint8_t f_u_wallace_cla8_fa29_xor1 = 0; - uint8_t f_u_wallace_cla8_fa29_and1 = 0; - uint8_t f_u_wallace_cla8_fa29_or0 = 0; - uint8_t f_u_wallace_cla8_ha5_xor0 = 0; - uint8_t f_u_wallace_cla8_ha5_and0 = 0; - uint8_t f_u_wallace_cla8_ha6_xor0 = 0; - uint8_t f_u_wallace_cla8_ha6_and0 = 0; - uint8_t f_u_wallace_cla8_fa30_xor0 = 0; - uint8_t f_u_wallace_cla8_fa30_and0 = 0; - uint8_t f_u_wallace_cla8_fa30_xor1 = 0; - uint8_t f_u_wallace_cla8_fa30_and1 = 0; - uint8_t f_u_wallace_cla8_fa30_or0 = 0; - uint8_t f_u_wallace_cla8_fa31_xor0 = 0; - uint8_t f_u_wallace_cla8_fa31_and0 = 0; - uint8_t f_u_wallace_cla8_fa31_xor1 = 0; - uint8_t f_u_wallace_cla8_fa31_and1 = 0; - uint8_t f_u_wallace_cla8_fa31_or0 = 0; - uint8_t f_u_wallace_cla8_fa32_xor0 = 0; - uint8_t f_u_wallace_cla8_fa32_and0 = 0; - uint8_t f_u_wallace_cla8_fa32_xor1 = 0; - uint8_t f_u_wallace_cla8_fa32_and1 = 0; - uint8_t f_u_wallace_cla8_fa32_or0 = 0; - uint8_t f_u_wallace_cla8_and_5_7 = 0; - uint8_t f_u_wallace_cla8_fa33_xor0 = 0; - uint8_t f_u_wallace_cla8_fa33_and0 = 0; - uint8_t f_u_wallace_cla8_fa33_xor1 = 0; - uint8_t f_u_wallace_cla8_fa33_and1 = 0; - uint8_t f_u_wallace_cla8_fa33_or0 = 0; - uint8_t f_u_wallace_cla8_and_7_6 = 0; - uint8_t f_u_wallace_cla8_fa34_xor0 = 0; - uint8_t f_u_wallace_cla8_fa34_and0 = 0; - uint8_t f_u_wallace_cla8_fa34_xor1 = 0; - uint8_t f_u_wallace_cla8_fa34_and1 = 0; - uint8_t f_u_wallace_cla8_fa34_or0 = 0; - uint8_t f_u_wallace_cla8_and_0_0 = 0; - uint8_t f_u_wallace_cla8_and_1_0 = 0; - uint8_t f_u_wallace_cla8_and_0_2 = 0; - uint8_t f_u_wallace_cla8_and_6_7 = 0; - uint8_t f_u_wallace_cla8_and_0_1 = 0; - uint8_t f_u_wallace_cla8_and_7_7 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic0_or0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic0_and0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic0_xor0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic1_or0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic1_and0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic1_xor0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_xor1 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic2_or0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic2_and0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic2_xor0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_xor2 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and1 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and2 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and3 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and4 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or1 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or2 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic3_or0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic3_and0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic3_xor0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_xor3 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and5 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and6 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and7 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and8 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and9 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and10 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and11 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or3 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or4 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or5 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic4_or0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic4_and0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic4_xor0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_xor4 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and12 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or6 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic5_or0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic5_and0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic5_xor0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_xor5 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and13 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and14 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and15 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or7 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or8 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic6_or0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic6_and0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic6_xor0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_xor6 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and16 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and17 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and18 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and19 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and20 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and21 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or9 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or10 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or11 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic7_or0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic7_and0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic7_xor0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_xor7 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and22 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and23 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and24 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and25 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and26 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and27 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and28 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and29 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and30 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and31 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or12 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or13 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or14 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or15 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic8_or0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic8_and0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic8_xor0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_xor8 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and32 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or16 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic9_or0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic9_and0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic9_xor0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_xor9 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and33 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and34 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and35 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or17 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or18 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic10_or0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic10_and0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic10_xor0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_xor10 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and36 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and37 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and38 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and39 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and40 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and41 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or19 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or20 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or21 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic11_or0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic11_and0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic11_xor0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_xor11 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and42 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and43 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and44 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and45 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and46 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and47 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and48 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and49 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and50 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and51 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or22 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or23 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or24 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or25 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic12_or0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic12_and0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic12_xor0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_xor12 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and52 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or26 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic13_or0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic13_and0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_pg_logic13_xor0 = 0; - uint8_t f_u_wallace_cla8_u_cla14_xor13 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and53 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and54 = 0; - uint8_t f_u_wallace_cla8_u_cla14_and55 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or27 = 0; - uint8_t f_u_wallace_cla8_u_cla14_or28 = 0; - - f_u_wallace_cla8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cla8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cla8_ha0_xor0 = ((f_u_wallace_cla8_and_2_0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_1_1 >> 0) & 0x01); - f_u_wallace_cla8_ha0_and0 = ((f_u_wallace_cla8_and_2_0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_1_1 >> 0) & 0x01); - f_u_wallace_cla8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cla8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cla8_fa0_xor0 = ((f_u_wallace_cla8_ha0_and0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_3_0 >> 0) & 0x01); - f_u_wallace_cla8_fa0_and0 = ((f_u_wallace_cla8_ha0_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_3_0 >> 0) & 0x01); - f_u_wallace_cla8_fa0_xor1 = ((f_u_wallace_cla8_fa0_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_2_1 >> 0) & 0x01); - f_u_wallace_cla8_fa0_and1 = ((f_u_wallace_cla8_fa0_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_2_1 >> 0) & 0x01); - f_u_wallace_cla8_fa0_or0 = ((f_u_wallace_cla8_fa0_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa0_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cla8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cla8_fa1_xor0 = ((f_u_wallace_cla8_fa0_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_4_0 >> 0) & 0x01); - f_u_wallace_cla8_fa1_and0 = ((f_u_wallace_cla8_fa0_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_4_0 >> 0) & 0x01); - f_u_wallace_cla8_fa1_xor1 = ((f_u_wallace_cla8_fa1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_3_1 >> 0) & 0x01); - f_u_wallace_cla8_fa1_and1 = ((f_u_wallace_cla8_fa1_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_3_1 >> 0) & 0x01); - f_u_wallace_cla8_fa1_or0 = ((f_u_wallace_cla8_fa1_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa1_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cla8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cla8_fa2_xor0 = ((f_u_wallace_cla8_fa1_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_5_0 >> 0) & 0x01); - f_u_wallace_cla8_fa2_and0 = ((f_u_wallace_cla8_fa1_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_5_0 >> 0) & 0x01); - f_u_wallace_cla8_fa2_xor1 = ((f_u_wallace_cla8_fa2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_4_1 >> 0) & 0x01); - f_u_wallace_cla8_fa2_and1 = ((f_u_wallace_cla8_fa2_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_4_1 >> 0) & 0x01); - f_u_wallace_cla8_fa2_or0 = ((f_u_wallace_cla8_fa2_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa2_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cla8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cla8_fa3_xor0 = ((f_u_wallace_cla8_fa2_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_6_0 >> 0) & 0x01); - f_u_wallace_cla8_fa3_and0 = ((f_u_wallace_cla8_fa2_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_6_0 >> 0) & 0x01); - f_u_wallace_cla8_fa3_xor1 = ((f_u_wallace_cla8_fa3_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_5_1 >> 0) & 0x01); - f_u_wallace_cla8_fa3_and1 = ((f_u_wallace_cla8_fa3_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_5_1 >> 0) & 0x01); - f_u_wallace_cla8_fa3_or0 = ((f_u_wallace_cla8_fa3_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa3_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_7_0 = ((a >> 7) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cla8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cla8_fa4_xor0 = ((f_u_wallace_cla8_fa3_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_7_0 >> 0) & 0x01); - f_u_wallace_cla8_fa4_and0 = ((f_u_wallace_cla8_fa3_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_7_0 >> 0) & 0x01); - f_u_wallace_cla8_fa4_xor1 = ((f_u_wallace_cla8_fa4_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_6_1 >> 0) & 0x01); - f_u_wallace_cla8_fa4_and1 = ((f_u_wallace_cla8_fa4_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_6_1 >> 0) & 0x01); - f_u_wallace_cla8_fa4_or0 = ((f_u_wallace_cla8_fa4_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa4_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_7_1 = ((a >> 7) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cla8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cla8_fa5_xor0 = ((f_u_wallace_cla8_fa4_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_7_1 >> 0) & 0x01); - f_u_wallace_cla8_fa5_and0 = ((f_u_wallace_cla8_fa4_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_7_1 >> 0) & 0x01); - f_u_wallace_cla8_fa5_xor1 = ((f_u_wallace_cla8_fa5_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_6_2 >> 0) & 0x01); - f_u_wallace_cla8_fa5_and1 = ((f_u_wallace_cla8_fa5_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_6_2 >> 0) & 0x01); - f_u_wallace_cla8_fa5_or0 = ((f_u_wallace_cla8_fa5_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa5_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_7_2 = ((a >> 7) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cla8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cla8_fa6_xor0 = ((f_u_wallace_cla8_fa5_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_7_2 >> 0) & 0x01); - f_u_wallace_cla8_fa6_and0 = ((f_u_wallace_cla8_fa5_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_7_2 >> 0) & 0x01); - f_u_wallace_cla8_fa6_xor1 = ((f_u_wallace_cla8_fa6_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_6_3 >> 0) & 0x01); - f_u_wallace_cla8_fa6_and1 = ((f_u_wallace_cla8_fa6_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_6_3 >> 0) & 0x01); - f_u_wallace_cla8_fa6_or0 = ((f_u_wallace_cla8_fa6_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa6_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_7_3 = ((a >> 7) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cla8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cla8_fa7_xor0 = ((f_u_wallace_cla8_fa6_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_7_3 >> 0) & 0x01); - f_u_wallace_cla8_fa7_and0 = ((f_u_wallace_cla8_fa6_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_7_3 >> 0) & 0x01); - f_u_wallace_cla8_fa7_xor1 = ((f_u_wallace_cla8_fa7_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_6_4 >> 0) & 0x01); - f_u_wallace_cla8_fa7_and1 = ((f_u_wallace_cla8_fa7_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_6_4 >> 0) & 0x01); - f_u_wallace_cla8_fa7_or0 = ((f_u_wallace_cla8_fa7_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa7_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_7_4 = ((a >> 7) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cla8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cla8_fa8_xor0 = ((f_u_wallace_cla8_fa7_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_7_4 >> 0) & 0x01); - f_u_wallace_cla8_fa8_and0 = ((f_u_wallace_cla8_fa7_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_7_4 >> 0) & 0x01); - f_u_wallace_cla8_fa8_xor1 = ((f_u_wallace_cla8_fa8_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_6_5 >> 0) & 0x01); - f_u_wallace_cla8_fa8_and1 = ((f_u_wallace_cla8_fa8_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_6_5 >> 0) & 0x01); - f_u_wallace_cla8_fa8_or0 = ((f_u_wallace_cla8_fa8_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa8_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_7_5 = ((a >> 7) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cla8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cla8_fa9_xor0 = ((f_u_wallace_cla8_fa8_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_7_5 >> 0) & 0x01); - f_u_wallace_cla8_fa9_and0 = ((f_u_wallace_cla8_fa8_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_7_5 >> 0) & 0x01); - f_u_wallace_cla8_fa9_xor1 = ((f_u_wallace_cla8_fa9_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_6_6 >> 0) & 0x01); - f_u_wallace_cla8_fa9_and1 = ((f_u_wallace_cla8_fa9_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_6_6 >> 0) & 0x01); - f_u_wallace_cla8_fa9_or0 = ((f_u_wallace_cla8_fa9_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa9_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cla8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cla8_ha1_xor0 = ((f_u_wallace_cla8_and_1_2 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_0_3 >> 0) & 0x01); - f_u_wallace_cla8_ha1_and0 = ((f_u_wallace_cla8_and_1_2 >> 0) & 0x01) & ((f_u_wallace_cla8_and_0_3 >> 0) & 0x01); - f_u_wallace_cla8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cla8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cla8_fa10_xor0 = ((f_u_wallace_cla8_ha1_and0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_2_2 >> 0) & 0x01); - f_u_wallace_cla8_fa10_and0 = ((f_u_wallace_cla8_ha1_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_2_2 >> 0) & 0x01); - f_u_wallace_cla8_fa10_xor1 = ((f_u_wallace_cla8_fa10_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_1_3 >> 0) & 0x01); - f_u_wallace_cla8_fa10_and1 = ((f_u_wallace_cla8_fa10_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_1_3 >> 0) & 0x01); - f_u_wallace_cla8_fa10_or0 = ((f_u_wallace_cla8_fa10_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa10_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cla8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cla8_fa11_xor0 = ((f_u_wallace_cla8_fa10_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_3_2 >> 0) & 0x01); - f_u_wallace_cla8_fa11_and0 = ((f_u_wallace_cla8_fa10_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_3_2 >> 0) & 0x01); - f_u_wallace_cla8_fa11_xor1 = ((f_u_wallace_cla8_fa11_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_2_3 >> 0) & 0x01); - f_u_wallace_cla8_fa11_and1 = ((f_u_wallace_cla8_fa11_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_2_3 >> 0) & 0x01); - f_u_wallace_cla8_fa11_or0 = ((f_u_wallace_cla8_fa11_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa11_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cla8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cla8_fa12_xor0 = ((f_u_wallace_cla8_fa11_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_4_2 >> 0) & 0x01); - f_u_wallace_cla8_fa12_and0 = ((f_u_wallace_cla8_fa11_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_4_2 >> 0) & 0x01); - f_u_wallace_cla8_fa12_xor1 = ((f_u_wallace_cla8_fa12_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_3_3 >> 0) & 0x01); - f_u_wallace_cla8_fa12_and1 = ((f_u_wallace_cla8_fa12_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_3_3 >> 0) & 0x01); - f_u_wallace_cla8_fa12_or0 = ((f_u_wallace_cla8_fa12_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa12_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cla8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cla8_fa13_xor0 = ((f_u_wallace_cla8_fa12_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_5_2 >> 0) & 0x01); - f_u_wallace_cla8_fa13_and0 = ((f_u_wallace_cla8_fa12_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_5_2 >> 0) & 0x01); - f_u_wallace_cla8_fa13_xor1 = ((f_u_wallace_cla8_fa13_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_4_3 >> 0) & 0x01); - f_u_wallace_cla8_fa13_and1 = ((f_u_wallace_cla8_fa13_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_4_3 >> 0) & 0x01); - f_u_wallace_cla8_fa13_or0 = ((f_u_wallace_cla8_fa13_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa13_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cla8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cla8_fa14_xor0 = ((f_u_wallace_cla8_fa13_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_5_3 >> 0) & 0x01); - f_u_wallace_cla8_fa14_and0 = ((f_u_wallace_cla8_fa13_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_5_3 >> 0) & 0x01); - f_u_wallace_cla8_fa14_xor1 = ((f_u_wallace_cla8_fa14_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_4_4 >> 0) & 0x01); - f_u_wallace_cla8_fa14_and1 = ((f_u_wallace_cla8_fa14_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_4_4 >> 0) & 0x01); - f_u_wallace_cla8_fa14_or0 = ((f_u_wallace_cla8_fa14_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa14_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cla8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cla8_fa15_xor0 = ((f_u_wallace_cla8_fa14_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_5_4 >> 0) & 0x01); - f_u_wallace_cla8_fa15_and0 = ((f_u_wallace_cla8_fa14_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_5_4 >> 0) & 0x01); - f_u_wallace_cla8_fa15_xor1 = ((f_u_wallace_cla8_fa15_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_4_5 >> 0) & 0x01); - f_u_wallace_cla8_fa15_and1 = ((f_u_wallace_cla8_fa15_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_4_5 >> 0) & 0x01); - f_u_wallace_cla8_fa15_or0 = ((f_u_wallace_cla8_fa15_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa15_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cla8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cla8_fa16_xor0 = ((f_u_wallace_cla8_fa15_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_5_5 >> 0) & 0x01); - f_u_wallace_cla8_fa16_and0 = ((f_u_wallace_cla8_fa15_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_5_5 >> 0) & 0x01); - f_u_wallace_cla8_fa16_xor1 = ((f_u_wallace_cla8_fa16_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_4_6 >> 0) & 0x01); - f_u_wallace_cla8_fa16_and1 = ((f_u_wallace_cla8_fa16_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_4_6 >> 0) & 0x01); - f_u_wallace_cla8_fa16_or0 = ((f_u_wallace_cla8_fa16_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa16_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cla8_and_4_7 = ((a >> 4) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cla8_fa17_xor0 = ((f_u_wallace_cla8_fa16_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_5_6 >> 0) & 0x01); - f_u_wallace_cla8_fa17_and0 = ((f_u_wallace_cla8_fa16_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_5_6 >> 0) & 0x01); - f_u_wallace_cla8_fa17_xor1 = ((f_u_wallace_cla8_fa17_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_4_7 >> 0) & 0x01); - f_u_wallace_cla8_fa17_and1 = ((f_u_wallace_cla8_fa17_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_4_7 >> 0) & 0x01); - f_u_wallace_cla8_fa17_or0 = ((f_u_wallace_cla8_fa17_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa17_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cla8_ha2_xor0 = ((f_u_wallace_cla8_and_0_4 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa1_xor1 >> 0) & 0x01); - f_u_wallace_cla8_ha2_and0 = ((f_u_wallace_cla8_and_0_4 >> 0) & 0x01) & ((f_u_wallace_cla8_fa1_xor1 >> 0) & 0x01); - f_u_wallace_cla8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cla8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cla8_fa18_xor0 = ((f_u_wallace_cla8_ha2_and0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_1_4 >> 0) & 0x01); - f_u_wallace_cla8_fa18_and0 = ((f_u_wallace_cla8_ha2_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_1_4 >> 0) & 0x01); - f_u_wallace_cla8_fa18_xor1 = ((f_u_wallace_cla8_fa18_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_0_5 >> 0) & 0x01); - f_u_wallace_cla8_fa18_and1 = ((f_u_wallace_cla8_fa18_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_0_5 >> 0) & 0x01); - f_u_wallace_cla8_fa18_or0 = ((f_u_wallace_cla8_fa18_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa18_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cla8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cla8_fa19_xor0 = ((f_u_wallace_cla8_fa18_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_2_4 >> 0) & 0x01); - f_u_wallace_cla8_fa19_and0 = ((f_u_wallace_cla8_fa18_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_2_4 >> 0) & 0x01); - f_u_wallace_cla8_fa19_xor1 = ((f_u_wallace_cla8_fa19_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_1_5 >> 0) & 0x01); - f_u_wallace_cla8_fa19_and1 = ((f_u_wallace_cla8_fa19_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_1_5 >> 0) & 0x01); - f_u_wallace_cla8_fa19_or0 = ((f_u_wallace_cla8_fa19_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa19_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cla8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cla8_fa20_xor0 = ((f_u_wallace_cla8_fa19_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_3_4 >> 0) & 0x01); - f_u_wallace_cla8_fa20_and0 = ((f_u_wallace_cla8_fa19_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_3_4 >> 0) & 0x01); - f_u_wallace_cla8_fa20_xor1 = ((f_u_wallace_cla8_fa20_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_2_5 >> 0) & 0x01); - f_u_wallace_cla8_fa20_and1 = ((f_u_wallace_cla8_fa20_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_2_5 >> 0) & 0x01); - f_u_wallace_cla8_fa20_or0 = ((f_u_wallace_cla8_fa20_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa20_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cla8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cla8_fa21_xor0 = ((f_u_wallace_cla8_fa20_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_3_5 >> 0) & 0x01); - f_u_wallace_cla8_fa21_and0 = ((f_u_wallace_cla8_fa20_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_3_5 >> 0) & 0x01); - f_u_wallace_cla8_fa21_xor1 = ((f_u_wallace_cla8_fa21_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_2_6 >> 0) & 0x01); - f_u_wallace_cla8_fa21_and1 = ((f_u_wallace_cla8_fa21_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_2_6 >> 0) & 0x01); - f_u_wallace_cla8_fa21_or0 = ((f_u_wallace_cla8_fa21_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa21_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cla8_and_2_7 = ((a >> 2) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cla8_fa22_xor0 = ((f_u_wallace_cla8_fa21_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_3_6 >> 0) & 0x01); - f_u_wallace_cla8_fa22_and0 = ((f_u_wallace_cla8_fa21_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_3_6 >> 0) & 0x01); - f_u_wallace_cla8_fa22_xor1 = ((f_u_wallace_cla8_fa22_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_2_7 >> 0) & 0x01); - f_u_wallace_cla8_fa22_and1 = ((f_u_wallace_cla8_fa22_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_2_7 >> 0) & 0x01); - f_u_wallace_cla8_fa22_or0 = ((f_u_wallace_cla8_fa22_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa22_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_3_7 = ((a >> 3) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cla8_fa23_xor0 = ((f_u_wallace_cla8_fa22_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_3_7 >> 0) & 0x01); - f_u_wallace_cla8_fa23_and0 = ((f_u_wallace_cla8_fa22_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_3_7 >> 0) & 0x01); - f_u_wallace_cla8_fa23_xor1 = ((f_u_wallace_cla8_fa23_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa7_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa23_and1 = ((f_u_wallace_cla8_fa23_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa7_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa23_or0 = ((f_u_wallace_cla8_fa23_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa23_and1 >> 0) & 0x01); - f_u_wallace_cla8_ha3_xor0 = ((f_u_wallace_cla8_fa2_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa11_xor1 >> 0) & 0x01); - f_u_wallace_cla8_ha3_and0 = ((f_u_wallace_cla8_fa2_xor1 >> 0) & 0x01) & ((f_u_wallace_cla8_fa11_xor1 >> 0) & 0x01); - f_u_wallace_cla8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cla8_fa24_xor0 = ((f_u_wallace_cla8_ha3_and0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_0_6 >> 0) & 0x01); - f_u_wallace_cla8_fa24_and0 = ((f_u_wallace_cla8_ha3_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_0_6 >> 0) & 0x01); - f_u_wallace_cla8_fa24_xor1 = ((f_u_wallace_cla8_fa24_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa3_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa24_and1 = ((f_u_wallace_cla8_fa24_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa3_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa24_or0 = ((f_u_wallace_cla8_fa24_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa24_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cla8_and_0_7 = ((a >> 0) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cla8_fa25_xor0 = ((f_u_wallace_cla8_fa24_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_1_6 >> 0) & 0x01); - f_u_wallace_cla8_fa25_and0 = ((f_u_wallace_cla8_fa24_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_1_6 >> 0) & 0x01); - f_u_wallace_cla8_fa25_xor1 = ((f_u_wallace_cla8_fa25_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_0_7 >> 0) & 0x01); - f_u_wallace_cla8_fa25_and1 = ((f_u_wallace_cla8_fa25_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_0_7 >> 0) & 0x01); - f_u_wallace_cla8_fa25_or0 = ((f_u_wallace_cla8_fa25_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa25_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_1_7 = ((a >> 1) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cla8_fa26_xor0 = ((f_u_wallace_cla8_fa25_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_1_7 >> 0) & 0x01); - f_u_wallace_cla8_fa26_and0 = ((f_u_wallace_cla8_fa25_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_1_7 >> 0) & 0x01); - f_u_wallace_cla8_fa26_xor1 = ((f_u_wallace_cla8_fa26_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa5_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa26_and1 = ((f_u_wallace_cla8_fa26_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa5_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa26_or0 = ((f_u_wallace_cla8_fa26_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa26_and1 >> 0) & 0x01); - f_u_wallace_cla8_fa27_xor0 = ((f_u_wallace_cla8_fa26_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa6_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa27_and0 = ((f_u_wallace_cla8_fa26_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa6_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa27_xor1 = ((f_u_wallace_cla8_fa27_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa15_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa27_and1 = ((f_u_wallace_cla8_fa27_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa15_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa27_or0 = ((f_u_wallace_cla8_fa27_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa27_and1 >> 0) & 0x01); - f_u_wallace_cla8_ha4_xor0 = ((f_u_wallace_cla8_fa12_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa19_xor1 >> 0) & 0x01); - f_u_wallace_cla8_ha4_and0 = ((f_u_wallace_cla8_fa12_xor1 >> 0) & 0x01) & ((f_u_wallace_cla8_fa19_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa28_xor0 = ((f_u_wallace_cla8_ha4_and0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa4_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa28_and0 = ((f_u_wallace_cla8_ha4_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa4_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa28_xor1 = ((f_u_wallace_cla8_fa28_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa13_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa28_and1 = ((f_u_wallace_cla8_fa28_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa13_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa28_or0 = ((f_u_wallace_cla8_fa28_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa28_and1 >> 0) & 0x01); - f_u_wallace_cla8_fa29_xor0 = ((f_u_wallace_cla8_fa28_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa14_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa29_and0 = ((f_u_wallace_cla8_fa28_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa14_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa29_xor1 = ((f_u_wallace_cla8_fa29_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa21_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa29_and1 = ((f_u_wallace_cla8_fa29_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa21_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa29_or0 = ((f_u_wallace_cla8_fa29_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa29_and1 >> 0) & 0x01); - f_u_wallace_cla8_ha5_xor0 = ((f_u_wallace_cla8_fa20_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa25_xor1 >> 0) & 0x01); - f_u_wallace_cla8_ha5_and0 = ((f_u_wallace_cla8_fa20_xor1 >> 0) & 0x01) & ((f_u_wallace_cla8_fa25_xor1 >> 0) & 0x01); - f_u_wallace_cla8_ha6_xor0 = ((f_u_wallace_cla8_ha5_and0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa26_xor1 >> 0) & 0x01); - f_u_wallace_cla8_ha6_and0 = ((f_u_wallace_cla8_ha5_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa26_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa30_xor0 = ((f_u_wallace_cla8_ha6_and0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa29_or0 >> 0) & 0x01); - f_u_wallace_cla8_fa30_and0 = ((f_u_wallace_cla8_ha6_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa29_or0 >> 0) & 0x01); - f_u_wallace_cla8_fa30_xor1 = ((f_u_wallace_cla8_fa30_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa22_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa30_and1 = ((f_u_wallace_cla8_fa30_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa22_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa30_or0 = ((f_u_wallace_cla8_fa30_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa30_and1 >> 0) & 0x01); - f_u_wallace_cla8_fa31_xor0 = ((f_u_wallace_cla8_fa30_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa27_or0 >> 0) & 0x01); - f_u_wallace_cla8_fa31_and0 = ((f_u_wallace_cla8_fa30_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa27_or0 >> 0) & 0x01); - f_u_wallace_cla8_fa31_xor1 = ((f_u_wallace_cla8_fa31_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa16_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa31_and1 = ((f_u_wallace_cla8_fa31_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa16_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa31_or0 = ((f_u_wallace_cla8_fa31_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa31_and1 >> 0) & 0x01); - f_u_wallace_cla8_fa32_xor0 = ((f_u_wallace_cla8_fa31_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa23_or0 >> 0) & 0x01); - f_u_wallace_cla8_fa32_and0 = ((f_u_wallace_cla8_fa31_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa23_or0 >> 0) & 0x01); - f_u_wallace_cla8_fa32_xor1 = ((f_u_wallace_cla8_fa32_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa8_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa32_and1 = ((f_u_wallace_cla8_fa32_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa8_xor1 >> 0) & 0x01); - f_u_wallace_cla8_fa32_or0 = ((f_u_wallace_cla8_fa32_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa32_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_5_7 = ((a >> 5) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cla8_fa33_xor0 = ((f_u_wallace_cla8_fa32_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa17_or0 >> 0) & 0x01); - f_u_wallace_cla8_fa33_and0 = ((f_u_wallace_cla8_fa32_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa17_or0 >> 0) & 0x01); - f_u_wallace_cla8_fa33_xor1 = ((f_u_wallace_cla8_fa33_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_5_7 >> 0) & 0x01); - f_u_wallace_cla8_fa33_and1 = ((f_u_wallace_cla8_fa33_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_5_7 >> 0) & 0x01); - f_u_wallace_cla8_fa33_or0 = ((f_u_wallace_cla8_fa33_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa33_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_7_6 = ((a >> 7) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cla8_fa34_xor0 = ((f_u_wallace_cla8_fa33_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa9_or0 >> 0) & 0x01); - f_u_wallace_cla8_fa34_and0 = ((f_u_wallace_cla8_fa33_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_fa9_or0 >> 0) & 0x01); - f_u_wallace_cla8_fa34_xor1 = ((f_u_wallace_cla8_fa34_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_7_6 >> 0) & 0x01); - f_u_wallace_cla8_fa34_and1 = ((f_u_wallace_cla8_fa34_xor0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_7_6 >> 0) & 0x01); - f_u_wallace_cla8_fa34_or0 = ((f_u_wallace_cla8_fa34_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_fa34_and1 >> 0) & 0x01); - f_u_wallace_cla8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cla8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cla8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cla8_and_6_7 = ((a >> 6) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cla8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cla8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic0_or0 = ((f_u_wallace_cla8_and_1_0 >> 0) & 0x01) | ((f_u_wallace_cla8_and_0_1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic0_and0 = ((f_u_wallace_cla8_and_1_0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_0_1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic0_xor0 = ((f_u_wallace_cla8_and_1_0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_0_1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic1_or0 = ((f_u_wallace_cla8_and_0_2 >> 0) & 0x01) | ((f_u_wallace_cla8_ha0_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic1_and0 = ((f_u_wallace_cla8_and_0_2 >> 0) & 0x01) & ((f_u_wallace_cla8_ha0_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic1_xor0 = ((f_u_wallace_cla8_and_0_2 >> 0) & 0x01) ^ ((f_u_wallace_cla8_ha0_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_xor1 = ((f_u_wallace_cla8_u_cla14_pg_logic1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and0 = ((f_u_wallace_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or0 = ((f_u_wallace_cla8_u_cla14_pg_logic1_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic2_or0 = ((f_u_wallace_cla8_fa0_xor1 >> 0) & 0x01) | ((f_u_wallace_cla8_ha1_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic2_and0 = ((f_u_wallace_cla8_fa0_xor1 >> 0) & 0x01) & ((f_u_wallace_cla8_ha1_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic2_xor0 = ((f_u_wallace_cla8_fa0_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cla8_ha1_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_xor2 = ((f_u_wallace_cla8_u_cla14_pg_logic2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_u_cla14_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and1 = ((f_u_wallace_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic0_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and2 = ((f_u_wallace_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and3 = ((f_u_wallace_cla8_u_cla14_and2 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and4 = ((f_u_wallace_cla8_u_cla14_pg_logic1_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or1 = ((f_u_wallace_cla8_u_cla14_and3 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and4 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or2 = ((f_u_wallace_cla8_u_cla14_pg_logic2_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_or1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic3_or0 = ((f_u_wallace_cla8_fa10_xor1 >> 0) & 0x01) | ((f_u_wallace_cla8_ha2_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic3_and0 = ((f_u_wallace_cla8_fa10_xor1 >> 0) & 0x01) & ((f_u_wallace_cla8_ha2_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic3_xor0 = ((f_u_wallace_cla8_fa10_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cla8_ha2_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_xor3 = ((f_u_wallace_cla8_u_cla14_pg_logic3_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_u_cla14_or2 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and5 = ((f_u_wallace_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and6 = ((f_u_wallace_cla8_u_cla14_pg_logic0_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and7 = ((f_u_wallace_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic1_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and8 = ((f_u_wallace_cla8_u_cla14_and6 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_and7 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and9 = ((f_u_wallace_cla8_u_cla14_pg_logic1_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and10 = ((f_u_wallace_cla8_u_cla14_and9 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic2_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and11 = ((f_u_wallace_cla8_u_cla14_pg_logic2_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic3_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or3 = ((f_u_wallace_cla8_u_cla14_and8 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and11 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or4 = ((f_u_wallace_cla8_u_cla14_and10 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_or3 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or5 = ((f_u_wallace_cla8_u_cla14_pg_logic3_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_or4 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic4_or0 = ((f_u_wallace_cla8_fa18_xor1 >> 0) & 0x01) | ((f_u_wallace_cla8_ha3_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic4_and0 = ((f_u_wallace_cla8_fa18_xor1 >> 0) & 0x01) & ((f_u_wallace_cla8_ha3_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic4_xor0 = ((f_u_wallace_cla8_fa18_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cla8_ha3_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_xor4 = ((f_u_wallace_cla8_u_cla14_pg_logic4_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_u_cla14_or5 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and12 = ((f_u_wallace_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or6 = ((f_u_wallace_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and12 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic5_or0 = ((f_u_wallace_cla8_fa24_xor1 >> 0) & 0x01) | ((f_u_wallace_cla8_ha4_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic5_and0 = ((f_u_wallace_cla8_fa24_xor1 >> 0) & 0x01) & ((f_u_wallace_cla8_ha4_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic5_xor0 = ((f_u_wallace_cla8_fa24_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cla8_ha4_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_xor5 = ((f_u_wallace_cla8_u_cla14_pg_logic5_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_u_cla14_or6 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and13 = ((f_u_wallace_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and14 = ((f_u_wallace_cla8_u_cla14_and13 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and15 = ((f_u_wallace_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or7 = ((f_u_wallace_cla8_u_cla14_and14 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and15 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or8 = ((f_u_wallace_cla8_u_cla14_pg_logic5_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_or7 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic6_or0 = ((f_u_wallace_cla8_fa28_xor1 >> 0) & 0x01) | ((f_u_wallace_cla8_ha5_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic6_and0 = ((f_u_wallace_cla8_fa28_xor1 >> 0) & 0x01) & ((f_u_wallace_cla8_ha5_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic6_xor0 = ((f_u_wallace_cla8_fa28_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cla8_ha5_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_xor6 = ((f_u_wallace_cla8_u_cla14_pg_logic6_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_u_cla14_or8 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and16 = ((f_u_wallace_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and17 = ((f_u_wallace_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and18 = ((f_u_wallace_cla8_u_cla14_and16 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_and17 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and19 = ((f_u_wallace_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and20 = ((f_u_wallace_cla8_u_cla14_and19 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and21 = ((f_u_wallace_cla8_u_cla14_pg_logic5_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or9 = ((f_u_wallace_cla8_u_cla14_and18 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and20 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or10 = ((f_u_wallace_cla8_u_cla14_or9 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and21 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or11 = ((f_u_wallace_cla8_u_cla14_pg_logic6_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_or10 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic7_or0 = ((f_u_wallace_cla8_fa29_xor1 >> 0) & 0x01) | ((f_u_wallace_cla8_ha6_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic7_and0 = ((f_u_wallace_cla8_fa29_xor1 >> 0) & 0x01) & ((f_u_wallace_cla8_ha6_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic7_xor0 = ((f_u_wallace_cla8_fa29_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cla8_ha6_xor0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_xor7 = ((f_u_wallace_cla8_u_cla14_pg_logic7_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_u_cla14_or11 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and22 = ((f_u_wallace_cla8_u_cla14_or5 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and23 = ((f_u_wallace_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and24 = ((f_u_wallace_cla8_u_cla14_and22 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_and23 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and25 = ((f_u_wallace_cla8_u_cla14_and24 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic4_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and26 = ((f_u_wallace_cla8_u_cla14_pg_logic4_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and27 = ((f_u_wallace_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic5_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and28 = ((f_u_wallace_cla8_u_cla14_and26 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_and27 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and29 = ((f_u_wallace_cla8_u_cla14_pg_logic5_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and30 = ((f_u_wallace_cla8_u_cla14_and29 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic6_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and31 = ((f_u_wallace_cla8_u_cla14_pg_logic6_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic7_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or12 = ((f_u_wallace_cla8_u_cla14_and25 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and30 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or13 = ((f_u_wallace_cla8_u_cla14_and28 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and31 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or14 = ((f_u_wallace_cla8_u_cla14_or12 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_or13 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or15 = ((f_u_wallace_cla8_u_cla14_pg_logic7_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_or14 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic8_or0 = ((f_u_wallace_cla8_fa27_xor1 >> 0) & 0x01) | ((f_u_wallace_cla8_fa30_xor1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic8_and0 = ((f_u_wallace_cla8_fa27_xor1 >> 0) & 0x01) & ((f_u_wallace_cla8_fa30_xor1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic8_xor0 = ((f_u_wallace_cla8_fa27_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa30_xor1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_xor8 = ((f_u_wallace_cla8_u_cla14_pg_logic8_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_u_cla14_or15 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and32 = ((f_u_wallace_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or16 = ((f_u_wallace_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and32 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic9_or0 = ((f_u_wallace_cla8_fa23_xor1 >> 0) & 0x01) | ((f_u_wallace_cla8_fa31_xor1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic9_and0 = ((f_u_wallace_cla8_fa23_xor1 >> 0) & 0x01) & ((f_u_wallace_cla8_fa31_xor1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic9_xor0 = ((f_u_wallace_cla8_fa23_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa31_xor1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_xor9 = ((f_u_wallace_cla8_u_cla14_pg_logic9_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_u_cla14_or16 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and33 = ((f_u_wallace_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and34 = ((f_u_wallace_cla8_u_cla14_and33 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and35 = ((f_u_wallace_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or17 = ((f_u_wallace_cla8_u_cla14_and34 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and35 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or18 = ((f_u_wallace_cla8_u_cla14_pg_logic9_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_or17 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic10_or0 = ((f_u_wallace_cla8_fa17_xor1 >> 0) & 0x01) | ((f_u_wallace_cla8_fa32_xor1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic10_and0 = ((f_u_wallace_cla8_fa17_xor1 >> 0) & 0x01) & ((f_u_wallace_cla8_fa32_xor1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic10_xor0 = ((f_u_wallace_cla8_fa17_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa32_xor1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_xor10 = ((f_u_wallace_cla8_u_cla14_pg_logic10_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_u_cla14_or18 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and36 = ((f_u_wallace_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and37 = ((f_u_wallace_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and38 = ((f_u_wallace_cla8_u_cla14_and36 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_and37 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and39 = ((f_u_wallace_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and40 = ((f_u_wallace_cla8_u_cla14_and39 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and41 = ((f_u_wallace_cla8_u_cla14_pg_logic9_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or19 = ((f_u_wallace_cla8_u_cla14_and38 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and40 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or20 = ((f_u_wallace_cla8_u_cla14_or19 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and41 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or21 = ((f_u_wallace_cla8_u_cla14_pg_logic10_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_or20 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic11_or0 = ((f_u_wallace_cla8_fa9_xor1 >> 0) & 0x01) | ((f_u_wallace_cla8_fa33_xor1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic11_and0 = ((f_u_wallace_cla8_fa9_xor1 >> 0) & 0x01) & ((f_u_wallace_cla8_fa33_xor1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic11_xor0 = ((f_u_wallace_cla8_fa9_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa33_xor1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_xor11 = ((f_u_wallace_cla8_u_cla14_pg_logic11_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_u_cla14_or21 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and42 = ((f_u_wallace_cla8_u_cla14_or15 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and43 = ((f_u_wallace_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and44 = ((f_u_wallace_cla8_u_cla14_and42 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_and43 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and45 = ((f_u_wallace_cla8_u_cla14_and44 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic8_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and46 = ((f_u_wallace_cla8_u_cla14_pg_logic8_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and47 = ((f_u_wallace_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic9_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and48 = ((f_u_wallace_cla8_u_cla14_and46 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_and47 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and49 = ((f_u_wallace_cla8_u_cla14_pg_logic9_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and50 = ((f_u_wallace_cla8_u_cla14_and49 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic10_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and51 = ((f_u_wallace_cla8_u_cla14_pg_logic10_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic11_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or22 = ((f_u_wallace_cla8_u_cla14_and45 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and50 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or23 = ((f_u_wallace_cla8_u_cla14_and48 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and51 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or24 = ((f_u_wallace_cla8_u_cla14_or22 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_or23 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or25 = ((f_u_wallace_cla8_u_cla14_pg_logic11_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_or24 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic12_or0 = ((f_u_wallace_cla8_and_6_7 >> 0) & 0x01) | ((f_u_wallace_cla8_fa34_xor1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic12_and0 = ((f_u_wallace_cla8_and_6_7 >> 0) & 0x01) & ((f_u_wallace_cla8_fa34_xor1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic12_xor0 = ((f_u_wallace_cla8_and_6_7 >> 0) & 0x01) ^ ((f_u_wallace_cla8_fa34_xor1 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_xor12 = ((f_u_wallace_cla8_u_cla14_pg_logic12_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_u_cla14_or25 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and52 = ((f_u_wallace_cla8_u_cla14_or25 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic12_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or26 = ((f_u_wallace_cla8_u_cla14_pg_logic12_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and52 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic13_or0 = ((f_u_wallace_cla8_fa34_or0 >> 0) & 0x01) | ((f_u_wallace_cla8_and_7_7 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic13_and0 = ((f_u_wallace_cla8_fa34_or0 >> 0) & 0x01) & ((f_u_wallace_cla8_and_7_7 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_pg_logic13_xor0 = ((f_u_wallace_cla8_fa34_or0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_and_7_7 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_xor13 = ((f_u_wallace_cla8_u_cla14_pg_logic13_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cla8_u_cla14_or26 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and53 = ((f_u_wallace_cla8_u_cla14_or25 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic13_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and54 = ((f_u_wallace_cla8_u_cla14_and53 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic12_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_and55 = ((f_u_wallace_cla8_u_cla14_pg_logic12_and0 >> 0) & 0x01) & ((f_u_wallace_cla8_u_cla14_pg_logic13_or0 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or27 = ((f_u_wallace_cla8_u_cla14_and54 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_and55 >> 0) & 0x01); - f_u_wallace_cla8_u_cla14_or28 = ((f_u_wallace_cla8_u_cla14_pg_logic13_and0 >> 0) & 0x01) | ((f_u_wallace_cla8_u_cla14_or27 >> 0) & 0x01); - - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_and_0_0 >> 0) & 0x01) << 0; - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_u_cla14_pg_logic0_xor0 >> 0) & 0x01) << 1; - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_u_cla14_xor1 >> 0) & 0x01) << 2; - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_u_cla14_xor2 >> 0) & 0x01) << 3; - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_u_cla14_xor3 >> 0) & 0x01) << 4; - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_u_cla14_xor4 >> 0) & 0x01) << 5; - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_u_cla14_xor5 >> 0) & 0x01) << 6; - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_u_cla14_xor6 >> 0) & 0x01) << 7; - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_u_cla14_xor7 >> 0) & 0x01) << 8; - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_u_cla14_xor8 >> 0) & 0x01) << 9; - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_u_cla14_xor9 >> 0) & 0x01) << 10; - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_u_cla14_xor10 >> 0) & 0x01) << 11; - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_u_cla14_xor11 >> 0) & 0x01) << 12; - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_u_cla14_xor12 >> 0) & 0x01) << 13; - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_u_cla14_xor13 >> 0) & 0x01) << 14; - f_u_wallace_cla8_out |= ((f_u_wallace_cla8_u_cla14_or28 >> 0) & 0x01) << 15; - return f_u_wallace_cla8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == f_u_wallace_cla8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cska4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cska4.c deleted file mode 100644 index f175a6d..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cska4.c +++ /dev/null @@ -1,187 +0,0 @@ -#include -#include - -uint64_t f_u_wallace_cska4(uint64_t a, uint64_t b){ - uint8_t f_u_wallace_cska4_out = 0; - uint8_t f_u_wallace_cska4_and_2_0 = 0; - uint8_t f_u_wallace_cska4_and_1_1 = 0; - uint8_t f_u_wallace_cska4_ha0_xor0 = 0; - uint8_t f_u_wallace_cska4_ha0_and0 = 0; - uint8_t f_u_wallace_cska4_and_3_0 = 0; - uint8_t f_u_wallace_cska4_and_2_1 = 0; - uint8_t f_u_wallace_cska4_fa0_xor0 = 0; - uint8_t f_u_wallace_cska4_fa0_and0 = 0; - uint8_t f_u_wallace_cska4_fa0_xor1 = 0; - uint8_t f_u_wallace_cska4_fa0_and1 = 0; - uint8_t f_u_wallace_cska4_fa0_or0 = 0; - uint8_t f_u_wallace_cska4_and_3_1 = 0; - uint8_t f_u_wallace_cska4_and_2_2 = 0; - uint8_t f_u_wallace_cska4_fa1_xor0 = 0; - uint8_t f_u_wallace_cska4_fa1_and0 = 0; - uint8_t f_u_wallace_cska4_fa1_xor1 = 0; - uint8_t f_u_wallace_cska4_fa1_and1 = 0; - uint8_t f_u_wallace_cska4_fa1_or0 = 0; - uint8_t f_u_wallace_cska4_and_1_2 = 0; - uint8_t f_u_wallace_cska4_and_0_3 = 0; - uint8_t f_u_wallace_cska4_ha1_xor0 = 0; - uint8_t f_u_wallace_cska4_ha1_and0 = 0; - uint8_t f_u_wallace_cska4_and_1_3 = 0; - uint8_t f_u_wallace_cska4_ha2_xor0 = 0; - uint8_t f_u_wallace_cska4_ha2_and0 = 0; - uint8_t f_u_wallace_cska4_and_3_2 = 0; - uint8_t f_u_wallace_cska4_fa2_xor0 = 0; - uint8_t f_u_wallace_cska4_fa2_and0 = 0; - uint8_t f_u_wallace_cska4_fa2_xor1 = 0; - uint8_t f_u_wallace_cska4_fa2_and1 = 0; - uint8_t f_u_wallace_cska4_fa2_or0 = 0; - uint8_t f_u_wallace_cska4_and_0_0 = 0; - uint8_t f_u_wallace_cska4_and_1_0 = 0; - uint8_t f_u_wallace_cska4_and_0_2 = 0; - uint8_t f_u_wallace_cska4_and_2_3 = 0; - uint8_t f_u_wallace_cska4_and_0_1 = 0; - uint8_t f_u_wallace_cska4_and_3_3 = 0; - uint8_t f_u_wallace_cska4_u_cska6_xor0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_ha0_xor0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_ha0_and0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_xor1 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa0_xor0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa0_and0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa0_xor1 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa0_and1 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa0_or0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_xor2 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa1_xor0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa1_and0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa1_xor1 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa1_and1 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa1_or0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_xor3 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa2_xor0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa2_and0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa2_xor1 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa2_and1 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa2_or0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_and_propagate00 = 0; - uint8_t f_u_wallace_cska4_u_cska6_and_propagate01 = 0; - uint8_t f_u_wallace_cska4_u_cska6_and_propagate02 = 0; - uint8_t f_u_wallace_cska4_u_cska6_mux2to10_not0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_mux2to10_and1 = 0; - uint8_t f_u_wallace_cska4_u_cska6_xor4 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa3_xor0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa3_and0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa3_xor1 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa3_and1 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa3_or0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_xor5 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa4_xor0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa4_and0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa4_xor1 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa4_and1 = 0; - uint8_t f_u_wallace_cska4_u_cska6_fa4_or0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_and_propagate13 = 0; - uint8_t f_u_wallace_cska4_u_cska6_mux2to11_and0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_mux2to11_not0 = 0; - uint8_t f_u_wallace_cska4_u_cska6_mux2to11_and1 = 0; - uint8_t f_u_wallace_cska4_u_cska6_mux2to11_xor0 = 0; - - f_u_wallace_cska4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cska4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cska4_ha0_xor0 = ((f_u_wallace_cska4_and_2_0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_and_1_1 >> 0) & 0x01); - f_u_wallace_cska4_ha0_and0 = ((f_u_wallace_cska4_and_2_0 >> 0) & 0x01) & ((f_u_wallace_cska4_and_1_1 >> 0) & 0x01); - f_u_wallace_cska4_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cska4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cska4_fa0_xor0 = ((f_u_wallace_cska4_ha0_and0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_and_3_0 >> 0) & 0x01); - f_u_wallace_cska4_fa0_and0 = ((f_u_wallace_cska4_ha0_and0 >> 0) & 0x01) & ((f_u_wallace_cska4_and_3_0 >> 0) & 0x01); - f_u_wallace_cska4_fa0_xor1 = ((f_u_wallace_cska4_fa0_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_and_2_1 >> 0) & 0x01); - f_u_wallace_cska4_fa0_and1 = ((f_u_wallace_cska4_fa0_xor0 >> 0) & 0x01) & ((f_u_wallace_cska4_and_2_1 >> 0) & 0x01); - f_u_wallace_cska4_fa0_or0 = ((f_u_wallace_cska4_fa0_and0 >> 0) & 0x01) | ((f_u_wallace_cska4_fa0_and1 >> 0) & 0x01); - f_u_wallace_cska4_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cska4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cska4_fa1_xor0 = ((f_u_wallace_cska4_fa0_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_and_3_1 >> 0) & 0x01); - f_u_wallace_cska4_fa1_and0 = ((f_u_wallace_cska4_fa0_or0 >> 0) & 0x01) & ((f_u_wallace_cska4_and_3_1 >> 0) & 0x01); - f_u_wallace_cska4_fa1_xor1 = ((f_u_wallace_cska4_fa1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_and_2_2 >> 0) & 0x01); - f_u_wallace_cska4_fa1_and1 = ((f_u_wallace_cska4_fa1_xor0 >> 0) & 0x01) & ((f_u_wallace_cska4_and_2_2 >> 0) & 0x01); - f_u_wallace_cska4_fa1_or0 = ((f_u_wallace_cska4_fa1_and0 >> 0) & 0x01) | ((f_u_wallace_cska4_fa1_and1 >> 0) & 0x01); - f_u_wallace_cska4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cska4_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cska4_ha1_xor0 = ((f_u_wallace_cska4_and_1_2 >> 0) & 0x01) ^ ((f_u_wallace_cska4_and_0_3 >> 0) & 0x01); - f_u_wallace_cska4_ha1_and0 = ((f_u_wallace_cska4_and_1_2 >> 0) & 0x01) & ((f_u_wallace_cska4_and_0_3 >> 0) & 0x01); - f_u_wallace_cska4_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cska4_ha2_xor0 = ((f_u_wallace_cska4_ha1_and0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_and_1_3 >> 0) & 0x01); - f_u_wallace_cska4_ha2_and0 = ((f_u_wallace_cska4_ha1_and0 >> 0) & 0x01) & ((f_u_wallace_cska4_and_1_3 >> 0) & 0x01); - f_u_wallace_cska4_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cska4_fa2_xor0 = ((f_u_wallace_cska4_ha2_and0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_fa1_or0 >> 0) & 0x01); - f_u_wallace_cska4_fa2_and0 = ((f_u_wallace_cska4_ha2_and0 >> 0) & 0x01) & ((f_u_wallace_cska4_fa1_or0 >> 0) & 0x01); - f_u_wallace_cska4_fa2_xor1 = ((f_u_wallace_cska4_fa2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_and_3_2 >> 0) & 0x01); - f_u_wallace_cska4_fa2_and1 = ((f_u_wallace_cska4_fa2_xor0 >> 0) & 0x01) & ((f_u_wallace_cska4_and_3_2 >> 0) & 0x01); - f_u_wallace_cska4_fa2_or0 = ((f_u_wallace_cska4_fa2_and0 >> 0) & 0x01) | ((f_u_wallace_cska4_fa2_and1 >> 0) & 0x01); - f_u_wallace_cska4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cska4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cska4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cska4_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cska4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cska4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cska4_u_cska6_xor0 = ((f_u_wallace_cska4_and_1_0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_and_0_1 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_ha0_xor0 = ((f_u_wallace_cska4_and_1_0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_and_0_1 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_ha0_and0 = ((f_u_wallace_cska4_and_1_0 >> 0) & 0x01) & ((f_u_wallace_cska4_and_0_1 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_xor1 = ((f_u_wallace_cska4_and_0_2 >> 0) & 0x01) ^ ((f_u_wallace_cska4_ha0_xor0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa0_xor0 = ((f_u_wallace_cska4_and_0_2 >> 0) & 0x01) ^ ((f_u_wallace_cska4_ha0_xor0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa0_and0 = ((f_u_wallace_cska4_and_0_2 >> 0) & 0x01) & ((f_u_wallace_cska4_ha0_xor0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa0_xor1 = ((f_u_wallace_cska4_u_cska6_fa0_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_u_cska6_ha0_and0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa0_and1 = ((f_u_wallace_cska4_u_cska6_fa0_xor0 >> 0) & 0x01) & ((f_u_wallace_cska4_u_cska6_ha0_and0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa0_or0 = ((f_u_wallace_cska4_u_cska6_fa0_and0 >> 0) & 0x01) | ((f_u_wallace_cska4_u_cska6_fa0_and1 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_xor2 = ((f_u_wallace_cska4_fa0_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska4_ha1_xor0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa1_xor0 = ((f_u_wallace_cska4_fa0_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska4_ha1_xor0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa1_and0 = ((f_u_wallace_cska4_fa0_xor1 >> 0) & 0x01) & ((f_u_wallace_cska4_ha1_xor0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa1_xor1 = ((f_u_wallace_cska4_u_cska6_fa1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_u_cska6_fa0_or0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa1_and1 = ((f_u_wallace_cska4_u_cska6_fa1_xor0 >> 0) & 0x01) & ((f_u_wallace_cska4_u_cska6_fa0_or0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa1_or0 = ((f_u_wallace_cska4_u_cska6_fa1_and0 >> 0) & 0x01) | ((f_u_wallace_cska4_u_cska6_fa1_and1 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_xor3 = ((f_u_wallace_cska4_fa1_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska4_ha2_xor0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa2_xor0 = ((f_u_wallace_cska4_fa1_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska4_ha2_xor0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa2_and0 = ((f_u_wallace_cska4_fa1_xor1 >> 0) & 0x01) & ((f_u_wallace_cska4_ha2_xor0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa2_xor1 = ((f_u_wallace_cska4_u_cska6_fa2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_u_cska6_fa1_or0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa2_and1 = ((f_u_wallace_cska4_u_cska6_fa2_xor0 >> 0) & 0x01) & ((f_u_wallace_cska4_u_cska6_fa1_or0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa2_or0 = ((f_u_wallace_cska4_u_cska6_fa2_and0 >> 0) & 0x01) | ((f_u_wallace_cska4_u_cska6_fa2_and1 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_and_propagate00 = ((f_u_wallace_cska4_u_cska6_xor0 >> 0) & 0x01) & ((f_u_wallace_cska4_u_cska6_xor2 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_and_propagate01 = ((f_u_wallace_cska4_u_cska6_xor1 >> 0) & 0x01) & ((f_u_wallace_cska4_u_cska6_xor3 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_and_propagate02 = ((f_u_wallace_cska4_u_cska6_and_propagate00 >> 0) & 0x01) & ((f_u_wallace_cska4_u_cska6_and_propagate01 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_mux2to10_not0 = ~(((f_u_wallace_cska4_u_cska6_and_propagate02 >> 0) & 0x01)) & 0x01; - f_u_wallace_cska4_u_cska6_mux2to10_and1 = ((f_u_wallace_cska4_u_cska6_fa2_or0 >> 0) & 0x01) & ((f_u_wallace_cska4_u_cska6_mux2to10_not0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_xor4 = ((f_u_wallace_cska4_and_2_3 >> 0) & 0x01) ^ ((f_u_wallace_cska4_fa2_xor1 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa3_xor0 = ((f_u_wallace_cska4_and_2_3 >> 0) & 0x01) ^ ((f_u_wallace_cska4_fa2_xor1 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa3_and0 = ((f_u_wallace_cska4_and_2_3 >> 0) & 0x01) & ((f_u_wallace_cska4_fa2_xor1 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa3_xor1 = ((f_u_wallace_cska4_u_cska6_fa3_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_u_cska6_mux2to10_and1 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa3_and1 = ((f_u_wallace_cska4_u_cska6_fa3_xor0 >> 0) & 0x01) & ((f_u_wallace_cska4_u_cska6_mux2to10_and1 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa3_or0 = ((f_u_wallace_cska4_u_cska6_fa3_and0 >> 0) & 0x01) | ((f_u_wallace_cska4_u_cska6_fa3_and1 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_xor5 = ((f_u_wallace_cska4_fa2_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_and_3_3 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa4_xor0 = ((f_u_wallace_cska4_fa2_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_and_3_3 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa4_and0 = ((f_u_wallace_cska4_fa2_or0 >> 0) & 0x01) & ((f_u_wallace_cska4_and_3_3 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa4_xor1 = ((f_u_wallace_cska4_u_cska6_fa4_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_u_cska6_fa3_or0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa4_and1 = ((f_u_wallace_cska4_u_cska6_fa4_xor0 >> 0) & 0x01) & ((f_u_wallace_cska4_u_cska6_fa3_or0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_fa4_or0 = ((f_u_wallace_cska4_u_cska6_fa4_and0 >> 0) & 0x01) | ((f_u_wallace_cska4_u_cska6_fa4_and1 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_and_propagate13 = ((f_u_wallace_cska4_u_cska6_xor4 >> 0) & 0x01) & ((f_u_wallace_cska4_u_cska6_xor5 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_mux2to11_and0 = ((f_u_wallace_cska4_u_cska6_mux2to10_and1 >> 0) & 0x01) & ((f_u_wallace_cska4_u_cska6_and_propagate13 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_mux2to11_not0 = ~(((f_u_wallace_cska4_u_cska6_and_propagate13 >> 0) & 0x01)) & 0x01; - f_u_wallace_cska4_u_cska6_mux2to11_and1 = ((f_u_wallace_cska4_u_cska6_fa4_or0 >> 0) & 0x01) & ((f_u_wallace_cska4_u_cska6_mux2to11_not0 >> 0) & 0x01); - f_u_wallace_cska4_u_cska6_mux2to11_xor0 = ((f_u_wallace_cska4_u_cska6_mux2to11_and0 >> 0) & 0x01) ^ ((f_u_wallace_cska4_u_cska6_mux2to11_and1 >> 0) & 0x01); - - f_u_wallace_cska4_out |= ((f_u_wallace_cska4_and_0_0 >> 0) & 0x01) << 0; - f_u_wallace_cska4_out |= ((f_u_wallace_cska4_u_cska6_ha0_xor0 >> 0) & 0x01) << 1; - f_u_wallace_cska4_out |= ((f_u_wallace_cska4_u_cska6_fa0_xor1 >> 0) & 0x01) << 2; - f_u_wallace_cska4_out |= ((f_u_wallace_cska4_u_cska6_fa1_xor1 >> 0) & 0x01) << 3; - f_u_wallace_cska4_out |= ((f_u_wallace_cska4_u_cska6_fa2_xor1 >> 0) & 0x01) << 4; - f_u_wallace_cska4_out |= ((f_u_wallace_cska4_u_cska6_fa3_xor1 >> 0) & 0x01) << 5; - f_u_wallace_cska4_out |= ((f_u_wallace_cska4_u_cska6_fa4_xor1 >> 0) & 0x01) << 6; - f_u_wallace_cska4_out |= ((f_u_wallace_cska4_u_cska6_mux2to11_xor0 >> 0) & 0x01) << 7; - return f_u_wallace_cska4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == f_u_wallace_cska4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cska8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cska8.c deleted file mode 100644 index a2aa01d..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_cska8.c +++ /dev/null @@ -1,751 +0,0 @@ -#include -#include - -uint64_t f_u_wallace_cska8(uint64_t a, uint64_t b){ - uint64_t f_u_wallace_cska8_out = 0; - uint8_t f_u_wallace_cska8_and_2_0 = 0; - uint8_t f_u_wallace_cska8_and_1_1 = 0; - uint8_t f_u_wallace_cska8_ha0_xor0 = 0; - uint8_t f_u_wallace_cska8_ha0_and0 = 0; - uint8_t f_u_wallace_cska8_and_3_0 = 0; - uint8_t f_u_wallace_cska8_and_2_1 = 0; - uint8_t f_u_wallace_cska8_fa0_xor0 = 0; - uint8_t f_u_wallace_cska8_fa0_and0 = 0; - uint8_t f_u_wallace_cska8_fa0_xor1 = 0; - uint8_t f_u_wallace_cska8_fa0_and1 = 0; - uint8_t f_u_wallace_cska8_fa0_or0 = 0; - uint8_t f_u_wallace_cska8_and_4_0 = 0; - uint8_t f_u_wallace_cska8_and_3_1 = 0; - uint8_t f_u_wallace_cska8_fa1_xor0 = 0; - uint8_t f_u_wallace_cska8_fa1_and0 = 0; - uint8_t f_u_wallace_cska8_fa1_xor1 = 0; - uint8_t f_u_wallace_cska8_fa1_and1 = 0; - uint8_t f_u_wallace_cska8_fa1_or0 = 0; - uint8_t f_u_wallace_cska8_and_5_0 = 0; - uint8_t f_u_wallace_cska8_and_4_1 = 0; - uint8_t f_u_wallace_cska8_fa2_xor0 = 0; - uint8_t f_u_wallace_cska8_fa2_and0 = 0; - uint8_t f_u_wallace_cska8_fa2_xor1 = 0; - uint8_t f_u_wallace_cska8_fa2_and1 = 0; - uint8_t f_u_wallace_cska8_fa2_or0 = 0; - uint8_t f_u_wallace_cska8_and_6_0 = 0; - uint8_t f_u_wallace_cska8_and_5_1 = 0; - uint8_t f_u_wallace_cska8_fa3_xor0 = 0; - uint8_t f_u_wallace_cska8_fa3_and0 = 0; - uint8_t f_u_wallace_cska8_fa3_xor1 = 0; - uint8_t f_u_wallace_cska8_fa3_and1 = 0; - uint8_t f_u_wallace_cska8_fa3_or0 = 0; - uint8_t f_u_wallace_cska8_and_7_0 = 0; - uint8_t f_u_wallace_cska8_and_6_1 = 0; - uint8_t f_u_wallace_cska8_fa4_xor0 = 0; - uint8_t f_u_wallace_cska8_fa4_and0 = 0; - uint8_t f_u_wallace_cska8_fa4_xor1 = 0; - uint8_t f_u_wallace_cska8_fa4_and1 = 0; - uint8_t f_u_wallace_cska8_fa4_or0 = 0; - uint8_t f_u_wallace_cska8_and_7_1 = 0; - uint8_t f_u_wallace_cska8_and_6_2 = 0; - uint8_t f_u_wallace_cska8_fa5_xor0 = 0; - uint8_t f_u_wallace_cska8_fa5_and0 = 0; - uint8_t f_u_wallace_cska8_fa5_xor1 = 0; - uint8_t f_u_wallace_cska8_fa5_and1 = 0; - uint8_t f_u_wallace_cska8_fa5_or0 = 0; - uint8_t f_u_wallace_cska8_and_7_2 = 0; - uint8_t f_u_wallace_cska8_and_6_3 = 0; - uint8_t f_u_wallace_cska8_fa6_xor0 = 0; - uint8_t f_u_wallace_cska8_fa6_and0 = 0; - uint8_t f_u_wallace_cska8_fa6_xor1 = 0; - uint8_t f_u_wallace_cska8_fa6_and1 = 0; - uint8_t f_u_wallace_cska8_fa6_or0 = 0; - uint8_t f_u_wallace_cska8_and_7_3 = 0; - uint8_t f_u_wallace_cska8_and_6_4 = 0; - uint8_t f_u_wallace_cska8_fa7_xor0 = 0; - uint8_t f_u_wallace_cska8_fa7_and0 = 0; - uint8_t f_u_wallace_cska8_fa7_xor1 = 0; - uint8_t f_u_wallace_cska8_fa7_and1 = 0; - uint8_t f_u_wallace_cska8_fa7_or0 = 0; - uint8_t f_u_wallace_cska8_and_7_4 = 0; - uint8_t f_u_wallace_cska8_and_6_5 = 0; - uint8_t f_u_wallace_cska8_fa8_xor0 = 0; - uint8_t f_u_wallace_cska8_fa8_and0 = 0; - uint8_t f_u_wallace_cska8_fa8_xor1 = 0; - uint8_t f_u_wallace_cska8_fa8_and1 = 0; - uint8_t f_u_wallace_cska8_fa8_or0 = 0; - uint8_t f_u_wallace_cska8_and_7_5 = 0; - uint8_t f_u_wallace_cska8_and_6_6 = 0; - uint8_t f_u_wallace_cska8_fa9_xor0 = 0; - uint8_t f_u_wallace_cska8_fa9_and0 = 0; - uint8_t f_u_wallace_cska8_fa9_xor1 = 0; - uint8_t f_u_wallace_cska8_fa9_and1 = 0; - uint8_t f_u_wallace_cska8_fa9_or0 = 0; - uint8_t f_u_wallace_cska8_and_1_2 = 0; - uint8_t f_u_wallace_cska8_and_0_3 = 0; - uint8_t f_u_wallace_cska8_ha1_xor0 = 0; - uint8_t f_u_wallace_cska8_ha1_and0 = 0; - uint8_t f_u_wallace_cska8_and_2_2 = 0; - uint8_t f_u_wallace_cska8_and_1_3 = 0; - uint8_t f_u_wallace_cska8_fa10_xor0 = 0; - uint8_t f_u_wallace_cska8_fa10_and0 = 0; - uint8_t f_u_wallace_cska8_fa10_xor1 = 0; - uint8_t f_u_wallace_cska8_fa10_and1 = 0; - uint8_t f_u_wallace_cska8_fa10_or0 = 0; - uint8_t f_u_wallace_cska8_and_3_2 = 0; - uint8_t f_u_wallace_cska8_and_2_3 = 0; - uint8_t f_u_wallace_cska8_fa11_xor0 = 0; - uint8_t f_u_wallace_cska8_fa11_and0 = 0; - uint8_t f_u_wallace_cska8_fa11_xor1 = 0; - uint8_t f_u_wallace_cska8_fa11_and1 = 0; - uint8_t f_u_wallace_cska8_fa11_or0 = 0; - uint8_t f_u_wallace_cska8_and_4_2 = 0; - uint8_t f_u_wallace_cska8_and_3_3 = 0; - uint8_t f_u_wallace_cska8_fa12_xor0 = 0; - uint8_t f_u_wallace_cska8_fa12_and0 = 0; - uint8_t f_u_wallace_cska8_fa12_xor1 = 0; - uint8_t f_u_wallace_cska8_fa12_and1 = 0; - uint8_t f_u_wallace_cska8_fa12_or0 = 0; - uint8_t f_u_wallace_cska8_and_5_2 = 0; - uint8_t f_u_wallace_cska8_and_4_3 = 0; - uint8_t f_u_wallace_cska8_fa13_xor0 = 0; - uint8_t f_u_wallace_cska8_fa13_and0 = 0; - uint8_t f_u_wallace_cska8_fa13_xor1 = 0; - uint8_t f_u_wallace_cska8_fa13_and1 = 0; - uint8_t f_u_wallace_cska8_fa13_or0 = 0; - uint8_t f_u_wallace_cska8_and_5_3 = 0; - uint8_t f_u_wallace_cska8_and_4_4 = 0; - uint8_t f_u_wallace_cska8_fa14_xor0 = 0; - uint8_t f_u_wallace_cska8_fa14_and0 = 0; - uint8_t f_u_wallace_cska8_fa14_xor1 = 0; - uint8_t f_u_wallace_cska8_fa14_and1 = 0; - uint8_t f_u_wallace_cska8_fa14_or0 = 0; - uint8_t f_u_wallace_cska8_and_5_4 = 0; - uint8_t f_u_wallace_cska8_and_4_5 = 0; - uint8_t f_u_wallace_cska8_fa15_xor0 = 0; - uint8_t f_u_wallace_cska8_fa15_and0 = 0; - uint8_t f_u_wallace_cska8_fa15_xor1 = 0; - uint8_t f_u_wallace_cska8_fa15_and1 = 0; - uint8_t f_u_wallace_cska8_fa15_or0 = 0; - uint8_t f_u_wallace_cska8_and_5_5 = 0; - uint8_t f_u_wallace_cska8_and_4_6 = 0; - uint8_t f_u_wallace_cska8_fa16_xor0 = 0; - uint8_t f_u_wallace_cska8_fa16_and0 = 0; - uint8_t f_u_wallace_cska8_fa16_xor1 = 0; - uint8_t f_u_wallace_cska8_fa16_and1 = 0; - uint8_t f_u_wallace_cska8_fa16_or0 = 0; - uint8_t f_u_wallace_cska8_and_5_6 = 0; - uint8_t f_u_wallace_cska8_and_4_7 = 0; - uint8_t f_u_wallace_cska8_fa17_xor0 = 0; - uint8_t f_u_wallace_cska8_fa17_and0 = 0; - uint8_t f_u_wallace_cska8_fa17_xor1 = 0; - uint8_t f_u_wallace_cska8_fa17_and1 = 0; - uint8_t f_u_wallace_cska8_fa17_or0 = 0; - uint8_t f_u_wallace_cska8_and_0_4 = 0; - uint8_t f_u_wallace_cska8_ha2_xor0 = 0; - uint8_t f_u_wallace_cska8_ha2_and0 = 0; - uint8_t f_u_wallace_cska8_and_1_4 = 0; - uint8_t f_u_wallace_cska8_and_0_5 = 0; - uint8_t f_u_wallace_cska8_fa18_xor0 = 0; - uint8_t f_u_wallace_cska8_fa18_and0 = 0; - uint8_t f_u_wallace_cska8_fa18_xor1 = 0; - uint8_t f_u_wallace_cska8_fa18_and1 = 0; - uint8_t f_u_wallace_cska8_fa18_or0 = 0; - uint8_t f_u_wallace_cska8_and_2_4 = 0; - uint8_t f_u_wallace_cska8_and_1_5 = 0; - uint8_t f_u_wallace_cska8_fa19_xor0 = 0; - uint8_t f_u_wallace_cska8_fa19_and0 = 0; - uint8_t f_u_wallace_cska8_fa19_xor1 = 0; - uint8_t f_u_wallace_cska8_fa19_and1 = 0; - uint8_t f_u_wallace_cska8_fa19_or0 = 0; - uint8_t f_u_wallace_cska8_and_3_4 = 0; - uint8_t f_u_wallace_cska8_and_2_5 = 0; - uint8_t f_u_wallace_cska8_fa20_xor0 = 0; - uint8_t f_u_wallace_cska8_fa20_and0 = 0; - uint8_t f_u_wallace_cska8_fa20_xor1 = 0; - uint8_t f_u_wallace_cska8_fa20_and1 = 0; - uint8_t f_u_wallace_cska8_fa20_or0 = 0; - uint8_t f_u_wallace_cska8_and_3_5 = 0; - uint8_t f_u_wallace_cska8_and_2_6 = 0; - uint8_t f_u_wallace_cska8_fa21_xor0 = 0; - uint8_t f_u_wallace_cska8_fa21_and0 = 0; - uint8_t f_u_wallace_cska8_fa21_xor1 = 0; - uint8_t f_u_wallace_cska8_fa21_and1 = 0; - uint8_t f_u_wallace_cska8_fa21_or0 = 0; - uint8_t f_u_wallace_cska8_and_3_6 = 0; - uint8_t f_u_wallace_cska8_and_2_7 = 0; - uint8_t f_u_wallace_cska8_fa22_xor0 = 0; - uint8_t f_u_wallace_cska8_fa22_and0 = 0; - uint8_t f_u_wallace_cska8_fa22_xor1 = 0; - uint8_t f_u_wallace_cska8_fa22_and1 = 0; - uint8_t f_u_wallace_cska8_fa22_or0 = 0; - uint8_t f_u_wallace_cska8_and_3_7 = 0; - uint8_t f_u_wallace_cska8_fa23_xor0 = 0; - uint8_t f_u_wallace_cska8_fa23_and0 = 0; - uint8_t f_u_wallace_cska8_fa23_xor1 = 0; - uint8_t f_u_wallace_cska8_fa23_and1 = 0; - uint8_t f_u_wallace_cska8_fa23_or0 = 0; - uint8_t f_u_wallace_cska8_ha3_xor0 = 0; - uint8_t f_u_wallace_cska8_ha3_and0 = 0; - uint8_t f_u_wallace_cska8_and_0_6 = 0; - uint8_t f_u_wallace_cska8_fa24_xor0 = 0; - uint8_t f_u_wallace_cska8_fa24_and0 = 0; - uint8_t f_u_wallace_cska8_fa24_xor1 = 0; - uint8_t f_u_wallace_cska8_fa24_and1 = 0; - uint8_t f_u_wallace_cska8_fa24_or0 = 0; - uint8_t f_u_wallace_cska8_and_1_6 = 0; - uint8_t f_u_wallace_cska8_and_0_7 = 0; - uint8_t f_u_wallace_cska8_fa25_xor0 = 0; - uint8_t f_u_wallace_cska8_fa25_and0 = 0; - uint8_t f_u_wallace_cska8_fa25_xor1 = 0; - uint8_t f_u_wallace_cska8_fa25_and1 = 0; - uint8_t f_u_wallace_cska8_fa25_or0 = 0; - uint8_t f_u_wallace_cska8_and_1_7 = 0; - uint8_t f_u_wallace_cska8_fa26_xor0 = 0; - uint8_t f_u_wallace_cska8_fa26_and0 = 0; - uint8_t f_u_wallace_cska8_fa26_xor1 = 0; - uint8_t f_u_wallace_cska8_fa26_and1 = 0; - uint8_t f_u_wallace_cska8_fa26_or0 = 0; - uint8_t f_u_wallace_cska8_fa27_xor0 = 0; - uint8_t f_u_wallace_cska8_fa27_and0 = 0; - uint8_t f_u_wallace_cska8_fa27_xor1 = 0; - uint8_t f_u_wallace_cska8_fa27_and1 = 0; - uint8_t f_u_wallace_cska8_fa27_or0 = 0; - uint8_t f_u_wallace_cska8_ha4_xor0 = 0; - uint8_t f_u_wallace_cska8_ha4_and0 = 0; - uint8_t f_u_wallace_cska8_fa28_xor0 = 0; - uint8_t f_u_wallace_cska8_fa28_and0 = 0; - uint8_t f_u_wallace_cska8_fa28_xor1 = 0; - uint8_t f_u_wallace_cska8_fa28_and1 = 0; - uint8_t f_u_wallace_cska8_fa28_or0 = 0; - uint8_t f_u_wallace_cska8_fa29_xor0 = 0; - uint8_t f_u_wallace_cska8_fa29_and0 = 0; - uint8_t f_u_wallace_cska8_fa29_xor1 = 0; - uint8_t f_u_wallace_cska8_fa29_and1 = 0; - uint8_t f_u_wallace_cska8_fa29_or0 = 0; - uint8_t f_u_wallace_cska8_ha5_xor0 = 0; - uint8_t f_u_wallace_cska8_ha5_and0 = 0; - uint8_t f_u_wallace_cska8_ha6_xor0 = 0; - uint8_t f_u_wallace_cska8_ha6_and0 = 0; - uint8_t f_u_wallace_cska8_fa30_xor0 = 0; - uint8_t f_u_wallace_cska8_fa30_and0 = 0; - uint8_t f_u_wallace_cska8_fa30_xor1 = 0; - uint8_t f_u_wallace_cska8_fa30_and1 = 0; - uint8_t f_u_wallace_cska8_fa30_or0 = 0; - uint8_t f_u_wallace_cska8_fa31_xor0 = 0; - uint8_t f_u_wallace_cska8_fa31_and0 = 0; - uint8_t f_u_wallace_cska8_fa31_xor1 = 0; - uint8_t f_u_wallace_cska8_fa31_and1 = 0; - uint8_t f_u_wallace_cska8_fa31_or0 = 0; - uint8_t f_u_wallace_cska8_fa32_xor0 = 0; - uint8_t f_u_wallace_cska8_fa32_and0 = 0; - uint8_t f_u_wallace_cska8_fa32_xor1 = 0; - uint8_t f_u_wallace_cska8_fa32_and1 = 0; - uint8_t f_u_wallace_cska8_fa32_or0 = 0; - uint8_t f_u_wallace_cska8_and_5_7 = 0; - uint8_t f_u_wallace_cska8_fa33_xor0 = 0; - uint8_t f_u_wallace_cska8_fa33_and0 = 0; - uint8_t f_u_wallace_cska8_fa33_xor1 = 0; - uint8_t f_u_wallace_cska8_fa33_and1 = 0; - uint8_t f_u_wallace_cska8_fa33_or0 = 0; - uint8_t f_u_wallace_cska8_and_7_6 = 0; - uint8_t f_u_wallace_cska8_fa34_xor0 = 0; - uint8_t f_u_wallace_cska8_fa34_and0 = 0; - uint8_t f_u_wallace_cska8_fa34_xor1 = 0; - uint8_t f_u_wallace_cska8_fa34_and1 = 0; - uint8_t f_u_wallace_cska8_fa34_or0 = 0; - uint8_t f_u_wallace_cska8_and_0_0 = 0; - uint8_t f_u_wallace_cska8_and_1_0 = 0; - uint8_t f_u_wallace_cska8_and_0_2 = 0; - uint8_t f_u_wallace_cska8_and_6_7 = 0; - uint8_t f_u_wallace_cska8_and_0_1 = 0; - uint8_t f_u_wallace_cska8_and_7_7 = 0; - uint8_t f_u_wallace_cska8_u_cska14_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_ha0_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_ha0_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_xor1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa0_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa0_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa0_xor1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa0_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa0_or0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_xor2 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa1_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa1_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa1_xor1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa1_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa1_or0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_xor3 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa2_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa2_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa2_xor1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa2_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa2_or0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_and_propagate00 = 0; - uint8_t f_u_wallace_cska8_u_cska14_and_propagate01 = 0; - uint8_t f_u_wallace_cska8_u_cska14_and_propagate02 = 0; - uint8_t f_u_wallace_cska8_u_cska14_mux2to10_not0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_mux2to10_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_xor4 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa3_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa3_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa3_xor1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa3_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa3_or0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_xor5 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa4_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa4_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa4_xor1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa4_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa4_or0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_xor6 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa5_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa5_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa5_xor1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa5_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa5_or0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_xor7 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa6_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa6_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa6_xor1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa6_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa6_or0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_and_propagate13 = 0; - uint8_t f_u_wallace_cska8_u_cska14_and_propagate14 = 0; - uint8_t f_u_wallace_cska8_u_cska14_and_propagate15 = 0; - uint8_t f_u_wallace_cska8_u_cska14_mux2to11_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_mux2to11_not0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_mux2to11_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_mux2to11_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_xor8 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa7_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa7_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa7_xor1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa7_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa7_or0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_xor9 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa8_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa8_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa8_xor1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa8_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa8_or0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_xor10 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa9_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa9_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa9_xor1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa9_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa9_or0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_xor11 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa10_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa10_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa10_xor1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa10_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa10_or0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_and_propagate26 = 0; - uint8_t f_u_wallace_cska8_u_cska14_and_propagate27 = 0; - uint8_t f_u_wallace_cska8_u_cska14_and_propagate28 = 0; - uint8_t f_u_wallace_cska8_u_cska14_mux2to12_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_mux2to12_not0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_mux2to12_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_mux2to12_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_xor12 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa11_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa11_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa11_xor1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa11_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa11_or0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_xor13 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa12_xor0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa12_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa12_xor1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa12_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_fa12_or0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_and_propagate39 = 0; - uint8_t f_u_wallace_cska8_u_cska14_mux2to13_and0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_mux2to13_not0 = 0; - uint8_t f_u_wallace_cska8_u_cska14_mux2to13_and1 = 0; - uint8_t f_u_wallace_cska8_u_cska14_mux2to13_xor0 = 0; - - f_u_wallace_cska8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cska8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cska8_ha0_xor0 = ((f_u_wallace_cska8_and_2_0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_1_1 >> 0) & 0x01); - f_u_wallace_cska8_ha0_and0 = ((f_u_wallace_cska8_and_2_0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_1_1 >> 0) & 0x01); - f_u_wallace_cska8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cska8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cska8_fa0_xor0 = ((f_u_wallace_cska8_ha0_and0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_3_0 >> 0) & 0x01); - f_u_wallace_cska8_fa0_and0 = ((f_u_wallace_cska8_ha0_and0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_3_0 >> 0) & 0x01); - f_u_wallace_cska8_fa0_xor1 = ((f_u_wallace_cska8_fa0_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_2_1 >> 0) & 0x01); - f_u_wallace_cska8_fa0_and1 = ((f_u_wallace_cska8_fa0_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_2_1 >> 0) & 0x01); - f_u_wallace_cska8_fa0_or0 = ((f_u_wallace_cska8_fa0_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa0_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cska8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cska8_fa1_xor0 = ((f_u_wallace_cska8_fa0_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_4_0 >> 0) & 0x01); - f_u_wallace_cska8_fa1_and0 = ((f_u_wallace_cska8_fa0_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_4_0 >> 0) & 0x01); - f_u_wallace_cska8_fa1_xor1 = ((f_u_wallace_cska8_fa1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_3_1 >> 0) & 0x01); - f_u_wallace_cska8_fa1_and1 = ((f_u_wallace_cska8_fa1_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_3_1 >> 0) & 0x01); - f_u_wallace_cska8_fa1_or0 = ((f_u_wallace_cska8_fa1_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa1_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cska8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cska8_fa2_xor0 = ((f_u_wallace_cska8_fa1_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_5_0 >> 0) & 0x01); - f_u_wallace_cska8_fa2_and0 = ((f_u_wallace_cska8_fa1_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_5_0 >> 0) & 0x01); - f_u_wallace_cska8_fa2_xor1 = ((f_u_wallace_cska8_fa2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_4_1 >> 0) & 0x01); - f_u_wallace_cska8_fa2_and1 = ((f_u_wallace_cska8_fa2_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_4_1 >> 0) & 0x01); - f_u_wallace_cska8_fa2_or0 = ((f_u_wallace_cska8_fa2_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa2_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cska8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cska8_fa3_xor0 = ((f_u_wallace_cska8_fa2_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_6_0 >> 0) & 0x01); - f_u_wallace_cska8_fa3_and0 = ((f_u_wallace_cska8_fa2_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_6_0 >> 0) & 0x01); - f_u_wallace_cska8_fa3_xor1 = ((f_u_wallace_cska8_fa3_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_5_1 >> 0) & 0x01); - f_u_wallace_cska8_fa3_and1 = ((f_u_wallace_cska8_fa3_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_5_1 >> 0) & 0x01); - f_u_wallace_cska8_fa3_or0 = ((f_u_wallace_cska8_fa3_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa3_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_7_0 = ((a >> 7) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cska8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cska8_fa4_xor0 = ((f_u_wallace_cska8_fa3_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_7_0 >> 0) & 0x01); - f_u_wallace_cska8_fa4_and0 = ((f_u_wallace_cska8_fa3_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_7_0 >> 0) & 0x01); - f_u_wallace_cska8_fa4_xor1 = ((f_u_wallace_cska8_fa4_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_6_1 >> 0) & 0x01); - f_u_wallace_cska8_fa4_and1 = ((f_u_wallace_cska8_fa4_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_6_1 >> 0) & 0x01); - f_u_wallace_cska8_fa4_or0 = ((f_u_wallace_cska8_fa4_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa4_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_7_1 = ((a >> 7) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cska8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cska8_fa5_xor0 = ((f_u_wallace_cska8_fa4_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_7_1 >> 0) & 0x01); - f_u_wallace_cska8_fa5_and0 = ((f_u_wallace_cska8_fa4_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_7_1 >> 0) & 0x01); - f_u_wallace_cska8_fa5_xor1 = ((f_u_wallace_cska8_fa5_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_6_2 >> 0) & 0x01); - f_u_wallace_cska8_fa5_and1 = ((f_u_wallace_cska8_fa5_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_6_2 >> 0) & 0x01); - f_u_wallace_cska8_fa5_or0 = ((f_u_wallace_cska8_fa5_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa5_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_7_2 = ((a >> 7) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cska8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cska8_fa6_xor0 = ((f_u_wallace_cska8_fa5_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_7_2 >> 0) & 0x01); - f_u_wallace_cska8_fa6_and0 = ((f_u_wallace_cska8_fa5_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_7_2 >> 0) & 0x01); - f_u_wallace_cska8_fa6_xor1 = ((f_u_wallace_cska8_fa6_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_6_3 >> 0) & 0x01); - f_u_wallace_cska8_fa6_and1 = ((f_u_wallace_cska8_fa6_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_6_3 >> 0) & 0x01); - f_u_wallace_cska8_fa6_or0 = ((f_u_wallace_cska8_fa6_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa6_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_7_3 = ((a >> 7) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cska8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cska8_fa7_xor0 = ((f_u_wallace_cska8_fa6_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_7_3 >> 0) & 0x01); - f_u_wallace_cska8_fa7_and0 = ((f_u_wallace_cska8_fa6_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_7_3 >> 0) & 0x01); - f_u_wallace_cska8_fa7_xor1 = ((f_u_wallace_cska8_fa7_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_6_4 >> 0) & 0x01); - f_u_wallace_cska8_fa7_and1 = ((f_u_wallace_cska8_fa7_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_6_4 >> 0) & 0x01); - f_u_wallace_cska8_fa7_or0 = ((f_u_wallace_cska8_fa7_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa7_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_7_4 = ((a >> 7) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cska8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cska8_fa8_xor0 = ((f_u_wallace_cska8_fa7_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_7_4 >> 0) & 0x01); - f_u_wallace_cska8_fa8_and0 = ((f_u_wallace_cska8_fa7_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_7_4 >> 0) & 0x01); - f_u_wallace_cska8_fa8_xor1 = ((f_u_wallace_cska8_fa8_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_6_5 >> 0) & 0x01); - f_u_wallace_cska8_fa8_and1 = ((f_u_wallace_cska8_fa8_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_6_5 >> 0) & 0x01); - f_u_wallace_cska8_fa8_or0 = ((f_u_wallace_cska8_fa8_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa8_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_7_5 = ((a >> 7) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cska8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cska8_fa9_xor0 = ((f_u_wallace_cska8_fa8_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_7_5 >> 0) & 0x01); - f_u_wallace_cska8_fa9_and0 = ((f_u_wallace_cska8_fa8_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_7_5 >> 0) & 0x01); - f_u_wallace_cska8_fa9_xor1 = ((f_u_wallace_cska8_fa9_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_6_6 >> 0) & 0x01); - f_u_wallace_cska8_fa9_and1 = ((f_u_wallace_cska8_fa9_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_6_6 >> 0) & 0x01); - f_u_wallace_cska8_fa9_or0 = ((f_u_wallace_cska8_fa9_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa9_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cska8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cska8_ha1_xor0 = ((f_u_wallace_cska8_and_1_2 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_0_3 >> 0) & 0x01); - f_u_wallace_cska8_ha1_and0 = ((f_u_wallace_cska8_and_1_2 >> 0) & 0x01) & ((f_u_wallace_cska8_and_0_3 >> 0) & 0x01); - f_u_wallace_cska8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cska8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cska8_fa10_xor0 = ((f_u_wallace_cska8_ha1_and0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_2_2 >> 0) & 0x01); - f_u_wallace_cska8_fa10_and0 = ((f_u_wallace_cska8_ha1_and0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_2_2 >> 0) & 0x01); - f_u_wallace_cska8_fa10_xor1 = ((f_u_wallace_cska8_fa10_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_1_3 >> 0) & 0x01); - f_u_wallace_cska8_fa10_and1 = ((f_u_wallace_cska8_fa10_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_1_3 >> 0) & 0x01); - f_u_wallace_cska8_fa10_or0 = ((f_u_wallace_cska8_fa10_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa10_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cska8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cska8_fa11_xor0 = ((f_u_wallace_cska8_fa10_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_3_2 >> 0) & 0x01); - f_u_wallace_cska8_fa11_and0 = ((f_u_wallace_cska8_fa10_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_3_2 >> 0) & 0x01); - f_u_wallace_cska8_fa11_xor1 = ((f_u_wallace_cska8_fa11_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_2_3 >> 0) & 0x01); - f_u_wallace_cska8_fa11_and1 = ((f_u_wallace_cska8_fa11_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_2_3 >> 0) & 0x01); - f_u_wallace_cska8_fa11_or0 = ((f_u_wallace_cska8_fa11_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa11_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cska8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cska8_fa12_xor0 = ((f_u_wallace_cska8_fa11_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_4_2 >> 0) & 0x01); - f_u_wallace_cska8_fa12_and0 = ((f_u_wallace_cska8_fa11_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_4_2 >> 0) & 0x01); - f_u_wallace_cska8_fa12_xor1 = ((f_u_wallace_cska8_fa12_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_3_3 >> 0) & 0x01); - f_u_wallace_cska8_fa12_and1 = ((f_u_wallace_cska8_fa12_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_3_3 >> 0) & 0x01); - f_u_wallace_cska8_fa12_or0 = ((f_u_wallace_cska8_fa12_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa12_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cska8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cska8_fa13_xor0 = ((f_u_wallace_cska8_fa12_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_5_2 >> 0) & 0x01); - f_u_wallace_cska8_fa13_and0 = ((f_u_wallace_cska8_fa12_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_5_2 >> 0) & 0x01); - f_u_wallace_cska8_fa13_xor1 = ((f_u_wallace_cska8_fa13_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_4_3 >> 0) & 0x01); - f_u_wallace_cska8_fa13_and1 = ((f_u_wallace_cska8_fa13_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_4_3 >> 0) & 0x01); - f_u_wallace_cska8_fa13_or0 = ((f_u_wallace_cska8_fa13_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa13_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_cska8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cska8_fa14_xor0 = ((f_u_wallace_cska8_fa13_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_5_3 >> 0) & 0x01); - f_u_wallace_cska8_fa14_and0 = ((f_u_wallace_cska8_fa13_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_5_3 >> 0) & 0x01); - f_u_wallace_cska8_fa14_xor1 = ((f_u_wallace_cska8_fa14_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_4_4 >> 0) & 0x01); - f_u_wallace_cska8_fa14_and1 = ((f_u_wallace_cska8_fa14_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_4_4 >> 0) & 0x01); - f_u_wallace_cska8_fa14_or0 = ((f_u_wallace_cska8_fa14_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa14_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cska8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cska8_fa15_xor0 = ((f_u_wallace_cska8_fa14_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_5_4 >> 0) & 0x01); - f_u_wallace_cska8_fa15_and0 = ((f_u_wallace_cska8_fa14_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_5_4 >> 0) & 0x01); - f_u_wallace_cska8_fa15_xor1 = ((f_u_wallace_cska8_fa15_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_4_5 >> 0) & 0x01); - f_u_wallace_cska8_fa15_and1 = ((f_u_wallace_cska8_fa15_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_4_5 >> 0) & 0x01); - f_u_wallace_cska8_fa15_or0 = ((f_u_wallace_cska8_fa15_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa15_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cska8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cska8_fa16_xor0 = ((f_u_wallace_cska8_fa15_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_5_5 >> 0) & 0x01); - f_u_wallace_cska8_fa16_and0 = ((f_u_wallace_cska8_fa15_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_5_5 >> 0) & 0x01); - f_u_wallace_cska8_fa16_xor1 = ((f_u_wallace_cska8_fa16_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_4_6 >> 0) & 0x01); - f_u_wallace_cska8_fa16_and1 = ((f_u_wallace_cska8_fa16_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_4_6 >> 0) & 0x01); - f_u_wallace_cska8_fa16_or0 = ((f_u_wallace_cska8_fa16_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa16_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cska8_and_4_7 = ((a >> 4) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cska8_fa17_xor0 = ((f_u_wallace_cska8_fa16_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_5_6 >> 0) & 0x01); - f_u_wallace_cska8_fa17_and0 = ((f_u_wallace_cska8_fa16_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_5_6 >> 0) & 0x01); - f_u_wallace_cska8_fa17_xor1 = ((f_u_wallace_cska8_fa17_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_4_7 >> 0) & 0x01); - f_u_wallace_cska8_fa17_and1 = ((f_u_wallace_cska8_fa17_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_4_7 >> 0) & 0x01); - f_u_wallace_cska8_fa17_or0 = ((f_u_wallace_cska8_fa17_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa17_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cska8_ha2_xor0 = ((f_u_wallace_cska8_and_0_4 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa1_xor1 >> 0) & 0x01); - f_u_wallace_cska8_ha2_and0 = ((f_u_wallace_cska8_and_0_4 >> 0) & 0x01) & ((f_u_wallace_cska8_fa1_xor1 >> 0) & 0x01); - f_u_wallace_cska8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cska8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cska8_fa18_xor0 = ((f_u_wallace_cska8_ha2_and0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_1_4 >> 0) & 0x01); - f_u_wallace_cska8_fa18_and0 = ((f_u_wallace_cska8_ha2_and0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_1_4 >> 0) & 0x01); - f_u_wallace_cska8_fa18_xor1 = ((f_u_wallace_cska8_fa18_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_0_5 >> 0) & 0x01); - f_u_wallace_cska8_fa18_and1 = ((f_u_wallace_cska8_fa18_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_0_5 >> 0) & 0x01); - f_u_wallace_cska8_fa18_or0 = ((f_u_wallace_cska8_fa18_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa18_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cska8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cska8_fa19_xor0 = ((f_u_wallace_cska8_fa18_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_2_4 >> 0) & 0x01); - f_u_wallace_cska8_fa19_and0 = ((f_u_wallace_cska8_fa18_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_2_4 >> 0) & 0x01); - f_u_wallace_cska8_fa19_xor1 = ((f_u_wallace_cska8_fa19_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_1_5 >> 0) & 0x01); - f_u_wallace_cska8_fa19_and1 = ((f_u_wallace_cska8_fa19_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_1_5 >> 0) & 0x01); - f_u_wallace_cska8_fa19_or0 = ((f_u_wallace_cska8_fa19_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa19_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_cska8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cska8_fa20_xor0 = ((f_u_wallace_cska8_fa19_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_3_4 >> 0) & 0x01); - f_u_wallace_cska8_fa20_and0 = ((f_u_wallace_cska8_fa19_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_3_4 >> 0) & 0x01); - f_u_wallace_cska8_fa20_xor1 = ((f_u_wallace_cska8_fa20_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_2_5 >> 0) & 0x01); - f_u_wallace_cska8_fa20_and1 = ((f_u_wallace_cska8_fa20_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_2_5 >> 0) & 0x01); - f_u_wallace_cska8_fa20_or0 = ((f_u_wallace_cska8_fa20_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa20_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_cska8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cska8_fa21_xor0 = ((f_u_wallace_cska8_fa20_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_3_5 >> 0) & 0x01); - f_u_wallace_cska8_fa21_and0 = ((f_u_wallace_cska8_fa20_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_3_5 >> 0) & 0x01); - f_u_wallace_cska8_fa21_xor1 = ((f_u_wallace_cska8_fa21_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_2_6 >> 0) & 0x01); - f_u_wallace_cska8_fa21_and1 = ((f_u_wallace_cska8_fa21_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_2_6 >> 0) & 0x01); - f_u_wallace_cska8_fa21_or0 = ((f_u_wallace_cska8_fa21_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa21_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cska8_and_2_7 = ((a >> 2) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cska8_fa22_xor0 = ((f_u_wallace_cska8_fa21_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_3_6 >> 0) & 0x01); - f_u_wallace_cska8_fa22_and0 = ((f_u_wallace_cska8_fa21_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_3_6 >> 0) & 0x01); - f_u_wallace_cska8_fa22_xor1 = ((f_u_wallace_cska8_fa22_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_2_7 >> 0) & 0x01); - f_u_wallace_cska8_fa22_and1 = ((f_u_wallace_cska8_fa22_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_2_7 >> 0) & 0x01); - f_u_wallace_cska8_fa22_or0 = ((f_u_wallace_cska8_fa22_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa22_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_3_7 = ((a >> 3) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cska8_fa23_xor0 = ((f_u_wallace_cska8_fa22_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_3_7 >> 0) & 0x01); - f_u_wallace_cska8_fa23_and0 = ((f_u_wallace_cska8_fa22_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_3_7 >> 0) & 0x01); - f_u_wallace_cska8_fa23_xor1 = ((f_u_wallace_cska8_fa23_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa7_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa23_and1 = ((f_u_wallace_cska8_fa23_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa7_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa23_or0 = ((f_u_wallace_cska8_fa23_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa23_and1 >> 0) & 0x01); - f_u_wallace_cska8_ha3_xor0 = ((f_u_wallace_cska8_fa2_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa11_xor1 >> 0) & 0x01); - f_u_wallace_cska8_ha3_and0 = ((f_u_wallace_cska8_fa2_xor1 >> 0) & 0x01) & ((f_u_wallace_cska8_fa11_xor1 >> 0) & 0x01); - f_u_wallace_cska8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cska8_fa24_xor0 = ((f_u_wallace_cska8_ha3_and0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_0_6 >> 0) & 0x01); - f_u_wallace_cska8_fa24_and0 = ((f_u_wallace_cska8_ha3_and0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_0_6 >> 0) & 0x01); - f_u_wallace_cska8_fa24_xor1 = ((f_u_wallace_cska8_fa24_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa3_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa24_and1 = ((f_u_wallace_cska8_fa24_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa3_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa24_or0 = ((f_u_wallace_cska8_fa24_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa24_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cska8_and_0_7 = ((a >> 0) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cska8_fa25_xor0 = ((f_u_wallace_cska8_fa24_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_1_6 >> 0) & 0x01); - f_u_wallace_cska8_fa25_and0 = ((f_u_wallace_cska8_fa24_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_1_6 >> 0) & 0x01); - f_u_wallace_cska8_fa25_xor1 = ((f_u_wallace_cska8_fa25_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_0_7 >> 0) & 0x01); - f_u_wallace_cska8_fa25_and1 = ((f_u_wallace_cska8_fa25_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_0_7 >> 0) & 0x01); - f_u_wallace_cska8_fa25_or0 = ((f_u_wallace_cska8_fa25_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa25_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_1_7 = ((a >> 1) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cska8_fa26_xor0 = ((f_u_wallace_cska8_fa25_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_1_7 >> 0) & 0x01); - f_u_wallace_cska8_fa26_and0 = ((f_u_wallace_cska8_fa25_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_1_7 >> 0) & 0x01); - f_u_wallace_cska8_fa26_xor1 = ((f_u_wallace_cska8_fa26_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa5_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa26_and1 = ((f_u_wallace_cska8_fa26_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa5_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa26_or0 = ((f_u_wallace_cska8_fa26_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa26_and1 >> 0) & 0x01); - f_u_wallace_cska8_fa27_xor0 = ((f_u_wallace_cska8_fa26_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa6_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa27_and0 = ((f_u_wallace_cska8_fa26_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa6_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa27_xor1 = ((f_u_wallace_cska8_fa27_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa15_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa27_and1 = ((f_u_wallace_cska8_fa27_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa15_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa27_or0 = ((f_u_wallace_cska8_fa27_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa27_and1 >> 0) & 0x01); - f_u_wallace_cska8_ha4_xor0 = ((f_u_wallace_cska8_fa12_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa19_xor1 >> 0) & 0x01); - f_u_wallace_cska8_ha4_and0 = ((f_u_wallace_cska8_fa12_xor1 >> 0) & 0x01) & ((f_u_wallace_cska8_fa19_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa28_xor0 = ((f_u_wallace_cska8_ha4_and0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa4_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa28_and0 = ((f_u_wallace_cska8_ha4_and0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa4_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa28_xor1 = ((f_u_wallace_cska8_fa28_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa13_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa28_and1 = ((f_u_wallace_cska8_fa28_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa13_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa28_or0 = ((f_u_wallace_cska8_fa28_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa28_and1 >> 0) & 0x01); - f_u_wallace_cska8_fa29_xor0 = ((f_u_wallace_cska8_fa28_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa14_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa29_and0 = ((f_u_wallace_cska8_fa28_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa14_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa29_xor1 = ((f_u_wallace_cska8_fa29_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa21_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa29_and1 = ((f_u_wallace_cska8_fa29_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa21_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa29_or0 = ((f_u_wallace_cska8_fa29_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa29_and1 >> 0) & 0x01); - f_u_wallace_cska8_ha5_xor0 = ((f_u_wallace_cska8_fa20_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa25_xor1 >> 0) & 0x01); - f_u_wallace_cska8_ha5_and0 = ((f_u_wallace_cska8_fa20_xor1 >> 0) & 0x01) & ((f_u_wallace_cska8_fa25_xor1 >> 0) & 0x01); - f_u_wallace_cska8_ha6_xor0 = ((f_u_wallace_cska8_ha5_and0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa26_xor1 >> 0) & 0x01); - f_u_wallace_cska8_ha6_and0 = ((f_u_wallace_cska8_ha5_and0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa26_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa30_xor0 = ((f_u_wallace_cska8_ha6_and0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa29_or0 >> 0) & 0x01); - f_u_wallace_cska8_fa30_and0 = ((f_u_wallace_cska8_ha6_and0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa29_or0 >> 0) & 0x01); - f_u_wallace_cska8_fa30_xor1 = ((f_u_wallace_cska8_fa30_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa22_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa30_and1 = ((f_u_wallace_cska8_fa30_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa22_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa30_or0 = ((f_u_wallace_cska8_fa30_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa30_and1 >> 0) & 0x01); - f_u_wallace_cska8_fa31_xor0 = ((f_u_wallace_cska8_fa30_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa27_or0 >> 0) & 0x01); - f_u_wallace_cska8_fa31_and0 = ((f_u_wallace_cska8_fa30_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa27_or0 >> 0) & 0x01); - f_u_wallace_cska8_fa31_xor1 = ((f_u_wallace_cska8_fa31_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa16_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa31_and1 = ((f_u_wallace_cska8_fa31_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa16_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa31_or0 = ((f_u_wallace_cska8_fa31_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa31_and1 >> 0) & 0x01); - f_u_wallace_cska8_fa32_xor0 = ((f_u_wallace_cska8_fa31_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa23_or0 >> 0) & 0x01); - f_u_wallace_cska8_fa32_and0 = ((f_u_wallace_cska8_fa31_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa23_or0 >> 0) & 0x01); - f_u_wallace_cska8_fa32_xor1 = ((f_u_wallace_cska8_fa32_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa8_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa32_and1 = ((f_u_wallace_cska8_fa32_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa8_xor1 >> 0) & 0x01); - f_u_wallace_cska8_fa32_or0 = ((f_u_wallace_cska8_fa32_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa32_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_5_7 = ((a >> 5) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cska8_fa33_xor0 = ((f_u_wallace_cska8_fa32_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa17_or0 >> 0) & 0x01); - f_u_wallace_cska8_fa33_and0 = ((f_u_wallace_cska8_fa32_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa17_or0 >> 0) & 0x01); - f_u_wallace_cska8_fa33_xor1 = ((f_u_wallace_cska8_fa33_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_5_7 >> 0) & 0x01); - f_u_wallace_cska8_fa33_and1 = ((f_u_wallace_cska8_fa33_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_5_7 >> 0) & 0x01); - f_u_wallace_cska8_fa33_or0 = ((f_u_wallace_cska8_fa33_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa33_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_7_6 = ((a >> 7) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_cska8_fa34_xor0 = ((f_u_wallace_cska8_fa33_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa9_or0 >> 0) & 0x01); - f_u_wallace_cska8_fa34_and0 = ((f_u_wallace_cska8_fa33_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_fa9_or0 >> 0) & 0x01); - f_u_wallace_cska8_fa34_xor1 = ((f_u_wallace_cska8_fa34_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_7_6 >> 0) & 0x01); - f_u_wallace_cska8_fa34_and1 = ((f_u_wallace_cska8_fa34_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_7_6 >> 0) & 0x01); - f_u_wallace_cska8_fa34_or0 = ((f_u_wallace_cska8_fa34_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_fa34_and1 >> 0) & 0x01); - f_u_wallace_cska8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cska8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_cska8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_cska8_and_6_7 = ((a >> 6) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cska8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_cska8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_cska8_u_cska14_xor0 = ((f_u_wallace_cska8_and_1_0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_0_1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_ha0_xor0 = ((f_u_wallace_cska8_and_1_0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_0_1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_ha0_and0 = ((f_u_wallace_cska8_and_1_0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_0_1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_xor1 = ((f_u_wallace_cska8_and_0_2 >> 0) & 0x01) ^ ((f_u_wallace_cska8_ha0_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa0_xor0 = ((f_u_wallace_cska8_and_0_2 >> 0) & 0x01) ^ ((f_u_wallace_cska8_ha0_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa0_and0 = ((f_u_wallace_cska8_and_0_2 >> 0) & 0x01) & ((f_u_wallace_cska8_ha0_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa0_xor1 = ((f_u_wallace_cska8_u_cska14_fa0_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_ha0_and0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa0_and1 = ((f_u_wallace_cska8_u_cska14_fa0_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_ha0_and0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa0_or0 = ((f_u_wallace_cska8_u_cska14_fa0_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_u_cska14_fa0_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_xor2 = ((f_u_wallace_cska8_fa0_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_ha1_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa1_xor0 = ((f_u_wallace_cska8_fa0_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_ha1_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa1_and0 = ((f_u_wallace_cska8_fa0_xor1 >> 0) & 0x01) & ((f_u_wallace_cska8_ha1_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa1_xor1 = ((f_u_wallace_cska8_u_cska14_fa1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_fa0_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa1_and1 = ((f_u_wallace_cska8_u_cska14_fa1_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_fa0_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa1_or0 = ((f_u_wallace_cska8_u_cska14_fa1_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_u_cska14_fa1_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_xor3 = ((f_u_wallace_cska8_fa10_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_ha2_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa2_xor0 = ((f_u_wallace_cska8_fa10_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_ha2_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa2_and0 = ((f_u_wallace_cska8_fa10_xor1 >> 0) & 0x01) & ((f_u_wallace_cska8_ha2_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa2_xor1 = ((f_u_wallace_cska8_u_cska14_fa2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_fa1_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa2_and1 = ((f_u_wallace_cska8_u_cska14_fa2_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_fa1_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa2_or0 = ((f_u_wallace_cska8_u_cska14_fa2_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_u_cska14_fa2_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_and_propagate00 = ((f_u_wallace_cska8_u_cska14_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_xor2 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_and_propagate01 = ((f_u_wallace_cska8_u_cska14_xor1 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_xor3 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_and_propagate02 = ((f_u_wallace_cska8_u_cska14_and_propagate00 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_and_propagate01 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_mux2to10_not0 = ~(((f_u_wallace_cska8_u_cska14_and_propagate02 >> 0) & 0x01)) & 0x01; - f_u_wallace_cska8_u_cska14_mux2to10_and1 = ((f_u_wallace_cska8_u_cska14_fa2_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_mux2to10_not0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_xor4 = ((f_u_wallace_cska8_fa18_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_ha3_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa3_xor0 = ((f_u_wallace_cska8_fa18_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_ha3_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa3_and0 = ((f_u_wallace_cska8_fa18_xor1 >> 0) & 0x01) & ((f_u_wallace_cska8_ha3_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa3_xor1 = ((f_u_wallace_cska8_u_cska14_fa3_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_mux2to10_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa3_and1 = ((f_u_wallace_cska8_u_cska14_fa3_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_mux2to10_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa3_or0 = ((f_u_wallace_cska8_u_cska14_fa3_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_u_cska14_fa3_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_xor5 = ((f_u_wallace_cska8_fa24_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_ha4_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa4_xor0 = ((f_u_wallace_cska8_fa24_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_ha4_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa4_and0 = ((f_u_wallace_cska8_fa24_xor1 >> 0) & 0x01) & ((f_u_wallace_cska8_ha4_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa4_xor1 = ((f_u_wallace_cska8_u_cska14_fa4_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_fa3_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa4_and1 = ((f_u_wallace_cska8_u_cska14_fa4_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_fa3_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa4_or0 = ((f_u_wallace_cska8_u_cska14_fa4_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_u_cska14_fa4_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_xor6 = ((f_u_wallace_cska8_fa28_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_ha5_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa5_xor0 = ((f_u_wallace_cska8_fa28_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_ha5_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa5_and0 = ((f_u_wallace_cska8_fa28_xor1 >> 0) & 0x01) & ((f_u_wallace_cska8_ha5_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa5_xor1 = ((f_u_wallace_cska8_u_cska14_fa5_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_fa4_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa5_and1 = ((f_u_wallace_cska8_u_cska14_fa5_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_fa4_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa5_or0 = ((f_u_wallace_cska8_u_cska14_fa5_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_u_cska14_fa5_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_xor7 = ((f_u_wallace_cska8_fa29_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_ha6_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa6_xor0 = ((f_u_wallace_cska8_fa29_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_ha6_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa6_and0 = ((f_u_wallace_cska8_fa29_xor1 >> 0) & 0x01) & ((f_u_wallace_cska8_ha6_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa6_xor1 = ((f_u_wallace_cska8_u_cska14_fa6_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_fa5_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa6_and1 = ((f_u_wallace_cska8_u_cska14_fa6_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_fa5_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa6_or0 = ((f_u_wallace_cska8_u_cska14_fa6_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_u_cska14_fa6_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_and_propagate13 = ((f_u_wallace_cska8_u_cska14_xor4 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_xor6 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_and_propagate14 = ((f_u_wallace_cska8_u_cska14_xor5 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_xor7 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_and_propagate15 = ((f_u_wallace_cska8_u_cska14_and_propagate13 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_and_propagate14 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_mux2to11_and0 = ((f_u_wallace_cska8_u_cska14_mux2to10_and1 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_and_propagate15 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_mux2to11_not0 = ~(((f_u_wallace_cska8_u_cska14_and_propagate15 >> 0) & 0x01)) & 0x01; - f_u_wallace_cska8_u_cska14_mux2to11_and1 = ((f_u_wallace_cska8_u_cska14_fa6_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_mux2to11_not0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_mux2to11_xor0 = ((f_u_wallace_cska8_u_cska14_mux2to11_and0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_mux2to11_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_xor8 = ((f_u_wallace_cska8_fa27_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa30_xor1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa7_xor0 = ((f_u_wallace_cska8_fa27_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa30_xor1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa7_and0 = ((f_u_wallace_cska8_fa27_xor1 >> 0) & 0x01) & ((f_u_wallace_cska8_fa30_xor1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa7_xor1 = ((f_u_wallace_cska8_u_cska14_fa7_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_mux2to11_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa7_and1 = ((f_u_wallace_cska8_u_cska14_fa7_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_mux2to11_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa7_or0 = ((f_u_wallace_cska8_u_cska14_fa7_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_u_cska14_fa7_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_xor9 = ((f_u_wallace_cska8_fa23_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa31_xor1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa8_xor0 = ((f_u_wallace_cska8_fa23_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa31_xor1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa8_and0 = ((f_u_wallace_cska8_fa23_xor1 >> 0) & 0x01) & ((f_u_wallace_cska8_fa31_xor1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa8_xor1 = ((f_u_wallace_cska8_u_cska14_fa8_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_fa7_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa8_and1 = ((f_u_wallace_cska8_u_cska14_fa8_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_fa7_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa8_or0 = ((f_u_wallace_cska8_u_cska14_fa8_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_u_cska14_fa8_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_xor10 = ((f_u_wallace_cska8_fa17_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa32_xor1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa9_xor0 = ((f_u_wallace_cska8_fa17_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa32_xor1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa9_and0 = ((f_u_wallace_cska8_fa17_xor1 >> 0) & 0x01) & ((f_u_wallace_cska8_fa32_xor1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa9_xor1 = ((f_u_wallace_cska8_u_cska14_fa9_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_fa8_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa9_and1 = ((f_u_wallace_cska8_u_cska14_fa9_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_fa8_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa9_or0 = ((f_u_wallace_cska8_u_cska14_fa9_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_u_cska14_fa9_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_xor11 = ((f_u_wallace_cska8_fa9_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa33_xor1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa10_xor0 = ((f_u_wallace_cska8_fa9_xor1 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa33_xor1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa10_and0 = ((f_u_wallace_cska8_fa9_xor1 >> 0) & 0x01) & ((f_u_wallace_cska8_fa33_xor1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa10_xor1 = ((f_u_wallace_cska8_u_cska14_fa10_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_fa9_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa10_and1 = ((f_u_wallace_cska8_u_cska14_fa10_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_fa9_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa10_or0 = ((f_u_wallace_cska8_u_cska14_fa10_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_u_cska14_fa10_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_and_propagate26 = ((f_u_wallace_cska8_u_cska14_xor8 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_xor10 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_and_propagate27 = ((f_u_wallace_cska8_u_cska14_xor9 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_xor11 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_and_propagate28 = ((f_u_wallace_cska8_u_cska14_and_propagate26 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_and_propagate27 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_mux2to12_and0 = ((f_u_wallace_cska8_u_cska14_mux2to11_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_and_propagate28 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_mux2to12_not0 = ~(((f_u_wallace_cska8_u_cska14_and_propagate28 >> 0) & 0x01)) & 0x01; - f_u_wallace_cska8_u_cska14_mux2to12_and1 = ((f_u_wallace_cska8_u_cska14_fa10_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_mux2to12_not0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_mux2to12_xor0 = ((f_u_wallace_cska8_u_cska14_mux2to12_and0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_mux2to12_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_xor12 = ((f_u_wallace_cska8_and_6_7 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa34_xor1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa11_xor0 = ((f_u_wallace_cska8_and_6_7 >> 0) & 0x01) ^ ((f_u_wallace_cska8_fa34_xor1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa11_and0 = ((f_u_wallace_cska8_and_6_7 >> 0) & 0x01) & ((f_u_wallace_cska8_fa34_xor1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa11_xor1 = ((f_u_wallace_cska8_u_cska14_fa11_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_mux2to12_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa11_and1 = ((f_u_wallace_cska8_u_cska14_fa11_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_mux2to12_xor0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa11_or0 = ((f_u_wallace_cska8_u_cska14_fa11_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_u_cska14_fa11_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_xor13 = ((f_u_wallace_cska8_fa34_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_7_7 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa12_xor0 = ((f_u_wallace_cska8_fa34_or0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_and_7_7 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa12_and0 = ((f_u_wallace_cska8_fa34_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_and_7_7 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa12_xor1 = ((f_u_wallace_cska8_u_cska14_fa12_xor0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_fa11_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa12_and1 = ((f_u_wallace_cska8_u_cska14_fa12_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_fa11_or0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_fa12_or0 = ((f_u_wallace_cska8_u_cska14_fa12_and0 >> 0) & 0x01) | ((f_u_wallace_cska8_u_cska14_fa12_and1 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_and_propagate39 = ((f_u_wallace_cska8_u_cska14_xor12 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_xor13 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_mux2to13_and0 = ((f_u_wallace_cska8_u_cska14_mux2to12_xor0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_and_propagate39 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_mux2to13_not0 = ~(((f_u_wallace_cska8_u_cska14_and_propagate39 >> 0) & 0x01)) & 0x01; - f_u_wallace_cska8_u_cska14_mux2to13_and1 = ((f_u_wallace_cska8_u_cska14_fa12_or0 >> 0) & 0x01) & ((f_u_wallace_cska8_u_cska14_mux2to13_not0 >> 0) & 0x01); - f_u_wallace_cska8_u_cska14_mux2to13_xor0 = ((f_u_wallace_cska8_u_cska14_mux2to13_and0 >> 0) & 0x01) ^ ((f_u_wallace_cska8_u_cska14_mux2to13_and1 >> 0) & 0x01); - - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_and_0_0 >> 0) & 0x01) << 0; - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_u_cska14_ha0_xor0 >> 0) & 0x01) << 1; - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_u_cska14_fa0_xor1 >> 0) & 0x01) << 2; - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_u_cska14_fa1_xor1 >> 0) & 0x01) << 3; - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_u_cska14_fa2_xor1 >> 0) & 0x01) << 4; - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_u_cska14_fa3_xor1 >> 0) & 0x01) << 5; - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_u_cska14_fa4_xor1 >> 0) & 0x01) << 6; - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_u_cska14_fa5_xor1 >> 0) & 0x01) << 7; - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_u_cska14_fa6_xor1 >> 0) & 0x01) << 8; - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_u_cska14_fa7_xor1 >> 0) & 0x01) << 9; - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_u_cska14_fa8_xor1 >> 0) & 0x01) << 10; - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_u_cska14_fa9_xor1 >> 0) & 0x01) << 11; - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_u_cska14_fa10_xor1 >> 0) & 0x01) << 12; - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_u_cska14_fa11_xor1 >> 0) & 0x01) << 13; - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_u_cska14_fa12_xor1 >> 0) & 0x01) << 14; - f_u_wallace_cska8_out |= ((f_u_wallace_cska8_u_cska14_mux2to13_xor0 >> 0) & 0x01) << 15; - return f_u_wallace_cska8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == f_u_wallace_cska8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_pg_rca4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_pg_rca4.c deleted file mode 100644 index ba23b36..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_pg_rca4.c +++ /dev/null @@ -1,155 +0,0 @@ -#include -#include - -uint64_t f_u_wallace_pg_rca4(uint64_t a, uint64_t b){ - uint8_t f_u_wallace_pg_rca4_out = 0; - uint8_t f_u_wallace_pg_rca4_and_2_0 = 0; - uint8_t f_u_wallace_pg_rca4_and_1_1 = 0; - uint8_t f_u_wallace_pg_rca4_ha0_xor0 = 0; - uint8_t f_u_wallace_pg_rca4_ha0_and0 = 0; - uint8_t f_u_wallace_pg_rca4_and_3_0 = 0; - uint8_t f_u_wallace_pg_rca4_and_2_1 = 0; - uint8_t f_u_wallace_pg_rca4_fa0_xor0 = 0; - uint8_t f_u_wallace_pg_rca4_fa0_and0 = 0; - uint8_t f_u_wallace_pg_rca4_fa0_xor1 = 0; - uint8_t f_u_wallace_pg_rca4_fa0_and1 = 0; - uint8_t f_u_wallace_pg_rca4_fa0_or0 = 0; - uint8_t f_u_wallace_pg_rca4_and_3_1 = 0; - uint8_t f_u_wallace_pg_rca4_and_2_2 = 0; - uint8_t f_u_wallace_pg_rca4_fa1_xor0 = 0; - uint8_t f_u_wallace_pg_rca4_fa1_and0 = 0; - uint8_t f_u_wallace_pg_rca4_fa1_xor1 = 0; - uint8_t f_u_wallace_pg_rca4_fa1_and1 = 0; - uint8_t f_u_wallace_pg_rca4_fa1_or0 = 0; - uint8_t f_u_wallace_pg_rca4_and_1_2 = 0; - uint8_t f_u_wallace_pg_rca4_and_0_3 = 0; - uint8_t f_u_wallace_pg_rca4_ha1_xor0 = 0; - uint8_t f_u_wallace_pg_rca4_ha1_and0 = 0; - uint8_t f_u_wallace_pg_rca4_and_1_3 = 0; - uint8_t f_u_wallace_pg_rca4_ha2_xor0 = 0; - uint8_t f_u_wallace_pg_rca4_ha2_and0 = 0; - uint8_t f_u_wallace_pg_rca4_and_3_2 = 0; - uint8_t f_u_wallace_pg_rca4_fa2_xor0 = 0; - uint8_t f_u_wallace_pg_rca4_fa2_and0 = 0; - uint8_t f_u_wallace_pg_rca4_fa2_xor1 = 0; - uint8_t f_u_wallace_pg_rca4_fa2_and1 = 0; - uint8_t f_u_wallace_pg_rca4_fa2_or0 = 0; - uint8_t f_u_wallace_pg_rca4_and_0_0 = 0; - uint8_t f_u_wallace_pg_rca4_and_1_0 = 0; - uint8_t f_u_wallace_pg_rca4_and_0_2 = 0; - uint8_t f_u_wallace_pg_rca4_and_2_3 = 0; - uint8_t f_u_wallace_pg_rca4_and_0_1 = 0; - uint8_t f_u_wallace_pg_rca4_and_3_3 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa0_xor0 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa0_and0 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa1_xor0 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa1_and0 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa1_xor1 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_and1 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_or1 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa2_xor0 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa2_and0 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa2_xor1 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_and2 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_or2 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa3_xor0 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa3_and0 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa3_xor1 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_and3 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_or3 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa4_xor0 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa4_and0 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa4_xor1 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_and4 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_or4 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa5_xor0 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa5_and0 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_pg_fa5_xor1 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_and5 = 0; - uint8_t f_u_wallace_pg_rca4_u_pg_rca6_or5 = 0; - - f_u_wallace_pg_rca4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_pg_rca4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_pg_rca4_ha0_xor0 = ((f_u_wallace_pg_rca4_and_2_0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_and_1_1 >> 0) & 0x01); - f_u_wallace_pg_rca4_ha0_and0 = ((f_u_wallace_pg_rca4_and_2_0 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_and_1_1 >> 0) & 0x01); - f_u_wallace_pg_rca4_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_pg_rca4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_pg_rca4_fa0_xor0 = ((f_u_wallace_pg_rca4_ha0_and0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_and_3_0 >> 0) & 0x01); - f_u_wallace_pg_rca4_fa0_and0 = ((f_u_wallace_pg_rca4_ha0_and0 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_and_3_0 >> 0) & 0x01); - f_u_wallace_pg_rca4_fa0_xor1 = ((f_u_wallace_pg_rca4_fa0_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_and_2_1 >> 0) & 0x01); - f_u_wallace_pg_rca4_fa0_and1 = ((f_u_wallace_pg_rca4_fa0_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_and_2_1 >> 0) & 0x01); - f_u_wallace_pg_rca4_fa0_or0 = ((f_u_wallace_pg_rca4_fa0_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca4_fa0_and1 >> 0) & 0x01); - f_u_wallace_pg_rca4_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_pg_rca4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_pg_rca4_fa1_xor0 = ((f_u_wallace_pg_rca4_fa0_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_and_3_1 >> 0) & 0x01); - f_u_wallace_pg_rca4_fa1_and0 = ((f_u_wallace_pg_rca4_fa0_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_and_3_1 >> 0) & 0x01); - f_u_wallace_pg_rca4_fa1_xor1 = ((f_u_wallace_pg_rca4_fa1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_and_2_2 >> 0) & 0x01); - f_u_wallace_pg_rca4_fa1_and1 = ((f_u_wallace_pg_rca4_fa1_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_and_2_2 >> 0) & 0x01); - f_u_wallace_pg_rca4_fa1_or0 = ((f_u_wallace_pg_rca4_fa1_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca4_fa1_and1 >> 0) & 0x01); - f_u_wallace_pg_rca4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_pg_rca4_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_pg_rca4_ha1_xor0 = ((f_u_wallace_pg_rca4_and_1_2 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_and_0_3 >> 0) & 0x01); - f_u_wallace_pg_rca4_ha1_and0 = ((f_u_wallace_pg_rca4_and_1_2 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_and_0_3 >> 0) & 0x01); - f_u_wallace_pg_rca4_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_pg_rca4_ha2_xor0 = ((f_u_wallace_pg_rca4_ha1_and0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_and_1_3 >> 0) & 0x01); - f_u_wallace_pg_rca4_ha2_and0 = ((f_u_wallace_pg_rca4_ha1_and0 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_and_1_3 >> 0) & 0x01); - f_u_wallace_pg_rca4_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_pg_rca4_fa2_xor0 = ((f_u_wallace_pg_rca4_ha2_and0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_fa1_or0 >> 0) & 0x01); - f_u_wallace_pg_rca4_fa2_and0 = ((f_u_wallace_pg_rca4_ha2_and0 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_fa1_or0 >> 0) & 0x01); - f_u_wallace_pg_rca4_fa2_xor1 = ((f_u_wallace_pg_rca4_fa2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_and_3_2 >> 0) & 0x01); - f_u_wallace_pg_rca4_fa2_and1 = ((f_u_wallace_pg_rca4_fa2_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_and_3_2 >> 0) & 0x01); - f_u_wallace_pg_rca4_fa2_or0 = ((f_u_wallace_pg_rca4_fa2_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca4_fa2_and1 >> 0) & 0x01); - f_u_wallace_pg_rca4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_pg_rca4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_pg_rca4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_pg_rca4_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_pg_rca4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_pg_rca4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa0_xor0 = ((f_u_wallace_pg_rca4_and_1_0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_and_0_1 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa0_and0 = ((f_u_wallace_pg_rca4_and_1_0 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_and_0_1 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa1_xor0 = ((f_u_wallace_pg_rca4_and_0_2 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_ha0_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa1_and0 = ((f_u_wallace_pg_rca4_and_0_2 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_ha0_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa1_xor1 = ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa0_and0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_and1 = ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa0_and0 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa1_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_or1 = ((f_u_wallace_pg_rca4_u_pg_rca6_and1 >> 0) & 0x01) | ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa1_and0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa2_xor0 = ((f_u_wallace_pg_rca4_fa0_xor1 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_ha1_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa2_and0 = ((f_u_wallace_pg_rca4_fa0_xor1 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_ha1_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa2_xor1 = ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_u_pg_rca6_or1 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_and2 = ((f_u_wallace_pg_rca4_u_pg_rca6_or1 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa2_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_or2 = ((f_u_wallace_pg_rca4_u_pg_rca6_and2 >> 0) & 0x01) | ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa2_and0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa3_xor0 = ((f_u_wallace_pg_rca4_fa1_xor1 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_ha2_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa3_and0 = ((f_u_wallace_pg_rca4_fa1_xor1 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_ha2_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa3_xor1 = ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa3_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_u_pg_rca6_or2 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_and3 = ((f_u_wallace_pg_rca4_u_pg_rca6_or2 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa3_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_or3 = ((f_u_wallace_pg_rca4_u_pg_rca6_and3 >> 0) & 0x01) | ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa3_and0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa4_xor0 = ((f_u_wallace_pg_rca4_and_2_3 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_fa2_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa4_and0 = ((f_u_wallace_pg_rca4_and_2_3 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_fa2_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa4_xor1 = ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa4_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_u_pg_rca6_or3 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_and4 = ((f_u_wallace_pg_rca4_u_pg_rca6_or3 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa4_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_or4 = ((f_u_wallace_pg_rca4_u_pg_rca6_and4 >> 0) & 0x01) | ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa4_and0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa5_xor0 = ((f_u_wallace_pg_rca4_fa2_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_and_3_3 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa5_and0 = ((f_u_wallace_pg_rca4_fa2_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_and_3_3 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_pg_fa5_xor1 = ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa5_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca4_u_pg_rca6_or4 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_and5 = ((f_u_wallace_pg_rca4_u_pg_rca6_or4 >> 0) & 0x01) & ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa5_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca4_u_pg_rca6_or5 = ((f_u_wallace_pg_rca4_u_pg_rca6_and5 >> 0) & 0x01) | ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa5_and0 >> 0) & 0x01); - - f_u_wallace_pg_rca4_out |= ((f_u_wallace_pg_rca4_and_0_0 >> 0) & 0x01) << 0; - f_u_wallace_pg_rca4_out |= ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa0_xor0 >> 0) & 0x01) << 1; - f_u_wallace_pg_rca4_out |= ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa1_xor1 >> 0) & 0x01) << 2; - f_u_wallace_pg_rca4_out |= ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa2_xor1 >> 0) & 0x01) << 3; - f_u_wallace_pg_rca4_out |= ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa3_xor1 >> 0) & 0x01) << 4; - f_u_wallace_pg_rca4_out |= ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa4_xor1 >> 0) & 0x01) << 5; - f_u_wallace_pg_rca4_out |= ((f_u_wallace_pg_rca4_u_pg_rca6_pg_fa5_xor1 >> 0) & 0x01) << 6; - f_u_wallace_pg_rca4_out |= ((f_u_wallace_pg_rca4_u_pg_rca6_or5 >> 0) & 0x01) << 7; - return f_u_wallace_pg_rca4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == f_u_wallace_pg_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_pg_rca8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_pg_rca8.c deleted file mode 100644 index 89925bb..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_pg_rca8.c +++ /dev/null @@ -1,675 +0,0 @@ -#include -#include - -uint64_t f_u_wallace_pg_rca8(uint64_t a, uint64_t b){ - uint64_t f_u_wallace_pg_rca8_out = 0; - uint8_t f_u_wallace_pg_rca8_and_2_0 = 0; - uint8_t f_u_wallace_pg_rca8_and_1_1 = 0; - uint8_t f_u_wallace_pg_rca8_ha0_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_ha0_and0 = 0; - uint8_t f_u_wallace_pg_rca8_and_3_0 = 0; - uint8_t f_u_wallace_pg_rca8_and_2_1 = 0; - uint8_t f_u_wallace_pg_rca8_fa0_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa0_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa0_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa0_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa0_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_4_0 = 0; - uint8_t f_u_wallace_pg_rca8_and_3_1 = 0; - uint8_t f_u_wallace_pg_rca8_fa1_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa1_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa1_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa1_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa1_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_5_0 = 0; - uint8_t f_u_wallace_pg_rca8_and_4_1 = 0; - uint8_t f_u_wallace_pg_rca8_fa2_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa2_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa2_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa2_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa2_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_6_0 = 0; - uint8_t f_u_wallace_pg_rca8_and_5_1 = 0; - uint8_t f_u_wallace_pg_rca8_fa3_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa3_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa3_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa3_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa3_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_7_0 = 0; - uint8_t f_u_wallace_pg_rca8_and_6_1 = 0; - uint8_t f_u_wallace_pg_rca8_fa4_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa4_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa4_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa4_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa4_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_7_1 = 0; - uint8_t f_u_wallace_pg_rca8_and_6_2 = 0; - uint8_t f_u_wallace_pg_rca8_fa5_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa5_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa5_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa5_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa5_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_7_2 = 0; - uint8_t f_u_wallace_pg_rca8_and_6_3 = 0; - uint8_t f_u_wallace_pg_rca8_fa6_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa6_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa6_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa6_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa6_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_7_3 = 0; - uint8_t f_u_wallace_pg_rca8_and_6_4 = 0; - uint8_t f_u_wallace_pg_rca8_fa7_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa7_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa7_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa7_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa7_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_7_4 = 0; - uint8_t f_u_wallace_pg_rca8_and_6_5 = 0; - uint8_t f_u_wallace_pg_rca8_fa8_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa8_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa8_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa8_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa8_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_7_5 = 0; - uint8_t f_u_wallace_pg_rca8_and_6_6 = 0; - uint8_t f_u_wallace_pg_rca8_fa9_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa9_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa9_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa9_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa9_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_1_2 = 0; - uint8_t f_u_wallace_pg_rca8_and_0_3 = 0; - uint8_t f_u_wallace_pg_rca8_ha1_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_ha1_and0 = 0; - uint8_t f_u_wallace_pg_rca8_and_2_2 = 0; - uint8_t f_u_wallace_pg_rca8_and_1_3 = 0; - uint8_t f_u_wallace_pg_rca8_fa10_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa10_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa10_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa10_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa10_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_3_2 = 0; - uint8_t f_u_wallace_pg_rca8_and_2_3 = 0; - uint8_t f_u_wallace_pg_rca8_fa11_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa11_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa11_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa11_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa11_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_4_2 = 0; - uint8_t f_u_wallace_pg_rca8_and_3_3 = 0; - uint8_t f_u_wallace_pg_rca8_fa12_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa12_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa12_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa12_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa12_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_5_2 = 0; - uint8_t f_u_wallace_pg_rca8_and_4_3 = 0; - uint8_t f_u_wallace_pg_rca8_fa13_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa13_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa13_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa13_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa13_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_5_3 = 0; - uint8_t f_u_wallace_pg_rca8_and_4_4 = 0; - uint8_t f_u_wallace_pg_rca8_fa14_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa14_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa14_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa14_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa14_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_5_4 = 0; - uint8_t f_u_wallace_pg_rca8_and_4_5 = 0; - uint8_t f_u_wallace_pg_rca8_fa15_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa15_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa15_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa15_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa15_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_5_5 = 0; - uint8_t f_u_wallace_pg_rca8_and_4_6 = 0; - uint8_t f_u_wallace_pg_rca8_fa16_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa16_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa16_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa16_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa16_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_5_6 = 0; - uint8_t f_u_wallace_pg_rca8_and_4_7 = 0; - uint8_t f_u_wallace_pg_rca8_fa17_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa17_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa17_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa17_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa17_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_0_4 = 0; - uint8_t f_u_wallace_pg_rca8_ha2_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_ha2_and0 = 0; - uint8_t f_u_wallace_pg_rca8_and_1_4 = 0; - uint8_t f_u_wallace_pg_rca8_and_0_5 = 0; - uint8_t f_u_wallace_pg_rca8_fa18_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa18_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa18_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa18_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa18_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_2_4 = 0; - uint8_t f_u_wallace_pg_rca8_and_1_5 = 0; - uint8_t f_u_wallace_pg_rca8_fa19_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa19_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa19_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa19_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa19_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_3_4 = 0; - uint8_t f_u_wallace_pg_rca8_and_2_5 = 0; - uint8_t f_u_wallace_pg_rca8_fa20_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa20_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa20_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa20_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa20_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_3_5 = 0; - uint8_t f_u_wallace_pg_rca8_and_2_6 = 0; - uint8_t f_u_wallace_pg_rca8_fa21_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa21_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa21_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa21_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa21_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_3_6 = 0; - uint8_t f_u_wallace_pg_rca8_and_2_7 = 0; - uint8_t f_u_wallace_pg_rca8_fa22_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa22_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa22_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa22_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa22_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_3_7 = 0; - uint8_t f_u_wallace_pg_rca8_fa23_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa23_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa23_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa23_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa23_or0 = 0; - uint8_t f_u_wallace_pg_rca8_ha3_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_ha3_and0 = 0; - uint8_t f_u_wallace_pg_rca8_and_0_6 = 0; - uint8_t f_u_wallace_pg_rca8_fa24_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa24_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa24_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa24_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa24_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_1_6 = 0; - uint8_t f_u_wallace_pg_rca8_and_0_7 = 0; - uint8_t f_u_wallace_pg_rca8_fa25_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa25_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa25_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa25_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa25_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_1_7 = 0; - uint8_t f_u_wallace_pg_rca8_fa26_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa26_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa26_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa26_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa26_or0 = 0; - uint8_t f_u_wallace_pg_rca8_fa27_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa27_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa27_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa27_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa27_or0 = 0; - uint8_t f_u_wallace_pg_rca8_ha4_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_ha4_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa28_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa28_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa28_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa28_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa28_or0 = 0; - uint8_t f_u_wallace_pg_rca8_fa29_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa29_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa29_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa29_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa29_or0 = 0; - uint8_t f_u_wallace_pg_rca8_ha5_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_ha5_and0 = 0; - uint8_t f_u_wallace_pg_rca8_ha6_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_ha6_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa30_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa30_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa30_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa30_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa30_or0 = 0; - uint8_t f_u_wallace_pg_rca8_fa31_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa31_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa31_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa31_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa31_or0 = 0; - uint8_t f_u_wallace_pg_rca8_fa32_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa32_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa32_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa32_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa32_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_5_7 = 0; - uint8_t f_u_wallace_pg_rca8_fa33_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa33_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa33_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa33_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa33_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_7_6 = 0; - uint8_t f_u_wallace_pg_rca8_fa34_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_fa34_and0 = 0; - uint8_t f_u_wallace_pg_rca8_fa34_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_fa34_and1 = 0; - uint8_t f_u_wallace_pg_rca8_fa34_or0 = 0; - uint8_t f_u_wallace_pg_rca8_and_0_0 = 0; - uint8_t f_u_wallace_pg_rca8_and_1_0 = 0; - uint8_t f_u_wallace_pg_rca8_and_0_2 = 0; - uint8_t f_u_wallace_pg_rca8_and_6_7 = 0; - uint8_t f_u_wallace_pg_rca8_and_0_1 = 0; - uint8_t f_u_wallace_pg_rca8_and_7_7 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa0_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa0_and0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa1_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa1_and0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa1_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_and1 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_or1 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa2_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa2_and0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa2_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_and2 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_or2 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa3_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa3_and0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa3_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_and3 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_or3 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa4_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa4_and0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa4_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_and4 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_or4 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa5_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa5_and0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa5_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_and5 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_or5 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa6_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa6_and0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa6_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_and6 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_or6 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa7_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa7_and0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa7_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_and7 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_or7 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa8_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa8_and0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa8_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_and8 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_or8 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa9_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa9_and0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa9_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_and9 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_or9 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa10_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa10_and0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa10_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_and10 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_or10 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa11_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa11_and0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa11_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_and11 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_or11 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa12_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa12_and0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa12_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_and12 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_or12 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa13_xor0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa13_and0 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_pg_fa13_xor1 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_and13 = 0; - uint8_t f_u_wallace_pg_rca8_u_pg_rca14_or13 = 0; - - f_u_wallace_pg_rca8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_pg_rca8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_pg_rca8_ha0_xor0 = ((f_u_wallace_pg_rca8_and_2_0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_1_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_ha0_and0 = ((f_u_wallace_pg_rca8_and_2_0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_1_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_pg_rca8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_pg_rca8_fa0_xor0 = ((f_u_wallace_pg_rca8_ha0_and0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_3_0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa0_and0 = ((f_u_wallace_pg_rca8_ha0_and0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_3_0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa0_xor1 = ((f_u_wallace_pg_rca8_fa0_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_2_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa0_and1 = ((f_u_wallace_pg_rca8_fa0_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_2_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa0_or0 = ((f_u_wallace_pg_rca8_fa0_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa0_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_pg_rca8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_pg_rca8_fa1_xor0 = ((f_u_wallace_pg_rca8_fa0_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_4_0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa1_and0 = ((f_u_wallace_pg_rca8_fa0_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_4_0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa1_xor1 = ((f_u_wallace_pg_rca8_fa1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_3_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa1_and1 = ((f_u_wallace_pg_rca8_fa1_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_3_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa1_or0 = ((f_u_wallace_pg_rca8_fa1_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa1_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_pg_rca8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_pg_rca8_fa2_xor0 = ((f_u_wallace_pg_rca8_fa1_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_5_0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa2_and0 = ((f_u_wallace_pg_rca8_fa1_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_5_0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa2_xor1 = ((f_u_wallace_pg_rca8_fa2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_4_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa2_and1 = ((f_u_wallace_pg_rca8_fa2_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_4_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa2_or0 = ((f_u_wallace_pg_rca8_fa2_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa2_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_pg_rca8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_pg_rca8_fa3_xor0 = ((f_u_wallace_pg_rca8_fa2_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_6_0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa3_and0 = ((f_u_wallace_pg_rca8_fa2_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_6_0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa3_xor1 = ((f_u_wallace_pg_rca8_fa3_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_5_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa3_and1 = ((f_u_wallace_pg_rca8_fa3_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_5_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa3_or0 = ((f_u_wallace_pg_rca8_fa3_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa3_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_7_0 = ((a >> 7) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_pg_rca8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_pg_rca8_fa4_xor0 = ((f_u_wallace_pg_rca8_fa3_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_7_0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa4_and0 = ((f_u_wallace_pg_rca8_fa3_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_7_0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa4_xor1 = ((f_u_wallace_pg_rca8_fa4_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_6_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa4_and1 = ((f_u_wallace_pg_rca8_fa4_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_6_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa4_or0 = ((f_u_wallace_pg_rca8_fa4_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa4_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_7_1 = ((a >> 7) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_pg_rca8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_pg_rca8_fa5_xor0 = ((f_u_wallace_pg_rca8_fa4_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_7_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa5_and0 = ((f_u_wallace_pg_rca8_fa4_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_7_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa5_xor1 = ((f_u_wallace_pg_rca8_fa5_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_6_2 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa5_and1 = ((f_u_wallace_pg_rca8_fa5_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_6_2 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa5_or0 = ((f_u_wallace_pg_rca8_fa5_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa5_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_7_2 = ((a >> 7) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_pg_rca8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_pg_rca8_fa6_xor0 = ((f_u_wallace_pg_rca8_fa5_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_7_2 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa6_and0 = ((f_u_wallace_pg_rca8_fa5_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_7_2 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa6_xor1 = ((f_u_wallace_pg_rca8_fa6_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_6_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa6_and1 = ((f_u_wallace_pg_rca8_fa6_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_6_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa6_or0 = ((f_u_wallace_pg_rca8_fa6_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa6_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_7_3 = ((a >> 7) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_pg_rca8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_pg_rca8_fa7_xor0 = ((f_u_wallace_pg_rca8_fa6_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_7_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa7_and0 = ((f_u_wallace_pg_rca8_fa6_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_7_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa7_xor1 = ((f_u_wallace_pg_rca8_fa7_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_6_4 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa7_and1 = ((f_u_wallace_pg_rca8_fa7_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_6_4 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa7_or0 = ((f_u_wallace_pg_rca8_fa7_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa7_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_7_4 = ((a >> 7) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_pg_rca8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_pg_rca8_fa8_xor0 = ((f_u_wallace_pg_rca8_fa7_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_7_4 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa8_and0 = ((f_u_wallace_pg_rca8_fa7_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_7_4 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa8_xor1 = ((f_u_wallace_pg_rca8_fa8_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_6_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa8_and1 = ((f_u_wallace_pg_rca8_fa8_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_6_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa8_or0 = ((f_u_wallace_pg_rca8_fa8_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa8_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_7_5 = ((a >> 7) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_pg_rca8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_pg_rca8_fa9_xor0 = ((f_u_wallace_pg_rca8_fa8_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_7_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa9_and0 = ((f_u_wallace_pg_rca8_fa8_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_7_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa9_xor1 = ((f_u_wallace_pg_rca8_fa9_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_6_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa9_and1 = ((f_u_wallace_pg_rca8_fa9_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_6_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa9_or0 = ((f_u_wallace_pg_rca8_fa9_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa9_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_pg_rca8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_pg_rca8_ha1_xor0 = ((f_u_wallace_pg_rca8_and_1_2 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_0_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_ha1_and0 = ((f_u_wallace_pg_rca8_and_1_2 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_0_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_pg_rca8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_pg_rca8_fa10_xor0 = ((f_u_wallace_pg_rca8_ha1_and0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_2_2 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa10_and0 = ((f_u_wallace_pg_rca8_ha1_and0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_2_2 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa10_xor1 = ((f_u_wallace_pg_rca8_fa10_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_1_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa10_and1 = ((f_u_wallace_pg_rca8_fa10_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_1_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa10_or0 = ((f_u_wallace_pg_rca8_fa10_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa10_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_pg_rca8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_pg_rca8_fa11_xor0 = ((f_u_wallace_pg_rca8_fa10_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_3_2 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa11_and0 = ((f_u_wallace_pg_rca8_fa10_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_3_2 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa11_xor1 = ((f_u_wallace_pg_rca8_fa11_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_2_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa11_and1 = ((f_u_wallace_pg_rca8_fa11_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_2_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa11_or0 = ((f_u_wallace_pg_rca8_fa11_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa11_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_pg_rca8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_pg_rca8_fa12_xor0 = ((f_u_wallace_pg_rca8_fa11_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_4_2 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa12_and0 = ((f_u_wallace_pg_rca8_fa11_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_4_2 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa12_xor1 = ((f_u_wallace_pg_rca8_fa12_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_3_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa12_and1 = ((f_u_wallace_pg_rca8_fa12_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_3_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa12_or0 = ((f_u_wallace_pg_rca8_fa12_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa12_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_pg_rca8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_pg_rca8_fa13_xor0 = ((f_u_wallace_pg_rca8_fa12_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_5_2 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa13_and0 = ((f_u_wallace_pg_rca8_fa12_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_5_2 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa13_xor1 = ((f_u_wallace_pg_rca8_fa13_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_4_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa13_and1 = ((f_u_wallace_pg_rca8_fa13_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_4_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa13_or0 = ((f_u_wallace_pg_rca8_fa13_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa13_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_pg_rca8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_pg_rca8_fa14_xor0 = ((f_u_wallace_pg_rca8_fa13_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_5_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa14_and0 = ((f_u_wallace_pg_rca8_fa13_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_5_3 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa14_xor1 = ((f_u_wallace_pg_rca8_fa14_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_4_4 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa14_and1 = ((f_u_wallace_pg_rca8_fa14_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_4_4 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa14_or0 = ((f_u_wallace_pg_rca8_fa14_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa14_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_pg_rca8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_pg_rca8_fa15_xor0 = ((f_u_wallace_pg_rca8_fa14_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_5_4 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa15_and0 = ((f_u_wallace_pg_rca8_fa14_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_5_4 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa15_xor1 = ((f_u_wallace_pg_rca8_fa15_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_4_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa15_and1 = ((f_u_wallace_pg_rca8_fa15_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_4_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa15_or0 = ((f_u_wallace_pg_rca8_fa15_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa15_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_pg_rca8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_pg_rca8_fa16_xor0 = ((f_u_wallace_pg_rca8_fa15_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_5_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa16_and0 = ((f_u_wallace_pg_rca8_fa15_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_5_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa16_xor1 = ((f_u_wallace_pg_rca8_fa16_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_4_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa16_and1 = ((f_u_wallace_pg_rca8_fa16_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_4_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa16_or0 = ((f_u_wallace_pg_rca8_fa16_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa16_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_pg_rca8_and_4_7 = ((a >> 4) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_pg_rca8_fa17_xor0 = ((f_u_wallace_pg_rca8_fa16_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_5_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa17_and0 = ((f_u_wallace_pg_rca8_fa16_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_5_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa17_xor1 = ((f_u_wallace_pg_rca8_fa17_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_4_7 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa17_and1 = ((f_u_wallace_pg_rca8_fa17_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_4_7 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa17_or0 = ((f_u_wallace_pg_rca8_fa17_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa17_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_pg_rca8_ha2_xor0 = ((f_u_wallace_pg_rca8_and_0_4 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa1_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_ha2_and0 = ((f_u_wallace_pg_rca8_and_0_4 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa1_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_pg_rca8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_pg_rca8_fa18_xor0 = ((f_u_wallace_pg_rca8_ha2_and0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_1_4 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa18_and0 = ((f_u_wallace_pg_rca8_ha2_and0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_1_4 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa18_xor1 = ((f_u_wallace_pg_rca8_fa18_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_0_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa18_and1 = ((f_u_wallace_pg_rca8_fa18_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_0_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa18_or0 = ((f_u_wallace_pg_rca8_fa18_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa18_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_pg_rca8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_pg_rca8_fa19_xor0 = ((f_u_wallace_pg_rca8_fa18_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_2_4 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa19_and0 = ((f_u_wallace_pg_rca8_fa18_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_2_4 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa19_xor1 = ((f_u_wallace_pg_rca8_fa19_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_1_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa19_and1 = ((f_u_wallace_pg_rca8_fa19_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_1_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa19_or0 = ((f_u_wallace_pg_rca8_fa19_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa19_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_pg_rca8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_pg_rca8_fa20_xor0 = ((f_u_wallace_pg_rca8_fa19_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_3_4 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa20_and0 = ((f_u_wallace_pg_rca8_fa19_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_3_4 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa20_xor1 = ((f_u_wallace_pg_rca8_fa20_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_2_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa20_and1 = ((f_u_wallace_pg_rca8_fa20_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_2_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa20_or0 = ((f_u_wallace_pg_rca8_fa20_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa20_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_pg_rca8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_pg_rca8_fa21_xor0 = ((f_u_wallace_pg_rca8_fa20_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_3_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa21_and0 = ((f_u_wallace_pg_rca8_fa20_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_3_5 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa21_xor1 = ((f_u_wallace_pg_rca8_fa21_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_2_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa21_and1 = ((f_u_wallace_pg_rca8_fa21_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_2_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa21_or0 = ((f_u_wallace_pg_rca8_fa21_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa21_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_pg_rca8_and_2_7 = ((a >> 2) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_pg_rca8_fa22_xor0 = ((f_u_wallace_pg_rca8_fa21_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_3_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa22_and0 = ((f_u_wallace_pg_rca8_fa21_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_3_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa22_xor1 = ((f_u_wallace_pg_rca8_fa22_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_2_7 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa22_and1 = ((f_u_wallace_pg_rca8_fa22_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_2_7 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa22_or0 = ((f_u_wallace_pg_rca8_fa22_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa22_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_3_7 = ((a >> 3) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_pg_rca8_fa23_xor0 = ((f_u_wallace_pg_rca8_fa22_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_3_7 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa23_and0 = ((f_u_wallace_pg_rca8_fa22_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_3_7 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa23_xor1 = ((f_u_wallace_pg_rca8_fa23_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa7_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa23_and1 = ((f_u_wallace_pg_rca8_fa23_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa7_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa23_or0 = ((f_u_wallace_pg_rca8_fa23_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa23_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_ha3_xor0 = ((f_u_wallace_pg_rca8_fa2_xor1 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa11_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_ha3_and0 = ((f_u_wallace_pg_rca8_fa2_xor1 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa11_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_pg_rca8_fa24_xor0 = ((f_u_wallace_pg_rca8_ha3_and0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_0_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa24_and0 = ((f_u_wallace_pg_rca8_ha3_and0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_0_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa24_xor1 = ((f_u_wallace_pg_rca8_fa24_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa3_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa24_and1 = ((f_u_wallace_pg_rca8_fa24_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa3_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa24_or0 = ((f_u_wallace_pg_rca8_fa24_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa24_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_pg_rca8_and_0_7 = ((a >> 0) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_pg_rca8_fa25_xor0 = ((f_u_wallace_pg_rca8_fa24_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_1_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa25_and0 = ((f_u_wallace_pg_rca8_fa24_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_1_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa25_xor1 = ((f_u_wallace_pg_rca8_fa25_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_0_7 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa25_and1 = ((f_u_wallace_pg_rca8_fa25_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_0_7 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa25_or0 = ((f_u_wallace_pg_rca8_fa25_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa25_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_1_7 = ((a >> 1) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_pg_rca8_fa26_xor0 = ((f_u_wallace_pg_rca8_fa25_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_1_7 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa26_and0 = ((f_u_wallace_pg_rca8_fa25_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_1_7 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa26_xor1 = ((f_u_wallace_pg_rca8_fa26_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa5_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa26_and1 = ((f_u_wallace_pg_rca8_fa26_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa5_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa26_or0 = ((f_u_wallace_pg_rca8_fa26_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa26_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa27_xor0 = ((f_u_wallace_pg_rca8_fa26_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa6_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa27_and0 = ((f_u_wallace_pg_rca8_fa26_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa6_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa27_xor1 = ((f_u_wallace_pg_rca8_fa27_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa15_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa27_and1 = ((f_u_wallace_pg_rca8_fa27_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa15_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa27_or0 = ((f_u_wallace_pg_rca8_fa27_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa27_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_ha4_xor0 = ((f_u_wallace_pg_rca8_fa12_xor1 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa19_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_ha4_and0 = ((f_u_wallace_pg_rca8_fa12_xor1 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa19_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa28_xor0 = ((f_u_wallace_pg_rca8_ha4_and0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa4_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa28_and0 = ((f_u_wallace_pg_rca8_ha4_and0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa4_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa28_xor1 = ((f_u_wallace_pg_rca8_fa28_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa13_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa28_and1 = ((f_u_wallace_pg_rca8_fa28_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa13_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa28_or0 = ((f_u_wallace_pg_rca8_fa28_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa28_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa29_xor0 = ((f_u_wallace_pg_rca8_fa28_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa14_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa29_and0 = ((f_u_wallace_pg_rca8_fa28_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa14_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa29_xor1 = ((f_u_wallace_pg_rca8_fa29_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa21_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa29_and1 = ((f_u_wallace_pg_rca8_fa29_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa21_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa29_or0 = ((f_u_wallace_pg_rca8_fa29_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa29_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_ha5_xor0 = ((f_u_wallace_pg_rca8_fa20_xor1 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa25_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_ha5_and0 = ((f_u_wallace_pg_rca8_fa20_xor1 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa25_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_ha6_xor0 = ((f_u_wallace_pg_rca8_ha5_and0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa26_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_ha6_and0 = ((f_u_wallace_pg_rca8_ha5_and0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa26_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa30_xor0 = ((f_u_wallace_pg_rca8_ha6_and0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa29_or0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa30_and0 = ((f_u_wallace_pg_rca8_ha6_and0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa29_or0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa30_xor1 = ((f_u_wallace_pg_rca8_fa30_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa22_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa30_and1 = ((f_u_wallace_pg_rca8_fa30_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa22_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa30_or0 = ((f_u_wallace_pg_rca8_fa30_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa30_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa31_xor0 = ((f_u_wallace_pg_rca8_fa30_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa27_or0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa31_and0 = ((f_u_wallace_pg_rca8_fa30_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa27_or0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa31_xor1 = ((f_u_wallace_pg_rca8_fa31_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa16_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa31_and1 = ((f_u_wallace_pg_rca8_fa31_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa16_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa31_or0 = ((f_u_wallace_pg_rca8_fa31_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa31_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa32_xor0 = ((f_u_wallace_pg_rca8_fa31_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa23_or0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa32_and0 = ((f_u_wallace_pg_rca8_fa31_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa23_or0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa32_xor1 = ((f_u_wallace_pg_rca8_fa32_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa8_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa32_and1 = ((f_u_wallace_pg_rca8_fa32_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa8_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa32_or0 = ((f_u_wallace_pg_rca8_fa32_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa32_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_5_7 = ((a >> 5) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_pg_rca8_fa33_xor0 = ((f_u_wallace_pg_rca8_fa32_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa17_or0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa33_and0 = ((f_u_wallace_pg_rca8_fa32_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa17_or0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa33_xor1 = ((f_u_wallace_pg_rca8_fa33_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_5_7 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa33_and1 = ((f_u_wallace_pg_rca8_fa33_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_5_7 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa33_or0 = ((f_u_wallace_pg_rca8_fa33_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa33_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_7_6 = ((a >> 7) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_pg_rca8_fa34_xor0 = ((f_u_wallace_pg_rca8_fa33_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa9_or0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa34_and0 = ((f_u_wallace_pg_rca8_fa33_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa9_or0 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa34_xor1 = ((f_u_wallace_pg_rca8_fa34_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_7_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa34_and1 = ((f_u_wallace_pg_rca8_fa34_xor0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_7_6 >> 0) & 0x01); - f_u_wallace_pg_rca8_fa34_or0 = ((f_u_wallace_pg_rca8_fa34_and0 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_fa34_and1 >> 0) & 0x01); - f_u_wallace_pg_rca8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_pg_rca8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_pg_rca8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_pg_rca8_and_6_7 = ((a >> 6) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_pg_rca8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_pg_rca8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa0_xor0 = ((f_u_wallace_pg_rca8_and_1_0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_0_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa0_and0 = ((f_u_wallace_pg_rca8_and_1_0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_0_1 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa1_xor0 = ((f_u_wallace_pg_rca8_and_0_2 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_ha0_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa1_and0 = ((f_u_wallace_pg_rca8_and_0_2 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_ha0_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa1_xor1 = ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa0_and0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_and1 = ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa0_and0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa1_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_or1 = ((f_u_wallace_pg_rca8_u_pg_rca14_and1 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa1_and0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa2_xor0 = ((f_u_wallace_pg_rca8_fa0_xor1 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_ha1_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa2_and0 = ((f_u_wallace_pg_rca8_fa0_xor1 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_ha1_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa2_xor1 = ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_u_pg_rca14_or1 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_and2 = ((f_u_wallace_pg_rca8_u_pg_rca14_or1 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa2_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_or2 = ((f_u_wallace_pg_rca8_u_pg_rca14_and2 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa2_and0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa3_xor0 = ((f_u_wallace_pg_rca8_fa10_xor1 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_ha2_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa3_and0 = ((f_u_wallace_pg_rca8_fa10_xor1 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_ha2_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa3_xor1 = ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa3_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_u_pg_rca14_or2 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_and3 = ((f_u_wallace_pg_rca8_u_pg_rca14_or2 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa3_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_or3 = ((f_u_wallace_pg_rca8_u_pg_rca14_and3 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa3_and0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa4_xor0 = ((f_u_wallace_pg_rca8_fa18_xor1 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_ha3_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa4_and0 = ((f_u_wallace_pg_rca8_fa18_xor1 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_ha3_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa4_xor1 = ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa4_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_u_pg_rca14_or3 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_and4 = ((f_u_wallace_pg_rca8_u_pg_rca14_or3 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa4_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_or4 = ((f_u_wallace_pg_rca8_u_pg_rca14_and4 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa4_and0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa5_xor0 = ((f_u_wallace_pg_rca8_fa24_xor1 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_ha4_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa5_and0 = ((f_u_wallace_pg_rca8_fa24_xor1 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_ha4_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa5_xor1 = ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa5_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_u_pg_rca14_or4 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_and5 = ((f_u_wallace_pg_rca8_u_pg_rca14_or4 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa5_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_or5 = ((f_u_wallace_pg_rca8_u_pg_rca14_and5 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa5_and0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa6_xor0 = ((f_u_wallace_pg_rca8_fa28_xor1 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_ha5_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa6_and0 = ((f_u_wallace_pg_rca8_fa28_xor1 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_ha5_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa6_xor1 = ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa6_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_u_pg_rca14_or5 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_and6 = ((f_u_wallace_pg_rca8_u_pg_rca14_or5 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa6_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_or6 = ((f_u_wallace_pg_rca8_u_pg_rca14_and6 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa6_and0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa7_xor0 = ((f_u_wallace_pg_rca8_fa29_xor1 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_ha6_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa7_and0 = ((f_u_wallace_pg_rca8_fa29_xor1 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_ha6_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa7_xor1 = ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa7_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_u_pg_rca14_or6 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_and7 = ((f_u_wallace_pg_rca8_u_pg_rca14_or6 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa7_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_or7 = ((f_u_wallace_pg_rca8_u_pg_rca14_and7 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa7_and0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa8_xor0 = ((f_u_wallace_pg_rca8_fa27_xor1 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa30_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa8_and0 = ((f_u_wallace_pg_rca8_fa27_xor1 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa30_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa8_xor1 = ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa8_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_u_pg_rca14_or7 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_and8 = ((f_u_wallace_pg_rca8_u_pg_rca14_or7 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa8_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_or8 = ((f_u_wallace_pg_rca8_u_pg_rca14_and8 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa8_and0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa9_xor0 = ((f_u_wallace_pg_rca8_fa23_xor1 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa31_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa9_and0 = ((f_u_wallace_pg_rca8_fa23_xor1 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa31_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa9_xor1 = ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa9_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_u_pg_rca14_or8 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_and9 = ((f_u_wallace_pg_rca8_u_pg_rca14_or8 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa9_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_or9 = ((f_u_wallace_pg_rca8_u_pg_rca14_and9 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa9_and0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa10_xor0 = ((f_u_wallace_pg_rca8_fa17_xor1 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa32_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa10_and0 = ((f_u_wallace_pg_rca8_fa17_xor1 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa32_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa10_xor1 = ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa10_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_u_pg_rca14_or9 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_and10 = ((f_u_wallace_pg_rca8_u_pg_rca14_or9 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa10_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_or10 = ((f_u_wallace_pg_rca8_u_pg_rca14_and10 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa10_and0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa11_xor0 = ((f_u_wallace_pg_rca8_fa9_xor1 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa33_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa11_and0 = ((f_u_wallace_pg_rca8_fa9_xor1 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa33_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa11_xor1 = ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa11_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_u_pg_rca14_or10 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_and11 = ((f_u_wallace_pg_rca8_u_pg_rca14_or10 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa11_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_or11 = ((f_u_wallace_pg_rca8_u_pg_rca14_and11 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa11_and0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa12_xor0 = ((f_u_wallace_pg_rca8_and_6_7 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_fa34_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa12_and0 = ((f_u_wallace_pg_rca8_and_6_7 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_fa34_xor1 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa12_xor1 = ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa12_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_u_pg_rca14_or11 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_and12 = ((f_u_wallace_pg_rca8_u_pg_rca14_or11 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa12_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_or12 = ((f_u_wallace_pg_rca8_u_pg_rca14_and12 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa12_and0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa13_xor0 = ((f_u_wallace_pg_rca8_fa34_or0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_and_7_7 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa13_and0 = ((f_u_wallace_pg_rca8_fa34_or0 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_and_7_7 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_pg_fa13_xor1 = ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa13_xor0 >> 0) & 0x01) ^ ((f_u_wallace_pg_rca8_u_pg_rca14_or12 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_and13 = ((f_u_wallace_pg_rca8_u_pg_rca14_or12 >> 0) & 0x01) & ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa13_xor0 >> 0) & 0x01); - f_u_wallace_pg_rca8_u_pg_rca14_or13 = ((f_u_wallace_pg_rca8_u_pg_rca14_and13 >> 0) & 0x01) | ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa13_and0 >> 0) & 0x01); - - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_and_0_0 >> 0) & 0x01) << 0; - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa0_xor0 >> 0) & 0x01) << 1; - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa1_xor1 >> 0) & 0x01) << 2; - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa2_xor1 >> 0) & 0x01) << 3; - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa3_xor1 >> 0) & 0x01) << 4; - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa4_xor1 >> 0) & 0x01) << 5; - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa5_xor1 >> 0) & 0x01) << 6; - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa6_xor1 >> 0) & 0x01) << 7; - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa7_xor1 >> 0) & 0x01) << 8; - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa8_xor1 >> 0) & 0x01) << 9; - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa9_xor1 >> 0) & 0x01) << 10; - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa10_xor1 >> 0) & 0x01) << 11; - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa11_xor1 >> 0) & 0x01) << 12; - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa12_xor1 >> 0) & 0x01) << 13; - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_u_pg_rca14_pg_fa13_xor1 >> 0) & 0x01) << 14; - f_u_wallace_pg_rca8_out |= ((f_u_wallace_pg_rca8_u_pg_rca14_or13 >> 0) & 0x01) << 15; - return f_u_wallace_pg_rca8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == f_u_wallace_pg_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_rca4.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_rca4.c deleted file mode 100644 index 6dcf11f..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_rca4.c +++ /dev/null @@ -1,155 +0,0 @@ -#include -#include - -uint64_t f_u_wallace_rca4(uint64_t a, uint64_t b){ - uint8_t f_u_wallace_rca4_out = 0; - uint8_t f_u_wallace_rca4_and_2_0 = 0; - uint8_t f_u_wallace_rca4_and_1_1 = 0; - uint8_t f_u_wallace_rca4_ha0_xor0 = 0; - uint8_t f_u_wallace_rca4_ha0_and0 = 0; - uint8_t f_u_wallace_rca4_and_3_0 = 0; - uint8_t f_u_wallace_rca4_and_2_1 = 0; - uint8_t f_u_wallace_rca4_fa0_xor0 = 0; - uint8_t f_u_wallace_rca4_fa0_and0 = 0; - uint8_t f_u_wallace_rca4_fa0_xor1 = 0; - uint8_t f_u_wallace_rca4_fa0_and1 = 0; - uint8_t f_u_wallace_rca4_fa0_or0 = 0; - uint8_t f_u_wallace_rca4_and_3_1 = 0; - uint8_t f_u_wallace_rca4_and_2_2 = 0; - uint8_t f_u_wallace_rca4_fa1_xor0 = 0; - uint8_t f_u_wallace_rca4_fa1_and0 = 0; - uint8_t f_u_wallace_rca4_fa1_xor1 = 0; - uint8_t f_u_wallace_rca4_fa1_and1 = 0; - uint8_t f_u_wallace_rca4_fa1_or0 = 0; - uint8_t f_u_wallace_rca4_and_1_2 = 0; - uint8_t f_u_wallace_rca4_and_0_3 = 0; - uint8_t f_u_wallace_rca4_ha1_xor0 = 0; - uint8_t f_u_wallace_rca4_ha1_and0 = 0; - uint8_t f_u_wallace_rca4_and_1_3 = 0; - uint8_t f_u_wallace_rca4_ha2_xor0 = 0; - uint8_t f_u_wallace_rca4_ha2_and0 = 0; - uint8_t f_u_wallace_rca4_and_3_2 = 0; - uint8_t f_u_wallace_rca4_fa2_xor0 = 0; - uint8_t f_u_wallace_rca4_fa2_and0 = 0; - uint8_t f_u_wallace_rca4_fa2_xor1 = 0; - uint8_t f_u_wallace_rca4_fa2_and1 = 0; - uint8_t f_u_wallace_rca4_fa2_or0 = 0; - uint8_t f_u_wallace_rca4_and_0_0 = 0; - uint8_t f_u_wallace_rca4_and_1_0 = 0; - uint8_t f_u_wallace_rca4_and_0_2 = 0; - uint8_t f_u_wallace_rca4_and_2_3 = 0; - uint8_t f_u_wallace_rca4_and_0_1 = 0; - uint8_t f_u_wallace_rca4_and_3_3 = 0; - uint8_t f_u_wallace_rca4_u_rca6_ha_xor0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_ha_and0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa1_xor0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa1_and0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa1_xor1 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa1_and1 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa1_or0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa2_xor0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa2_and0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa2_xor1 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa2_and1 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa2_or0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa3_xor0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa3_and0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa3_xor1 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa3_and1 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa3_or0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa4_xor0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa4_and0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa4_xor1 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa4_and1 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa4_or0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa5_xor0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa5_and0 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa5_xor1 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa5_and1 = 0; - uint8_t f_u_wallace_rca4_u_rca6_fa5_or0 = 0; - - f_u_wallace_rca4_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_rca4_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_rca4_ha0_xor0 = ((f_u_wallace_rca4_and_2_0 >> 0) & 0x01) ^ ((f_u_wallace_rca4_and_1_1 >> 0) & 0x01); - f_u_wallace_rca4_ha0_and0 = ((f_u_wallace_rca4_and_2_0 >> 0) & 0x01) & ((f_u_wallace_rca4_and_1_1 >> 0) & 0x01); - f_u_wallace_rca4_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_rca4_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_rca4_fa0_xor0 = ((f_u_wallace_rca4_ha0_and0 >> 0) & 0x01) ^ ((f_u_wallace_rca4_and_3_0 >> 0) & 0x01); - f_u_wallace_rca4_fa0_and0 = ((f_u_wallace_rca4_ha0_and0 >> 0) & 0x01) & ((f_u_wallace_rca4_and_3_0 >> 0) & 0x01); - f_u_wallace_rca4_fa0_xor1 = ((f_u_wallace_rca4_fa0_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca4_and_2_1 >> 0) & 0x01); - f_u_wallace_rca4_fa0_and1 = ((f_u_wallace_rca4_fa0_xor0 >> 0) & 0x01) & ((f_u_wallace_rca4_and_2_1 >> 0) & 0x01); - f_u_wallace_rca4_fa0_or0 = ((f_u_wallace_rca4_fa0_and0 >> 0) & 0x01) | ((f_u_wallace_rca4_fa0_and1 >> 0) & 0x01); - f_u_wallace_rca4_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_rca4_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_rca4_fa1_xor0 = ((f_u_wallace_rca4_fa0_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca4_and_3_1 >> 0) & 0x01); - f_u_wallace_rca4_fa1_and0 = ((f_u_wallace_rca4_fa0_or0 >> 0) & 0x01) & ((f_u_wallace_rca4_and_3_1 >> 0) & 0x01); - f_u_wallace_rca4_fa1_xor1 = ((f_u_wallace_rca4_fa1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca4_and_2_2 >> 0) & 0x01); - f_u_wallace_rca4_fa1_and1 = ((f_u_wallace_rca4_fa1_xor0 >> 0) & 0x01) & ((f_u_wallace_rca4_and_2_2 >> 0) & 0x01); - f_u_wallace_rca4_fa1_or0 = ((f_u_wallace_rca4_fa1_and0 >> 0) & 0x01) | ((f_u_wallace_rca4_fa1_and1 >> 0) & 0x01); - f_u_wallace_rca4_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_rca4_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_rca4_ha1_xor0 = ((f_u_wallace_rca4_and_1_2 >> 0) & 0x01) ^ ((f_u_wallace_rca4_and_0_3 >> 0) & 0x01); - f_u_wallace_rca4_ha1_and0 = ((f_u_wallace_rca4_and_1_2 >> 0) & 0x01) & ((f_u_wallace_rca4_and_0_3 >> 0) & 0x01); - f_u_wallace_rca4_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_rca4_ha2_xor0 = ((f_u_wallace_rca4_ha1_and0 >> 0) & 0x01) ^ ((f_u_wallace_rca4_and_1_3 >> 0) & 0x01); - f_u_wallace_rca4_ha2_and0 = ((f_u_wallace_rca4_ha1_and0 >> 0) & 0x01) & ((f_u_wallace_rca4_and_1_3 >> 0) & 0x01); - f_u_wallace_rca4_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_rca4_fa2_xor0 = ((f_u_wallace_rca4_ha2_and0 >> 0) & 0x01) ^ ((f_u_wallace_rca4_fa1_or0 >> 0) & 0x01); - f_u_wallace_rca4_fa2_and0 = ((f_u_wallace_rca4_ha2_and0 >> 0) & 0x01) & ((f_u_wallace_rca4_fa1_or0 >> 0) & 0x01); - f_u_wallace_rca4_fa2_xor1 = ((f_u_wallace_rca4_fa2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca4_and_3_2 >> 0) & 0x01); - f_u_wallace_rca4_fa2_and1 = ((f_u_wallace_rca4_fa2_xor0 >> 0) & 0x01) & ((f_u_wallace_rca4_and_3_2 >> 0) & 0x01); - f_u_wallace_rca4_fa2_or0 = ((f_u_wallace_rca4_fa2_and0 >> 0) & 0x01) | ((f_u_wallace_rca4_fa2_and1 >> 0) & 0x01); - f_u_wallace_rca4_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_rca4_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_rca4_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_rca4_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_rca4_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_rca4_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_rca4_u_rca6_ha_xor0 = ((f_u_wallace_rca4_and_1_0 >> 0) & 0x01) ^ ((f_u_wallace_rca4_and_0_1 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_ha_and0 = ((f_u_wallace_rca4_and_1_0 >> 0) & 0x01) & ((f_u_wallace_rca4_and_0_1 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa1_xor0 = ((f_u_wallace_rca4_and_0_2 >> 0) & 0x01) ^ ((f_u_wallace_rca4_ha0_xor0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa1_and0 = ((f_u_wallace_rca4_and_0_2 >> 0) & 0x01) & ((f_u_wallace_rca4_ha0_xor0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa1_xor1 = ((f_u_wallace_rca4_u_rca6_fa1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca4_u_rca6_ha_and0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa1_and1 = ((f_u_wallace_rca4_u_rca6_fa1_xor0 >> 0) & 0x01) & ((f_u_wallace_rca4_u_rca6_ha_and0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa1_or0 = ((f_u_wallace_rca4_u_rca6_fa1_and0 >> 0) & 0x01) | ((f_u_wallace_rca4_u_rca6_fa1_and1 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa2_xor0 = ((f_u_wallace_rca4_fa0_xor1 >> 0) & 0x01) ^ ((f_u_wallace_rca4_ha1_xor0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa2_and0 = ((f_u_wallace_rca4_fa0_xor1 >> 0) & 0x01) & ((f_u_wallace_rca4_ha1_xor0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa2_xor1 = ((f_u_wallace_rca4_u_rca6_fa2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca4_u_rca6_fa1_or0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa2_and1 = ((f_u_wallace_rca4_u_rca6_fa2_xor0 >> 0) & 0x01) & ((f_u_wallace_rca4_u_rca6_fa1_or0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa2_or0 = ((f_u_wallace_rca4_u_rca6_fa2_and0 >> 0) & 0x01) | ((f_u_wallace_rca4_u_rca6_fa2_and1 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa3_xor0 = ((f_u_wallace_rca4_fa1_xor1 >> 0) & 0x01) ^ ((f_u_wallace_rca4_ha2_xor0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa3_and0 = ((f_u_wallace_rca4_fa1_xor1 >> 0) & 0x01) & ((f_u_wallace_rca4_ha2_xor0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa3_xor1 = ((f_u_wallace_rca4_u_rca6_fa3_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca4_u_rca6_fa2_or0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa3_and1 = ((f_u_wallace_rca4_u_rca6_fa3_xor0 >> 0) & 0x01) & ((f_u_wallace_rca4_u_rca6_fa2_or0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa3_or0 = ((f_u_wallace_rca4_u_rca6_fa3_and0 >> 0) & 0x01) | ((f_u_wallace_rca4_u_rca6_fa3_and1 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa4_xor0 = ((f_u_wallace_rca4_and_2_3 >> 0) & 0x01) ^ ((f_u_wallace_rca4_fa2_xor1 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa4_and0 = ((f_u_wallace_rca4_and_2_3 >> 0) & 0x01) & ((f_u_wallace_rca4_fa2_xor1 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa4_xor1 = ((f_u_wallace_rca4_u_rca6_fa4_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca4_u_rca6_fa3_or0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa4_and1 = ((f_u_wallace_rca4_u_rca6_fa4_xor0 >> 0) & 0x01) & ((f_u_wallace_rca4_u_rca6_fa3_or0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa4_or0 = ((f_u_wallace_rca4_u_rca6_fa4_and0 >> 0) & 0x01) | ((f_u_wallace_rca4_u_rca6_fa4_and1 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa5_xor0 = ((f_u_wallace_rca4_fa2_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca4_and_3_3 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa5_and0 = ((f_u_wallace_rca4_fa2_or0 >> 0) & 0x01) & ((f_u_wallace_rca4_and_3_3 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa5_xor1 = ((f_u_wallace_rca4_u_rca6_fa5_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca4_u_rca6_fa4_or0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa5_and1 = ((f_u_wallace_rca4_u_rca6_fa5_xor0 >> 0) & 0x01) & ((f_u_wallace_rca4_u_rca6_fa4_or0 >> 0) & 0x01); - f_u_wallace_rca4_u_rca6_fa5_or0 = ((f_u_wallace_rca4_u_rca6_fa5_and0 >> 0) & 0x01) | ((f_u_wallace_rca4_u_rca6_fa5_and1 >> 0) & 0x01); - - f_u_wallace_rca4_out |= ((f_u_wallace_rca4_and_0_0 >> 0) & 0x01) << 0; - f_u_wallace_rca4_out |= ((f_u_wallace_rca4_u_rca6_ha_xor0 >> 0) & 0x01) << 1; - f_u_wallace_rca4_out |= ((f_u_wallace_rca4_u_rca6_fa1_xor1 >> 0) & 0x01) << 2; - f_u_wallace_rca4_out |= ((f_u_wallace_rca4_u_rca6_fa2_xor1 >> 0) & 0x01) << 3; - f_u_wallace_rca4_out |= ((f_u_wallace_rca4_u_rca6_fa3_xor1 >> 0) & 0x01) << 4; - f_u_wallace_rca4_out |= ((f_u_wallace_rca4_u_rca6_fa4_xor1 >> 0) & 0x01) << 5; - f_u_wallace_rca4_out |= ((f_u_wallace_rca4_u_rca6_fa5_xor1 >> 0) & 0x01) << 6; - f_u_wallace_rca4_out |= ((f_u_wallace_rca4_u_rca6_fa5_or0 >> 0) & 0x01) << 7; - return f_u_wallace_rca4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == f_u_wallace_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_rca8.c b/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_rca8.c deleted file mode 100644 index b5dee7f..0000000 --- a/c_circuits_simulation_tests/c_circuits/flat/multipliers/f_u_wallace_rca8.c +++ /dev/null @@ -1,675 +0,0 @@ -#include -#include - -uint64_t f_u_wallace_rca8(uint64_t a, uint64_t b){ - uint64_t f_u_wallace_rca8_out = 0; - uint8_t f_u_wallace_rca8_and_2_0 = 0; - uint8_t f_u_wallace_rca8_and_1_1 = 0; - uint8_t f_u_wallace_rca8_ha0_xor0 = 0; - uint8_t f_u_wallace_rca8_ha0_and0 = 0; - uint8_t f_u_wallace_rca8_and_3_0 = 0; - uint8_t f_u_wallace_rca8_and_2_1 = 0; - uint8_t f_u_wallace_rca8_fa0_xor0 = 0; - uint8_t f_u_wallace_rca8_fa0_and0 = 0; - uint8_t f_u_wallace_rca8_fa0_xor1 = 0; - uint8_t f_u_wallace_rca8_fa0_and1 = 0; - uint8_t f_u_wallace_rca8_fa0_or0 = 0; - uint8_t f_u_wallace_rca8_and_4_0 = 0; - uint8_t f_u_wallace_rca8_and_3_1 = 0; - uint8_t f_u_wallace_rca8_fa1_xor0 = 0; - uint8_t f_u_wallace_rca8_fa1_and0 = 0; - uint8_t f_u_wallace_rca8_fa1_xor1 = 0; - uint8_t f_u_wallace_rca8_fa1_and1 = 0; - uint8_t f_u_wallace_rca8_fa1_or0 = 0; - uint8_t f_u_wallace_rca8_and_5_0 = 0; - uint8_t f_u_wallace_rca8_and_4_1 = 0; - uint8_t f_u_wallace_rca8_fa2_xor0 = 0; - uint8_t f_u_wallace_rca8_fa2_and0 = 0; - uint8_t f_u_wallace_rca8_fa2_xor1 = 0; - uint8_t f_u_wallace_rca8_fa2_and1 = 0; - uint8_t f_u_wallace_rca8_fa2_or0 = 0; - uint8_t f_u_wallace_rca8_and_6_0 = 0; - uint8_t f_u_wallace_rca8_and_5_1 = 0; - uint8_t f_u_wallace_rca8_fa3_xor0 = 0; - uint8_t f_u_wallace_rca8_fa3_and0 = 0; - uint8_t f_u_wallace_rca8_fa3_xor1 = 0; - uint8_t f_u_wallace_rca8_fa3_and1 = 0; - uint8_t f_u_wallace_rca8_fa3_or0 = 0; - uint8_t f_u_wallace_rca8_and_7_0 = 0; - uint8_t f_u_wallace_rca8_and_6_1 = 0; - uint8_t f_u_wallace_rca8_fa4_xor0 = 0; - uint8_t f_u_wallace_rca8_fa4_and0 = 0; - uint8_t f_u_wallace_rca8_fa4_xor1 = 0; - uint8_t f_u_wallace_rca8_fa4_and1 = 0; - uint8_t f_u_wallace_rca8_fa4_or0 = 0; - uint8_t f_u_wallace_rca8_and_7_1 = 0; - uint8_t f_u_wallace_rca8_and_6_2 = 0; - uint8_t f_u_wallace_rca8_fa5_xor0 = 0; - uint8_t f_u_wallace_rca8_fa5_and0 = 0; - uint8_t f_u_wallace_rca8_fa5_xor1 = 0; - uint8_t f_u_wallace_rca8_fa5_and1 = 0; - uint8_t f_u_wallace_rca8_fa5_or0 = 0; - uint8_t f_u_wallace_rca8_and_7_2 = 0; - uint8_t f_u_wallace_rca8_and_6_3 = 0; - uint8_t f_u_wallace_rca8_fa6_xor0 = 0; - uint8_t f_u_wallace_rca8_fa6_and0 = 0; - uint8_t f_u_wallace_rca8_fa6_xor1 = 0; - uint8_t f_u_wallace_rca8_fa6_and1 = 0; - uint8_t f_u_wallace_rca8_fa6_or0 = 0; - uint8_t f_u_wallace_rca8_and_7_3 = 0; - uint8_t f_u_wallace_rca8_and_6_4 = 0; - uint8_t f_u_wallace_rca8_fa7_xor0 = 0; - uint8_t f_u_wallace_rca8_fa7_and0 = 0; - uint8_t f_u_wallace_rca8_fa7_xor1 = 0; - uint8_t f_u_wallace_rca8_fa7_and1 = 0; - uint8_t f_u_wallace_rca8_fa7_or0 = 0; - uint8_t f_u_wallace_rca8_and_7_4 = 0; - uint8_t f_u_wallace_rca8_and_6_5 = 0; - uint8_t f_u_wallace_rca8_fa8_xor0 = 0; - uint8_t f_u_wallace_rca8_fa8_and0 = 0; - uint8_t f_u_wallace_rca8_fa8_xor1 = 0; - uint8_t f_u_wallace_rca8_fa8_and1 = 0; - uint8_t f_u_wallace_rca8_fa8_or0 = 0; - uint8_t f_u_wallace_rca8_and_7_5 = 0; - uint8_t f_u_wallace_rca8_and_6_6 = 0; - uint8_t f_u_wallace_rca8_fa9_xor0 = 0; - uint8_t f_u_wallace_rca8_fa9_and0 = 0; - uint8_t f_u_wallace_rca8_fa9_xor1 = 0; - uint8_t f_u_wallace_rca8_fa9_and1 = 0; - uint8_t f_u_wallace_rca8_fa9_or0 = 0; - uint8_t f_u_wallace_rca8_and_1_2 = 0; - uint8_t f_u_wallace_rca8_and_0_3 = 0; - uint8_t f_u_wallace_rca8_ha1_xor0 = 0; - uint8_t f_u_wallace_rca8_ha1_and0 = 0; - uint8_t f_u_wallace_rca8_and_2_2 = 0; - uint8_t f_u_wallace_rca8_and_1_3 = 0; - uint8_t f_u_wallace_rca8_fa10_xor0 = 0; - uint8_t f_u_wallace_rca8_fa10_and0 = 0; - uint8_t f_u_wallace_rca8_fa10_xor1 = 0; - uint8_t f_u_wallace_rca8_fa10_and1 = 0; - uint8_t f_u_wallace_rca8_fa10_or0 = 0; - uint8_t f_u_wallace_rca8_and_3_2 = 0; - uint8_t f_u_wallace_rca8_and_2_3 = 0; - uint8_t f_u_wallace_rca8_fa11_xor0 = 0; - uint8_t f_u_wallace_rca8_fa11_and0 = 0; - uint8_t f_u_wallace_rca8_fa11_xor1 = 0; - uint8_t f_u_wallace_rca8_fa11_and1 = 0; - uint8_t f_u_wallace_rca8_fa11_or0 = 0; - uint8_t f_u_wallace_rca8_and_4_2 = 0; - uint8_t f_u_wallace_rca8_and_3_3 = 0; - uint8_t f_u_wallace_rca8_fa12_xor0 = 0; - uint8_t f_u_wallace_rca8_fa12_and0 = 0; - uint8_t f_u_wallace_rca8_fa12_xor1 = 0; - uint8_t f_u_wallace_rca8_fa12_and1 = 0; - uint8_t f_u_wallace_rca8_fa12_or0 = 0; - uint8_t f_u_wallace_rca8_and_5_2 = 0; - uint8_t f_u_wallace_rca8_and_4_3 = 0; - uint8_t f_u_wallace_rca8_fa13_xor0 = 0; - uint8_t f_u_wallace_rca8_fa13_and0 = 0; - uint8_t f_u_wallace_rca8_fa13_xor1 = 0; - uint8_t f_u_wallace_rca8_fa13_and1 = 0; - uint8_t f_u_wallace_rca8_fa13_or0 = 0; - uint8_t f_u_wallace_rca8_and_5_3 = 0; - uint8_t f_u_wallace_rca8_and_4_4 = 0; - uint8_t f_u_wallace_rca8_fa14_xor0 = 0; - uint8_t f_u_wallace_rca8_fa14_and0 = 0; - uint8_t f_u_wallace_rca8_fa14_xor1 = 0; - uint8_t f_u_wallace_rca8_fa14_and1 = 0; - uint8_t f_u_wallace_rca8_fa14_or0 = 0; - uint8_t f_u_wallace_rca8_and_5_4 = 0; - uint8_t f_u_wallace_rca8_and_4_5 = 0; - uint8_t f_u_wallace_rca8_fa15_xor0 = 0; - uint8_t f_u_wallace_rca8_fa15_and0 = 0; - uint8_t f_u_wallace_rca8_fa15_xor1 = 0; - uint8_t f_u_wallace_rca8_fa15_and1 = 0; - uint8_t f_u_wallace_rca8_fa15_or0 = 0; - uint8_t f_u_wallace_rca8_and_5_5 = 0; - uint8_t f_u_wallace_rca8_and_4_6 = 0; - uint8_t f_u_wallace_rca8_fa16_xor0 = 0; - uint8_t f_u_wallace_rca8_fa16_and0 = 0; - uint8_t f_u_wallace_rca8_fa16_xor1 = 0; - uint8_t f_u_wallace_rca8_fa16_and1 = 0; - uint8_t f_u_wallace_rca8_fa16_or0 = 0; - uint8_t f_u_wallace_rca8_and_5_6 = 0; - uint8_t f_u_wallace_rca8_and_4_7 = 0; - uint8_t f_u_wallace_rca8_fa17_xor0 = 0; - uint8_t f_u_wallace_rca8_fa17_and0 = 0; - uint8_t f_u_wallace_rca8_fa17_xor1 = 0; - uint8_t f_u_wallace_rca8_fa17_and1 = 0; - uint8_t f_u_wallace_rca8_fa17_or0 = 0; - uint8_t f_u_wallace_rca8_and_0_4 = 0; - uint8_t f_u_wallace_rca8_ha2_xor0 = 0; - uint8_t f_u_wallace_rca8_ha2_and0 = 0; - uint8_t f_u_wallace_rca8_and_1_4 = 0; - uint8_t f_u_wallace_rca8_and_0_5 = 0; - uint8_t f_u_wallace_rca8_fa18_xor0 = 0; - uint8_t f_u_wallace_rca8_fa18_and0 = 0; - uint8_t f_u_wallace_rca8_fa18_xor1 = 0; - uint8_t f_u_wallace_rca8_fa18_and1 = 0; - uint8_t f_u_wallace_rca8_fa18_or0 = 0; - uint8_t f_u_wallace_rca8_and_2_4 = 0; - uint8_t f_u_wallace_rca8_and_1_5 = 0; - uint8_t f_u_wallace_rca8_fa19_xor0 = 0; - uint8_t f_u_wallace_rca8_fa19_and0 = 0; - uint8_t f_u_wallace_rca8_fa19_xor1 = 0; - uint8_t f_u_wallace_rca8_fa19_and1 = 0; - uint8_t f_u_wallace_rca8_fa19_or0 = 0; - uint8_t f_u_wallace_rca8_and_3_4 = 0; - uint8_t f_u_wallace_rca8_and_2_5 = 0; - uint8_t f_u_wallace_rca8_fa20_xor0 = 0; - uint8_t f_u_wallace_rca8_fa20_and0 = 0; - uint8_t f_u_wallace_rca8_fa20_xor1 = 0; - uint8_t f_u_wallace_rca8_fa20_and1 = 0; - uint8_t f_u_wallace_rca8_fa20_or0 = 0; - uint8_t f_u_wallace_rca8_and_3_5 = 0; - uint8_t f_u_wallace_rca8_and_2_6 = 0; - uint8_t f_u_wallace_rca8_fa21_xor0 = 0; - uint8_t f_u_wallace_rca8_fa21_and0 = 0; - uint8_t f_u_wallace_rca8_fa21_xor1 = 0; - uint8_t f_u_wallace_rca8_fa21_and1 = 0; - uint8_t f_u_wallace_rca8_fa21_or0 = 0; - uint8_t f_u_wallace_rca8_and_3_6 = 0; - uint8_t f_u_wallace_rca8_and_2_7 = 0; - uint8_t f_u_wallace_rca8_fa22_xor0 = 0; - uint8_t f_u_wallace_rca8_fa22_and0 = 0; - uint8_t f_u_wallace_rca8_fa22_xor1 = 0; - uint8_t f_u_wallace_rca8_fa22_and1 = 0; - uint8_t f_u_wallace_rca8_fa22_or0 = 0; - uint8_t f_u_wallace_rca8_and_3_7 = 0; - uint8_t f_u_wallace_rca8_fa23_xor0 = 0; - uint8_t f_u_wallace_rca8_fa23_and0 = 0; - uint8_t f_u_wallace_rca8_fa23_xor1 = 0; - uint8_t f_u_wallace_rca8_fa23_and1 = 0; - uint8_t f_u_wallace_rca8_fa23_or0 = 0; - uint8_t f_u_wallace_rca8_ha3_xor0 = 0; - uint8_t f_u_wallace_rca8_ha3_and0 = 0; - uint8_t f_u_wallace_rca8_and_0_6 = 0; - uint8_t f_u_wallace_rca8_fa24_xor0 = 0; - uint8_t f_u_wallace_rca8_fa24_and0 = 0; - uint8_t f_u_wallace_rca8_fa24_xor1 = 0; - uint8_t f_u_wallace_rca8_fa24_and1 = 0; - uint8_t f_u_wallace_rca8_fa24_or0 = 0; - uint8_t f_u_wallace_rca8_and_1_6 = 0; - uint8_t f_u_wallace_rca8_and_0_7 = 0; - uint8_t f_u_wallace_rca8_fa25_xor0 = 0; - uint8_t f_u_wallace_rca8_fa25_and0 = 0; - uint8_t f_u_wallace_rca8_fa25_xor1 = 0; - uint8_t f_u_wallace_rca8_fa25_and1 = 0; - uint8_t f_u_wallace_rca8_fa25_or0 = 0; - uint8_t f_u_wallace_rca8_and_1_7 = 0; - uint8_t f_u_wallace_rca8_fa26_xor0 = 0; - uint8_t f_u_wallace_rca8_fa26_and0 = 0; - uint8_t f_u_wallace_rca8_fa26_xor1 = 0; - uint8_t f_u_wallace_rca8_fa26_and1 = 0; - uint8_t f_u_wallace_rca8_fa26_or0 = 0; - uint8_t f_u_wallace_rca8_fa27_xor0 = 0; - uint8_t f_u_wallace_rca8_fa27_and0 = 0; - uint8_t f_u_wallace_rca8_fa27_xor1 = 0; - uint8_t f_u_wallace_rca8_fa27_and1 = 0; - uint8_t f_u_wallace_rca8_fa27_or0 = 0; - uint8_t f_u_wallace_rca8_ha4_xor0 = 0; - uint8_t f_u_wallace_rca8_ha4_and0 = 0; - uint8_t f_u_wallace_rca8_fa28_xor0 = 0; - uint8_t f_u_wallace_rca8_fa28_and0 = 0; - uint8_t f_u_wallace_rca8_fa28_xor1 = 0; - uint8_t f_u_wallace_rca8_fa28_and1 = 0; - uint8_t f_u_wallace_rca8_fa28_or0 = 0; - uint8_t f_u_wallace_rca8_fa29_xor0 = 0; - uint8_t f_u_wallace_rca8_fa29_and0 = 0; - uint8_t f_u_wallace_rca8_fa29_xor1 = 0; - uint8_t f_u_wallace_rca8_fa29_and1 = 0; - uint8_t f_u_wallace_rca8_fa29_or0 = 0; - uint8_t f_u_wallace_rca8_ha5_xor0 = 0; - uint8_t f_u_wallace_rca8_ha5_and0 = 0; - uint8_t f_u_wallace_rca8_ha6_xor0 = 0; - uint8_t f_u_wallace_rca8_ha6_and0 = 0; - uint8_t f_u_wallace_rca8_fa30_xor0 = 0; - uint8_t f_u_wallace_rca8_fa30_and0 = 0; - uint8_t f_u_wallace_rca8_fa30_xor1 = 0; - uint8_t f_u_wallace_rca8_fa30_and1 = 0; - uint8_t f_u_wallace_rca8_fa30_or0 = 0; - uint8_t f_u_wallace_rca8_fa31_xor0 = 0; - uint8_t f_u_wallace_rca8_fa31_and0 = 0; - uint8_t f_u_wallace_rca8_fa31_xor1 = 0; - uint8_t f_u_wallace_rca8_fa31_and1 = 0; - uint8_t f_u_wallace_rca8_fa31_or0 = 0; - uint8_t f_u_wallace_rca8_fa32_xor0 = 0; - uint8_t f_u_wallace_rca8_fa32_and0 = 0; - uint8_t f_u_wallace_rca8_fa32_xor1 = 0; - uint8_t f_u_wallace_rca8_fa32_and1 = 0; - uint8_t f_u_wallace_rca8_fa32_or0 = 0; - uint8_t f_u_wallace_rca8_and_5_7 = 0; - uint8_t f_u_wallace_rca8_fa33_xor0 = 0; - uint8_t f_u_wallace_rca8_fa33_and0 = 0; - uint8_t f_u_wallace_rca8_fa33_xor1 = 0; - uint8_t f_u_wallace_rca8_fa33_and1 = 0; - uint8_t f_u_wallace_rca8_fa33_or0 = 0; - uint8_t f_u_wallace_rca8_and_7_6 = 0; - uint8_t f_u_wallace_rca8_fa34_xor0 = 0; - uint8_t f_u_wallace_rca8_fa34_and0 = 0; - uint8_t f_u_wallace_rca8_fa34_xor1 = 0; - uint8_t f_u_wallace_rca8_fa34_and1 = 0; - uint8_t f_u_wallace_rca8_fa34_or0 = 0; - uint8_t f_u_wallace_rca8_and_0_0 = 0; - uint8_t f_u_wallace_rca8_and_1_0 = 0; - uint8_t f_u_wallace_rca8_and_0_2 = 0; - uint8_t f_u_wallace_rca8_and_6_7 = 0; - uint8_t f_u_wallace_rca8_and_0_1 = 0; - uint8_t f_u_wallace_rca8_and_7_7 = 0; - uint8_t f_u_wallace_rca8_u_rca14_ha_xor0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_ha_and0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa1_xor0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa1_and0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa1_xor1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa1_and1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa1_or0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa2_xor0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa2_and0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa2_xor1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa2_and1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa2_or0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa3_xor0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa3_and0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa3_xor1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa3_and1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa3_or0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa4_xor0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa4_and0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa4_xor1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa4_and1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa4_or0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa5_xor0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa5_and0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa5_xor1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa5_and1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa5_or0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa6_xor0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa6_and0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa6_xor1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa6_and1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa6_or0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa7_xor0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa7_and0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa7_xor1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa7_and1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa7_or0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa8_xor0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa8_and0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa8_xor1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa8_and1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa8_or0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa9_xor0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa9_and0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa9_xor1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa9_and1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa9_or0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa10_xor0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa10_and0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa10_xor1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa10_and1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa10_or0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa11_xor0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa11_and0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa11_xor1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa11_and1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa11_or0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa12_xor0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa12_and0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa12_xor1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa12_and1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa12_or0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa13_xor0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa13_and0 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa13_xor1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa13_and1 = 0; - uint8_t f_u_wallace_rca8_u_rca14_fa13_or0 = 0; - - f_u_wallace_rca8_and_2_0 = ((a >> 2) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_rca8_and_1_1 = ((a >> 1) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_rca8_ha0_xor0 = ((f_u_wallace_rca8_and_2_0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_1_1 >> 0) & 0x01); - f_u_wallace_rca8_ha0_and0 = ((f_u_wallace_rca8_and_2_0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_1_1 >> 0) & 0x01); - f_u_wallace_rca8_and_3_0 = ((a >> 3) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_rca8_and_2_1 = ((a >> 2) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_rca8_fa0_xor0 = ((f_u_wallace_rca8_ha0_and0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_3_0 >> 0) & 0x01); - f_u_wallace_rca8_fa0_and0 = ((f_u_wallace_rca8_ha0_and0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_3_0 >> 0) & 0x01); - f_u_wallace_rca8_fa0_xor1 = ((f_u_wallace_rca8_fa0_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_2_1 >> 0) & 0x01); - f_u_wallace_rca8_fa0_and1 = ((f_u_wallace_rca8_fa0_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_2_1 >> 0) & 0x01); - f_u_wallace_rca8_fa0_or0 = ((f_u_wallace_rca8_fa0_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa0_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_4_0 = ((a >> 4) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_rca8_and_3_1 = ((a >> 3) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_rca8_fa1_xor0 = ((f_u_wallace_rca8_fa0_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_4_0 >> 0) & 0x01); - f_u_wallace_rca8_fa1_and0 = ((f_u_wallace_rca8_fa0_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_4_0 >> 0) & 0x01); - f_u_wallace_rca8_fa1_xor1 = ((f_u_wallace_rca8_fa1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_3_1 >> 0) & 0x01); - f_u_wallace_rca8_fa1_and1 = ((f_u_wallace_rca8_fa1_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_3_1 >> 0) & 0x01); - f_u_wallace_rca8_fa1_or0 = ((f_u_wallace_rca8_fa1_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa1_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_5_0 = ((a >> 5) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_rca8_and_4_1 = ((a >> 4) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_rca8_fa2_xor0 = ((f_u_wallace_rca8_fa1_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_5_0 >> 0) & 0x01); - f_u_wallace_rca8_fa2_and0 = ((f_u_wallace_rca8_fa1_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_5_0 >> 0) & 0x01); - f_u_wallace_rca8_fa2_xor1 = ((f_u_wallace_rca8_fa2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_4_1 >> 0) & 0x01); - f_u_wallace_rca8_fa2_and1 = ((f_u_wallace_rca8_fa2_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_4_1 >> 0) & 0x01); - f_u_wallace_rca8_fa2_or0 = ((f_u_wallace_rca8_fa2_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa2_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_6_0 = ((a >> 6) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_rca8_and_5_1 = ((a >> 5) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_rca8_fa3_xor0 = ((f_u_wallace_rca8_fa2_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_6_0 >> 0) & 0x01); - f_u_wallace_rca8_fa3_and0 = ((f_u_wallace_rca8_fa2_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_6_0 >> 0) & 0x01); - f_u_wallace_rca8_fa3_xor1 = ((f_u_wallace_rca8_fa3_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_5_1 >> 0) & 0x01); - f_u_wallace_rca8_fa3_and1 = ((f_u_wallace_rca8_fa3_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_5_1 >> 0) & 0x01); - f_u_wallace_rca8_fa3_or0 = ((f_u_wallace_rca8_fa3_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa3_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_7_0 = ((a >> 7) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_rca8_and_6_1 = ((a >> 6) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_rca8_fa4_xor0 = ((f_u_wallace_rca8_fa3_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_7_0 >> 0) & 0x01); - f_u_wallace_rca8_fa4_and0 = ((f_u_wallace_rca8_fa3_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_7_0 >> 0) & 0x01); - f_u_wallace_rca8_fa4_xor1 = ((f_u_wallace_rca8_fa4_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_6_1 >> 0) & 0x01); - f_u_wallace_rca8_fa4_and1 = ((f_u_wallace_rca8_fa4_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_6_1 >> 0) & 0x01); - f_u_wallace_rca8_fa4_or0 = ((f_u_wallace_rca8_fa4_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa4_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_7_1 = ((a >> 7) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_rca8_and_6_2 = ((a >> 6) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_rca8_fa5_xor0 = ((f_u_wallace_rca8_fa4_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_7_1 >> 0) & 0x01); - f_u_wallace_rca8_fa5_and0 = ((f_u_wallace_rca8_fa4_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_7_1 >> 0) & 0x01); - f_u_wallace_rca8_fa5_xor1 = ((f_u_wallace_rca8_fa5_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_6_2 >> 0) & 0x01); - f_u_wallace_rca8_fa5_and1 = ((f_u_wallace_rca8_fa5_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_6_2 >> 0) & 0x01); - f_u_wallace_rca8_fa5_or0 = ((f_u_wallace_rca8_fa5_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa5_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_7_2 = ((a >> 7) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_rca8_and_6_3 = ((a >> 6) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_rca8_fa6_xor0 = ((f_u_wallace_rca8_fa5_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_7_2 >> 0) & 0x01); - f_u_wallace_rca8_fa6_and0 = ((f_u_wallace_rca8_fa5_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_7_2 >> 0) & 0x01); - f_u_wallace_rca8_fa6_xor1 = ((f_u_wallace_rca8_fa6_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_6_3 >> 0) & 0x01); - f_u_wallace_rca8_fa6_and1 = ((f_u_wallace_rca8_fa6_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_6_3 >> 0) & 0x01); - f_u_wallace_rca8_fa6_or0 = ((f_u_wallace_rca8_fa6_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa6_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_7_3 = ((a >> 7) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_rca8_and_6_4 = ((a >> 6) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_rca8_fa7_xor0 = ((f_u_wallace_rca8_fa6_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_7_3 >> 0) & 0x01); - f_u_wallace_rca8_fa7_and0 = ((f_u_wallace_rca8_fa6_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_7_3 >> 0) & 0x01); - f_u_wallace_rca8_fa7_xor1 = ((f_u_wallace_rca8_fa7_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_6_4 >> 0) & 0x01); - f_u_wallace_rca8_fa7_and1 = ((f_u_wallace_rca8_fa7_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_6_4 >> 0) & 0x01); - f_u_wallace_rca8_fa7_or0 = ((f_u_wallace_rca8_fa7_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa7_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_7_4 = ((a >> 7) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_rca8_and_6_5 = ((a >> 6) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_rca8_fa8_xor0 = ((f_u_wallace_rca8_fa7_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_7_4 >> 0) & 0x01); - f_u_wallace_rca8_fa8_and0 = ((f_u_wallace_rca8_fa7_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_7_4 >> 0) & 0x01); - f_u_wallace_rca8_fa8_xor1 = ((f_u_wallace_rca8_fa8_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_6_5 >> 0) & 0x01); - f_u_wallace_rca8_fa8_and1 = ((f_u_wallace_rca8_fa8_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_6_5 >> 0) & 0x01); - f_u_wallace_rca8_fa8_or0 = ((f_u_wallace_rca8_fa8_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa8_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_7_5 = ((a >> 7) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_rca8_and_6_6 = ((a >> 6) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_rca8_fa9_xor0 = ((f_u_wallace_rca8_fa8_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_7_5 >> 0) & 0x01); - f_u_wallace_rca8_fa9_and0 = ((f_u_wallace_rca8_fa8_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_7_5 >> 0) & 0x01); - f_u_wallace_rca8_fa9_xor1 = ((f_u_wallace_rca8_fa9_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_6_6 >> 0) & 0x01); - f_u_wallace_rca8_fa9_and1 = ((f_u_wallace_rca8_fa9_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_6_6 >> 0) & 0x01); - f_u_wallace_rca8_fa9_or0 = ((f_u_wallace_rca8_fa9_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa9_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_1_2 = ((a >> 1) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_rca8_and_0_3 = ((a >> 0) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_rca8_ha1_xor0 = ((f_u_wallace_rca8_and_1_2 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_0_3 >> 0) & 0x01); - f_u_wallace_rca8_ha1_and0 = ((f_u_wallace_rca8_and_1_2 >> 0) & 0x01) & ((f_u_wallace_rca8_and_0_3 >> 0) & 0x01); - f_u_wallace_rca8_and_2_2 = ((a >> 2) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_rca8_and_1_3 = ((a >> 1) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_rca8_fa10_xor0 = ((f_u_wallace_rca8_ha1_and0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_2_2 >> 0) & 0x01); - f_u_wallace_rca8_fa10_and0 = ((f_u_wallace_rca8_ha1_and0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_2_2 >> 0) & 0x01); - f_u_wallace_rca8_fa10_xor1 = ((f_u_wallace_rca8_fa10_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_1_3 >> 0) & 0x01); - f_u_wallace_rca8_fa10_and1 = ((f_u_wallace_rca8_fa10_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_1_3 >> 0) & 0x01); - f_u_wallace_rca8_fa10_or0 = ((f_u_wallace_rca8_fa10_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa10_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_3_2 = ((a >> 3) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_rca8_and_2_3 = ((a >> 2) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_rca8_fa11_xor0 = ((f_u_wallace_rca8_fa10_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_3_2 >> 0) & 0x01); - f_u_wallace_rca8_fa11_and0 = ((f_u_wallace_rca8_fa10_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_3_2 >> 0) & 0x01); - f_u_wallace_rca8_fa11_xor1 = ((f_u_wallace_rca8_fa11_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_2_3 >> 0) & 0x01); - f_u_wallace_rca8_fa11_and1 = ((f_u_wallace_rca8_fa11_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_2_3 >> 0) & 0x01); - f_u_wallace_rca8_fa11_or0 = ((f_u_wallace_rca8_fa11_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa11_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_4_2 = ((a >> 4) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_rca8_and_3_3 = ((a >> 3) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_rca8_fa12_xor0 = ((f_u_wallace_rca8_fa11_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_4_2 >> 0) & 0x01); - f_u_wallace_rca8_fa12_and0 = ((f_u_wallace_rca8_fa11_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_4_2 >> 0) & 0x01); - f_u_wallace_rca8_fa12_xor1 = ((f_u_wallace_rca8_fa12_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_3_3 >> 0) & 0x01); - f_u_wallace_rca8_fa12_and1 = ((f_u_wallace_rca8_fa12_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_3_3 >> 0) & 0x01); - f_u_wallace_rca8_fa12_or0 = ((f_u_wallace_rca8_fa12_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa12_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_5_2 = ((a >> 5) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_rca8_and_4_3 = ((a >> 4) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_rca8_fa13_xor0 = ((f_u_wallace_rca8_fa12_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_5_2 >> 0) & 0x01); - f_u_wallace_rca8_fa13_and0 = ((f_u_wallace_rca8_fa12_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_5_2 >> 0) & 0x01); - f_u_wallace_rca8_fa13_xor1 = ((f_u_wallace_rca8_fa13_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_4_3 >> 0) & 0x01); - f_u_wallace_rca8_fa13_and1 = ((f_u_wallace_rca8_fa13_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_4_3 >> 0) & 0x01); - f_u_wallace_rca8_fa13_or0 = ((f_u_wallace_rca8_fa13_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa13_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_5_3 = ((a >> 5) & 0x01) & ((b >> 3) & 0x01); - f_u_wallace_rca8_and_4_4 = ((a >> 4) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_rca8_fa14_xor0 = ((f_u_wallace_rca8_fa13_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_5_3 >> 0) & 0x01); - f_u_wallace_rca8_fa14_and0 = ((f_u_wallace_rca8_fa13_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_5_3 >> 0) & 0x01); - f_u_wallace_rca8_fa14_xor1 = ((f_u_wallace_rca8_fa14_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_4_4 >> 0) & 0x01); - f_u_wallace_rca8_fa14_and1 = ((f_u_wallace_rca8_fa14_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_4_4 >> 0) & 0x01); - f_u_wallace_rca8_fa14_or0 = ((f_u_wallace_rca8_fa14_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa14_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_5_4 = ((a >> 5) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_rca8_and_4_5 = ((a >> 4) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_rca8_fa15_xor0 = ((f_u_wallace_rca8_fa14_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_5_4 >> 0) & 0x01); - f_u_wallace_rca8_fa15_and0 = ((f_u_wallace_rca8_fa14_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_5_4 >> 0) & 0x01); - f_u_wallace_rca8_fa15_xor1 = ((f_u_wallace_rca8_fa15_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_4_5 >> 0) & 0x01); - f_u_wallace_rca8_fa15_and1 = ((f_u_wallace_rca8_fa15_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_4_5 >> 0) & 0x01); - f_u_wallace_rca8_fa15_or0 = ((f_u_wallace_rca8_fa15_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa15_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_5_5 = ((a >> 5) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_rca8_and_4_6 = ((a >> 4) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_rca8_fa16_xor0 = ((f_u_wallace_rca8_fa15_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_5_5 >> 0) & 0x01); - f_u_wallace_rca8_fa16_and0 = ((f_u_wallace_rca8_fa15_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_5_5 >> 0) & 0x01); - f_u_wallace_rca8_fa16_xor1 = ((f_u_wallace_rca8_fa16_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_4_6 >> 0) & 0x01); - f_u_wallace_rca8_fa16_and1 = ((f_u_wallace_rca8_fa16_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_4_6 >> 0) & 0x01); - f_u_wallace_rca8_fa16_or0 = ((f_u_wallace_rca8_fa16_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa16_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_5_6 = ((a >> 5) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_rca8_and_4_7 = ((a >> 4) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_rca8_fa17_xor0 = ((f_u_wallace_rca8_fa16_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_5_6 >> 0) & 0x01); - f_u_wallace_rca8_fa17_and0 = ((f_u_wallace_rca8_fa16_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_5_6 >> 0) & 0x01); - f_u_wallace_rca8_fa17_xor1 = ((f_u_wallace_rca8_fa17_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_4_7 >> 0) & 0x01); - f_u_wallace_rca8_fa17_and1 = ((f_u_wallace_rca8_fa17_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_4_7 >> 0) & 0x01); - f_u_wallace_rca8_fa17_or0 = ((f_u_wallace_rca8_fa17_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa17_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_0_4 = ((a >> 0) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_rca8_ha2_xor0 = ((f_u_wallace_rca8_and_0_4 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa1_xor1 >> 0) & 0x01); - f_u_wallace_rca8_ha2_and0 = ((f_u_wallace_rca8_and_0_4 >> 0) & 0x01) & ((f_u_wallace_rca8_fa1_xor1 >> 0) & 0x01); - f_u_wallace_rca8_and_1_4 = ((a >> 1) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_rca8_and_0_5 = ((a >> 0) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_rca8_fa18_xor0 = ((f_u_wallace_rca8_ha2_and0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_1_4 >> 0) & 0x01); - f_u_wallace_rca8_fa18_and0 = ((f_u_wallace_rca8_ha2_and0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_1_4 >> 0) & 0x01); - f_u_wallace_rca8_fa18_xor1 = ((f_u_wallace_rca8_fa18_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_0_5 >> 0) & 0x01); - f_u_wallace_rca8_fa18_and1 = ((f_u_wallace_rca8_fa18_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_0_5 >> 0) & 0x01); - f_u_wallace_rca8_fa18_or0 = ((f_u_wallace_rca8_fa18_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa18_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_2_4 = ((a >> 2) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_rca8_and_1_5 = ((a >> 1) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_rca8_fa19_xor0 = ((f_u_wallace_rca8_fa18_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_2_4 >> 0) & 0x01); - f_u_wallace_rca8_fa19_and0 = ((f_u_wallace_rca8_fa18_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_2_4 >> 0) & 0x01); - f_u_wallace_rca8_fa19_xor1 = ((f_u_wallace_rca8_fa19_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_1_5 >> 0) & 0x01); - f_u_wallace_rca8_fa19_and1 = ((f_u_wallace_rca8_fa19_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_1_5 >> 0) & 0x01); - f_u_wallace_rca8_fa19_or0 = ((f_u_wallace_rca8_fa19_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa19_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_3_4 = ((a >> 3) & 0x01) & ((b >> 4) & 0x01); - f_u_wallace_rca8_and_2_5 = ((a >> 2) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_rca8_fa20_xor0 = ((f_u_wallace_rca8_fa19_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_3_4 >> 0) & 0x01); - f_u_wallace_rca8_fa20_and0 = ((f_u_wallace_rca8_fa19_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_3_4 >> 0) & 0x01); - f_u_wallace_rca8_fa20_xor1 = ((f_u_wallace_rca8_fa20_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_2_5 >> 0) & 0x01); - f_u_wallace_rca8_fa20_and1 = ((f_u_wallace_rca8_fa20_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_2_5 >> 0) & 0x01); - f_u_wallace_rca8_fa20_or0 = ((f_u_wallace_rca8_fa20_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa20_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_3_5 = ((a >> 3) & 0x01) & ((b >> 5) & 0x01); - f_u_wallace_rca8_and_2_6 = ((a >> 2) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_rca8_fa21_xor0 = ((f_u_wallace_rca8_fa20_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_3_5 >> 0) & 0x01); - f_u_wallace_rca8_fa21_and0 = ((f_u_wallace_rca8_fa20_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_3_5 >> 0) & 0x01); - f_u_wallace_rca8_fa21_xor1 = ((f_u_wallace_rca8_fa21_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_2_6 >> 0) & 0x01); - f_u_wallace_rca8_fa21_and1 = ((f_u_wallace_rca8_fa21_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_2_6 >> 0) & 0x01); - f_u_wallace_rca8_fa21_or0 = ((f_u_wallace_rca8_fa21_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa21_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_3_6 = ((a >> 3) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_rca8_and_2_7 = ((a >> 2) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_rca8_fa22_xor0 = ((f_u_wallace_rca8_fa21_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_3_6 >> 0) & 0x01); - f_u_wallace_rca8_fa22_and0 = ((f_u_wallace_rca8_fa21_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_3_6 >> 0) & 0x01); - f_u_wallace_rca8_fa22_xor1 = ((f_u_wallace_rca8_fa22_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_2_7 >> 0) & 0x01); - f_u_wallace_rca8_fa22_and1 = ((f_u_wallace_rca8_fa22_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_2_7 >> 0) & 0x01); - f_u_wallace_rca8_fa22_or0 = ((f_u_wallace_rca8_fa22_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa22_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_3_7 = ((a >> 3) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_rca8_fa23_xor0 = ((f_u_wallace_rca8_fa22_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_3_7 >> 0) & 0x01); - f_u_wallace_rca8_fa23_and0 = ((f_u_wallace_rca8_fa22_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_3_7 >> 0) & 0x01); - f_u_wallace_rca8_fa23_xor1 = ((f_u_wallace_rca8_fa23_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa7_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa23_and1 = ((f_u_wallace_rca8_fa23_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa7_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa23_or0 = ((f_u_wallace_rca8_fa23_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa23_and1 >> 0) & 0x01); - f_u_wallace_rca8_ha3_xor0 = ((f_u_wallace_rca8_fa2_xor1 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa11_xor1 >> 0) & 0x01); - f_u_wallace_rca8_ha3_and0 = ((f_u_wallace_rca8_fa2_xor1 >> 0) & 0x01) & ((f_u_wallace_rca8_fa11_xor1 >> 0) & 0x01); - f_u_wallace_rca8_and_0_6 = ((a >> 0) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_rca8_fa24_xor0 = ((f_u_wallace_rca8_ha3_and0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_0_6 >> 0) & 0x01); - f_u_wallace_rca8_fa24_and0 = ((f_u_wallace_rca8_ha3_and0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_0_6 >> 0) & 0x01); - f_u_wallace_rca8_fa24_xor1 = ((f_u_wallace_rca8_fa24_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa3_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa24_and1 = ((f_u_wallace_rca8_fa24_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa3_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa24_or0 = ((f_u_wallace_rca8_fa24_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa24_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_1_6 = ((a >> 1) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_rca8_and_0_7 = ((a >> 0) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_rca8_fa25_xor0 = ((f_u_wallace_rca8_fa24_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_1_6 >> 0) & 0x01); - f_u_wallace_rca8_fa25_and0 = ((f_u_wallace_rca8_fa24_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_1_6 >> 0) & 0x01); - f_u_wallace_rca8_fa25_xor1 = ((f_u_wallace_rca8_fa25_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_0_7 >> 0) & 0x01); - f_u_wallace_rca8_fa25_and1 = ((f_u_wallace_rca8_fa25_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_0_7 >> 0) & 0x01); - f_u_wallace_rca8_fa25_or0 = ((f_u_wallace_rca8_fa25_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa25_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_1_7 = ((a >> 1) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_rca8_fa26_xor0 = ((f_u_wallace_rca8_fa25_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_1_7 >> 0) & 0x01); - f_u_wallace_rca8_fa26_and0 = ((f_u_wallace_rca8_fa25_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_1_7 >> 0) & 0x01); - f_u_wallace_rca8_fa26_xor1 = ((f_u_wallace_rca8_fa26_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa5_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa26_and1 = ((f_u_wallace_rca8_fa26_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa5_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa26_or0 = ((f_u_wallace_rca8_fa26_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa26_and1 >> 0) & 0x01); - f_u_wallace_rca8_fa27_xor0 = ((f_u_wallace_rca8_fa26_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa6_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa27_and0 = ((f_u_wallace_rca8_fa26_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa6_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa27_xor1 = ((f_u_wallace_rca8_fa27_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa15_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa27_and1 = ((f_u_wallace_rca8_fa27_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa15_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa27_or0 = ((f_u_wallace_rca8_fa27_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa27_and1 >> 0) & 0x01); - f_u_wallace_rca8_ha4_xor0 = ((f_u_wallace_rca8_fa12_xor1 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa19_xor1 >> 0) & 0x01); - f_u_wallace_rca8_ha4_and0 = ((f_u_wallace_rca8_fa12_xor1 >> 0) & 0x01) & ((f_u_wallace_rca8_fa19_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa28_xor0 = ((f_u_wallace_rca8_ha4_and0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa4_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa28_and0 = ((f_u_wallace_rca8_ha4_and0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa4_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa28_xor1 = ((f_u_wallace_rca8_fa28_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa13_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa28_and1 = ((f_u_wallace_rca8_fa28_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa13_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa28_or0 = ((f_u_wallace_rca8_fa28_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa28_and1 >> 0) & 0x01); - f_u_wallace_rca8_fa29_xor0 = ((f_u_wallace_rca8_fa28_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa14_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa29_and0 = ((f_u_wallace_rca8_fa28_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa14_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa29_xor1 = ((f_u_wallace_rca8_fa29_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa21_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa29_and1 = ((f_u_wallace_rca8_fa29_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa21_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa29_or0 = ((f_u_wallace_rca8_fa29_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa29_and1 >> 0) & 0x01); - f_u_wallace_rca8_ha5_xor0 = ((f_u_wallace_rca8_fa20_xor1 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa25_xor1 >> 0) & 0x01); - f_u_wallace_rca8_ha5_and0 = ((f_u_wallace_rca8_fa20_xor1 >> 0) & 0x01) & ((f_u_wallace_rca8_fa25_xor1 >> 0) & 0x01); - f_u_wallace_rca8_ha6_xor0 = ((f_u_wallace_rca8_ha5_and0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa26_xor1 >> 0) & 0x01); - f_u_wallace_rca8_ha6_and0 = ((f_u_wallace_rca8_ha5_and0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa26_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa30_xor0 = ((f_u_wallace_rca8_ha6_and0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa29_or0 >> 0) & 0x01); - f_u_wallace_rca8_fa30_and0 = ((f_u_wallace_rca8_ha6_and0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa29_or0 >> 0) & 0x01); - f_u_wallace_rca8_fa30_xor1 = ((f_u_wallace_rca8_fa30_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa22_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa30_and1 = ((f_u_wallace_rca8_fa30_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa22_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa30_or0 = ((f_u_wallace_rca8_fa30_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa30_and1 >> 0) & 0x01); - f_u_wallace_rca8_fa31_xor0 = ((f_u_wallace_rca8_fa30_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa27_or0 >> 0) & 0x01); - f_u_wallace_rca8_fa31_and0 = ((f_u_wallace_rca8_fa30_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa27_or0 >> 0) & 0x01); - f_u_wallace_rca8_fa31_xor1 = ((f_u_wallace_rca8_fa31_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa16_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa31_and1 = ((f_u_wallace_rca8_fa31_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa16_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa31_or0 = ((f_u_wallace_rca8_fa31_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa31_and1 >> 0) & 0x01); - f_u_wallace_rca8_fa32_xor0 = ((f_u_wallace_rca8_fa31_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa23_or0 >> 0) & 0x01); - f_u_wallace_rca8_fa32_and0 = ((f_u_wallace_rca8_fa31_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa23_or0 >> 0) & 0x01); - f_u_wallace_rca8_fa32_xor1 = ((f_u_wallace_rca8_fa32_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa8_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa32_and1 = ((f_u_wallace_rca8_fa32_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa8_xor1 >> 0) & 0x01); - f_u_wallace_rca8_fa32_or0 = ((f_u_wallace_rca8_fa32_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa32_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_5_7 = ((a >> 5) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_rca8_fa33_xor0 = ((f_u_wallace_rca8_fa32_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa17_or0 >> 0) & 0x01); - f_u_wallace_rca8_fa33_and0 = ((f_u_wallace_rca8_fa32_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa17_or0 >> 0) & 0x01); - f_u_wallace_rca8_fa33_xor1 = ((f_u_wallace_rca8_fa33_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_5_7 >> 0) & 0x01); - f_u_wallace_rca8_fa33_and1 = ((f_u_wallace_rca8_fa33_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_5_7 >> 0) & 0x01); - f_u_wallace_rca8_fa33_or0 = ((f_u_wallace_rca8_fa33_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa33_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_7_6 = ((a >> 7) & 0x01) & ((b >> 6) & 0x01); - f_u_wallace_rca8_fa34_xor0 = ((f_u_wallace_rca8_fa33_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa9_or0 >> 0) & 0x01); - f_u_wallace_rca8_fa34_and0 = ((f_u_wallace_rca8_fa33_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_fa9_or0 >> 0) & 0x01); - f_u_wallace_rca8_fa34_xor1 = ((f_u_wallace_rca8_fa34_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_7_6 >> 0) & 0x01); - f_u_wallace_rca8_fa34_and1 = ((f_u_wallace_rca8_fa34_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_7_6 >> 0) & 0x01); - f_u_wallace_rca8_fa34_or0 = ((f_u_wallace_rca8_fa34_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_fa34_and1 >> 0) & 0x01); - f_u_wallace_rca8_and_0_0 = ((a >> 0) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_rca8_and_1_0 = ((a >> 1) & 0x01) & ((b >> 0) & 0x01); - f_u_wallace_rca8_and_0_2 = ((a >> 0) & 0x01) & ((b >> 2) & 0x01); - f_u_wallace_rca8_and_6_7 = ((a >> 6) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_rca8_and_0_1 = ((a >> 0) & 0x01) & ((b >> 1) & 0x01); - f_u_wallace_rca8_and_7_7 = ((a >> 7) & 0x01) & ((b >> 7) & 0x01); - f_u_wallace_rca8_u_rca14_ha_xor0 = ((f_u_wallace_rca8_and_1_0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_0_1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_ha_and0 = ((f_u_wallace_rca8_and_1_0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_0_1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa1_xor0 = ((f_u_wallace_rca8_and_0_2 >> 0) & 0x01) ^ ((f_u_wallace_rca8_ha0_xor0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa1_and0 = ((f_u_wallace_rca8_and_0_2 >> 0) & 0x01) & ((f_u_wallace_rca8_ha0_xor0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa1_xor1 = ((f_u_wallace_rca8_u_rca14_fa1_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_u_rca14_ha_and0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa1_and1 = ((f_u_wallace_rca8_u_rca14_fa1_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_u_rca14_ha_and0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa1_or0 = ((f_u_wallace_rca8_u_rca14_fa1_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_u_rca14_fa1_and1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa2_xor0 = ((f_u_wallace_rca8_fa0_xor1 >> 0) & 0x01) ^ ((f_u_wallace_rca8_ha1_xor0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa2_and0 = ((f_u_wallace_rca8_fa0_xor1 >> 0) & 0x01) & ((f_u_wallace_rca8_ha1_xor0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa2_xor1 = ((f_u_wallace_rca8_u_rca14_fa2_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_u_rca14_fa1_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa2_and1 = ((f_u_wallace_rca8_u_rca14_fa2_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_u_rca14_fa1_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa2_or0 = ((f_u_wallace_rca8_u_rca14_fa2_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_u_rca14_fa2_and1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa3_xor0 = ((f_u_wallace_rca8_fa10_xor1 >> 0) & 0x01) ^ ((f_u_wallace_rca8_ha2_xor0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa3_and0 = ((f_u_wallace_rca8_fa10_xor1 >> 0) & 0x01) & ((f_u_wallace_rca8_ha2_xor0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa3_xor1 = ((f_u_wallace_rca8_u_rca14_fa3_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_u_rca14_fa2_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa3_and1 = ((f_u_wallace_rca8_u_rca14_fa3_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_u_rca14_fa2_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa3_or0 = ((f_u_wallace_rca8_u_rca14_fa3_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_u_rca14_fa3_and1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa4_xor0 = ((f_u_wallace_rca8_fa18_xor1 >> 0) & 0x01) ^ ((f_u_wallace_rca8_ha3_xor0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa4_and0 = ((f_u_wallace_rca8_fa18_xor1 >> 0) & 0x01) & ((f_u_wallace_rca8_ha3_xor0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa4_xor1 = ((f_u_wallace_rca8_u_rca14_fa4_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_u_rca14_fa3_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa4_and1 = ((f_u_wallace_rca8_u_rca14_fa4_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_u_rca14_fa3_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa4_or0 = ((f_u_wallace_rca8_u_rca14_fa4_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_u_rca14_fa4_and1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa5_xor0 = ((f_u_wallace_rca8_fa24_xor1 >> 0) & 0x01) ^ ((f_u_wallace_rca8_ha4_xor0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa5_and0 = ((f_u_wallace_rca8_fa24_xor1 >> 0) & 0x01) & ((f_u_wallace_rca8_ha4_xor0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa5_xor1 = ((f_u_wallace_rca8_u_rca14_fa5_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_u_rca14_fa4_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa5_and1 = ((f_u_wallace_rca8_u_rca14_fa5_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_u_rca14_fa4_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa5_or0 = ((f_u_wallace_rca8_u_rca14_fa5_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_u_rca14_fa5_and1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa6_xor0 = ((f_u_wallace_rca8_fa28_xor1 >> 0) & 0x01) ^ ((f_u_wallace_rca8_ha5_xor0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa6_and0 = ((f_u_wallace_rca8_fa28_xor1 >> 0) & 0x01) & ((f_u_wallace_rca8_ha5_xor0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa6_xor1 = ((f_u_wallace_rca8_u_rca14_fa6_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_u_rca14_fa5_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa6_and1 = ((f_u_wallace_rca8_u_rca14_fa6_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_u_rca14_fa5_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa6_or0 = ((f_u_wallace_rca8_u_rca14_fa6_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_u_rca14_fa6_and1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa7_xor0 = ((f_u_wallace_rca8_fa29_xor1 >> 0) & 0x01) ^ ((f_u_wallace_rca8_ha6_xor0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa7_and0 = ((f_u_wallace_rca8_fa29_xor1 >> 0) & 0x01) & ((f_u_wallace_rca8_ha6_xor0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa7_xor1 = ((f_u_wallace_rca8_u_rca14_fa7_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_u_rca14_fa6_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa7_and1 = ((f_u_wallace_rca8_u_rca14_fa7_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_u_rca14_fa6_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa7_or0 = ((f_u_wallace_rca8_u_rca14_fa7_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_u_rca14_fa7_and1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa8_xor0 = ((f_u_wallace_rca8_fa27_xor1 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa30_xor1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa8_and0 = ((f_u_wallace_rca8_fa27_xor1 >> 0) & 0x01) & ((f_u_wallace_rca8_fa30_xor1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa8_xor1 = ((f_u_wallace_rca8_u_rca14_fa8_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_u_rca14_fa7_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa8_and1 = ((f_u_wallace_rca8_u_rca14_fa8_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_u_rca14_fa7_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa8_or0 = ((f_u_wallace_rca8_u_rca14_fa8_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_u_rca14_fa8_and1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa9_xor0 = ((f_u_wallace_rca8_fa23_xor1 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa31_xor1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa9_and0 = ((f_u_wallace_rca8_fa23_xor1 >> 0) & 0x01) & ((f_u_wallace_rca8_fa31_xor1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa9_xor1 = ((f_u_wallace_rca8_u_rca14_fa9_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_u_rca14_fa8_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa9_and1 = ((f_u_wallace_rca8_u_rca14_fa9_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_u_rca14_fa8_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa9_or0 = ((f_u_wallace_rca8_u_rca14_fa9_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_u_rca14_fa9_and1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa10_xor0 = ((f_u_wallace_rca8_fa17_xor1 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa32_xor1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa10_and0 = ((f_u_wallace_rca8_fa17_xor1 >> 0) & 0x01) & ((f_u_wallace_rca8_fa32_xor1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa10_xor1 = ((f_u_wallace_rca8_u_rca14_fa10_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_u_rca14_fa9_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa10_and1 = ((f_u_wallace_rca8_u_rca14_fa10_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_u_rca14_fa9_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa10_or0 = ((f_u_wallace_rca8_u_rca14_fa10_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_u_rca14_fa10_and1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa11_xor0 = ((f_u_wallace_rca8_fa9_xor1 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa33_xor1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa11_and0 = ((f_u_wallace_rca8_fa9_xor1 >> 0) & 0x01) & ((f_u_wallace_rca8_fa33_xor1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa11_xor1 = ((f_u_wallace_rca8_u_rca14_fa11_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_u_rca14_fa10_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa11_and1 = ((f_u_wallace_rca8_u_rca14_fa11_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_u_rca14_fa10_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa11_or0 = ((f_u_wallace_rca8_u_rca14_fa11_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_u_rca14_fa11_and1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa12_xor0 = ((f_u_wallace_rca8_and_6_7 >> 0) & 0x01) ^ ((f_u_wallace_rca8_fa34_xor1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa12_and0 = ((f_u_wallace_rca8_and_6_7 >> 0) & 0x01) & ((f_u_wallace_rca8_fa34_xor1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa12_xor1 = ((f_u_wallace_rca8_u_rca14_fa12_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_u_rca14_fa11_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa12_and1 = ((f_u_wallace_rca8_u_rca14_fa12_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_u_rca14_fa11_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa12_or0 = ((f_u_wallace_rca8_u_rca14_fa12_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_u_rca14_fa12_and1 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa13_xor0 = ((f_u_wallace_rca8_fa34_or0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_and_7_7 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa13_and0 = ((f_u_wallace_rca8_fa34_or0 >> 0) & 0x01) & ((f_u_wallace_rca8_and_7_7 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa13_xor1 = ((f_u_wallace_rca8_u_rca14_fa13_xor0 >> 0) & 0x01) ^ ((f_u_wallace_rca8_u_rca14_fa12_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa13_and1 = ((f_u_wallace_rca8_u_rca14_fa13_xor0 >> 0) & 0x01) & ((f_u_wallace_rca8_u_rca14_fa12_or0 >> 0) & 0x01); - f_u_wallace_rca8_u_rca14_fa13_or0 = ((f_u_wallace_rca8_u_rca14_fa13_and0 >> 0) & 0x01) | ((f_u_wallace_rca8_u_rca14_fa13_and1 >> 0) & 0x01); - - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_and_0_0 >> 0) & 0x01) << 0; - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_u_rca14_ha_xor0 >> 0) & 0x01) << 1; - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_u_rca14_fa1_xor1 >> 0) & 0x01) << 2; - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_u_rca14_fa2_xor1 >> 0) & 0x01) << 3; - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_u_rca14_fa3_xor1 >> 0) & 0x01) << 4; - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_u_rca14_fa4_xor1 >> 0) & 0x01) << 5; - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_u_rca14_fa5_xor1 >> 0) & 0x01) << 6; - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_u_rca14_fa6_xor1 >> 0) & 0x01) << 7; - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_u_rca14_fa7_xor1 >> 0) & 0x01) << 8; - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_u_rca14_fa8_xor1 >> 0) & 0x01) << 9; - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_u_rca14_fa9_xor1 >> 0) & 0x01) << 10; - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_u_rca14_fa10_xor1 >> 0) & 0x01) << 11; - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_u_rca14_fa11_xor1 >> 0) & 0x01) << 12; - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_u_rca14_fa12_xor1 >> 0) & 0x01) << 13; - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_u_rca14_fa13_xor1 >> 0) & 0x01) << 14; - f_u_wallace_rca8_out |= ((f_u_wallace_rca8_u_rca14_fa13_or0 >> 0) & 0x01) << 15; - return f_u_wallace_rca8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == f_u_wallace_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_fa.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_fa.c deleted file mode 100644 index 43ce1d2..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_fa.c +++ /dev/null @@ -1,45 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t h_fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t h_fa_out = 0; - uint8_t h_fa_xor0 = 0; - uint8_t h_fa_and0 = 0; - uint8_t h_fa_xor1 = 0; - uint8_t h_fa_and1 = 0; - uint8_t h_fa_or0 = 0; - - h_fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_fa_xor1 = xor_gate(((h_fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - h_fa_and1 = and_gate(((h_fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - h_fa_or0 = or_gate(((h_fa_and0 >> 0) & 0x01), ((h_fa_and1 >> 0) & 0x01)); - - h_fa_out |= ((h_fa_xor1 >> 0) & 0x01) << 0; - h_fa_out |= ((h_fa_or0 >> 0) & 0x01) << 1; - return h_fa_out; -} - -#include -int main(){ - for (int i = 0; i < 2; i++){ - for (int j = 0; j < 2; j++){ - for (int k = 0; k < 2; k++){ - assert((i + j + k) == h_fa(i,j,k)); - } - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_ha.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_ha.c deleted file mode 100644 index 896b02d..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_ha.c +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t h_ha(uint8_t a, uint8_t b){ - uint8_t h_ha_out = 0; - uint8_t h_ha_xor0 = 0; - uint8_t h_ha_and0 = 0; - - h_ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - h_ha_out |= ((h_ha_xor0 >> 0) & 0x01) << 0; - h_ha_out |= ((h_ha_and0 >> 0) & 0x01) << 1; - return h_ha_out; -} - -#include -int main(){ - for (int i = 0; i < 2; i++){ - for (int j = 0; j < 2; j++){ - assert((i + j) == h_ha(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cla4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cla4.c deleted file mode 100644 index ecb0766..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cla4.c +++ /dev/null @@ -1,130 +0,0 @@ -#include -#include - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t pg_logic(uint8_t a, uint8_t b){ - uint8_t pg_logic_out = 0; - uint8_t pg_logic_or0 = 0; - uint8_t pg_logic_and0 = 0; - uint8_t pg_logic_xor0 = 0; - - pg_logic_or0 = or_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - pg_logic_out |= ((pg_logic_or0 >> 0) & 0x01) << 0; - pg_logic_out |= ((pg_logic_and0 >> 0) & 0x01) << 1; - pg_logic_out |= ((pg_logic_xor0 >> 0) & 0x01) << 2; - return pg_logic_out; -} - -int64_t h_s_cla4(int64_t a, int64_t b){ - uint8_t h_s_cla4_out = 0; - uint8_t h_s_cla4_pg_logic0_or0 = 0; - uint8_t h_s_cla4_pg_logic0_and0 = 0; - uint8_t h_s_cla4_pg_logic0_xor0 = 0; - uint8_t h_s_cla4_pg_logic1_or0 = 0; - uint8_t h_s_cla4_pg_logic1_and0 = 0; - uint8_t h_s_cla4_pg_logic1_xor0 = 0; - uint8_t h_s_cla4_xor1 = 0; - uint8_t h_s_cla4_and0 = 0; - uint8_t h_s_cla4_or0 = 0; - uint8_t h_s_cla4_pg_logic2_or0 = 0; - uint8_t h_s_cla4_pg_logic2_and0 = 0; - uint8_t h_s_cla4_pg_logic2_xor0 = 0; - uint8_t h_s_cla4_xor2 = 0; - uint8_t h_s_cla4_and1 = 0; - uint8_t h_s_cla4_and2 = 0; - uint8_t h_s_cla4_and3 = 0; - uint8_t h_s_cla4_and4 = 0; - uint8_t h_s_cla4_or1 = 0; - uint8_t h_s_cla4_or2 = 0; - uint8_t h_s_cla4_pg_logic3_or0 = 0; - uint8_t h_s_cla4_pg_logic3_and0 = 0; - uint8_t h_s_cla4_pg_logic3_xor0 = 0; - uint8_t h_s_cla4_xor3 = 0; - uint8_t h_s_cla4_and5 = 0; - uint8_t h_s_cla4_and6 = 0; - uint8_t h_s_cla4_and7 = 0; - uint8_t h_s_cla4_and8 = 0; - uint8_t h_s_cla4_and9 = 0; - uint8_t h_s_cla4_and10 = 0; - uint8_t h_s_cla4_and11 = 0; - uint8_t h_s_cla4_or3 = 0; - uint8_t h_s_cla4_or4 = 0; - uint8_t h_s_cla4_or5 = 0; - uint8_t h_s_cla4_xor4 = 0; - uint8_t h_s_cla4_xor5 = 0; - - h_s_cla4_pg_logic0_or0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - h_s_cla4_pg_logic0_and0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - h_s_cla4_pg_logic0_xor0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 2) & 0x01; - h_s_cla4_pg_logic1_or0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 0) & 0x01; - h_s_cla4_pg_logic1_and0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 1) & 0x01; - h_s_cla4_pg_logic1_xor0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 2) & 0x01; - h_s_cla4_xor1 = xor_gate(((h_s_cla4_pg_logic1_xor0 >> 0) & 0x01), ((h_s_cla4_pg_logic0_and0 >> 0) & 0x01)); - h_s_cla4_and0 = and_gate(((h_s_cla4_pg_logic0_and0 >> 0) & 0x01), ((h_s_cla4_pg_logic1_or0 >> 0) & 0x01)); - h_s_cla4_or0 = or_gate(((h_s_cla4_pg_logic1_and0 >> 0) & 0x01), ((h_s_cla4_and0 >> 0) & 0x01)); - h_s_cla4_pg_logic2_or0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 0) & 0x01; - h_s_cla4_pg_logic2_and0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 1) & 0x01; - h_s_cla4_pg_logic2_xor0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 2) & 0x01; - h_s_cla4_xor2 = xor_gate(((h_s_cla4_pg_logic2_xor0 >> 0) & 0x01), ((h_s_cla4_or0 >> 0) & 0x01)); - h_s_cla4_and1 = and_gate(((h_s_cla4_pg_logic2_or0 >> 0) & 0x01), ((h_s_cla4_pg_logic0_or0 >> 0) & 0x01)); - h_s_cla4_and2 = and_gate(((h_s_cla4_pg_logic0_and0 >> 0) & 0x01), ((h_s_cla4_pg_logic2_or0 >> 0) & 0x01)); - h_s_cla4_and3 = and_gate(((h_s_cla4_and2 >> 0) & 0x01), ((h_s_cla4_pg_logic1_or0 >> 0) & 0x01)); - h_s_cla4_and4 = and_gate(((h_s_cla4_pg_logic1_and0 >> 0) & 0x01), ((h_s_cla4_pg_logic2_or0 >> 0) & 0x01)); - h_s_cla4_or1 = or_gate(((h_s_cla4_and3 >> 0) & 0x01), ((h_s_cla4_and4 >> 0) & 0x01)); - h_s_cla4_or2 = or_gate(((h_s_cla4_pg_logic2_and0 >> 0) & 0x01), ((h_s_cla4_or1 >> 0) & 0x01)); - h_s_cla4_pg_logic3_or0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 0) & 0x01; - h_s_cla4_pg_logic3_and0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 1) & 0x01; - h_s_cla4_pg_logic3_xor0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 2) & 0x01; - h_s_cla4_xor3 = xor_gate(((h_s_cla4_pg_logic3_xor0 >> 0) & 0x01), ((h_s_cla4_or2 >> 0) & 0x01)); - h_s_cla4_and5 = and_gate(((h_s_cla4_pg_logic3_or0 >> 0) & 0x01), ((h_s_cla4_pg_logic1_or0 >> 0) & 0x01)); - h_s_cla4_and6 = and_gate(((h_s_cla4_pg_logic0_and0 >> 0) & 0x01), ((h_s_cla4_pg_logic2_or0 >> 0) & 0x01)); - h_s_cla4_and7 = and_gate(((h_s_cla4_pg_logic3_or0 >> 0) & 0x01), ((h_s_cla4_pg_logic1_or0 >> 0) & 0x01)); - h_s_cla4_and8 = and_gate(((h_s_cla4_and6 >> 0) & 0x01), ((h_s_cla4_and7 >> 0) & 0x01)); - h_s_cla4_and9 = and_gate(((h_s_cla4_pg_logic1_and0 >> 0) & 0x01), ((h_s_cla4_pg_logic3_or0 >> 0) & 0x01)); - h_s_cla4_and10 = and_gate(((h_s_cla4_and9 >> 0) & 0x01), ((h_s_cla4_pg_logic2_or0 >> 0) & 0x01)); - h_s_cla4_and11 = and_gate(((h_s_cla4_pg_logic2_and0 >> 0) & 0x01), ((h_s_cla4_pg_logic3_or0 >> 0) & 0x01)); - h_s_cla4_or3 = or_gate(((h_s_cla4_and8 >> 0) & 0x01), ((h_s_cla4_and11 >> 0) & 0x01)); - h_s_cla4_or4 = or_gate(((h_s_cla4_and10 >> 0) & 0x01), ((h_s_cla4_or3 >> 0) & 0x01)); - h_s_cla4_or5 = or_gate(((h_s_cla4_pg_logic3_and0 >> 0) & 0x01), ((h_s_cla4_or4 >> 0) & 0x01)); - h_s_cla4_xor4 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_cla4_xor5 = xor_gate(((h_s_cla4_xor4 >> 0) & 0x01), ((h_s_cla4_or5 >> 0) & 0x01)); - - h_s_cla4_out |= ((h_s_cla4_pg_logic0_xor0 >> 0) & 0x01) << 0; - h_s_cla4_out |= ((h_s_cla4_xor1 >> 0) & 0x01) << 1; - h_s_cla4_out |= ((h_s_cla4_xor2 >> 0) & 0x01) << 2; - h_s_cla4_out |= ((h_s_cla4_xor3 >> 0) & 0x01) << 3; - h_s_cla4_out |= ((h_s_cla4_xor5 >> 0) & 0x01) << 4; - return h_s_cla4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 32 + result; - } - - assert(result == (int)h_s_cla4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cla8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cla8.c deleted file mode 100644 index 6416cb7..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cla8.c +++ /dev/null @@ -1,226 +0,0 @@ -#include -#include - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t pg_logic(uint8_t a, uint8_t b){ - uint8_t pg_logic_out = 0; - uint8_t pg_logic_or0 = 0; - uint8_t pg_logic_and0 = 0; - uint8_t pg_logic_xor0 = 0; - - pg_logic_or0 = or_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - pg_logic_out |= ((pg_logic_or0 >> 0) & 0x01) << 0; - pg_logic_out |= ((pg_logic_and0 >> 0) & 0x01) << 1; - pg_logic_out |= ((pg_logic_xor0 >> 0) & 0x01) << 2; - return pg_logic_out; -} - -int64_t h_s_cla8(int64_t a, int64_t b){ - uint64_t h_s_cla8_out = 0; - uint8_t h_s_cla8_pg_logic0_or0 = 0; - uint8_t h_s_cla8_pg_logic0_and0 = 0; - uint8_t h_s_cla8_pg_logic0_xor0 = 0; - uint8_t h_s_cla8_pg_logic1_or0 = 0; - uint8_t h_s_cla8_pg_logic1_and0 = 0; - uint8_t h_s_cla8_pg_logic1_xor0 = 0; - uint8_t h_s_cla8_xor1 = 0; - uint8_t h_s_cla8_and0 = 0; - uint8_t h_s_cla8_or0 = 0; - uint8_t h_s_cla8_pg_logic2_or0 = 0; - uint8_t h_s_cla8_pg_logic2_and0 = 0; - uint8_t h_s_cla8_pg_logic2_xor0 = 0; - uint8_t h_s_cla8_xor2 = 0; - uint8_t h_s_cla8_and1 = 0; - uint8_t h_s_cla8_and2 = 0; - uint8_t h_s_cla8_and3 = 0; - uint8_t h_s_cla8_and4 = 0; - uint8_t h_s_cla8_or1 = 0; - uint8_t h_s_cla8_or2 = 0; - uint8_t h_s_cla8_pg_logic3_or0 = 0; - uint8_t h_s_cla8_pg_logic3_and0 = 0; - uint8_t h_s_cla8_pg_logic3_xor0 = 0; - uint8_t h_s_cla8_xor3 = 0; - uint8_t h_s_cla8_and5 = 0; - uint8_t h_s_cla8_and6 = 0; - uint8_t h_s_cla8_and7 = 0; - uint8_t h_s_cla8_and8 = 0; - uint8_t h_s_cla8_and9 = 0; - uint8_t h_s_cla8_and10 = 0; - uint8_t h_s_cla8_and11 = 0; - uint8_t h_s_cla8_or3 = 0; - uint8_t h_s_cla8_or4 = 0; - uint8_t h_s_cla8_or5 = 0; - uint8_t h_s_cla8_pg_logic4_or0 = 0; - uint8_t h_s_cla8_pg_logic4_and0 = 0; - uint8_t h_s_cla8_pg_logic4_xor0 = 0; - uint8_t h_s_cla8_xor4 = 0; - uint8_t h_s_cla8_and12 = 0; - uint8_t h_s_cla8_or6 = 0; - uint8_t h_s_cla8_pg_logic5_or0 = 0; - uint8_t h_s_cla8_pg_logic5_and0 = 0; - uint8_t h_s_cla8_pg_logic5_xor0 = 0; - uint8_t h_s_cla8_xor5 = 0; - uint8_t h_s_cla8_and13 = 0; - uint8_t h_s_cla8_and14 = 0; - uint8_t h_s_cla8_and15 = 0; - uint8_t h_s_cla8_or7 = 0; - uint8_t h_s_cla8_or8 = 0; - uint8_t h_s_cla8_pg_logic6_or0 = 0; - uint8_t h_s_cla8_pg_logic6_and0 = 0; - uint8_t h_s_cla8_pg_logic6_xor0 = 0; - uint8_t h_s_cla8_xor6 = 0; - uint8_t h_s_cla8_and16 = 0; - uint8_t h_s_cla8_and17 = 0; - uint8_t h_s_cla8_and18 = 0; - uint8_t h_s_cla8_and19 = 0; - uint8_t h_s_cla8_and20 = 0; - uint8_t h_s_cla8_and21 = 0; - uint8_t h_s_cla8_or9 = 0; - uint8_t h_s_cla8_or10 = 0; - uint8_t h_s_cla8_or11 = 0; - uint8_t h_s_cla8_pg_logic7_or0 = 0; - uint8_t h_s_cla8_pg_logic7_and0 = 0; - uint8_t h_s_cla8_pg_logic7_xor0 = 0; - uint8_t h_s_cla8_xor7 = 0; - uint8_t h_s_cla8_and22 = 0; - uint8_t h_s_cla8_and23 = 0; - uint8_t h_s_cla8_and24 = 0; - uint8_t h_s_cla8_and25 = 0; - uint8_t h_s_cla8_and26 = 0; - uint8_t h_s_cla8_and27 = 0; - uint8_t h_s_cla8_and28 = 0; - uint8_t h_s_cla8_and29 = 0; - uint8_t h_s_cla8_and30 = 0; - uint8_t h_s_cla8_and31 = 0; - uint8_t h_s_cla8_or12 = 0; - uint8_t h_s_cla8_or13 = 0; - uint8_t h_s_cla8_or14 = 0; - uint8_t h_s_cla8_or15 = 0; - uint8_t h_s_cla8_xor8 = 0; - uint8_t h_s_cla8_xor9 = 0; - - h_s_cla8_pg_logic0_or0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - h_s_cla8_pg_logic0_and0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - h_s_cla8_pg_logic0_xor0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 2) & 0x01; - h_s_cla8_pg_logic1_or0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 0) & 0x01; - h_s_cla8_pg_logic1_and0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 1) & 0x01; - h_s_cla8_pg_logic1_xor0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 2) & 0x01; - h_s_cla8_xor1 = xor_gate(((h_s_cla8_pg_logic1_xor0 >> 0) & 0x01), ((h_s_cla8_pg_logic0_and0 >> 0) & 0x01)); - h_s_cla8_and0 = and_gate(((h_s_cla8_pg_logic0_and0 >> 0) & 0x01), ((h_s_cla8_pg_logic1_or0 >> 0) & 0x01)); - h_s_cla8_or0 = or_gate(((h_s_cla8_pg_logic1_and0 >> 0) & 0x01), ((h_s_cla8_and0 >> 0) & 0x01)); - h_s_cla8_pg_logic2_or0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 0) & 0x01; - h_s_cla8_pg_logic2_and0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 1) & 0x01; - h_s_cla8_pg_logic2_xor0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 2) & 0x01; - h_s_cla8_xor2 = xor_gate(((h_s_cla8_pg_logic2_xor0 >> 0) & 0x01), ((h_s_cla8_or0 >> 0) & 0x01)); - h_s_cla8_and1 = and_gate(((h_s_cla8_pg_logic2_or0 >> 0) & 0x01), ((h_s_cla8_pg_logic0_or0 >> 0) & 0x01)); - h_s_cla8_and2 = and_gate(((h_s_cla8_pg_logic0_and0 >> 0) & 0x01), ((h_s_cla8_pg_logic2_or0 >> 0) & 0x01)); - h_s_cla8_and3 = and_gate(((h_s_cla8_and2 >> 0) & 0x01), ((h_s_cla8_pg_logic1_or0 >> 0) & 0x01)); - h_s_cla8_and4 = and_gate(((h_s_cla8_pg_logic1_and0 >> 0) & 0x01), ((h_s_cla8_pg_logic2_or0 >> 0) & 0x01)); - h_s_cla8_or1 = or_gate(((h_s_cla8_and3 >> 0) & 0x01), ((h_s_cla8_and4 >> 0) & 0x01)); - h_s_cla8_or2 = or_gate(((h_s_cla8_pg_logic2_and0 >> 0) & 0x01), ((h_s_cla8_or1 >> 0) & 0x01)); - h_s_cla8_pg_logic3_or0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 0) & 0x01; - h_s_cla8_pg_logic3_and0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 1) & 0x01; - h_s_cla8_pg_logic3_xor0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 2) & 0x01; - h_s_cla8_xor3 = xor_gate(((h_s_cla8_pg_logic3_xor0 >> 0) & 0x01), ((h_s_cla8_or2 >> 0) & 0x01)); - h_s_cla8_and5 = and_gate(((h_s_cla8_pg_logic3_or0 >> 0) & 0x01), ((h_s_cla8_pg_logic1_or0 >> 0) & 0x01)); - h_s_cla8_and6 = and_gate(((h_s_cla8_pg_logic0_and0 >> 0) & 0x01), ((h_s_cla8_pg_logic2_or0 >> 0) & 0x01)); - h_s_cla8_and7 = and_gate(((h_s_cla8_pg_logic3_or0 >> 0) & 0x01), ((h_s_cla8_pg_logic1_or0 >> 0) & 0x01)); - h_s_cla8_and8 = and_gate(((h_s_cla8_and6 >> 0) & 0x01), ((h_s_cla8_and7 >> 0) & 0x01)); - h_s_cla8_and9 = and_gate(((h_s_cla8_pg_logic1_and0 >> 0) & 0x01), ((h_s_cla8_pg_logic3_or0 >> 0) & 0x01)); - h_s_cla8_and10 = and_gate(((h_s_cla8_and9 >> 0) & 0x01), ((h_s_cla8_pg_logic2_or0 >> 0) & 0x01)); - h_s_cla8_and11 = and_gate(((h_s_cla8_pg_logic2_and0 >> 0) & 0x01), ((h_s_cla8_pg_logic3_or0 >> 0) & 0x01)); - h_s_cla8_or3 = or_gate(((h_s_cla8_and8 >> 0) & 0x01), ((h_s_cla8_and11 >> 0) & 0x01)); - h_s_cla8_or4 = or_gate(((h_s_cla8_and10 >> 0) & 0x01), ((h_s_cla8_or3 >> 0) & 0x01)); - h_s_cla8_or5 = or_gate(((h_s_cla8_pg_logic3_and0 >> 0) & 0x01), ((h_s_cla8_or4 >> 0) & 0x01)); - h_s_cla8_pg_logic4_or0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 0) & 0x01; - h_s_cla8_pg_logic4_and0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 1) & 0x01; - h_s_cla8_pg_logic4_xor0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 2) & 0x01; - h_s_cla8_xor4 = xor_gate(((h_s_cla8_pg_logic4_xor0 >> 0) & 0x01), ((h_s_cla8_or5 >> 0) & 0x01)); - h_s_cla8_and12 = and_gate(((h_s_cla8_or5 >> 0) & 0x01), ((h_s_cla8_pg_logic4_or0 >> 0) & 0x01)); - h_s_cla8_or6 = or_gate(((h_s_cla8_pg_logic4_and0 >> 0) & 0x01), ((h_s_cla8_and12 >> 0) & 0x01)); - h_s_cla8_pg_logic5_or0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 0) & 0x01; - h_s_cla8_pg_logic5_and0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 1) & 0x01; - h_s_cla8_pg_logic5_xor0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 2) & 0x01; - h_s_cla8_xor5 = xor_gate(((h_s_cla8_pg_logic5_xor0 >> 0) & 0x01), ((h_s_cla8_or6 >> 0) & 0x01)); - h_s_cla8_and13 = and_gate(((h_s_cla8_or5 >> 0) & 0x01), ((h_s_cla8_pg_logic5_or0 >> 0) & 0x01)); - h_s_cla8_and14 = and_gate(((h_s_cla8_and13 >> 0) & 0x01), ((h_s_cla8_pg_logic4_or0 >> 0) & 0x01)); - h_s_cla8_and15 = and_gate(((h_s_cla8_pg_logic4_and0 >> 0) & 0x01), ((h_s_cla8_pg_logic5_or0 >> 0) & 0x01)); - h_s_cla8_or7 = or_gate(((h_s_cla8_and14 >> 0) & 0x01), ((h_s_cla8_and15 >> 0) & 0x01)); - h_s_cla8_or8 = or_gate(((h_s_cla8_pg_logic5_and0 >> 0) & 0x01), ((h_s_cla8_or7 >> 0) & 0x01)); - h_s_cla8_pg_logic6_or0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 0) & 0x01; - h_s_cla8_pg_logic6_and0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 1) & 0x01; - h_s_cla8_pg_logic6_xor0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 2) & 0x01; - h_s_cla8_xor6 = xor_gate(((h_s_cla8_pg_logic6_xor0 >> 0) & 0x01), ((h_s_cla8_or8 >> 0) & 0x01)); - h_s_cla8_and16 = and_gate(((h_s_cla8_or5 >> 0) & 0x01), ((h_s_cla8_pg_logic5_or0 >> 0) & 0x01)); - h_s_cla8_and17 = and_gate(((h_s_cla8_pg_logic6_or0 >> 0) & 0x01), ((h_s_cla8_pg_logic4_or0 >> 0) & 0x01)); - h_s_cla8_and18 = and_gate(((h_s_cla8_and16 >> 0) & 0x01), ((h_s_cla8_and17 >> 0) & 0x01)); - h_s_cla8_and19 = and_gate(((h_s_cla8_pg_logic4_and0 >> 0) & 0x01), ((h_s_cla8_pg_logic6_or0 >> 0) & 0x01)); - h_s_cla8_and20 = and_gate(((h_s_cla8_and19 >> 0) & 0x01), ((h_s_cla8_pg_logic5_or0 >> 0) & 0x01)); - h_s_cla8_and21 = and_gate(((h_s_cla8_pg_logic5_and0 >> 0) & 0x01), ((h_s_cla8_pg_logic6_or0 >> 0) & 0x01)); - h_s_cla8_or9 = or_gate(((h_s_cla8_and18 >> 0) & 0x01), ((h_s_cla8_and20 >> 0) & 0x01)); - h_s_cla8_or10 = or_gate(((h_s_cla8_or9 >> 0) & 0x01), ((h_s_cla8_and21 >> 0) & 0x01)); - h_s_cla8_or11 = or_gate(((h_s_cla8_pg_logic6_and0 >> 0) & 0x01), ((h_s_cla8_or10 >> 0) & 0x01)); - h_s_cla8_pg_logic7_or0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 0) & 0x01; - h_s_cla8_pg_logic7_and0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 1) & 0x01; - h_s_cla8_pg_logic7_xor0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 2) & 0x01; - h_s_cla8_xor7 = xor_gate(((h_s_cla8_pg_logic7_xor0 >> 0) & 0x01), ((h_s_cla8_or11 >> 0) & 0x01)); - h_s_cla8_and22 = and_gate(((h_s_cla8_or5 >> 0) & 0x01), ((h_s_cla8_pg_logic6_or0 >> 0) & 0x01)); - h_s_cla8_and23 = and_gate(((h_s_cla8_pg_logic7_or0 >> 0) & 0x01), ((h_s_cla8_pg_logic5_or0 >> 0) & 0x01)); - h_s_cla8_and24 = and_gate(((h_s_cla8_and22 >> 0) & 0x01), ((h_s_cla8_and23 >> 0) & 0x01)); - h_s_cla8_and25 = and_gate(((h_s_cla8_and24 >> 0) & 0x01), ((h_s_cla8_pg_logic4_or0 >> 0) & 0x01)); - h_s_cla8_and26 = and_gate(((h_s_cla8_pg_logic4_and0 >> 0) & 0x01), ((h_s_cla8_pg_logic6_or0 >> 0) & 0x01)); - h_s_cla8_and27 = and_gate(((h_s_cla8_pg_logic7_or0 >> 0) & 0x01), ((h_s_cla8_pg_logic5_or0 >> 0) & 0x01)); - h_s_cla8_and28 = and_gate(((h_s_cla8_and26 >> 0) & 0x01), ((h_s_cla8_and27 >> 0) & 0x01)); - h_s_cla8_and29 = and_gate(((h_s_cla8_pg_logic5_and0 >> 0) & 0x01), ((h_s_cla8_pg_logic7_or0 >> 0) & 0x01)); - h_s_cla8_and30 = and_gate(((h_s_cla8_and29 >> 0) & 0x01), ((h_s_cla8_pg_logic6_or0 >> 0) & 0x01)); - h_s_cla8_and31 = and_gate(((h_s_cla8_pg_logic6_and0 >> 0) & 0x01), ((h_s_cla8_pg_logic7_or0 >> 0) & 0x01)); - h_s_cla8_or12 = or_gate(((h_s_cla8_and25 >> 0) & 0x01), ((h_s_cla8_and30 >> 0) & 0x01)); - h_s_cla8_or13 = or_gate(((h_s_cla8_and28 >> 0) & 0x01), ((h_s_cla8_and31 >> 0) & 0x01)); - h_s_cla8_or14 = or_gate(((h_s_cla8_or12 >> 0) & 0x01), ((h_s_cla8_or13 >> 0) & 0x01)); - h_s_cla8_or15 = or_gate(((h_s_cla8_pg_logic7_and0 >> 0) & 0x01), ((h_s_cla8_or14 >> 0) & 0x01)); - h_s_cla8_xor8 = xor_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_s_cla8_xor9 = xor_gate(((h_s_cla8_xor8 >> 0) & 0x01), ((h_s_cla8_or15 >> 0) & 0x01)); - - h_s_cla8_out |= ((h_s_cla8_pg_logic0_xor0 >> 0) & 0x01) << 0; - h_s_cla8_out |= ((h_s_cla8_xor1 >> 0) & 0x01) << 1; - h_s_cla8_out |= ((h_s_cla8_xor2 >> 0) & 0x01) << 2; - h_s_cla8_out |= ((h_s_cla8_xor3 >> 0) & 0x01) << 3; - h_s_cla8_out |= ((h_s_cla8_xor4 >> 0) & 0x01) << 4; - h_s_cla8_out |= ((h_s_cla8_xor5 >> 0) & 0x01) << 5; - h_s_cla8_out |= ((h_s_cla8_xor6 >> 0) & 0x01) << 6; - h_s_cla8_out |= ((h_s_cla8_xor7 >> 0) & 0x01) << 7; - h_s_cla8_out |= ((h_s_cla8_xor9 >> 0) & 0x01) << 8; - return h_s_cla8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 512 + result; - } - - assert(result == (int)h_s_cla8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cska4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cska4.c deleted file mode 100644 index dedb61f..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cska4.c +++ /dev/null @@ -1,132 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t mux2to1(uint8_t d0, uint8_t d1, uint8_t sel){ - uint8_t mux2to1_out = 0; - uint8_t mux2to1_and0 = 0; - uint8_t mux2to1_not0 = 0; - uint8_t mux2to1_and1 = 0; - uint8_t mux2to1_xor0 = 0; - - mux2to1_and0 = and_gate(((d1 >> 0) & 0x01), ((sel >> 0) & 0x01)); - mux2to1_not0 = not_gate(((sel >> 0) & 0x01)); - mux2to1_and1 = and_gate(((d0 >> 0) & 0x01), ((mux2to1_not0 >> 0) & 0x01)); - mux2to1_xor0 = xor_gate(((mux2to1_and0 >> 0) & 0x01), ((mux2to1_and1 >> 0) & 0x01)); - - mux2to1_out |= ((mux2to1_xor0 >> 0) & 0x01) << 0; - return mux2to1_out; -} - -int64_t h_s_cska4(int64_t a, int64_t b){ - uint8_t h_s_cska4_out = 0; - uint8_t h_s_cska4_xor0 = 0; - uint8_t h_s_cska4_ha0_xor0 = 0; - uint8_t h_s_cska4_ha0_and0 = 0; - uint8_t h_s_cska4_xor1 = 0; - uint8_t h_s_cska4_fa0_xor1 = 0; - uint8_t h_s_cska4_fa0_or0 = 0; - uint8_t h_s_cska4_xor2 = 0; - uint8_t h_s_cska4_fa1_xor1 = 0; - uint8_t h_s_cska4_fa1_or0 = 0; - uint8_t h_s_cska4_xor3 = 0; - uint8_t h_s_cska4_fa2_xor1 = 0; - uint8_t h_s_cska4_fa2_or0 = 0; - uint8_t h_s_cska4_and_propagate00 = 0; - uint8_t h_s_cska4_and_propagate01 = 0; - uint8_t h_s_cska4_and_propagate02 = 0; - uint8_t h_s_cska4_mux2to10_and1 = 0; - uint8_t h_s_cska4_xor4 = 0; - uint8_t h_s_cska4_xor5 = 0; - - h_s_cska4_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_cska4_ha0_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - h_s_cska4_ha0_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - h_s_cska4_xor1 = xor_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_cska4_fa0_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_s_cska4_ha0_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_cska4_fa0_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_s_cska4_ha0_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_cska4_xor2 = xor_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_cska4_fa1_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_s_cska4_fa0_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_cska4_fa1_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_s_cska4_fa0_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_cska4_xor3 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_cska4_fa2_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_s_cska4_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_cska4_fa2_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_s_cska4_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_cska4_and_propagate00 = and_gate(((h_s_cska4_xor0 >> 0) & 0x01), ((h_s_cska4_xor2 >> 0) & 0x01)); - h_s_cska4_and_propagate01 = and_gate(((h_s_cska4_xor1 >> 0) & 0x01), ((h_s_cska4_xor3 >> 0) & 0x01)); - h_s_cska4_and_propagate02 = and_gate(((h_s_cska4_and_propagate00 >> 0) & 0x01), ((h_s_cska4_and_propagate01 >> 0) & 0x01)); - h_s_cska4_mux2to10_and1 = (mux2to1(((h_s_cska4_fa2_or0 >> 0) & 0x01), (0x00), ((h_s_cska4_and_propagate02 >> 0) & 0x01)) >> 0) & 0x01; - h_s_cska4_xor4 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_cska4_xor5 = xor_gate(((h_s_cska4_xor4 >> 0) & 0x01), ((h_s_cska4_mux2to10_and1 >> 0) & 0x01)); - - h_s_cska4_out |= ((h_s_cska4_ha0_xor0 >> 0) & 0x01) << 0; - h_s_cska4_out |= ((h_s_cska4_fa0_xor1 >> 0) & 0x01) << 1; - h_s_cska4_out |= ((h_s_cska4_fa1_xor1 >> 0) & 0x01) << 2; - h_s_cska4_out |= ((h_s_cska4_fa2_xor1 >> 0) & 0x01) << 3; - h_s_cska4_out |= ((h_s_cska4_xor5 >> 0) & 0x01) << 4; - return h_s_cska4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 32 + result; - } - - assert(result == (int)h_s_cska4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cska8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cska8.c deleted file mode 100644 index d0815bd..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_cska8.c +++ /dev/null @@ -1,168 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t mux2to1(uint8_t d0, uint8_t d1, uint8_t sel){ - uint8_t mux2to1_out = 0; - uint8_t mux2to1_and0 = 0; - uint8_t mux2to1_not0 = 0; - uint8_t mux2to1_and1 = 0; - uint8_t mux2to1_xor0 = 0; - - mux2to1_and0 = and_gate(((d1 >> 0) & 0x01), ((sel >> 0) & 0x01)); - mux2to1_not0 = not_gate(((sel >> 0) & 0x01)); - mux2to1_and1 = and_gate(((d0 >> 0) & 0x01), ((mux2to1_not0 >> 0) & 0x01)); - mux2to1_xor0 = xor_gate(((mux2to1_and0 >> 0) & 0x01), ((mux2to1_and1 >> 0) & 0x01)); - - mux2to1_out |= ((mux2to1_xor0 >> 0) & 0x01) << 0; - return mux2to1_out; -} - -int64_t h_s_cska8(int64_t a, int64_t b){ - uint64_t h_s_cska8_out = 0; - uint8_t h_s_cska8_xor0 = 0; - uint8_t h_s_cska8_ha0_xor0 = 0; - uint8_t h_s_cska8_ha0_and0 = 0; - uint8_t h_s_cska8_xor1 = 0; - uint8_t h_s_cska8_fa0_xor1 = 0; - uint8_t h_s_cska8_fa0_or0 = 0; - uint8_t h_s_cska8_xor2 = 0; - uint8_t h_s_cska8_fa1_xor1 = 0; - uint8_t h_s_cska8_fa1_or0 = 0; - uint8_t h_s_cska8_xor3 = 0; - uint8_t h_s_cska8_fa2_xor1 = 0; - uint8_t h_s_cska8_fa2_or0 = 0; - uint8_t h_s_cska8_and_propagate00 = 0; - uint8_t h_s_cska8_and_propagate01 = 0; - uint8_t h_s_cska8_and_propagate02 = 0; - uint8_t h_s_cska8_mux2to10_and1 = 0; - uint8_t h_s_cska8_xor4 = 0; - uint8_t h_s_cska8_fa3_xor1 = 0; - uint8_t h_s_cska8_fa3_or0 = 0; - uint8_t h_s_cska8_xor5 = 0; - uint8_t h_s_cska8_fa4_xor1 = 0; - uint8_t h_s_cska8_fa4_or0 = 0; - uint8_t h_s_cska8_xor6 = 0; - uint8_t h_s_cska8_fa5_xor1 = 0; - uint8_t h_s_cska8_fa5_or0 = 0; - uint8_t h_s_cska8_xor7 = 0; - uint8_t h_s_cska8_fa6_xor1 = 0; - uint8_t h_s_cska8_fa6_or0 = 0; - uint8_t h_s_cska8_and_propagate13 = 0; - uint8_t h_s_cska8_and_propagate14 = 0; - uint8_t h_s_cska8_and_propagate15 = 0; - uint8_t h_s_cska8_mux2to11_xor0 = 0; - uint8_t h_s_cska8_xor8 = 0; - uint8_t h_s_cska8_xor9 = 0; - - h_s_cska8_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_cska8_ha0_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - h_s_cska8_ha0_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - h_s_cska8_xor1 = xor_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_cska8_fa0_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_s_cska8_ha0_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_cska8_fa0_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_s_cska8_ha0_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_cska8_xor2 = xor_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_cska8_fa1_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_s_cska8_fa0_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_cska8_fa1_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_s_cska8_fa0_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_cska8_xor3 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_cska8_fa2_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_s_cska8_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_cska8_fa2_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_s_cska8_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_cska8_and_propagate00 = and_gate(((h_s_cska8_xor0 >> 0) & 0x01), ((h_s_cska8_xor2 >> 0) & 0x01)); - h_s_cska8_and_propagate01 = and_gate(((h_s_cska8_xor1 >> 0) & 0x01), ((h_s_cska8_xor3 >> 0) & 0x01)); - h_s_cska8_and_propagate02 = and_gate(((h_s_cska8_and_propagate00 >> 0) & 0x01), ((h_s_cska8_and_propagate01 >> 0) & 0x01)); - h_s_cska8_mux2to10_and1 = (mux2to1(((h_s_cska8_fa2_or0 >> 0) & 0x01), (0x00), ((h_s_cska8_and_propagate02 >> 0) & 0x01)) >> 0) & 0x01; - h_s_cska8_xor4 = xor_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_s_cska8_fa3_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((h_s_cska8_mux2to10_and1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_cska8_fa3_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((h_s_cska8_mux2to10_and1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_cska8_xor5 = xor_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_s_cska8_fa4_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((h_s_cska8_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_cska8_fa4_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((h_s_cska8_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_cska8_xor6 = xor_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_s_cska8_fa5_xor1 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((h_s_cska8_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_cska8_fa5_or0 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((h_s_cska8_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_cska8_xor7 = xor_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_s_cska8_fa6_xor1 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((h_s_cska8_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_cska8_fa6_or0 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((h_s_cska8_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_cska8_and_propagate13 = and_gate(((h_s_cska8_xor4 >> 0) & 0x01), ((h_s_cska8_xor6 >> 0) & 0x01)); - h_s_cska8_and_propagate14 = and_gate(((h_s_cska8_xor5 >> 0) & 0x01), ((h_s_cska8_xor7 >> 0) & 0x01)); - h_s_cska8_and_propagate15 = and_gate(((h_s_cska8_and_propagate13 >> 0) & 0x01), ((h_s_cska8_and_propagate14 >> 0) & 0x01)); - h_s_cska8_mux2to11_xor0 = (mux2to1(((h_s_cska8_fa6_or0 >> 0) & 0x01), ((h_s_cska8_mux2to10_and1 >> 0) & 0x01), ((h_s_cska8_and_propagate15 >> 0) & 0x01)) >> 0) & 0x01; - h_s_cska8_xor8 = xor_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_s_cska8_xor9 = xor_gate(((h_s_cska8_xor8 >> 0) & 0x01), ((h_s_cska8_mux2to11_xor0 >> 0) & 0x01)); - - h_s_cska8_out |= ((h_s_cska8_ha0_xor0 >> 0) & 0x01) << 0; - h_s_cska8_out |= ((h_s_cska8_fa0_xor1 >> 0) & 0x01) << 1; - h_s_cska8_out |= ((h_s_cska8_fa1_xor1 >> 0) & 0x01) << 2; - h_s_cska8_out |= ((h_s_cska8_fa2_xor1 >> 0) & 0x01) << 3; - h_s_cska8_out |= ((h_s_cska8_fa3_xor1 >> 0) & 0x01) << 4; - h_s_cska8_out |= ((h_s_cska8_fa4_xor1 >> 0) & 0x01) << 5; - h_s_cska8_out |= ((h_s_cska8_fa5_xor1 >> 0) & 0x01) << 6; - h_s_cska8_out |= ((h_s_cska8_fa6_xor1 >> 0) & 0x01) << 7; - h_s_cska8_out |= ((h_s_cska8_xor9 >> 0) & 0x01) << 8; - return h_s_cska8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 512 + result; - } - - assert(result == (int)h_s_cska8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_pg_rca4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_pg_rca4.c deleted file mode 100644 index ee47cbc..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_pg_rca4.c +++ /dev/null @@ -1,98 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t pg_fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t pg_fa_out = 0; - uint8_t pg_fa_xor0 = 0; - uint8_t pg_fa_and0 = 0; - uint8_t pg_fa_xor1 = 0; - - pg_fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_xor1 = xor_gate(((pg_fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - - pg_fa_out |= ((pg_fa_xor0 >> 0) & 0x01) << 0; - pg_fa_out |= ((pg_fa_and0 >> 0) & 0x01) << 1; - pg_fa_out |= ((pg_fa_xor1 >> 0) & 0x01) << 2; - return pg_fa_out; -} - -int64_t h_s_pg_rca4(int64_t a, int64_t b){ - uint8_t h_s_pg_rca4_out = 0; - uint8_t h_s_pg_rca4_pg_fa0_xor0 = 0; - uint8_t h_s_pg_rca4_pg_fa0_and0 = 0; - uint8_t h_s_pg_rca4_pg_fa1_xor0 = 0; - uint8_t h_s_pg_rca4_pg_fa1_and0 = 0; - uint8_t h_s_pg_rca4_pg_fa1_xor1 = 0; - uint8_t h_s_pg_rca4_and1 = 0; - uint8_t h_s_pg_rca4_or1 = 0; - uint8_t h_s_pg_rca4_pg_fa2_xor0 = 0; - uint8_t h_s_pg_rca4_pg_fa2_and0 = 0; - uint8_t h_s_pg_rca4_pg_fa2_xor1 = 0; - uint8_t h_s_pg_rca4_and2 = 0; - uint8_t h_s_pg_rca4_or2 = 0; - uint8_t h_s_pg_rca4_pg_fa3_xor0 = 0; - uint8_t h_s_pg_rca4_pg_fa3_and0 = 0; - uint8_t h_s_pg_rca4_pg_fa3_xor1 = 0; - uint8_t h_s_pg_rca4_and3 = 0; - uint8_t h_s_pg_rca4_or3 = 0; - uint8_t h_s_pg_rca4_xor0 = 0; - uint8_t h_s_pg_rca4_xor1 = 0; - - h_s_pg_rca4_pg_fa0_xor0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_s_pg_rca4_pg_fa0_and0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_s_pg_rca4_pg_fa1_xor0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_s_pg_rca4_pg_fa0_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_pg_rca4_pg_fa1_and0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_s_pg_rca4_pg_fa0_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_pg_rca4_pg_fa1_xor1 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_s_pg_rca4_pg_fa0_and0 >> 0) & 0x01)) >> 2) & 0x01; - h_s_pg_rca4_and1 = and_gate(((h_s_pg_rca4_pg_fa0_and0 >> 0) & 0x01), ((h_s_pg_rca4_pg_fa1_xor0 >> 0) & 0x01)); - h_s_pg_rca4_or1 = or_gate(((h_s_pg_rca4_and1 >> 0) & 0x01), ((h_s_pg_rca4_pg_fa1_and0 >> 0) & 0x01)); - h_s_pg_rca4_pg_fa2_xor0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_s_pg_rca4_or1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_pg_rca4_pg_fa2_and0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_s_pg_rca4_or1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_pg_rca4_pg_fa2_xor1 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_s_pg_rca4_or1 >> 0) & 0x01)) >> 2) & 0x01; - h_s_pg_rca4_and2 = and_gate(((h_s_pg_rca4_or1 >> 0) & 0x01), ((h_s_pg_rca4_pg_fa2_xor0 >> 0) & 0x01)); - h_s_pg_rca4_or2 = or_gate(((h_s_pg_rca4_and2 >> 0) & 0x01), ((h_s_pg_rca4_pg_fa2_and0 >> 0) & 0x01)); - h_s_pg_rca4_pg_fa3_xor0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_s_pg_rca4_or2 >> 0) & 0x01)) >> 0) & 0x01; - h_s_pg_rca4_pg_fa3_and0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_s_pg_rca4_or2 >> 0) & 0x01)) >> 1) & 0x01; - h_s_pg_rca4_pg_fa3_xor1 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_s_pg_rca4_or2 >> 0) & 0x01)) >> 2) & 0x01; - h_s_pg_rca4_and3 = and_gate(((h_s_pg_rca4_or2 >> 0) & 0x01), ((h_s_pg_rca4_pg_fa3_xor0 >> 0) & 0x01)); - h_s_pg_rca4_or3 = or_gate(((h_s_pg_rca4_and3 >> 0) & 0x01), ((h_s_pg_rca4_pg_fa3_and0 >> 0) & 0x01)); - h_s_pg_rca4_xor0 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_pg_rca4_xor1 = xor_gate(((h_s_pg_rca4_xor0 >> 0) & 0x01), ((h_s_pg_rca4_or3 >> 0) & 0x01)); - - h_s_pg_rca4_out |= ((h_s_pg_rca4_pg_fa0_xor0 >> 0) & 0x01) << 0; - h_s_pg_rca4_out |= ((h_s_pg_rca4_pg_fa1_xor1 >> 0) & 0x01) << 1; - h_s_pg_rca4_out |= ((h_s_pg_rca4_pg_fa2_xor1 >> 0) & 0x01) << 2; - h_s_pg_rca4_out |= ((h_s_pg_rca4_pg_fa3_xor1 >> 0) & 0x01) << 3; - h_s_pg_rca4_out |= ((h_s_pg_rca4_xor1 >> 0) & 0x01) << 4; - return h_s_pg_rca4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 32 + result; - } - - assert(result == (int)h_s_pg_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_pg_rca8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_pg_rca8.c deleted file mode 100644 index fa3fe14..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_pg_rca8.c +++ /dev/null @@ -1,142 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t pg_fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t pg_fa_out = 0; - uint8_t pg_fa_xor0 = 0; - uint8_t pg_fa_and0 = 0; - uint8_t pg_fa_xor1 = 0; - - pg_fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_xor1 = xor_gate(((pg_fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - - pg_fa_out |= ((pg_fa_xor0 >> 0) & 0x01) << 0; - pg_fa_out |= ((pg_fa_and0 >> 0) & 0x01) << 1; - pg_fa_out |= ((pg_fa_xor1 >> 0) & 0x01) << 2; - return pg_fa_out; -} - -int64_t h_s_pg_rca8(int64_t a, int64_t b){ - uint64_t h_s_pg_rca8_out = 0; - uint8_t h_s_pg_rca8_pg_fa0_xor0 = 0; - uint8_t h_s_pg_rca8_pg_fa0_and0 = 0; - uint8_t h_s_pg_rca8_pg_fa1_xor0 = 0; - uint8_t h_s_pg_rca8_pg_fa1_and0 = 0; - uint8_t h_s_pg_rca8_pg_fa1_xor1 = 0; - uint8_t h_s_pg_rca8_and1 = 0; - uint8_t h_s_pg_rca8_or1 = 0; - uint8_t h_s_pg_rca8_pg_fa2_xor0 = 0; - uint8_t h_s_pg_rca8_pg_fa2_and0 = 0; - uint8_t h_s_pg_rca8_pg_fa2_xor1 = 0; - uint8_t h_s_pg_rca8_and2 = 0; - uint8_t h_s_pg_rca8_or2 = 0; - uint8_t h_s_pg_rca8_pg_fa3_xor0 = 0; - uint8_t h_s_pg_rca8_pg_fa3_and0 = 0; - uint8_t h_s_pg_rca8_pg_fa3_xor1 = 0; - uint8_t h_s_pg_rca8_and3 = 0; - uint8_t h_s_pg_rca8_or3 = 0; - uint8_t h_s_pg_rca8_pg_fa4_xor0 = 0; - uint8_t h_s_pg_rca8_pg_fa4_and0 = 0; - uint8_t h_s_pg_rca8_pg_fa4_xor1 = 0; - uint8_t h_s_pg_rca8_and4 = 0; - uint8_t h_s_pg_rca8_or4 = 0; - uint8_t h_s_pg_rca8_pg_fa5_xor0 = 0; - uint8_t h_s_pg_rca8_pg_fa5_and0 = 0; - uint8_t h_s_pg_rca8_pg_fa5_xor1 = 0; - uint8_t h_s_pg_rca8_and5 = 0; - uint8_t h_s_pg_rca8_or5 = 0; - uint8_t h_s_pg_rca8_pg_fa6_xor0 = 0; - uint8_t h_s_pg_rca8_pg_fa6_and0 = 0; - uint8_t h_s_pg_rca8_pg_fa6_xor1 = 0; - uint8_t h_s_pg_rca8_and6 = 0; - uint8_t h_s_pg_rca8_or6 = 0; - uint8_t h_s_pg_rca8_pg_fa7_xor0 = 0; - uint8_t h_s_pg_rca8_pg_fa7_and0 = 0; - uint8_t h_s_pg_rca8_pg_fa7_xor1 = 0; - uint8_t h_s_pg_rca8_and7 = 0; - uint8_t h_s_pg_rca8_or7 = 0; - uint8_t h_s_pg_rca8_xor0 = 0; - uint8_t h_s_pg_rca8_xor1 = 0; - - h_s_pg_rca8_pg_fa0_xor0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_s_pg_rca8_pg_fa0_and0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_s_pg_rca8_pg_fa1_xor0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_s_pg_rca8_pg_fa0_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_pg_rca8_pg_fa1_and0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_s_pg_rca8_pg_fa0_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_pg_rca8_pg_fa1_xor1 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_s_pg_rca8_pg_fa0_and0 >> 0) & 0x01)) >> 2) & 0x01; - h_s_pg_rca8_and1 = and_gate(((h_s_pg_rca8_pg_fa0_and0 >> 0) & 0x01), ((h_s_pg_rca8_pg_fa1_xor0 >> 0) & 0x01)); - h_s_pg_rca8_or1 = or_gate(((h_s_pg_rca8_and1 >> 0) & 0x01), ((h_s_pg_rca8_pg_fa1_and0 >> 0) & 0x01)); - h_s_pg_rca8_pg_fa2_xor0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_s_pg_rca8_or1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_pg_rca8_pg_fa2_and0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_s_pg_rca8_or1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_pg_rca8_pg_fa2_xor1 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_s_pg_rca8_or1 >> 0) & 0x01)) >> 2) & 0x01; - h_s_pg_rca8_and2 = and_gate(((h_s_pg_rca8_or1 >> 0) & 0x01), ((h_s_pg_rca8_pg_fa2_xor0 >> 0) & 0x01)); - h_s_pg_rca8_or2 = or_gate(((h_s_pg_rca8_and2 >> 0) & 0x01), ((h_s_pg_rca8_pg_fa2_and0 >> 0) & 0x01)); - h_s_pg_rca8_pg_fa3_xor0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_s_pg_rca8_or2 >> 0) & 0x01)) >> 0) & 0x01; - h_s_pg_rca8_pg_fa3_and0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_s_pg_rca8_or2 >> 0) & 0x01)) >> 1) & 0x01; - h_s_pg_rca8_pg_fa3_xor1 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_s_pg_rca8_or2 >> 0) & 0x01)) >> 2) & 0x01; - h_s_pg_rca8_and3 = and_gate(((h_s_pg_rca8_or2 >> 0) & 0x01), ((h_s_pg_rca8_pg_fa3_xor0 >> 0) & 0x01)); - h_s_pg_rca8_or3 = or_gate(((h_s_pg_rca8_and3 >> 0) & 0x01), ((h_s_pg_rca8_pg_fa3_and0 >> 0) & 0x01)); - h_s_pg_rca8_pg_fa4_xor0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((h_s_pg_rca8_or3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_pg_rca8_pg_fa4_and0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((h_s_pg_rca8_or3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_pg_rca8_pg_fa4_xor1 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((h_s_pg_rca8_or3 >> 0) & 0x01)) >> 2) & 0x01; - h_s_pg_rca8_and4 = and_gate(((h_s_pg_rca8_or3 >> 0) & 0x01), ((h_s_pg_rca8_pg_fa4_xor0 >> 0) & 0x01)); - h_s_pg_rca8_or4 = or_gate(((h_s_pg_rca8_and4 >> 0) & 0x01), ((h_s_pg_rca8_pg_fa4_and0 >> 0) & 0x01)); - h_s_pg_rca8_pg_fa5_xor0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((h_s_pg_rca8_or4 >> 0) & 0x01)) >> 0) & 0x01; - h_s_pg_rca8_pg_fa5_and0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((h_s_pg_rca8_or4 >> 0) & 0x01)) >> 1) & 0x01; - h_s_pg_rca8_pg_fa5_xor1 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((h_s_pg_rca8_or4 >> 0) & 0x01)) >> 2) & 0x01; - h_s_pg_rca8_and5 = and_gate(((h_s_pg_rca8_or4 >> 0) & 0x01), ((h_s_pg_rca8_pg_fa5_xor0 >> 0) & 0x01)); - h_s_pg_rca8_or5 = or_gate(((h_s_pg_rca8_and5 >> 0) & 0x01), ((h_s_pg_rca8_pg_fa5_and0 >> 0) & 0x01)); - h_s_pg_rca8_pg_fa6_xor0 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((h_s_pg_rca8_or5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_pg_rca8_pg_fa6_and0 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((h_s_pg_rca8_or5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_pg_rca8_pg_fa6_xor1 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((h_s_pg_rca8_or5 >> 0) & 0x01)) >> 2) & 0x01; - h_s_pg_rca8_and6 = and_gate(((h_s_pg_rca8_or5 >> 0) & 0x01), ((h_s_pg_rca8_pg_fa6_xor0 >> 0) & 0x01)); - h_s_pg_rca8_or6 = or_gate(((h_s_pg_rca8_and6 >> 0) & 0x01), ((h_s_pg_rca8_pg_fa6_and0 >> 0) & 0x01)); - h_s_pg_rca8_pg_fa7_xor0 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((h_s_pg_rca8_or6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_pg_rca8_pg_fa7_and0 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((h_s_pg_rca8_or6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_pg_rca8_pg_fa7_xor1 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((h_s_pg_rca8_or6 >> 0) & 0x01)) >> 2) & 0x01; - h_s_pg_rca8_and7 = and_gate(((h_s_pg_rca8_or6 >> 0) & 0x01), ((h_s_pg_rca8_pg_fa7_xor0 >> 0) & 0x01)); - h_s_pg_rca8_or7 = or_gate(((h_s_pg_rca8_and7 >> 0) & 0x01), ((h_s_pg_rca8_pg_fa7_and0 >> 0) & 0x01)); - h_s_pg_rca8_xor0 = xor_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_s_pg_rca8_xor1 = xor_gate(((h_s_pg_rca8_xor0 >> 0) & 0x01), ((h_s_pg_rca8_or7 >> 0) & 0x01)); - - h_s_pg_rca8_out |= ((h_s_pg_rca8_pg_fa0_xor0 >> 0) & 0x01) << 0; - h_s_pg_rca8_out |= ((h_s_pg_rca8_pg_fa1_xor1 >> 0) & 0x01) << 1; - h_s_pg_rca8_out |= ((h_s_pg_rca8_pg_fa2_xor1 >> 0) & 0x01) << 2; - h_s_pg_rca8_out |= ((h_s_pg_rca8_pg_fa3_xor1 >> 0) & 0x01) << 3; - h_s_pg_rca8_out |= ((h_s_pg_rca8_pg_fa4_xor1 >> 0) & 0x01) << 4; - h_s_pg_rca8_out |= ((h_s_pg_rca8_pg_fa5_xor1 >> 0) & 0x01) << 5; - h_s_pg_rca8_out |= ((h_s_pg_rca8_pg_fa6_xor1 >> 0) & 0x01) << 6; - h_s_pg_rca8_out |= ((h_s_pg_rca8_pg_fa7_xor1 >> 0) & 0x01) << 7; - h_s_pg_rca8_out |= ((h_s_pg_rca8_xor1 >> 0) & 0x01) << 8; - return h_s_pg_rca8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 512 + result; - } - - assert(result == (int)h_s_pg_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_rca4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_rca4.c deleted file mode 100644 index 9fa001f..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_rca4.c +++ /dev/null @@ -1,96 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -int64_t h_s_rca4(int64_t a, int64_t b){ - uint8_t h_s_rca4_out = 0; - uint8_t h_s_rca4_ha_xor0 = 0; - uint8_t h_s_rca4_ha_and0 = 0; - uint8_t h_s_rca4_fa1_xor1 = 0; - uint8_t h_s_rca4_fa1_or0 = 0; - uint8_t h_s_rca4_fa2_xor1 = 0; - uint8_t h_s_rca4_fa2_or0 = 0; - uint8_t h_s_rca4_fa3_xor1 = 0; - uint8_t h_s_rca4_fa3_or0 = 0; - uint8_t h_s_rca4_xor0 = 0; - uint8_t h_s_rca4_xor1 = 0; - - h_s_rca4_ha_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - h_s_rca4_ha_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - h_s_rca4_fa1_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_s_rca4_ha_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_rca4_fa1_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_s_rca4_ha_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_rca4_fa2_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_s_rca4_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_rca4_fa2_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_s_rca4_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_rca4_fa3_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_s_rca4_fa2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_rca4_fa3_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_s_rca4_fa2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_rca4_xor0 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_rca4_xor1 = xor_gate(((h_s_rca4_xor0 >> 0) & 0x01), ((h_s_rca4_fa3_or0 >> 0) & 0x01)); - - h_s_rca4_out |= ((h_s_rca4_ha_xor0 >> 0) & 0x01) << 0; - h_s_rca4_out |= ((h_s_rca4_fa1_xor1 >> 0) & 0x01) << 1; - h_s_rca4_out |= ((h_s_rca4_fa2_xor1 >> 0) & 0x01) << 2; - h_s_rca4_out |= ((h_s_rca4_fa3_xor1 >> 0) & 0x01) << 3; - h_s_rca4_out |= ((h_s_rca4_xor1 >> 0) & 0x01) << 4; - return h_s_rca4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 32 + result; - } - - assert(result == (int)h_s_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_rca8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_rca8.c deleted file mode 100644 index 9cd2db8..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_s_rca8.c +++ /dev/null @@ -1,116 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -int64_t h_s_rca8(int64_t a, int64_t b){ - uint64_t h_s_rca8_out = 0; - uint8_t h_s_rca8_ha_xor0 = 0; - uint8_t h_s_rca8_ha_and0 = 0; - uint8_t h_s_rca8_fa1_xor1 = 0; - uint8_t h_s_rca8_fa1_or0 = 0; - uint8_t h_s_rca8_fa2_xor1 = 0; - uint8_t h_s_rca8_fa2_or0 = 0; - uint8_t h_s_rca8_fa3_xor1 = 0; - uint8_t h_s_rca8_fa3_or0 = 0; - uint8_t h_s_rca8_fa4_xor1 = 0; - uint8_t h_s_rca8_fa4_or0 = 0; - uint8_t h_s_rca8_fa5_xor1 = 0; - uint8_t h_s_rca8_fa5_or0 = 0; - uint8_t h_s_rca8_fa6_xor1 = 0; - uint8_t h_s_rca8_fa6_or0 = 0; - uint8_t h_s_rca8_fa7_xor1 = 0; - uint8_t h_s_rca8_fa7_or0 = 0; - uint8_t h_s_rca8_xor0 = 0; - uint8_t h_s_rca8_xor1 = 0; - - h_s_rca8_ha_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - h_s_rca8_ha_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - h_s_rca8_fa1_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_s_rca8_ha_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_rca8_fa1_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_s_rca8_ha_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_rca8_fa2_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_s_rca8_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_rca8_fa2_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_s_rca8_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_rca8_fa3_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_s_rca8_fa2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_rca8_fa3_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_s_rca8_fa2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_rca8_fa4_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((h_s_rca8_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_rca8_fa4_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((h_s_rca8_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_rca8_fa5_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((h_s_rca8_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_rca8_fa5_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((h_s_rca8_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_rca8_fa6_xor1 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((h_s_rca8_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_rca8_fa6_or0 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((h_s_rca8_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_rca8_fa7_xor1 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((h_s_rca8_fa6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_rca8_fa7_or0 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((h_s_rca8_fa6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_rca8_xor0 = xor_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_s_rca8_xor1 = xor_gate(((h_s_rca8_xor0 >> 0) & 0x01), ((h_s_rca8_fa7_or0 >> 0) & 0x01)); - - h_s_rca8_out |= ((h_s_rca8_ha_xor0 >> 0) & 0x01) << 0; - h_s_rca8_out |= ((h_s_rca8_fa1_xor1 >> 0) & 0x01) << 1; - h_s_rca8_out |= ((h_s_rca8_fa2_xor1 >> 0) & 0x01) << 2; - h_s_rca8_out |= ((h_s_rca8_fa3_xor1 >> 0) & 0x01) << 3; - h_s_rca8_out |= ((h_s_rca8_fa4_xor1 >> 0) & 0x01) << 4; - h_s_rca8_out |= ((h_s_rca8_fa5_xor1 >> 0) & 0x01) << 5; - h_s_rca8_out |= ((h_s_rca8_fa6_xor1 >> 0) & 0x01) << 6; - h_s_rca8_out |= ((h_s_rca8_fa7_xor1 >> 0) & 0x01) << 7; - h_s_rca8_out |= ((h_s_rca8_xor1 >> 0) & 0x01) << 8; - return h_s_rca8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i + j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 512 + result; - } - - assert(result == (int)h_s_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cla4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cla4.c deleted file mode 100644 index e2e513c..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cla4.c +++ /dev/null @@ -1,118 +0,0 @@ -#include -#include - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t pg_logic(uint8_t a, uint8_t b){ - uint8_t pg_logic_out = 0; - uint8_t pg_logic_or0 = 0; - uint8_t pg_logic_and0 = 0; - uint8_t pg_logic_xor0 = 0; - - pg_logic_or0 = or_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - pg_logic_out |= ((pg_logic_or0 >> 0) & 0x01) << 0; - pg_logic_out |= ((pg_logic_and0 >> 0) & 0x01) << 1; - pg_logic_out |= ((pg_logic_xor0 >> 0) & 0x01) << 2; - return pg_logic_out; -} - -uint64_t h_u_cla4(uint64_t a, uint64_t b){ - uint8_t h_u_cla4_out = 0; - uint8_t h_u_cla4_pg_logic0_or0 = 0; - uint8_t h_u_cla4_pg_logic0_and0 = 0; - uint8_t h_u_cla4_pg_logic0_xor0 = 0; - uint8_t h_u_cla4_pg_logic1_or0 = 0; - uint8_t h_u_cla4_pg_logic1_and0 = 0; - uint8_t h_u_cla4_pg_logic1_xor0 = 0; - uint8_t h_u_cla4_xor1 = 0; - uint8_t h_u_cla4_and0 = 0; - uint8_t h_u_cla4_or0 = 0; - uint8_t h_u_cla4_pg_logic2_or0 = 0; - uint8_t h_u_cla4_pg_logic2_and0 = 0; - uint8_t h_u_cla4_pg_logic2_xor0 = 0; - uint8_t h_u_cla4_xor2 = 0; - uint8_t h_u_cla4_and1 = 0; - uint8_t h_u_cla4_and2 = 0; - uint8_t h_u_cla4_and3 = 0; - uint8_t h_u_cla4_and4 = 0; - uint8_t h_u_cla4_or1 = 0; - uint8_t h_u_cla4_or2 = 0; - uint8_t h_u_cla4_pg_logic3_or0 = 0; - uint8_t h_u_cla4_pg_logic3_and0 = 0; - uint8_t h_u_cla4_pg_logic3_xor0 = 0; - uint8_t h_u_cla4_xor3 = 0; - uint8_t h_u_cla4_and5 = 0; - uint8_t h_u_cla4_and6 = 0; - uint8_t h_u_cla4_and7 = 0; - uint8_t h_u_cla4_and8 = 0; - uint8_t h_u_cla4_and9 = 0; - uint8_t h_u_cla4_and10 = 0; - uint8_t h_u_cla4_and11 = 0; - uint8_t h_u_cla4_or3 = 0; - uint8_t h_u_cla4_or4 = 0; - uint8_t h_u_cla4_or5 = 0; - - h_u_cla4_pg_logic0_or0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - h_u_cla4_pg_logic0_and0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - h_u_cla4_pg_logic0_xor0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 2) & 0x01; - h_u_cla4_pg_logic1_or0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 0) & 0x01; - h_u_cla4_pg_logic1_and0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 1) & 0x01; - h_u_cla4_pg_logic1_xor0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 2) & 0x01; - h_u_cla4_xor1 = xor_gate(((h_u_cla4_pg_logic1_xor0 >> 0) & 0x01), ((h_u_cla4_pg_logic0_and0 >> 0) & 0x01)); - h_u_cla4_and0 = and_gate(((h_u_cla4_pg_logic0_and0 >> 0) & 0x01), ((h_u_cla4_pg_logic1_or0 >> 0) & 0x01)); - h_u_cla4_or0 = or_gate(((h_u_cla4_pg_logic1_and0 >> 0) & 0x01), ((h_u_cla4_and0 >> 0) & 0x01)); - h_u_cla4_pg_logic2_or0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 0) & 0x01; - h_u_cla4_pg_logic2_and0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 1) & 0x01; - h_u_cla4_pg_logic2_xor0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 2) & 0x01; - h_u_cla4_xor2 = xor_gate(((h_u_cla4_pg_logic2_xor0 >> 0) & 0x01), ((h_u_cla4_or0 >> 0) & 0x01)); - h_u_cla4_and1 = and_gate(((h_u_cla4_pg_logic2_or0 >> 0) & 0x01), ((h_u_cla4_pg_logic0_or0 >> 0) & 0x01)); - h_u_cla4_and2 = and_gate(((h_u_cla4_pg_logic0_and0 >> 0) & 0x01), ((h_u_cla4_pg_logic2_or0 >> 0) & 0x01)); - h_u_cla4_and3 = and_gate(((h_u_cla4_and2 >> 0) & 0x01), ((h_u_cla4_pg_logic1_or0 >> 0) & 0x01)); - h_u_cla4_and4 = and_gate(((h_u_cla4_pg_logic1_and0 >> 0) & 0x01), ((h_u_cla4_pg_logic2_or0 >> 0) & 0x01)); - h_u_cla4_or1 = or_gate(((h_u_cla4_and3 >> 0) & 0x01), ((h_u_cla4_and4 >> 0) & 0x01)); - h_u_cla4_or2 = or_gate(((h_u_cla4_pg_logic2_and0 >> 0) & 0x01), ((h_u_cla4_or1 >> 0) & 0x01)); - h_u_cla4_pg_logic3_or0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 0) & 0x01; - h_u_cla4_pg_logic3_and0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 1) & 0x01; - h_u_cla4_pg_logic3_xor0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 2) & 0x01; - h_u_cla4_xor3 = xor_gate(((h_u_cla4_pg_logic3_xor0 >> 0) & 0x01), ((h_u_cla4_or2 >> 0) & 0x01)); - h_u_cla4_and5 = and_gate(((h_u_cla4_pg_logic3_or0 >> 0) & 0x01), ((h_u_cla4_pg_logic1_or0 >> 0) & 0x01)); - h_u_cla4_and6 = and_gate(((h_u_cla4_pg_logic0_and0 >> 0) & 0x01), ((h_u_cla4_pg_logic2_or0 >> 0) & 0x01)); - h_u_cla4_and7 = and_gate(((h_u_cla4_pg_logic3_or0 >> 0) & 0x01), ((h_u_cla4_pg_logic1_or0 >> 0) & 0x01)); - h_u_cla4_and8 = and_gate(((h_u_cla4_and6 >> 0) & 0x01), ((h_u_cla4_and7 >> 0) & 0x01)); - h_u_cla4_and9 = and_gate(((h_u_cla4_pg_logic1_and0 >> 0) & 0x01), ((h_u_cla4_pg_logic3_or0 >> 0) & 0x01)); - h_u_cla4_and10 = and_gate(((h_u_cla4_and9 >> 0) & 0x01), ((h_u_cla4_pg_logic2_or0 >> 0) & 0x01)); - h_u_cla4_and11 = and_gate(((h_u_cla4_pg_logic2_and0 >> 0) & 0x01), ((h_u_cla4_pg_logic3_or0 >> 0) & 0x01)); - h_u_cla4_or3 = or_gate(((h_u_cla4_and8 >> 0) & 0x01), ((h_u_cla4_and11 >> 0) & 0x01)); - h_u_cla4_or4 = or_gate(((h_u_cla4_and10 >> 0) & 0x01), ((h_u_cla4_or3 >> 0) & 0x01)); - h_u_cla4_or5 = or_gate(((h_u_cla4_pg_logic3_and0 >> 0) & 0x01), ((h_u_cla4_or4 >> 0) & 0x01)); - - h_u_cla4_out |= ((h_u_cla4_pg_logic0_xor0 >> 0) & 0x01) << 0; - h_u_cla4_out |= ((h_u_cla4_xor1 >> 0) & 0x01) << 1; - h_u_cla4_out |= ((h_u_cla4_xor2 >> 0) & 0x01) << 2; - h_u_cla4_out |= ((h_u_cla4_xor3 >> 0) & 0x01) << 3; - h_u_cla4_out |= ((h_u_cla4_or5 >> 0) & 0x01) << 4; - return h_u_cla4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i + j) == h_u_cla4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cla8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cla8.c deleted file mode 100644 index cf1283b..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cla8.c +++ /dev/null @@ -1,214 +0,0 @@ -#include -#include - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t pg_logic(uint8_t a, uint8_t b){ - uint8_t pg_logic_out = 0; - uint8_t pg_logic_or0 = 0; - uint8_t pg_logic_and0 = 0; - uint8_t pg_logic_xor0 = 0; - - pg_logic_or0 = or_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - pg_logic_out |= ((pg_logic_or0 >> 0) & 0x01) << 0; - pg_logic_out |= ((pg_logic_and0 >> 0) & 0x01) << 1; - pg_logic_out |= ((pg_logic_xor0 >> 0) & 0x01) << 2; - return pg_logic_out; -} - -uint64_t h_u_cla8(uint64_t a, uint64_t b){ - uint64_t h_u_cla8_out = 0; - uint8_t h_u_cla8_pg_logic0_or0 = 0; - uint8_t h_u_cla8_pg_logic0_and0 = 0; - uint8_t h_u_cla8_pg_logic0_xor0 = 0; - uint8_t h_u_cla8_pg_logic1_or0 = 0; - uint8_t h_u_cla8_pg_logic1_and0 = 0; - uint8_t h_u_cla8_pg_logic1_xor0 = 0; - uint8_t h_u_cla8_xor1 = 0; - uint8_t h_u_cla8_and0 = 0; - uint8_t h_u_cla8_or0 = 0; - uint8_t h_u_cla8_pg_logic2_or0 = 0; - uint8_t h_u_cla8_pg_logic2_and0 = 0; - uint8_t h_u_cla8_pg_logic2_xor0 = 0; - uint8_t h_u_cla8_xor2 = 0; - uint8_t h_u_cla8_and1 = 0; - uint8_t h_u_cla8_and2 = 0; - uint8_t h_u_cla8_and3 = 0; - uint8_t h_u_cla8_and4 = 0; - uint8_t h_u_cla8_or1 = 0; - uint8_t h_u_cla8_or2 = 0; - uint8_t h_u_cla8_pg_logic3_or0 = 0; - uint8_t h_u_cla8_pg_logic3_and0 = 0; - uint8_t h_u_cla8_pg_logic3_xor0 = 0; - uint8_t h_u_cla8_xor3 = 0; - uint8_t h_u_cla8_and5 = 0; - uint8_t h_u_cla8_and6 = 0; - uint8_t h_u_cla8_and7 = 0; - uint8_t h_u_cla8_and8 = 0; - uint8_t h_u_cla8_and9 = 0; - uint8_t h_u_cla8_and10 = 0; - uint8_t h_u_cla8_and11 = 0; - uint8_t h_u_cla8_or3 = 0; - uint8_t h_u_cla8_or4 = 0; - uint8_t h_u_cla8_or5 = 0; - uint8_t h_u_cla8_pg_logic4_or0 = 0; - uint8_t h_u_cla8_pg_logic4_and0 = 0; - uint8_t h_u_cla8_pg_logic4_xor0 = 0; - uint8_t h_u_cla8_xor4 = 0; - uint8_t h_u_cla8_and12 = 0; - uint8_t h_u_cla8_or6 = 0; - uint8_t h_u_cla8_pg_logic5_or0 = 0; - uint8_t h_u_cla8_pg_logic5_and0 = 0; - uint8_t h_u_cla8_pg_logic5_xor0 = 0; - uint8_t h_u_cla8_xor5 = 0; - uint8_t h_u_cla8_and13 = 0; - uint8_t h_u_cla8_and14 = 0; - uint8_t h_u_cla8_and15 = 0; - uint8_t h_u_cla8_or7 = 0; - uint8_t h_u_cla8_or8 = 0; - uint8_t h_u_cla8_pg_logic6_or0 = 0; - uint8_t h_u_cla8_pg_logic6_and0 = 0; - uint8_t h_u_cla8_pg_logic6_xor0 = 0; - uint8_t h_u_cla8_xor6 = 0; - uint8_t h_u_cla8_and16 = 0; - uint8_t h_u_cla8_and17 = 0; - uint8_t h_u_cla8_and18 = 0; - uint8_t h_u_cla8_and19 = 0; - uint8_t h_u_cla8_and20 = 0; - uint8_t h_u_cla8_and21 = 0; - uint8_t h_u_cla8_or9 = 0; - uint8_t h_u_cla8_or10 = 0; - uint8_t h_u_cla8_or11 = 0; - uint8_t h_u_cla8_pg_logic7_or0 = 0; - uint8_t h_u_cla8_pg_logic7_and0 = 0; - uint8_t h_u_cla8_pg_logic7_xor0 = 0; - uint8_t h_u_cla8_xor7 = 0; - uint8_t h_u_cla8_and22 = 0; - uint8_t h_u_cla8_and23 = 0; - uint8_t h_u_cla8_and24 = 0; - uint8_t h_u_cla8_and25 = 0; - uint8_t h_u_cla8_and26 = 0; - uint8_t h_u_cla8_and27 = 0; - uint8_t h_u_cla8_and28 = 0; - uint8_t h_u_cla8_and29 = 0; - uint8_t h_u_cla8_and30 = 0; - uint8_t h_u_cla8_and31 = 0; - uint8_t h_u_cla8_or12 = 0; - uint8_t h_u_cla8_or13 = 0; - uint8_t h_u_cla8_or14 = 0; - uint8_t h_u_cla8_or15 = 0; - - h_u_cla8_pg_logic0_or0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - h_u_cla8_pg_logic0_and0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - h_u_cla8_pg_logic0_xor0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 2) & 0x01; - h_u_cla8_pg_logic1_or0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 0) & 0x01; - h_u_cla8_pg_logic1_and0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 1) & 0x01; - h_u_cla8_pg_logic1_xor0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 2) & 0x01; - h_u_cla8_xor1 = xor_gate(((h_u_cla8_pg_logic1_xor0 >> 0) & 0x01), ((h_u_cla8_pg_logic0_and0 >> 0) & 0x01)); - h_u_cla8_and0 = and_gate(((h_u_cla8_pg_logic0_and0 >> 0) & 0x01), ((h_u_cla8_pg_logic1_or0 >> 0) & 0x01)); - h_u_cla8_or0 = or_gate(((h_u_cla8_pg_logic1_and0 >> 0) & 0x01), ((h_u_cla8_and0 >> 0) & 0x01)); - h_u_cla8_pg_logic2_or0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 0) & 0x01; - h_u_cla8_pg_logic2_and0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 1) & 0x01; - h_u_cla8_pg_logic2_xor0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 2) & 0x01; - h_u_cla8_xor2 = xor_gate(((h_u_cla8_pg_logic2_xor0 >> 0) & 0x01), ((h_u_cla8_or0 >> 0) & 0x01)); - h_u_cla8_and1 = and_gate(((h_u_cla8_pg_logic2_or0 >> 0) & 0x01), ((h_u_cla8_pg_logic0_or0 >> 0) & 0x01)); - h_u_cla8_and2 = and_gate(((h_u_cla8_pg_logic0_and0 >> 0) & 0x01), ((h_u_cla8_pg_logic2_or0 >> 0) & 0x01)); - h_u_cla8_and3 = and_gate(((h_u_cla8_and2 >> 0) & 0x01), ((h_u_cla8_pg_logic1_or0 >> 0) & 0x01)); - h_u_cla8_and4 = and_gate(((h_u_cla8_pg_logic1_and0 >> 0) & 0x01), ((h_u_cla8_pg_logic2_or0 >> 0) & 0x01)); - h_u_cla8_or1 = or_gate(((h_u_cla8_and3 >> 0) & 0x01), ((h_u_cla8_and4 >> 0) & 0x01)); - h_u_cla8_or2 = or_gate(((h_u_cla8_pg_logic2_and0 >> 0) & 0x01), ((h_u_cla8_or1 >> 0) & 0x01)); - h_u_cla8_pg_logic3_or0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 0) & 0x01; - h_u_cla8_pg_logic3_and0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 1) & 0x01; - h_u_cla8_pg_logic3_xor0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 2) & 0x01; - h_u_cla8_xor3 = xor_gate(((h_u_cla8_pg_logic3_xor0 >> 0) & 0x01), ((h_u_cla8_or2 >> 0) & 0x01)); - h_u_cla8_and5 = and_gate(((h_u_cla8_pg_logic3_or0 >> 0) & 0x01), ((h_u_cla8_pg_logic1_or0 >> 0) & 0x01)); - h_u_cla8_and6 = and_gate(((h_u_cla8_pg_logic0_and0 >> 0) & 0x01), ((h_u_cla8_pg_logic2_or0 >> 0) & 0x01)); - h_u_cla8_and7 = and_gate(((h_u_cla8_pg_logic3_or0 >> 0) & 0x01), ((h_u_cla8_pg_logic1_or0 >> 0) & 0x01)); - h_u_cla8_and8 = and_gate(((h_u_cla8_and6 >> 0) & 0x01), ((h_u_cla8_and7 >> 0) & 0x01)); - h_u_cla8_and9 = and_gate(((h_u_cla8_pg_logic1_and0 >> 0) & 0x01), ((h_u_cla8_pg_logic3_or0 >> 0) & 0x01)); - h_u_cla8_and10 = and_gate(((h_u_cla8_and9 >> 0) & 0x01), ((h_u_cla8_pg_logic2_or0 >> 0) & 0x01)); - h_u_cla8_and11 = and_gate(((h_u_cla8_pg_logic2_and0 >> 0) & 0x01), ((h_u_cla8_pg_logic3_or0 >> 0) & 0x01)); - h_u_cla8_or3 = or_gate(((h_u_cla8_and8 >> 0) & 0x01), ((h_u_cla8_and11 >> 0) & 0x01)); - h_u_cla8_or4 = or_gate(((h_u_cla8_and10 >> 0) & 0x01), ((h_u_cla8_or3 >> 0) & 0x01)); - h_u_cla8_or5 = or_gate(((h_u_cla8_pg_logic3_and0 >> 0) & 0x01), ((h_u_cla8_or4 >> 0) & 0x01)); - h_u_cla8_pg_logic4_or0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 0) & 0x01; - h_u_cla8_pg_logic4_and0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 1) & 0x01; - h_u_cla8_pg_logic4_xor0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 2) & 0x01; - h_u_cla8_xor4 = xor_gate(((h_u_cla8_pg_logic4_xor0 >> 0) & 0x01), ((h_u_cla8_or5 >> 0) & 0x01)); - h_u_cla8_and12 = and_gate(((h_u_cla8_or5 >> 0) & 0x01), ((h_u_cla8_pg_logic4_or0 >> 0) & 0x01)); - h_u_cla8_or6 = or_gate(((h_u_cla8_pg_logic4_and0 >> 0) & 0x01), ((h_u_cla8_and12 >> 0) & 0x01)); - h_u_cla8_pg_logic5_or0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 0) & 0x01; - h_u_cla8_pg_logic5_and0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 1) & 0x01; - h_u_cla8_pg_logic5_xor0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 2) & 0x01; - h_u_cla8_xor5 = xor_gate(((h_u_cla8_pg_logic5_xor0 >> 0) & 0x01), ((h_u_cla8_or6 >> 0) & 0x01)); - h_u_cla8_and13 = and_gate(((h_u_cla8_or5 >> 0) & 0x01), ((h_u_cla8_pg_logic5_or0 >> 0) & 0x01)); - h_u_cla8_and14 = and_gate(((h_u_cla8_and13 >> 0) & 0x01), ((h_u_cla8_pg_logic4_or0 >> 0) & 0x01)); - h_u_cla8_and15 = and_gate(((h_u_cla8_pg_logic4_and0 >> 0) & 0x01), ((h_u_cla8_pg_logic5_or0 >> 0) & 0x01)); - h_u_cla8_or7 = or_gate(((h_u_cla8_and14 >> 0) & 0x01), ((h_u_cla8_and15 >> 0) & 0x01)); - h_u_cla8_or8 = or_gate(((h_u_cla8_pg_logic5_and0 >> 0) & 0x01), ((h_u_cla8_or7 >> 0) & 0x01)); - h_u_cla8_pg_logic6_or0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 0) & 0x01; - h_u_cla8_pg_logic6_and0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 1) & 0x01; - h_u_cla8_pg_logic6_xor0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 2) & 0x01; - h_u_cla8_xor6 = xor_gate(((h_u_cla8_pg_logic6_xor0 >> 0) & 0x01), ((h_u_cla8_or8 >> 0) & 0x01)); - h_u_cla8_and16 = and_gate(((h_u_cla8_or5 >> 0) & 0x01), ((h_u_cla8_pg_logic5_or0 >> 0) & 0x01)); - h_u_cla8_and17 = and_gate(((h_u_cla8_pg_logic6_or0 >> 0) & 0x01), ((h_u_cla8_pg_logic4_or0 >> 0) & 0x01)); - h_u_cla8_and18 = and_gate(((h_u_cla8_and16 >> 0) & 0x01), ((h_u_cla8_and17 >> 0) & 0x01)); - h_u_cla8_and19 = and_gate(((h_u_cla8_pg_logic4_and0 >> 0) & 0x01), ((h_u_cla8_pg_logic6_or0 >> 0) & 0x01)); - h_u_cla8_and20 = and_gate(((h_u_cla8_and19 >> 0) & 0x01), ((h_u_cla8_pg_logic5_or0 >> 0) & 0x01)); - h_u_cla8_and21 = and_gate(((h_u_cla8_pg_logic5_and0 >> 0) & 0x01), ((h_u_cla8_pg_logic6_or0 >> 0) & 0x01)); - h_u_cla8_or9 = or_gate(((h_u_cla8_and18 >> 0) & 0x01), ((h_u_cla8_and20 >> 0) & 0x01)); - h_u_cla8_or10 = or_gate(((h_u_cla8_or9 >> 0) & 0x01), ((h_u_cla8_and21 >> 0) & 0x01)); - h_u_cla8_or11 = or_gate(((h_u_cla8_pg_logic6_and0 >> 0) & 0x01), ((h_u_cla8_or10 >> 0) & 0x01)); - h_u_cla8_pg_logic7_or0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 0) & 0x01; - h_u_cla8_pg_logic7_and0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 1) & 0x01; - h_u_cla8_pg_logic7_xor0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 2) & 0x01; - h_u_cla8_xor7 = xor_gate(((h_u_cla8_pg_logic7_xor0 >> 0) & 0x01), ((h_u_cla8_or11 >> 0) & 0x01)); - h_u_cla8_and22 = and_gate(((h_u_cla8_or5 >> 0) & 0x01), ((h_u_cla8_pg_logic6_or0 >> 0) & 0x01)); - h_u_cla8_and23 = and_gate(((h_u_cla8_pg_logic7_or0 >> 0) & 0x01), ((h_u_cla8_pg_logic5_or0 >> 0) & 0x01)); - h_u_cla8_and24 = and_gate(((h_u_cla8_and22 >> 0) & 0x01), ((h_u_cla8_and23 >> 0) & 0x01)); - h_u_cla8_and25 = and_gate(((h_u_cla8_and24 >> 0) & 0x01), ((h_u_cla8_pg_logic4_or0 >> 0) & 0x01)); - h_u_cla8_and26 = and_gate(((h_u_cla8_pg_logic4_and0 >> 0) & 0x01), ((h_u_cla8_pg_logic6_or0 >> 0) & 0x01)); - h_u_cla8_and27 = and_gate(((h_u_cla8_pg_logic7_or0 >> 0) & 0x01), ((h_u_cla8_pg_logic5_or0 >> 0) & 0x01)); - h_u_cla8_and28 = and_gate(((h_u_cla8_and26 >> 0) & 0x01), ((h_u_cla8_and27 >> 0) & 0x01)); - h_u_cla8_and29 = and_gate(((h_u_cla8_pg_logic5_and0 >> 0) & 0x01), ((h_u_cla8_pg_logic7_or0 >> 0) & 0x01)); - h_u_cla8_and30 = and_gate(((h_u_cla8_and29 >> 0) & 0x01), ((h_u_cla8_pg_logic6_or0 >> 0) & 0x01)); - h_u_cla8_and31 = and_gate(((h_u_cla8_pg_logic6_and0 >> 0) & 0x01), ((h_u_cla8_pg_logic7_or0 >> 0) & 0x01)); - h_u_cla8_or12 = or_gate(((h_u_cla8_and25 >> 0) & 0x01), ((h_u_cla8_and30 >> 0) & 0x01)); - h_u_cla8_or13 = or_gate(((h_u_cla8_and28 >> 0) & 0x01), ((h_u_cla8_and31 >> 0) & 0x01)); - h_u_cla8_or14 = or_gate(((h_u_cla8_or12 >> 0) & 0x01), ((h_u_cla8_or13 >> 0) & 0x01)); - h_u_cla8_or15 = or_gate(((h_u_cla8_pg_logic7_and0 >> 0) & 0x01), ((h_u_cla8_or14 >> 0) & 0x01)); - - h_u_cla8_out |= ((h_u_cla8_pg_logic0_xor0 >> 0) & 0x01) << 0; - h_u_cla8_out |= ((h_u_cla8_xor1 >> 0) & 0x01) << 1; - h_u_cla8_out |= ((h_u_cla8_xor2 >> 0) & 0x01) << 2; - h_u_cla8_out |= ((h_u_cla8_xor3 >> 0) & 0x01) << 3; - h_u_cla8_out |= ((h_u_cla8_xor4 >> 0) & 0x01) << 4; - h_u_cla8_out |= ((h_u_cla8_xor5 >> 0) & 0x01) << 5; - h_u_cla8_out |= ((h_u_cla8_xor6 >> 0) & 0x01) << 6; - h_u_cla8_out |= ((h_u_cla8_xor7 >> 0) & 0x01) << 7; - h_u_cla8_out |= ((h_u_cla8_or15 >> 0) & 0x01) << 8; - return h_u_cla8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i + j) == h_u_cla8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cska4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cska4.c deleted file mode 100644 index 74fac9c..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cska4.c +++ /dev/null @@ -1,120 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t mux2to1(uint8_t d0, uint8_t d1, uint8_t sel){ - uint8_t mux2to1_out = 0; - uint8_t mux2to1_and0 = 0; - uint8_t mux2to1_not0 = 0; - uint8_t mux2to1_and1 = 0; - uint8_t mux2to1_xor0 = 0; - - mux2to1_and0 = and_gate(((d1 >> 0) & 0x01), ((sel >> 0) & 0x01)); - mux2to1_not0 = not_gate(((sel >> 0) & 0x01)); - mux2to1_and1 = and_gate(((d0 >> 0) & 0x01), ((mux2to1_not0 >> 0) & 0x01)); - mux2to1_xor0 = xor_gate(((mux2to1_and0 >> 0) & 0x01), ((mux2to1_and1 >> 0) & 0x01)); - - mux2to1_out |= ((mux2to1_xor0 >> 0) & 0x01) << 0; - return mux2to1_out; -} - -uint64_t h_u_cska4(uint64_t a, uint64_t b){ - uint8_t h_u_cska4_out = 0; - uint8_t h_u_cska4_xor0 = 0; - uint8_t h_u_cska4_ha0_xor0 = 0; - uint8_t h_u_cska4_ha0_and0 = 0; - uint8_t h_u_cska4_xor1 = 0; - uint8_t h_u_cska4_fa0_xor1 = 0; - uint8_t h_u_cska4_fa0_or0 = 0; - uint8_t h_u_cska4_xor2 = 0; - uint8_t h_u_cska4_fa1_xor1 = 0; - uint8_t h_u_cska4_fa1_or0 = 0; - uint8_t h_u_cska4_xor3 = 0; - uint8_t h_u_cska4_fa2_xor1 = 0; - uint8_t h_u_cska4_fa2_or0 = 0; - uint8_t h_u_cska4_and_propagate00 = 0; - uint8_t h_u_cska4_and_propagate01 = 0; - uint8_t h_u_cska4_and_propagate02 = 0; - uint8_t h_u_cska4_mux2to10_and1 = 0; - - h_u_cska4_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_cska4_ha0_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - h_u_cska4_ha0_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - h_u_cska4_xor1 = xor_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_cska4_fa0_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_u_cska4_ha0_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_cska4_fa0_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_u_cska4_ha0_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_cska4_xor2 = xor_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_cska4_fa1_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_u_cska4_fa0_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_cska4_fa1_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_u_cska4_fa0_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_cska4_xor3 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_cska4_fa2_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_u_cska4_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_cska4_fa2_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_u_cska4_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_cska4_and_propagate00 = and_gate(((h_u_cska4_xor0 >> 0) & 0x01), ((h_u_cska4_xor2 >> 0) & 0x01)); - h_u_cska4_and_propagate01 = and_gate(((h_u_cska4_xor1 >> 0) & 0x01), ((h_u_cska4_xor3 >> 0) & 0x01)); - h_u_cska4_and_propagate02 = and_gate(((h_u_cska4_and_propagate00 >> 0) & 0x01), ((h_u_cska4_and_propagate01 >> 0) & 0x01)); - h_u_cska4_mux2to10_and1 = (mux2to1(((h_u_cska4_fa2_or0 >> 0) & 0x01), (0x00), ((h_u_cska4_and_propagate02 >> 0) & 0x01)) >> 0) & 0x01; - - h_u_cska4_out |= ((h_u_cska4_ha0_xor0 >> 0) & 0x01) << 0; - h_u_cska4_out |= ((h_u_cska4_fa0_xor1 >> 0) & 0x01) << 1; - h_u_cska4_out |= ((h_u_cska4_fa1_xor1 >> 0) & 0x01) << 2; - h_u_cska4_out |= ((h_u_cska4_fa2_xor1 >> 0) & 0x01) << 3; - h_u_cska4_out |= ((h_u_cska4_mux2to10_and1 >> 0) & 0x01) << 4; - return h_u_cska4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i + j) == h_u_cska4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cska8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cska8.c deleted file mode 100644 index 44cdb8f..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_cska8.c +++ /dev/null @@ -1,156 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t mux2to1(uint8_t d0, uint8_t d1, uint8_t sel){ - uint8_t mux2to1_out = 0; - uint8_t mux2to1_and0 = 0; - uint8_t mux2to1_not0 = 0; - uint8_t mux2to1_and1 = 0; - uint8_t mux2to1_xor0 = 0; - - mux2to1_and0 = and_gate(((d1 >> 0) & 0x01), ((sel >> 0) & 0x01)); - mux2to1_not0 = not_gate(((sel >> 0) & 0x01)); - mux2to1_and1 = and_gate(((d0 >> 0) & 0x01), ((mux2to1_not0 >> 0) & 0x01)); - mux2to1_xor0 = xor_gate(((mux2to1_and0 >> 0) & 0x01), ((mux2to1_and1 >> 0) & 0x01)); - - mux2to1_out |= ((mux2to1_xor0 >> 0) & 0x01) << 0; - return mux2to1_out; -} - -uint64_t h_u_cska8(uint64_t a, uint64_t b){ - uint64_t h_u_cska8_out = 0; - uint8_t h_u_cska8_xor0 = 0; - uint8_t h_u_cska8_ha0_xor0 = 0; - uint8_t h_u_cska8_ha0_and0 = 0; - uint8_t h_u_cska8_xor1 = 0; - uint8_t h_u_cska8_fa0_xor1 = 0; - uint8_t h_u_cska8_fa0_or0 = 0; - uint8_t h_u_cska8_xor2 = 0; - uint8_t h_u_cska8_fa1_xor1 = 0; - uint8_t h_u_cska8_fa1_or0 = 0; - uint8_t h_u_cska8_xor3 = 0; - uint8_t h_u_cska8_fa2_xor1 = 0; - uint8_t h_u_cska8_fa2_or0 = 0; - uint8_t h_u_cska8_and_propagate00 = 0; - uint8_t h_u_cska8_and_propagate01 = 0; - uint8_t h_u_cska8_and_propagate02 = 0; - uint8_t h_u_cska8_mux2to10_and1 = 0; - uint8_t h_u_cska8_xor4 = 0; - uint8_t h_u_cska8_fa3_xor1 = 0; - uint8_t h_u_cska8_fa3_or0 = 0; - uint8_t h_u_cska8_xor5 = 0; - uint8_t h_u_cska8_fa4_xor1 = 0; - uint8_t h_u_cska8_fa4_or0 = 0; - uint8_t h_u_cska8_xor6 = 0; - uint8_t h_u_cska8_fa5_xor1 = 0; - uint8_t h_u_cska8_fa5_or0 = 0; - uint8_t h_u_cska8_xor7 = 0; - uint8_t h_u_cska8_fa6_xor1 = 0; - uint8_t h_u_cska8_fa6_or0 = 0; - uint8_t h_u_cska8_and_propagate13 = 0; - uint8_t h_u_cska8_and_propagate14 = 0; - uint8_t h_u_cska8_and_propagate15 = 0; - uint8_t h_u_cska8_mux2to11_xor0 = 0; - - h_u_cska8_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_cska8_ha0_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - h_u_cska8_ha0_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - h_u_cska8_xor1 = xor_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_cska8_fa0_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_u_cska8_ha0_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_cska8_fa0_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_u_cska8_ha0_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_cska8_xor2 = xor_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_cska8_fa1_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_u_cska8_fa0_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_cska8_fa1_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_u_cska8_fa0_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_cska8_xor3 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_cska8_fa2_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_u_cska8_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_cska8_fa2_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_u_cska8_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_cska8_and_propagate00 = and_gate(((h_u_cska8_xor0 >> 0) & 0x01), ((h_u_cska8_xor2 >> 0) & 0x01)); - h_u_cska8_and_propagate01 = and_gate(((h_u_cska8_xor1 >> 0) & 0x01), ((h_u_cska8_xor3 >> 0) & 0x01)); - h_u_cska8_and_propagate02 = and_gate(((h_u_cska8_and_propagate00 >> 0) & 0x01), ((h_u_cska8_and_propagate01 >> 0) & 0x01)); - h_u_cska8_mux2to10_and1 = (mux2to1(((h_u_cska8_fa2_or0 >> 0) & 0x01), (0x00), ((h_u_cska8_and_propagate02 >> 0) & 0x01)) >> 0) & 0x01; - h_u_cska8_xor4 = xor_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_u_cska8_fa3_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((h_u_cska8_mux2to10_and1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_cska8_fa3_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((h_u_cska8_mux2to10_and1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_cska8_xor5 = xor_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_u_cska8_fa4_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((h_u_cska8_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_cska8_fa4_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((h_u_cska8_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_cska8_xor6 = xor_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_u_cska8_fa5_xor1 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((h_u_cska8_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_cska8_fa5_or0 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((h_u_cska8_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_cska8_xor7 = xor_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_u_cska8_fa6_xor1 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((h_u_cska8_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_cska8_fa6_or0 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((h_u_cska8_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_cska8_and_propagate13 = and_gate(((h_u_cska8_xor4 >> 0) & 0x01), ((h_u_cska8_xor6 >> 0) & 0x01)); - h_u_cska8_and_propagate14 = and_gate(((h_u_cska8_xor5 >> 0) & 0x01), ((h_u_cska8_xor7 >> 0) & 0x01)); - h_u_cska8_and_propagate15 = and_gate(((h_u_cska8_and_propagate13 >> 0) & 0x01), ((h_u_cska8_and_propagate14 >> 0) & 0x01)); - h_u_cska8_mux2to11_xor0 = (mux2to1(((h_u_cska8_fa6_or0 >> 0) & 0x01), ((h_u_cska8_mux2to10_and1 >> 0) & 0x01), ((h_u_cska8_and_propagate15 >> 0) & 0x01)) >> 0) & 0x01; - - h_u_cska8_out |= ((h_u_cska8_ha0_xor0 >> 0) & 0x01) << 0; - h_u_cska8_out |= ((h_u_cska8_fa0_xor1 >> 0) & 0x01) << 1; - h_u_cska8_out |= ((h_u_cska8_fa1_xor1 >> 0) & 0x01) << 2; - h_u_cska8_out |= ((h_u_cska8_fa2_xor1 >> 0) & 0x01) << 3; - h_u_cska8_out |= ((h_u_cska8_fa3_xor1 >> 0) & 0x01) << 4; - h_u_cska8_out |= ((h_u_cska8_fa4_xor1 >> 0) & 0x01) << 5; - h_u_cska8_out |= ((h_u_cska8_fa5_xor1 >> 0) & 0x01) << 6; - h_u_cska8_out |= ((h_u_cska8_fa6_xor1 >> 0) & 0x01) << 7; - h_u_cska8_out |= ((h_u_cska8_mux2to11_xor0 >> 0) & 0x01) << 8; - return h_u_cska8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i + j) == h_u_cska8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_pg_rca4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_pg_rca4.c deleted file mode 100644 index 25dfe4e..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_pg_rca4.c +++ /dev/null @@ -1,86 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t pg_fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t pg_fa_out = 0; - uint8_t pg_fa_xor0 = 0; - uint8_t pg_fa_and0 = 0; - uint8_t pg_fa_xor1 = 0; - - pg_fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_xor1 = xor_gate(((pg_fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - - pg_fa_out |= ((pg_fa_xor0 >> 0) & 0x01) << 0; - pg_fa_out |= ((pg_fa_and0 >> 0) & 0x01) << 1; - pg_fa_out |= ((pg_fa_xor1 >> 0) & 0x01) << 2; - return pg_fa_out; -} - -uint64_t h_u_pg_rca4(uint64_t a, uint64_t b){ - uint8_t h_u_pg_rca4_out = 0; - uint8_t h_u_pg_rca4_pg_fa0_xor0 = 0; - uint8_t h_u_pg_rca4_pg_fa0_and0 = 0; - uint8_t h_u_pg_rca4_pg_fa1_xor0 = 0; - uint8_t h_u_pg_rca4_pg_fa1_and0 = 0; - uint8_t h_u_pg_rca4_pg_fa1_xor1 = 0; - uint8_t h_u_pg_rca4_and1 = 0; - uint8_t h_u_pg_rca4_or1 = 0; - uint8_t h_u_pg_rca4_pg_fa2_xor0 = 0; - uint8_t h_u_pg_rca4_pg_fa2_and0 = 0; - uint8_t h_u_pg_rca4_pg_fa2_xor1 = 0; - uint8_t h_u_pg_rca4_and2 = 0; - uint8_t h_u_pg_rca4_or2 = 0; - uint8_t h_u_pg_rca4_pg_fa3_xor0 = 0; - uint8_t h_u_pg_rca4_pg_fa3_and0 = 0; - uint8_t h_u_pg_rca4_pg_fa3_xor1 = 0; - uint8_t h_u_pg_rca4_and3 = 0; - uint8_t h_u_pg_rca4_or3 = 0; - - h_u_pg_rca4_pg_fa0_xor0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_u_pg_rca4_pg_fa0_and0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_u_pg_rca4_pg_fa1_xor0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_u_pg_rca4_pg_fa0_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_pg_rca4_pg_fa1_and0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_u_pg_rca4_pg_fa0_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_pg_rca4_pg_fa1_xor1 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_u_pg_rca4_pg_fa0_and0 >> 0) & 0x01)) >> 2) & 0x01; - h_u_pg_rca4_and1 = and_gate(((h_u_pg_rca4_pg_fa0_and0 >> 0) & 0x01), ((h_u_pg_rca4_pg_fa1_xor0 >> 0) & 0x01)); - h_u_pg_rca4_or1 = or_gate(((h_u_pg_rca4_and1 >> 0) & 0x01), ((h_u_pg_rca4_pg_fa1_and0 >> 0) & 0x01)); - h_u_pg_rca4_pg_fa2_xor0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_u_pg_rca4_or1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_pg_rca4_pg_fa2_and0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_u_pg_rca4_or1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_pg_rca4_pg_fa2_xor1 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_u_pg_rca4_or1 >> 0) & 0x01)) >> 2) & 0x01; - h_u_pg_rca4_and2 = and_gate(((h_u_pg_rca4_or1 >> 0) & 0x01), ((h_u_pg_rca4_pg_fa2_xor0 >> 0) & 0x01)); - h_u_pg_rca4_or2 = or_gate(((h_u_pg_rca4_and2 >> 0) & 0x01), ((h_u_pg_rca4_pg_fa2_and0 >> 0) & 0x01)); - h_u_pg_rca4_pg_fa3_xor0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_u_pg_rca4_or2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_pg_rca4_pg_fa3_and0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_u_pg_rca4_or2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_pg_rca4_pg_fa3_xor1 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_u_pg_rca4_or2 >> 0) & 0x01)) >> 2) & 0x01; - h_u_pg_rca4_and3 = and_gate(((h_u_pg_rca4_or2 >> 0) & 0x01), ((h_u_pg_rca4_pg_fa3_xor0 >> 0) & 0x01)); - h_u_pg_rca4_or3 = or_gate(((h_u_pg_rca4_and3 >> 0) & 0x01), ((h_u_pg_rca4_pg_fa3_and0 >> 0) & 0x01)); - - h_u_pg_rca4_out |= ((h_u_pg_rca4_pg_fa0_xor0 >> 0) & 0x01) << 0; - h_u_pg_rca4_out |= ((h_u_pg_rca4_pg_fa1_xor1 >> 0) & 0x01) << 1; - h_u_pg_rca4_out |= ((h_u_pg_rca4_pg_fa2_xor1 >> 0) & 0x01) << 2; - h_u_pg_rca4_out |= ((h_u_pg_rca4_pg_fa3_xor1 >> 0) & 0x01) << 3; - h_u_pg_rca4_out |= ((h_u_pg_rca4_or3 >> 0) & 0x01) << 4; - return h_u_pg_rca4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i + j) == h_u_pg_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_pg_rca8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_pg_rca8.c deleted file mode 100644 index 6ff384e..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_pg_rca8.c +++ /dev/null @@ -1,130 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t pg_fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t pg_fa_out = 0; - uint8_t pg_fa_xor0 = 0; - uint8_t pg_fa_and0 = 0; - uint8_t pg_fa_xor1 = 0; - - pg_fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_xor1 = xor_gate(((pg_fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - - pg_fa_out |= ((pg_fa_xor0 >> 0) & 0x01) << 0; - pg_fa_out |= ((pg_fa_and0 >> 0) & 0x01) << 1; - pg_fa_out |= ((pg_fa_xor1 >> 0) & 0x01) << 2; - return pg_fa_out; -} - -uint64_t h_u_pg_rca8(uint64_t a, uint64_t b){ - uint64_t h_u_pg_rca8_out = 0; - uint8_t h_u_pg_rca8_pg_fa0_xor0 = 0; - uint8_t h_u_pg_rca8_pg_fa0_and0 = 0; - uint8_t h_u_pg_rca8_pg_fa1_xor0 = 0; - uint8_t h_u_pg_rca8_pg_fa1_and0 = 0; - uint8_t h_u_pg_rca8_pg_fa1_xor1 = 0; - uint8_t h_u_pg_rca8_and1 = 0; - uint8_t h_u_pg_rca8_or1 = 0; - uint8_t h_u_pg_rca8_pg_fa2_xor0 = 0; - uint8_t h_u_pg_rca8_pg_fa2_and0 = 0; - uint8_t h_u_pg_rca8_pg_fa2_xor1 = 0; - uint8_t h_u_pg_rca8_and2 = 0; - uint8_t h_u_pg_rca8_or2 = 0; - uint8_t h_u_pg_rca8_pg_fa3_xor0 = 0; - uint8_t h_u_pg_rca8_pg_fa3_and0 = 0; - uint8_t h_u_pg_rca8_pg_fa3_xor1 = 0; - uint8_t h_u_pg_rca8_and3 = 0; - uint8_t h_u_pg_rca8_or3 = 0; - uint8_t h_u_pg_rca8_pg_fa4_xor0 = 0; - uint8_t h_u_pg_rca8_pg_fa4_and0 = 0; - uint8_t h_u_pg_rca8_pg_fa4_xor1 = 0; - uint8_t h_u_pg_rca8_and4 = 0; - uint8_t h_u_pg_rca8_or4 = 0; - uint8_t h_u_pg_rca8_pg_fa5_xor0 = 0; - uint8_t h_u_pg_rca8_pg_fa5_and0 = 0; - uint8_t h_u_pg_rca8_pg_fa5_xor1 = 0; - uint8_t h_u_pg_rca8_and5 = 0; - uint8_t h_u_pg_rca8_or5 = 0; - uint8_t h_u_pg_rca8_pg_fa6_xor0 = 0; - uint8_t h_u_pg_rca8_pg_fa6_and0 = 0; - uint8_t h_u_pg_rca8_pg_fa6_xor1 = 0; - uint8_t h_u_pg_rca8_and6 = 0; - uint8_t h_u_pg_rca8_or6 = 0; - uint8_t h_u_pg_rca8_pg_fa7_xor0 = 0; - uint8_t h_u_pg_rca8_pg_fa7_and0 = 0; - uint8_t h_u_pg_rca8_pg_fa7_xor1 = 0; - uint8_t h_u_pg_rca8_and7 = 0; - uint8_t h_u_pg_rca8_or7 = 0; - - h_u_pg_rca8_pg_fa0_xor0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_u_pg_rca8_pg_fa0_and0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_u_pg_rca8_pg_fa1_xor0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_u_pg_rca8_pg_fa0_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_pg_rca8_pg_fa1_and0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_u_pg_rca8_pg_fa0_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_pg_rca8_pg_fa1_xor1 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_u_pg_rca8_pg_fa0_and0 >> 0) & 0x01)) >> 2) & 0x01; - h_u_pg_rca8_and1 = and_gate(((h_u_pg_rca8_pg_fa0_and0 >> 0) & 0x01), ((h_u_pg_rca8_pg_fa1_xor0 >> 0) & 0x01)); - h_u_pg_rca8_or1 = or_gate(((h_u_pg_rca8_and1 >> 0) & 0x01), ((h_u_pg_rca8_pg_fa1_and0 >> 0) & 0x01)); - h_u_pg_rca8_pg_fa2_xor0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_u_pg_rca8_or1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_pg_rca8_pg_fa2_and0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_u_pg_rca8_or1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_pg_rca8_pg_fa2_xor1 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_u_pg_rca8_or1 >> 0) & 0x01)) >> 2) & 0x01; - h_u_pg_rca8_and2 = and_gate(((h_u_pg_rca8_or1 >> 0) & 0x01), ((h_u_pg_rca8_pg_fa2_xor0 >> 0) & 0x01)); - h_u_pg_rca8_or2 = or_gate(((h_u_pg_rca8_and2 >> 0) & 0x01), ((h_u_pg_rca8_pg_fa2_and0 >> 0) & 0x01)); - h_u_pg_rca8_pg_fa3_xor0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_u_pg_rca8_or2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_pg_rca8_pg_fa3_and0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_u_pg_rca8_or2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_pg_rca8_pg_fa3_xor1 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_u_pg_rca8_or2 >> 0) & 0x01)) >> 2) & 0x01; - h_u_pg_rca8_and3 = and_gate(((h_u_pg_rca8_or2 >> 0) & 0x01), ((h_u_pg_rca8_pg_fa3_xor0 >> 0) & 0x01)); - h_u_pg_rca8_or3 = or_gate(((h_u_pg_rca8_and3 >> 0) & 0x01), ((h_u_pg_rca8_pg_fa3_and0 >> 0) & 0x01)); - h_u_pg_rca8_pg_fa4_xor0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((h_u_pg_rca8_or3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_pg_rca8_pg_fa4_and0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((h_u_pg_rca8_or3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_pg_rca8_pg_fa4_xor1 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((h_u_pg_rca8_or3 >> 0) & 0x01)) >> 2) & 0x01; - h_u_pg_rca8_and4 = and_gate(((h_u_pg_rca8_or3 >> 0) & 0x01), ((h_u_pg_rca8_pg_fa4_xor0 >> 0) & 0x01)); - h_u_pg_rca8_or4 = or_gate(((h_u_pg_rca8_and4 >> 0) & 0x01), ((h_u_pg_rca8_pg_fa4_and0 >> 0) & 0x01)); - h_u_pg_rca8_pg_fa5_xor0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((h_u_pg_rca8_or4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_pg_rca8_pg_fa5_and0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((h_u_pg_rca8_or4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_pg_rca8_pg_fa5_xor1 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((h_u_pg_rca8_or4 >> 0) & 0x01)) >> 2) & 0x01; - h_u_pg_rca8_and5 = and_gate(((h_u_pg_rca8_or4 >> 0) & 0x01), ((h_u_pg_rca8_pg_fa5_xor0 >> 0) & 0x01)); - h_u_pg_rca8_or5 = or_gate(((h_u_pg_rca8_and5 >> 0) & 0x01), ((h_u_pg_rca8_pg_fa5_and0 >> 0) & 0x01)); - h_u_pg_rca8_pg_fa6_xor0 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((h_u_pg_rca8_or5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_pg_rca8_pg_fa6_and0 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((h_u_pg_rca8_or5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_pg_rca8_pg_fa6_xor1 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((h_u_pg_rca8_or5 >> 0) & 0x01)) >> 2) & 0x01; - h_u_pg_rca8_and6 = and_gate(((h_u_pg_rca8_or5 >> 0) & 0x01), ((h_u_pg_rca8_pg_fa6_xor0 >> 0) & 0x01)); - h_u_pg_rca8_or6 = or_gate(((h_u_pg_rca8_and6 >> 0) & 0x01), ((h_u_pg_rca8_pg_fa6_and0 >> 0) & 0x01)); - h_u_pg_rca8_pg_fa7_xor0 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((h_u_pg_rca8_or6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_pg_rca8_pg_fa7_and0 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((h_u_pg_rca8_or6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_pg_rca8_pg_fa7_xor1 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((h_u_pg_rca8_or6 >> 0) & 0x01)) >> 2) & 0x01; - h_u_pg_rca8_and7 = and_gate(((h_u_pg_rca8_or6 >> 0) & 0x01), ((h_u_pg_rca8_pg_fa7_xor0 >> 0) & 0x01)); - h_u_pg_rca8_or7 = or_gate(((h_u_pg_rca8_and7 >> 0) & 0x01), ((h_u_pg_rca8_pg_fa7_and0 >> 0) & 0x01)); - - h_u_pg_rca8_out |= ((h_u_pg_rca8_pg_fa0_xor0 >> 0) & 0x01) << 0; - h_u_pg_rca8_out |= ((h_u_pg_rca8_pg_fa1_xor1 >> 0) & 0x01) << 1; - h_u_pg_rca8_out |= ((h_u_pg_rca8_pg_fa2_xor1 >> 0) & 0x01) << 2; - h_u_pg_rca8_out |= ((h_u_pg_rca8_pg_fa3_xor1 >> 0) & 0x01) << 3; - h_u_pg_rca8_out |= ((h_u_pg_rca8_pg_fa4_xor1 >> 0) & 0x01) << 4; - h_u_pg_rca8_out |= ((h_u_pg_rca8_pg_fa5_xor1 >> 0) & 0x01) << 5; - h_u_pg_rca8_out |= ((h_u_pg_rca8_pg_fa6_xor1 >> 0) & 0x01) << 6; - h_u_pg_rca8_out |= ((h_u_pg_rca8_pg_fa7_xor1 >> 0) & 0x01) << 7; - h_u_pg_rca8_out |= ((h_u_pg_rca8_or7 >> 0) & 0x01) << 8; - return h_u_pg_rca8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i + j) == h_u_pg_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_rca4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_rca4.c deleted file mode 100644 index 77e8ae8..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_rca4.c +++ /dev/null @@ -1,84 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint64_t h_u_rca4(uint64_t a, uint64_t b){ - uint8_t h_u_rca4_out = 0; - uint8_t h_u_rca4_ha_xor0 = 0; - uint8_t h_u_rca4_ha_and0 = 0; - uint8_t h_u_rca4_fa1_xor1 = 0; - uint8_t h_u_rca4_fa1_or0 = 0; - uint8_t h_u_rca4_fa2_xor1 = 0; - uint8_t h_u_rca4_fa2_or0 = 0; - uint8_t h_u_rca4_fa3_xor1 = 0; - uint8_t h_u_rca4_fa3_or0 = 0; - - h_u_rca4_ha_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - h_u_rca4_ha_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - h_u_rca4_fa1_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_u_rca4_ha_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_rca4_fa1_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_u_rca4_ha_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_rca4_fa2_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_u_rca4_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_rca4_fa2_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_u_rca4_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_rca4_fa3_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_u_rca4_fa2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_rca4_fa3_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_u_rca4_fa2_or0 >> 0) & 0x01)) >> 1) & 0x01; - - h_u_rca4_out |= ((h_u_rca4_ha_xor0 >> 0) & 0x01) << 0; - h_u_rca4_out |= ((h_u_rca4_fa1_xor1 >> 0) & 0x01) << 1; - h_u_rca4_out |= ((h_u_rca4_fa2_xor1 >> 0) & 0x01) << 2; - h_u_rca4_out |= ((h_u_rca4_fa3_xor1 >> 0) & 0x01) << 3; - h_u_rca4_out |= ((h_u_rca4_fa3_or0 >> 0) & 0x01) << 4; - return h_u_rca4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i + j) == h_u_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_rca8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_rca8.c deleted file mode 100644 index f4a075c..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/adders/h_u_rca8.c +++ /dev/null @@ -1,104 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint64_t h_u_rca8(uint64_t a, uint64_t b){ - uint64_t h_u_rca8_out = 0; - uint8_t h_u_rca8_ha_xor0 = 0; - uint8_t h_u_rca8_ha_and0 = 0; - uint8_t h_u_rca8_fa1_xor1 = 0; - uint8_t h_u_rca8_fa1_or0 = 0; - uint8_t h_u_rca8_fa2_xor1 = 0; - uint8_t h_u_rca8_fa2_or0 = 0; - uint8_t h_u_rca8_fa3_xor1 = 0; - uint8_t h_u_rca8_fa3_or0 = 0; - uint8_t h_u_rca8_fa4_xor1 = 0; - uint8_t h_u_rca8_fa4_or0 = 0; - uint8_t h_u_rca8_fa5_xor1 = 0; - uint8_t h_u_rca8_fa5_or0 = 0; - uint8_t h_u_rca8_fa6_xor1 = 0; - uint8_t h_u_rca8_fa6_or0 = 0; - uint8_t h_u_rca8_fa7_xor1 = 0; - uint8_t h_u_rca8_fa7_or0 = 0; - - h_u_rca8_ha_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - h_u_rca8_ha_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - h_u_rca8_fa1_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_u_rca8_ha_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_rca8_fa1_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((h_u_rca8_ha_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_rca8_fa2_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_u_rca8_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_rca8_fa2_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((h_u_rca8_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_rca8_fa3_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_u_rca8_fa2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_rca8_fa3_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((h_u_rca8_fa2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_rca8_fa4_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((h_u_rca8_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_rca8_fa4_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((h_u_rca8_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_rca8_fa5_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((h_u_rca8_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_rca8_fa5_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((h_u_rca8_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_rca8_fa6_xor1 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((h_u_rca8_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_rca8_fa6_or0 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((h_u_rca8_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_rca8_fa7_xor1 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((h_u_rca8_fa6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_rca8_fa7_or0 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((h_u_rca8_fa6_or0 >> 0) & 0x01)) >> 1) & 0x01; - - h_u_rca8_out |= ((h_u_rca8_ha_xor0 >> 0) & 0x01) << 0; - h_u_rca8_out |= ((h_u_rca8_fa1_xor1 >> 0) & 0x01) << 1; - h_u_rca8_out |= ((h_u_rca8_fa2_xor1 >> 0) & 0x01) << 2; - h_u_rca8_out |= ((h_u_rca8_fa3_xor1 >> 0) & 0x01) << 3; - h_u_rca8_out |= ((h_u_rca8_fa4_xor1 >> 0) & 0x01) << 4; - h_u_rca8_out |= ((h_u_rca8_fa5_xor1 >> 0) & 0x01) << 5; - h_u_rca8_out |= ((h_u_rca8_fa6_xor1 >> 0) & 0x01) << 6; - h_u_rca8_out |= ((h_u_rca8_fa7_xor1 >> 0) & 0x01) << 7; - h_u_rca8_out |= ((h_u_rca8_fa7_or0 >> 0) & 0x01) << 8; - return h_u_rca8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i + j) == h_u_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/dividers/h_arrdiv4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/dividers/h_arrdiv4.c deleted file mode 100644 index 4c35130..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/dividers/h_arrdiv4.c +++ /dev/null @@ -1,168 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t fs(uint8_t a, uint8_t b, uint8_t bin){ - uint8_t fs_out = 0; - uint8_t fs_xor0 = 0; - uint8_t fs_not0 = 0; - uint8_t fs_and0 = 0; - uint8_t fs_xor1 = 0; - uint8_t fs_not1 = 0; - uint8_t fs_and1 = 0; - uint8_t fs_or0 = 0; - - fs_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fs_not0 = not_gate(((a >> 0) & 0x01)); - fs_and0 = and_gate(((fs_not0 >> 0) & 0x01), ((b >> 0) & 0x01)); - fs_xor1 = xor_gate(((bin >> 0) & 0x01), ((fs_xor0 >> 0) & 0x01)); - fs_not1 = not_gate(((fs_xor0 >> 0) & 0x01)); - fs_and1 = and_gate(((fs_not1 >> 0) & 0x01), ((bin >> 0) & 0x01)); - fs_or0 = or_gate(((fs_and1 >> 0) & 0x01), ((fs_and0 >> 0) & 0x01)); - - fs_out |= ((fs_xor1 >> 0) & 0x01) << 0; - fs_out |= ((fs_or0 >> 0) & 0x01) << 1; - return fs_out; -} - -uint8_t mux2to1(uint8_t d0, uint8_t d1, uint8_t sel){ - uint8_t mux2to1_out = 0; - uint8_t mux2to1_and0 = 0; - uint8_t mux2to1_not0 = 0; - uint8_t mux2to1_and1 = 0; - uint8_t mux2to1_xor0 = 0; - - mux2to1_and0 = and_gate(((d1 >> 0) & 0x01), ((sel >> 0) & 0x01)); - mux2to1_not0 = not_gate(((sel >> 0) & 0x01)); - mux2to1_and1 = and_gate(((d0 >> 0) & 0x01), ((mux2to1_not0 >> 0) & 0x01)); - mux2to1_xor0 = xor_gate(((mux2to1_and0 >> 0) & 0x01), ((mux2to1_and1 >> 0) & 0x01)); - - mux2to1_out |= ((mux2to1_xor0 >> 0) & 0x01) << 0; - return mux2to1_out; -} - -uint64_t h_arrdiv4(uint64_t a, uint64_t b){ - uint8_t h_arrdiv4_out = 0; - uint8_t h_arrdiv4_fs0_xor0 = 0; - uint8_t h_arrdiv4_fs0_and0 = 0; - uint8_t h_arrdiv4_fs1_xor1 = 0; - uint8_t h_arrdiv4_fs1_or0 = 0; - uint8_t h_arrdiv4_fs2_xor1 = 0; - uint8_t h_arrdiv4_fs2_or0 = 0; - uint8_t h_arrdiv4_fs3_xor1 = 0; - uint8_t h_arrdiv4_fs3_or0 = 0; - uint8_t h_arrdiv4_mux2to10_xor0 = 0; - uint8_t h_arrdiv4_mux2to11_and1 = 0; - uint8_t h_arrdiv4_mux2to12_and1 = 0; - uint8_t h_arrdiv4_not0 = 0; - uint8_t h_arrdiv4_fs4_xor0 = 0; - uint8_t h_arrdiv4_fs4_and0 = 0; - uint8_t h_arrdiv4_fs5_xor1 = 0; - uint8_t h_arrdiv4_fs5_or0 = 0; - uint8_t h_arrdiv4_fs6_xor1 = 0; - uint8_t h_arrdiv4_fs6_or0 = 0; - uint8_t h_arrdiv4_fs7_xor1 = 0; - uint8_t h_arrdiv4_fs7_or0 = 0; - uint8_t h_arrdiv4_mux2to13_xor0 = 0; - uint8_t h_arrdiv4_mux2to14_xor0 = 0; - uint8_t h_arrdiv4_mux2to15_xor0 = 0; - uint8_t h_arrdiv4_not1 = 0; - uint8_t h_arrdiv4_fs8_xor0 = 0; - uint8_t h_arrdiv4_fs8_and0 = 0; - uint8_t h_arrdiv4_fs9_xor1 = 0; - uint8_t h_arrdiv4_fs9_or0 = 0; - uint8_t h_arrdiv4_fs10_xor1 = 0; - uint8_t h_arrdiv4_fs10_or0 = 0; - uint8_t h_arrdiv4_fs11_xor1 = 0; - uint8_t h_arrdiv4_fs11_or0 = 0; - uint8_t h_arrdiv4_mux2to16_xor0 = 0; - uint8_t h_arrdiv4_mux2to17_xor0 = 0; - uint8_t h_arrdiv4_mux2to18_xor0 = 0; - uint8_t h_arrdiv4_not2 = 0; - uint8_t h_arrdiv4_fs12_xor0 = 0; - uint8_t h_arrdiv4_fs12_and0 = 0; - uint8_t h_arrdiv4_fs13_xor1 = 0; - uint8_t h_arrdiv4_fs13_or0 = 0; - uint8_t h_arrdiv4_fs14_xor1 = 0; - uint8_t h_arrdiv4_fs14_or0 = 0; - uint8_t h_arrdiv4_fs15_xor1 = 0; - uint8_t h_arrdiv4_fs15_or0 = 0; - uint8_t h_arrdiv4_not3 = 0; - - h_arrdiv4_fs0_xor0 = (fs(((a >> 3) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_arrdiv4_fs0_and0 = (fs(((a >> 3) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_arrdiv4_fs1_xor1 = (fs((0x00), ((b >> 1) & 0x01), ((h_arrdiv4_fs0_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_fs1_or0 = (fs((0x00), ((b >> 1) & 0x01), ((h_arrdiv4_fs0_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv4_fs2_xor1 = (fs((0x00), ((b >> 2) & 0x01), ((h_arrdiv4_fs1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_fs2_or0 = (fs((0x00), ((b >> 2) & 0x01), ((h_arrdiv4_fs1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv4_fs3_xor1 = (fs((0x00), ((b >> 3) & 0x01), ((h_arrdiv4_fs2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_fs3_or0 = (fs((0x00), ((b >> 3) & 0x01), ((h_arrdiv4_fs2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv4_mux2to10_xor0 = (mux2to1(((h_arrdiv4_fs0_xor0 >> 0) & 0x01), ((a >> 3) & 0x01), ((h_arrdiv4_fs3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_mux2to11_and1 = (mux2to1(((h_arrdiv4_fs1_xor1 >> 0) & 0x01), (0x00), ((h_arrdiv4_fs3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_mux2to12_and1 = (mux2to1(((h_arrdiv4_fs2_xor1 >> 0) & 0x01), (0x00), ((h_arrdiv4_fs3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_not0 = not_gate(((h_arrdiv4_fs3_or0 >> 0) & 0x01)); - h_arrdiv4_fs4_xor0 = (fs(((a >> 2) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_arrdiv4_fs4_and0 = (fs(((a >> 2) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_arrdiv4_fs5_xor1 = (fs(((h_arrdiv4_mux2to10_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv4_fs4_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_fs5_or0 = (fs(((h_arrdiv4_mux2to10_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv4_fs4_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv4_fs6_xor1 = (fs(((h_arrdiv4_mux2to11_and1 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv4_fs5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_fs6_or0 = (fs(((h_arrdiv4_mux2to11_and1 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv4_fs5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv4_fs7_xor1 = (fs(((h_arrdiv4_mux2to12_and1 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv4_fs6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_fs7_or0 = (fs(((h_arrdiv4_mux2to12_and1 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv4_fs6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv4_mux2to13_xor0 = (mux2to1(((h_arrdiv4_fs4_xor0 >> 0) & 0x01), ((a >> 2) & 0x01), ((h_arrdiv4_fs7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_mux2to14_xor0 = (mux2to1(((h_arrdiv4_fs5_xor1 >> 0) & 0x01), ((h_arrdiv4_mux2to10_xor0 >> 0) & 0x01), ((h_arrdiv4_fs7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_mux2to15_xor0 = (mux2to1(((h_arrdiv4_fs6_xor1 >> 0) & 0x01), ((h_arrdiv4_mux2to11_and1 >> 0) & 0x01), ((h_arrdiv4_fs7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_not1 = not_gate(((h_arrdiv4_fs7_or0 >> 0) & 0x01)); - h_arrdiv4_fs8_xor0 = (fs(((a >> 1) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_arrdiv4_fs8_and0 = (fs(((a >> 1) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_arrdiv4_fs9_xor1 = (fs(((h_arrdiv4_mux2to13_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv4_fs8_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_fs9_or0 = (fs(((h_arrdiv4_mux2to13_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv4_fs8_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv4_fs10_xor1 = (fs(((h_arrdiv4_mux2to14_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv4_fs9_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_fs10_or0 = (fs(((h_arrdiv4_mux2to14_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv4_fs9_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv4_fs11_xor1 = (fs(((h_arrdiv4_mux2to15_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv4_fs10_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_fs11_or0 = (fs(((h_arrdiv4_mux2to15_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv4_fs10_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv4_mux2to16_xor0 = (mux2to1(((h_arrdiv4_fs8_xor0 >> 0) & 0x01), ((a >> 1) & 0x01), ((h_arrdiv4_fs11_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_mux2to17_xor0 = (mux2to1(((h_arrdiv4_fs9_xor1 >> 0) & 0x01), ((h_arrdiv4_mux2to13_xor0 >> 0) & 0x01), ((h_arrdiv4_fs11_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_mux2to18_xor0 = (mux2to1(((h_arrdiv4_fs10_xor1 >> 0) & 0x01), ((h_arrdiv4_mux2to14_xor0 >> 0) & 0x01), ((h_arrdiv4_fs11_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_not2 = not_gate(((h_arrdiv4_fs11_or0 >> 0) & 0x01)); - h_arrdiv4_fs12_xor0 = (fs(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_arrdiv4_fs12_and0 = (fs(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_arrdiv4_fs13_xor1 = (fs(((h_arrdiv4_mux2to16_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv4_fs12_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_fs13_or0 = (fs(((h_arrdiv4_mux2to16_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv4_fs12_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv4_fs14_xor1 = (fs(((h_arrdiv4_mux2to17_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv4_fs13_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_fs14_or0 = (fs(((h_arrdiv4_mux2to17_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv4_fs13_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv4_fs15_xor1 = (fs(((h_arrdiv4_mux2to18_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv4_fs14_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv4_fs15_or0 = (fs(((h_arrdiv4_mux2to18_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv4_fs14_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv4_not3 = not_gate(((h_arrdiv4_fs15_or0 >> 0) & 0x01)); - - h_arrdiv4_out |= ((h_arrdiv4_not3 >> 0) & 0x01) << 0; - h_arrdiv4_out |= ((h_arrdiv4_not2 >> 0) & 0x01) << 1; - h_arrdiv4_out |= ((h_arrdiv4_not1 >> 0) & 0x01) << 2; - h_arrdiv4_out |= ((h_arrdiv4_not0 >> 0) & 0x01) << 3; - return h_arrdiv4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 1; j < 16; j++){ - assert((i / j) == h_arrdiv4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/dividers/h_arrdiv8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/dividers/h_arrdiv8.c deleted file mode 100644 index 2533ea9..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/dividers/h_arrdiv8.c +++ /dev/null @@ -1,452 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t fs(uint8_t a, uint8_t b, uint8_t bin){ - uint8_t fs_out = 0; - uint8_t fs_xor0 = 0; - uint8_t fs_not0 = 0; - uint8_t fs_and0 = 0; - uint8_t fs_xor1 = 0; - uint8_t fs_not1 = 0; - uint8_t fs_and1 = 0; - uint8_t fs_or0 = 0; - - fs_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fs_not0 = not_gate(((a >> 0) & 0x01)); - fs_and0 = and_gate(((fs_not0 >> 0) & 0x01), ((b >> 0) & 0x01)); - fs_xor1 = xor_gate(((bin >> 0) & 0x01), ((fs_xor0 >> 0) & 0x01)); - fs_not1 = not_gate(((fs_xor0 >> 0) & 0x01)); - fs_and1 = and_gate(((fs_not1 >> 0) & 0x01), ((bin >> 0) & 0x01)); - fs_or0 = or_gate(((fs_and1 >> 0) & 0x01), ((fs_and0 >> 0) & 0x01)); - - fs_out |= ((fs_xor1 >> 0) & 0x01) << 0; - fs_out |= ((fs_or0 >> 0) & 0x01) << 1; - return fs_out; -} - -uint8_t mux2to1(uint8_t d0, uint8_t d1, uint8_t sel){ - uint8_t mux2to1_out = 0; - uint8_t mux2to1_and0 = 0; - uint8_t mux2to1_not0 = 0; - uint8_t mux2to1_and1 = 0; - uint8_t mux2to1_xor0 = 0; - - mux2to1_and0 = and_gate(((d1 >> 0) & 0x01), ((sel >> 0) & 0x01)); - mux2to1_not0 = not_gate(((sel >> 0) & 0x01)); - mux2to1_and1 = and_gate(((d0 >> 0) & 0x01), ((mux2to1_not0 >> 0) & 0x01)); - mux2to1_xor0 = xor_gate(((mux2to1_and0 >> 0) & 0x01), ((mux2to1_and1 >> 0) & 0x01)); - - mux2to1_out |= ((mux2to1_xor0 >> 0) & 0x01) << 0; - return mux2to1_out; -} - -uint64_t h_arrdiv8(uint64_t a, uint64_t b){ - uint8_t h_arrdiv8_out = 0; - uint8_t h_arrdiv8_fs0_xor0 = 0; - uint8_t h_arrdiv8_fs0_and0 = 0; - uint8_t h_arrdiv8_fs1_xor1 = 0; - uint8_t h_arrdiv8_fs1_or0 = 0; - uint8_t h_arrdiv8_fs2_xor1 = 0; - uint8_t h_arrdiv8_fs2_or0 = 0; - uint8_t h_arrdiv8_fs3_xor1 = 0; - uint8_t h_arrdiv8_fs3_or0 = 0; - uint8_t h_arrdiv8_fs4_xor1 = 0; - uint8_t h_arrdiv8_fs4_or0 = 0; - uint8_t h_arrdiv8_fs5_xor1 = 0; - uint8_t h_arrdiv8_fs5_or0 = 0; - uint8_t h_arrdiv8_fs6_xor1 = 0; - uint8_t h_arrdiv8_fs6_or0 = 0; - uint8_t h_arrdiv8_fs7_xor1 = 0; - uint8_t h_arrdiv8_fs7_or0 = 0; - uint8_t h_arrdiv8_mux2to10_xor0 = 0; - uint8_t h_arrdiv8_mux2to11_and1 = 0; - uint8_t h_arrdiv8_mux2to12_and1 = 0; - uint8_t h_arrdiv8_mux2to13_and1 = 0; - uint8_t h_arrdiv8_mux2to14_and1 = 0; - uint8_t h_arrdiv8_mux2to15_and1 = 0; - uint8_t h_arrdiv8_mux2to16_and1 = 0; - uint8_t h_arrdiv8_not0 = 0; - uint8_t h_arrdiv8_fs8_xor0 = 0; - uint8_t h_arrdiv8_fs8_and0 = 0; - uint8_t h_arrdiv8_fs9_xor1 = 0; - uint8_t h_arrdiv8_fs9_or0 = 0; - uint8_t h_arrdiv8_fs10_xor1 = 0; - uint8_t h_arrdiv8_fs10_or0 = 0; - uint8_t h_arrdiv8_fs11_xor1 = 0; - uint8_t h_arrdiv8_fs11_or0 = 0; - uint8_t h_arrdiv8_fs12_xor1 = 0; - uint8_t h_arrdiv8_fs12_or0 = 0; - uint8_t h_arrdiv8_fs13_xor1 = 0; - uint8_t h_arrdiv8_fs13_or0 = 0; - uint8_t h_arrdiv8_fs14_xor1 = 0; - uint8_t h_arrdiv8_fs14_or0 = 0; - uint8_t h_arrdiv8_fs15_xor1 = 0; - uint8_t h_arrdiv8_fs15_or0 = 0; - uint8_t h_arrdiv8_mux2to17_xor0 = 0; - uint8_t h_arrdiv8_mux2to18_xor0 = 0; - uint8_t h_arrdiv8_mux2to19_xor0 = 0; - uint8_t h_arrdiv8_mux2to110_xor0 = 0; - uint8_t h_arrdiv8_mux2to111_xor0 = 0; - uint8_t h_arrdiv8_mux2to112_xor0 = 0; - uint8_t h_arrdiv8_mux2to113_xor0 = 0; - uint8_t h_arrdiv8_not1 = 0; - uint8_t h_arrdiv8_fs16_xor0 = 0; - uint8_t h_arrdiv8_fs16_and0 = 0; - uint8_t h_arrdiv8_fs17_xor1 = 0; - uint8_t h_arrdiv8_fs17_or0 = 0; - uint8_t h_arrdiv8_fs18_xor1 = 0; - uint8_t h_arrdiv8_fs18_or0 = 0; - uint8_t h_arrdiv8_fs19_xor1 = 0; - uint8_t h_arrdiv8_fs19_or0 = 0; - uint8_t h_arrdiv8_fs20_xor1 = 0; - uint8_t h_arrdiv8_fs20_or0 = 0; - uint8_t h_arrdiv8_fs21_xor1 = 0; - uint8_t h_arrdiv8_fs21_or0 = 0; - uint8_t h_arrdiv8_fs22_xor1 = 0; - uint8_t h_arrdiv8_fs22_or0 = 0; - uint8_t h_arrdiv8_fs23_xor1 = 0; - uint8_t h_arrdiv8_fs23_or0 = 0; - uint8_t h_arrdiv8_mux2to114_xor0 = 0; - uint8_t h_arrdiv8_mux2to115_xor0 = 0; - uint8_t h_arrdiv8_mux2to116_xor0 = 0; - uint8_t h_arrdiv8_mux2to117_xor0 = 0; - uint8_t h_arrdiv8_mux2to118_xor0 = 0; - uint8_t h_arrdiv8_mux2to119_xor0 = 0; - uint8_t h_arrdiv8_mux2to120_xor0 = 0; - uint8_t h_arrdiv8_not2 = 0; - uint8_t h_arrdiv8_fs24_xor0 = 0; - uint8_t h_arrdiv8_fs24_and0 = 0; - uint8_t h_arrdiv8_fs25_xor1 = 0; - uint8_t h_arrdiv8_fs25_or0 = 0; - uint8_t h_arrdiv8_fs26_xor1 = 0; - uint8_t h_arrdiv8_fs26_or0 = 0; - uint8_t h_arrdiv8_fs27_xor1 = 0; - uint8_t h_arrdiv8_fs27_or0 = 0; - uint8_t h_arrdiv8_fs28_xor1 = 0; - uint8_t h_arrdiv8_fs28_or0 = 0; - uint8_t h_arrdiv8_fs29_xor1 = 0; - uint8_t h_arrdiv8_fs29_or0 = 0; - uint8_t h_arrdiv8_fs30_xor1 = 0; - uint8_t h_arrdiv8_fs30_or0 = 0; - uint8_t h_arrdiv8_fs31_xor1 = 0; - uint8_t h_arrdiv8_fs31_or0 = 0; - uint8_t h_arrdiv8_mux2to121_xor0 = 0; - uint8_t h_arrdiv8_mux2to122_xor0 = 0; - uint8_t h_arrdiv8_mux2to123_xor0 = 0; - uint8_t h_arrdiv8_mux2to124_xor0 = 0; - uint8_t h_arrdiv8_mux2to125_xor0 = 0; - uint8_t h_arrdiv8_mux2to126_xor0 = 0; - uint8_t h_arrdiv8_mux2to127_xor0 = 0; - uint8_t h_arrdiv8_not3 = 0; - uint8_t h_arrdiv8_fs32_xor0 = 0; - uint8_t h_arrdiv8_fs32_and0 = 0; - uint8_t h_arrdiv8_fs33_xor1 = 0; - uint8_t h_arrdiv8_fs33_or0 = 0; - uint8_t h_arrdiv8_fs34_xor1 = 0; - uint8_t h_arrdiv8_fs34_or0 = 0; - uint8_t h_arrdiv8_fs35_xor1 = 0; - uint8_t h_arrdiv8_fs35_or0 = 0; - uint8_t h_arrdiv8_fs36_xor1 = 0; - uint8_t h_arrdiv8_fs36_or0 = 0; - uint8_t h_arrdiv8_fs37_xor1 = 0; - uint8_t h_arrdiv8_fs37_or0 = 0; - uint8_t h_arrdiv8_fs38_xor1 = 0; - uint8_t h_arrdiv8_fs38_or0 = 0; - uint8_t h_arrdiv8_fs39_xor1 = 0; - uint8_t h_arrdiv8_fs39_or0 = 0; - uint8_t h_arrdiv8_mux2to128_xor0 = 0; - uint8_t h_arrdiv8_mux2to129_xor0 = 0; - uint8_t h_arrdiv8_mux2to130_xor0 = 0; - uint8_t h_arrdiv8_mux2to131_xor0 = 0; - uint8_t h_arrdiv8_mux2to132_xor0 = 0; - uint8_t h_arrdiv8_mux2to133_xor0 = 0; - uint8_t h_arrdiv8_mux2to134_xor0 = 0; - uint8_t h_arrdiv8_not4 = 0; - uint8_t h_arrdiv8_fs40_xor0 = 0; - uint8_t h_arrdiv8_fs40_and0 = 0; - uint8_t h_arrdiv8_fs41_xor1 = 0; - uint8_t h_arrdiv8_fs41_or0 = 0; - uint8_t h_arrdiv8_fs42_xor1 = 0; - uint8_t h_arrdiv8_fs42_or0 = 0; - uint8_t h_arrdiv8_fs43_xor1 = 0; - uint8_t h_arrdiv8_fs43_or0 = 0; - uint8_t h_arrdiv8_fs44_xor1 = 0; - uint8_t h_arrdiv8_fs44_or0 = 0; - uint8_t h_arrdiv8_fs45_xor1 = 0; - uint8_t h_arrdiv8_fs45_or0 = 0; - uint8_t h_arrdiv8_fs46_xor1 = 0; - uint8_t h_arrdiv8_fs46_or0 = 0; - uint8_t h_arrdiv8_fs47_xor1 = 0; - uint8_t h_arrdiv8_fs47_or0 = 0; - uint8_t h_arrdiv8_mux2to135_xor0 = 0; - uint8_t h_arrdiv8_mux2to136_xor0 = 0; - uint8_t h_arrdiv8_mux2to137_xor0 = 0; - uint8_t h_arrdiv8_mux2to138_xor0 = 0; - uint8_t h_arrdiv8_mux2to139_xor0 = 0; - uint8_t h_arrdiv8_mux2to140_xor0 = 0; - uint8_t h_arrdiv8_mux2to141_xor0 = 0; - uint8_t h_arrdiv8_not5 = 0; - uint8_t h_arrdiv8_fs48_xor0 = 0; - uint8_t h_arrdiv8_fs48_and0 = 0; - uint8_t h_arrdiv8_fs49_xor1 = 0; - uint8_t h_arrdiv8_fs49_or0 = 0; - uint8_t h_arrdiv8_fs50_xor1 = 0; - uint8_t h_arrdiv8_fs50_or0 = 0; - uint8_t h_arrdiv8_fs51_xor1 = 0; - uint8_t h_arrdiv8_fs51_or0 = 0; - uint8_t h_arrdiv8_fs52_xor1 = 0; - uint8_t h_arrdiv8_fs52_or0 = 0; - uint8_t h_arrdiv8_fs53_xor1 = 0; - uint8_t h_arrdiv8_fs53_or0 = 0; - uint8_t h_arrdiv8_fs54_xor1 = 0; - uint8_t h_arrdiv8_fs54_or0 = 0; - uint8_t h_arrdiv8_fs55_xor1 = 0; - uint8_t h_arrdiv8_fs55_or0 = 0; - uint8_t h_arrdiv8_mux2to142_xor0 = 0; - uint8_t h_arrdiv8_mux2to143_xor0 = 0; - uint8_t h_arrdiv8_mux2to144_xor0 = 0; - uint8_t h_arrdiv8_mux2to145_xor0 = 0; - uint8_t h_arrdiv8_mux2to146_xor0 = 0; - uint8_t h_arrdiv8_mux2to147_xor0 = 0; - uint8_t h_arrdiv8_mux2to148_xor0 = 0; - uint8_t h_arrdiv8_not6 = 0; - uint8_t h_arrdiv8_fs56_xor0 = 0; - uint8_t h_arrdiv8_fs56_and0 = 0; - uint8_t h_arrdiv8_fs57_xor1 = 0; - uint8_t h_arrdiv8_fs57_or0 = 0; - uint8_t h_arrdiv8_fs58_xor1 = 0; - uint8_t h_arrdiv8_fs58_or0 = 0; - uint8_t h_arrdiv8_fs59_xor1 = 0; - uint8_t h_arrdiv8_fs59_or0 = 0; - uint8_t h_arrdiv8_fs60_xor1 = 0; - uint8_t h_arrdiv8_fs60_or0 = 0; - uint8_t h_arrdiv8_fs61_xor1 = 0; - uint8_t h_arrdiv8_fs61_or0 = 0; - uint8_t h_arrdiv8_fs62_xor1 = 0; - uint8_t h_arrdiv8_fs62_or0 = 0; - uint8_t h_arrdiv8_fs63_xor1 = 0; - uint8_t h_arrdiv8_fs63_or0 = 0; - uint8_t h_arrdiv8_not7 = 0; - - h_arrdiv8_fs0_xor0 = (fs(((a >> 7) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_arrdiv8_fs0_and0 = (fs(((a >> 7) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_arrdiv8_fs1_xor1 = (fs((0x00), ((b >> 1) & 0x01), ((h_arrdiv8_fs0_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs1_or0 = (fs((0x00), ((b >> 1) & 0x01), ((h_arrdiv8_fs0_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs2_xor1 = (fs((0x00), ((b >> 2) & 0x01), ((h_arrdiv8_fs1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs2_or0 = (fs((0x00), ((b >> 2) & 0x01), ((h_arrdiv8_fs1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs3_xor1 = (fs((0x00), ((b >> 3) & 0x01), ((h_arrdiv8_fs2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs3_or0 = (fs((0x00), ((b >> 3) & 0x01), ((h_arrdiv8_fs2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs4_xor1 = (fs((0x00), ((b >> 4) & 0x01), ((h_arrdiv8_fs3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs4_or0 = (fs((0x00), ((b >> 4) & 0x01), ((h_arrdiv8_fs3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs5_xor1 = (fs((0x00), ((b >> 5) & 0x01), ((h_arrdiv8_fs4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs5_or0 = (fs((0x00), ((b >> 5) & 0x01), ((h_arrdiv8_fs4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs6_xor1 = (fs((0x00), ((b >> 6) & 0x01), ((h_arrdiv8_fs5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs6_or0 = (fs((0x00), ((b >> 6) & 0x01), ((h_arrdiv8_fs5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs7_xor1 = (fs((0x00), ((b >> 7) & 0x01), ((h_arrdiv8_fs6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs7_or0 = (fs((0x00), ((b >> 7) & 0x01), ((h_arrdiv8_fs6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_mux2to10_xor0 = (mux2to1(((h_arrdiv8_fs0_xor0 >> 0) & 0x01), ((a >> 7) & 0x01), ((h_arrdiv8_fs7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to11_and1 = (mux2to1(((h_arrdiv8_fs1_xor1 >> 0) & 0x01), (0x00), ((h_arrdiv8_fs7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to12_and1 = (mux2to1(((h_arrdiv8_fs2_xor1 >> 0) & 0x01), (0x00), ((h_arrdiv8_fs7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to13_and1 = (mux2to1(((h_arrdiv8_fs3_xor1 >> 0) & 0x01), (0x00), ((h_arrdiv8_fs7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to14_and1 = (mux2to1(((h_arrdiv8_fs4_xor1 >> 0) & 0x01), (0x00), ((h_arrdiv8_fs7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to15_and1 = (mux2to1(((h_arrdiv8_fs5_xor1 >> 0) & 0x01), (0x00), ((h_arrdiv8_fs7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to16_and1 = (mux2to1(((h_arrdiv8_fs6_xor1 >> 0) & 0x01), (0x00), ((h_arrdiv8_fs7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_not0 = not_gate(((h_arrdiv8_fs7_or0 >> 0) & 0x01)); - h_arrdiv8_fs8_xor0 = (fs(((a >> 6) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_arrdiv8_fs8_and0 = (fs(((a >> 6) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_arrdiv8_fs9_xor1 = (fs(((h_arrdiv8_mux2to10_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv8_fs8_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs9_or0 = (fs(((h_arrdiv8_mux2to10_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv8_fs8_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs10_xor1 = (fs(((h_arrdiv8_mux2to11_and1 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv8_fs9_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs10_or0 = (fs(((h_arrdiv8_mux2to11_and1 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv8_fs9_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs11_xor1 = (fs(((h_arrdiv8_mux2to12_and1 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv8_fs10_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs11_or0 = (fs(((h_arrdiv8_mux2to12_and1 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv8_fs10_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs12_xor1 = (fs(((h_arrdiv8_mux2to13_and1 >> 0) & 0x01), ((b >> 4) & 0x01), ((h_arrdiv8_fs11_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs12_or0 = (fs(((h_arrdiv8_mux2to13_and1 >> 0) & 0x01), ((b >> 4) & 0x01), ((h_arrdiv8_fs11_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs13_xor1 = (fs(((h_arrdiv8_mux2to14_and1 >> 0) & 0x01), ((b >> 5) & 0x01), ((h_arrdiv8_fs12_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs13_or0 = (fs(((h_arrdiv8_mux2to14_and1 >> 0) & 0x01), ((b >> 5) & 0x01), ((h_arrdiv8_fs12_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs14_xor1 = (fs(((h_arrdiv8_mux2to15_and1 >> 0) & 0x01), ((b >> 6) & 0x01), ((h_arrdiv8_fs13_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs14_or0 = (fs(((h_arrdiv8_mux2to15_and1 >> 0) & 0x01), ((b >> 6) & 0x01), ((h_arrdiv8_fs13_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs15_xor1 = (fs(((h_arrdiv8_mux2to16_and1 >> 0) & 0x01), ((b >> 7) & 0x01), ((h_arrdiv8_fs14_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs15_or0 = (fs(((h_arrdiv8_mux2to16_and1 >> 0) & 0x01), ((b >> 7) & 0x01), ((h_arrdiv8_fs14_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_mux2to17_xor0 = (mux2to1(((h_arrdiv8_fs8_xor0 >> 0) & 0x01), ((a >> 6) & 0x01), ((h_arrdiv8_fs15_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to18_xor0 = (mux2to1(((h_arrdiv8_fs9_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to10_xor0 >> 0) & 0x01), ((h_arrdiv8_fs15_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to19_xor0 = (mux2to1(((h_arrdiv8_fs10_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to11_and1 >> 0) & 0x01), ((h_arrdiv8_fs15_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to110_xor0 = (mux2to1(((h_arrdiv8_fs11_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to12_and1 >> 0) & 0x01), ((h_arrdiv8_fs15_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to111_xor0 = (mux2to1(((h_arrdiv8_fs12_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to13_and1 >> 0) & 0x01), ((h_arrdiv8_fs15_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to112_xor0 = (mux2to1(((h_arrdiv8_fs13_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to14_and1 >> 0) & 0x01), ((h_arrdiv8_fs15_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to113_xor0 = (mux2to1(((h_arrdiv8_fs14_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to15_and1 >> 0) & 0x01), ((h_arrdiv8_fs15_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_not1 = not_gate(((h_arrdiv8_fs15_or0 >> 0) & 0x01)); - h_arrdiv8_fs16_xor0 = (fs(((a >> 5) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_arrdiv8_fs16_and0 = (fs(((a >> 5) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_arrdiv8_fs17_xor1 = (fs(((h_arrdiv8_mux2to17_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv8_fs16_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs17_or0 = (fs(((h_arrdiv8_mux2to17_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv8_fs16_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs18_xor1 = (fs(((h_arrdiv8_mux2to18_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv8_fs17_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs18_or0 = (fs(((h_arrdiv8_mux2to18_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv8_fs17_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs19_xor1 = (fs(((h_arrdiv8_mux2to19_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv8_fs18_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs19_or0 = (fs(((h_arrdiv8_mux2to19_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv8_fs18_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs20_xor1 = (fs(((h_arrdiv8_mux2to110_xor0 >> 0) & 0x01), ((b >> 4) & 0x01), ((h_arrdiv8_fs19_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs20_or0 = (fs(((h_arrdiv8_mux2to110_xor0 >> 0) & 0x01), ((b >> 4) & 0x01), ((h_arrdiv8_fs19_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs21_xor1 = (fs(((h_arrdiv8_mux2to111_xor0 >> 0) & 0x01), ((b >> 5) & 0x01), ((h_arrdiv8_fs20_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs21_or0 = (fs(((h_arrdiv8_mux2to111_xor0 >> 0) & 0x01), ((b >> 5) & 0x01), ((h_arrdiv8_fs20_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs22_xor1 = (fs(((h_arrdiv8_mux2to112_xor0 >> 0) & 0x01), ((b >> 6) & 0x01), ((h_arrdiv8_fs21_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs22_or0 = (fs(((h_arrdiv8_mux2to112_xor0 >> 0) & 0x01), ((b >> 6) & 0x01), ((h_arrdiv8_fs21_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs23_xor1 = (fs(((h_arrdiv8_mux2to113_xor0 >> 0) & 0x01), ((b >> 7) & 0x01), ((h_arrdiv8_fs22_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs23_or0 = (fs(((h_arrdiv8_mux2to113_xor0 >> 0) & 0x01), ((b >> 7) & 0x01), ((h_arrdiv8_fs22_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_mux2to114_xor0 = (mux2to1(((h_arrdiv8_fs16_xor0 >> 0) & 0x01), ((a >> 5) & 0x01), ((h_arrdiv8_fs23_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to115_xor0 = (mux2to1(((h_arrdiv8_fs17_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to17_xor0 >> 0) & 0x01), ((h_arrdiv8_fs23_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to116_xor0 = (mux2to1(((h_arrdiv8_fs18_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to18_xor0 >> 0) & 0x01), ((h_arrdiv8_fs23_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to117_xor0 = (mux2to1(((h_arrdiv8_fs19_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to19_xor0 >> 0) & 0x01), ((h_arrdiv8_fs23_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to118_xor0 = (mux2to1(((h_arrdiv8_fs20_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to110_xor0 >> 0) & 0x01), ((h_arrdiv8_fs23_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to119_xor0 = (mux2to1(((h_arrdiv8_fs21_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to111_xor0 >> 0) & 0x01), ((h_arrdiv8_fs23_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to120_xor0 = (mux2to1(((h_arrdiv8_fs22_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to112_xor0 >> 0) & 0x01), ((h_arrdiv8_fs23_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_not2 = not_gate(((h_arrdiv8_fs23_or0 >> 0) & 0x01)); - h_arrdiv8_fs24_xor0 = (fs(((a >> 4) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_arrdiv8_fs24_and0 = (fs(((a >> 4) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_arrdiv8_fs25_xor1 = (fs(((h_arrdiv8_mux2to114_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv8_fs24_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs25_or0 = (fs(((h_arrdiv8_mux2to114_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv8_fs24_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs26_xor1 = (fs(((h_arrdiv8_mux2to115_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv8_fs25_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs26_or0 = (fs(((h_arrdiv8_mux2to115_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv8_fs25_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs27_xor1 = (fs(((h_arrdiv8_mux2to116_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv8_fs26_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs27_or0 = (fs(((h_arrdiv8_mux2to116_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv8_fs26_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs28_xor1 = (fs(((h_arrdiv8_mux2to117_xor0 >> 0) & 0x01), ((b >> 4) & 0x01), ((h_arrdiv8_fs27_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs28_or0 = (fs(((h_arrdiv8_mux2to117_xor0 >> 0) & 0x01), ((b >> 4) & 0x01), ((h_arrdiv8_fs27_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs29_xor1 = (fs(((h_arrdiv8_mux2to118_xor0 >> 0) & 0x01), ((b >> 5) & 0x01), ((h_arrdiv8_fs28_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs29_or0 = (fs(((h_arrdiv8_mux2to118_xor0 >> 0) & 0x01), ((b >> 5) & 0x01), ((h_arrdiv8_fs28_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs30_xor1 = (fs(((h_arrdiv8_mux2to119_xor0 >> 0) & 0x01), ((b >> 6) & 0x01), ((h_arrdiv8_fs29_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs30_or0 = (fs(((h_arrdiv8_mux2to119_xor0 >> 0) & 0x01), ((b >> 6) & 0x01), ((h_arrdiv8_fs29_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs31_xor1 = (fs(((h_arrdiv8_mux2to120_xor0 >> 0) & 0x01), ((b >> 7) & 0x01), ((h_arrdiv8_fs30_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs31_or0 = (fs(((h_arrdiv8_mux2to120_xor0 >> 0) & 0x01), ((b >> 7) & 0x01), ((h_arrdiv8_fs30_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_mux2to121_xor0 = (mux2to1(((h_arrdiv8_fs24_xor0 >> 0) & 0x01), ((a >> 4) & 0x01), ((h_arrdiv8_fs31_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to122_xor0 = (mux2to1(((h_arrdiv8_fs25_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to114_xor0 >> 0) & 0x01), ((h_arrdiv8_fs31_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to123_xor0 = (mux2to1(((h_arrdiv8_fs26_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to115_xor0 >> 0) & 0x01), ((h_arrdiv8_fs31_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to124_xor0 = (mux2to1(((h_arrdiv8_fs27_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to116_xor0 >> 0) & 0x01), ((h_arrdiv8_fs31_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to125_xor0 = (mux2to1(((h_arrdiv8_fs28_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to117_xor0 >> 0) & 0x01), ((h_arrdiv8_fs31_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to126_xor0 = (mux2to1(((h_arrdiv8_fs29_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to118_xor0 >> 0) & 0x01), ((h_arrdiv8_fs31_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to127_xor0 = (mux2to1(((h_arrdiv8_fs30_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to119_xor0 >> 0) & 0x01), ((h_arrdiv8_fs31_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_not3 = not_gate(((h_arrdiv8_fs31_or0 >> 0) & 0x01)); - h_arrdiv8_fs32_xor0 = (fs(((a >> 3) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_arrdiv8_fs32_and0 = (fs(((a >> 3) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_arrdiv8_fs33_xor1 = (fs(((h_arrdiv8_mux2to121_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv8_fs32_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs33_or0 = (fs(((h_arrdiv8_mux2to121_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv8_fs32_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs34_xor1 = (fs(((h_arrdiv8_mux2to122_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv8_fs33_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs34_or0 = (fs(((h_arrdiv8_mux2to122_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv8_fs33_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs35_xor1 = (fs(((h_arrdiv8_mux2to123_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv8_fs34_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs35_or0 = (fs(((h_arrdiv8_mux2to123_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv8_fs34_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs36_xor1 = (fs(((h_arrdiv8_mux2to124_xor0 >> 0) & 0x01), ((b >> 4) & 0x01), ((h_arrdiv8_fs35_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs36_or0 = (fs(((h_arrdiv8_mux2to124_xor0 >> 0) & 0x01), ((b >> 4) & 0x01), ((h_arrdiv8_fs35_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs37_xor1 = (fs(((h_arrdiv8_mux2to125_xor0 >> 0) & 0x01), ((b >> 5) & 0x01), ((h_arrdiv8_fs36_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs37_or0 = (fs(((h_arrdiv8_mux2to125_xor0 >> 0) & 0x01), ((b >> 5) & 0x01), ((h_arrdiv8_fs36_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs38_xor1 = (fs(((h_arrdiv8_mux2to126_xor0 >> 0) & 0x01), ((b >> 6) & 0x01), ((h_arrdiv8_fs37_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs38_or0 = (fs(((h_arrdiv8_mux2to126_xor0 >> 0) & 0x01), ((b >> 6) & 0x01), ((h_arrdiv8_fs37_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs39_xor1 = (fs(((h_arrdiv8_mux2to127_xor0 >> 0) & 0x01), ((b >> 7) & 0x01), ((h_arrdiv8_fs38_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs39_or0 = (fs(((h_arrdiv8_mux2to127_xor0 >> 0) & 0x01), ((b >> 7) & 0x01), ((h_arrdiv8_fs38_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_mux2to128_xor0 = (mux2to1(((h_arrdiv8_fs32_xor0 >> 0) & 0x01), ((a >> 3) & 0x01), ((h_arrdiv8_fs39_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to129_xor0 = (mux2to1(((h_arrdiv8_fs33_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to121_xor0 >> 0) & 0x01), ((h_arrdiv8_fs39_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to130_xor0 = (mux2to1(((h_arrdiv8_fs34_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to122_xor0 >> 0) & 0x01), ((h_arrdiv8_fs39_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to131_xor0 = (mux2to1(((h_arrdiv8_fs35_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to123_xor0 >> 0) & 0x01), ((h_arrdiv8_fs39_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to132_xor0 = (mux2to1(((h_arrdiv8_fs36_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to124_xor0 >> 0) & 0x01), ((h_arrdiv8_fs39_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to133_xor0 = (mux2to1(((h_arrdiv8_fs37_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to125_xor0 >> 0) & 0x01), ((h_arrdiv8_fs39_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to134_xor0 = (mux2to1(((h_arrdiv8_fs38_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to126_xor0 >> 0) & 0x01), ((h_arrdiv8_fs39_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_not4 = not_gate(((h_arrdiv8_fs39_or0 >> 0) & 0x01)); - h_arrdiv8_fs40_xor0 = (fs(((a >> 2) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_arrdiv8_fs40_and0 = (fs(((a >> 2) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_arrdiv8_fs41_xor1 = (fs(((h_arrdiv8_mux2to128_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv8_fs40_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs41_or0 = (fs(((h_arrdiv8_mux2to128_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv8_fs40_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs42_xor1 = (fs(((h_arrdiv8_mux2to129_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv8_fs41_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs42_or0 = (fs(((h_arrdiv8_mux2to129_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv8_fs41_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs43_xor1 = (fs(((h_arrdiv8_mux2to130_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv8_fs42_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs43_or0 = (fs(((h_arrdiv8_mux2to130_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv8_fs42_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs44_xor1 = (fs(((h_arrdiv8_mux2to131_xor0 >> 0) & 0x01), ((b >> 4) & 0x01), ((h_arrdiv8_fs43_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs44_or0 = (fs(((h_arrdiv8_mux2to131_xor0 >> 0) & 0x01), ((b >> 4) & 0x01), ((h_arrdiv8_fs43_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs45_xor1 = (fs(((h_arrdiv8_mux2to132_xor0 >> 0) & 0x01), ((b >> 5) & 0x01), ((h_arrdiv8_fs44_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs45_or0 = (fs(((h_arrdiv8_mux2to132_xor0 >> 0) & 0x01), ((b >> 5) & 0x01), ((h_arrdiv8_fs44_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs46_xor1 = (fs(((h_arrdiv8_mux2to133_xor0 >> 0) & 0x01), ((b >> 6) & 0x01), ((h_arrdiv8_fs45_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs46_or0 = (fs(((h_arrdiv8_mux2to133_xor0 >> 0) & 0x01), ((b >> 6) & 0x01), ((h_arrdiv8_fs45_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs47_xor1 = (fs(((h_arrdiv8_mux2to134_xor0 >> 0) & 0x01), ((b >> 7) & 0x01), ((h_arrdiv8_fs46_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs47_or0 = (fs(((h_arrdiv8_mux2to134_xor0 >> 0) & 0x01), ((b >> 7) & 0x01), ((h_arrdiv8_fs46_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_mux2to135_xor0 = (mux2to1(((h_arrdiv8_fs40_xor0 >> 0) & 0x01), ((a >> 2) & 0x01), ((h_arrdiv8_fs47_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to136_xor0 = (mux2to1(((h_arrdiv8_fs41_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to128_xor0 >> 0) & 0x01), ((h_arrdiv8_fs47_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to137_xor0 = (mux2to1(((h_arrdiv8_fs42_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to129_xor0 >> 0) & 0x01), ((h_arrdiv8_fs47_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to138_xor0 = (mux2to1(((h_arrdiv8_fs43_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to130_xor0 >> 0) & 0x01), ((h_arrdiv8_fs47_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to139_xor0 = (mux2to1(((h_arrdiv8_fs44_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to131_xor0 >> 0) & 0x01), ((h_arrdiv8_fs47_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to140_xor0 = (mux2to1(((h_arrdiv8_fs45_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to132_xor0 >> 0) & 0x01), ((h_arrdiv8_fs47_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to141_xor0 = (mux2to1(((h_arrdiv8_fs46_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to133_xor0 >> 0) & 0x01), ((h_arrdiv8_fs47_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_not5 = not_gate(((h_arrdiv8_fs47_or0 >> 0) & 0x01)); - h_arrdiv8_fs48_xor0 = (fs(((a >> 1) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_arrdiv8_fs48_and0 = (fs(((a >> 1) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_arrdiv8_fs49_xor1 = (fs(((h_arrdiv8_mux2to135_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv8_fs48_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs49_or0 = (fs(((h_arrdiv8_mux2to135_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv8_fs48_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs50_xor1 = (fs(((h_arrdiv8_mux2to136_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv8_fs49_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs50_or0 = (fs(((h_arrdiv8_mux2to136_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv8_fs49_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs51_xor1 = (fs(((h_arrdiv8_mux2to137_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv8_fs50_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs51_or0 = (fs(((h_arrdiv8_mux2to137_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv8_fs50_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs52_xor1 = (fs(((h_arrdiv8_mux2to138_xor0 >> 0) & 0x01), ((b >> 4) & 0x01), ((h_arrdiv8_fs51_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs52_or0 = (fs(((h_arrdiv8_mux2to138_xor0 >> 0) & 0x01), ((b >> 4) & 0x01), ((h_arrdiv8_fs51_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs53_xor1 = (fs(((h_arrdiv8_mux2to139_xor0 >> 0) & 0x01), ((b >> 5) & 0x01), ((h_arrdiv8_fs52_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs53_or0 = (fs(((h_arrdiv8_mux2to139_xor0 >> 0) & 0x01), ((b >> 5) & 0x01), ((h_arrdiv8_fs52_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs54_xor1 = (fs(((h_arrdiv8_mux2to140_xor0 >> 0) & 0x01), ((b >> 6) & 0x01), ((h_arrdiv8_fs53_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs54_or0 = (fs(((h_arrdiv8_mux2to140_xor0 >> 0) & 0x01), ((b >> 6) & 0x01), ((h_arrdiv8_fs53_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs55_xor1 = (fs(((h_arrdiv8_mux2to141_xor0 >> 0) & 0x01), ((b >> 7) & 0x01), ((h_arrdiv8_fs54_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs55_or0 = (fs(((h_arrdiv8_mux2to141_xor0 >> 0) & 0x01), ((b >> 7) & 0x01), ((h_arrdiv8_fs54_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_mux2to142_xor0 = (mux2to1(((h_arrdiv8_fs48_xor0 >> 0) & 0x01), ((a >> 1) & 0x01), ((h_arrdiv8_fs55_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to143_xor0 = (mux2to1(((h_arrdiv8_fs49_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to135_xor0 >> 0) & 0x01), ((h_arrdiv8_fs55_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to144_xor0 = (mux2to1(((h_arrdiv8_fs50_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to136_xor0 >> 0) & 0x01), ((h_arrdiv8_fs55_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to145_xor0 = (mux2to1(((h_arrdiv8_fs51_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to137_xor0 >> 0) & 0x01), ((h_arrdiv8_fs55_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to146_xor0 = (mux2to1(((h_arrdiv8_fs52_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to138_xor0 >> 0) & 0x01), ((h_arrdiv8_fs55_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to147_xor0 = (mux2to1(((h_arrdiv8_fs53_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to139_xor0 >> 0) & 0x01), ((h_arrdiv8_fs55_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_mux2to148_xor0 = (mux2to1(((h_arrdiv8_fs54_xor1 >> 0) & 0x01), ((h_arrdiv8_mux2to140_xor0 >> 0) & 0x01), ((h_arrdiv8_fs55_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_not6 = not_gate(((h_arrdiv8_fs55_or0 >> 0) & 0x01)); - h_arrdiv8_fs56_xor0 = (fs(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - h_arrdiv8_fs56_and0 = (fs(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - h_arrdiv8_fs57_xor1 = (fs(((h_arrdiv8_mux2to142_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv8_fs56_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs57_or0 = (fs(((h_arrdiv8_mux2to142_xor0 >> 0) & 0x01), ((b >> 1) & 0x01), ((h_arrdiv8_fs56_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs58_xor1 = (fs(((h_arrdiv8_mux2to143_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv8_fs57_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs58_or0 = (fs(((h_arrdiv8_mux2to143_xor0 >> 0) & 0x01), ((b >> 2) & 0x01), ((h_arrdiv8_fs57_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs59_xor1 = (fs(((h_arrdiv8_mux2to144_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv8_fs58_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs59_or0 = (fs(((h_arrdiv8_mux2to144_xor0 >> 0) & 0x01), ((b >> 3) & 0x01), ((h_arrdiv8_fs58_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs60_xor1 = (fs(((h_arrdiv8_mux2to145_xor0 >> 0) & 0x01), ((b >> 4) & 0x01), ((h_arrdiv8_fs59_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs60_or0 = (fs(((h_arrdiv8_mux2to145_xor0 >> 0) & 0x01), ((b >> 4) & 0x01), ((h_arrdiv8_fs59_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs61_xor1 = (fs(((h_arrdiv8_mux2to146_xor0 >> 0) & 0x01), ((b >> 5) & 0x01), ((h_arrdiv8_fs60_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs61_or0 = (fs(((h_arrdiv8_mux2to146_xor0 >> 0) & 0x01), ((b >> 5) & 0x01), ((h_arrdiv8_fs60_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs62_xor1 = (fs(((h_arrdiv8_mux2to147_xor0 >> 0) & 0x01), ((b >> 6) & 0x01), ((h_arrdiv8_fs61_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs62_or0 = (fs(((h_arrdiv8_mux2to147_xor0 >> 0) & 0x01), ((b >> 6) & 0x01), ((h_arrdiv8_fs61_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_fs63_xor1 = (fs(((h_arrdiv8_mux2to148_xor0 >> 0) & 0x01), ((b >> 7) & 0x01), ((h_arrdiv8_fs62_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_arrdiv8_fs63_or0 = (fs(((h_arrdiv8_mux2to148_xor0 >> 0) & 0x01), ((b >> 7) & 0x01), ((h_arrdiv8_fs62_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_arrdiv8_not7 = not_gate(((h_arrdiv8_fs63_or0 >> 0) & 0x01)); - - h_arrdiv8_out |= ((h_arrdiv8_not7 >> 0) & 0x01) << 0; - h_arrdiv8_out |= ((h_arrdiv8_not6 >> 0) & 0x01) << 1; - h_arrdiv8_out |= ((h_arrdiv8_not5 >> 0) & 0x01) << 2; - h_arrdiv8_out |= ((h_arrdiv8_not4 >> 0) & 0x01) << 3; - h_arrdiv8_out |= ((h_arrdiv8_not3 >> 0) & 0x01) << 4; - h_arrdiv8_out |= ((h_arrdiv8_not2 >> 0) & 0x01) << 5; - h_arrdiv8_out |= ((h_arrdiv8_not1 >> 0) & 0x01) << 6; - h_arrdiv8_out |= ((h_arrdiv8_not0 >> 0) & 0x01) << 7; - return h_arrdiv8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 1; j < 256; j++){ - assert((i / j) == h_arrdiv8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_arrmul4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_arrmul4.c deleted file mode 100644 index 52f83ba..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_arrmul4.c +++ /dev/null @@ -1,169 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -int64_t h_s_arrmul4(int64_t a, int64_t b){ - uint8_t h_s_arrmul4_out = 0; - uint8_t h_s_arrmul4_and0_0 = 0; - uint8_t h_s_arrmul4_and1_0 = 0; - uint8_t h_s_arrmul4_and2_0 = 0; - uint8_t h_s_arrmul4_nand3_0 = 0; - uint8_t h_s_arrmul4_and0_1 = 0; - uint8_t h_s_arrmul4_ha0_1_xor0 = 0; - uint8_t h_s_arrmul4_ha0_1_and0 = 0; - uint8_t h_s_arrmul4_and1_1 = 0; - uint8_t h_s_arrmul4_fa1_1_xor1 = 0; - uint8_t h_s_arrmul4_fa1_1_or0 = 0; - uint8_t h_s_arrmul4_and2_1 = 0; - uint8_t h_s_arrmul4_fa2_1_xor1 = 0; - uint8_t h_s_arrmul4_fa2_1_or0 = 0; - uint8_t h_s_arrmul4_nand3_1 = 0; - uint8_t h_s_arrmul4_fa3_1_xor1 = 0; - uint8_t h_s_arrmul4_fa3_1_or0 = 0; - uint8_t h_s_arrmul4_and0_2 = 0; - uint8_t h_s_arrmul4_ha0_2_xor0 = 0; - uint8_t h_s_arrmul4_ha0_2_and0 = 0; - uint8_t h_s_arrmul4_and1_2 = 0; - uint8_t h_s_arrmul4_fa1_2_xor1 = 0; - uint8_t h_s_arrmul4_fa1_2_or0 = 0; - uint8_t h_s_arrmul4_and2_2 = 0; - uint8_t h_s_arrmul4_fa2_2_xor1 = 0; - uint8_t h_s_arrmul4_fa2_2_or0 = 0; - uint8_t h_s_arrmul4_nand3_2 = 0; - uint8_t h_s_arrmul4_fa3_2_xor1 = 0; - uint8_t h_s_arrmul4_fa3_2_or0 = 0; - uint8_t h_s_arrmul4_nand0_3 = 0; - uint8_t h_s_arrmul4_ha0_3_xor0 = 0; - uint8_t h_s_arrmul4_ha0_3_and0 = 0; - uint8_t h_s_arrmul4_nand1_3 = 0; - uint8_t h_s_arrmul4_fa1_3_xor1 = 0; - uint8_t h_s_arrmul4_fa1_3_or0 = 0; - uint8_t h_s_arrmul4_nand2_3 = 0; - uint8_t h_s_arrmul4_fa2_3_xor1 = 0; - uint8_t h_s_arrmul4_fa2_3_or0 = 0; - uint8_t h_s_arrmul4_and3_3 = 0; - uint8_t h_s_arrmul4_fa3_3_xor1 = 0; - uint8_t h_s_arrmul4_fa3_3_or0 = 0; - uint8_t h_s_arrmul4_xor4_3 = 0; - - h_s_arrmul4_and0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_arrmul4_and1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_arrmul4_and2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_arrmul4_nand3_0 = nand_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_arrmul4_and0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_arrmul4_ha0_1_xor0 = (ha(((h_s_arrmul4_and0_1 >> 0) & 0x01), ((h_s_arrmul4_and1_0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul4_ha0_1_and0 = (ha(((h_s_arrmul4_and0_1 >> 0) & 0x01), ((h_s_arrmul4_and1_0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul4_and1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_arrmul4_fa1_1_xor1 = (fa(((h_s_arrmul4_and1_1 >> 0) & 0x01), ((h_s_arrmul4_and2_0 >> 0) & 0x01), ((h_s_arrmul4_ha0_1_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul4_fa1_1_or0 = (fa(((h_s_arrmul4_and1_1 >> 0) & 0x01), ((h_s_arrmul4_and2_0 >> 0) & 0x01), ((h_s_arrmul4_ha0_1_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul4_and2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_arrmul4_fa2_1_xor1 = (fa(((h_s_arrmul4_and2_1 >> 0) & 0x01), ((h_s_arrmul4_nand3_0 >> 0) & 0x01), ((h_s_arrmul4_fa1_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul4_fa2_1_or0 = (fa(((h_s_arrmul4_and2_1 >> 0) & 0x01), ((h_s_arrmul4_nand3_0 >> 0) & 0x01), ((h_s_arrmul4_fa1_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul4_nand3_1 = nand_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_arrmul4_fa3_1_xor1 = (fa(((h_s_arrmul4_nand3_1 >> 0) & 0x01), (0x01), ((h_s_arrmul4_fa2_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul4_fa3_1_or0 = (fa(((h_s_arrmul4_nand3_1 >> 0) & 0x01), (0x01), ((h_s_arrmul4_fa2_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul4_and0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_arrmul4_ha0_2_xor0 = (ha(((h_s_arrmul4_and0_2 >> 0) & 0x01), ((h_s_arrmul4_fa1_1_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul4_ha0_2_and0 = (ha(((h_s_arrmul4_and0_2 >> 0) & 0x01), ((h_s_arrmul4_fa1_1_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul4_and1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_arrmul4_fa1_2_xor1 = (fa(((h_s_arrmul4_and1_2 >> 0) & 0x01), ((h_s_arrmul4_fa2_1_xor1 >> 0) & 0x01), ((h_s_arrmul4_ha0_2_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul4_fa1_2_or0 = (fa(((h_s_arrmul4_and1_2 >> 0) & 0x01), ((h_s_arrmul4_fa2_1_xor1 >> 0) & 0x01), ((h_s_arrmul4_ha0_2_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul4_and2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_arrmul4_fa2_2_xor1 = (fa(((h_s_arrmul4_and2_2 >> 0) & 0x01), ((h_s_arrmul4_fa3_1_xor1 >> 0) & 0x01), ((h_s_arrmul4_fa1_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul4_fa2_2_or0 = (fa(((h_s_arrmul4_and2_2 >> 0) & 0x01), ((h_s_arrmul4_fa3_1_xor1 >> 0) & 0x01), ((h_s_arrmul4_fa1_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul4_nand3_2 = nand_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_arrmul4_fa3_2_xor1 = (fa(((h_s_arrmul4_nand3_2 >> 0) & 0x01), ((h_s_arrmul4_fa3_1_or0 >> 0) & 0x01), ((h_s_arrmul4_fa2_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul4_fa3_2_or0 = (fa(((h_s_arrmul4_nand3_2 >> 0) & 0x01), ((h_s_arrmul4_fa3_1_or0 >> 0) & 0x01), ((h_s_arrmul4_fa2_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul4_nand0_3 = nand_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_arrmul4_ha0_3_xor0 = (ha(((h_s_arrmul4_nand0_3 >> 0) & 0x01), ((h_s_arrmul4_fa1_2_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul4_ha0_3_and0 = (ha(((h_s_arrmul4_nand0_3 >> 0) & 0x01), ((h_s_arrmul4_fa1_2_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul4_nand1_3 = nand_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_arrmul4_fa1_3_xor1 = (fa(((h_s_arrmul4_nand1_3 >> 0) & 0x01), ((h_s_arrmul4_fa2_2_xor1 >> 0) & 0x01), ((h_s_arrmul4_ha0_3_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul4_fa1_3_or0 = (fa(((h_s_arrmul4_nand1_3 >> 0) & 0x01), ((h_s_arrmul4_fa2_2_xor1 >> 0) & 0x01), ((h_s_arrmul4_ha0_3_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul4_nand2_3 = nand_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_arrmul4_fa2_3_xor1 = (fa(((h_s_arrmul4_nand2_3 >> 0) & 0x01), ((h_s_arrmul4_fa3_2_xor1 >> 0) & 0x01), ((h_s_arrmul4_fa1_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul4_fa2_3_or0 = (fa(((h_s_arrmul4_nand2_3 >> 0) & 0x01), ((h_s_arrmul4_fa3_2_xor1 >> 0) & 0x01), ((h_s_arrmul4_fa1_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul4_and3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_arrmul4_fa3_3_xor1 = (fa(((h_s_arrmul4_and3_3 >> 0) & 0x01), ((h_s_arrmul4_fa3_2_or0 >> 0) & 0x01), ((h_s_arrmul4_fa2_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul4_fa3_3_or0 = (fa(((h_s_arrmul4_and3_3 >> 0) & 0x01), ((h_s_arrmul4_fa3_2_or0 >> 0) & 0x01), ((h_s_arrmul4_fa2_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul4_xor4_3 = not_gate(((h_s_arrmul4_fa3_3_or0 >> 0) & 0x01)); - - h_s_arrmul4_out |= ((h_s_arrmul4_and0_0 >> 0) & 0x01) << 0; - h_s_arrmul4_out |= ((h_s_arrmul4_ha0_1_xor0 >> 0) & 0x01) << 1; - h_s_arrmul4_out |= ((h_s_arrmul4_ha0_2_xor0 >> 0) & 0x01) << 2; - h_s_arrmul4_out |= ((h_s_arrmul4_ha0_3_xor0 >> 0) & 0x01) << 3; - h_s_arrmul4_out |= ((h_s_arrmul4_fa1_3_xor1 >> 0) & 0x01) << 4; - h_s_arrmul4_out |= ((h_s_arrmul4_fa2_3_xor1 >> 0) & 0x01) << 5; - h_s_arrmul4_out |= ((h_s_arrmul4_fa3_3_xor1 >> 0) & 0x01) << 6; - h_s_arrmul4_out |= ((h_s_arrmul4_xor4_3 >> 0) & 0x01) << 7; - return h_s_arrmul4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)h_s_arrmul4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_arrmul8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_arrmul8.c deleted file mode 100644 index bd1b622..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_arrmul8.c +++ /dev/null @@ -1,449 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -int64_t h_s_arrmul8(int64_t a, int64_t b){ - uint64_t h_s_arrmul8_out = 0; - uint8_t h_s_arrmul8_and0_0 = 0; - uint8_t h_s_arrmul8_and1_0 = 0; - uint8_t h_s_arrmul8_and2_0 = 0; - uint8_t h_s_arrmul8_and3_0 = 0; - uint8_t h_s_arrmul8_and4_0 = 0; - uint8_t h_s_arrmul8_and5_0 = 0; - uint8_t h_s_arrmul8_and6_0 = 0; - uint8_t h_s_arrmul8_nand7_0 = 0; - uint8_t h_s_arrmul8_and0_1 = 0; - uint8_t h_s_arrmul8_ha0_1_xor0 = 0; - uint8_t h_s_arrmul8_ha0_1_and0 = 0; - uint8_t h_s_arrmul8_and1_1 = 0; - uint8_t h_s_arrmul8_fa1_1_xor1 = 0; - uint8_t h_s_arrmul8_fa1_1_or0 = 0; - uint8_t h_s_arrmul8_and2_1 = 0; - uint8_t h_s_arrmul8_fa2_1_xor1 = 0; - uint8_t h_s_arrmul8_fa2_1_or0 = 0; - uint8_t h_s_arrmul8_and3_1 = 0; - uint8_t h_s_arrmul8_fa3_1_xor1 = 0; - uint8_t h_s_arrmul8_fa3_1_or0 = 0; - uint8_t h_s_arrmul8_and4_1 = 0; - uint8_t h_s_arrmul8_fa4_1_xor1 = 0; - uint8_t h_s_arrmul8_fa4_1_or0 = 0; - uint8_t h_s_arrmul8_and5_1 = 0; - uint8_t h_s_arrmul8_fa5_1_xor1 = 0; - uint8_t h_s_arrmul8_fa5_1_or0 = 0; - uint8_t h_s_arrmul8_and6_1 = 0; - uint8_t h_s_arrmul8_fa6_1_xor1 = 0; - uint8_t h_s_arrmul8_fa6_1_or0 = 0; - uint8_t h_s_arrmul8_nand7_1 = 0; - uint8_t h_s_arrmul8_fa7_1_xor1 = 0; - uint8_t h_s_arrmul8_fa7_1_or0 = 0; - uint8_t h_s_arrmul8_and0_2 = 0; - uint8_t h_s_arrmul8_ha0_2_xor0 = 0; - uint8_t h_s_arrmul8_ha0_2_and0 = 0; - uint8_t h_s_arrmul8_and1_2 = 0; - uint8_t h_s_arrmul8_fa1_2_xor1 = 0; - uint8_t h_s_arrmul8_fa1_2_or0 = 0; - uint8_t h_s_arrmul8_and2_2 = 0; - uint8_t h_s_arrmul8_fa2_2_xor1 = 0; - uint8_t h_s_arrmul8_fa2_2_or0 = 0; - uint8_t h_s_arrmul8_and3_2 = 0; - uint8_t h_s_arrmul8_fa3_2_xor1 = 0; - uint8_t h_s_arrmul8_fa3_2_or0 = 0; - uint8_t h_s_arrmul8_and4_2 = 0; - uint8_t h_s_arrmul8_fa4_2_xor1 = 0; - uint8_t h_s_arrmul8_fa4_2_or0 = 0; - uint8_t h_s_arrmul8_and5_2 = 0; - uint8_t h_s_arrmul8_fa5_2_xor1 = 0; - uint8_t h_s_arrmul8_fa5_2_or0 = 0; - uint8_t h_s_arrmul8_and6_2 = 0; - uint8_t h_s_arrmul8_fa6_2_xor1 = 0; - uint8_t h_s_arrmul8_fa6_2_or0 = 0; - uint8_t h_s_arrmul8_nand7_2 = 0; - uint8_t h_s_arrmul8_fa7_2_xor1 = 0; - uint8_t h_s_arrmul8_fa7_2_or0 = 0; - uint8_t h_s_arrmul8_and0_3 = 0; - uint8_t h_s_arrmul8_ha0_3_xor0 = 0; - uint8_t h_s_arrmul8_ha0_3_and0 = 0; - uint8_t h_s_arrmul8_and1_3 = 0; - uint8_t h_s_arrmul8_fa1_3_xor1 = 0; - uint8_t h_s_arrmul8_fa1_3_or0 = 0; - uint8_t h_s_arrmul8_and2_3 = 0; - uint8_t h_s_arrmul8_fa2_3_xor1 = 0; - uint8_t h_s_arrmul8_fa2_3_or0 = 0; - uint8_t h_s_arrmul8_and3_3 = 0; - uint8_t h_s_arrmul8_fa3_3_xor1 = 0; - uint8_t h_s_arrmul8_fa3_3_or0 = 0; - uint8_t h_s_arrmul8_and4_3 = 0; - uint8_t h_s_arrmul8_fa4_3_xor1 = 0; - uint8_t h_s_arrmul8_fa4_3_or0 = 0; - uint8_t h_s_arrmul8_and5_3 = 0; - uint8_t h_s_arrmul8_fa5_3_xor1 = 0; - uint8_t h_s_arrmul8_fa5_3_or0 = 0; - uint8_t h_s_arrmul8_and6_3 = 0; - uint8_t h_s_arrmul8_fa6_3_xor1 = 0; - uint8_t h_s_arrmul8_fa6_3_or0 = 0; - uint8_t h_s_arrmul8_nand7_3 = 0; - uint8_t h_s_arrmul8_fa7_3_xor1 = 0; - uint8_t h_s_arrmul8_fa7_3_or0 = 0; - uint8_t h_s_arrmul8_and0_4 = 0; - uint8_t h_s_arrmul8_ha0_4_xor0 = 0; - uint8_t h_s_arrmul8_ha0_4_and0 = 0; - uint8_t h_s_arrmul8_and1_4 = 0; - uint8_t h_s_arrmul8_fa1_4_xor1 = 0; - uint8_t h_s_arrmul8_fa1_4_or0 = 0; - uint8_t h_s_arrmul8_and2_4 = 0; - uint8_t h_s_arrmul8_fa2_4_xor1 = 0; - uint8_t h_s_arrmul8_fa2_4_or0 = 0; - uint8_t h_s_arrmul8_and3_4 = 0; - uint8_t h_s_arrmul8_fa3_4_xor1 = 0; - uint8_t h_s_arrmul8_fa3_4_or0 = 0; - uint8_t h_s_arrmul8_and4_4 = 0; - uint8_t h_s_arrmul8_fa4_4_xor1 = 0; - uint8_t h_s_arrmul8_fa4_4_or0 = 0; - uint8_t h_s_arrmul8_and5_4 = 0; - uint8_t h_s_arrmul8_fa5_4_xor1 = 0; - uint8_t h_s_arrmul8_fa5_4_or0 = 0; - uint8_t h_s_arrmul8_and6_4 = 0; - uint8_t h_s_arrmul8_fa6_4_xor1 = 0; - uint8_t h_s_arrmul8_fa6_4_or0 = 0; - uint8_t h_s_arrmul8_nand7_4 = 0; - uint8_t h_s_arrmul8_fa7_4_xor1 = 0; - uint8_t h_s_arrmul8_fa7_4_or0 = 0; - uint8_t h_s_arrmul8_and0_5 = 0; - uint8_t h_s_arrmul8_ha0_5_xor0 = 0; - uint8_t h_s_arrmul8_ha0_5_and0 = 0; - uint8_t h_s_arrmul8_and1_5 = 0; - uint8_t h_s_arrmul8_fa1_5_xor1 = 0; - uint8_t h_s_arrmul8_fa1_5_or0 = 0; - uint8_t h_s_arrmul8_and2_5 = 0; - uint8_t h_s_arrmul8_fa2_5_xor1 = 0; - uint8_t h_s_arrmul8_fa2_5_or0 = 0; - uint8_t h_s_arrmul8_and3_5 = 0; - uint8_t h_s_arrmul8_fa3_5_xor1 = 0; - uint8_t h_s_arrmul8_fa3_5_or0 = 0; - uint8_t h_s_arrmul8_and4_5 = 0; - uint8_t h_s_arrmul8_fa4_5_xor1 = 0; - uint8_t h_s_arrmul8_fa4_5_or0 = 0; - uint8_t h_s_arrmul8_and5_5 = 0; - uint8_t h_s_arrmul8_fa5_5_xor1 = 0; - uint8_t h_s_arrmul8_fa5_5_or0 = 0; - uint8_t h_s_arrmul8_and6_5 = 0; - uint8_t h_s_arrmul8_fa6_5_xor1 = 0; - uint8_t h_s_arrmul8_fa6_5_or0 = 0; - uint8_t h_s_arrmul8_nand7_5 = 0; - uint8_t h_s_arrmul8_fa7_5_xor1 = 0; - uint8_t h_s_arrmul8_fa7_5_or0 = 0; - uint8_t h_s_arrmul8_and0_6 = 0; - uint8_t h_s_arrmul8_ha0_6_xor0 = 0; - uint8_t h_s_arrmul8_ha0_6_and0 = 0; - uint8_t h_s_arrmul8_and1_6 = 0; - uint8_t h_s_arrmul8_fa1_6_xor1 = 0; - uint8_t h_s_arrmul8_fa1_6_or0 = 0; - uint8_t h_s_arrmul8_and2_6 = 0; - uint8_t h_s_arrmul8_fa2_6_xor1 = 0; - uint8_t h_s_arrmul8_fa2_6_or0 = 0; - uint8_t h_s_arrmul8_and3_6 = 0; - uint8_t h_s_arrmul8_fa3_6_xor1 = 0; - uint8_t h_s_arrmul8_fa3_6_or0 = 0; - uint8_t h_s_arrmul8_and4_6 = 0; - uint8_t h_s_arrmul8_fa4_6_xor1 = 0; - uint8_t h_s_arrmul8_fa4_6_or0 = 0; - uint8_t h_s_arrmul8_and5_6 = 0; - uint8_t h_s_arrmul8_fa5_6_xor1 = 0; - uint8_t h_s_arrmul8_fa5_6_or0 = 0; - uint8_t h_s_arrmul8_and6_6 = 0; - uint8_t h_s_arrmul8_fa6_6_xor1 = 0; - uint8_t h_s_arrmul8_fa6_6_or0 = 0; - uint8_t h_s_arrmul8_nand7_6 = 0; - uint8_t h_s_arrmul8_fa7_6_xor1 = 0; - uint8_t h_s_arrmul8_fa7_6_or0 = 0; - uint8_t h_s_arrmul8_nand0_7 = 0; - uint8_t h_s_arrmul8_ha0_7_xor0 = 0; - uint8_t h_s_arrmul8_ha0_7_and0 = 0; - uint8_t h_s_arrmul8_nand1_7 = 0; - uint8_t h_s_arrmul8_fa1_7_xor1 = 0; - uint8_t h_s_arrmul8_fa1_7_or0 = 0; - uint8_t h_s_arrmul8_nand2_7 = 0; - uint8_t h_s_arrmul8_fa2_7_xor1 = 0; - uint8_t h_s_arrmul8_fa2_7_or0 = 0; - uint8_t h_s_arrmul8_nand3_7 = 0; - uint8_t h_s_arrmul8_fa3_7_xor1 = 0; - uint8_t h_s_arrmul8_fa3_7_or0 = 0; - uint8_t h_s_arrmul8_nand4_7 = 0; - uint8_t h_s_arrmul8_fa4_7_xor1 = 0; - uint8_t h_s_arrmul8_fa4_7_or0 = 0; - uint8_t h_s_arrmul8_nand5_7 = 0; - uint8_t h_s_arrmul8_fa5_7_xor1 = 0; - uint8_t h_s_arrmul8_fa5_7_or0 = 0; - uint8_t h_s_arrmul8_nand6_7 = 0; - uint8_t h_s_arrmul8_fa6_7_xor1 = 0; - uint8_t h_s_arrmul8_fa6_7_or0 = 0; - uint8_t h_s_arrmul8_and7_7 = 0; - uint8_t h_s_arrmul8_fa7_7_xor1 = 0; - uint8_t h_s_arrmul8_fa7_7_or0 = 0; - uint8_t h_s_arrmul8_xor8_7 = 0; - - h_s_arrmul8_and0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_arrmul8_and1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_arrmul8_and2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_arrmul8_and3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_arrmul8_and4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_s_arrmul8_and5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_s_arrmul8_and6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_s_arrmul8_nand7_0 = nand_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_s_arrmul8_and0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_arrmul8_ha0_1_xor0 = (ha(((h_s_arrmul8_and0_1 >> 0) & 0x01), ((h_s_arrmul8_and1_0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_ha0_1_and0 = (ha(((h_s_arrmul8_and0_1 >> 0) & 0x01), ((h_s_arrmul8_and1_0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_arrmul8_fa1_1_xor1 = (fa(((h_s_arrmul8_and1_1 >> 0) & 0x01), ((h_s_arrmul8_and2_0 >> 0) & 0x01), ((h_s_arrmul8_ha0_1_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa1_1_or0 = (fa(((h_s_arrmul8_and1_1 >> 0) & 0x01), ((h_s_arrmul8_and2_0 >> 0) & 0x01), ((h_s_arrmul8_ha0_1_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_arrmul8_fa2_1_xor1 = (fa(((h_s_arrmul8_and2_1 >> 0) & 0x01), ((h_s_arrmul8_and3_0 >> 0) & 0x01), ((h_s_arrmul8_fa1_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa2_1_or0 = (fa(((h_s_arrmul8_and2_1 >> 0) & 0x01), ((h_s_arrmul8_and3_0 >> 0) & 0x01), ((h_s_arrmul8_fa1_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_arrmul8_fa3_1_xor1 = (fa(((h_s_arrmul8_and3_1 >> 0) & 0x01), ((h_s_arrmul8_and4_0 >> 0) & 0x01), ((h_s_arrmul8_fa2_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa3_1_or0 = (fa(((h_s_arrmul8_and3_1 >> 0) & 0x01), ((h_s_arrmul8_and4_0 >> 0) & 0x01), ((h_s_arrmul8_fa2_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_s_arrmul8_fa4_1_xor1 = (fa(((h_s_arrmul8_and4_1 >> 0) & 0x01), ((h_s_arrmul8_and5_0 >> 0) & 0x01), ((h_s_arrmul8_fa3_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa4_1_or0 = (fa(((h_s_arrmul8_and4_1 >> 0) & 0x01), ((h_s_arrmul8_and5_0 >> 0) & 0x01), ((h_s_arrmul8_fa3_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_s_arrmul8_fa5_1_xor1 = (fa(((h_s_arrmul8_and5_1 >> 0) & 0x01), ((h_s_arrmul8_and6_0 >> 0) & 0x01), ((h_s_arrmul8_fa4_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa5_1_or0 = (fa(((h_s_arrmul8_and5_1 >> 0) & 0x01), ((h_s_arrmul8_and6_0 >> 0) & 0x01), ((h_s_arrmul8_fa4_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_s_arrmul8_fa6_1_xor1 = (fa(((h_s_arrmul8_and6_1 >> 0) & 0x01), ((h_s_arrmul8_nand7_0 >> 0) & 0x01), ((h_s_arrmul8_fa5_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa6_1_or0 = (fa(((h_s_arrmul8_and6_1 >> 0) & 0x01), ((h_s_arrmul8_nand7_0 >> 0) & 0x01), ((h_s_arrmul8_fa5_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_nand7_1 = nand_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_s_arrmul8_fa7_1_xor1 = (fa(((h_s_arrmul8_nand7_1 >> 0) & 0x01), (0x01), ((h_s_arrmul8_fa6_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa7_1_or0 = (fa(((h_s_arrmul8_nand7_1 >> 0) & 0x01), (0x01), ((h_s_arrmul8_fa6_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_arrmul8_ha0_2_xor0 = (ha(((h_s_arrmul8_and0_2 >> 0) & 0x01), ((h_s_arrmul8_fa1_1_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_ha0_2_and0 = (ha(((h_s_arrmul8_and0_2 >> 0) & 0x01), ((h_s_arrmul8_fa1_1_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_arrmul8_fa1_2_xor1 = (fa(((h_s_arrmul8_and1_2 >> 0) & 0x01), ((h_s_arrmul8_fa2_1_xor1 >> 0) & 0x01), ((h_s_arrmul8_ha0_2_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa1_2_or0 = (fa(((h_s_arrmul8_and1_2 >> 0) & 0x01), ((h_s_arrmul8_fa2_1_xor1 >> 0) & 0x01), ((h_s_arrmul8_ha0_2_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_arrmul8_fa2_2_xor1 = (fa(((h_s_arrmul8_and2_2 >> 0) & 0x01), ((h_s_arrmul8_fa3_1_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa1_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa2_2_or0 = (fa(((h_s_arrmul8_and2_2 >> 0) & 0x01), ((h_s_arrmul8_fa3_1_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa1_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_arrmul8_fa3_2_xor1 = (fa(((h_s_arrmul8_and3_2 >> 0) & 0x01), ((h_s_arrmul8_fa4_1_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa2_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa3_2_or0 = (fa(((h_s_arrmul8_and3_2 >> 0) & 0x01), ((h_s_arrmul8_fa4_1_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa2_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_s_arrmul8_fa4_2_xor1 = (fa(((h_s_arrmul8_and4_2 >> 0) & 0x01), ((h_s_arrmul8_fa5_1_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa3_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa4_2_or0 = (fa(((h_s_arrmul8_and4_2 >> 0) & 0x01), ((h_s_arrmul8_fa5_1_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa3_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_s_arrmul8_fa5_2_xor1 = (fa(((h_s_arrmul8_and5_2 >> 0) & 0x01), ((h_s_arrmul8_fa6_1_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa4_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa5_2_or0 = (fa(((h_s_arrmul8_and5_2 >> 0) & 0x01), ((h_s_arrmul8_fa6_1_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa4_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_s_arrmul8_fa6_2_xor1 = (fa(((h_s_arrmul8_and6_2 >> 0) & 0x01), ((h_s_arrmul8_fa7_1_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa5_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa6_2_or0 = (fa(((h_s_arrmul8_and6_2 >> 0) & 0x01), ((h_s_arrmul8_fa7_1_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa5_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_nand7_2 = nand_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_s_arrmul8_fa7_2_xor1 = (fa(((h_s_arrmul8_nand7_2 >> 0) & 0x01), ((h_s_arrmul8_fa7_1_or0 >> 0) & 0x01), ((h_s_arrmul8_fa6_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa7_2_or0 = (fa(((h_s_arrmul8_nand7_2 >> 0) & 0x01), ((h_s_arrmul8_fa7_1_or0 >> 0) & 0x01), ((h_s_arrmul8_fa6_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_arrmul8_ha0_3_xor0 = (ha(((h_s_arrmul8_and0_3 >> 0) & 0x01), ((h_s_arrmul8_fa1_2_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_ha0_3_and0 = (ha(((h_s_arrmul8_and0_3 >> 0) & 0x01), ((h_s_arrmul8_fa1_2_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_arrmul8_fa1_3_xor1 = (fa(((h_s_arrmul8_and1_3 >> 0) & 0x01), ((h_s_arrmul8_fa2_2_xor1 >> 0) & 0x01), ((h_s_arrmul8_ha0_3_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa1_3_or0 = (fa(((h_s_arrmul8_and1_3 >> 0) & 0x01), ((h_s_arrmul8_fa2_2_xor1 >> 0) & 0x01), ((h_s_arrmul8_ha0_3_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_arrmul8_fa2_3_xor1 = (fa(((h_s_arrmul8_and2_3 >> 0) & 0x01), ((h_s_arrmul8_fa3_2_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa1_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa2_3_or0 = (fa(((h_s_arrmul8_and2_3 >> 0) & 0x01), ((h_s_arrmul8_fa3_2_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa1_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_arrmul8_fa3_3_xor1 = (fa(((h_s_arrmul8_and3_3 >> 0) & 0x01), ((h_s_arrmul8_fa4_2_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa2_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa3_3_or0 = (fa(((h_s_arrmul8_and3_3 >> 0) & 0x01), ((h_s_arrmul8_fa4_2_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa2_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_s_arrmul8_fa4_3_xor1 = (fa(((h_s_arrmul8_and4_3 >> 0) & 0x01), ((h_s_arrmul8_fa5_2_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa3_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa4_3_or0 = (fa(((h_s_arrmul8_and4_3 >> 0) & 0x01), ((h_s_arrmul8_fa5_2_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa3_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_s_arrmul8_fa5_3_xor1 = (fa(((h_s_arrmul8_and5_3 >> 0) & 0x01), ((h_s_arrmul8_fa6_2_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa4_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa5_3_or0 = (fa(((h_s_arrmul8_and5_3 >> 0) & 0x01), ((h_s_arrmul8_fa6_2_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa4_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_s_arrmul8_fa6_3_xor1 = (fa(((h_s_arrmul8_and6_3 >> 0) & 0x01), ((h_s_arrmul8_fa7_2_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa5_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa6_3_or0 = (fa(((h_s_arrmul8_and6_3 >> 0) & 0x01), ((h_s_arrmul8_fa7_2_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa5_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_nand7_3 = nand_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_s_arrmul8_fa7_3_xor1 = (fa(((h_s_arrmul8_nand7_3 >> 0) & 0x01), ((h_s_arrmul8_fa7_2_or0 >> 0) & 0x01), ((h_s_arrmul8_fa6_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa7_3_or0 = (fa(((h_s_arrmul8_nand7_3 >> 0) & 0x01), ((h_s_arrmul8_fa7_2_or0 >> 0) & 0x01), ((h_s_arrmul8_fa6_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_s_arrmul8_ha0_4_xor0 = (ha(((h_s_arrmul8_and0_4 >> 0) & 0x01), ((h_s_arrmul8_fa1_3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_ha0_4_and0 = (ha(((h_s_arrmul8_and0_4 >> 0) & 0x01), ((h_s_arrmul8_fa1_3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_s_arrmul8_fa1_4_xor1 = (fa(((h_s_arrmul8_and1_4 >> 0) & 0x01), ((h_s_arrmul8_fa2_3_xor1 >> 0) & 0x01), ((h_s_arrmul8_ha0_4_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa1_4_or0 = (fa(((h_s_arrmul8_and1_4 >> 0) & 0x01), ((h_s_arrmul8_fa2_3_xor1 >> 0) & 0x01), ((h_s_arrmul8_ha0_4_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_s_arrmul8_fa2_4_xor1 = (fa(((h_s_arrmul8_and2_4 >> 0) & 0x01), ((h_s_arrmul8_fa3_3_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa1_4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa2_4_or0 = (fa(((h_s_arrmul8_and2_4 >> 0) & 0x01), ((h_s_arrmul8_fa3_3_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa1_4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_s_arrmul8_fa3_4_xor1 = (fa(((h_s_arrmul8_and3_4 >> 0) & 0x01), ((h_s_arrmul8_fa4_3_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa2_4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa3_4_or0 = (fa(((h_s_arrmul8_and3_4 >> 0) & 0x01), ((h_s_arrmul8_fa4_3_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa2_4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_s_arrmul8_fa4_4_xor1 = (fa(((h_s_arrmul8_and4_4 >> 0) & 0x01), ((h_s_arrmul8_fa5_3_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa3_4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa4_4_or0 = (fa(((h_s_arrmul8_and4_4 >> 0) & 0x01), ((h_s_arrmul8_fa5_3_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa3_4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_s_arrmul8_fa5_4_xor1 = (fa(((h_s_arrmul8_and5_4 >> 0) & 0x01), ((h_s_arrmul8_fa6_3_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa4_4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa5_4_or0 = (fa(((h_s_arrmul8_and5_4 >> 0) & 0x01), ((h_s_arrmul8_fa6_3_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa4_4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_s_arrmul8_fa6_4_xor1 = (fa(((h_s_arrmul8_and6_4 >> 0) & 0x01), ((h_s_arrmul8_fa7_3_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa5_4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa6_4_or0 = (fa(((h_s_arrmul8_and6_4 >> 0) & 0x01), ((h_s_arrmul8_fa7_3_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa5_4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_nand7_4 = nand_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_s_arrmul8_fa7_4_xor1 = (fa(((h_s_arrmul8_nand7_4 >> 0) & 0x01), ((h_s_arrmul8_fa7_3_or0 >> 0) & 0x01), ((h_s_arrmul8_fa6_4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa7_4_or0 = (fa(((h_s_arrmul8_nand7_4 >> 0) & 0x01), ((h_s_arrmul8_fa7_3_or0 >> 0) & 0x01), ((h_s_arrmul8_fa6_4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_s_arrmul8_ha0_5_xor0 = (ha(((h_s_arrmul8_and0_5 >> 0) & 0x01), ((h_s_arrmul8_fa1_4_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_ha0_5_and0 = (ha(((h_s_arrmul8_and0_5 >> 0) & 0x01), ((h_s_arrmul8_fa1_4_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_s_arrmul8_fa1_5_xor1 = (fa(((h_s_arrmul8_and1_5 >> 0) & 0x01), ((h_s_arrmul8_fa2_4_xor1 >> 0) & 0x01), ((h_s_arrmul8_ha0_5_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa1_5_or0 = (fa(((h_s_arrmul8_and1_5 >> 0) & 0x01), ((h_s_arrmul8_fa2_4_xor1 >> 0) & 0x01), ((h_s_arrmul8_ha0_5_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_s_arrmul8_fa2_5_xor1 = (fa(((h_s_arrmul8_and2_5 >> 0) & 0x01), ((h_s_arrmul8_fa3_4_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa1_5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa2_5_or0 = (fa(((h_s_arrmul8_and2_5 >> 0) & 0x01), ((h_s_arrmul8_fa3_4_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa1_5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_s_arrmul8_fa3_5_xor1 = (fa(((h_s_arrmul8_and3_5 >> 0) & 0x01), ((h_s_arrmul8_fa4_4_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa2_5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa3_5_or0 = (fa(((h_s_arrmul8_and3_5 >> 0) & 0x01), ((h_s_arrmul8_fa4_4_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa2_5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_s_arrmul8_fa4_5_xor1 = (fa(((h_s_arrmul8_and4_5 >> 0) & 0x01), ((h_s_arrmul8_fa5_4_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa3_5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa4_5_or0 = (fa(((h_s_arrmul8_and4_5 >> 0) & 0x01), ((h_s_arrmul8_fa5_4_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa3_5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_s_arrmul8_fa5_5_xor1 = (fa(((h_s_arrmul8_and5_5 >> 0) & 0x01), ((h_s_arrmul8_fa6_4_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa4_5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa5_5_or0 = (fa(((h_s_arrmul8_and5_5 >> 0) & 0x01), ((h_s_arrmul8_fa6_4_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa4_5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_s_arrmul8_fa6_5_xor1 = (fa(((h_s_arrmul8_and6_5 >> 0) & 0x01), ((h_s_arrmul8_fa7_4_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa5_5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa6_5_or0 = (fa(((h_s_arrmul8_and6_5 >> 0) & 0x01), ((h_s_arrmul8_fa7_4_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa5_5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_nand7_5 = nand_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_s_arrmul8_fa7_5_xor1 = (fa(((h_s_arrmul8_nand7_5 >> 0) & 0x01), ((h_s_arrmul8_fa7_4_or0 >> 0) & 0x01), ((h_s_arrmul8_fa6_5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa7_5_or0 = (fa(((h_s_arrmul8_nand7_5 >> 0) & 0x01), ((h_s_arrmul8_fa7_4_or0 >> 0) & 0x01), ((h_s_arrmul8_fa6_5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_s_arrmul8_ha0_6_xor0 = (ha(((h_s_arrmul8_and0_6 >> 0) & 0x01), ((h_s_arrmul8_fa1_5_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_ha0_6_and0 = (ha(((h_s_arrmul8_and0_6 >> 0) & 0x01), ((h_s_arrmul8_fa1_5_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_s_arrmul8_fa1_6_xor1 = (fa(((h_s_arrmul8_and1_6 >> 0) & 0x01), ((h_s_arrmul8_fa2_5_xor1 >> 0) & 0x01), ((h_s_arrmul8_ha0_6_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa1_6_or0 = (fa(((h_s_arrmul8_and1_6 >> 0) & 0x01), ((h_s_arrmul8_fa2_5_xor1 >> 0) & 0x01), ((h_s_arrmul8_ha0_6_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_s_arrmul8_fa2_6_xor1 = (fa(((h_s_arrmul8_and2_6 >> 0) & 0x01), ((h_s_arrmul8_fa3_5_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa1_6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa2_6_or0 = (fa(((h_s_arrmul8_and2_6 >> 0) & 0x01), ((h_s_arrmul8_fa3_5_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa1_6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_s_arrmul8_fa3_6_xor1 = (fa(((h_s_arrmul8_and3_6 >> 0) & 0x01), ((h_s_arrmul8_fa4_5_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa2_6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa3_6_or0 = (fa(((h_s_arrmul8_and3_6 >> 0) & 0x01), ((h_s_arrmul8_fa4_5_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa2_6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_s_arrmul8_fa4_6_xor1 = (fa(((h_s_arrmul8_and4_6 >> 0) & 0x01), ((h_s_arrmul8_fa5_5_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa3_6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa4_6_or0 = (fa(((h_s_arrmul8_and4_6 >> 0) & 0x01), ((h_s_arrmul8_fa5_5_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa3_6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_s_arrmul8_fa5_6_xor1 = (fa(((h_s_arrmul8_and5_6 >> 0) & 0x01), ((h_s_arrmul8_fa6_5_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa4_6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa5_6_or0 = (fa(((h_s_arrmul8_and5_6 >> 0) & 0x01), ((h_s_arrmul8_fa6_5_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa4_6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_s_arrmul8_fa6_6_xor1 = (fa(((h_s_arrmul8_and6_6 >> 0) & 0x01), ((h_s_arrmul8_fa7_5_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa5_6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa6_6_or0 = (fa(((h_s_arrmul8_and6_6 >> 0) & 0x01), ((h_s_arrmul8_fa7_5_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa5_6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_nand7_6 = nand_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_s_arrmul8_fa7_6_xor1 = (fa(((h_s_arrmul8_nand7_6 >> 0) & 0x01), ((h_s_arrmul8_fa7_5_or0 >> 0) & 0x01), ((h_s_arrmul8_fa6_6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa7_6_or0 = (fa(((h_s_arrmul8_nand7_6 >> 0) & 0x01), ((h_s_arrmul8_fa7_5_or0 >> 0) & 0x01), ((h_s_arrmul8_fa6_6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_nand0_7 = nand_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_s_arrmul8_ha0_7_xor0 = (ha(((h_s_arrmul8_nand0_7 >> 0) & 0x01), ((h_s_arrmul8_fa1_6_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_ha0_7_and0 = (ha(((h_s_arrmul8_nand0_7 >> 0) & 0x01), ((h_s_arrmul8_fa1_6_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_nand1_7 = nand_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_s_arrmul8_fa1_7_xor1 = (fa(((h_s_arrmul8_nand1_7 >> 0) & 0x01), ((h_s_arrmul8_fa2_6_xor1 >> 0) & 0x01), ((h_s_arrmul8_ha0_7_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa1_7_or0 = (fa(((h_s_arrmul8_nand1_7 >> 0) & 0x01), ((h_s_arrmul8_fa2_6_xor1 >> 0) & 0x01), ((h_s_arrmul8_ha0_7_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_nand2_7 = nand_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_s_arrmul8_fa2_7_xor1 = (fa(((h_s_arrmul8_nand2_7 >> 0) & 0x01), ((h_s_arrmul8_fa3_6_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa1_7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa2_7_or0 = (fa(((h_s_arrmul8_nand2_7 >> 0) & 0x01), ((h_s_arrmul8_fa3_6_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa1_7_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_nand3_7 = nand_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_s_arrmul8_fa3_7_xor1 = (fa(((h_s_arrmul8_nand3_7 >> 0) & 0x01), ((h_s_arrmul8_fa4_6_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa2_7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa3_7_or0 = (fa(((h_s_arrmul8_nand3_7 >> 0) & 0x01), ((h_s_arrmul8_fa4_6_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa2_7_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_nand4_7 = nand_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_s_arrmul8_fa4_7_xor1 = (fa(((h_s_arrmul8_nand4_7 >> 0) & 0x01), ((h_s_arrmul8_fa5_6_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa3_7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa4_7_or0 = (fa(((h_s_arrmul8_nand4_7 >> 0) & 0x01), ((h_s_arrmul8_fa5_6_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa3_7_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_nand5_7 = nand_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_s_arrmul8_fa5_7_xor1 = (fa(((h_s_arrmul8_nand5_7 >> 0) & 0x01), ((h_s_arrmul8_fa6_6_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa4_7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa5_7_or0 = (fa(((h_s_arrmul8_nand5_7 >> 0) & 0x01), ((h_s_arrmul8_fa6_6_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa4_7_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_nand6_7 = nand_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_s_arrmul8_fa6_7_xor1 = (fa(((h_s_arrmul8_nand6_7 >> 0) & 0x01), ((h_s_arrmul8_fa7_6_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa5_7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa6_7_or0 = (fa(((h_s_arrmul8_nand6_7 >> 0) & 0x01), ((h_s_arrmul8_fa7_6_xor1 >> 0) & 0x01), ((h_s_arrmul8_fa5_7_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_and7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_s_arrmul8_fa7_7_xor1 = (fa(((h_s_arrmul8_and7_7 >> 0) & 0x01), ((h_s_arrmul8_fa7_6_or0 >> 0) & 0x01), ((h_s_arrmul8_fa6_7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_arrmul8_fa7_7_or0 = (fa(((h_s_arrmul8_and7_7 >> 0) & 0x01), ((h_s_arrmul8_fa7_6_or0 >> 0) & 0x01), ((h_s_arrmul8_fa6_7_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_arrmul8_xor8_7 = not_gate(((h_s_arrmul8_fa7_7_or0 >> 0) & 0x01)); - - h_s_arrmul8_out |= ((h_s_arrmul8_and0_0 >> 0) & 0x01) << 0; - h_s_arrmul8_out |= ((h_s_arrmul8_ha0_1_xor0 >> 0) & 0x01) << 1; - h_s_arrmul8_out |= ((h_s_arrmul8_ha0_2_xor0 >> 0) & 0x01) << 2; - h_s_arrmul8_out |= ((h_s_arrmul8_ha0_3_xor0 >> 0) & 0x01) << 3; - h_s_arrmul8_out |= ((h_s_arrmul8_ha0_4_xor0 >> 0) & 0x01) << 4; - h_s_arrmul8_out |= ((h_s_arrmul8_ha0_5_xor0 >> 0) & 0x01) << 5; - h_s_arrmul8_out |= ((h_s_arrmul8_ha0_6_xor0 >> 0) & 0x01) << 6; - h_s_arrmul8_out |= ((h_s_arrmul8_ha0_7_xor0 >> 0) & 0x01) << 7; - h_s_arrmul8_out |= ((h_s_arrmul8_fa1_7_xor1 >> 0) & 0x01) << 8; - h_s_arrmul8_out |= ((h_s_arrmul8_fa2_7_xor1 >> 0) & 0x01) << 9; - h_s_arrmul8_out |= ((h_s_arrmul8_fa3_7_xor1 >> 0) & 0x01) << 10; - h_s_arrmul8_out |= ((h_s_arrmul8_fa4_7_xor1 >> 0) & 0x01) << 11; - h_s_arrmul8_out |= ((h_s_arrmul8_fa5_7_xor1 >> 0) & 0x01) << 12; - h_s_arrmul8_out |= ((h_s_arrmul8_fa6_7_xor1 >> 0) & 0x01) << 13; - h_s_arrmul8_out |= ((h_s_arrmul8_fa7_7_xor1 >> 0) & 0x01) << 14; - h_s_arrmul8_out |= ((h_s_arrmul8_xor8_7 >> 0) & 0x01) << 15; - return h_s_arrmul8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)h_s_arrmul8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cla4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cla4.c deleted file mode 100644 index 1d59637..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cla4.c +++ /dev/null @@ -1,287 +0,0 @@ -#include -#include - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_logic(uint8_t a, uint8_t b){ - uint8_t pg_logic_out = 0; - uint8_t pg_logic_or0 = 0; - uint8_t pg_logic_and0 = 0; - uint8_t pg_logic_xor0 = 0; - - pg_logic_or0 = or_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - pg_logic_out |= ((pg_logic_or0 >> 0) & 0x01) << 0; - pg_logic_out |= ((pg_logic_and0 >> 0) & 0x01) << 1; - pg_logic_out |= ((pg_logic_xor0 >> 0) & 0x01) << 2; - return pg_logic_out; -} - -uint64_t u_cla6(uint64_t a, uint64_t b){ - uint8_t u_cla6_out = 0; - uint8_t u_cla6_pg_logic0_or0 = 0; - uint8_t u_cla6_pg_logic0_and0 = 0; - uint8_t u_cla6_pg_logic0_xor0 = 0; - uint8_t u_cla6_pg_logic1_or0 = 0; - uint8_t u_cla6_pg_logic1_and0 = 0; - uint8_t u_cla6_pg_logic1_xor0 = 0; - uint8_t u_cla6_xor1 = 0; - uint8_t u_cla6_and0 = 0; - uint8_t u_cla6_or0 = 0; - uint8_t u_cla6_pg_logic2_or0 = 0; - uint8_t u_cla6_pg_logic2_and0 = 0; - uint8_t u_cla6_pg_logic2_xor0 = 0; - uint8_t u_cla6_xor2 = 0; - uint8_t u_cla6_and1 = 0; - uint8_t u_cla6_and2 = 0; - uint8_t u_cla6_and3 = 0; - uint8_t u_cla6_and4 = 0; - uint8_t u_cla6_or1 = 0; - uint8_t u_cla6_or2 = 0; - uint8_t u_cla6_pg_logic3_or0 = 0; - uint8_t u_cla6_pg_logic3_and0 = 0; - uint8_t u_cla6_pg_logic3_xor0 = 0; - uint8_t u_cla6_xor3 = 0; - uint8_t u_cla6_and5 = 0; - uint8_t u_cla6_and6 = 0; - uint8_t u_cla6_and7 = 0; - uint8_t u_cla6_and8 = 0; - uint8_t u_cla6_and9 = 0; - uint8_t u_cla6_and10 = 0; - uint8_t u_cla6_and11 = 0; - uint8_t u_cla6_or3 = 0; - uint8_t u_cla6_or4 = 0; - uint8_t u_cla6_or5 = 0; - uint8_t u_cla6_pg_logic4_or0 = 0; - uint8_t u_cla6_pg_logic4_and0 = 0; - uint8_t u_cla6_pg_logic4_xor0 = 0; - uint8_t u_cla6_xor4 = 0; - uint8_t u_cla6_and12 = 0; - uint8_t u_cla6_or6 = 0; - uint8_t u_cla6_pg_logic5_or0 = 0; - uint8_t u_cla6_pg_logic5_and0 = 0; - uint8_t u_cla6_pg_logic5_xor0 = 0; - uint8_t u_cla6_xor5 = 0; - uint8_t u_cla6_and13 = 0; - uint8_t u_cla6_and14 = 0; - uint8_t u_cla6_and15 = 0; - uint8_t u_cla6_or7 = 0; - uint8_t u_cla6_or8 = 0; - - u_cla6_pg_logic0_or0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic0_and0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic0_xor0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 2) & 0x01; - u_cla6_pg_logic1_or0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic1_and0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic1_xor0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 2) & 0x01; - u_cla6_xor1 = xor_gate(((u_cla6_pg_logic1_xor0 >> 0) & 0x01), ((u_cla6_pg_logic0_and0 >> 0) & 0x01)); - u_cla6_and0 = and_gate(((u_cla6_pg_logic0_and0 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_or0 = or_gate(((u_cla6_pg_logic1_and0 >> 0) & 0x01), ((u_cla6_and0 >> 0) & 0x01)); - u_cla6_pg_logic2_or0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic2_and0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic2_xor0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 2) & 0x01; - u_cla6_xor2 = xor_gate(((u_cla6_pg_logic2_xor0 >> 0) & 0x01), ((u_cla6_or0 >> 0) & 0x01)); - u_cla6_and1 = and_gate(((u_cla6_pg_logic2_or0 >> 0) & 0x01), ((u_cla6_pg_logic0_or0 >> 0) & 0x01)); - u_cla6_and2 = and_gate(((u_cla6_pg_logic0_and0 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_and3 = and_gate(((u_cla6_and2 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_and4 = and_gate(((u_cla6_pg_logic1_and0 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_or1 = or_gate(((u_cla6_and3 >> 0) & 0x01), ((u_cla6_and4 >> 0) & 0x01)); - u_cla6_or2 = or_gate(((u_cla6_pg_logic2_and0 >> 0) & 0x01), ((u_cla6_or1 >> 0) & 0x01)); - u_cla6_pg_logic3_or0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic3_and0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic3_xor0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 2) & 0x01; - u_cla6_xor3 = xor_gate(((u_cla6_pg_logic3_xor0 >> 0) & 0x01), ((u_cla6_or2 >> 0) & 0x01)); - u_cla6_and5 = and_gate(((u_cla6_pg_logic3_or0 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_and6 = and_gate(((u_cla6_pg_logic0_and0 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_and7 = and_gate(((u_cla6_pg_logic3_or0 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_and8 = and_gate(((u_cla6_and6 >> 0) & 0x01), ((u_cla6_and7 >> 0) & 0x01)); - u_cla6_and9 = and_gate(((u_cla6_pg_logic1_and0 >> 0) & 0x01), ((u_cla6_pg_logic3_or0 >> 0) & 0x01)); - u_cla6_and10 = and_gate(((u_cla6_and9 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_and11 = and_gate(((u_cla6_pg_logic2_and0 >> 0) & 0x01), ((u_cla6_pg_logic3_or0 >> 0) & 0x01)); - u_cla6_or3 = or_gate(((u_cla6_and8 >> 0) & 0x01), ((u_cla6_and11 >> 0) & 0x01)); - u_cla6_or4 = or_gate(((u_cla6_and10 >> 0) & 0x01), ((u_cla6_or3 >> 0) & 0x01)); - u_cla6_or5 = or_gate(((u_cla6_pg_logic3_and0 >> 0) & 0x01), ((u_cla6_or4 >> 0) & 0x01)); - u_cla6_pg_logic4_or0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic4_and0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic4_xor0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 2) & 0x01; - u_cla6_xor4 = xor_gate(((u_cla6_pg_logic4_xor0 >> 0) & 0x01), ((u_cla6_or5 >> 0) & 0x01)); - u_cla6_and12 = and_gate(((u_cla6_or5 >> 0) & 0x01), ((u_cla6_pg_logic4_or0 >> 0) & 0x01)); - u_cla6_or6 = or_gate(((u_cla6_pg_logic4_and0 >> 0) & 0x01), ((u_cla6_and12 >> 0) & 0x01)); - u_cla6_pg_logic5_or0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic5_and0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic5_xor0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 2) & 0x01; - u_cla6_xor5 = xor_gate(((u_cla6_pg_logic5_xor0 >> 0) & 0x01), ((u_cla6_or6 >> 0) & 0x01)); - u_cla6_and13 = and_gate(((u_cla6_or5 >> 0) & 0x01), ((u_cla6_pg_logic5_or0 >> 0) & 0x01)); - u_cla6_and14 = and_gate(((u_cla6_and13 >> 0) & 0x01), ((u_cla6_pg_logic4_or0 >> 0) & 0x01)); - u_cla6_and15 = and_gate(((u_cla6_pg_logic4_and0 >> 0) & 0x01), ((u_cla6_pg_logic5_or0 >> 0) & 0x01)); - u_cla6_or7 = or_gate(((u_cla6_and14 >> 0) & 0x01), ((u_cla6_and15 >> 0) & 0x01)); - u_cla6_or8 = or_gate(((u_cla6_pg_logic5_and0 >> 0) & 0x01), ((u_cla6_or7 >> 0) & 0x01)); - - u_cla6_out |= ((u_cla6_pg_logic0_xor0 >> 0) & 0x01) << 0; - u_cla6_out |= ((u_cla6_xor1 >> 0) & 0x01) << 1; - u_cla6_out |= ((u_cla6_xor2 >> 0) & 0x01) << 2; - u_cla6_out |= ((u_cla6_xor3 >> 0) & 0x01) << 3; - u_cla6_out |= ((u_cla6_xor4 >> 0) & 0x01) << 4; - u_cla6_out |= ((u_cla6_xor5 >> 0) & 0x01) << 5; - u_cla6_out |= ((u_cla6_or8 >> 0) & 0x01) << 6; - return u_cla6_out; -} - -uint64_t h_s_dadda_cla4(uint64_t a, uint64_t b){ - uint8_t h_s_dadda_cla4_out = 0; - uint8_t h_s_dadda_cla4_nand_3_0 = 0; - uint8_t h_s_dadda_cla4_and_2_1 = 0; - uint8_t h_s_dadda_cla4_ha0_xor0 = 0; - uint8_t h_s_dadda_cla4_ha0_and0 = 0; - uint8_t h_s_dadda_cla4_nand_3_1 = 0; - uint8_t h_s_dadda_cla4_fa0_xor1 = 0; - uint8_t h_s_dadda_cla4_fa0_or0 = 0; - uint8_t h_s_dadda_cla4_and_2_0 = 0; - uint8_t h_s_dadda_cla4_and_1_1 = 0; - uint8_t h_s_dadda_cla4_ha1_xor0 = 0; - uint8_t h_s_dadda_cla4_ha1_and0 = 0; - uint8_t h_s_dadda_cla4_and_1_2 = 0; - uint8_t h_s_dadda_cla4_nand_0_3 = 0; - uint8_t h_s_dadda_cla4_fa1_xor1 = 0; - uint8_t h_s_dadda_cla4_fa1_or0 = 0; - uint8_t h_s_dadda_cla4_and_2_2 = 0; - uint8_t h_s_dadda_cla4_nand_1_3 = 0; - uint8_t h_s_dadda_cla4_fa2_xor1 = 0; - uint8_t h_s_dadda_cla4_fa2_or0 = 0; - uint8_t h_s_dadda_cla4_nand_3_2 = 0; - uint8_t h_s_dadda_cla4_fa3_xor1 = 0; - uint8_t h_s_dadda_cla4_fa3_or0 = 0; - uint8_t h_s_dadda_cla4_and_0_0 = 0; - uint8_t h_s_dadda_cla4_and_1_0 = 0; - uint8_t h_s_dadda_cla4_and_0_2 = 0; - uint8_t h_s_dadda_cla4_nand_2_3 = 0; - uint8_t h_s_dadda_cla4_and_0_1 = 0; - uint8_t h_s_dadda_cla4_and_3_3 = 0; - uint64_t h_s_dadda_cla4_u_cla6_a = 0; - uint64_t h_s_dadda_cla4_u_cla6_b = 0; - uint64_t h_s_dadda_cla4_u_cla6_out = 0; - uint8_t h_s_dadda_cla4_xor0 = 0; - - h_s_dadda_cla4_nand_3_0 = nand_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cla4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cla4_ha0_xor0 = (ha(((h_s_dadda_cla4_nand_3_0 >> 0) & 0x01), ((h_s_dadda_cla4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla4_ha0_and0 = (ha(((h_s_dadda_cla4_nand_3_0 >> 0) & 0x01), ((h_s_dadda_cla4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla4_nand_3_1 = nand_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cla4_fa0_xor1 = (fa(((h_s_dadda_cla4_ha0_and0 >> 0) & 0x01), (0x01), ((h_s_dadda_cla4_nand_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla4_fa0_or0 = (fa(((h_s_dadda_cla4_ha0_and0 >> 0) & 0x01), (0x01), ((h_s_dadda_cla4_nand_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cla4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cla4_ha1_xor0 = (ha(((h_s_dadda_cla4_and_2_0 >> 0) & 0x01), ((h_s_dadda_cla4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla4_ha1_and0 = (ha(((h_s_dadda_cla4_and_2_0 >> 0) & 0x01), ((h_s_dadda_cla4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cla4_nand_0_3 = nand_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cla4_fa1_xor1 = (fa(((h_s_dadda_cla4_ha1_and0 >> 0) & 0x01), ((h_s_dadda_cla4_and_1_2 >> 0) & 0x01), ((h_s_dadda_cla4_nand_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla4_fa1_or0 = (fa(((h_s_dadda_cla4_ha1_and0 >> 0) & 0x01), ((h_s_dadda_cla4_and_1_2 >> 0) & 0x01), ((h_s_dadda_cla4_nand_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cla4_nand_1_3 = nand_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cla4_fa2_xor1 = (fa(((h_s_dadda_cla4_fa1_or0 >> 0) & 0x01), ((h_s_dadda_cla4_and_2_2 >> 0) & 0x01), ((h_s_dadda_cla4_nand_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla4_fa2_or0 = (fa(((h_s_dadda_cla4_fa1_or0 >> 0) & 0x01), ((h_s_dadda_cla4_and_2_2 >> 0) & 0x01), ((h_s_dadda_cla4_nand_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla4_nand_3_2 = nand_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cla4_fa3_xor1 = (fa(((h_s_dadda_cla4_fa2_or0 >> 0) & 0x01), ((h_s_dadda_cla4_fa0_or0 >> 0) & 0x01), ((h_s_dadda_cla4_nand_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla4_fa3_or0 = (fa(((h_s_dadda_cla4_fa2_or0 >> 0) & 0x01), ((h_s_dadda_cla4_fa0_or0 >> 0) & 0x01), ((h_s_dadda_cla4_nand_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cla4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cla4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cla4_nand_2_3 = nand_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cla4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cla4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cla4_u_cla6_a |= ((h_s_dadda_cla4_and_1_0 >> 0) & 0x01) << 0; - h_s_dadda_cla4_u_cla6_a |= ((h_s_dadda_cla4_and_0_2 >> 0) & 0x01) << 1; - h_s_dadda_cla4_u_cla6_a |= ((h_s_dadda_cla4_ha0_xor0 >> 0) & 0x01) << 2; - h_s_dadda_cla4_u_cla6_a |= ((h_s_dadda_cla4_fa0_xor1 >> 0) & 0x01) << 3; - h_s_dadda_cla4_u_cla6_a |= ((h_s_dadda_cla4_nand_2_3 >> 0) & 0x01) << 4; - h_s_dadda_cla4_u_cla6_a |= ((h_s_dadda_cla4_fa3_or0 >> 0) & 0x01) << 5; - h_s_dadda_cla4_u_cla6_b |= ((h_s_dadda_cla4_and_0_1 >> 0) & 0x01) << 0; - h_s_dadda_cla4_u_cla6_b |= ((h_s_dadda_cla4_ha1_xor0 >> 0) & 0x01) << 1; - h_s_dadda_cla4_u_cla6_b |= ((h_s_dadda_cla4_fa1_xor1 >> 0) & 0x01) << 2; - h_s_dadda_cla4_u_cla6_b |= ((h_s_dadda_cla4_fa2_xor1 >> 0) & 0x01) << 3; - h_s_dadda_cla4_u_cla6_b |= ((h_s_dadda_cla4_fa3_xor1 >> 0) & 0x01) << 4; - h_s_dadda_cla4_u_cla6_b |= ((h_s_dadda_cla4_and_3_3 >> 0) & 0x01) << 5; - h_s_dadda_cla4_u_cla6_out = u_cla6(h_s_dadda_cla4_u_cla6_a, h_s_dadda_cla4_u_cla6_b); - h_s_dadda_cla4_xor0 = not_gate(((h_s_dadda_cla4_u_cla6_out >> 6) & 0x01)); - - h_s_dadda_cla4_out |= ((h_s_dadda_cla4_and_0_0 >> 0) & 0x01) << 0; - h_s_dadda_cla4_out |= ((h_s_dadda_cla4_u_cla6_out >> 0) & 0x01) << 1; - h_s_dadda_cla4_out |= ((h_s_dadda_cla4_u_cla6_out >> 1) & 0x01) << 2; - h_s_dadda_cla4_out |= ((h_s_dadda_cla4_u_cla6_out >> 2) & 0x01) << 3; - h_s_dadda_cla4_out |= ((h_s_dadda_cla4_u_cla6_out >> 3) & 0x01) << 4; - h_s_dadda_cla4_out |= ((h_s_dadda_cla4_u_cla6_out >> 4) & 0x01) << 5; - h_s_dadda_cla4_out |= ((h_s_dadda_cla4_u_cla6_out >> 5) & 0x01) << 6; - h_s_dadda_cla4_out |= ((h_s_dadda_cla4_xor0 >> 0) & 0x01) << 7; - return h_s_dadda_cla4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)h_s_dadda_cla4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cla8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cla8.c deleted file mode 100644 index 1a2ced4..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cla8.c +++ /dev/null @@ -1,743 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_logic(uint8_t a, uint8_t b){ - uint8_t pg_logic_out = 0; - uint8_t pg_logic_or0 = 0; - uint8_t pg_logic_and0 = 0; - uint8_t pg_logic_xor0 = 0; - - pg_logic_or0 = or_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - pg_logic_out |= ((pg_logic_or0 >> 0) & 0x01) << 0; - pg_logic_out |= ((pg_logic_and0 >> 0) & 0x01) << 1; - pg_logic_out |= ((pg_logic_xor0 >> 0) & 0x01) << 2; - return pg_logic_out; -} - -uint64_t u_cla14(uint64_t a, uint64_t b){ - uint64_t u_cla14_out = 0; - uint8_t u_cla14_pg_logic0_or0 = 0; - uint8_t u_cla14_pg_logic0_and0 = 0; - uint8_t u_cla14_pg_logic0_xor0 = 0; - uint8_t u_cla14_pg_logic1_or0 = 0; - uint8_t u_cla14_pg_logic1_and0 = 0; - uint8_t u_cla14_pg_logic1_xor0 = 0; - uint8_t u_cla14_xor1 = 0; - uint8_t u_cla14_and0 = 0; - uint8_t u_cla14_or0 = 0; - uint8_t u_cla14_pg_logic2_or0 = 0; - uint8_t u_cla14_pg_logic2_and0 = 0; - uint8_t u_cla14_pg_logic2_xor0 = 0; - uint8_t u_cla14_xor2 = 0; - uint8_t u_cla14_and1 = 0; - uint8_t u_cla14_and2 = 0; - uint8_t u_cla14_and3 = 0; - uint8_t u_cla14_and4 = 0; - uint8_t u_cla14_or1 = 0; - uint8_t u_cla14_or2 = 0; - uint8_t u_cla14_pg_logic3_or0 = 0; - uint8_t u_cla14_pg_logic3_and0 = 0; - uint8_t u_cla14_pg_logic3_xor0 = 0; - uint8_t u_cla14_xor3 = 0; - uint8_t u_cla14_and5 = 0; - uint8_t u_cla14_and6 = 0; - uint8_t u_cla14_and7 = 0; - uint8_t u_cla14_and8 = 0; - uint8_t u_cla14_and9 = 0; - uint8_t u_cla14_and10 = 0; - uint8_t u_cla14_and11 = 0; - uint8_t u_cla14_or3 = 0; - uint8_t u_cla14_or4 = 0; - uint8_t u_cla14_or5 = 0; - uint8_t u_cla14_pg_logic4_or0 = 0; - uint8_t u_cla14_pg_logic4_and0 = 0; - uint8_t u_cla14_pg_logic4_xor0 = 0; - uint8_t u_cla14_xor4 = 0; - uint8_t u_cla14_and12 = 0; - uint8_t u_cla14_or6 = 0; - uint8_t u_cla14_pg_logic5_or0 = 0; - uint8_t u_cla14_pg_logic5_and0 = 0; - uint8_t u_cla14_pg_logic5_xor0 = 0; - uint8_t u_cla14_xor5 = 0; - uint8_t u_cla14_and13 = 0; - uint8_t u_cla14_and14 = 0; - uint8_t u_cla14_and15 = 0; - uint8_t u_cla14_or7 = 0; - uint8_t u_cla14_or8 = 0; - uint8_t u_cla14_pg_logic6_or0 = 0; - uint8_t u_cla14_pg_logic6_and0 = 0; - uint8_t u_cla14_pg_logic6_xor0 = 0; - uint8_t u_cla14_xor6 = 0; - uint8_t u_cla14_and16 = 0; - uint8_t u_cla14_and17 = 0; - uint8_t u_cla14_and18 = 0; - uint8_t u_cla14_and19 = 0; - uint8_t u_cla14_and20 = 0; - uint8_t u_cla14_and21 = 0; - uint8_t u_cla14_or9 = 0; - uint8_t u_cla14_or10 = 0; - uint8_t u_cla14_or11 = 0; - uint8_t u_cla14_pg_logic7_or0 = 0; - uint8_t u_cla14_pg_logic7_and0 = 0; - uint8_t u_cla14_pg_logic7_xor0 = 0; - uint8_t u_cla14_xor7 = 0; - uint8_t u_cla14_and22 = 0; - uint8_t u_cla14_and23 = 0; - uint8_t u_cla14_and24 = 0; - uint8_t u_cla14_and25 = 0; - uint8_t u_cla14_and26 = 0; - uint8_t u_cla14_and27 = 0; - uint8_t u_cla14_and28 = 0; - uint8_t u_cla14_and29 = 0; - uint8_t u_cla14_and30 = 0; - uint8_t u_cla14_and31 = 0; - uint8_t u_cla14_or12 = 0; - uint8_t u_cla14_or13 = 0; - uint8_t u_cla14_or14 = 0; - uint8_t u_cla14_or15 = 0; - uint8_t u_cla14_pg_logic8_or0 = 0; - uint8_t u_cla14_pg_logic8_and0 = 0; - uint8_t u_cla14_pg_logic8_xor0 = 0; - uint8_t u_cla14_xor8 = 0; - uint8_t u_cla14_and32 = 0; - uint8_t u_cla14_or16 = 0; - uint8_t u_cla14_pg_logic9_or0 = 0; - uint8_t u_cla14_pg_logic9_and0 = 0; - uint8_t u_cla14_pg_logic9_xor0 = 0; - uint8_t u_cla14_xor9 = 0; - uint8_t u_cla14_and33 = 0; - uint8_t u_cla14_and34 = 0; - uint8_t u_cla14_and35 = 0; - uint8_t u_cla14_or17 = 0; - uint8_t u_cla14_or18 = 0; - uint8_t u_cla14_pg_logic10_or0 = 0; - uint8_t u_cla14_pg_logic10_and0 = 0; - uint8_t u_cla14_pg_logic10_xor0 = 0; - uint8_t u_cla14_xor10 = 0; - uint8_t u_cla14_and36 = 0; - uint8_t u_cla14_and37 = 0; - uint8_t u_cla14_and38 = 0; - uint8_t u_cla14_and39 = 0; - uint8_t u_cla14_and40 = 0; - uint8_t u_cla14_and41 = 0; - uint8_t u_cla14_or19 = 0; - uint8_t u_cla14_or20 = 0; - uint8_t u_cla14_or21 = 0; - uint8_t u_cla14_pg_logic11_or0 = 0; - uint8_t u_cla14_pg_logic11_and0 = 0; - uint8_t u_cla14_pg_logic11_xor0 = 0; - uint8_t u_cla14_xor11 = 0; - uint8_t u_cla14_and42 = 0; - uint8_t u_cla14_and43 = 0; - uint8_t u_cla14_and44 = 0; - uint8_t u_cla14_and45 = 0; - uint8_t u_cla14_and46 = 0; - uint8_t u_cla14_and47 = 0; - uint8_t u_cla14_and48 = 0; - uint8_t u_cla14_and49 = 0; - uint8_t u_cla14_and50 = 0; - uint8_t u_cla14_and51 = 0; - uint8_t u_cla14_or22 = 0; - uint8_t u_cla14_or23 = 0; - uint8_t u_cla14_or24 = 0; - uint8_t u_cla14_or25 = 0; - uint8_t u_cla14_pg_logic12_or0 = 0; - uint8_t u_cla14_pg_logic12_and0 = 0; - uint8_t u_cla14_pg_logic12_xor0 = 0; - uint8_t u_cla14_xor12 = 0; - uint8_t u_cla14_and52 = 0; - uint8_t u_cla14_or26 = 0; - uint8_t u_cla14_pg_logic13_or0 = 0; - uint8_t u_cla14_pg_logic13_and0 = 0; - uint8_t u_cla14_pg_logic13_xor0 = 0; - uint8_t u_cla14_xor13 = 0; - uint8_t u_cla14_and53 = 0; - uint8_t u_cla14_and54 = 0; - uint8_t u_cla14_and55 = 0; - uint8_t u_cla14_or27 = 0; - uint8_t u_cla14_or28 = 0; - - u_cla14_pg_logic0_or0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic0_and0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic0_xor0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 2) & 0x01; - u_cla14_pg_logic1_or0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic1_and0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic1_xor0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 2) & 0x01; - u_cla14_xor1 = xor_gate(((u_cla14_pg_logic1_xor0 >> 0) & 0x01), ((u_cla14_pg_logic0_and0 >> 0) & 0x01)); - u_cla14_and0 = and_gate(((u_cla14_pg_logic0_and0 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_or0 = or_gate(((u_cla14_pg_logic1_and0 >> 0) & 0x01), ((u_cla14_and0 >> 0) & 0x01)); - u_cla14_pg_logic2_or0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic2_and0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic2_xor0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 2) & 0x01; - u_cla14_xor2 = xor_gate(((u_cla14_pg_logic2_xor0 >> 0) & 0x01), ((u_cla14_or0 >> 0) & 0x01)); - u_cla14_and1 = and_gate(((u_cla14_pg_logic2_or0 >> 0) & 0x01), ((u_cla14_pg_logic0_or0 >> 0) & 0x01)); - u_cla14_and2 = and_gate(((u_cla14_pg_logic0_and0 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_and3 = and_gate(((u_cla14_and2 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_and4 = and_gate(((u_cla14_pg_logic1_and0 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_or1 = or_gate(((u_cla14_and3 >> 0) & 0x01), ((u_cla14_and4 >> 0) & 0x01)); - u_cla14_or2 = or_gate(((u_cla14_pg_logic2_and0 >> 0) & 0x01), ((u_cla14_or1 >> 0) & 0x01)); - u_cla14_pg_logic3_or0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic3_and0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic3_xor0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 2) & 0x01; - u_cla14_xor3 = xor_gate(((u_cla14_pg_logic3_xor0 >> 0) & 0x01), ((u_cla14_or2 >> 0) & 0x01)); - u_cla14_and5 = and_gate(((u_cla14_pg_logic3_or0 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_and6 = and_gate(((u_cla14_pg_logic0_and0 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_and7 = and_gate(((u_cla14_pg_logic3_or0 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_and8 = and_gate(((u_cla14_and6 >> 0) & 0x01), ((u_cla14_and7 >> 0) & 0x01)); - u_cla14_and9 = and_gate(((u_cla14_pg_logic1_and0 >> 0) & 0x01), ((u_cla14_pg_logic3_or0 >> 0) & 0x01)); - u_cla14_and10 = and_gate(((u_cla14_and9 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_and11 = and_gate(((u_cla14_pg_logic2_and0 >> 0) & 0x01), ((u_cla14_pg_logic3_or0 >> 0) & 0x01)); - u_cla14_or3 = or_gate(((u_cla14_and8 >> 0) & 0x01), ((u_cla14_and11 >> 0) & 0x01)); - u_cla14_or4 = or_gate(((u_cla14_and10 >> 0) & 0x01), ((u_cla14_or3 >> 0) & 0x01)); - u_cla14_or5 = or_gate(((u_cla14_pg_logic3_and0 >> 0) & 0x01), ((u_cla14_or4 >> 0) & 0x01)); - u_cla14_pg_logic4_or0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic4_and0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic4_xor0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 2) & 0x01; - u_cla14_xor4 = xor_gate(((u_cla14_pg_logic4_xor0 >> 0) & 0x01), ((u_cla14_or5 >> 0) & 0x01)); - u_cla14_and12 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_or6 = or_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_and12 >> 0) & 0x01)); - u_cla14_pg_logic5_or0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic5_and0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic5_xor0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 2) & 0x01; - u_cla14_xor5 = xor_gate(((u_cla14_pg_logic5_xor0 >> 0) & 0x01), ((u_cla14_or6 >> 0) & 0x01)); - u_cla14_and13 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and14 = and_gate(((u_cla14_and13 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_and15 = and_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_or7 = or_gate(((u_cla14_and14 >> 0) & 0x01), ((u_cla14_and15 >> 0) & 0x01)); - u_cla14_or8 = or_gate(((u_cla14_pg_logic5_and0 >> 0) & 0x01), ((u_cla14_or7 >> 0) & 0x01)); - u_cla14_pg_logic6_or0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic6_and0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic6_xor0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 2) & 0x01; - u_cla14_xor6 = xor_gate(((u_cla14_pg_logic6_xor0 >> 0) & 0x01), ((u_cla14_or8 >> 0) & 0x01)); - u_cla14_and16 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and17 = and_gate(((u_cla14_pg_logic6_or0 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_and18 = and_gate(((u_cla14_and16 >> 0) & 0x01), ((u_cla14_and17 >> 0) & 0x01)); - u_cla14_and19 = and_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and20 = and_gate(((u_cla14_and19 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and21 = and_gate(((u_cla14_pg_logic5_and0 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_or9 = or_gate(((u_cla14_and18 >> 0) & 0x01), ((u_cla14_and20 >> 0) & 0x01)); - u_cla14_or10 = or_gate(((u_cla14_or9 >> 0) & 0x01), ((u_cla14_and21 >> 0) & 0x01)); - u_cla14_or11 = or_gate(((u_cla14_pg_logic6_and0 >> 0) & 0x01), ((u_cla14_or10 >> 0) & 0x01)); - u_cla14_pg_logic7_or0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic7_and0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic7_xor0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 2) & 0x01; - u_cla14_xor7 = xor_gate(((u_cla14_pg_logic7_xor0 >> 0) & 0x01), ((u_cla14_or11 >> 0) & 0x01)); - u_cla14_and22 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and23 = and_gate(((u_cla14_pg_logic7_or0 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and24 = and_gate(((u_cla14_and22 >> 0) & 0x01), ((u_cla14_and23 >> 0) & 0x01)); - u_cla14_and25 = and_gate(((u_cla14_and24 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_and26 = and_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and27 = and_gate(((u_cla14_pg_logic7_or0 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and28 = and_gate(((u_cla14_and26 >> 0) & 0x01), ((u_cla14_and27 >> 0) & 0x01)); - u_cla14_and29 = and_gate(((u_cla14_pg_logic5_and0 >> 0) & 0x01), ((u_cla14_pg_logic7_or0 >> 0) & 0x01)); - u_cla14_and30 = and_gate(((u_cla14_and29 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and31 = and_gate(((u_cla14_pg_logic6_and0 >> 0) & 0x01), ((u_cla14_pg_logic7_or0 >> 0) & 0x01)); - u_cla14_or12 = or_gate(((u_cla14_and25 >> 0) & 0x01), ((u_cla14_and30 >> 0) & 0x01)); - u_cla14_or13 = or_gate(((u_cla14_and28 >> 0) & 0x01), ((u_cla14_and31 >> 0) & 0x01)); - u_cla14_or14 = or_gate(((u_cla14_or12 >> 0) & 0x01), ((u_cla14_or13 >> 0) & 0x01)); - u_cla14_or15 = or_gate(((u_cla14_pg_logic7_and0 >> 0) & 0x01), ((u_cla14_or14 >> 0) & 0x01)); - u_cla14_pg_logic8_or0 = (pg_logic(((a >> 8) & 0x01), ((b >> 8) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic8_and0 = (pg_logic(((a >> 8) & 0x01), ((b >> 8) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic8_xor0 = (pg_logic(((a >> 8) & 0x01), ((b >> 8) & 0x01)) >> 2) & 0x01; - u_cla14_xor8 = xor_gate(((u_cla14_pg_logic8_xor0 >> 0) & 0x01), ((u_cla14_or15 >> 0) & 0x01)); - u_cla14_and32 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_or16 = or_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_and32 >> 0) & 0x01)); - u_cla14_pg_logic9_or0 = (pg_logic(((a >> 9) & 0x01), ((b >> 9) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic9_and0 = (pg_logic(((a >> 9) & 0x01), ((b >> 9) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic9_xor0 = (pg_logic(((a >> 9) & 0x01), ((b >> 9) & 0x01)) >> 2) & 0x01; - u_cla14_xor9 = xor_gate(((u_cla14_pg_logic9_xor0 >> 0) & 0x01), ((u_cla14_or16 >> 0) & 0x01)); - u_cla14_and33 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and34 = and_gate(((u_cla14_and33 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_and35 = and_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_or17 = or_gate(((u_cla14_and34 >> 0) & 0x01), ((u_cla14_and35 >> 0) & 0x01)); - u_cla14_or18 = or_gate(((u_cla14_pg_logic9_and0 >> 0) & 0x01), ((u_cla14_or17 >> 0) & 0x01)); - u_cla14_pg_logic10_or0 = (pg_logic(((a >> 10) & 0x01), ((b >> 10) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic10_and0 = (pg_logic(((a >> 10) & 0x01), ((b >> 10) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic10_xor0 = (pg_logic(((a >> 10) & 0x01), ((b >> 10) & 0x01)) >> 2) & 0x01; - u_cla14_xor10 = xor_gate(((u_cla14_pg_logic10_xor0 >> 0) & 0x01), ((u_cla14_or18 >> 0) & 0x01)); - u_cla14_and36 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and37 = and_gate(((u_cla14_pg_logic10_or0 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_and38 = and_gate(((u_cla14_and36 >> 0) & 0x01), ((u_cla14_and37 >> 0) & 0x01)); - u_cla14_and39 = and_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and40 = and_gate(((u_cla14_and39 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and41 = and_gate(((u_cla14_pg_logic9_and0 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_or19 = or_gate(((u_cla14_and38 >> 0) & 0x01), ((u_cla14_and40 >> 0) & 0x01)); - u_cla14_or20 = or_gate(((u_cla14_or19 >> 0) & 0x01), ((u_cla14_and41 >> 0) & 0x01)); - u_cla14_or21 = or_gate(((u_cla14_pg_logic10_and0 >> 0) & 0x01), ((u_cla14_or20 >> 0) & 0x01)); - u_cla14_pg_logic11_or0 = (pg_logic(((a >> 11) & 0x01), ((b >> 11) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic11_and0 = (pg_logic(((a >> 11) & 0x01), ((b >> 11) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic11_xor0 = (pg_logic(((a >> 11) & 0x01), ((b >> 11) & 0x01)) >> 2) & 0x01; - u_cla14_xor11 = xor_gate(((u_cla14_pg_logic11_xor0 >> 0) & 0x01), ((u_cla14_or21 >> 0) & 0x01)); - u_cla14_and42 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and43 = and_gate(((u_cla14_pg_logic11_or0 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and44 = and_gate(((u_cla14_and42 >> 0) & 0x01), ((u_cla14_and43 >> 0) & 0x01)); - u_cla14_and45 = and_gate(((u_cla14_and44 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_and46 = and_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and47 = and_gate(((u_cla14_pg_logic11_or0 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and48 = and_gate(((u_cla14_and46 >> 0) & 0x01), ((u_cla14_and47 >> 0) & 0x01)); - u_cla14_and49 = and_gate(((u_cla14_pg_logic9_and0 >> 0) & 0x01), ((u_cla14_pg_logic11_or0 >> 0) & 0x01)); - u_cla14_and50 = and_gate(((u_cla14_and49 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and51 = and_gate(((u_cla14_pg_logic10_and0 >> 0) & 0x01), ((u_cla14_pg_logic11_or0 >> 0) & 0x01)); - u_cla14_or22 = or_gate(((u_cla14_and45 >> 0) & 0x01), ((u_cla14_and50 >> 0) & 0x01)); - u_cla14_or23 = or_gate(((u_cla14_and48 >> 0) & 0x01), ((u_cla14_and51 >> 0) & 0x01)); - u_cla14_or24 = or_gate(((u_cla14_or22 >> 0) & 0x01), ((u_cla14_or23 >> 0) & 0x01)); - u_cla14_or25 = or_gate(((u_cla14_pg_logic11_and0 >> 0) & 0x01), ((u_cla14_or24 >> 0) & 0x01)); - u_cla14_pg_logic12_or0 = (pg_logic(((a >> 12) & 0x01), ((b >> 12) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic12_and0 = (pg_logic(((a >> 12) & 0x01), ((b >> 12) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic12_xor0 = (pg_logic(((a >> 12) & 0x01), ((b >> 12) & 0x01)) >> 2) & 0x01; - u_cla14_xor12 = xor_gate(((u_cla14_pg_logic12_xor0 >> 0) & 0x01), ((u_cla14_or25 >> 0) & 0x01)); - u_cla14_and52 = and_gate(((u_cla14_or25 >> 0) & 0x01), ((u_cla14_pg_logic12_or0 >> 0) & 0x01)); - u_cla14_or26 = or_gate(((u_cla14_pg_logic12_and0 >> 0) & 0x01), ((u_cla14_and52 >> 0) & 0x01)); - u_cla14_pg_logic13_or0 = (pg_logic(((a >> 13) & 0x01), ((b >> 13) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic13_and0 = (pg_logic(((a >> 13) & 0x01), ((b >> 13) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic13_xor0 = (pg_logic(((a >> 13) & 0x01), ((b >> 13) & 0x01)) >> 2) & 0x01; - u_cla14_xor13 = xor_gate(((u_cla14_pg_logic13_xor0 >> 0) & 0x01), ((u_cla14_or26 >> 0) & 0x01)); - u_cla14_and53 = and_gate(((u_cla14_or25 >> 0) & 0x01), ((u_cla14_pg_logic13_or0 >> 0) & 0x01)); - u_cla14_and54 = and_gate(((u_cla14_and53 >> 0) & 0x01), ((u_cla14_pg_logic12_or0 >> 0) & 0x01)); - u_cla14_and55 = and_gate(((u_cla14_pg_logic12_and0 >> 0) & 0x01), ((u_cla14_pg_logic13_or0 >> 0) & 0x01)); - u_cla14_or27 = or_gate(((u_cla14_and54 >> 0) & 0x01), ((u_cla14_and55 >> 0) & 0x01)); - u_cla14_or28 = or_gate(((u_cla14_pg_logic13_and0 >> 0) & 0x01), ((u_cla14_or27 >> 0) & 0x01)); - - u_cla14_out |= ((u_cla14_pg_logic0_xor0 >> 0) & 0x01) << 0; - u_cla14_out |= ((u_cla14_xor1 >> 0) & 0x01) << 1; - u_cla14_out |= ((u_cla14_xor2 >> 0) & 0x01) << 2; - u_cla14_out |= ((u_cla14_xor3 >> 0) & 0x01) << 3; - u_cla14_out |= ((u_cla14_xor4 >> 0) & 0x01) << 4; - u_cla14_out |= ((u_cla14_xor5 >> 0) & 0x01) << 5; - u_cla14_out |= ((u_cla14_xor6 >> 0) & 0x01) << 6; - u_cla14_out |= ((u_cla14_xor7 >> 0) & 0x01) << 7; - u_cla14_out |= ((u_cla14_xor8 >> 0) & 0x01) << 8; - u_cla14_out |= ((u_cla14_xor9 >> 0) & 0x01) << 9; - u_cla14_out |= ((u_cla14_xor10 >> 0) & 0x01) << 10; - u_cla14_out |= ((u_cla14_xor11 >> 0) & 0x01) << 11; - u_cla14_out |= ((u_cla14_xor12 >> 0) & 0x01) << 12; - u_cla14_out |= ((u_cla14_xor13 >> 0) & 0x01) << 13; - u_cla14_out |= ((u_cla14_or28 >> 0) & 0x01) << 14; - return u_cla14_out; -} - -uint64_t h_s_dadda_cla8(uint64_t a, uint64_t b){ - uint64_t h_s_dadda_cla8_out = 0; - uint8_t h_s_dadda_cla8_and_6_0 = 0; - uint8_t h_s_dadda_cla8_and_5_1 = 0; - uint8_t h_s_dadda_cla8_ha0_xor0 = 0; - uint8_t h_s_dadda_cla8_ha0_and0 = 0; - uint8_t h_s_dadda_cla8_nand_7_0 = 0; - uint8_t h_s_dadda_cla8_and_6_1 = 0; - uint8_t h_s_dadda_cla8_fa0_xor1 = 0; - uint8_t h_s_dadda_cla8_fa0_or0 = 0; - uint8_t h_s_dadda_cla8_and_5_2 = 0; - uint8_t h_s_dadda_cla8_and_4_3 = 0; - uint8_t h_s_dadda_cla8_ha1_xor0 = 0; - uint8_t h_s_dadda_cla8_ha1_and0 = 0; - uint8_t h_s_dadda_cla8_fa1_xor1 = 0; - uint8_t h_s_dadda_cla8_fa1_or0 = 0; - uint8_t h_s_dadda_cla8_nand_7_1 = 0; - uint8_t h_s_dadda_cla8_and_6_2 = 0; - uint8_t h_s_dadda_cla8_and_5_3 = 0; - uint8_t h_s_dadda_cla8_fa2_xor1 = 0; - uint8_t h_s_dadda_cla8_fa2_or0 = 0; - uint8_t h_s_dadda_cla8_nand_7_2 = 0; - uint8_t h_s_dadda_cla8_fa3_xor1 = 0; - uint8_t h_s_dadda_cla8_fa3_or0 = 0; - uint8_t h_s_dadda_cla8_and_3_0 = 0; - uint8_t h_s_dadda_cla8_and_2_1 = 0; - uint8_t h_s_dadda_cla8_ha2_xor0 = 0; - uint8_t h_s_dadda_cla8_ha2_and0 = 0; - uint8_t h_s_dadda_cla8_and_4_0 = 0; - uint8_t h_s_dadda_cla8_and_3_1 = 0; - uint8_t h_s_dadda_cla8_fa4_xor1 = 0; - uint8_t h_s_dadda_cla8_fa4_or0 = 0; - uint8_t h_s_dadda_cla8_and_2_2 = 0; - uint8_t h_s_dadda_cla8_and_1_3 = 0; - uint8_t h_s_dadda_cla8_ha3_xor0 = 0; - uint8_t h_s_dadda_cla8_ha3_and0 = 0; - uint8_t h_s_dadda_cla8_and_5_0 = 0; - uint8_t h_s_dadda_cla8_fa5_xor1 = 0; - uint8_t h_s_dadda_cla8_fa5_or0 = 0; - uint8_t h_s_dadda_cla8_and_4_1 = 0; - uint8_t h_s_dadda_cla8_and_3_2 = 0; - uint8_t h_s_dadda_cla8_and_2_3 = 0; - uint8_t h_s_dadda_cla8_fa6_xor1 = 0; - uint8_t h_s_dadda_cla8_fa6_or0 = 0; - uint8_t h_s_dadda_cla8_and_1_4 = 0; - uint8_t h_s_dadda_cla8_and_0_5 = 0; - uint8_t h_s_dadda_cla8_ha4_xor0 = 0; - uint8_t h_s_dadda_cla8_ha4_and0 = 0; - uint8_t h_s_dadda_cla8_fa7_xor1 = 0; - uint8_t h_s_dadda_cla8_fa7_or0 = 0; - uint8_t h_s_dadda_cla8_and_4_2 = 0; - uint8_t h_s_dadda_cla8_and_3_3 = 0; - uint8_t h_s_dadda_cla8_and_2_4 = 0; - uint8_t h_s_dadda_cla8_fa8_xor1 = 0; - uint8_t h_s_dadda_cla8_fa8_or0 = 0; - uint8_t h_s_dadda_cla8_and_1_5 = 0; - uint8_t h_s_dadda_cla8_and_0_6 = 0; - uint8_t h_s_dadda_cla8_fa9_xor1 = 0; - uint8_t h_s_dadda_cla8_fa9_or0 = 0; - uint8_t h_s_dadda_cla8_fa10_xor1 = 0; - uint8_t h_s_dadda_cla8_fa10_or0 = 0; - uint8_t h_s_dadda_cla8_and_3_4 = 0; - uint8_t h_s_dadda_cla8_and_2_5 = 0; - uint8_t h_s_dadda_cla8_and_1_6 = 0; - uint8_t h_s_dadda_cla8_fa11_xor1 = 0; - uint8_t h_s_dadda_cla8_fa11_or0 = 0; - uint8_t h_s_dadda_cla8_nand_0_7 = 0; - uint8_t h_s_dadda_cla8_fa12_xor1 = 0; - uint8_t h_s_dadda_cla8_fa12_or0 = 0; - uint8_t h_s_dadda_cla8_fa13_xor1 = 0; - uint8_t h_s_dadda_cla8_fa13_or0 = 0; - uint8_t h_s_dadda_cla8_and_4_4 = 0; - uint8_t h_s_dadda_cla8_and_3_5 = 0; - uint8_t h_s_dadda_cla8_and_2_6 = 0; - uint8_t h_s_dadda_cla8_fa14_xor1 = 0; - uint8_t h_s_dadda_cla8_fa14_or0 = 0; - uint8_t h_s_dadda_cla8_nand_1_7 = 0; - uint8_t h_s_dadda_cla8_fa15_xor1 = 0; - uint8_t h_s_dadda_cla8_fa15_or0 = 0; - uint8_t h_s_dadda_cla8_fa16_xor1 = 0; - uint8_t h_s_dadda_cla8_fa16_or0 = 0; - uint8_t h_s_dadda_cla8_and_6_3 = 0; - uint8_t h_s_dadda_cla8_and_5_4 = 0; - uint8_t h_s_dadda_cla8_and_4_5 = 0; - uint8_t h_s_dadda_cla8_fa17_xor1 = 0; - uint8_t h_s_dadda_cla8_fa17_or0 = 0; - uint8_t h_s_dadda_cla8_and_3_6 = 0; - uint8_t h_s_dadda_cla8_nand_2_7 = 0; - uint8_t h_s_dadda_cla8_fa18_xor1 = 0; - uint8_t h_s_dadda_cla8_fa18_or0 = 0; - uint8_t h_s_dadda_cla8_fa19_xor1 = 0; - uint8_t h_s_dadda_cla8_fa19_or0 = 0; - uint8_t h_s_dadda_cla8_nand_7_3 = 0; - uint8_t h_s_dadda_cla8_and_6_4 = 0; - uint8_t h_s_dadda_cla8_fa20_xor1 = 0; - uint8_t h_s_dadda_cla8_fa20_or0 = 0; - uint8_t h_s_dadda_cla8_and_5_5 = 0; - uint8_t h_s_dadda_cla8_and_4_6 = 0; - uint8_t h_s_dadda_cla8_nand_3_7 = 0; - uint8_t h_s_dadda_cla8_fa21_xor1 = 0; - uint8_t h_s_dadda_cla8_fa21_or0 = 0; - uint8_t h_s_dadda_cla8_fa22_xor1 = 0; - uint8_t h_s_dadda_cla8_fa22_or0 = 0; - uint8_t h_s_dadda_cla8_nand_7_4 = 0; - uint8_t h_s_dadda_cla8_and_6_5 = 0; - uint8_t h_s_dadda_cla8_and_5_6 = 0; - uint8_t h_s_dadda_cla8_fa23_xor1 = 0; - uint8_t h_s_dadda_cla8_fa23_or0 = 0; - uint8_t h_s_dadda_cla8_nand_7_5 = 0; - uint8_t h_s_dadda_cla8_fa24_xor1 = 0; - uint8_t h_s_dadda_cla8_fa24_or0 = 0; - uint8_t h_s_dadda_cla8_and_2_0 = 0; - uint8_t h_s_dadda_cla8_and_1_1 = 0; - uint8_t h_s_dadda_cla8_ha5_xor0 = 0; - uint8_t h_s_dadda_cla8_ha5_and0 = 0; - uint8_t h_s_dadda_cla8_and_1_2 = 0; - uint8_t h_s_dadda_cla8_and_0_3 = 0; - uint8_t h_s_dadda_cla8_fa25_xor1 = 0; - uint8_t h_s_dadda_cla8_fa25_or0 = 0; - uint8_t h_s_dadda_cla8_and_0_4 = 0; - uint8_t h_s_dadda_cla8_fa26_xor1 = 0; - uint8_t h_s_dadda_cla8_fa26_or0 = 0; - uint8_t h_s_dadda_cla8_fa27_xor1 = 0; - uint8_t h_s_dadda_cla8_fa27_or0 = 0; - uint8_t h_s_dadda_cla8_fa28_xor1 = 0; - uint8_t h_s_dadda_cla8_fa28_or0 = 0; - uint8_t h_s_dadda_cla8_fa29_xor1 = 0; - uint8_t h_s_dadda_cla8_fa29_or0 = 0; - uint8_t h_s_dadda_cla8_fa30_xor1 = 0; - uint8_t h_s_dadda_cla8_fa30_or0 = 0; - uint8_t h_s_dadda_cla8_fa31_xor1 = 0; - uint8_t h_s_dadda_cla8_fa31_or0 = 0; - uint8_t h_s_dadda_cla8_fa32_xor1 = 0; - uint8_t h_s_dadda_cla8_fa32_or0 = 0; - uint8_t h_s_dadda_cla8_nand_4_7 = 0; - uint8_t h_s_dadda_cla8_fa33_xor1 = 0; - uint8_t h_s_dadda_cla8_fa33_or0 = 0; - uint8_t h_s_dadda_cla8_and_6_6 = 0; - uint8_t h_s_dadda_cla8_nand_5_7 = 0; - uint8_t h_s_dadda_cla8_fa34_xor1 = 0; - uint8_t h_s_dadda_cla8_fa34_or0 = 0; - uint8_t h_s_dadda_cla8_nand_7_6 = 0; - uint8_t h_s_dadda_cla8_fa35_xor1 = 0; - uint8_t h_s_dadda_cla8_fa35_or0 = 0; - uint8_t h_s_dadda_cla8_and_0_0 = 0; - uint8_t h_s_dadda_cla8_and_1_0 = 0; - uint8_t h_s_dadda_cla8_and_0_2 = 0; - uint8_t h_s_dadda_cla8_nand_6_7 = 0; - uint8_t h_s_dadda_cla8_and_0_1 = 0; - uint8_t h_s_dadda_cla8_and_7_7 = 0; - uint64_t h_s_dadda_cla8_u_cla14_a = 0; - uint64_t h_s_dadda_cla8_u_cla14_b = 0; - uint64_t h_s_dadda_cla8_u_cla14_out = 0; - uint8_t h_s_dadda_cla8_xor0 = 0; - - h_s_dadda_cla8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cla8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cla8_ha0_xor0 = (ha(((h_s_dadda_cla8_and_6_0 >> 0) & 0x01), ((h_s_dadda_cla8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_ha0_and0 = (ha(((h_s_dadda_cla8_and_6_0 >> 0) & 0x01), ((h_s_dadda_cla8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_nand_7_0 = nand_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cla8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cla8_fa0_xor1 = (fa(((h_s_dadda_cla8_ha0_and0 >> 0) & 0x01), ((h_s_dadda_cla8_nand_7_0 >> 0) & 0x01), ((h_s_dadda_cla8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa0_or0 = (fa(((h_s_dadda_cla8_ha0_and0 >> 0) & 0x01), ((h_s_dadda_cla8_nand_7_0 >> 0) & 0x01), ((h_s_dadda_cla8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cla8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cla8_ha1_xor0 = (ha(((h_s_dadda_cla8_and_5_2 >> 0) & 0x01), ((h_s_dadda_cla8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_ha1_and0 = (ha(((h_s_dadda_cla8_and_5_2 >> 0) & 0x01), ((h_s_dadda_cla8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_fa1_xor1 = (fa(((h_s_dadda_cla8_ha1_and0 >> 0) & 0x01), ((h_s_dadda_cla8_fa0_or0 >> 0) & 0x01), (0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa1_or0 = (fa(((h_s_dadda_cla8_ha1_and0 >> 0) & 0x01), ((h_s_dadda_cla8_fa0_or0 >> 0) & 0x01), (0x01)) >> 1) & 0x01; - h_s_dadda_cla8_nand_7_1 = nand_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cla8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cla8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cla8_fa2_xor1 = (fa(((h_s_dadda_cla8_nand_7_1 >> 0) & 0x01), ((h_s_dadda_cla8_and_6_2 >> 0) & 0x01), ((h_s_dadda_cla8_and_5_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa2_or0 = (fa(((h_s_dadda_cla8_nand_7_1 >> 0) & 0x01), ((h_s_dadda_cla8_and_6_2 >> 0) & 0x01), ((h_s_dadda_cla8_and_5_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_nand_7_2 = nand_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cla8_fa3_xor1 = (fa(((h_s_dadda_cla8_fa2_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa1_or0 >> 0) & 0x01), ((h_s_dadda_cla8_nand_7_2 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa3_or0 = (fa(((h_s_dadda_cla8_fa2_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa1_or0 >> 0) & 0x01), ((h_s_dadda_cla8_nand_7_2 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cla8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cla8_ha2_xor0 = (ha(((h_s_dadda_cla8_and_3_0 >> 0) & 0x01), ((h_s_dadda_cla8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_ha2_and0 = (ha(((h_s_dadda_cla8_and_3_0 >> 0) & 0x01), ((h_s_dadda_cla8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cla8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cla8_fa4_xor1 = (fa(((h_s_dadda_cla8_ha2_and0 >> 0) & 0x01), ((h_s_dadda_cla8_and_4_0 >> 0) & 0x01), ((h_s_dadda_cla8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa4_or0 = (fa(((h_s_dadda_cla8_ha2_and0 >> 0) & 0x01), ((h_s_dadda_cla8_and_4_0 >> 0) & 0x01), ((h_s_dadda_cla8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cla8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cla8_ha3_xor0 = (ha(((h_s_dadda_cla8_and_2_2 >> 0) & 0x01), ((h_s_dadda_cla8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_ha3_and0 = (ha(((h_s_dadda_cla8_and_2_2 >> 0) & 0x01), ((h_s_dadda_cla8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cla8_fa5_xor1 = (fa(((h_s_dadda_cla8_ha3_and0 >> 0) & 0x01), ((h_s_dadda_cla8_fa4_or0 >> 0) & 0x01), ((h_s_dadda_cla8_and_5_0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa5_or0 = (fa(((h_s_dadda_cla8_ha3_and0 >> 0) & 0x01), ((h_s_dadda_cla8_fa4_or0 >> 0) & 0x01), ((h_s_dadda_cla8_and_5_0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cla8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cla8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cla8_fa6_xor1 = (fa(((h_s_dadda_cla8_and_4_1 >> 0) & 0x01), ((h_s_dadda_cla8_and_3_2 >> 0) & 0x01), ((h_s_dadda_cla8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa6_or0 = (fa(((h_s_dadda_cla8_and_4_1 >> 0) & 0x01), ((h_s_dadda_cla8_and_3_2 >> 0) & 0x01), ((h_s_dadda_cla8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cla8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cla8_ha4_xor0 = (ha(((h_s_dadda_cla8_and_1_4 >> 0) & 0x01), ((h_s_dadda_cla8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_ha4_and0 = (ha(((h_s_dadda_cla8_and_1_4 >> 0) & 0x01), ((h_s_dadda_cla8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_fa7_xor1 = (fa(((h_s_dadda_cla8_ha4_and0 >> 0) & 0x01), ((h_s_dadda_cla8_fa6_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa7_or0 = (fa(((h_s_dadda_cla8_ha4_and0 >> 0) & 0x01), ((h_s_dadda_cla8_fa6_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cla8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cla8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cla8_fa8_xor1 = (fa(((h_s_dadda_cla8_and_4_2 >> 0) & 0x01), ((h_s_dadda_cla8_and_3_3 >> 0) & 0x01), ((h_s_dadda_cla8_and_2_4 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa8_or0 = (fa(((h_s_dadda_cla8_and_4_2 >> 0) & 0x01), ((h_s_dadda_cla8_and_3_3 >> 0) & 0x01), ((h_s_dadda_cla8_and_2_4 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cla8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cla8_fa9_xor1 = (fa(((h_s_dadda_cla8_and_1_5 >> 0) & 0x01), ((h_s_dadda_cla8_and_0_6 >> 0) & 0x01), ((h_s_dadda_cla8_ha0_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa9_or0 = (fa(((h_s_dadda_cla8_and_1_5 >> 0) & 0x01), ((h_s_dadda_cla8_and_0_6 >> 0) & 0x01), ((h_s_dadda_cla8_ha0_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_fa10_xor1 = (fa(((h_s_dadda_cla8_fa9_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa8_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa10_or0 = (fa(((h_s_dadda_cla8_fa9_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa8_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa7_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cla8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cla8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cla8_fa11_xor1 = (fa(((h_s_dadda_cla8_and_3_4 >> 0) & 0x01), ((h_s_dadda_cla8_and_2_5 >> 0) & 0x01), ((h_s_dadda_cla8_and_1_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa11_or0 = (fa(((h_s_dadda_cla8_and_3_4 >> 0) & 0x01), ((h_s_dadda_cla8_and_2_5 >> 0) & 0x01), ((h_s_dadda_cla8_and_1_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_nand_0_7 = nand_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cla8_fa12_xor1 = (fa(((h_s_dadda_cla8_nand_0_7 >> 0) & 0x01), ((h_s_dadda_cla8_fa0_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_ha1_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa12_or0 = (fa(((h_s_dadda_cla8_nand_0_7 >> 0) & 0x01), ((h_s_dadda_cla8_fa0_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_ha1_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_fa13_xor1 = (fa(((h_s_dadda_cla8_fa12_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa11_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa10_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa13_or0 = (fa(((h_s_dadda_cla8_fa12_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa11_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa10_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cla8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cla8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cla8_fa14_xor1 = (fa(((h_s_dadda_cla8_and_4_4 >> 0) & 0x01), ((h_s_dadda_cla8_and_3_5 >> 0) & 0x01), ((h_s_dadda_cla8_and_2_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa14_or0 = (fa(((h_s_dadda_cla8_and_4_4 >> 0) & 0x01), ((h_s_dadda_cla8_and_3_5 >> 0) & 0x01), ((h_s_dadda_cla8_and_2_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_nand_1_7 = nand_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cla8_fa15_xor1 = (fa(((h_s_dadda_cla8_nand_1_7 >> 0) & 0x01), ((h_s_dadda_cla8_fa1_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_fa2_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa15_or0 = (fa(((h_s_dadda_cla8_nand_1_7 >> 0) & 0x01), ((h_s_dadda_cla8_fa1_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_fa2_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_fa16_xor1 = (fa(((h_s_dadda_cla8_fa15_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa14_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa13_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa16_or0 = (fa(((h_s_dadda_cla8_fa15_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa14_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa13_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cla8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cla8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cla8_fa17_xor1 = (fa(((h_s_dadda_cla8_and_6_3 >> 0) & 0x01), ((h_s_dadda_cla8_and_5_4 >> 0) & 0x01), ((h_s_dadda_cla8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa17_or0 = (fa(((h_s_dadda_cla8_and_6_3 >> 0) & 0x01), ((h_s_dadda_cla8_and_5_4 >> 0) & 0x01), ((h_s_dadda_cla8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cla8_nand_2_7 = nand_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cla8_fa18_xor1 = (fa(((h_s_dadda_cla8_and_3_6 >> 0) & 0x01), ((h_s_dadda_cla8_nand_2_7 >> 0) & 0x01), ((h_s_dadda_cla8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa18_or0 = (fa(((h_s_dadda_cla8_and_3_6 >> 0) & 0x01), ((h_s_dadda_cla8_nand_2_7 >> 0) & 0x01), ((h_s_dadda_cla8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_fa19_xor1 = (fa(((h_s_dadda_cla8_fa18_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa17_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa16_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa19_or0 = (fa(((h_s_dadda_cla8_fa18_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa17_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa16_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_nand_7_3 = nand_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cla8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cla8_fa20_xor1 = (fa(((h_s_dadda_cla8_fa3_or0 >> 0) & 0x01), ((h_s_dadda_cla8_nand_7_3 >> 0) & 0x01), ((h_s_dadda_cla8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa20_or0 = (fa(((h_s_dadda_cla8_fa3_or0 >> 0) & 0x01), ((h_s_dadda_cla8_nand_7_3 >> 0) & 0x01), ((h_s_dadda_cla8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cla8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cla8_nand_3_7 = nand_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cla8_fa21_xor1 = (fa(((h_s_dadda_cla8_and_5_5 >> 0) & 0x01), ((h_s_dadda_cla8_and_4_6 >> 0) & 0x01), ((h_s_dadda_cla8_nand_3_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa21_or0 = (fa(((h_s_dadda_cla8_and_5_5 >> 0) & 0x01), ((h_s_dadda_cla8_and_4_6 >> 0) & 0x01), ((h_s_dadda_cla8_nand_3_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_fa22_xor1 = (fa(((h_s_dadda_cla8_fa21_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa20_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa19_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa22_or0 = (fa(((h_s_dadda_cla8_fa21_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa20_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa19_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_nand_7_4 = nand_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cla8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cla8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cla8_fa23_xor1 = (fa(((h_s_dadda_cla8_nand_7_4 >> 0) & 0x01), ((h_s_dadda_cla8_and_6_5 >> 0) & 0x01), ((h_s_dadda_cla8_and_5_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa23_or0 = (fa(((h_s_dadda_cla8_nand_7_4 >> 0) & 0x01), ((h_s_dadda_cla8_and_6_5 >> 0) & 0x01), ((h_s_dadda_cla8_and_5_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_nand_7_5 = nand_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cla8_fa24_xor1 = (fa(((h_s_dadda_cla8_fa23_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa22_or0 >> 0) & 0x01), ((h_s_dadda_cla8_nand_7_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa24_or0 = (fa(((h_s_dadda_cla8_fa23_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa22_or0 >> 0) & 0x01), ((h_s_dadda_cla8_nand_7_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cla8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cla8_ha5_xor0 = (ha(((h_s_dadda_cla8_and_2_0 >> 0) & 0x01), ((h_s_dadda_cla8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_ha5_and0 = (ha(((h_s_dadda_cla8_and_2_0 >> 0) & 0x01), ((h_s_dadda_cla8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cla8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cla8_fa25_xor1 = (fa(((h_s_dadda_cla8_ha5_and0 >> 0) & 0x01), ((h_s_dadda_cla8_and_1_2 >> 0) & 0x01), ((h_s_dadda_cla8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa25_or0 = (fa(((h_s_dadda_cla8_ha5_and0 >> 0) & 0x01), ((h_s_dadda_cla8_and_1_2 >> 0) & 0x01), ((h_s_dadda_cla8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cla8_fa26_xor1 = (fa(((h_s_dadda_cla8_fa25_or0 >> 0) & 0x01), ((h_s_dadda_cla8_and_0_4 >> 0) & 0x01), ((h_s_dadda_cla8_fa4_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa26_or0 = (fa(((h_s_dadda_cla8_fa25_or0 >> 0) & 0x01), ((h_s_dadda_cla8_and_0_4 >> 0) & 0x01), ((h_s_dadda_cla8_fa4_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_fa27_xor1 = (fa(((h_s_dadda_cla8_fa26_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa5_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_fa6_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa27_or0 = (fa(((h_s_dadda_cla8_fa26_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa5_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_fa6_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_fa28_xor1 = (fa(((h_s_dadda_cla8_fa27_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa7_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_fa8_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa28_or0 = (fa(((h_s_dadda_cla8_fa27_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa7_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_fa8_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_fa29_xor1 = (fa(((h_s_dadda_cla8_fa28_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa10_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_fa11_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa29_or0 = (fa(((h_s_dadda_cla8_fa28_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa10_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_fa11_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_fa30_xor1 = (fa(((h_s_dadda_cla8_fa29_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa13_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_fa14_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa30_or0 = (fa(((h_s_dadda_cla8_fa29_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa13_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_fa14_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_fa31_xor1 = (fa(((h_s_dadda_cla8_fa30_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa16_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_fa17_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa31_or0 = (fa(((h_s_dadda_cla8_fa30_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa16_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_fa17_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_fa32_xor1 = (fa(((h_s_dadda_cla8_fa31_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa19_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_fa20_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa32_or0 = (fa(((h_s_dadda_cla8_fa31_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa19_xor1 >> 0) & 0x01), ((h_s_dadda_cla8_fa20_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_nand_4_7 = nand_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cla8_fa33_xor1 = (fa(((h_s_dadda_cla8_fa32_or0 >> 0) & 0x01), ((h_s_dadda_cla8_nand_4_7 >> 0) & 0x01), ((h_s_dadda_cla8_fa22_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa33_or0 = (fa(((h_s_dadda_cla8_fa32_or0 >> 0) & 0x01), ((h_s_dadda_cla8_nand_4_7 >> 0) & 0x01), ((h_s_dadda_cla8_fa22_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cla8_nand_5_7 = nand_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cla8_fa34_xor1 = (fa(((h_s_dadda_cla8_fa33_or0 >> 0) & 0x01), ((h_s_dadda_cla8_and_6_6 >> 0) & 0x01), ((h_s_dadda_cla8_nand_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa34_or0 = (fa(((h_s_dadda_cla8_fa33_or0 >> 0) & 0x01), ((h_s_dadda_cla8_and_6_6 >> 0) & 0x01), ((h_s_dadda_cla8_nand_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_nand_7_6 = nand_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cla8_fa35_xor1 = (fa(((h_s_dadda_cla8_fa34_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa24_or0 >> 0) & 0x01), ((h_s_dadda_cla8_nand_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cla8_fa35_or0 = (fa(((h_s_dadda_cla8_fa34_or0 >> 0) & 0x01), ((h_s_dadda_cla8_fa24_or0 >> 0) & 0x01), ((h_s_dadda_cla8_nand_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cla8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cla8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cla8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cla8_nand_6_7 = nand_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cla8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cla8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cla8_u_cla14_a |= ((h_s_dadda_cla8_and_1_0 >> 0) & 0x01) << 0; - h_s_dadda_cla8_u_cla14_a |= ((h_s_dadda_cla8_and_0_2 >> 0) & 0x01) << 1; - h_s_dadda_cla8_u_cla14_a |= ((h_s_dadda_cla8_ha2_xor0 >> 0) & 0x01) << 2; - h_s_dadda_cla8_u_cla14_a |= ((h_s_dadda_cla8_ha3_xor0 >> 0) & 0x01) << 3; - h_s_dadda_cla8_u_cla14_a |= ((h_s_dadda_cla8_ha4_xor0 >> 0) & 0x01) << 4; - h_s_dadda_cla8_u_cla14_a |= ((h_s_dadda_cla8_fa9_xor1 >> 0) & 0x01) << 5; - h_s_dadda_cla8_u_cla14_a |= ((h_s_dadda_cla8_fa12_xor1 >> 0) & 0x01) << 6; - h_s_dadda_cla8_u_cla14_a |= ((h_s_dadda_cla8_fa15_xor1 >> 0) & 0x01) << 7; - h_s_dadda_cla8_u_cla14_a |= ((h_s_dadda_cla8_fa18_xor1 >> 0) & 0x01) << 8; - h_s_dadda_cla8_u_cla14_a |= ((h_s_dadda_cla8_fa21_xor1 >> 0) & 0x01) << 9; - h_s_dadda_cla8_u_cla14_a |= ((h_s_dadda_cla8_fa23_xor1 >> 0) & 0x01) << 10; - h_s_dadda_cla8_u_cla14_a |= ((h_s_dadda_cla8_fa24_xor1 >> 0) & 0x01) << 11; - h_s_dadda_cla8_u_cla14_a |= ((h_s_dadda_cla8_nand_6_7 >> 0) & 0x01) << 12; - h_s_dadda_cla8_u_cla14_a |= ((h_s_dadda_cla8_fa35_or0 >> 0) & 0x01) << 13; - h_s_dadda_cla8_u_cla14_b |= ((h_s_dadda_cla8_and_0_1 >> 0) & 0x01) << 0; - h_s_dadda_cla8_u_cla14_b |= ((h_s_dadda_cla8_ha5_xor0 >> 0) & 0x01) << 1; - h_s_dadda_cla8_u_cla14_b |= ((h_s_dadda_cla8_fa25_xor1 >> 0) & 0x01) << 2; - h_s_dadda_cla8_u_cla14_b |= ((h_s_dadda_cla8_fa26_xor1 >> 0) & 0x01) << 3; - h_s_dadda_cla8_u_cla14_b |= ((h_s_dadda_cla8_fa27_xor1 >> 0) & 0x01) << 4; - h_s_dadda_cla8_u_cla14_b |= ((h_s_dadda_cla8_fa28_xor1 >> 0) & 0x01) << 5; - h_s_dadda_cla8_u_cla14_b |= ((h_s_dadda_cla8_fa29_xor1 >> 0) & 0x01) << 6; - h_s_dadda_cla8_u_cla14_b |= ((h_s_dadda_cla8_fa30_xor1 >> 0) & 0x01) << 7; - h_s_dadda_cla8_u_cla14_b |= ((h_s_dadda_cla8_fa31_xor1 >> 0) & 0x01) << 8; - h_s_dadda_cla8_u_cla14_b |= ((h_s_dadda_cla8_fa32_xor1 >> 0) & 0x01) << 9; - h_s_dadda_cla8_u_cla14_b |= ((h_s_dadda_cla8_fa33_xor1 >> 0) & 0x01) << 10; - h_s_dadda_cla8_u_cla14_b |= ((h_s_dadda_cla8_fa34_xor1 >> 0) & 0x01) << 11; - h_s_dadda_cla8_u_cla14_b |= ((h_s_dadda_cla8_fa35_xor1 >> 0) & 0x01) << 12; - h_s_dadda_cla8_u_cla14_b |= ((h_s_dadda_cla8_and_7_7 >> 0) & 0x01) << 13; - h_s_dadda_cla8_u_cla14_out = u_cla14(h_s_dadda_cla8_u_cla14_a, h_s_dadda_cla8_u_cla14_b); - h_s_dadda_cla8_xor0 = not_gate(((h_s_dadda_cla8_u_cla14_out >> 14) & 0x01)); - - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_and_0_0 >> 0) & 0x01) << 0; - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_u_cla14_out >> 0) & 0x01) << 1; - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_u_cla14_out >> 1) & 0x01) << 2; - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_u_cla14_out >> 2) & 0x01) << 3; - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_u_cla14_out >> 3) & 0x01) << 4; - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_u_cla14_out >> 4) & 0x01) << 5; - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_u_cla14_out >> 5) & 0x01) << 6; - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_u_cla14_out >> 6) & 0x01) << 7; - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_u_cla14_out >> 7) & 0x01) << 8; - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_u_cla14_out >> 8) & 0x01) << 9; - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_u_cla14_out >> 9) & 0x01) << 10; - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_u_cla14_out >> 10) & 0x01) << 11; - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_u_cla14_out >> 11) & 0x01) << 12; - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_u_cla14_out >> 12) & 0x01) << 13; - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_u_cla14_out >> 13) & 0x01) << 14; - h_s_dadda_cla8_out |= ((h_s_dadda_cla8_xor0 >> 0) & 0x01) << 15; - return h_s_dadda_cla8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)h_s_dadda_cla8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cska4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cska4.c deleted file mode 100644 index 3528480..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cska4.c +++ /dev/null @@ -1,239 +0,0 @@ -#include -#include - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t mux2to1(uint8_t d0, uint8_t d1, uint8_t sel){ - uint8_t mux2to1_out = 0; - uint8_t mux2to1_and0 = 0; - uint8_t mux2to1_not0 = 0; - uint8_t mux2to1_and1 = 0; - uint8_t mux2to1_xor0 = 0; - - mux2to1_and0 = and_gate(((d1 >> 0) & 0x01), ((sel >> 0) & 0x01)); - mux2to1_not0 = not_gate(((sel >> 0) & 0x01)); - mux2to1_and1 = and_gate(((d0 >> 0) & 0x01), ((mux2to1_not0 >> 0) & 0x01)); - mux2to1_xor0 = xor_gate(((mux2to1_and0 >> 0) & 0x01), ((mux2to1_and1 >> 0) & 0x01)); - - mux2to1_out |= ((mux2to1_xor0 >> 0) & 0x01) << 0; - return mux2to1_out; -} - -uint64_t u_cska6(uint64_t a, uint64_t b){ - uint8_t u_cska6_out = 0; - uint8_t u_cska6_xor0 = 0; - uint8_t u_cska6_ha0_xor0 = 0; - uint8_t u_cska6_ha0_and0 = 0; - uint8_t u_cska6_xor1 = 0; - uint8_t u_cska6_fa0_xor1 = 0; - uint8_t u_cska6_fa0_or0 = 0; - uint8_t u_cska6_xor2 = 0; - uint8_t u_cska6_fa1_xor1 = 0; - uint8_t u_cska6_fa1_or0 = 0; - uint8_t u_cska6_xor3 = 0; - uint8_t u_cska6_fa2_xor1 = 0; - uint8_t u_cska6_fa2_or0 = 0; - uint8_t u_cska6_and_propagate00 = 0; - uint8_t u_cska6_and_propagate01 = 0; - uint8_t u_cska6_and_propagate02 = 0; - uint8_t u_cska6_mux2to10_and1 = 0; - uint8_t u_cska6_xor4 = 0; - uint8_t u_cska6_fa3_xor1 = 0; - uint8_t u_cska6_fa3_or0 = 0; - uint8_t u_cska6_xor5 = 0; - uint8_t u_cska6_fa4_xor1 = 0; - uint8_t u_cska6_fa4_or0 = 0; - uint8_t u_cska6_and_propagate13 = 0; - uint8_t u_cska6_mux2to11_xor0 = 0; - - u_cska6_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - u_cska6_ha0_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_ha0_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor1 = xor_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - u_cska6_fa0_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska6_ha0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa0_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska6_ha0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor2 = xor_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - u_cska6_fa1_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska6_fa0_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa1_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska6_fa0_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor3 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - u_cska6_fa2_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska6_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa2_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska6_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_and_propagate00 = and_gate(((u_cska6_xor0 >> 0) & 0x01), ((u_cska6_xor2 >> 0) & 0x01)); - u_cska6_and_propagate01 = and_gate(((u_cska6_xor1 >> 0) & 0x01), ((u_cska6_xor3 >> 0) & 0x01)); - u_cska6_and_propagate02 = and_gate(((u_cska6_and_propagate00 >> 0) & 0x01), ((u_cska6_and_propagate01 >> 0) & 0x01)); - u_cska6_mux2to10_and1 = (mux2to1(((u_cska6_fa2_or0 >> 0) & 0x01), (0x00), ((u_cska6_and_propagate02 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_xor4 = xor_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - u_cska6_fa3_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska6_mux2to10_and1 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa3_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska6_mux2to10_and1 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor5 = xor_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - u_cska6_fa4_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska6_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa4_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska6_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_and_propagate13 = and_gate(((u_cska6_xor4 >> 0) & 0x01), ((u_cska6_xor5 >> 0) & 0x01)); - u_cska6_mux2to11_xor0 = (mux2to1(((u_cska6_fa4_or0 >> 0) & 0x01), ((u_cska6_mux2to10_and1 >> 0) & 0x01), ((u_cska6_and_propagate13 >> 0) & 0x01)) >> 0) & 0x01; - - u_cska6_out |= ((u_cska6_ha0_xor0 >> 0) & 0x01) << 0; - u_cska6_out |= ((u_cska6_fa0_xor1 >> 0) & 0x01) << 1; - u_cska6_out |= ((u_cska6_fa1_xor1 >> 0) & 0x01) << 2; - u_cska6_out |= ((u_cska6_fa2_xor1 >> 0) & 0x01) << 3; - u_cska6_out |= ((u_cska6_fa3_xor1 >> 0) & 0x01) << 4; - u_cska6_out |= ((u_cska6_fa4_xor1 >> 0) & 0x01) << 5; - u_cska6_out |= ((u_cska6_mux2to11_xor0 >> 0) & 0x01) << 6; - return u_cska6_out; -} - -uint64_t h_s_dadda_cska4(uint64_t a, uint64_t b){ - uint8_t h_s_dadda_cska4_out = 0; - uint8_t h_s_dadda_cska4_nand_3_0 = 0; - uint8_t h_s_dadda_cska4_and_2_1 = 0; - uint8_t h_s_dadda_cska4_ha0_xor0 = 0; - uint8_t h_s_dadda_cska4_ha0_and0 = 0; - uint8_t h_s_dadda_cska4_nand_3_1 = 0; - uint8_t h_s_dadda_cska4_fa0_xor1 = 0; - uint8_t h_s_dadda_cska4_fa0_or0 = 0; - uint8_t h_s_dadda_cska4_and_2_0 = 0; - uint8_t h_s_dadda_cska4_and_1_1 = 0; - uint8_t h_s_dadda_cska4_ha1_xor0 = 0; - uint8_t h_s_dadda_cska4_ha1_and0 = 0; - uint8_t h_s_dadda_cska4_and_1_2 = 0; - uint8_t h_s_dadda_cska4_nand_0_3 = 0; - uint8_t h_s_dadda_cska4_fa1_xor1 = 0; - uint8_t h_s_dadda_cska4_fa1_or0 = 0; - uint8_t h_s_dadda_cska4_and_2_2 = 0; - uint8_t h_s_dadda_cska4_nand_1_3 = 0; - uint8_t h_s_dadda_cska4_fa2_xor1 = 0; - uint8_t h_s_dadda_cska4_fa2_or0 = 0; - uint8_t h_s_dadda_cska4_nand_3_2 = 0; - uint8_t h_s_dadda_cska4_fa3_xor1 = 0; - uint8_t h_s_dadda_cska4_fa3_or0 = 0; - uint8_t h_s_dadda_cska4_and_0_0 = 0; - uint8_t h_s_dadda_cska4_and_1_0 = 0; - uint8_t h_s_dadda_cska4_and_0_2 = 0; - uint8_t h_s_dadda_cska4_nand_2_3 = 0; - uint8_t h_s_dadda_cska4_and_0_1 = 0; - uint8_t h_s_dadda_cska4_and_3_3 = 0; - uint64_t h_s_dadda_cska4_u_cska6_a = 0; - uint64_t h_s_dadda_cska4_u_cska6_b = 0; - uint64_t h_s_dadda_cska4_u_cska6_out = 0; - uint8_t h_s_dadda_cska4_xor0 = 0; - - h_s_dadda_cska4_nand_3_0 = nand_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cska4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cska4_ha0_xor0 = (ha(((h_s_dadda_cska4_nand_3_0 >> 0) & 0x01), ((h_s_dadda_cska4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska4_ha0_and0 = (ha(((h_s_dadda_cska4_nand_3_0 >> 0) & 0x01), ((h_s_dadda_cska4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska4_nand_3_1 = nand_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cska4_fa0_xor1 = (fa(((h_s_dadda_cska4_ha0_and0 >> 0) & 0x01), (0x01), ((h_s_dadda_cska4_nand_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska4_fa0_or0 = (fa(((h_s_dadda_cska4_ha0_and0 >> 0) & 0x01), (0x01), ((h_s_dadda_cska4_nand_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cska4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cska4_ha1_xor0 = (ha(((h_s_dadda_cska4_and_2_0 >> 0) & 0x01), ((h_s_dadda_cska4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska4_ha1_and0 = (ha(((h_s_dadda_cska4_and_2_0 >> 0) & 0x01), ((h_s_dadda_cska4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cska4_nand_0_3 = nand_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cska4_fa1_xor1 = (fa(((h_s_dadda_cska4_ha1_and0 >> 0) & 0x01), ((h_s_dadda_cska4_and_1_2 >> 0) & 0x01), ((h_s_dadda_cska4_nand_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska4_fa1_or0 = (fa(((h_s_dadda_cska4_ha1_and0 >> 0) & 0x01), ((h_s_dadda_cska4_and_1_2 >> 0) & 0x01), ((h_s_dadda_cska4_nand_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cska4_nand_1_3 = nand_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cska4_fa2_xor1 = (fa(((h_s_dadda_cska4_fa1_or0 >> 0) & 0x01), ((h_s_dadda_cska4_and_2_2 >> 0) & 0x01), ((h_s_dadda_cska4_nand_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska4_fa2_or0 = (fa(((h_s_dadda_cska4_fa1_or0 >> 0) & 0x01), ((h_s_dadda_cska4_and_2_2 >> 0) & 0x01), ((h_s_dadda_cska4_nand_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska4_nand_3_2 = nand_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cska4_fa3_xor1 = (fa(((h_s_dadda_cska4_fa2_or0 >> 0) & 0x01), ((h_s_dadda_cska4_fa0_or0 >> 0) & 0x01), ((h_s_dadda_cska4_nand_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska4_fa3_or0 = (fa(((h_s_dadda_cska4_fa2_or0 >> 0) & 0x01), ((h_s_dadda_cska4_fa0_or0 >> 0) & 0x01), ((h_s_dadda_cska4_nand_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cska4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cska4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cska4_nand_2_3 = nand_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cska4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cska4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cska4_u_cska6_a |= ((h_s_dadda_cska4_and_1_0 >> 0) & 0x01) << 0; - h_s_dadda_cska4_u_cska6_a |= ((h_s_dadda_cska4_and_0_2 >> 0) & 0x01) << 1; - h_s_dadda_cska4_u_cska6_a |= ((h_s_dadda_cska4_ha0_xor0 >> 0) & 0x01) << 2; - h_s_dadda_cska4_u_cska6_a |= ((h_s_dadda_cska4_fa0_xor1 >> 0) & 0x01) << 3; - h_s_dadda_cska4_u_cska6_a |= ((h_s_dadda_cska4_nand_2_3 >> 0) & 0x01) << 4; - h_s_dadda_cska4_u_cska6_a |= ((h_s_dadda_cska4_fa3_or0 >> 0) & 0x01) << 5; - h_s_dadda_cska4_u_cska6_b |= ((h_s_dadda_cska4_and_0_1 >> 0) & 0x01) << 0; - h_s_dadda_cska4_u_cska6_b |= ((h_s_dadda_cska4_ha1_xor0 >> 0) & 0x01) << 1; - h_s_dadda_cska4_u_cska6_b |= ((h_s_dadda_cska4_fa1_xor1 >> 0) & 0x01) << 2; - h_s_dadda_cska4_u_cska6_b |= ((h_s_dadda_cska4_fa2_xor1 >> 0) & 0x01) << 3; - h_s_dadda_cska4_u_cska6_b |= ((h_s_dadda_cska4_fa3_xor1 >> 0) & 0x01) << 4; - h_s_dadda_cska4_u_cska6_b |= ((h_s_dadda_cska4_and_3_3 >> 0) & 0x01) << 5; - h_s_dadda_cska4_u_cska6_out = u_cska6(h_s_dadda_cska4_u_cska6_a, h_s_dadda_cska4_u_cska6_b); - h_s_dadda_cska4_xor0 = not_gate(((h_s_dadda_cska4_u_cska6_out >> 6) & 0x01)); - - h_s_dadda_cska4_out |= ((h_s_dadda_cska4_and_0_0 >> 0) & 0x01) << 0; - h_s_dadda_cska4_out |= ((h_s_dadda_cska4_u_cska6_out >> 0) & 0x01) << 1; - h_s_dadda_cska4_out |= ((h_s_dadda_cska4_u_cska6_out >> 1) & 0x01) << 2; - h_s_dadda_cska4_out |= ((h_s_dadda_cska4_u_cska6_out >> 2) & 0x01) << 3; - h_s_dadda_cska4_out |= ((h_s_dadda_cska4_u_cska6_out >> 3) & 0x01) << 4; - h_s_dadda_cska4_out |= ((h_s_dadda_cska4_u_cska6_out >> 4) & 0x01) << 5; - h_s_dadda_cska4_out |= ((h_s_dadda_cska4_u_cska6_out >> 5) & 0x01) << 6; - h_s_dadda_cska4_out |= ((h_s_dadda_cska4_xor0 >> 0) & 0x01) << 7; - return h_s_dadda_cska4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)h_s_dadda_cska4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cska8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cska8.c deleted file mode 100644 index fae9da8..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_cska8.c +++ /dev/null @@ -1,575 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t mux2to1(uint8_t d0, uint8_t d1, uint8_t sel){ - uint8_t mux2to1_out = 0; - uint8_t mux2to1_and0 = 0; - uint8_t mux2to1_not0 = 0; - uint8_t mux2to1_and1 = 0; - uint8_t mux2to1_xor0 = 0; - - mux2to1_and0 = and_gate(((d1 >> 0) & 0x01), ((sel >> 0) & 0x01)); - mux2to1_not0 = not_gate(((sel >> 0) & 0x01)); - mux2to1_and1 = and_gate(((d0 >> 0) & 0x01), ((mux2to1_not0 >> 0) & 0x01)); - mux2to1_xor0 = xor_gate(((mux2to1_and0 >> 0) & 0x01), ((mux2to1_and1 >> 0) & 0x01)); - - mux2to1_out |= ((mux2to1_xor0 >> 0) & 0x01) << 0; - return mux2to1_out; -} - -uint64_t u_cska14(uint64_t a, uint64_t b){ - uint64_t u_cska14_out = 0; - uint8_t u_cska14_xor0 = 0; - uint8_t u_cska14_ha0_xor0 = 0; - uint8_t u_cska14_ha0_and0 = 0; - uint8_t u_cska14_xor1 = 0; - uint8_t u_cska14_fa0_xor1 = 0; - uint8_t u_cska14_fa0_or0 = 0; - uint8_t u_cska14_xor2 = 0; - uint8_t u_cska14_fa1_xor1 = 0; - uint8_t u_cska14_fa1_or0 = 0; - uint8_t u_cska14_xor3 = 0; - uint8_t u_cska14_fa2_xor1 = 0; - uint8_t u_cska14_fa2_or0 = 0; - uint8_t u_cska14_and_propagate00 = 0; - uint8_t u_cska14_and_propagate01 = 0; - uint8_t u_cska14_and_propagate02 = 0; - uint8_t u_cska14_mux2to10_and1 = 0; - uint8_t u_cska14_xor4 = 0; - uint8_t u_cska14_fa3_xor1 = 0; - uint8_t u_cska14_fa3_or0 = 0; - uint8_t u_cska14_xor5 = 0; - uint8_t u_cska14_fa4_xor1 = 0; - uint8_t u_cska14_fa4_or0 = 0; - uint8_t u_cska14_xor6 = 0; - uint8_t u_cska14_fa5_xor1 = 0; - uint8_t u_cska14_fa5_or0 = 0; - uint8_t u_cska14_xor7 = 0; - uint8_t u_cska14_fa6_xor1 = 0; - uint8_t u_cska14_fa6_or0 = 0; - uint8_t u_cska14_and_propagate13 = 0; - uint8_t u_cska14_and_propagate14 = 0; - uint8_t u_cska14_and_propagate15 = 0; - uint8_t u_cska14_mux2to11_xor0 = 0; - uint8_t u_cska14_xor8 = 0; - uint8_t u_cska14_fa7_xor1 = 0; - uint8_t u_cska14_fa7_or0 = 0; - uint8_t u_cska14_xor9 = 0; - uint8_t u_cska14_fa8_xor1 = 0; - uint8_t u_cska14_fa8_or0 = 0; - uint8_t u_cska14_xor10 = 0; - uint8_t u_cska14_fa9_xor1 = 0; - uint8_t u_cska14_fa9_or0 = 0; - uint8_t u_cska14_xor11 = 0; - uint8_t u_cska14_fa10_xor1 = 0; - uint8_t u_cska14_fa10_or0 = 0; - uint8_t u_cska14_and_propagate26 = 0; - uint8_t u_cska14_and_propagate27 = 0; - uint8_t u_cska14_and_propagate28 = 0; - uint8_t u_cska14_mux2to12_xor0 = 0; - uint8_t u_cska14_xor12 = 0; - uint8_t u_cska14_fa11_xor1 = 0; - uint8_t u_cska14_fa11_or0 = 0; - uint8_t u_cska14_xor13 = 0; - uint8_t u_cska14_fa12_xor1 = 0; - uint8_t u_cska14_fa12_or0 = 0; - uint8_t u_cska14_and_propagate39 = 0; - uint8_t u_cska14_mux2to13_xor0 = 0; - - u_cska14_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - u_cska14_ha0_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_ha0_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor1 = xor_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - u_cska14_fa0_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska14_ha0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa0_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska14_ha0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor2 = xor_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - u_cska14_fa1_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska14_fa0_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa1_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska14_fa0_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor3 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - u_cska14_fa2_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska14_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa2_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska14_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate00 = and_gate(((u_cska14_xor0 >> 0) & 0x01), ((u_cska14_xor2 >> 0) & 0x01)); - u_cska14_and_propagate01 = and_gate(((u_cska14_xor1 >> 0) & 0x01), ((u_cska14_xor3 >> 0) & 0x01)); - u_cska14_and_propagate02 = and_gate(((u_cska14_and_propagate00 >> 0) & 0x01), ((u_cska14_and_propagate01 >> 0) & 0x01)); - u_cska14_mux2to10_and1 = (mux2to1(((u_cska14_fa2_or0 >> 0) & 0x01), (0x00), ((u_cska14_and_propagate02 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_xor4 = xor_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - u_cska14_fa3_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska14_mux2to10_and1 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa3_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska14_mux2to10_and1 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor5 = xor_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - u_cska14_fa4_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska14_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa4_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska14_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor6 = xor_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - u_cska14_fa5_xor1 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_cska14_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa5_or0 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_cska14_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor7 = xor_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - u_cska14_fa6_xor1 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_cska14_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa6_or0 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_cska14_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate13 = and_gate(((u_cska14_xor4 >> 0) & 0x01), ((u_cska14_xor6 >> 0) & 0x01)); - u_cska14_and_propagate14 = and_gate(((u_cska14_xor5 >> 0) & 0x01), ((u_cska14_xor7 >> 0) & 0x01)); - u_cska14_and_propagate15 = and_gate(((u_cska14_and_propagate13 >> 0) & 0x01), ((u_cska14_and_propagate14 >> 0) & 0x01)); - u_cska14_mux2to11_xor0 = (mux2to1(((u_cska14_fa6_or0 >> 0) & 0x01), ((u_cska14_mux2to10_and1 >> 0) & 0x01), ((u_cska14_and_propagate15 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_xor8 = xor_gate(((a >> 8) & 0x01), ((b >> 8) & 0x01)); - u_cska14_fa7_xor1 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_cska14_mux2to11_xor0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa7_or0 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_cska14_mux2to11_xor0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor9 = xor_gate(((a >> 9) & 0x01), ((b >> 9) & 0x01)); - u_cska14_fa8_xor1 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_cska14_fa7_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa8_or0 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_cska14_fa7_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor10 = xor_gate(((a >> 10) & 0x01), ((b >> 10) & 0x01)); - u_cska14_fa9_xor1 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_cska14_fa8_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa9_or0 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_cska14_fa8_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor11 = xor_gate(((a >> 11) & 0x01), ((b >> 11) & 0x01)); - u_cska14_fa10_xor1 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_cska14_fa9_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa10_or0 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_cska14_fa9_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate26 = and_gate(((u_cska14_xor8 >> 0) & 0x01), ((u_cska14_xor10 >> 0) & 0x01)); - u_cska14_and_propagate27 = and_gate(((u_cska14_xor9 >> 0) & 0x01), ((u_cska14_xor11 >> 0) & 0x01)); - u_cska14_and_propagate28 = and_gate(((u_cska14_and_propagate26 >> 0) & 0x01), ((u_cska14_and_propagate27 >> 0) & 0x01)); - u_cska14_mux2to12_xor0 = (mux2to1(((u_cska14_fa10_or0 >> 0) & 0x01), ((u_cska14_mux2to11_xor0 >> 0) & 0x01), ((u_cska14_and_propagate28 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_xor12 = xor_gate(((a >> 12) & 0x01), ((b >> 12) & 0x01)); - u_cska14_fa11_xor1 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_cska14_mux2to12_xor0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa11_or0 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_cska14_mux2to12_xor0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor13 = xor_gate(((a >> 13) & 0x01), ((b >> 13) & 0x01)); - u_cska14_fa12_xor1 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_cska14_fa11_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa12_or0 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_cska14_fa11_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate39 = and_gate(((u_cska14_xor12 >> 0) & 0x01), ((u_cska14_xor13 >> 0) & 0x01)); - u_cska14_mux2to13_xor0 = (mux2to1(((u_cska14_fa12_or0 >> 0) & 0x01), ((u_cska14_mux2to12_xor0 >> 0) & 0x01), ((u_cska14_and_propagate39 >> 0) & 0x01)) >> 0) & 0x01; - - u_cska14_out |= ((u_cska14_ha0_xor0 >> 0) & 0x01) << 0; - u_cska14_out |= ((u_cska14_fa0_xor1 >> 0) & 0x01) << 1; - u_cska14_out |= ((u_cska14_fa1_xor1 >> 0) & 0x01) << 2; - u_cska14_out |= ((u_cska14_fa2_xor1 >> 0) & 0x01) << 3; - u_cska14_out |= ((u_cska14_fa3_xor1 >> 0) & 0x01) << 4; - u_cska14_out |= ((u_cska14_fa4_xor1 >> 0) & 0x01) << 5; - u_cska14_out |= ((u_cska14_fa5_xor1 >> 0) & 0x01) << 6; - u_cska14_out |= ((u_cska14_fa6_xor1 >> 0) & 0x01) << 7; - u_cska14_out |= ((u_cska14_fa7_xor1 >> 0) & 0x01) << 8; - u_cska14_out |= ((u_cska14_fa8_xor1 >> 0) & 0x01) << 9; - u_cska14_out |= ((u_cska14_fa9_xor1 >> 0) & 0x01) << 10; - u_cska14_out |= ((u_cska14_fa10_xor1 >> 0) & 0x01) << 11; - u_cska14_out |= ((u_cska14_fa11_xor1 >> 0) & 0x01) << 12; - u_cska14_out |= ((u_cska14_fa12_xor1 >> 0) & 0x01) << 13; - u_cska14_out |= ((u_cska14_mux2to13_xor0 >> 0) & 0x01) << 14; - return u_cska14_out; -} - -uint64_t h_s_dadda_cska8(uint64_t a, uint64_t b){ - uint64_t h_s_dadda_cska8_out = 0; - uint8_t h_s_dadda_cska8_and_6_0 = 0; - uint8_t h_s_dadda_cska8_and_5_1 = 0; - uint8_t h_s_dadda_cska8_ha0_xor0 = 0; - uint8_t h_s_dadda_cska8_ha0_and0 = 0; - uint8_t h_s_dadda_cska8_nand_7_0 = 0; - uint8_t h_s_dadda_cska8_and_6_1 = 0; - uint8_t h_s_dadda_cska8_fa0_xor1 = 0; - uint8_t h_s_dadda_cska8_fa0_or0 = 0; - uint8_t h_s_dadda_cska8_and_5_2 = 0; - uint8_t h_s_dadda_cska8_and_4_3 = 0; - uint8_t h_s_dadda_cska8_ha1_xor0 = 0; - uint8_t h_s_dadda_cska8_ha1_and0 = 0; - uint8_t h_s_dadda_cska8_fa1_xor1 = 0; - uint8_t h_s_dadda_cska8_fa1_or0 = 0; - uint8_t h_s_dadda_cska8_nand_7_1 = 0; - uint8_t h_s_dadda_cska8_and_6_2 = 0; - uint8_t h_s_dadda_cska8_and_5_3 = 0; - uint8_t h_s_dadda_cska8_fa2_xor1 = 0; - uint8_t h_s_dadda_cska8_fa2_or0 = 0; - uint8_t h_s_dadda_cska8_nand_7_2 = 0; - uint8_t h_s_dadda_cska8_fa3_xor1 = 0; - uint8_t h_s_dadda_cska8_fa3_or0 = 0; - uint8_t h_s_dadda_cska8_and_3_0 = 0; - uint8_t h_s_dadda_cska8_and_2_1 = 0; - uint8_t h_s_dadda_cska8_ha2_xor0 = 0; - uint8_t h_s_dadda_cska8_ha2_and0 = 0; - uint8_t h_s_dadda_cska8_and_4_0 = 0; - uint8_t h_s_dadda_cska8_and_3_1 = 0; - uint8_t h_s_dadda_cska8_fa4_xor1 = 0; - uint8_t h_s_dadda_cska8_fa4_or0 = 0; - uint8_t h_s_dadda_cska8_and_2_2 = 0; - uint8_t h_s_dadda_cska8_and_1_3 = 0; - uint8_t h_s_dadda_cska8_ha3_xor0 = 0; - uint8_t h_s_dadda_cska8_ha3_and0 = 0; - uint8_t h_s_dadda_cska8_and_5_0 = 0; - uint8_t h_s_dadda_cska8_fa5_xor1 = 0; - uint8_t h_s_dadda_cska8_fa5_or0 = 0; - uint8_t h_s_dadda_cska8_and_4_1 = 0; - uint8_t h_s_dadda_cska8_and_3_2 = 0; - uint8_t h_s_dadda_cska8_and_2_3 = 0; - uint8_t h_s_dadda_cska8_fa6_xor1 = 0; - uint8_t h_s_dadda_cska8_fa6_or0 = 0; - uint8_t h_s_dadda_cska8_and_1_4 = 0; - uint8_t h_s_dadda_cska8_and_0_5 = 0; - uint8_t h_s_dadda_cska8_ha4_xor0 = 0; - uint8_t h_s_dadda_cska8_ha4_and0 = 0; - uint8_t h_s_dadda_cska8_fa7_xor1 = 0; - uint8_t h_s_dadda_cska8_fa7_or0 = 0; - uint8_t h_s_dadda_cska8_and_4_2 = 0; - uint8_t h_s_dadda_cska8_and_3_3 = 0; - uint8_t h_s_dadda_cska8_and_2_4 = 0; - uint8_t h_s_dadda_cska8_fa8_xor1 = 0; - uint8_t h_s_dadda_cska8_fa8_or0 = 0; - uint8_t h_s_dadda_cska8_and_1_5 = 0; - uint8_t h_s_dadda_cska8_and_0_6 = 0; - uint8_t h_s_dadda_cska8_fa9_xor1 = 0; - uint8_t h_s_dadda_cska8_fa9_or0 = 0; - uint8_t h_s_dadda_cska8_fa10_xor1 = 0; - uint8_t h_s_dadda_cska8_fa10_or0 = 0; - uint8_t h_s_dadda_cska8_and_3_4 = 0; - uint8_t h_s_dadda_cska8_and_2_5 = 0; - uint8_t h_s_dadda_cska8_and_1_6 = 0; - uint8_t h_s_dadda_cska8_fa11_xor1 = 0; - uint8_t h_s_dadda_cska8_fa11_or0 = 0; - uint8_t h_s_dadda_cska8_nand_0_7 = 0; - uint8_t h_s_dadda_cska8_fa12_xor1 = 0; - uint8_t h_s_dadda_cska8_fa12_or0 = 0; - uint8_t h_s_dadda_cska8_fa13_xor1 = 0; - uint8_t h_s_dadda_cska8_fa13_or0 = 0; - uint8_t h_s_dadda_cska8_and_4_4 = 0; - uint8_t h_s_dadda_cska8_and_3_5 = 0; - uint8_t h_s_dadda_cska8_and_2_6 = 0; - uint8_t h_s_dadda_cska8_fa14_xor1 = 0; - uint8_t h_s_dadda_cska8_fa14_or0 = 0; - uint8_t h_s_dadda_cska8_nand_1_7 = 0; - uint8_t h_s_dadda_cska8_fa15_xor1 = 0; - uint8_t h_s_dadda_cska8_fa15_or0 = 0; - uint8_t h_s_dadda_cska8_fa16_xor1 = 0; - uint8_t h_s_dadda_cska8_fa16_or0 = 0; - uint8_t h_s_dadda_cska8_and_6_3 = 0; - uint8_t h_s_dadda_cska8_and_5_4 = 0; - uint8_t h_s_dadda_cska8_and_4_5 = 0; - uint8_t h_s_dadda_cska8_fa17_xor1 = 0; - uint8_t h_s_dadda_cska8_fa17_or0 = 0; - uint8_t h_s_dadda_cska8_and_3_6 = 0; - uint8_t h_s_dadda_cska8_nand_2_7 = 0; - uint8_t h_s_dadda_cska8_fa18_xor1 = 0; - uint8_t h_s_dadda_cska8_fa18_or0 = 0; - uint8_t h_s_dadda_cska8_fa19_xor1 = 0; - uint8_t h_s_dadda_cska8_fa19_or0 = 0; - uint8_t h_s_dadda_cska8_nand_7_3 = 0; - uint8_t h_s_dadda_cska8_and_6_4 = 0; - uint8_t h_s_dadda_cska8_fa20_xor1 = 0; - uint8_t h_s_dadda_cska8_fa20_or0 = 0; - uint8_t h_s_dadda_cska8_and_5_5 = 0; - uint8_t h_s_dadda_cska8_and_4_6 = 0; - uint8_t h_s_dadda_cska8_nand_3_7 = 0; - uint8_t h_s_dadda_cska8_fa21_xor1 = 0; - uint8_t h_s_dadda_cska8_fa21_or0 = 0; - uint8_t h_s_dadda_cska8_fa22_xor1 = 0; - uint8_t h_s_dadda_cska8_fa22_or0 = 0; - uint8_t h_s_dadda_cska8_nand_7_4 = 0; - uint8_t h_s_dadda_cska8_and_6_5 = 0; - uint8_t h_s_dadda_cska8_and_5_6 = 0; - uint8_t h_s_dadda_cska8_fa23_xor1 = 0; - uint8_t h_s_dadda_cska8_fa23_or0 = 0; - uint8_t h_s_dadda_cska8_nand_7_5 = 0; - uint8_t h_s_dadda_cska8_fa24_xor1 = 0; - uint8_t h_s_dadda_cska8_fa24_or0 = 0; - uint8_t h_s_dadda_cska8_and_2_0 = 0; - uint8_t h_s_dadda_cska8_and_1_1 = 0; - uint8_t h_s_dadda_cska8_ha5_xor0 = 0; - uint8_t h_s_dadda_cska8_ha5_and0 = 0; - uint8_t h_s_dadda_cska8_and_1_2 = 0; - uint8_t h_s_dadda_cska8_and_0_3 = 0; - uint8_t h_s_dadda_cska8_fa25_xor1 = 0; - uint8_t h_s_dadda_cska8_fa25_or0 = 0; - uint8_t h_s_dadda_cska8_and_0_4 = 0; - uint8_t h_s_dadda_cska8_fa26_xor1 = 0; - uint8_t h_s_dadda_cska8_fa26_or0 = 0; - uint8_t h_s_dadda_cska8_fa27_xor1 = 0; - uint8_t h_s_dadda_cska8_fa27_or0 = 0; - uint8_t h_s_dadda_cska8_fa28_xor1 = 0; - uint8_t h_s_dadda_cska8_fa28_or0 = 0; - uint8_t h_s_dadda_cska8_fa29_xor1 = 0; - uint8_t h_s_dadda_cska8_fa29_or0 = 0; - uint8_t h_s_dadda_cska8_fa30_xor1 = 0; - uint8_t h_s_dadda_cska8_fa30_or0 = 0; - uint8_t h_s_dadda_cska8_fa31_xor1 = 0; - uint8_t h_s_dadda_cska8_fa31_or0 = 0; - uint8_t h_s_dadda_cska8_fa32_xor1 = 0; - uint8_t h_s_dadda_cska8_fa32_or0 = 0; - uint8_t h_s_dadda_cska8_nand_4_7 = 0; - uint8_t h_s_dadda_cska8_fa33_xor1 = 0; - uint8_t h_s_dadda_cska8_fa33_or0 = 0; - uint8_t h_s_dadda_cska8_and_6_6 = 0; - uint8_t h_s_dadda_cska8_nand_5_7 = 0; - uint8_t h_s_dadda_cska8_fa34_xor1 = 0; - uint8_t h_s_dadda_cska8_fa34_or0 = 0; - uint8_t h_s_dadda_cska8_nand_7_6 = 0; - uint8_t h_s_dadda_cska8_fa35_xor1 = 0; - uint8_t h_s_dadda_cska8_fa35_or0 = 0; - uint8_t h_s_dadda_cska8_and_0_0 = 0; - uint8_t h_s_dadda_cska8_and_1_0 = 0; - uint8_t h_s_dadda_cska8_and_0_2 = 0; - uint8_t h_s_dadda_cska8_nand_6_7 = 0; - uint8_t h_s_dadda_cska8_and_0_1 = 0; - uint8_t h_s_dadda_cska8_and_7_7 = 0; - uint64_t h_s_dadda_cska8_u_cska14_a = 0; - uint64_t h_s_dadda_cska8_u_cska14_b = 0; - uint64_t h_s_dadda_cska8_u_cska14_out = 0; - uint8_t h_s_dadda_cska8_xor0 = 0; - - h_s_dadda_cska8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cska8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cska8_ha0_xor0 = (ha(((h_s_dadda_cska8_and_6_0 >> 0) & 0x01), ((h_s_dadda_cska8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_ha0_and0 = (ha(((h_s_dadda_cska8_and_6_0 >> 0) & 0x01), ((h_s_dadda_cska8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_nand_7_0 = nand_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cska8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cska8_fa0_xor1 = (fa(((h_s_dadda_cska8_ha0_and0 >> 0) & 0x01), ((h_s_dadda_cska8_nand_7_0 >> 0) & 0x01), ((h_s_dadda_cska8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa0_or0 = (fa(((h_s_dadda_cska8_ha0_and0 >> 0) & 0x01), ((h_s_dadda_cska8_nand_7_0 >> 0) & 0x01), ((h_s_dadda_cska8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cska8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cska8_ha1_xor0 = (ha(((h_s_dadda_cska8_and_5_2 >> 0) & 0x01), ((h_s_dadda_cska8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_ha1_and0 = (ha(((h_s_dadda_cska8_and_5_2 >> 0) & 0x01), ((h_s_dadda_cska8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_fa1_xor1 = (fa(((h_s_dadda_cska8_ha1_and0 >> 0) & 0x01), ((h_s_dadda_cska8_fa0_or0 >> 0) & 0x01), (0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa1_or0 = (fa(((h_s_dadda_cska8_ha1_and0 >> 0) & 0x01), ((h_s_dadda_cska8_fa0_or0 >> 0) & 0x01), (0x01)) >> 1) & 0x01; - h_s_dadda_cska8_nand_7_1 = nand_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cska8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cska8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cska8_fa2_xor1 = (fa(((h_s_dadda_cska8_nand_7_1 >> 0) & 0x01), ((h_s_dadda_cska8_and_6_2 >> 0) & 0x01), ((h_s_dadda_cska8_and_5_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa2_or0 = (fa(((h_s_dadda_cska8_nand_7_1 >> 0) & 0x01), ((h_s_dadda_cska8_and_6_2 >> 0) & 0x01), ((h_s_dadda_cska8_and_5_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_nand_7_2 = nand_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cska8_fa3_xor1 = (fa(((h_s_dadda_cska8_fa2_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa1_or0 >> 0) & 0x01), ((h_s_dadda_cska8_nand_7_2 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa3_or0 = (fa(((h_s_dadda_cska8_fa2_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa1_or0 >> 0) & 0x01), ((h_s_dadda_cska8_nand_7_2 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cska8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cska8_ha2_xor0 = (ha(((h_s_dadda_cska8_and_3_0 >> 0) & 0x01), ((h_s_dadda_cska8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_ha2_and0 = (ha(((h_s_dadda_cska8_and_3_0 >> 0) & 0x01), ((h_s_dadda_cska8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cska8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cska8_fa4_xor1 = (fa(((h_s_dadda_cska8_ha2_and0 >> 0) & 0x01), ((h_s_dadda_cska8_and_4_0 >> 0) & 0x01), ((h_s_dadda_cska8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa4_or0 = (fa(((h_s_dadda_cska8_ha2_and0 >> 0) & 0x01), ((h_s_dadda_cska8_and_4_0 >> 0) & 0x01), ((h_s_dadda_cska8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cska8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cska8_ha3_xor0 = (ha(((h_s_dadda_cska8_and_2_2 >> 0) & 0x01), ((h_s_dadda_cska8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_ha3_and0 = (ha(((h_s_dadda_cska8_and_2_2 >> 0) & 0x01), ((h_s_dadda_cska8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cska8_fa5_xor1 = (fa(((h_s_dadda_cska8_ha3_and0 >> 0) & 0x01), ((h_s_dadda_cska8_fa4_or0 >> 0) & 0x01), ((h_s_dadda_cska8_and_5_0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa5_or0 = (fa(((h_s_dadda_cska8_ha3_and0 >> 0) & 0x01), ((h_s_dadda_cska8_fa4_or0 >> 0) & 0x01), ((h_s_dadda_cska8_and_5_0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cska8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cska8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cska8_fa6_xor1 = (fa(((h_s_dadda_cska8_and_4_1 >> 0) & 0x01), ((h_s_dadda_cska8_and_3_2 >> 0) & 0x01), ((h_s_dadda_cska8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa6_or0 = (fa(((h_s_dadda_cska8_and_4_1 >> 0) & 0x01), ((h_s_dadda_cska8_and_3_2 >> 0) & 0x01), ((h_s_dadda_cska8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cska8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cska8_ha4_xor0 = (ha(((h_s_dadda_cska8_and_1_4 >> 0) & 0x01), ((h_s_dadda_cska8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_ha4_and0 = (ha(((h_s_dadda_cska8_and_1_4 >> 0) & 0x01), ((h_s_dadda_cska8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_fa7_xor1 = (fa(((h_s_dadda_cska8_ha4_and0 >> 0) & 0x01), ((h_s_dadda_cska8_fa6_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa7_or0 = (fa(((h_s_dadda_cska8_ha4_and0 >> 0) & 0x01), ((h_s_dadda_cska8_fa6_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cska8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cska8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cska8_fa8_xor1 = (fa(((h_s_dadda_cska8_and_4_2 >> 0) & 0x01), ((h_s_dadda_cska8_and_3_3 >> 0) & 0x01), ((h_s_dadda_cska8_and_2_4 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa8_or0 = (fa(((h_s_dadda_cska8_and_4_2 >> 0) & 0x01), ((h_s_dadda_cska8_and_3_3 >> 0) & 0x01), ((h_s_dadda_cska8_and_2_4 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cska8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cska8_fa9_xor1 = (fa(((h_s_dadda_cska8_and_1_5 >> 0) & 0x01), ((h_s_dadda_cska8_and_0_6 >> 0) & 0x01), ((h_s_dadda_cska8_ha0_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa9_or0 = (fa(((h_s_dadda_cska8_and_1_5 >> 0) & 0x01), ((h_s_dadda_cska8_and_0_6 >> 0) & 0x01), ((h_s_dadda_cska8_ha0_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_fa10_xor1 = (fa(((h_s_dadda_cska8_fa9_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa8_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa10_or0 = (fa(((h_s_dadda_cska8_fa9_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa8_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa7_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cska8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cska8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cska8_fa11_xor1 = (fa(((h_s_dadda_cska8_and_3_4 >> 0) & 0x01), ((h_s_dadda_cska8_and_2_5 >> 0) & 0x01), ((h_s_dadda_cska8_and_1_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa11_or0 = (fa(((h_s_dadda_cska8_and_3_4 >> 0) & 0x01), ((h_s_dadda_cska8_and_2_5 >> 0) & 0x01), ((h_s_dadda_cska8_and_1_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_nand_0_7 = nand_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cska8_fa12_xor1 = (fa(((h_s_dadda_cska8_nand_0_7 >> 0) & 0x01), ((h_s_dadda_cska8_fa0_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_ha1_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa12_or0 = (fa(((h_s_dadda_cska8_nand_0_7 >> 0) & 0x01), ((h_s_dadda_cska8_fa0_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_ha1_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_fa13_xor1 = (fa(((h_s_dadda_cska8_fa12_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa11_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa10_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa13_or0 = (fa(((h_s_dadda_cska8_fa12_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa11_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa10_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cska8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cska8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cska8_fa14_xor1 = (fa(((h_s_dadda_cska8_and_4_4 >> 0) & 0x01), ((h_s_dadda_cska8_and_3_5 >> 0) & 0x01), ((h_s_dadda_cska8_and_2_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa14_or0 = (fa(((h_s_dadda_cska8_and_4_4 >> 0) & 0x01), ((h_s_dadda_cska8_and_3_5 >> 0) & 0x01), ((h_s_dadda_cska8_and_2_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_nand_1_7 = nand_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cska8_fa15_xor1 = (fa(((h_s_dadda_cska8_nand_1_7 >> 0) & 0x01), ((h_s_dadda_cska8_fa1_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_fa2_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa15_or0 = (fa(((h_s_dadda_cska8_nand_1_7 >> 0) & 0x01), ((h_s_dadda_cska8_fa1_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_fa2_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_fa16_xor1 = (fa(((h_s_dadda_cska8_fa15_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa14_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa13_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa16_or0 = (fa(((h_s_dadda_cska8_fa15_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa14_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa13_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cska8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cska8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cska8_fa17_xor1 = (fa(((h_s_dadda_cska8_and_6_3 >> 0) & 0x01), ((h_s_dadda_cska8_and_5_4 >> 0) & 0x01), ((h_s_dadda_cska8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa17_or0 = (fa(((h_s_dadda_cska8_and_6_3 >> 0) & 0x01), ((h_s_dadda_cska8_and_5_4 >> 0) & 0x01), ((h_s_dadda_cska8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cska8_nand_2_7 = nand_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cska8_fa18_xor1 = (fa(((h_s_dadda_cska8_and_3_6 >> 0) & 0x01), ((h_s_dadda_cska8_nand_2_7 >> 0) & 0x01), ((h_s_dadda_cska8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa18_or0 = (fa(((h_s_dadda_cska8_and_3_6 >> 0) & 0x01), ((h_s_dadda_cska8_nand_2_7 >> 0) & 0x01), ((h_s_dadda_cska8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_fa19_xor1 = (fa(((h_s_dadda_cska8_fa18_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa17_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa16_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa19_or0 = (fa(((h_s_dadda_cska8_fa18_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa17_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa16_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_nand_7_3 = nand_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cska8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cska8_fa20_xor1 = (fa(((h_s_dadda_cska8_fa3_or0 >> 0) & 0x01), ((h_s_dadda_cska8_nand_7_3 >> 0) & 0x01), ((h_s_dadda_cska8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa20_or0 = (fa(((h_s_dadda_cska8_fa3_or0 >> 0) & 0x01), ((h_s_dadda_cska8_nand_7_3 >> 0) & 0x01), ((h_s_dadda_cska8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cska8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cska8_nand_3_7 = nand_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cska8_fa21_xor1 = (fa(((h_s_dadda_cska8_and_5_5 >> 0) & 0x01), ((h_s_dadda_cska8_and_4_6 >> 0) & 0x01), ((h_s_dadda_cska8_nand_3_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa21_or0 = (fa(((h_s_dadda_cska8_and_5_5 >> 0) & 0x01), ((h_s_dadda_cska8_and_4_6 >> 0) & 0x01), ((h_s_dadda_cska8_nand_3_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_fa22_xor1 = (fa(((h_s_dadda_cska8_fa21_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa20_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa19_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa22_or0 = (fa(((h_s_dadda_cska8_fa21_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa20_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa19_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_nand_7_4 = nand_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cska8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cska8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cska8_fa23_xor1 = (fa(((h_s_dadda_cska8_nand_7_4 >> 0) & 0x01), ((h_s_dadda_cska8_and_6_5 >> 0) & 0x01), ((h_s_dadda_cska8_and_5_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa23_or0 = (fa(((h_s_dadda_cska8_nand_7_4 >> 0) & 0x01), ((h_s_dadda_cska8_and_6_5 >> 0) & 0x01), ((h_s_dadda_cska8_and_5_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_nand_7_5 = nand_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_cska8_fa24_xor1 = (fa(((h_s_dadda_cska8_fa23_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa22_or0 >> 0) & 0x01), ((h_s_dadda_cska8_nand_7_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa24_or0 = (fa(((h_s_dadda_cska8_fa23_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa22_or0 >> 0) & 0x01), ((h_s_dadda_cska8_nand_7_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cska8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cska8_ha5_xor0 = (ha(((h_s_dadda_cska8_and_2_0 >> 0) & 0x01), ((h_s_dadda_cska8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_ha5_and0 = (ha(((h_s_dadda_cska8_and_2_0 >> 0) & 0x01), ((h_s_dadda_cska8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cska8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_cska8_fa25_xor1 = (fa(((h_s_dadda_cska8_ha5_and0 >> 0) & 0x01), ((h_s_dadda_cska8_and_1_2 >> 0) & 0x01), ((h_s_dadda_cska8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa25_or0 = (fa(((h_s_dadda_cska8_ha5_and0 >> 0) & 0x01), ((h_s_dadda_cska8_and_1_2 >> 0) & 0x01), ((h_s_dadda_cska8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_cska8_fa26_xor1 = (fa(((h_s_dadda_cska8_fa25_or0 >> 0) & 0x01), ((h_s_dadda_cska8_and_0_4 >> 0) & 0x01), ((h_s_dadda_cska8_fa4_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa26_or0 = (fa(((h_s_dadda_cska8_fa25_or0 >> 0) & 0x01), ((h_s_dadda_cska8_and_0_4 >> 0) & 0x01), ((h_s_dadda_cska8_fa4_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_fa27_xor1 = (fa(((h_s_dadda_cska8_fa26_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa5_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_fa6_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa27_or0 = (fa(((h_s_dadda_cska8_fa26_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa5_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_fa6_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_fa28_xor1 = (fa(((h_s_dadda_cska8_fa27_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa7_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_fa8_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa28_or0 = (fa(((h_s_dadda_cska8_fa27_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa7_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_fa8_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_fa29_xor1 = (fa(((h_s_dadda_cska8_fa28_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa10_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_fa11_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa29_or0 = (fa(((h_s_dadda_cska8_fa28_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa10_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_fa11_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_fa30_xor1 = (fa(((h_s_dadda_cska8_fa29_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa13_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_fa14_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa30_or0 = (fa(((h_s_dadda_cska8_fa29_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa13_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_fa14_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_fa31_xor1 = (fa(((h_s_dadda_cska8_fa30_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa16_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_fa17_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa31_or0 = (fa(((h_s_dadda_cska8_fa30_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa16_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_fa17_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_fa32_xor1 = (fa(((h_s_dadda_cska8_fa31_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa19_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_fa20_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa32_or0 = (fa(((h_s_dadda_cska8_fa31_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa19_xor1 >> 0) & 0x01), ((h_s_dadda_cska8_fa20_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_nand_4_7 = nand_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cska8_fa33_xor1 = (fa(((h_s_dadda_cska8_fa32_or0 >> 0) & 0x01), ((h_s_dadda_cska8_nand_4_7 >> 0) & 0x01), ((h_s_dadda_cska8_fa22_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa33_or0 = (fa(((h_s_dadda_cska8_fa32_or0 >> 0) & 0x01), ((h_s_dadda_cska8_nand_4_7 >> 0) & 0x01), ((h_s_dadda_cska8_fa22_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cska8_nand_5_7 = nand_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cska8_fa34_xor1 = (fa(((h_s_dadda_cska8_fa33_or0 >> 0) & 0x01), ((h_s_dadda_cska8_and_6_6 >> 0) & 0x01), ((h_s_dadda_cska8_nand_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa34_or0 = (fa(((h_s_dadda_cska8_fa33_or0 >> 0) & 0x01), ((h_s_dadda_cska8_and_6_6 >> 0) & 0x01), ((h_s_dadda_cska8_nand_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_nand_7_6 = nand_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_cska8_fa35_xor1 = (fa(((h_s_dadda_cska8_fa34_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa24_or0 >> 0) & 0x01), ((h_s_dadda_cska8_nand_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_cska8_fa35_or0 = (fa(((h_s_dadda_cska8_fa34_or0 >> 0) & 0x01), ((h_s_dadda_cska8_fa24_or0 >> 0) & 0x01), ((h_s_dadda_cska8_nand_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_cska8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cska8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_cska8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_cska8_nand_6_7 = nand_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cska8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_cska8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_cska8_u_cska14_a |= ((h_s_dadda_cska8_and_1_0 >> 0) & 0x01) << 0; - h_s_dadda_cska8_u_cska14_a |= ((h_s_dadda_cska8_and_0_2 >> 0) & 0x01) << 1; - h_s_dadda_cska8_u_cska14_a |= ((h_s_dadda_cska8_ha2_xor0 >> 0) & 0x01) << 2; - h_s_dadda_cska8_u_cska14_a |= ((h_s_dadda_cska8_ha3_xor0 >> 0) & 0x01) << 3; - h_s_dadda_cska8_u_cska14_a |= ((h_s_dadda_cska8_ha4_xor0 >> 0) & 0x01) << 4; - h_s_dadda_cska8_u_cska14_a |= ((h_s_dadda_cska8_fa9_xor1 >> 0) & 0x01) << 5; - h_s_dadda_cska8_u_cska14_a |= ((h_s_dadda_cska8_fa12_xor1 >> 0) & 0x01) << 6; - h_s_dadda_cska8_u_cska14_a |= ((h_s_dadda_cska8_fa15_xor1 >> 0) & 0x01) << 7; - h_s_dadda_cska8_u_cska14_a |= ((h_s_dadda_cska8_fa18_xor1 >> 0) & 0x01) << 8; - h_s_dadda_cska8_u_cska14_a |= ((h_s_dadda_cska8_fa21_xor1 >> 0) & 0x01) << 9; - h_s_dadda_cska8_u_cska14_a |= ((h_s_dadda_cska8_fa23_xor1 >> 0) & 0x01) << 10; - h_s_dadda_cska8_u_cska14_a |= ((h_s_dadda_cska8_fa24_xor1 >> 0) & 0x01) << 11; - h_s_dadda_cska8_u_cska14_a |= ((h_s_dadda_cska8_nand_6_7 >> 0) & 0x01) << 12; - h_s_dadda_cska8_u_cska14_a |= ((h_s_dadda_cska8_fa35_or0 >> 0) & 0x01) << 13; - h_s_dadda_cska8_u_cska14_b |= ((h_s_dadda_cska8_and_0_1 >> 0) & 0x01) << 0; - h_s_dadda_cska8_u_cska14_b |= ((h_s_dadda_cska8_ha5_xor0 >> 0) & 0x01) << 1; - h_s_dadda_cska8_u_cska14_b |= ((h_s_dadda_cska8_fa25_xor1 >> 0) & 0x01) << 2; - h_s_dadda_cska8_u_cska14_b |= ((h_s_dadda_cska8_fa26_xor1 >> 0) & 0x01) << 3; - h_s_dadda_cska8_u_cska14_b |= ((h_s_dadda_cska8_fa27_xor1 >> 0) & 0x01) << 4; - h_s_dadda_cska8_u_cska14_b |= ((h_s_dadda_cska8_fa28_xor1 >> 0) & 0x01) << 5; - h_s_dadda_cska8_u_cska14_b |= ((h_s_dadda_cska8_fa29_xor1 >> 0) & 0x01) << 6; - h_s_dadda_cska8_u_cska14_b |= ((h_s_dadda_cska8_fa30_xor1 >> 0) & 0x01) << 7; - h_s_dadda_cska8_u_cska14_b |= ((h_s_dadda_cska8_fa31_xor1 >> 0) & 0x01) << 8; - h_s_dadda_cska8_u_cska14_b |= ((h_s_dadda_cska8_fa32_xor1 >> 0) & 0x01) << 9; - h_s_dadda_cska8_u_cska14_b |= ((h_s_dadda_cska8_fa33_xor1 >> 0) & 0x01) << 10; - h_s_dadda_cska8_u_cska14_b |= ((h_s_dadda_cska8_fa34_xor1 >> 0) & 0x01) << 11; - h_s_dadda_cska8_u_cska14_b |= ((h_s_dadda_cska8_fa35_xor1 >> 0) & 0x01) << 12; - h_s_dadda_cska8_u_cska14_b |= ((h_s_dadda_cska8_and_7_7 >> 0) & 0x01) << 13; - h_s_dadda_cska8_u_cska14_out = u_cska14(h_s_dadda_cska8_u_cska14_a, h_s_dadda_cska8_u_cska14_b); - h_s_dadda_cska8_xor0 = not_gate(((h_s_dadda_cska8_u_cska14_out >> 14) & 0x01)); - - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_and_0_0 >> 0) & 0x01) << 0; - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_u_cska14_out >> 0) & 0x01) << 1; - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_u_cska14_out >> 1) & 0x01) << 2; - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_u_cska14_out >> 2) & 0x01) << 3; - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_u_cska14_out >> 3) & 0x01) << 4; - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_u_cska14_out >> 4) & 0x01) << 5; - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_u_cska14_out >> 5) & 0x01) << 6; - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_u_cska14_out >> 6) & 0x01) << 7; - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_u_cska14_out >> 7) & 0x01) << 8; - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_u_cska14_out >> 8) & 0x01) << 9; - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_u_cska14_out >> 9) & 0x01) << 10; - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_u_cska14_out >> 10) & 0x01) << 11; - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_u_cska14_out >> 11) & 0x01) << 12; - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_u_cska14_out >> 12) & 0x01) << 13; - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_u_cska14_out >> 13) & 0x01) << 14; - h_s_dadda_cska8_out |= ((h_s_dadda_cska8_xor0 >> 0) & 0x01) << 15; - return h_s_dadda_cska8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)h_s_dadda_cska8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_pg_rca4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_pg_rca4.c deleted file mode 100644 index 825ce03..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_pg_rca4.c +++ /dev/null @@ -1,245 +0,0 @@ -#include -#include - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t pg_fa_out = 0; - uint8_t pg_fa_xor0 = 0; - uint8_t pg_fa_and0 = 0; - uint8_t pg_fa_xor1 = 0; - - pg_fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_xor1 = xor_gate(((pg_fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - - pg_fa_out |= ((pg_fa_xor0 >> 0) & 0x01) << 0; - pg_fa_out |= ((pg_fa_and0 >> 0) & 0x01) << 1; - pg_fa_out |= ((pg_fa_xor1 >> 0) & 0x01) << 2; - return pg_fa_out; -} - -uint64_t u_pg_rca6(uint64_t a, uint64_t b){ - uint8_t u_pg_rca6_out = 0; - uint8_t u_pg_rca6_pg_fa0_xor0 = 0; - uint8_t u_pg_rca6_pg_fa0_and0 = 0; - uint8_t u_pg_rca6_pg_fa1_xor0 = 0; - uint8_t u_pg_rca6_pg_fa1_and0 = 0; - uint8_t u_pg_rca6_pg_fa1_xor1 = 0; - uint8_t u_pg_rca6_and1 = 0; - uint8_t u_pg_rca6_or1 = 0; - uint8_t u_pg_rca6_pg_fa2_xor0 = 0; - uint8_t u_pg_rca6_pg_fa2_and0 = 0; - uint8_t u_pg_rca6_pg_fa2_xor1 = 0; - uint8_t u_pg_rca6_and2 = 0; - uint8_t u_pg_rca6_or2 = 0; - uint8_t u_pg_rca6_pg_fa3_xor0 = 0; - uint8_t u_pg_rca6_pg_fa3_and0 = 0; - uint8_t u_pg_rca6_pg_fa3_xor1 = 0; - uint8_t u_pg_rca6_and3 = 0; - uint8_t u_pg_rca6_or3 = 0; - uint8_t u_pg_rca6_pg_fa4_xor0 = 0; - uint8_t u_pg_rca6_pg_fa4_and0 = 0; - uint8_t u_pg_rca6_pg_fa4_xor1 = 0; - uint8_t u_pg_rca6_and4 = 0; - uint8_t u_pg_rca6_or4 = 0; - uint8_t u_pg_rca6_pg_fa5_xor0 = 0; - uint8_t u_pg_rca6_pg_fa5_and0 = 0; - uint8_t u_pg_rca6_pg_fa5_xor1 = 0; - uint8_t u_pg_rca6_and5 = 0; - uint8_t u_pg_rca6_or5 = 0; - - u_pg_rca6_pg_fa0_xor0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - u_pg_rca6_pg_fa0_and0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - u_pg_rca6_pg_fa1_xor0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa1_and0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa1_xor1 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and1 = and_gate(((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01), ((u_pg_rca6_pg_fa1_xor0 >> 0) & 0x01)); - u_pg_rca6_or1 = or_gate(((u_pg_rca6_and1 >> 0) & 0x01), ((u_pg_rca6_pg_fa1_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa2_xor0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca6_or1 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa2_and0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca6_or1 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa2_xor1 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca6_or1 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and2 = and_gate(((u_pg_rca6_or1 >> 0) & 0x01), ((u_pg_rca6_pg_fa2_xor0 >> 0) & 0x01)); - u_pg_rca6_or2 = or_gate(((u_pg_rca6_and2 >> 0) & 0x01), ((u_pg_rca6_pg_fa2_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa3_xor0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca6_or2 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa3_and0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca6_or2 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa3_xor1 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca6_or2 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and3 = and_gate(((u_pg_rca6_or2 >> 0) & 0x01), ((u_pg_rca6_pg_fa3_xor0 >> 0) & 0x01)); - u_pg_rca6_or3 = or_gate(((u_pg_rca6_and3 >> 0) & 0x01), ((u_pg_rca6_pg_fa3_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa4_xor0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca6_or3 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa4_and0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca6_or3 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa4_xor1 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca6_or3 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and4 = and_gate(((u_pg_rca6_or3 >> 0) & 0x01), ((u_pg_rca6_pg_fa4_xor0 >> 0) & 0x01)); - u_pg_rca6_or4 = or_gate(((u_pg_rca6_and4 >> 0) & 0x01), ((u_pg_rca6_pg_fa4_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa5_xor0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca6_or4 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa5_and0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca6_or4 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa5_xor1 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca6_or4 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and5 = and_gate(((u_pg_rca6_or4 >> 0) & 0x01), ((u_pg_rca6_pg_fa5_xor0 >> 0) & 0x01)); - u_pg_rca6_or5 = or_gate(((u_pg_rca6_and5 >> 0) & 0x01), ((u_pg_rca6_pg_fa5_and0 >> 0) & 0x01)); - - u_pg_rca6_out |= ((u_pg_rca6_pg_fa0_xor0 >> 0) & 0x01) << 0; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa1_xor1 >> 0) & 0x01) << 1; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa2_xor1 >> 0) & 0x01) << 2; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa3_xor1 >> 0) & 0x01) << 3; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa4_xor1 >> 0) & 0x01) << 4; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa5_xor1 >> 0) & 0x01) << 5; - u_pg_rca6_out |= ((u_pg_rca6_or5 >> 0) & 0x01) << 6; - return u_pg_rca6_out; -} - -uint64_t h_s_dadda_pg_rca4(uint64_t a, uint64_t b){ - uint8_t h_s_dadda_pg_rca4_out = 0; - uint8_t h_s_dadda_pg_rca4_nand_3_0 = 0; - uint8_t h_s_dadda_pg_rca4_and_2_1 = 0; - uint8_t h_s_dadda_pg_rca4_ha0_xor0 = 0; - uint8_t h_s_dadda_pg_rca4_ha0_and0 = 0; - uint8_t h_s_dadda_pg_rca4_nand_3_1 = 0; - uint8_t h_s_dadda_pg_rca4_fa0_xor1 = 0; - uint8_t h_s_dadda_pg_rca4_fa0_or0 = 0; - uint8_t h_s_dadda_pg_rca4_and_2_0 = 0; - uint8_t h_s_dadda_pg_rca4_and_1_1 = 0; - uint8_t h_s_dadda_pg_rca4_ha1_xor0 = 0; - uint8_t h_s_dadda_pg_rca4_ha1_and0 = 0; - uint8_t h_s_dadda_pg_rca4_and_1_2 = 0; - uint8_t h_s_dadda_pg_rca4_nand_0_3 = 0; - uint8_t h_s_dadda_pg_rca4_fa1_xor1 = 0; - uint8_t h_s_dadda_pg_rca4_fa1_or0 = 0; - uint8_t h_s_dadda_pg_rca4_and_2_2 = 0; - uint8_t h_s_dadda_pg_rca4_nand_1_3 = 0; - uint8_t h_s_dadda_pg_rca4_fa2_xor1 = 0; - uint8_t h_s_dadda_pg_rca4_fa2_or0 = 0; - uint8_t h_s_dadda_pg_rca4_nand_3_2 = 0; - uint8_t h_s_dadda_pg_rca4_fa3_xor1 = 0; - uint8_t h_s_dadda_pg_rca4_fa3_or0 = 0; - uint8_t h_s_dadda_pg_rca4_and_0_0 = 0; - uint8_t h_s_dadda_pg_rca4_and_1_0 = 0; - uint8_t h_s_dadda_pg_rca4_and_0_2 = 0; - uint8_t h_s_dadda_pg_rca4_nand_2_3 = 0; - uint8_t h_s_dadda_pg_rca4_and_0_1 = 0; - uint8_t h_s_dadda_pg_rca4_and_3_3 = 0; - uint64_t h_s_dadda_pg_rca4_u_pg_rca6_a = 0; - uint64_t h_s_dadda_pg_rca4_u_pg_rca6_b = 0; - uint64_t h_s_dadda_pg_rca4_u_pg_rca6_out = 0; - uint8_t h_s_dadda_pg_rca4_xor0 = 0; - - h_s_dadda_pg_rca4_nand_3_0 = nand_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_pg_rca4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_pg_rca4_ha0_xor0 = (ha(((h_s_dadda_pg_rca4_nand_3_0 >> 0) & 0x01), ((h_s_dadda_pg_rca4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca4_ha0_and0 = (ha(((h_s_dadda_pg_rca4_nand_3_0 >> 0) & 0x01), ((h_s_dadda_pg_rca4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca4_nand_3_1 = nand_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_pg_rca4_fa0_xor1 = (fa(((h_s_dadda_pg_rca4_ha0_and0 >> 0) & 0x01), (0x01), ((h_s_dadda_pg_rca4_nand_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca4_fa0_or0 = (fa(((h_s_dadda_pg_rca4_ha0_and0 >> 0) & 0x01), (0x01), ((h_s_dadda_pg_rca4_nand_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_pg_rca4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_pg_rca4_ha1_xor0 = (ha(((h_s_dadda_pg_rca4_and_2_0 >> 0) & 0x01), ((h_s_dadda_pg_rca4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca4_ha1_and0 = (ha(((h_s_dadda_pg_rca4_and_2_0 >> 0) & 0x01), ((h_s_dadda_pg_rca4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_pg_rca4_nand_0_3 = nand_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_pg_rca4_fa1_xor1 = (fa(((h_s_dadda_pg_rca4_ha1_and0 >> 0) & 0x01), ((h_s_dadda_pg_rca4_and_1_2 >> 0) & 0x01), ((h_s_dadda_pg_rca4_nand_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca4_fa1_or0 = (fa(((h_s_dadda_pg_rca4_ha1_and0 >> 0) & 0x01), ((h_s_dadda_pg_rca4_and_1_2 >> 0) & 0x01), ((h_s_dadda_pg_rca4_nand_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_pg_rca4_nand_1_3 = nand_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_pg_rca4_fa2_xor1 = (fa(((h_s_dadda_pg_rca4_fa1_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca4_and_2_2 >> 0) & 0x01), ((h_s_dadda_pg_rca4_nand_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca4_fa2_or0 = (fa(((h_s_dadda_pg_rca4_fa1_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca4_and_2_2 >> 0) & 0x01), ((h_s_dadda_pg_rca4_nand_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca4_nand_3_2 = nand_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_pg_rca4_fa3_xor1 = (fa(((h_s_dadda_pg_rca4_fa2_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca4_fa0_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca4_nand_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca4_fa3_or0 = (fa(((h_s_dadda_pg_rca4_fa2_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca4_fa0_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca4_nand_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_pg_rca4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_pg_rca4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_pg_rca4_nand_2_3 = nand_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_pg_rca4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_pg_rca4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_pg_rca4_u_pg_rca6_a |= ((h_s_dadda_pg_rca4_and_1_0 >> 0) & 0x01) << 0; - h_s_dadda_pg_rca4_u_pg_rca6_a |= ((h_s_dadda_pg_rca4_and_0_2 >> 0) & 0x01) << 1; - h_s_dadda_pg_rca4_u_pg_rca6_a |= ((h_s_dadda_pg_rca4_ha0_xor0 >> 0) & 0x01) << 2; - h_s_dadda_pg_rca4_u_pg_rca6_a |= ((h_s_dadda_pg_rca4_fa0_xor1 >> 0) & 0x01) << 3; - h_s_dadda_pg_rca4_u_pg_rca6_a |= ((h_s_dadda_pg_rca4_nand_2_3 >> 0) & 0x01) << 4; - h_s_dadda_pg_rca4_u_pg_rca6_a |= ((h_s_dadda_pg_rca4_fa3_or0 >> 0) & 0x01) << 5; - h_s_dadda_pg_rca4_u_pg_rca6_b |= ((h_s_dadda_pg_rca4_and_0_1 >> 0) & 0x01) << 0; - h_s_dadda_pg_rca4_u_pg_rca6_b |= ((h_s_dadda_pg_rca4_ha1_xor0 >> 0) & 0x01) << 1; - h_s_dadda_pg_rca4_u_pg_rca6_b |= ((h_s_dadda_pg_rca4_fa1_xor1 >> 0) & 0x01) << 2; - h_s_dadda_pg_rca4_u_pg_rca6_b |= ((h_s_dadda_pg_rca4_fa2_xor1 >> 0) & 0x01) << 3; - h_s_dadda_pg_rca4_u_pg_rca6_b |= ((h_s_dadda_pg_rca4_fa3_xor1 >> 0) & 0x01) << 4; - h_s_dadda_pg_rca4_u_pg_rca6_b |= ((h_s_dadda_pg_rca4_and_3_3 >> 0) & 0x01) << 5; - h_s_dadda_pg_rca4_u_pg_rca6_out = u_pg_rca6(h_s_dadda_pg_rca4_u_pg_rca6_a, h_s_dadda_pg_rca4_u_pg_rca6_b); - h_s_dadda_pg_rca4_xor0 = not_gate(((h_s_dadda_pg_rca4_u_pg_rca6_out >> 6) & 0x01)); - - h_s_dadda_pg_rca4_out |= ((h_s_dadda_pg_rca4_and_0_0 >> 0) & 0x01) << 0; - h_s_dadda_pg_rca4_out |= ((h_s_dadda_pg_rca4_u_pg_rca6_out >> 0) & 0x01) << 1; - h_s_dadda_pg_rca4_out |= ((h_s_dadda_pg_rca4_u_pg_rca6_out >> 1) & 0x01) << 2; - h_s_dadda_pg_rca4_out |= ((h_s_dadda_pg_rca4_u_pg_rca6_out >> 2) & 0x01) << 3; - h_s_dadda_pg_rca4_out |= ((h_s_dadda_pg_rca4_u_pg_rca6_out >> 3) & 0x01) << 4; - h_s_dadda_pg_rca4_out |= ((h_s_dadda_pg_rca4_u_pg_rca6_out >> 4) & 0x01) << 5; - h_s_dadda_pg_rca4_out |= ((h_s_dadda_pg_rca4_u_pg_rca6_out >> 5) & 0x01) << 6; - h_s_dadda_pg_rca4_out |= ((h_s_dadda_pg_rca4_xor0 >> 0) & 0x01) << 7; - return h_s_dadda_pg_rca4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)h_s_dadda_pg_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_pg_rca8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_pg_rca8.c deleted file mode 100644 index 6089d4c..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_pg_rca8.c +++ /dev/null @@ -1,597 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t pg_fa_out = 0; - uint8_t pg_fa_xor0 = 0; - uint8_t pg_fa_and0 = 0; - uint8_t pg_fa_xor1 = 0; - - pg_fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_xor1 = xor_gate(((pg_fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - - pg_fa_out |= ((pg_fa_xor0 >> 0) & 0x01) << 0; - pg_fa_out |= ((pg_fa_and0 >> 0) & 0x01) << 1; - pg_fa_out |= ((pg_fa_xor1 >> 0) & 0x01) << 2; - return pg_fa_out; -} - -uint64_t u_pg_rca14(uint64_t a, uint64_t b){ - uint64_t u_pg_rca14_out = 0; - uint8_t u_pg_rca14_pg_fa0_xor0 = 0; - uint8_t u_pg_rca14_pg_fa0_and0 = 0; - uint8_t u_pg_rca14_pg_fa1_xor0 = 0; - uint8_t u_pg_rca14_pg_fa1_and0 = 0; - uint8_t u_pg_rca14_pg_fa1_xor1 = 0; - uint8_t u_pg_rca14_and1 = 0; - uint8_t u_pg_rca14_or1 = 0; - uint8_t u_pg_rca14_pg_fa2_xor0 = 0; - uint8_t u_pg_rca14_pg_fa2_and0 = 0; - uint8_t u_pg_rca14_pg_fa2_xor1 = 0; - uint8_t u_pg_rca14_and2 = 0; - uint8_t u_pg_rca14_or2 = 0; - uint8_t u_pg_rca14_pg_fa3_xor0 = 0; - uint8_t u_pg_rca14_pg_fa3_and0 = 0; - uint8_t u_pg_rca14_pg_fa3_xor1 = 0; - uint8_t u_pg_rca14_and3 = 0; - uint8_t u_pg_rca14_or3 = 0; - uint8_t u_pg_rca14_pg_fa4_xor0 = 0; - uint8_t u_pg_rca14_pg_fa4_and0 = 0; - uint8_t u_pg_rca14_pg_fa4_xor1 = 0; - uint8_t u_pg_rca14_and4 = 0; - uint8_t u_pg_rca14_or4 = 0; - uint8_t u_pg_rca14_pg_fa5_xor0 = 0; - uint8_t u_pg_rca14_pg_fa5_and0 = 0; - uint8_t u_pg_rca14_pg_fa5_xor1 = 0; - uint8_t u_pg_rca14_and5 = 0; - uint8_t u_pg_rca14_or5 = 0; - uint8_t u_pg_rca14_pg_fa6_xor0 = 0; - uint8_t u_pg_rca14_pg_fa6_and0 = 0; - uint8_t u_pg_rca14_pg_fa6_xor1 = 0; - uint8_t u_pg_rca14_and6 = 0; - uint8_t u_pg_rca14_or6 = 0; - uint8_t u_pg_rca14_pg_fa7_xor0 = 0; - uint8_t u_pg_rca14_pg_fa7_and0 = 0; - uint8_t u_pg_rca14_pg_fa7_xor1 = 0; - uint8_t u_pg_rca14_and7 = 0; - uint8_t u_pg_rca14_or7 = 0; - uint8_t u_pg_rca14_pg_fa8_xor0 = 0; - uint8_t u_pg_rca14_pg_fa8_and0 = 0; - uint8_t u_pg_rca14_pg_fa8_xor1 = 0; - uint8_t u_pg_rca14_and8 = 0; - uint8_t u_pg_rca14_or8 = 0; - uint8_t u_pg_rca14_pg_fa9_xor0 = 0; - uint8_t u_pg_rca14_pg_fa9_and0 = 0; - uint8_t u_pg_rca14_pg_fa9_xor1 = 0; - uint8_t u_pg_rca14_and9 = 0; - uint8_t u_pg_rca14_or9 = 0; - uint8_t u_pg_rca14_pg_fa10_xor0 = 0; - uint8_t u_pg_rca14_pg_fa10_and0 = 0; - uint8_t u_pg_rca14_pg_fa10_xor1 = 0; - uint8_t u_pg_rca14_and10 = 0; - uint8_t u_pg_rca14_or10 = 0; - uint8_t u_pg_rca14_pg_fa11_xor0 = 0; - uint8_t u_pg_rca14_pg_fa11_and0 = 0; - uint8_t u_pg_rca14_pg_fa11_xor1 = 0; - uint8_t u_pg_rca14_and11 = 0; - uint8_t u_pg_rca14_or11 = 0; - uint8_t u_pg_rca14_pg_fa12_xor0 = 0; - uint8_t u_pg_rca14_pg_fa12_and0 = 0; - uint8_t u_pg_rca14_pg_fa12_xor1 = 0; - uint8_t u_pg_rca14_and12 = 0; - uint8_t u_pg_rca14_or12 = 0; - uint8_t u_pg_rca14_pg_fa13_xor0 = 0; - uint8_t u_pg_rca14_pg_fa13_and0 = 0; - uint8_t u_pg_rca14_pg_fa13_xor1 = 0; - uint8_t u_pg_rca14_and13 = 0; - uint8_t u_pg_rca14_or13 = 0; - - u_pg_rca14_pg_fa0_xor0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - u_pg_rca14_pg_fa0_and0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - u_pg_rca14_pg_fa1_xor0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa1_and0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa1_xor1 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and1 = and_gate(((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01), ((u_pg_rca14_pg_fa1_xor0 >> 0) & 0x01)); - u_pg_rca14_or1 = or_gate(((u_pg_rca14_and1 >> 0) & 0x01), ((u_pg_rca14_pg_fa1_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa2_xor0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca14_or1 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa2_and0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca14_or1 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa2_xor1 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca14_or1 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and2 = and_gate(((u_pg_rca14_or1 >> 0) & 0x01), ((u_pg_rca14_pg_fa2_xor0 >> 0) & 0x01)); - u_pg_rca14_or2 = or_gate(((u_pg_rca14_and2 >> 0) & 0x01), ((u_pg_rca14_pg_fa2_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa3_xor0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca14_or2 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa3_and0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca14_or2 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa3_xor1 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca14_or2 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and3 = and_gate(((u_pg_rca14_or2 >> 0) & 0x01), ((u_pg_rca14_pg_fa3_xor0 >> 0) & 0x01)); - u_pg_rca14_or3 = or_gate(((u_pg_rca14_and3 >> 0) & 0x01), ((u_pg_rca14_pg_fa3_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa4_xor0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca14_or3 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa4_and0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca14_or3 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa4_xor1 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca14_or3 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and4 = and_gate(((u_pg_rca14_or3 >> 0) & 0x01), ((u_pg_rca14_pg_fa4_xor0 >> 0) & 0x01)); - u_pg_rca14_or4 = or_gate(((u_pg_rca14_and4 >> 0) & 0x01), ((u_pg_rca14_pg_fa4_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa5_xor0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca14_or4 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa5_and0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca14_or4 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa5_xor1 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca14_or4 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and5 = and_gate(((u_pg_rca14_or4 >> 0) & 0x01), ((u_pg_rca14_pg_fa5_xor0 >> 0) & 0x01)); - u_pg_rca14_or5 = or_gate(((u_pg_rca14_and5 >> 0) & 0x01), ((u_pg_rca14_pg_fa5_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa6_xor0 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_pg_rca14_or5 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa6_and0 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_pg_rca14_or5 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa6_xor1 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_pg_rca14_or5 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and6 = and_gate(((u_pg_rca14_or5 >> 0) & 0x01), ((u_pg_rca14_pg_fa6_xor0 >> 0) & 0x01)); - u_pg_rca14_or6 = or_gate(((u_pg_rca14_and6 >> 0) & 0x01), ((u_pg_rca14_pg_fa6_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa7_xor0 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_pg_rca14_or6 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa7_and0 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_pg_rca14_or6 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa7_xor1 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_pg_rca14_or6 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and7 = and_gate(((u_pg_rca14_or6 >> 0) & 0x01), ((u_pg_rca14_pg_fa7_xor0 >> 0) & 0x01)); - u_pg_rca14_or7 = or_gate(((u_pg_rca14_and7 >> 0) & 0x01), ((u_pg_rca14_pg_fa7_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa8_xor0 = (pg_fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_pg_rca14_or7 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa8_and0 = (pg_fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_pg_rca14_or7 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa8_xor1 = (pg_fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_pg_rca14_or7 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and8 = and_gate(((u_pg_rca14_or7 >> 0) & 0x01), ((u_pg_rca14_pg_fa8_xor0 >> 0) & 0x01)); - u_pg_rca14_or8 = or_gate(((u_pg_rca14_and8 >> 0) & 0x01), ((u_pg_rca14_pg_fa8_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa9_xor0 = (pg_fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_pg_rca14_or8 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa9_and0 = (pg_fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_pg_rca14_or8 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa9_xor1 = (pg_fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_pg_rca14_or8 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and9 = and_gate(((u_pg_rca14_or8 >> 0) & 0x01), ((u_pg_rca14_pg_fa9_xor0 >> 0) & 0x01)); - u_pg_rca14_or9 = or_gate(((u_pg_rca14_and9 >> 0) & 0x01), ((u_pg_rca14_pg_fa9_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa10_xor0 = (pg_fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_pg_rca14_or9 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa10_and0 = (pg_fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_pg_rca14_or9 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa10_xor1 = (pg_fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_pg_rca14_or9 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and10 = and_gate(((u_pg_rca14_or9 >> 0) & 0x01), ((u_pg_rca14_pg_fa10_xor0 >> 0) & 0x01)); - u_pg_rca14_or10 = or_gate(((u_pg_rca14_and10 >> 0) & 0x01), ((u_pg_rca14_pg_fa10_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa11_xor0 = (pg_fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_pg_rca14_or10 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa11_and0 = (pg_fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_pg_rca14_or10 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa11_xor1 = (pg_fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_pg_rca14_or10 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and11 = and_gate(((u_pg_rca14_or10 >> 0) & 0x01), ((u_pg_rca14_pg_fa11_xor0 >> 0) & 0x01)); - u_pg_rca14_or11 = or_gate(((u_pg_rca14_and11 >> 0) & 0x01), ((u_pg_rca14_pg_fa11_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa12_xor0 = (pg_fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_pg_rca14_or11 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa12_and0 = (pg_fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_pg_rca14_or11 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa12_xor1 = (pg_fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_pg_rca14_or11 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and12 = and_gate(((u_pg_rca14_or11 >> 0) & 0x01), ((u_pg_rca14_pg_fa12_xor0 >> 0) & 0x01)); - u_pg_rca14_or12 = or_gate(((u_pg_rca14_and12 >> 0) & 0x01), ((u_pg_rca14_pg_fa12_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa13_xor0 = (pg_fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_pg_rca14_or12 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa13_and0 = (pg_fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_pg_rca14_or12 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa13_xor1 = (pg_fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_pg_rca14_or12 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and13 = and_gate(((u_pg_rca14_or12 >> 0) & 0x01), ((u_pg_rca14_pg_fa13_xor0 >> 0) & 0x01)); - u_pg_rca14_or13 = or_gate(((u_pg_rca14_and13 >> 0) & 0x01), ((u_pg_rca14_pg_fa13_and0 >> 0) & 0x01)); - - u_pg_rca14_out |= ((u_pg_rca14_pg_fa0_xor0 >> 0) & 0x01) << 0; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa1_xor1 >> 0) & 0x01) << 1; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa2_xor1 >> 0) & 0x01) << 2; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa3_xor1 >> 0) & 0x01) << 3; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa4_xor1 >> 0) & 0x01) << 4; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa5_xor1 >> 0) & 0x01) << 5; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa6_xor1 >> 0) & 0x01) << 6; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa7_xor1 >> 0) & 0x01) << 7; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa8_xor1 >> 0) & 0x01) << 8; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa9_xor1 >> 0) & 0x01) << 9; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa10_xor1 >> 0) & 0x01) << 10; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa11_xor1 >> 0) & 0x01) << 11; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa12_xor1 >> 0) & 0x01) << 12; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa13_xor1 >> 0) & 0x01) << 13; - u_pg_rca14_out |= ((u_pg_rca14_or13 >> 0) & 0x01) << 14; - return u_pg_rca14_out; -} - -uint64_t h_s_dadda_pg_rca8(uint64_t a, uint64_t b){ - uint64_t h_s_dadda_pg_rca8_out = 0; - uint8_t h_s_dadda_pg_rca8_and_6_0 = 0; - uint8_t h_s_dadda_pg_rca8_and_5_1 = 0; - uint8_t h_s_dadda_pg_rca8_ha0_xor0 = 0; - uint8_t h_s_dadda_pg_rca8_ha0_and0 = 0; - uint8_t h_s_dadda_pg_rca8_nand_7_0 = 0; - uint8_t h_s_dadda_pg_rca8_and_6_1 = 0; - uint8_t h_s_dadda_pg_rca8_fa0_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa0_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_5_2 = 0; - uint8_t h_s_dadda_pg_rca8_and_4_3 = 0; - uint8_t h_s_dadda_pg_rca8_ha1_xor0 = 0; - uint8_t h_s_dadda_pg_rca8_ha1_and0 = 0; - uint8_t h_s_dadda_pg_rca8_fa1_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa1_or0 = 0; - uint8_t h_s_dadda_pg_rca8_nand_7_1 = 0; - uint8_t h_s_dadda_pg_rca8_and_6_2 = 0; - uint8_t h_s_dadda_pg_rca8_and_5_3 = 0; - uint8_t h_s_dadda_pg_rca8_fa2_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa2_or0 = 0; - uint8_t h_s_dadda_pg_rca8_nand_7_2 = 0; - uint8_t h_s_dadda_pg_rca8_fa3_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa3_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_3_0 = 0; - uint8_t h_s_dadda_pg_rca8_and_2_1 = 0; - uint8_t h_s_dadda_pg_rca8_ha2_xor0 = 0; - uint8_t h_s_dadda_pg_rca8_ha2_and0 = 0; - uint8_t h_s_dadda_pg_rca8_and_4_0 = 0; - uint8_t h_s_dadda_pg_rca8_and_3_1 = 0; - uint8_t h_s_dadda_pg_rca8_fa4_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa4_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_2_2 = 0; - uint8_t h_s_dadda_pg_rca8_and_1_3 = 0; - uint8_t h_s_dadda_pg_rca8_ha3_xor0 = 0; - uint8_t h_s_dadda_pg_rca8_ha3_and0 = 0; - uint8_t h_s_dadda_pg_rca8_and_5_0 = 0; - uint8_t h_s_dadda_pg_rca8_fa5_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa5_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_4_1 = 0; - uint8_t h_s_dadda_pg_rca8_and_3_2 = 0; - uint8_t h_s_dadda_pg_rca8_and_2_3 = 0; - uint8_t h_s_dadda_pg_rca8_fa6_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa6_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_1_4 = 0; - uint8_t h_s_dadda_pg_rca8_and_0_5 = 0; - uint8_t h_s_dadda_pg_rca8_ha4_xor0 = 0; - uint8_t h_s_dadda_pg_rca8_ha4_and0 = 0; - uint8_t h_s_dadda_pg_rca8_fa7_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa7_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_4_2 = 0; - uint8_t h_s_dadda_pg_rca8_and_3_3 = 0; - uint8_t h_s_dadda_pg_rca8_and_2_4 = 0; - uint8_t h_s_dadda_pg_rca8_fa8_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa8_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_1_5 = 0; - uint8_t h_s_dadda_pg_rca8_and_0_6 = 0; - uint8_t h_s_dadda_pg_rca8_fa9_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa9_or0 = 0; - uint8_t h_s_dadda_pg_rca8_fa10_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa10_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_3_4 = 0; - uint8_t h_s_dadda_pg_rca8_and_2_5 = 0; - uint8_t h_s_dadda_pg_rca8_and_1_6 = 0; - uint8_t h_s_dadda_pg_rca8_fa11_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa11_or0 = 0; - uint8_t h_s_dadda_pg_rca8_nand_0_7 = 0; - uint8_t h_s_dadda_pg_rca8_fa12_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa12_or0 = 0; - uint8_t h_s_dadda_pg_rca8_fa13_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa13_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_4_4 = 0; - uint8_t h_s_dadda_pg_rca8_and_3_5 = 0; - uint8_t h_s_dadda_pg_rca8_and_2_6 = 0; - uint8_t h_s_dadda_pg_rca8_fa14_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa14_or0 = 0; - uint8_t h_s_dadda_pg_rca8_nand_1_7 = 0; - uint8_t h_s_dadda_pg_rca8_fa15_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa15_or0 = 0; - uint8_t h_s_dadda_pg_rca8_fa16_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa16_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_6_3 = 0; - uint8_t h_s_dadda_pg_rca8_and_5_4 = 0; - uint8_t h_s_dadda_pg_rca8_and_4_5 = 0; - uint8_t h_s_dadda_pg_rca8_fa17_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa17_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_3_6 = 0; - uint8_t h_s_dadda_pg_rca8_nand_2_7 = 0; - uint8_t h_s_dadda_pg_rca8_fa18_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa18_or0 = 0; - uint8_t h_s_dadda_pg_rca8_fa19_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa19_or0 = 0; - uint8_t h_s_dadda_pg_rca8_nand_7_3 = 0; - uint8_t h_s_dadda_pg_rca8_and_6_4 = 0; - uint8_t h_s_dadda_pg_rca8_fa20_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa20_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_5_5 = 0; - uint8_t h_s_dadda_pg_rca8_and_4_6 = 0; - uint8_t h_s_dadda_pg_rca8_nand_3_7 = 0; - uint8_t h_s_dadda_pg_rca8_fa21_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa21_or0 = 0; - uint8_t h_s_dadda_pg_rca8_fa22_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa22_or0 = 0; - uint8_t h_s_dadda_pg_rca8_nand_7_4 = 0; - uint8_t h_s_dadda_pg_rca8_and_6_5 = 0; - uint8_t h_s_dadda_pg_rca8_and_5_6 = 0; - uint8_t h_s_dadda_pg_rca8_fa23_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa23_or0 = 0; - uint8_t h_s_dadda_pg_rca8_nand_7_5 = 0; - uint8_t h_s_dadda_pg_rca8_fa24_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa24_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_2_0 = 0; - uint8_t h_s_dadda_pg_rca8_and_1_1 = 0; - uint8_t h_s_dadda_pg_rca8_ha5_xor0 = 0; - uint8_t h_s_dadda_pg_rca8_ha5_and0 = 0; - uint8_t h_s_dadda_pg_rca8_and_1_2 = 0; - uint8_t h_s_dadda_pg_rca8_and_0_3 = 0; - uint8_t h_s_dadda_pg_rca8_fa25_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa25_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_0_4 = 0; - uint8_t h_s_dadda_pg_rca8_fa26_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa26_or0 = 0; - uint8_t h_s_dadda_pg_rca8_fa27_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa27_or0 = 0; - uint8_t h_s_dadda_pg_rca8_fa28_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa28_or0 = 0; - uint8_t h_s_dadda_pg_rca8_fa29_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa29_or0 = 0; - uint8_t h_s_dadda_pg_rca8_fa30_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa30_or0 = 0; - uint8_t h_s_dadda_pg_rca8_fa31_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa31_or0 = 0; - uint8_t h_s_dadda_pg_rca8_fa32_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa32_or0 = 0; - uint8_t h_s_dadda_pg_rca8_nand_4_7 = 0; - uint8_t h_s_dadda_pg_rca8_fa33_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa33_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_6_6 = 0; - uint8_t h_s_dadda_pg_rca8_nand_5_7 = 0; - uint8_t h_s_dadda_pg_rca8_fa34_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa34_or0 = 0; - uint8_t h_s_dadda_pg_rca8_nand_7_6 = 0; - uint8_t h_s_dadda_pg_rca8_fa35_xor1 = 0; - uint8_t h_s_dadda_pg_rca8_fa35_or0 = 0; - uint8_t h_s_dadda_pg_rca8_and_0_0 = 0; - uint8_t h_s_dadda_pg_rca8_and_1_0 = 0; - uint8_t h_s_dadda_pg_rca8_and_0_2 = 0; - uint8_t h_s_dadda_pg_rca8_nand_6_7 = 0; - uint8_t h_s_dadda_pg_rca8_and_0_1 = 0; - uint8_t h_s_dadda_pg_rca8_and_7_7 = 0; - uint64_t h_s_dadda_pg_rca8_u_pg_rca14_a = 0; - uint64_t h_s_dadda_pg_rca8_u_pg_rca14_b = 0; - uint64_t h_s_dadda_pg_rca8_u_pg_rca14_out = 0; - uint8_t h_s_dadda_pg_rca8_xor0 = 0; - - h_s_dadda_pg_rca8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_pg_rca8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_pg_rca8_ha0_xor0 = (ha(((h_s_dadda_pg_rca8_and_6_0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_ha0_and0 = (ha(((h_s_dadda_pg_rca8_and_6_0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_nand_7_0 = nand_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_pg_rca8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_pg_rca8_fa0_xor1 = (fa(((h_s_dadda_pg_rca8_ha0_and0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_7_0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa0_or0 = (fa(((h_s_dadda_pg_rca8_ha0_and0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_7_0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_pg_rca8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_pg_rca8_ha1_xor0 = (ha(((h_s_dadda_pg_rca8_and_5_2 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_ha1_and0 = (ha(((h_s_dadda_pg_rca8_and_5_2 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_fa1_xor1 = (fa(((h_s_dadda_pg_rca8_ha1_and0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa0_or0 >> 0) & 0x01), (0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa1_or0 = (fa(((h_s_dadda_pg_rca8_ha1_and0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa0_or0 >> 0) & 0x01), (0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_nand_7_1 = nand_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_pg_rca8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_pg_rca8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_pg_rca8_fa2_xor1 = (fa(((h_s_dadda_pg_rca8_nand_7_1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_6_2 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_5_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa2_or0 = (fa(((h_s_dadda_pg_rca8_nand_7_1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_6_2 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_5_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_nand_7_2 = nand_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_pg_rca8_fa3_xor1 = (fa(((h_s_dadda_pg_rca8_fa2_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa1_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_7_2 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa3_or0 = (fa(((h_s_dadda_pg_rca8_fa2_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa1_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_7_2 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_pg_rca8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_pg_rca8_ha2_xor0 = (ha(((h_s_dadda_pg_rca8_and_3_0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_ha2_and0 = (ha(((h_s_dadda_pg_rca8_and_3_0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_pg_rca8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_pg_rca8_fa4_xor1 = (fa(((h_s_dadda_pg_rca8_ha2_and0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_4_0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa4_or0 = (fa(((h_s_dadda_pg_rca8_ha2_and0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_4_0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_pg_rca8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_pg_rca8_ha3_xor0 = (ha(((h_s_dadda_pg_rca8_and_2_2 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_ha3_and0 = (ha(((h_s_dadda_pg_rca8_and_2_2 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_pg_rca8_fa5_xor1 = (fa(((h_s_dadda_pg_rca8_ha3_and0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa4_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_5_0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa5_or0 = (fa(((h_s_dadda_pg_rca8_ha3_and0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa4_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_5_0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_pg_rca8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_pg_rca8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_pg_rca8_fa6_xor1 = (fa(((h_s_dadda_pg_rca8_and_4_1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_3_2 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa6_or0 = (fa(((h_s_dadda_pg_rca8_and_4_1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_3_2 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_pg_rca8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_pg_rca8_ha4_xor0 = (ha(((h_s_dadda_pg_rca8_and_1_4 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_ha4_and0 = (ha(((h_s_dadda_pg_rca8_and_1_4 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_fa7_xor1 = (fa(((h_s_dadda_pg_rca8_ha4_and0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa6_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa7_or0 = (fa(((h_s_dadda_pg_rca8_ha4_and0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa6_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_pg_rca8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_pg_rca8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_pg_rca8_fa8_xor1 = (fa(((h_s_dadda_pg_rca8_and_4_2 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_3_3 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_2_4 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa8_or0 = (fa(((h_s_dadda_pg_rca8_and_4_2 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_3_3 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_2_4 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_pg_rca8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_pg_rca8_fa9_xor1 = (fa(((h_s_dadda_pg_rca8_and_1_5 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_0_6 >> 0) & 0x01), ((h_s_dadda_pg_rca8_ha0_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa9_or0 = (fa(((h_s_dadda_pg_rca8_and_1_5 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_0_6 >> 0) & 0x01), ((h_s_dadda_pg_rca8_ha0_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_fa10_xor1 = (fa(((h_s_dadda_pg_rca8_fa9_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa8_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa10_or0 = (fa(((h_s_dadda_pg_rca8_fa9_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa8_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa7_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_pg_rca8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_pg_rca8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_pg_rca8_fa11_xor1 = (fa(((h_s_dadda_pg_rca8_and_3_4 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_2_5 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_1_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa11_or0 = (fa(((h_s_dadda_pg_rca8_and_3_4 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_2_5 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_1_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_nand_0_7 = nand_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_pg_rca8_fa12_xor1 = (fa(((h_s_dadda_pg_rca8_nand_0_7 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa0_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_ha1_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa12_or0 = (fa(((h_s_dadda_pg_rca8_nand_0_7 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa0_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_ha1_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_fa13_xor1 = (fa(((h_s_dadda_pg_rca8_fa12_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa11_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa10_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa13_or0 = (fa(((h_s_dadda_pg_rca8_fa12_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa11_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa10_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_pg_rca8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_pg_rca8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_pg_rca8_fa14_xor1 = (fa(((h_s_dadda_pg_rca8_and_4_4 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_3_5 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_2_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa14_or0 = (fa(((h_s_dadda_pg_rca8_and_4_4 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_3_5 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_2_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_nand_1_7 = nand_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_pg_rca8_fa15_xor1 = (fa(((h_s_dadda_pg_rca8_nand_1_7 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa1_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa2_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa15_or0 = (fa(((h_s_dadda_pg_rca8_nand_1_7 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa1_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa2_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_fa16_xor1 = (fa(((h_s_dadda_pg_rca8_fa15_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa14_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa13_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa16_or0 = (fa(((h_s_dadda_pg_rca8_fa15_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa14_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa13_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_pg_rca8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_pg_rca8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_pg_rca8_fa17_xor1 = (fa(((h_s_dadda_pg_rca8_and_6_3 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_5_4 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa17_or0 = (fa(((h_s_dadda_pg_rca8_and_6_3 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_5_4 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_pg_rca8_nand_2_7 = nand_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_pg_rca8_fa18_xor1 = (fa(((h_s_dadda_pg_rca8_and_3_6 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_2_7 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa18_or0 = (fa(((h_s_dadda_pg_rca8_and_3_6 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_2_7 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_fa19_xor1 = (fa(((h_s_dadda_pg_rca8_fa18_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa17_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa16_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa19_or0 = (fa(((h_s_dadda_pg_rca8_fa18_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa17_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa16_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_nand_7_3 = nand_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_pg_rca8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_pg_rca8_fa20_xor1 = (fa(((h_s_dadda_pg_rca8_fa3_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_7_3 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa20_or0 = (fa(((h_s_dadda_pg_rca8_fa3_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_7_3 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_pg_rca8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_pg_rca8_nand_3_7 = nand_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_pg_rca8_fa21_xor1 = (fa(((h_s_dadda_pg_rca8_and_5_5 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_4_6 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_3_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa21_or0 = (fa(((h_s_dadda_pg_rca8_and_5_5 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_4_6 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_3_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_fa22_xor1 = (fa(((h_s_dadda_pg_rca8_fa21_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa20_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa19_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa22_or0 = (fa(((h_s_dadda_pg_rca8_fa21_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa20_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa19_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_nand_7_4 = nand_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_pg_rca8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_pg_rca8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_pg_rca8_fa23_xor1 = (fa(((h_s_dadda_pg_rca8_nand_7_4 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_6_5 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_5_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa23_or0 = (fa(((h_s_dadda_pg_rca8_nand_7_4 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_6_5 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_5_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_nand_7_5 = nand_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_pg_rca8_fa24_xor1 = (fa(((h_s_dadda_pg_rca8_fa23_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa22_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_7_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa24_or0 = (fa(((h_s_dadda_pg_rca8_fa23_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa22_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_7_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_pg_rca8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_pg_rca8_ha5_xor0 = (ha(((h_s_dadda_pg_rca8_and_2_0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_ha5_and0 = (ha(((h_s_dadda_pg_rca8_and_2_0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_pg_rca8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_pg_rca8_fa25_xor1 = (fa(((h_s_dadda_pg_rca8_ha5_and0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_1_2 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa25_or0 = (fa(((h_s_dadda_pg_rca8_ha5_and0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_1_2 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_pg_rca8_fa26_xor1 = (fa(((h_s_dadda_pg_rca8_fa25_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_0_4 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa4_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa26_or0 = (fa(((h_s_dadda_pg_rca8_fa25_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_0_4 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa4_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_fa27_xor1 = (fa(((h_s_dadda_pg_rca8_fa26_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa5_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa6_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa27_or0 = (fa(((h_s_dadda_pg_rca8_fa26_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa5_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa6_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_fa28_xor1 = (fa(((h_s_dadda_pg_rca8_fa27_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa7_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa8_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa28_or0 = (fa(((h_s_dadda_pg_rca8_fa27_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa7_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa8_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_fa29_xor1 = (fa(((h_s_dadda_pg_rca8_fa28_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa10_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa11_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa29_or0 = (fa(((h_s_dadda_pg_rca8_fa28_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa10_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa11_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_fa30_xor1 = (fa(((h_s_dadda_pg_rca8_fa29_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa13_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa14_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa30_or0 = (fa(((h_s_dadda_pg_rca8_fa29_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa13_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa14_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_fa31_xor1 = (fa(((h_s_dadda_pg_rca8_fa30_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa16_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa17_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa31_or0 = (fa(((h_s_dadda_pg_rca8_fa30_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa16_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa17_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_fa32_xor1 = (fa(((h_s_dadda_pg_rca8_fa31_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa19_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa20_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa32_or0 = (fa(((h_s_dadda_pg_rca8_fa31_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa19_xor1 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa20_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_nand_4_7 = nand_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_pg_rca8_fa33_xor1 = (fa(((h_s_dadda_pg_rca8_fa32_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_4_7 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa22_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa33_or0 = (fa(((h_s_dadda_pg_rca8_fa32_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_4_7 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa22_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_pg_rca8_nand_5_7 = nand_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_pg_rca8_fa34_xor1 = (fa(((h_s_dadda_pg_rca8_fa33_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_6_6 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa34_or0 = (fa(((h_s_dadda_pg_rca8_fa33_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_and_6_6 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_nand_7_6 = nand_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_pg_rca8_fa35_xor1 = (fa(((h_s_dadda_pg_rca8_fa34_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa24_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_pg_rca8_fa35_or0 = (fa(((h_s_dadda_pg_rca8_fa34_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_fa24_or0 >> 0) & 0x01), ((h_s_dadda_pg_rca8_nand_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_pg_rca8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_pg_rca8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_pg_rca8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_pg_rca8_nand_6_7 = nand_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_pg_rca8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_pg_rca8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_pg_rca8_u_pg_rca14_a |= ((h_s_dadda_pg_rca8_and_1_0 >> 0) & 0x01) << 0; - h_s_dadda_pg_rca8_u_pg_rca14_a |= ((h_s_dadda_pg_rca8_and_0_2 >> 0) & 0x01) << 1; - h_s_dadda_pg_rca8_u_pg_rca14_a |= ((h_s_dadda_pg_rca8_ha2_xor0 >> 0) & 0x01) << 2; - h_s_dadda_pg_rca8_u_pg_rca14_a |= ((h_s_dadda_pg_rca8_ha3_xor0 >> 0) & 0x01) << 3; - h_s_dadda_pg_rca8_u_pg_rca14_a |= ((h_s_dadda_pg_rca8_ha4_xor0 >> 0) & 0x01) << 4; - h_s_dadda_pg_rca8_u_pg_rca14_a |= ((h_s_dadda_pg_rca8_fa9_xor1 >> 0) & 0x01) << 5; - h_s_dadda_pg_rca8_u_pg_rca14_a |= ((h_s_dadda_pg_rca8_fa12_xor1 >> 0) & 0x01) << 6; - h_s_dadda_pg_rca8_u_pg_rca14_a |= ((h_s_dadda_pg_rca8_fa15_xor1 >> 0) & 0x01) << 7; - h_s_dadda_pg_rca8_u_pg_rca14_a |= ((h_s_dadda_pg_rca8_fa18_xor1 >> 0) & 0x01) << 8; - h_s_dadda_pg_rca8_u_pg_rca14_a |= ((h_s_dadda_pg_rca8_fa21_xor1 >> 0) & 0x01) << 9; - h_s_dadda_pg_rca8_u_pg_rca14_a |= ((h_s_dadda_pg_rca8_fa23_xor1 >> 0) & 0x01) << 10; - h_s_dadda_pg_rca8_u_pg_rca14_a |= ((h_s_dadda_pg_rca8_fa24_xor1 >> 0) & 0x01) << 11; - h_s_dadda_pg_rca8_u_pg_rca14_a |= ((h_s_dadda_pg_rca8_nand_6_7 >> 0) & 0x01) << 12; - h_s_dadda_pg_rca8_u_pg_rca14_a |= ((h_s_dadda_pg_rca8_fa35_or0 >> 0) & 0x01) << 13; - h_s_dadda_pg_rca8_u_pg_rca14_b |= ((h_s_dadda_pg_rca8_and_0_1 >> 0) & 0x01) << 0; - h_s_dadda_pg_rca8_u_pg_rca14_b |= ((h_s_dadda_pg_rca8_ha5_xor0 >> 0) & 0x01) << 1; - h_s_dadda_pg_rca8_u_pg_rca14_b |= ((h_s_dadda_pg_rca8_fa25_xor1 >> 0) & 0x01) << 2; - h_s_dadda_pg_rca8_u_pg_rca14_b |= ((h_s_dadda_pg_rca8_fa26_xor1 >> 0) & 0x01) << 3; - h_s_dadda_pg_rca8_u_pg_rca14_b |= ((h_s_dadda_pg_rca8_fa27_xor1 >> 0) & 0x01) << 4; - h_s_dadda_pg_rca8_u_pg_rca14_b |= ((h_s_dadda_pg_rca8_fa28_xor1 >> 0) & 0x01) << 5; - h_s_dadda_pg_rca8_u_pg_rca14_b |= ((h_s_dadda_pg_rca8_fa29_xor1 >> 0) & 0x01) << 6; - h_s_dadda_pg_rca8_u_pg_rca14_b |= ((h_s_dadda_pg_rca8_fa30_xor1 >> 0) & 0x01) << 7; - h_s_dadda_pg_rca8_u_pg_rca14_b |= ((h_s_dadda_pg_rca8_fa31_xor1 >> 0) & 0x01) << 8; - h_s_dadda_pg_rca8_u_pg_rca14_b |= ((h_s_dadda_pg_rca8_fa32_xor1 >> 0) & 0x01) << 9; - h_s_dadda_pg_rca8_u_pg_rca14_b |= ((h_s_dadda_pg_rca8_fa33_xor1 >> 0) & 0x01) << 10; - h_s_dadda_pg_rca8_u_pg_rca14_b |= ((h_s_dadda_pg_rca8_fa34_xor1 >> 0) & 0x01) << 11; - h_s_dadda_pg_rca8_u_pg_rca14_b |= ((h_s_dadda_pg_rca8_fa35_xor1 >> 0) & 0x01) << 12; - h_s_dadda_pg_rca8_u_pg_rca14_b |= ((h_s_dadda_pg_rca8_and_7_7 >> 0) & 0x01) << 13; - h_s_dadda_pg_rca8_u_pg_rca14_out = u_pg_rca14(h_s_dadda_pg_rca8_u_pg_rca14_a, h_s_dadda_pg_rca8_u_pg_rca14_b); - h_s_dadda_pg_rca8_xor0 = not_gate(((h_s_dadda_pg_rca8_u_pg_rca14_out >> 14) & 0x01)); - - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_and_0_0 >> 0) & 0x01) << 0; - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_u_pg_rca14_out >> 0) & 0x01) << 1; - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_u_pg_rca14_out >> 1) & 0x01) << 2; - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_u_pg_rca14_out >> 2) & 0x01) << 3; - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_u_pg_rca14_out >> 3) & 0x01) << 4; - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_u_pg_rca14_out >> 4) & 0x01) << 5; - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_u_pg_rca14_out >> 5) & 0x01) << 6; - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_u_pg_rca14_out >> 6) & 0x01) << 7; - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_u_pg_rca14_out >> 7) & 0x01) << 8; - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_u_pg_rca14_out >> 8) & 0x01) << 9; - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_u_pg_rca14_out >> 9) & 0x01) << 10; - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_u_pg_rca14_out >> 10) & 0x01) << 11; - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_u_pg_rca14_out >> 11) & 0x01) << 12; - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_u_pg_rca14_out >> 12) & 0x01) << 13; - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_u_pg_rca14_out >> 13) & 0x01) << 14; - h_s_dadda_pg_rca8_out |= ((h_s_dadda_pg_rca8_xor0 >> 0) & 0x01) << 15; - return h_s_dadda_pg_rca8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)h_s_dadda_pg_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_rca4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_rca4.c deleted file mode 100644 index 989ef83..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_rca4.c +++ /dev/null @@ -1,199 +0,0 @@ -#include -#include - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint64_t u_rca6(uint64_t a, uint64_t b){ - uint8_t u_rca6_out = 0; - uint8_t u_rca6_ha_xor0 = 0; - uint8_t u_rca6_ha_and0 = 0; - uint8_t u_rca6_fa1_xor1 = 0; - uint8_t u_rca6_fa1_or0 = 0; - uint8_t u_rca6_fa2_xor1 = 0; - uint8_t u_rca6_fa2_or0 = 0; - uint8_t u_rca6_fa3_xor1 = 0; - uint8_t u_rca6_fa3_or0 = 0; - uint8_t u_rca6_fa4_xor1 = 0; - uint8_t u_rca6_fa4_or0 = 0; - uint8_t u_rca6_fa5_xor1 = 0; - uint8_t u_rca6_fa5_or0 = 0; - - u_rca6_ha_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_ha_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa1_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca6_ha_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa1_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca6_ha_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa2_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca6_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa2_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca6_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa3_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca6_fa2_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa3_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca6_fa2_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa4_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca6_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa4_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca6_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa5_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca6_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa5_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca6_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - - u_rca6_out |= ((u_rca6_ha_xor0 >> 0) & 0x01) << 0; - u_rca6_out |= ((u_rca6_fa1_xor1 >> 0) & 0x01) << 1; - u_rca6_out |= ((u_rca6_fa2_xor1 >> 0) & 0x01) << 2; - u_rca6_out |= ((u_rca6_fa3_xor1 >> 0) & 0x01) << 3; - u_rca6_out |= ((u_rca6_fa4_xor1 >> 0) & 0x01) << 4; - u_rca6_out |= ((u_rca6_fa5_xor1 >> 0) & 0x01) << 5; - u_rca6_out |= ((u_rca6_fa5_or0 >> 0) & 0x01) << 6; - return u_rca6_out; -} - -uint64_t h_s_dadda_rca4(uint64_t a, uint64_t b){ - uint8_t h_s_dadda_rca4_out = 0; - uint8_t h_s_dadda_rca4_nand_3_0 = 0; - uint8_t h_s_dadda_rca4_and_2_1 = 0; - uint8_t h_s_dadda_rca4_ha0_xor0 = 0; - uint8_t h_s_dadda_rca4_ha0_and0 = 0; - uint8_t h_s_dadda_rca4_nand_3_1 = 0; - uint8_t h_s_dadda_rca4_fa0_xor1 = 0; - uint8_t h_s_dadda_rca4_fa0_or0 = 0; - uint8_t h_s_dadda_rca4_and_2_0 = 0; - uint8_t h_s_dadda_rca4_and_1_1 = 0; - uint8_t h_s_dadda_rca4_ha1_xor0 = 0; - uint8_t h_s_dadda_rca4_ha1_and0 = 0; - uint8_t h_s_dadda_rca4_and_1_2 = 0; - uint8_t h_s_dadda_rca4_nand_0_3 = 0; - uint8_t h_s_dadda_rca4_fa1_xor1 = 0; - uint8_t h_s_dadda_rca4_fa1_or0 = 0; - uint8_t h_s_dadda_rca4_and_2_2 = 0; - uint8_t h_s_dadda_rca4_nand_1_3 = 0; - uint8_t h_s_dadda_rca4_fa2_xor1 = 0; - uint8_t h_s_dadda_rca4_fa2_or0 = 0; - uint8_t h_s_dadda_rca4_nand_3_2 = 0; - uint8_t h_s_dadda_rca4_fa3_xor1 = 0; - uint8_t h_s_dadda_rca4_fa3_or0 = 0; - uint8_t h_s_dadda_rca4_and_0_0 = 0; - uint8_t h_s_dadda_rca4_and_1_0 = 0; - uint8_t h_s_dadda_rca4_and_0_2 = 0; - uint8_t h_s_dadda_rca4_nand_2_3 = 0; - uint8_t h_s_dadda_rca4_and_0_1 = 0; - uint8_t h_s_dadda_rca4_and_3_3 = 0; - uint64_t h_s_dadda_rca4_u_rca6_a = 0; - uint64_t h_s_dadda_rca4_u_rca6_b = 0; - uint64_t h_s_dadda_rca4_u_rca6_out = 0; - uint8_t h_s_dadda_rca4_xor0 = 0; - - h_s_dadda_rca4_nand_3_0 = nand_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_rca4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_rca4_ha0_xor0 = (ha(((h_s_dadda_rca4_nand_3_0 >> 0) & 0x01), ((h_s_dadda_rca4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca4_ha0_and0 = (ha(((h_s_dadda_rca4_nand_3_0 >> 0) & 0x01), ((h_s_dadda_rca4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca4_nand_3_1 = nand_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_rca4_fa0_xor1 = (fa(((h_s_dadda_rca4_ha0_and0 >> 0) & 0x01), (0x01), ((h_s_dadda_rca4_nand_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca4_fa0_or0 = (fa(((h_s_dadda_rca4_ha0_and0 >> 0) & 0x01), (0x01), ((h_s_dadda_rca4_nand_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_rca4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_rca4_ha1_xor0 = (ha(((h_s_dadda_rca4_and_2_0 >> 0) & 0x01), ((h_s_dadda_rca4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca4_ha1_and0 = (ha(((h_s_dadda_rca4_and_2_0 >> 0) & 0x01), ((h_s_dadda_rca4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_rca4_nand_0_3 = nand_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_rca4_fa1_xor1 = (fa(((h_s_dadda_rca4_ha1_and0 >> 0) & 0x01), ((h_s_dadda_rca4_and_1_2 >> 0) & 0x01), ((h_s_dadda_rca4_nand_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca4_fa1_or0 = (fa(((h_s_dadda_rca4_ha1_and0 >> 0) & 0x01), ((h_s_dadda_rca4_and_1_2 >> 0) & 0x01), ((h_s_dadda_rca4_nand_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_rca4_nand_1_3 = nand_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_rca4_fa2_xor1 = (fa(((h_s_dadda_rca4_fa1_or0 >> 0) & 0x01), ((h_s_dadda_rca4_and_2_2 >> 0) & 0x01), ((h_s_dadda_rca4_nand_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca4_fa2_or0 = (fa(((h_s_dadda_rca4_fa1_or0 >> 0) & 0x01), ((h_s_dadda_rca4_and_2_2 >> 0) & 0x01), ((h_s_dadda_rca4_nand_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca4_nand_3_2 = nand_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_rca4_fa3_xor1 = (fa(((h_s_dadda_rca4_fa2_or0 >> 0) & 0x01), ((h_s_dadda_rca4_fa0_or0 >> 0) & 0x01), ((h_s_dadda_rca4_nand_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca4_fa3_or0 = (fa(((h_s_dadda_rca4_fa2_or0 >> 0) & 0x01), ((h_s_dadda_rca4_fa0_or0 >> 0) & 0x01), ((h_s_dadda_rca4_nand_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_rca4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_rca4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_rca4_nand_2_3 = nand_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_rca4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_rca4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_rca4_u_rca6_a |= ((h_s_dadda_rca4_and_1_0 >> 0) & 0x01) << 0; - h_s_dadda_rca4_u_rca6_a |= ((h_s_dadda_rca4_and_0_2 >> 0) & 0x01) << 1; - h_s_dadda_rca4_u_rca6_a |= ((h_s_dadda_rca4_ha0_xor0 >> 0) & 0x01) << 2; - h_s_dadda_rca4_u_rca6_a |= ((h_s_dadda_rca4_fa0_xor1 >> 0) & 0x01) << 3; - h_s_dadda_rca4_u_rca6_a |= ((h_s_dadda_rca4_nand_2_3 >> 0) & 0x01) << 4; - h_s_dadda_rca4_u_rca6_a |= ((h_s_dadda_rca4_fa3_or0 >> 0) & 0x01) << 5; - h_s_dadda_rca4_u_rca6_b |= ((h_s_dadda_rca4_and_0_1 >> 0) & 0x01) << 0; - h_s_dadda_rca4_u_rca6_b |= ((h_s_dadda_rca4_ha1_xor0 >> 0) & 0x01) << 1; - h_s_dadda_rca4_u_rca6_b |= ((h_s_dadda_rca4_fa1_xor1 >> 0) & 0x01) << 2; - h_s_dadda_rca4_u_rca6_b |= ((h_s_dadda_rca4_fa2_xor1 >> 0) & 0x01) << 3; - h_s_dadda_rca4_u_rca6_b |= ((h_s_dadda_rca4_fa3_xor1 >> 0) & 0x01) << 4; - h_s_dadda_rca4_u_rca6_b |= ((h_s_dadda_rca4_and_3_3 >> 0) & 0x01) << 5; - h_s_dadda_rca4_u_rca6_out = u_rca6(h_s_dadda_rca4_u_rca6_a, h_s_dadda_rca4_u_rca6_b); - h_s_dadda_rca4_xor0 = not_gate(((h_s_dadda_rca4_u_rca6_out >> 6) & 0x01)); - - h_s_dadda_rca4_out |= ((h_s_dadda_rca4_and_0_0 >> 0) & 0x01) << 0; - h_s_dadda_rca4_out |= ((h_s_dadda_rca4_u_rca6_out >> 0) & 0x01) << 1; - h_s_dadda_rca4_out |= ((h_s_dadda_rca4_u_rca6_out >> 1) & 0x01) << 2; - h_s_dadda_rca4_out |= ((h_s_dadda_rca4_u_rca6_out >> 2) & 0x01) << 3; - h_s_dadda_rca4_out |= ((h_s_dadda_rca4_u_rca6_out >> 3) & 0x01) << 4; - h_s_dadda_rca4_out |= ((h_s_dadda_rca4_u_rca6_out >> 4) & 0x01) << 5; - h_s_dadda_rca4_out |= ((h_s_dadda_rca4_u_rca6_out >> 5) & 0x01) << 6; - h_s_dadda_rca4_out |= ((h_s_dadda_rca4_xor0 >> 0) & 0x01) << 7; - return h_s_dadda_rca4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)h_s_dadda_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_rca8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_rca8.c deleted file mode 100644 index c1f5610..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_dadda_rca8.c +++ /dev/null @@ -1,503 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint64_t u_rca14(uint64_t a, uint64_t b){ - uint64_t u_rca14_out = 0; - uint8_t u_rca14_ha_xor0 = 0; - uint8_t u_rca14_ha_and0 = 0; - uint8_t u_rca14_fa1_xor1 = 0; - uint8_t u_rca14_fa1_or0 = 0; - uint8_t u_rca14_fa2_xor1 = 0; - uint8_t u_rca14_fa2_or0 = 0; - uint8_t u_rca14_fa3_xor1 = 0; - uint8_t u_rca14_fa3_or0 = 0; - uint8_t u_rca14_fa4_xor1 = 0; - uint8_t u_rca14_fa4_or0 = 0; - uint8_t u_rca14_fa5_xor1 = 0; - uint8_t u_rca14_fa5_or0 = 0; - uint8_t u_rca14_fa6_xor1 = 0; - uint8_t u_rca14_fa6_or0 = 0; - uint8_t u_rca14_fa7_xor1 = 0; - uint8_t u_rca14_fa7_or0 = 0; - uint8_t u_rca14_fa8_xor1 = 0; - uint8_t u_rca14_fa8_or0 = 0; - uint8_t u_rca14_fa9_xor1 = 0; - uint8_t u_rca14_fa9_or0 = 0; - uint8_t u_rca14_fa10_xor1 = 0; - uint8_t u_rca14_fa10_or0 = 0; - uint8_t u_rca14_fa11_xor1 = 0; - uint8_t u_rca14_fa11_or0 = 0; - uint8_t u_rca14_fa12_xor1 = 0; - uint8_t u_rca14_fa12_or0 = 0; - uint8_t u_rca14_fa13_xor1 = 0; - uint8_t u_rca14_fa13_or0 = 0; - - u_rca14_ha_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_ha_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa1_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca14_ha_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa1_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca14_ha_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa2_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca14_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa2_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca14_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa3_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca14_fa2_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa3_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca14_fa2_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa4_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca14_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa4_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca14_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa5_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca14_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa5_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca14_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa6_xor1 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_rca14_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa6_or0 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_rca14_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa7_xor1 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_rca14_fa6_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa7_or0 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_rca14_fa6_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa8_xor1 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_rca14_fa7_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa8_or0 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_rca14_fa7_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa9_xor1 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_rca14_fa8_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa9_or0 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_rca14_fa8_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa10_xor1 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_rca14_fa9_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa10_or0 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_rca14_fa9_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa11_xor1 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_rca14_fa10_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa11_or0 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_rca14_fa10_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa12_xor1 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_rca14_fa11_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa12_or0 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_rca14_fa11_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa13_xor1 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_rca14_fa12_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa13_or0 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_rca14_fa12_or0 >> 0) & 0x01)) >> 1) & 0x01; - - u_rca14_out |= ((u_rca14_ha_xor0 >> 0) & 0x01) << 0; - u_rca14_out |= ((u_rca14_fa1_xor1 >> 0) & 0x01) << 1; - u_rca14_out |= ((u_rca14_fa2_xor1 >> 0) & 0x01) << 2; - u_rca14_out |= ((u_rca14_fa3_xor1 >> 0) & 0x01) << 3; - u_rca14_out |= ((u_rca14_fa4_xor1 >> 0) & 0x01) << 4; - u_rca14_out |= ((u_rca14_fa5_xor1 >> 0) & 0x01) << 5; - u_rca14_out |= ((u_rca14_fa6_xor1 >> 0) & 0x01) << 6; - u_rca14_out |= ((u_rca14_fa7_xor1 >> 0) & 0x01) << 7; - u_rca14_out |= ((u_rca14_fa8_xor1 >> 0) & 0x01) << 8; - u_rca14_out |= ((u_rca14_fa9_xor1 >> 0) & 0x01) << 9; - u_rca14_out |= ((u_rca14_fa10_xor1 >> 0) & 0x01) << 10; - u_rca14_out |= ((u_rca14_fa11_xor1 >> 0) & 0x01) << 11; - u_rca14_out |= ((u_rca14_fa12_xor1 >> 0) & 0x01) << 12; - u_rca14_out |= ((u_rca14_fa13_xor1 >> 0) & 0x01) << 13; - u_rca14_out |= ((u_rca14_fa13_or0 >> 0) & 0x01) << 14; - return u_rca14_out; -} - -uint64_t h_s_dadda_rca8(uint64_t a, uint64_t b){ - uint64_t h_s_dadda_rca8_out = 0; - uint8_t h_s_dadda_rca8_and_6_0 = 0; - uint8_t h_s_dadda_rca8_and_5_1 = 0; - uint8_t h_s_dadda_rca8_ha0_xor0 = 0; - uint8_t h_s_dadda_rca8_ha0_and0 = 0; - uint8_t h_s_dadda_rca8_nand_7_0 = 0; - uint8_t h_s_dadda_rca8_and_6_1 = 0; - uint8_t h_s_dadda_rca8_fa0_xor1 = 0; - uint8_t h_s_dadda_rca8_fa0_or0 = 0; - uint8_t h_s_dadda_rca8_and_5_2 = 0; - uint8_t h_s_dadda_rca8_and_4_3 = 0; - uint8_t h_s_dadda_rca8_ha1_xor0 = 0; - uint8_t h_s_dadda_rca8_ha1_and0 = 0; - uint8_t h_s_dadda_rca8_fa1_xor1 = 0; - uint8_t h_s_dadda_rca8_fa1_or0 = 0; - uint8_t h_s_dadda_rca8_nand_7_1 = 0; - uint8_t h_s_dadda_rca8_and_6_2 = 0; - uint8_t h_s_dadda_rca8_and_5_3 = 0; - uint8_t h_s_dadda_rca8_fa2_xor1 = 0; - uint8_t h_s_dadda_rca8_fa2_or0 = 0; - uint8_t h_s_dadda_rca8_nand_7_2 = 0; - uint8_t h_s_dadda_rca8_fa3_xor1 = 0; - uint8_t h_s_dadda_rca8_fa3_or0 = 0; - uint8_t h_s_dadda_rca8_and_3_0 = 0; - uint8_t h_s_dadda_rca8_and_2_1 = 0; - uint8_t h_s_dadda_rca8_ha2_xor0 = 0; - uint8_t h_s_dadda_rca8_ha2_and0 = 0; - uint8_t h_s_dadda_rca8_and_4_0 = 0; - uint8_t h_s_dadda_rca8_and_3_1 = 0; - uint8_t h_s_dadda_rca8_fa4_xor1 = 0; - uint8_t h_s_dadda_rca8_fa4_or0 = 0; - uint8_t h_s_dadda_rca8_and_2_2 = 0; - uint8_t h_s_dadda_rca8_and_1_3 = 0; - uint8_t h_s_dadda_rca8_ha3_xor0 = 0; - uint8_t h_s_dadda_rca8_ha3_and0 = 0; - uint8_t h_s_dadda_rca8_and_5_0 = 0; - uint8_t h_s_dadda_rca8_fa5_xor1 = 0; - uint8_t h_s_dadda_rca8_fa5_or0 = 0; - uint8_t h_s_dadda_rca8_and_4_1 = 0; - uint8_t h_s_dadda_rca8_and_3_2 = 0; - uint8_t h_s_dadda_rca8_and_2_3 = 0; - uint8_t h_s_dadda_rca8_fa6_xor1 = 0; - uint8_t h_s_dadda_rca8_fa6_or0 = 0; - uint8_t h_s_dadda_rca8_and_1_4 = 0; - uint8_t h_s_dadda_rca8_and_0_5 = 0; - uint8_t h_s_dadda_rca8_ha4_xor0 = 0; - uint8_t h_s_dadda_rca8_ha4_and0 = 0; - uint8_t h_s_dadda_rca8_fa7_xor1 = 0; - uint8_t h_s_dadda_rca8_fa7_or0 = 0; - uint8_t h_s_dadda_rca8_and_4_2 = 0; - uint8_t h_s_dadda_rca8_and_3_3 = 0; - uint8_t h_s_dadda_rca8_and_2_4 = 0; - uint8_t h_s_dadda_rca8_fa8_xor1 = 0; - uint8_t h_s_dadda_rca8_fa8_or0 = 0; - uint8_t h_s_dadda_rca8_and_1_5 = 0; - uint8_t h_s_dadda_rca8_and_0_6 = 0; - uint8_t h_s_dadda_rca8_fa9_xor1 = 0; - uint8_t h_s_dadda_rca8_fa9_or0 = 0; - uint8_t h_s_dadda_rca8_fa10_xor1 = 0; - uint8_t h_s_dadda_rca8_fa10_or0 = 0; - uint8_t h_s_dadda_rca8_and_3_4 = 0; - uint8_t h_s_dadda_rca8_and_2_5 = 0; - uint8_t h_s_dadda_rca8_and_1_6 = 0; - uint8_t h_s_dadda_rca8_fa11_xor1 = 0; - uint8_t h_s_dadda_rca8_fa11_or0 = 0; - uint8_t h_s_dadda_rca8_nand_0_7 = 0; - uint8_t h_s_dadda_rca8_fa12_xor1 = 0; - uint8_t h_s_dadda_rca8_fa12_or0 = 0; - uint8_t h_s_dadda_rca8_fa13_xor1 = 0; - uint8_t h_s_dadda_rca8_fa13_or0 = 0; - uint8_t h_s_dadda_rca8_and_4_4 = 0; - uint8_t h_s_dadda_rca8_and_3_5 = 0; - uint8_t h_s_dadda_rca8_and_2_6 = 0; - uint8_t h_s_dadda_rca8_fa14_xor1 = 0; - uint8_t h_s_dadda_rca8_fa14_or0 = 0; - uint8_t h_s_dadda_rca8_nand_1_7 = 0; - uint8_t h_s_dadda_rca8_fa15_xor1 = 0; - uint8_t h_s_dadda_rca8_fa15_or0 = 0; - uint8_t h_s_dadda_rca8_fa16_xor1 = 0; - uint8_t h_s_dadda_rca8_fa16_or0 = 0; - uint8_t h_s_dadda_rca8_and_6_3 = 0; - uint8_t h_s_dadda_rca8_and_5_4 = 0; - uint8_t h_s_dadda_rca8_and_4_5 = 0; - uint8_t h_s_dadda_rca8_fa17_xor1 = 0; - uint8_t h_s_dadda_rca8_fa17_or0 = 0; - uint8_t h_s_dadda_rca8_and_3_6 = 0; - uint8_t h_s_dadda_rca8_nand_2_7 = 0; - uint8_t h_s_dadda_rca8_fa18_xor1 = 0; - uint8_t h_s_dadda_rca8_fa18_or0 = 0; - uint8_t h_s_dadda_rca8_fa19_xor1 = 0; - uint8_t h_s_dadda_rca8_fa19_or0 = 0; - uint8_t h_s_dadda_rca8_nand_7_3 = 0; - uint8_t h_s_dadda_rca8_and_6_4 = 0; - uint8_t h_s_dadda_rca8_fa20_xor1 = 0; - uint8_t h_s_dadda_rca8_fa20_or0 = 0; - uint8_t h_s_dadda_rca8_and_5_5 = 0; - uint8_t h_s_dadda_rca8_and_4_6 = 0; - uint8_t h_s_dadda_rca8_nand_3_7 = 0; - uint8_t h_s_dadda_rca8_fa21_xor1 = 0; - uint8_t h_s_dadda_rca8_fa21_or0 = 0; - uint8_t h_s_dadda_rca8_fa22_xor1 = 0; - uint8_t h_s_dadda_rca8_fa22_or0 = 0; - uint8_t h_s_dadda_rca8_nand_7_4 = 0; - uint8_t h_s_dadda_rca8_and_6_5 = 0; - uint8_t h_s_dadda_rca8_and_5_6 = 0; - uint8_t h_s_dadda_rca8_fa23_xor1 = 0; - uint8_t h_s_dadda_rca8_fa23_or0 = 0; - uint8_t h_s_dadda_rca8_nand_7_5 = 0; - uint8_t h_s_dadda_rca8_fa24_xor1 = 0; - uint8_t h_s_dadda_rca8_fa24_or0 = 0; - uint8_t h_s_dadda_rca8_and_2_0 = 0; - uint8_t h_s_dadda_rca8_and_1_1 = 0; - uint8_t h_s_dadda_rca8_ha5_xor0 = 0; - uint8_t h_s_dadda_rca8_ha5_and0 = 0; - uint8_t h_s_dadda_rca8_and_1_2 = 0; - uint8_t h_s_dadda_rca8_and_0_3 = 0; - uint8_t h_s_dadda_rca8_fa25_xor1 = 0; - uint8_t h_s_dadda_rca8_fa25_or0 = 0; - uint8_t h_s_dadda_rca8_and_0_4 = 0; - uint8_t h_s_dadda_rca8_fa26_xor1 = 0; - uint8_t h_s_dadda_rca8_fa26_or0 = 0; - uint8_t h_s_dadda_rca8_fa27_xor1 = 0; - uint8_t h_s_dadda_rca8_fa27_or0 = 0; - uint8_t h_s_dadda_rca8_fa28_xor1 = 0; - uint8_t h_s_dadda_rca8_fa28_or0 = 0; - uint8_t h_s_dadda_rca8_fa29_xor1 = 0; - uint8_t h_s_dadda_rca8_fa29_or0 = 0; - uint8_t h_s_dadda_rca8_fa30_xor1 = 0; - uint8_t h_s_dadda_rca8_fa30_or0 = 0; - uint8_t h_s_dadda_rca8_fa31_xor1 = 0; - uint8_t h_s_dadda_rca8_fa31_or0 = 0; - uint8_t h_s_dadda_rca8_fa32_xor1 = 0; - uint8_t h_s_dadda_rca8_fa32_or0 = 0; - uint8_t h_s_dadda_rca8_nand_4_7 = 0; - uint8_t h_s_dadda_rca8_fa33_xor1 = 0; - uint8_t h_s_dadda_rca8_fa33_or0 = 0; - uint8_t h_s_dadda_rca8_and_6_6 = 0; - uint8_t h_s_dadda_rca8_nand_5_7 = 0; - uint8_t h_s_dadda_rca8_fa34_xor1 = 0; - uint8_t h_s_dadda_rca8_fa34_or0 = 0; - uint8_t h_s_dadda_rca8_nand_7_6 = 0; - uint8_t h_s_dadda_rca8_fa35_xor1 = 0; - uint8_t h_s_dadda_rca8_fa35_or0 = 0; - uint8_t h_s_dadda_rca8_and_0_0 = 0; - uint8_t h_s_dadda_rca8_and_1_0 = 0; - uint8_t h_s_dadda_rca8_and_0_2 = 0; - uint8_t h_s_dadda_rca8_nand_6_7 = 0; - uint8_t h_s_dadda_rca8_and_0_1 = 0; - uint8_t h_s_dadda_rca8_and_7_7 = 0; - uint64_t h_s_dadda_rca8_u_rca14_a = 0; - uint64_t h_s_dadda_rca8_u_rca14_b = 0; - uint64_t h_s_dadda_rca8_u_rca14_out = 0; - uint8_t h_s_dadda_rca8_xor0 = 0; - - h_s_dadda_rca8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_rca8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_rca8_ha0_xor0 = (ha(((h_s_dadda_rca8_and_6_0 >> 0) & 0x01), ((h_s_dadda_rca8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_ha0_and0 = (ha(((h_s_dadda_rca8_and_6_0 >> 0) & 0x01), ((h_s_dadda_rca8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_nand_7_0 = nand_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_rca8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_rca8_fa0_xor1 = (fa(((h_s_dadda_rca8_ha0_and0 >> 0) & 0x01), ((h_s_dadda_rca8_nand_7_0 >> 0) & 0x01), ((h_s_dadda_rca8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa0_or0 = (fa(((h_s_dadda_rca8_ha0_and0 >> 0) & 0x01), ((h_s_dadda_rca8_nand_7_0 >> 0) & 0x01), ((h_s_dadda_rca8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_rca8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_rca8_ha1_xor0 = (ha(((h_s_dadda_rca8_and_5_2 >> 0) & 0x01), ((h_s_dadda_rca8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_ha1_and0 = (ha(((h_s_dadda_rca8_and_5_2 >> 0) & 0x01), ((h_s_dadda_rca8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_fa1_xor1 = (fa(((h_s_dadda_rca8_ha1_and0 >> 0) & 0x01), ((h_s_dadda_rca8_fa0_or0 >> 0) & 0x01), (0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa1_or0 = (fa(((h_s_dadda_rca8_ha1_and0 >> 0) & 0x01), ((h_s_dadda_rca8_fa0_or0 >> 0) & 0x01), (0x01)) >> 1) & 0x01; - h_s_dadda_rca8_nand_7_1 = nand_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_rca8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_rca8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_rca8_fa2_xor1 = (fa(((h_s_dadda_rca8_nand_7_1 >> 0) & 0x01), ((h_s_dadda_rca8_and_6_2 >> 0) & 0x01), ((h_s_dadda_rca8_and_5_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa2_or0 = (fa(((h_s_dadda_rca8_nand_7_1 >> 0) & 0x01), ((h_s_dadda_rca8_and_6_2 >> 0) & 0x01), ((h_s_dadda_rca8_and_5_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_nand_7_2 = nand_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_rca8_fa3_xor1 = (fa(((h_s_dadda_rca8_fa2_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa1_or0 >> 0) & 0x01), ((h_s_dadda_rca8_nand_7_2 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa3_or0 = (fa(((h_s_dadda_rca8_fa2_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa1_or0 >> 0) & 0x01), ((h_s_dadda_rca8_nand_7_2 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_rca8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_rca8_ha2_xor0 = (ha(((h_s_dadda_rca8_and_3_0 >> 0) & 0x01), ((h_s_dadda_rca8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_ha2_and0 = (ha(((h_s_dadda_rca8_and_3_0 >> 0) & 0x01), ((h_s_dadda_rca8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_rca8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_rca8_fa4_xor1 = (fa(((h_s_dadda_rca8_ha2_and0 >> 0) & 0x01), ((h_s_dadda_rca8_and_4_0 >> 0) & 0x01), ((h_s_dadda_rca8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa4_or0 = (fa(((h_s_dadda_rca8_ha2_and0 >> 0) & 0x01), ((h_s_dadda_rca8_and_4_0 >> 0) & 0x01), ((h_s_dadda_rca8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_rca8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_rca8_ha3_xor0 = (ha(((h_s_dadda_rca8_and_2_2 >> 0) & 0x01), ((h_s_dadda_rca8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_ha3_and0 = (ha(((h_s_dadda_rca8_and_2_2 >> 0) & 0x01), ((h_s_dadda_rca8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_rca8_fa5_xor1 = (fa(((h_s_dadda_rca8_ha3_and0 >> 0) & 0x01), ((h_s_dadda_rca8_fa4_or0 >> 0) & 0x01), ((h_s_dadda_rca8_and_5_0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa5_or0 = (fa(((h_s_dadda_rca8_ha3_and0 >> 0) & 0x01), ((h_s_dadda_rca8_fa4_or0 >> 0) & 0x01), ((h_s_dadda_rca8_and_5_0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_rca8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_rca8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_rca8_fa6_xor1 = (fa(((h_s_dadda_rca8_and_4_1 >> 0) & 0x01), ((h_s_dadda_rca8_and_3_2 >> 0) & 0x01), ((h_s_dadda_rca8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa6_or0 = (fa(((h_s_dadda_rca8_and_4_1 >> 0) & 0x01), ((h_s_dadda_rca8_and_3_2 >> 0) & 0x01), ((h_s_dadda_rca8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_rca8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_rca8_ha4_xor0 = (ha(((h_s_dadda_rca8_and_1_4 >> 0) & 0x01), ((h_s_dadda_rca8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_ha4_and0 = (ha(((h_s_dadda_rca8_and_1_4 >> 0) & 0x01), ((h_s_dadda_rca8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_fa7_xor1 = (fa(((h_s_dadda_rca8_ha4_and0 >> 0) & 0x01), ((h_s_dadda_rca8_fa6_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa7_or0 = (fa(((h_s_dadda_rca8_ha4_and0 >> 0) & 0x01), ((h_s_dadda_rca8_fa6_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_rca8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_rca8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_rca8_fa8_xor1 = (fa(((h_s_dadda_rca8_and_4_2 >> 0) & 0x01), ((h_s_dadda_rca8_and_3_3 >> 0) & 0x01), ((h_s_dadda_rca8_and_2_4 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa8_or0 = (fa(((h_s_dadda_rca8_and_4_2 >> 0) & 0x01), ((h_s_dadda_rca8_and_3_3 >> 0) & 0x01), ((h_s_dadda_rca8_and_2_4 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_rca8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_rca8_fa9_xor1 = (fa(((h_s_dadda_rca8_and_1_5 >> 0) & 0x01), ((h_s_dadda_rca8_and_0_6 >> 0) & 0x01), ((h_s_dadda_rca8_ha0_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa9_or0 = (fa(((h_s_dadda_rca8_and_1_5 >> 0) & 0x01), ((h_s_dadda_rca8_and_0_6 >> 0) & 0x01), ((h_s_dadda_rca8_ha0_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_fa10_xor1 = (fa(((h_s_dadda_rca8_fa9_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa8_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa10_or0 = (fa(((h_s_dadda_rca8_fa9_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa8_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa7_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_rca8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_rca8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_rca8_fa11_xor1 = (fa(((h_s_dadda_rca8_and_3_4 >> 0) & 0x01), ((h_s_dadda_rca8_and_2_5 >> 0) & 0x01), ((h_s_dadda_rca8_and_1_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa11_or0 = (fa(((h_s_dadda_rca8_and_3_4 >> 0) & 0x01), ((h_s_dadda_rca8_and_2_5 >> 0) & 0x01), ((h_s_dadda_rca8_and_1_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_nand_0_7 = nand_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_rca8_fa12_xor1 = (fa(((h_s_dadda_rca8_nand_0_7 >> 0) & 0x01), ((h_s_dadda_rca8_fa0_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_ha1_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa12_or0 = (fa(((h_s_dadda_rca8_nand_0_7 >> 0) & 0x01), ((h_s_dadda_rca8_fa0_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_ha1_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_fa13_xor1 = (fa(((h_s_dadda_rca8_fa12_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa11_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa10_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa13_or0 = (fa(((h_s_dadda_rca8_fa12_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa11_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa10_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_rca8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_rca8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_rca8_fa14_xor1 = (fa(((h_s_dadda_rca8_and_4_4 >> 0) & 0x01), ((h_s_dadda_rca8_and_3_5 >> 0) & 0x01), ((h_s_dadda_rca8_and_2_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa14_or0 = (fa(((h_s_dadda_rca8_and_4_4 >> 0) & 0x01), ((h_s_dadda_rca8_and_3_5 >> 0) & 0x01), ((h_s_dadda_rca8_and_2_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_nand_1_7 = nand_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_rca8_fa15_xor1 = (fa(((h_s_dadda_rca8_nand_1_7 >> 0) & 0x01), ((h_s_dadda_rca8_fa1_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_fa2_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa15_or0 = (fa(((h_s_dadda_rca8_nand_1_7 >> 0) & 0x01), ((h_s_dadda_rca8_fa1_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_fa2_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_fa16_xor1 = (fa(((h_s_dadda_rca8_fa15_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa14_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa13_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa16_or0 = (fa(((h_s_dadda_rca8_fa15_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa14_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa13_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_rca8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_rca8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_rca8_fa17_xor1 = (fa(((h_s_dadda_rca8_and_6_3 >> 0) & 0x01), ((h_s_dadda_rca8_and_5_4 >> 0) & 0x01), ((h_s_dadda_rca8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa17_or0 = (fa(((h_s_dadda_rca8_and_6_3 >> 0) & 0x01), ((h_s_dadda_rca8_and_5_4 >> 0) & 0x01), ((h_s_dadda_rca8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_rca8_nand_2_7 = nand_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_rca8_fa18_xor1 = (fa(((h_s_dadda_rca8_and_3_6 >> 0) & 0x01), ((h_s_dadda_rca8_nand_2_7 >> 0) & 0x01), ((h_s_dadda_rca8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa18_or0 = (fa(((h_s_dadda_rca8_and_3_6 >> 0) & 0x01), ((h_s_dadda_rca8_nand_2_7 >> 0) & 0x01), ((h_s_dadda_rca8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_fa19_xor1 = (fa(((h_s_dadda_rca8_fa18_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa17_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa16_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa19_or0 = (fa(((h_s_dadda_rca8_fa18_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa17_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa16_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_nand_7_3 = nand_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_rca8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_rca8_fa20_xor1 = (fa(((h_s_dadda_rca8_fa3_or0 >> 0) & 0x01), ((h_s_dadda_rca8_nand_7_3 >> 0) & 0x01), ((h_s_dadda_rca8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa20_or0 = (fa(((h_s_dadda_rca8_fa3_or0 >> 0) & 0x01), ((h_s_dadda_rca8_nand_7_3 >> 0) & 0x01), ((h_s_dadda_rca8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_rca8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_rca8_nand_3_7 = nand_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_rca8_fa21_xor1 = (fa(((h_s_dadda_rca8_and_5_5 >> 0) & 0x01), ((h_s_dadda_rca8_and_4_6 >> 0) & 0x01), ((h_s_dadda_rca8_nand_3_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa21_or0 = (fa(((h_s_dadda_rca8_and_5_5 >> 0) & 0x01), ((h_s_dadda_rca8_and_4_6 >> 0) & 0x01), ((h_s_dadda_rca8_nand_3_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_fa22_xor1 = (fa(((h_s_dadda_rca8_fa21_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa20_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa19_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa22_or0 = (fa(((h_s_dadda_rca8_fa21_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa20_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa19_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_nand_7_4 = nand_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_rca8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_rca8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_rca8_fa23_xor1 = (fa(((h_s_dadda_rca8_nand_7_4 >> 0) & 0x01), ((h_s_dadda_rca8_and_6_5 >> 0) & 0x01), ((h_s_dadda_rca8_and_5_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa23_or0 = (fa(((h_s_dadda_rca8_nand_7_4 >> 0) & 0x01), ((h_s_dadda_rca8_and_6_5 >> 0) & 0x01), ((h_s_dadda_rca8_and_5_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_nand_7_5 = nand_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_s_dadda_rca8_fa24_xor1 = (fa(((h_s_dadda_rca8_fa23_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa22_or0 >> 0) & 0x01), ((h_s_dadda_rca8_nand_7_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa24_or0 = (fa(((h_s_dadda_rca8_fa23_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa22_or0 >> 0) & 0x01), ((h_s_dadda_rca8_nand_7_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_rca8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_rca8_ha5_xor0 = (ha(((h_s_dadda_rca8_and_2_0 >> 0) & 0x01), ((h_s_dadda_rca8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_ha5_and0 = (ha(((h_s_dadda_rca8_and_2_0 >> 0) & 0x01), ((h_s_dadda_rca8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_rca8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_dadda_rca8_fa25_xor1 = (fa(((h_s_dadda_rca8_ha5_and0 >> 0) & 0x01), ((h_s_dadda_rca8_and_1_2 >> 0) & 0x01), ((h_s_dadda_rca8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa25_or0 = (fa(((h_s_dadda_rca8_ha5_and0 >> 0) & 0x01), ((h_s_dadda_rca8_and_1_2 >> 0) & 0x01), ((h_s_dadda_rca8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_s_dadda_rca8_fa26_xor1 = (fa(((h_s_dadda_rca8_fa25_or0 >> 0) & 0x01), ((h_s_dadda_rca8_and_0_4 >> 0) & 0x01), ((h_s_dadda_rca8_fa4_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa26_or0 = (fa(((h_s_dadda_rca8_fa25_or0 >> 0) & 0x01), ((h_s_dadda_rca8_and_0_4 >> 0) & 0x01), ((h_s_dadda_rca8_fa4_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_fa27_xor1 = (fa(((h_s_dadda_rca8_fa26_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa5_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_fa6_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa27_or0 = (fa(((h_s_dadda_rca8_fa26_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa5_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_fa6_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_fa28_xor1 = (fa(((h_s_dadda_rca8_fa27_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa7_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_fa8_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa28_or0 = (fa(((h_s_dadda_rca8_fa27_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa7_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_fa8_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_fa29_xor1 = (fa(((h_s_dadda_rca8_fa28_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa10_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_fa11_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa29_or0 = (fa(((h_s_dadda_rca8_fa28_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa10_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_fa11_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_fa30_xor1 = (fa(((h_s_dadda_rca8_fa29_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa13_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_fa14_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa30_or0 = (fa(((h_s_dadda_rca8_fa29_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa13_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_fa14_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_fa31_xor1 = (fa(((h_s_dadda_rca8_fa30_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa16_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_fa17_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa31_or0 = (fa(((h_s_dadda_rca8_fa30_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa16_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_fa17_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_fa32_xor1 = (fa(((h_s_dadda_rca8_fa31_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa19_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_fa20_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa32_or0 = (fa(((h_s_dadda_rca8_fa31_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa19_xor1 >> 0) & 0x01), ((h_s_dadda_rca8_fa20_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_nand_4_7 = nand_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_rca8_fa33_xor1 = (fa(((h_s_dadda_rca8_fa32_or0 >> 0) & 0x01), ((h_s_dadda_rca8_nand_4_7 >> 0) & 0x01), ((h_s_dadda_rca8_fa22_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa33_or0 = (fa(((h_s_dadda_rca8_fa32_or0 >> 0) & 0x01), ((h_s_dadda_rca8_nand_4_7 >> 0) & 0x01), ((h_s_dadda_rca8_fa22_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_rca8_nand_5_7 = nand_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_rca8_fa34_xor1 = (fa(((h_s_dadda_rca8_fa33_or0 >> 0) & 0x01), ((h_s_dadda_rca8_and_6_6 >> 0) & 0x01), ((h_s_dadda_rca8_nand_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa34_or0 = (fa(((h_s_dadda_rca8_fa33_or0 >> 0) & 0x01), ((h_s_dadda_rca8_and_6_6 >> 0) & 0x01), ((h_s_dadda_rca8_nand_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_nand_7_6 = nand_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_s_dadda_rca8_fa35_xor1 = (fa(((h_s_dadda_rca8_fa34_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa24_or0 >> 0) & 0x01), ((h_s_dadda_rca8_nand_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_dadda_rca8_fa35_or0 = (fa(((h_s_dadda_rca8_fa34_or0 >> 0) & 0x01), ((h_s_dadda_rca8_fa24_or0 >> 0) & 0x01), ((h_s_dadda_rca8_nand_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_dadda_rca8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_rca8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_dadda_rca8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_dadda_rca8_nand_6_7 = nand_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_rca8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_dadda_rca8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_s_dadda_rca8_u_rca14_a |= ((h_s_dadda_rca8_and_1_0 >> 0) & 0x01) << 0; - h_s_dadda_rca8_u_rca14_a |= ((h_s_dadda_rca8_and_0_2 >> 0) & 0x01) << 1; - h_s_dadda_rca8_u_rca14_a |= ((h_s_dadda_rca8_ha2_xor0 >> 0) & 0x01) << 2; - h_s_dadda_rca8_u_rca14_a |= ((h_s_dadda_rca8_ha3_xor0 >> 0) & 0x01) << 3; - h_s_dadda_rca8_u_rca14_a |= ((h_s_dadda_rca8_ha4_xor0 >> 0) & 0x01) << 4; - h_s_dadda_rca8_u_rca14_a |= ((h_s_dadda_rca8_fa9_xor1 >> 0) & 0x01) << 5; - h_s_dadda_rca8_u_rca14_a |= ((h_s_dadda_rca8_fa12_xor1 >> 0) & 0x01) << 6; - h_s_dadda_rca8_u_rca14_a |= ((h_s_dadda_rca8_fa15_xor1 >> 0) & 0x01) << 7; - h_s_dadda_rca8_u_rca14_a |= ((h_s_dadda_rca8_fa18_xor1 >> 0) & 0x01) << 8; - h_s_dadda_rca8_u_rca14_a |= ((h_s_dadda_rca8_fa21_xor1 >> 0) & 0x01) << 9; - h_s_dadda_rca8_u_rca14_a |= ((h_s_dadda_rca8_fa23_xor1 >> 0) & 0x01) << 10; - h_s_dadda_rca8_u_rca14_a |= ((h_s_dadda_rca8_fa24_xor1 >> 0) & 0x01) << 11; - h_s_dadda_rca8_u_rca14_a |= ((h_s_dadda_rca8_nand_6_7 >> 0) & 0x01) << 12; - h_s_dadda_rca8_u_rca14_a |= ((h_s_dadda_rca8_fa35_or0 >> 0) & 0x01) << 13; - h_s_dadda_rca8_u_rca14_b |= ((h_s_dadda_rca8_and_0_1 >> 0) & 0x01) << 0; - h_s_dadda_rca8_u_rca14_b |= ((h_s_dadda_rca8_ha5_xor0 >> 0) & 0x01) << 1; - h_s_dadda_rca8_u_rca14_b |= ((h_s_dadda_rca8_fa25_xor1 >> 0) & 0x01) << 2; - h_s_dadda_rca8_u_rca14_b |= ((h_s_dadda_rca8_fa26_xor1 >> 0) & 0x01) << 3; - h_s_dadda_rca8_u_rca14_b |= ((h_s_dadda_rca8_fa27_xor1 >> 0) & 0x01) << 4; - h_s_dadda_rca8_u_rca14_b |= ((h_s_dadda_rca8_fa28_xor1 >> 0) & 0x01) << 5; - h_s_dadda_rca8_u_rca14_b |= ((h_s_dadda_rca8_fa29_xor1 >> 0) & 0x01) << 6; - h_s_dadda_rca8_u_rca14_b |= ((h_s_dadda_rca8_fa30_xor1 >> 0) & 0x01) << 7; - h_s_dadda_rca8_u_rca14_b |= ((h_s_dadda_rca8_fa31_xor1 >> 0) & 0x01) << 8; - h_s_dadda_rca8_u_rca14_b |= ((h_s_dadda_rca8_fa32_xor1 >> 0) & 0x01) << 9; - h_s_dadda_rca8_u_rca14_b |= ((h_s_dadda_rca8_fa33_xor1 >> 0) & 0x01) << 10; - h_s_dadda_rca8_u_rca14_b |= ((h_s_dadda_rca8_fa34_xor1 >> 0) & 0x01) << 11; - h_s_dadda_rca8_u_rca14_b |= ((h_s_dadda_rca8_fa35_xor1 >> 0) & 0x01) << 12; - h_s_dadda_rca8_u_rca14_b |= ((h_s_dadda_rca8_and_7_7 >> 0) & 0x01) << 13; - h_s_dadda_rca8_u_rca14_out = u_rca14(h_s_dadda_rca8_u_rca14_a, h_s_dadda_rca8_u_rca14_b); - h_s_dadda_rca8_xor0 = not_gate(((h_s_dadda_rca8_u_rca14_out >> 14) & 0x01)); - - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_and_0_0 >> 0) & 0x01) << 0; - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_u_rca14_out >> 0) & 0x01) << 1; - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_u_rca14_out >> 1) & 0x01) << 2; - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_u_rca14_out >> 2) & 0x01) << 3; - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_u_rca14_out >> 3) & 0x01) << 4; - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_u_rca14_out >> 4) & 0x01) << 5; - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_u_rca14_out >> 5) & 0x01) << 6; - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_u_rca14_out >> 6) & 0x01) << 7; - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_u_rca14_out >> 7) & 0x01) << 8; - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_u_rca14_out >> 8) & 0x01) << 9; - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_u_rca14_out >> 9) & 0x01) << 10; - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_u_rca14_out >> 10) & 0x01) << 11; - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_u_rca14_out >> 11) & 0x01) << 12; - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_u_rca14_out >> 12) & 0x01) << 13; - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_u_rca14_out >> 13) & 0x01) << 14; - h_s_dadda_rca8_out |= ((h_s_dadda_rca8_xor0 >> 0) & 0x01) << 15; - return h_s_dadda_rca8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)h_s_dadda_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cla4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cla4.c deleted file mode 100644 index 7584de8..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cla4.c +++ /dev/null @@ -1,287 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_logic(uint8_t a, uint8_t b){ - uint8_t pg_logic_out = 0; - uint8_t pg_logic_or0 = 0; - uint8_t pg_logic_and0 = 0; - uint8_t pg_logic_xor0 = 0; - - pg_logic_or0 = or_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - pg_logic_out |= ((pg_logic_or0 >> 0) & 0x01) << 0; - pg_logic_out |= ((pg_logic_and0 >> 0) & 0x01) << 1; - pg_logic_out |= ((pg_logic_xor0 >> 0) & 0x01) << 2; - return pg_logic_out; -} - -uint64_t u_cla6(uint64_t a, uint64_t b){ - uint8_t u_cla6_out = 0; - uint8_t u_cla6_pg_logic0_or0 = 0; - uint8_t u_cla6_pg_logic0_and0 = 0; - uint8_t u_cla6_pg_logic0_xor0 = 0; - uint8_t u_cla6_pg_logic1_or0 = 0; - uint8_t u_cla6_pg_logic1_and0 = 0; - uint8_t u_cla6_pg_logic1_xor0 = 0; - uint8_t u_cla6_xor1 = 0; - uint8_t u_cla6_and0 = 0; - uint8_t u_cla6_or0 = 0; - uint8_t u_cla6_pg_logic2_or0 = 0; - uint8_t u_cla6_pg_logic2_and0 = 0; - uint8_t u_cla6_pg_logic2_xor0 = 0; - uint8_t u_cla6_xor2 = 0; - uint8_t u_cla6_and1 = 0; - uint8_t u_cla6_and2 = 0; - uint8_t u_cla6_and3 = 0; - uint8_t u_cla6_and4 = 0; - uint8_t u_cla6_or1 = 0; - uint8_t u_cla6_or2 = 0; - uint8_t u_cla6_pg_logic3_or0 = 0; - uint8_t u_cla6_pg_logic3_and0 = 0; - uint8_t u_cla6_pg_logic3_xor0 = 0; - uint8_t u_cla6_xor3 = 0; - uint8_t u_cla6_and5 = 0; - uint8_t u_cla6_and6 = 0; - uint8_t u_cla6_and7 = 0; - uint8_t u_cla6_and8 = 0; - uint8_t u_cla6_and9 = 0; - uint8_t u_cla6_and10 = 0; - uint8_t u_cla6_and11 = 0; - uint8_t u_cla6_or3 = 0; - uint8_t u_cla6_or4 = 0; - uint8_t u_cla6_or5 = 0; - uint8_t u_cla6_pg_logic4_or0 = 0; - uint8_t u_cla6_pg_logic4_and0 = 0; - uint8_t u_cla6_pg_logic4_xor0 = 0; - uint8_t u_cla6_xor4 = 0; - uint8_t u_cla6_and12 = 0; - uint8_t u_cla6_or6 = 0; - uint8_t u_cla6_pg_logic5_or0 = 0; - uint8_t u_cla6_pg_logic5_and0 = 0; - uint8_t u_cla6_pg_logic5_xor0 = 0; - uint8_t u_cla6_xor5 = 0; - uint8_t u_cla6_and13 = 0; - uint8_t u_cla6_and14 = 0; - uint8_t u_cla6_and15 = 0; - uint8_t u_cla6_or7 = 0; - uint8_t u_cla6_or8 = 0; - - u_cla6_pg_logic0_or0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic0_and0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic0_xor0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 2) & 0x01; - u_cla6_pg_logic1_or0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic1_and0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic1_xor0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 2) & 0x01; - u_cla6_xor1 = xor_gate(((u_cla6_pg_logic1_xor0 >> 0) & 0x01), ((u_cla6_pg_logic0_and0 >> 0) & 0x01)); - u_cla6_and0 = and_gate(((u_cla6_pg_logic0_and0 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_or0 = or_gate(((u_cla6_pg_logic1_and0 >> 0) & 0x01), ((u_cla6_and0 >> 0) & 0x01)); - u_cla6_pg_logic2_or0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic2_and0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic2_xor0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 2) & 0x01; - u_cla6_xor2 = xor_gate(((u_cla6_pg_logic2_xor0 >> 0) & 0x01), ((u_cla6_or0 >> 0) & 0x01)); - u_cla6_and1 = and_gate(((u_cla6_pg_logic2_or0 >> 0) & 0x01), ((u_cla6_pg_logic0_or0 >> 0) & 0x01)); - u_cla6_and2 = and_gate(((u_cla6_pg_logic0_and0 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_and3 = and_gate(((u_cla6_and2 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_and4 = and_gate(((u_cla6_pg_logic1_and0 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_or1 = or_gate(((u_cla6_and3 >> 0) & 0x01), ((u_cla6_and4 >> 0) & 0x01)); - u_cla6_or2 = or_gate(((u_cla6_pg_logic2_and0 >> 0) & 0x01), ((u_cla6_or1 >> 0) & 0x01)); - u_cla6_pg_logic3_or0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic3_and0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic3_xor0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 2) & 0x01; - u_cla6_xor3 = xor_gate(((u_cla6_pg_logic3_xor0 >> 0) & 0x01), ((u_cla6_or2 >> 0) & 0x01)); - u_cla6_and5 = and_gate(((u_cla6_pg_logic3_or0 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_and6 = and_gate(((u_cla6_pg_logic0_and0 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_and7 = and_gate(((u_cla6_pg_logic3_or0 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_and8 = and_gate(((u_cla6_and6 >> 0) & 0x01), ((u_cla6_and7 >> 0) & 0x01)); - u_cla6_and9 = and_gate(((u_cla6_pg_logic1_and0 >> 0) & 0x01), ((u_cla6_pg_logic3_or0 >> 0) & 0x01)); - u_cla6_and10 = and_gate(((u_cla6_and9 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_and11 = and_gate(((u_cla6_pg_logic2_and0 >> 0) & 0x01), ((u_cla6_pg_logic3_or0 >> 0) & 0x01)); - u_cla6_or3 = or_gate(((u_cla6_and8 >> 0) & 0x01), ((u_cla6_and11 >> 0) & 0x01)); - u_cla6_or4 = or_gate(((u_cla6_and10 >> 0) & 0x01), ((u_cla6_or3 >> 0) & 0x01)); - u_cla6_or5 = or_gate(((u_cla6_pg_logic3_and0 >> 0) & 0x01), ((u_cla6_or4 >> 0) & 0x01)); - u_cla6_pg_logic4_or0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic4_and0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic4_xor0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 2) & 0x01; - u_cla6_xor4 = xor_gate(((u_cla6_pg_logic4_xor0 >> 0) & 0x01), ((u_cla6_or5 >> 0) & 0x01)); - u_cla6_and12 = and_gate(((u_cla6_or5 >> 0) & 0x01), ((u_cla6_pg_logic4_or0 >> 0) & 0x01)); - u_cla6_or6 = or_gate(((u_cla6_pg_logic4_and0 >> 0) & 0x01), ((u_cla6_and12 >> 0) & 0x01)); - u_cla6_pg_logic5_or0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic5_and0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic5_xor0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 2) & 0x01; - u_cla6_xor5 = xor_gate(((u_cla6_pg_logic5_xor0 >> 0) & 0x01), ((u_cla6_or6 >> 0) & 0x01)); - u_cla6_and13 = and_gate(((u_cla6_or5 >> 0) & 0x01), ((u_cla6_pg_logic5_or0 >> 0) & 0x01)); - u_cla6_and14 = and_gate(((u_cla6_and13 >> 0) & 0x01), ((u_cla6_pg_logic4_or0 >> 0) & 0x01)); - u_cla6_and15 = and_gate(((u_cla6_pg_logic4_and0 >> 0) & 0x01), ((u_cla6_pg_logic5_or0 >> 0) & 0x01)); - u_cla6_or7 = or_gate(((u_cla6_and14 >> 0) & 0x01), ((u_cla6_and15 >> 0) & 0x01)); - u_cla6_or8 = or_gate(((u_cla6_pg_logic5_and0 >> 0) & 0x01), ((u_cla6_or7 >> 0) & 0x01)); - - u_cla6_out |= ((u_cla6_pg_logic0_xor0 >> 0) & 0x01) << 0; - u_cla6_out |= ((u_cla6_xor1 >> 0) & 0x01) << 1; - u_cla6_out |= ((u_cla6_xor2 >> 0) & 0x01) << 2; - u_cla6_out |= ((u_cla6_xor3 >> 0) & 0x01) << 3; - u_cla6_out |= ((u_cla6_xor4 >> 0) & 0x01) << 4; - u_cla6_out |= ((u_cla6_xor5 >> 0) & 0x01) << 5; - u_cla6_out |= ((u_cla6_or8 >> 0) & 0x01) << 6; - return u_cla6_out; -} - -uint64_t h_s_wallace_cla4(uint64_t a, uint64_t b){ - uint8_t h_s_wallace_cla4_out = 0; - uint8_t h_s_wallace_cla4_and_2_0 = 0; - uint8_t h_s_wallace_cla4_and_1_1 = 0; - uint8_t h_s_wallace_cla4_ha0_xor0 = 0; - uint8_t h_s_wallace_cla4_ha0_and0 = 0; - uint8_t h_s_wallace_cla4_nand_3_0 = 0; - uint8_t h_s_wallace_cla4_and_2_1 = 0; - uint8_t h_s_wallace_cla4_fa0_xor1 = 0; - uint8_t h_s_wallace_cla4_fa0_or0 = 0; - uint8_t h_s_wallace_cla4_nand_3_1 = 0; - uint8_t h_s_wallace_cla4_fa1_xor1 = 0; - uint8_t h_s_wallace_cla4_fa1_or0 = 0; - uint8_t h_s_wallace_cla4_and_1_2 = 0; - uint8_t h_s_wallace_cla4_nand_0_3 = 0; - uint8_t h_s_wallace_cla4_ha1_xor0 = 0; - uint8_t h_s_wallace_cla4_ha1_and0 = 0; - uint8_t h_s_wallace_cla4_and_2_2 = 0; - uint8_t h_s_wallace_cla4_nand_1_3 = 0; - uint8_t h_s_wallace_cla4_fa2_xor1 = 0; - uint8_t h_s_wallace_cla4_fa2_or0 = 0; - uint8_t h_s_wallace_cla4_nand_3_2 = 0; - uint8_t h_s_wallace_cla4_fa3_xor1 = 0; - uint8_t h_s_wallace_cla4_fa3_or0 = 0; - uint8_t h_s_wallace_cla4_and_0_0 = 0; - uint8_t h_s_wallace_cla4_and_1_0 = 0; - uint8_t h_s_wallace_cla4_and_0_2 = 0; - uint8_t h_s_wallace_cla4_nand_2_3 = 0; - uint8_t h_s_wallace_cla4_and_0_1 = 0; - uint8_t h_s_wallace_cla4_and_3_3 = 0; - uint64_t h_s_wallace_cla4_u_cla6_a = 0; - uint64_t h_s_wallace_cla4_u_cla6_b = 0; - uint64_t h_s_wallace_cla4_u_cla6_out = 0; - uint8_t h_s_wallace_cla4_xor0 = 0; - - h_s_wallace_cla4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cla4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cla4_ha0_xor0 = (ha(((h_s_wallace_cla4_and_2_0 >> 0) & 0x01), ((h_s_wallace_cla4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla4_ha0_and0 = (ha(((h_s_wallace_cla4_and_2_0 >> 0) & 0x01), ((h_s_wallace_cla4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla4_nand_3_0 = nand_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cla4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cla4_fa0_xor1 = (fa(((h_s_wallace_cla4_ha0_and0 >> 0) & 0x01), ((h_s_wallace_cla4_nand_3_0 >> 0) & 0x01), ((h_s_wallace_cla4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla4_fa0_or0 = (fa(((h_s_wallace_cla4_ha0_and0 >> 0) & 0x01), ((h_s_wallace_cla4_nand_3_0 >> 0) & 0x01), ((h_s_wallace_cla4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla4_nand_3_1 = nand_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cla4_fa1_xor1 = (fa(((h_s_wallace_cla4_fa0_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_cla4_nand_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla4_fa1_or0 = (fa(((h_s_wallace_cla4_fa0_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_cla4_nand_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cla4_nand_0_3 = nand_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cla4_ha1_xor0 = (ha(((h_s_wallace_cla4_and_1_2 >> 0) & 0x01), ((h_s_wallace_cla4_nand_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla4_ha1_and0 = (ha(((h_s_wallace_cla4_and_1_2 >> 0) & 0x01), ((h_s_wallace_cla4_nand_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cla4_nand_1_3 = nand_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cla4_fa2_xor1 = (fa(((h_s_wallace_cla4_ha1_and0 >> 0) & 0x01), ((h_s_wallace_cla4_and_2_2 >> 0) & 0x01), ((h_s_wallace_cla4_nand_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla4_fa2_or0 = (fa(((h_s_wallace_cla4_ha1_and0 >> 0) & 0x01), ((h_s_wallace_cla4_and_2_2 >> 0) & 0x01), ((h_s_wallace_cla4_nand_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla4_nand_3_2 = nand_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cla4_fa3_xor1 = (fa(((h_s_wallace_cla4_fa2_or0 >> 0) & 0x01), ((h_s_wallace_cla4_fa1_or0 >> 0) & 0x01), ((h_s_wallace_cla4_nand_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla4_fa3_or0 = (fa(((h_s_wallace_cla4_fa2_or0 >> 0) & 0x01), ((h_s_wallace_cla4_fa1_or0 >> 0) & 0x01), ((h_s_wallace_cla4_nand_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cla4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cla4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cla4_nand_2_3 = nand_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cla4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cla4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cla4_u_cla6_a |= ((h_s_wallace_cla4_and_1_0 >> 0) & 0x01) << 0; - h_s_wallace_cla4_u_cla6_a |= ((h_s_wallace_cla4_and_0_2 >> 0) & 0x01) << 1; - h_s_wallace_cla4_u_cla6_a |= ((h_s_wallace_cla4_fa0_xor1 >> 0) & 0x01) << 2; - h_s_wallace_cla4_u_cla6_a |= ((h_s_wallace_cla4_fa1_xor1 >> 0) & 0x01) << 3; - h_s_wallace_cla4_u_cla6_a |= ((h_s_wallace_cla4_nand_2_3 >> 0) & 0x01) << 4; - h_s_wallace_cla4_u_cla6_a |= ((h_s_wallace_cla4_fa3_or0 >> 0) & 0x01) << 5; - h_s_wallace_cla4_u_cla6_b |= ((h_s_wallace_cla4_and_0_1 >> 0) & 0x01) << 0; - h_s_wallace_cla4_u_cla6_b |= ((h_s_wallace_cla4_ha0_xor0 >> 0) & 0x01) << 1; - h_s_wallace_cla4_u_cla6_b |= ((h_s_wallace_cla4_ha1_xor0 >> 0) & 0x01) << 2; - h_s_wallace_cla4_u_cla6_b |= ((h_s_wallace_cla4_fa2_xor1 >> 0) & 0x01) << 3; - h_s_wallace_cla4_u_cla6_b |= ((h_s_wallace_cla4_fa3_xor1 >> 0) & 0x01) << 4; - h_s_wallace_cla4_u_cla6_b |= ((h_s_wallace_cla4_and_3_3 >> 0) & 0x01) << 5; - h_s_wallace_cla4_u_cla6_out = u_cla6(h_s_wallace_cla4_u_cla6_a, h_s_wallace_cla4_u_cla6_b); - h_s_wallace_cla4_xor0 = not_gate(((h_s_wallace_cla4_u_cla6_out >> 6) & 0x01)); - - h_s_wallace_cla4_out |= ((h_s_wallace_cla4_and_0_0 >> 0) & 0x01) << 0; - h_s_wallace_cla4_out |= ((h_s_wallace_cla4_u_cla6_out >> 0) & 0x01) << 1; - h_s_wallace_cla4_out |= ((h_s_wallace_cla4_u_cla6_out >> 1) & 0x01) << 2; - h_s_wallace_cla4_out |= ((h_s_wallace_cla4_u_cla6_out >> 2) & 0x01) << 3; - h_s_wallace_cla4_out |= ((h_s_wallace_cla4_u_cla6_out >> 3) & 0x01) << 4; - h_s_wallace_cla4_out |= ((h_s_wallace_cla4_u_cla6_out >> 4) & 0x01) << 5; - h_s_wallace_cla4_out |= ((h_s_wallace_cla4_u_cla6_out >> 5) & 0x01) << 6; - h_s_wallace_cla4_out |= ((h_s_wallace_cla4_xor0 >> 0) & 0x01) << 7; - return h_s_wallace_cla4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)h_s_wallace_cla4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cla8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cla8.c deleted file mode 100644 index df2072a..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cla8.c +++ /dev/null @@ -1,743 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_logic(uint8_t a, uint8_t b){ - uint8_t pg_logic_out = 0; - uint8_t pg_logic_or0 = 0; - uint8_t pg_logic_and0 = 0; - uint8_t pg_logic_xor0 = 0; - - pg_logic_or0 = or_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - pg_logic_out |= ((pg_logic_or0 >> 0) & 0x01) << 0; - pg_logic_out |= ((pg_logic_and0 >> 0) & 0x01) << 1; - pg_logic_out |= ((pg_logic_xor0 >> 0) & 0x01) << 2; - return pg_logic_out; -} - -uint64_t u_cla14(uint64_t a, uint64_t b){ - uint64_t u_cla14_out = 0; - uint8_t u_cla14_pg_logic0_or0 = 0; - uint8_t u_cla14_pg_logic0_and0 = 0; - uint8_t u_cla14_pg_logic0_xor0 = 0; - uint8_t u_cla14_pg_logic1_or0 = 0; - uint8_t u_cla14_pg_logic1_and0 = 0; - uint8_t u_cla14_pg_logic1_xor0 = 0; - uint8_t u_cla14_xor1 = 0; - uint8_t u_cla14_and0 = 0; - uint8_t u_cla14_or0 = 0; - uint8_t u_cla14_pg_logic2_or0 = 0; - uint8_t u_cla14_pg_logic2_and0 = 0; - uint8_t u_cla14_pg_logic2_xor0 = 0; - uint8_t u_cla14_xor2 = 0; - uint8_t u_cla14_and1 = 0; - uint8_t u_cla14_and2 = 0; - uint8_t u_cla14_and3 = 0; - uint8_t u_cla14_and4 = 0; - uint8_t u_cla14_or1 = 0; - uint8_t u_cla14_or2 = 0; - uint8_t u_cla14_pg_logic3_or0 = 0; - uint8_t u_cla14_pg_logic3_and0 = 0; - uint8_t u_cla14_pg_logic3_xor0 = 0; - uint8_t u_cla14_xor3 = 0; - uint8_t u_cla14_and5 = 0; - uint8_t u_cla14_and6 = 0; - uint8_t u_cla14_and7 = 0; - uint8_t u_cla14_and8 = 0; - uint8_t u_cla14_and9 = 0; - uint8_t u_cla14_and10 = 0; - uint8_t u_cla14_and11 = 0; - uint8_t u_cla14_or3 = 0; - uint8_t u_cla14_or4 = 0; - uint8_t u_cla14_or5 = 0; - uint8_t u_cla14_pg_logic4_or0 = 0; - uint8_t u_cla14_pg_logic4_and0 = 0; - uint8_t u_cla14_pg_logic4_xor0 = 0; - uint8_t u_cla14_xor4 = 0; - uint8_t u_cla14_and12 = 0; - uint8_t u_cla14_or6 = 0; - uint8_t u_cla14_pg_logic5_or0 = 0; - uint8_t u_cla14_pg_logic5_and0 = 0; - uint8_t u_cla14_pg_logic5_xor0 = 0; - uint8_t u_cla14_xor5 = 0; - uint8_t u_cla14_and13 = 0; - uint8_t u_cla14_and14 = 0; - uint8_t u_cla14_and15 = 0; - uint8_t u_cla14_or7 = 0; - uint8_t u_cla14_or8 = 0; - uint8_t u_cla14_pg_logic6_or0 = 0; - uint8_t u_cla14_pg_logic6_and0 = 0; - uint8_t u_cla14_pg_logic6_xor0 = 0; - uint8_t u_cla14_xor6 = 0; - uint8_t u_cla14_and16 = 0; - uint8_t u_cla14_and17 = 0; - uint8_t u_cla14_and18 = 0; - uint8_t u_cla14_and19 = 0; - uint8_t u_cla14_and20 = 0; - uint8_t u_cla14_and21 = 0; - uint8_t u_cla14_or9 = 0; - uint8_t u_cla14_or10 = 0; - uint8_t u_cla14_or11 = 0; - uint8_t u_cla14_pg_logic7_or0 = 0; - uint8_t u_cla14_pg_logic7_and0 = 0; - uint8_t u_cla14_pg_logic7_xor0 = 0; - uint8_t u_cla14_xor7 = 0; - uint8_t u_cla14_and22 = 0; - uint8_t u_cla14_and23 = 0; - uint8_t u_cla14_and24 = 0; - uint8_t u_cla14_and25 = 0; - uint8_t u_cla14_and26 = 0; - uint8_t u_cla14_and27 = 0; - uint8_t u_cla14_and28 = 0; - uint8_t u_cla14_and29 = 0; - uint8_t u_cla14_and30 = 0; - uint8_t u_cla14_and31 = 0; - uint8_t u_cla14_or12 = 0; - uint8_t u_cla14_or13 = 0; - uint8_t u_cla14_or14 = 0; - uint8_t u_cla14_or15 = 0; - uint8_t u_cla14_pg_logic8_or0 = 0; - uint8_t u_cla14_pg_logic8_and0 = 0; - uint8_t u_cla14_pg_logic8_xor0 = 0; - uint8_t u_cla14_xor8 = 0; - uint8_t u_cla14_and32 = 0; - uint8_t u_cla14_or16 = 0; - uint8_t u_cla14_pg_logic9_or0 = 0; - uint8_t u_cla14_pg_logic9_and0 = 0; - uint8_t u_cla14_pg_logic9_xor0 = 0; - uint8_t u_cla14_xor9 = 0; - uint8_t u_cla14_and33 = 0; - uint8_t u_cla14_and34 = 0; - uint8_t u_cla14_and35 = 0; - uint8_t u_cla14_or17 = 0; - uint8_t u_cla14_or18 = 0; - uint8_t u_cla14_pg_logic10_or0 = 0; - uint8_t u_cla14_pg_logic10_and0 = 0; - uint8_t u_cla14_pg_logic10_xor0 = 0; - uint8_t u_cla14_xor10 = 0; - uint8_t u_cla14_and36 = 0; - uint8_t u_cla14_and37 = 0; - uint8_t u_cla14_and38 = 0; - uint8_t u_cla14_and39 = 0; - uint8_t u_cla14_and40 = 0; - uint8_t u_cla14_and41 = 0; - uint8_t u_cla14_or19 = 0; - uint8_t u_cla14_or20 = 0; - uint8_t u_cla14_or21 = 0; - uint8_t u_cla14_pg_logic11_or0 = 0; - uint8_t u_cla14_pg_logic11_and0 = 0; - uint8_t u_cla14_pg_logic11_xor0 = 0; - uint8_t u_cla14_xor11 = 0; - uint8_t u_cla14_and42 = 0; - uint8_t u_cla14_and43 = 0; - uint8_t u_cla14_and44 = 0; - uint8_t u_cla14_and45 = 0; - uint8_t u_cla14_and46 = 0; - uint8_t u_cla14_and47 = 0; - uint8_t u_cla14_and48 = 0; - uint8_t u_cla14_and49 = 0; - uint8_t u_cla14_and50 = 0; - uint8_t u_cla14_and51 = 0; - uint8_t u_cla14_or22 = 0; - uint8_t u_cla14_or23 = 0; - uint8_t u_cla14_or24 = 0; - uint8_t u_cla14_or25 = 0; - uint8_t u_cla14_pg_logic12_or0 = 0; - uint8_t u_cla14_pg_logic12_and0 = 0; - uint8_t u_cla14_pg_logic12_xor0 = 0; - uint8_t u_cla14_xor12 = 0; - uint8_t u_cla14_and52 = 0; - uint8_t u_cla14_or26 = 0; - uint8_t u_cla14_pg_logic13_or0 = 0; - uint8_t u_cla14_pg_logic13_and0 = 0; - uint8_t u_cla14_pg_logic13_xor0 = 0; - uint8_t u_cla14_xor13 = 0; - uint8_t u_cla14_and53 = 0; - uint8_t u_cla14_and54 = 0; - uint8_t u_cla14_and55 = 0; - uint8_t u_cla14_or27 = 0; - uint8_t u_cla14_or28 = 0; - - u_cla14_pg_logic0_or0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic0_and0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic0_xor0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 2) & 0x01; - u_cla14_pg_logic1_or0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic1_and0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic1_xor0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 2) & 0x01; - u_cla14_xor1 = xor_gate(((u_cla14_pg_logic1_xor0 >> 0) & 0x01), ((u_cla14_pg_logic0_and0 >> 0) & 0x01)); - u_cla14_and0 = and_gate(((u_cla14_pg_logic0_and0 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_or0 = or_gate(((u_cla14_pg_logic1_and0 >> 0) & 0x01), ((u_cla14_and0 >> 0) & 0x01)); - u_cla14_pg_logic2_or0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic2_and0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic2_xor0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 2) & 0x01; - u_cla14_xor2 = xor_gate(((u_cla14_pg_logic2_xor0 >> 0) & 0x01), ((u_cla14_or0 >> 0) & 0x01)); - u_cla14_and1 = and_gate(((u_cla14_pg_logic2_or0 >> 0) & 0x01), ((u_cla14_pg_logic0_or0 >> 0) & 0x01)); - u_cla14_and2 = and_gate(((u_cla14_pg_logic0_and0 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_and3 = and_gate(((u_cla14_and2 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_and4 = and_gate(((u_cla14_pg_logic1_and0 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_or1 = or_gate(((u_cla14_and3 >> 0) & 0x01), ((u_cla14_and4 >> 0) & 0x01)); - u_cla14_or2 = or_gate(((u_cla14_pg_logic2_and0 >> 0) & 0x01), ((u_cla14_or1 >> 0) & 0x01)); - u_cla14_pg_logic3_or0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic3_and0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic3_xor0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 2) & 0x01; - u_cla14_xor3 = xor_gate(((u_cla14_pg_logic3_xor0 >> 0) & 0x01), ((u_cla14_or2 >> 0) & 0x01)); - u_cla14_and5 = and_gate(((u_cla14_pg_logic3_or0 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_and6 = and_gate(((u_cla14_pg_logic0_and0 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_and7 = and_gate(((u_cla14_pg_logic3_or0 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_and8 = and_gate(((u_cla14_and6 >> 0) & 0x01), ((u_cla14_and7 >> 0) & 0x01)); - u_cla14_and9 = and_gate(((u_cla14_pg_logic1_and0 >> 0) & 0x01), ((u_cla14_pg_logic3_or0 >> 0) & 0x01)); - u_cla14_and10 = and_gate(((u_cla14_and9 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_and11 = and_gate(((u_cla14_pg_logic2_and0 >> 0) & 0x01), ((u_cla14_pg_logic3_or0 >> 0) & 0x01)); - u_cla14_or3 = or_gate(((u_cla14_and8 >> 0) & 0x01), ((u_cla14_and11 >> 0) & 0x01)); - u_cla14_or4 = or_gate(((u_cla14_and10 >> 0) & 0x01), ((u_cla14_or3 >> 0) & 0x01)); - u_cla14_or5 = or_gate(((u_cla14_pg_logic3_and0 >> 0) & 0x01), ((u_cla14_or4 >> 0) & 0x01)); - u_cla14_pg_logic4_or0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic4_and0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic4_xor0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 2) & 0x01; - u_cla14_xor4 = xor_gate(((u_cla14_pg_logic4_xor0 >> 0) & 0x01), ((u_cla14_or5 >> 0) & 0x01)); - u_cla14_and12 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_or6 = or_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_and12 >> 0) & 0x01)); - u_cla14_pg_logic5_or0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic5_and0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic5_xor0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 2) & 0x01; - u_cla14_xor5 = xor_gate(((u_cla14_pg_logic5_xor0 >> 0) & 0x01), ((u_cla14_or6 >> 0) & 0x01)); - u_cla14_and13 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and14 = and_gate(((u_cla14_and13 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_and15 = and_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_or7 = or_gate(((u_cla14_and14 >> 0) & 0x01), ((u_cla14_and15 >> 0) & 0x01)); - u_cla14_or8 = or_gate(((u_cla14_pg_logic5_and0 >> 0) & 0x01), ((u_cla14_or7 >> 0) & 0x01)); - u_cla14_pg_logic6_or0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic6_and0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic6_xor0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 2) & 0x01; - u_cla14_xor6 = xor_gate(((u_cla14_pg_logic6_xor0 >> 0) & 0x01), ((u_cla14_or8 >> 0) & 0x01)); - u_cla14_and16 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and17 = and_gate(((u_cla14_pg_logic6_or0 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_and18 = and_gate(((u_cla14_and16 >> 0) & 0x01), ((u_cla14_and17 >> 0) & 0x01)); - u_cla14_and19 = and_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and20 = and_gate(((u_cla14_and19 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and21 = and_gate(((u_cla14_pg_logic5_and0 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_or9 = or_gate(((u_cla14_and18 >> 0) & 0x01), ((u_cla14_and20 >> 0) & 0x01)); - u_cla14_or10 = or_gate(((u_cla14_or9 >> 0) & 0x01), ((u_cla14_and21 >> 0) & 0x01)); - u_cla14_or11 = or_gate(((u_cla14_pg_logic6_and0 >> 0) & 0x01), ((u_cla14_or10 >> 0) & 0x01)); - u_cla14_pg_logic7_or0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic7_and0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic7_xor0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 2) & 0x01; - u_cla14_xor7 = xor_gate(((u_cla14_pg_logic7_xor0 >> 0) & 0x01), ((u_cla14_or11 >> 0) & 0x01)); - u_cla14_and22 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and23 = and_gate(((u_cla14_pg_logic7_or0 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and24 = and_gate(((u_cla14_and22 >> 0) & 0x01), ((u_cla14_and23 >> 0) & 0x01)); - u_cla14_and25 = and_gate(((u_cla14_and24 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_and26 = and_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and27 = and_gate(((u_cla14_pg_logic7_or0 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and28 = and_gate(((u_cla14_and26 >> 0) & 0x01), ((u_cla14_and27 >> 0) & 0x01)); - u_cla14_and29 = and_gate(((u_cla14_pg_logic5_and0 >> 0) & 0x01), ((u_cla14_pg_logic7_or0 >> 0) & 0x01)); - u_cla14_and30 = and_gate(((u_cla14_and29 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and31 = and_gate(((u_cla14_pg_logic6_and0 >> 0) & 0x01), ((u_cla14_pg_logic7_or0 >> 0) & 0x01)); - u_cla14_or12 = or_gate(((u_cla14_and25 >> 0) & 0x01), ((u_cla14_and30 >> 0) & 0x01)); - u_cla14_or13 = or_gate(((u_cla14_and28 >> 0) & 0x01), ((u_cla14_and31 >> 0) & 0x01)); - u_cla14_or14 = or_gate(((u_cla14_or12 >> 0) & 0x01), ((u_cla14_or13 >> 0) & 0x01)); - u_cla14_or15 = or_gate(((u_cla14_pg_logic7_and0 >> 0) & 0x01), ((u_cla14_or14 >> 0) & 0x01)); - u_cla14_pg_logic8_or0 = (pg_logic(((a >> 8) & 0x01), ((b >> 8) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic8_and0 = (pg_logic(((a >> 8) & 0x01), ((b >> 8) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic8_xor0 = (pg_logic(((a >> 8) & 0x01), ((b >> 8) & 0x01)) >> 2) & 0x01; - u_cla14_xor8 = xor_gate(((u_cla14_pg_logic8_xor0 >> 0) & 0x01), ((u_cla14_or15 >> 0) & 0x01)); - u_cla14_and32 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_or16 = or_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_and32 >> 0) & 0x01)); - u_cla14_pg_logic9_or0 = (pg_logic(((a >> 9) & 0x01), ((b >> 9) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic9_and0 = (pg_logic(((a >> 9) & 0x01), ((b >> 9) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic9_xor0 = (pg_logic(((a >> 9) & 0x01), ((b >> 9) & 0x01)) >> 2) & 0x01; - u_cla14_xor9 = xor_gate(((u_cla14_pg_logic9_xor0 >> 0) & 0x01), ((u_cla14_or16 >> 0) & 0x01)); - u_cla14_and33 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and34 = and_gate(((u_cla14_and33 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_and35 = and_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_or17 = or_gate(((u_cla14_and34 >> 0) & 0x01), ((u_cla14_and35 >> 0) & 0x01)); - u_cla14_or18 = or_gate(((u_cla14_pg_logic9_and0 >> 0) & 0x01), ((u_cla14_or17 >> 0) & 0x01)); - u_cla14_pg_logic10_or0 = (pg_logic(((a >> 10) & 0x01), ((b >> 10) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic10_and0 = (pg_logic(((a >> 10) & 0x01), ((b >> 10) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic10_xor0 = (pg_logic(((a >> 10) & 0x01), ((b >> 10) & 0x01)) >> 2) & 0x01; - u_cla14_xor10 = xor_gate(((u_cla14_pg_logic10_xor0 >> 0) & 0x01), ((u_cla14_or18 >> 0) & 0x01)); - u_cla14_and36 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and37 = and_gate(((u_cla14_pg_logic10_or0 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_and38 = and_gate(((u_cla14_and36 >> 0) & 0x01), ((u_cla14_and37 >> 0) & 0x01)); - u_cla14_and39 = and_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and40 = and_gate(((u_cla14_and39 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and41 = and_gate(((u_cla14_pg_logic9_and0 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_or19 = or_gate(((u_cla14_and38 >> 0) & 0x01), ((u_cla14_and40 >> 0) & 0x01)); - u_cla14_or20 = or_gate(((u_cla14_or19 >> 0) & 0x01), ((u_cla14_and41 >> 0) & 0x01)); - u_cla14_or21 = or_gate(((u_cla14_pg_logic10_and0 >> 0) & 0x01), ((u_cla14_or20 >> 0) & 0x01)); - u_cla14_pg_logic11_or0 = (pg_logic(((a >> 11) & 0x01), ((b >> 11) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic11_and0 = (pg_logic(((a >> 11) & 0x01), ((b >> 11) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic11_xor0 = (pg_logic(((a >> 11) & 0x01), ((b >> 11) & 0x01)) >> 2) & 0x01; - u_cla14_xor11 = xor_gate(((u_cla14_pg_logic11_xor0 >> 0) & 0x01), ((u_cla14_or21 >> 0) & 0x01)); - u_cla14_and42 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and43 = and_gate(((u_cla14_pg_logic11_or0 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and44 = and_gate(((u_cla14_and42 >> 0) & 0x01), ((u_cla14_and43 >> 0) & 0x01)); - u_cla14_and45 = and_gate(((u_cla14_and44 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_and46 = and_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and47 = and_gate(((u_cla14_pg_logic11_or0 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and48 = and_gate(((u_cla14_and46 >> 0) & 0x01), ((u_cla14_and47 >> 0) & 0x01)); - u_cla14_and49 = and_gate(((u_cla14_pg_logic9_and0 >> 0) & 0x01), ((u_cla14_pg_logic11_or0 >> 0) & 0x01)); - u_cla14_and50 = and_gate(((u_cla14_and49 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and51 = and_gate(((u_cla14_pg_logic10_and0 >> 0) & 0x01), ((u_cla14_pg_logic11_or0 >> 0) & 0x01)); - u_cla14_or22 = or_gate(((u_cla14_and45 >> 0) & 0x01), ((u_cla14_and50 >> 0) & 0x01)); - u_cla14_or23 = or_gate(((u_cla14_and48 >> 0) & 0x01), ((u_cla14_and51 >> 0) & 0x01)); - u_cla14_or24 = or_gate(((u_cla14_or22 >> 0) & 0x01), ((u_cla14_or23 >> 0) & 0x01)); - u_cla14_or25 = or_gate(((u_cla14_pg_logic11_and0 >> 0) & 0x01), ((u_cla14_or24 >> 0) & 0x01)); - u_cla14_pg_logic12_or0 = (pg_logic(((a >> 12) & 0x01), ((b >> 12) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic12_and0 = (pg_logic(((a >> 12) & 0x01), ((b >> 12) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic12_xor0 = (pg_logic(((a >> 12) & 0x01), ((b >> 12) & 0x01)) >> 2) & 0x01; - u_cla14_xor12 = xor_gate(((u_cla14_pg_logic12_xor0 >> 0) & 0x01), ((u_cla14_or25 >> 0) & 0x01)); - u_cla14_and52 = and_gate(((u_cla14_or25 >> 0) & 0x01), ((u_cla14_pg_logic12_or0 >> 0) & 0x01)); - u_cla14_or26 = or_gate(((u_cla14_pg_logic12_and0 >> 0) & 0x01), ((u_cla14_and52 >> 0) & 0x01)); - u_cla14_pg_logic13_or0 = (pg_logic(((a >> 13) & 0x01), ((b >> 13) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic13_and0 = (pg_logic(((a >> 13) & 0x01), ((b >> 13) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic13_xor0 = (pg_logic(((a >> 13) & 0x01), ((b >> 13) & 0x01)) >> 2) & 0x01; - u_cla14_xor13 = xor_gate(((u_cla14_pg_logic13_xor0 >> 0) & 0x01), ((u_cla14_or26 >> 0) & 0x01)); - u_cla14_and53 = and_gate(((u_cla14_or25 >> 0) & 0x01), ((u_cla14_pg_logic13_or0 >> 0) & 0x01)); - u_cla14_and54 = and_gate(((u_cla14_and53 >> 0) & 0x01), ((u_cla14_pg_logic12_or0 >> 0) & 0x01)); - u_cla14_and55 = and_gate(((u_cla14_pg_logic12_and0 >> 0) & 0x01), ((u_cla14_pg_logic13_or0 >> 0) & 0x01)); - u_cla14_or27 = or_gate(((u_cla14_and54 >> 0) & 0x01), ((u_cla14_and55 >> 0) & 0x01)); - u_cla14_or28 = or_gate(((u_cla14_pg_logic13_and0 >> 0) & 0x01), ((u_cla14_or27 >> 0) & 0x01)); - - u_cla14_out |= ((u_cla14_pg_logic0_xor0 >> 0) & 0x01) << 0; - u_cla14_out |= ((u_cla14_xor1 >> 0) & 0x01) << 1; - u_cla14_out |= ((u_cla14_xor2 >> 0) & 0x01) << 2; - u_cla14_out |= ((u_cla14_xor3 >> 0) & 0x01) << 3; - u_cla14_out |= ((u_cla14_xor4 >> 0) & 0x01) << 4; - u_cla14_out |= ((u_cla14_xor5 >> 0) & 0x01) << 5; - u_cla14_out |= ((u_cla14_xor6 >> 0) & 0x01) << 6; - u_cla14_out |= ((u_cla14_xor7 >> 0) & 0x01) << 7; - u_cla14_out |= ((u_cla14_xor8 >> 0) & 0x01) << 8; - u_cla14_out |= ((u_cla14_xor9 >> 0) & 0x01) << 9; - u_cla14_out |= ((u_cla14_xor10 >> 0) & 0x01) << 10; - u_cla14_out |= ((u_cla14_xor11 >> 0) & 0x01) << 11; - u_cla14_out |= ((u_cla14_xor12 >> 0) & 0x01) << 12; - u_cla14_out |= ((u_cla14_xor13 >> 0) & 0x01) << 13; - u_cla14_out |= ((u_cla14_or28 >> 0) & 0x01) << 14; - return u_cla14_out; -} - -uint64_t h_s_wallace_cla8(uint64_t a, uint64_t b){ - uint64_t h_s_wallace_cla8_out = 0; - uint8_t h_s_wallace_cla8_and_2_0 = 0; - uint8_t h_s_wallace_cla8_and_1_1 = 0; - uint8_t h_s_wallace_cla8_ha0_xor0 = 0; - uint8_t h_s_wallace_cla8_ha0_and0 = 0; - uint8_t h_s_wallace_cla8_and_3_0 = 0; - uint8_t h_s_wallace_cla8_and_2_1 = 0; - uint8_t h_s_wallace_cla8_fa0_xor1 = 0; - uint8_t h_s_wallace_cla8_fa0_or0 = 0; - uint8_t h_s_wallace_cla8_and_4_0 = 0; - uint8_t h_s_wallace_cla8_and_3_1 = 0; - uint8_t h_s_wallace_cla8_fa1_xor1 = 0; - uint8_t h_s_wallace_cla8_fa1_or0 = 0; - uint8_t h_s_wallace_cla8_and_5_0 = 0; - uint8_t h_s_wallace_cla8_and_4_1 = 0; - uint8_t h_s_wallace_cla8_fa2_xor1 = 0; - uint8_t h_s_wallace_cla8_fa2_or0 = 0; - uint8_t h_s_wallace_cla8_and_6_0 = 0; - uint8_t h_s_wallace_cla8_and_5_1 = 0; - uint8_t h_s_wallace_cla8_fa3_xor1 = 0; - uint8_t h_s_wallace_cla8_fa3_or0 = 0; - uint8_t h_s_wallace_cla8_nand_7_0 = 0; - uint8_t h_s_wallace_cla8_and_6_1 = 0; - uint8_t h_s_wallace_cla8_fa4_xor1 = 0; - uint8_t h_s_wallace_cla8_fa4_or0 = 0; - uint8_t h_s_wallace_cla8_nand_7_1 = 0; - uint8_t h_s_wallace_cla8_fa5_xor1 = 0; - uint8_t h_s_wallace_cla8_fa5_or0 = 0; - uint8_t h_s_wallace_cla8_nand_7_2 = 0; - uint8_t h_s_wallace_cla8_and_6_3 = 0; - uint8_t h_s_wallace_cla8_fa6_xor1 = 0; - uint8_t h_s_wallace_cla8_fa6_or0 = 0; - uint8_t h_s_wallace_cla8_nand_7_3 = 0; - uint8_t h_s_wallace_cla8_and_6_4 = 0; - uint8_t h_s_wallace_cla8_fa7_xor1 = 0; - uint8_t h_s_wallace_cla8_fa7_or0 = 0; - uint8_t h_s_wallace_cla8_nand_7_4 = 0; - uint8_t h_s_wallace_cla8_and_6_5 = 0; - uint8_t h_s_wallace_cla8_fa8_xor1 = 0; - uint8_t h_s_wallace_cla8_fa8_or0 = 0; - uint8_t h_s_wallace_cla8_nand_7_5 = 0; - uint8_t h_s_wallace_cla8_and_6_6 = 0; - uint8_t h_s_wallace_cla8_fa9_xor1 = 0; - uint8_t h_s_wallace_cla8_fa9_or0 = 0; - uint8_t h_s_wallace_cla8_and_1_2 = 0; - uint8_t h_s_wallace_cla8_and_0_3 = 0; - uint8_t h_s_wallace_cla8_ha1_xor0 = 0; - uint8_t h_s_wallace_cla8_ha1_and0 = 0; - uint8_t h_s_wallace_cla8_and_2_2 = 0; - uint8_t h_s_wallace_cla8_and_1_3 = 0; - uint8_t h_s_wallace_cla8_fa10_xor1 = 0; - uint8_t h_s_wallace_cla8_fa10_or0 = 0; - uint8_t h_s_wallace_cla8_and_3_2 = 0; - uint8_t h_s_wallace_cla8_and_2_3 = 0; - uint8_t h_s_wallace_cla8_fa11_xor1 = 0; - uint8_t h_s_wallace_cla8_fa11_or0 = 0; - uint8_t h_s_wallace_cla8_and_4_2 = 0; - uint8_t h_s_wallace_cla8_and_3_3 = 0; - uint8_t h_s_wallace_cla8_fa12_xor1 = 0; - uint8_t h_s_wallace_cla8_fa12_or0 = 0; - uint8_t h_s_wallace_cla8_and_5_2 = 0; - uint8_t h_s_wallace_cla8_and_4_3 = 0; - uint8_t h_s_wallace_cla8_fa13_xor1 = 0; - uint8_t h_s_wallace_cla8_fa13_or0 = 0; - uint8_t h_s_wallace_cla8_and_6_2 = 0; - uint8_t h_s_wallace_cla8_and_5_3 = 0; - uint8_t h_s_wallace_cla8_fa14_xor1 = 0; - uint8_t h_s_wallace_cla8_fa14_or0 = 0; - uint8_t h_s_wallace_cla8_and_5_4 = 0; - uint8_t h_s_wallace_cla8_and_4_5 = 0; - uint8_t h_s_wallace_cla8_fa15_xor1 = 0; - uint8_t h_s_wallace_cla8_fa15_or0 = 0; - uint8_t h_s_wallace_cla8_and_5_5 = 0; - uint8_t h_s_wallace_cla8_and_4_6 = 0; - uint8_t h_s_wallace_cla8_fa16_xor1 = 0; - uint8_t h_s_wallace_cla8_fa16_or0 = 0; - uint8_t h_s_wallace_cla8_and_5_6 = 0; - uint8_t h_s_wallace_cla8_nand_4_7 = 0; - uint8_t h_s_wallace_cla8_fa17_xor1 = 0; - uint8_t h_s_wallace_cla8_fa17_or0 = 0; - uint8_t h_s_wallace_cla8_and_0_4 = 0; - uint8_t h_s_wallace_cla8_ha2_xor0 = 0; - uint8_t h_s_wallace_cla8_ha2_and0 = 0; - uint8_t h_s_wallace_cla8_and_1_4 = 0; - uint8_t h_s_wallace_cla8_and_0_5 = 0; - uint8_t h_s_wallace_cla8_fa18_xor1 = 0; - uint8_t h_s_wallace_cla8_fa18_or0 = 0; - uint8_t h_s_wallace_cla8_and_2_4 = 0; - uint8_t h_s_wallace_cla8_and_1_5 = 0; - uint8_t h_s_wallace_cla8_fa19_xor1 = 0; - uint8_t h_s_wallace_cla8_fa19_or0 = 0; - uint8_t h_s_wallace_cla8_and_3_4 = 0; - uint8_t h_s_wallace_cla8_and_2_5 = 0; - uint8_t h_s_wallace_cla8_fa20_xor1 = 0; - uint8_t h_s_wallace_cla8_fa20_or0 = 0; - uint8_t h_s_wallace_cla8_and_4_4 = 0; - uint8_t h_s_wallace_cla8_and_3_5 = 0; - uint8_t h_s_wallace_cla8_fa21_xor1 = 0; - uint8_t h_s_wallace_cla8_fa21_or0 = 0; - uint8_t h_s_wallace_cla8_and_3_6 = 0; - uint8_t h_s_wallace_cla8_nand_2_7 = 0; - uint8_t h_s_wallace_cla8_fa22_xor1 = 0; - uint8_t h_s_wallace_cla8_fa22_or0 = 0; - uint8_t h_s_wallace_cla8_nand_3_7 = 0; - uint8_t h_s_wallace_cla8_fa23_xor1 = 0; - uint8_t h_s_wallace_cla8_fa23_or0 = 0; - uint8_t h_s_wallace_cla8_ha3_xor0 = 0; - uint8_t h_s_wallace_cla8_ha3_and0 = 0; - uint8_t h_s_wallace_cla8_and_0_6 = 0; - uint8_t h_s_wallace_cla8_fa24_xor1 = 0; - uint8_t h_s_wallace_cla8_fa24_or0 = 0; - uint8_t h_s_wallace_cla8_and_1_6 = 0; - uint8_t h_s_wallace_cla8_nand_0_7 = 0; - uint8_t h_s_wallace_cla8_fa25_xor1 = 0; - uint8_t h_s_wallace_cla8_fa25_or0 = 0; - uint8_t h_s_wallace_cla8_and_2_6 = 0; - uint8_t h_s_wallace_cla8_nand_1_7 = 0; - uint8_t h_s_wallace_cla8_fa26_xor1 = 0; - uint8_t h_s_wallace_cla8_fa26_or0 = 0; - uint8_t h_s_wallace_cla8_fa27_xor1 = 0; - uint8_t h_s_wallace_cla8_fa27_or0 = 0; - uint8_t h_s_wallace_cla8_ha4_xor0 = 0; - uint8_t h_s_wallace_cla8_ha4_and0 = 0; - uint8_t h_s_wallace_cla8_fa28_xor1 = 0; - uint8_t h_s_wallace_cla8_fa28_or0 = 0; - uint8_t h_s_wallace_cla8_fa29_xor1 = 0; - uint8_t h_s_wallace_cla8_fa29_or0 = 0; - uint8_t h_s_wallace_cla8_ha5_xor0 = 0; - uint8_t h_s_wallace_cla8_ha5_and0 = 0; - uint8_t h_s_wallace_cla8_fa30_xor1 = 0; - uint8_t h_s_wallace_cla8_fa30_or0 = 0; - uint8_t h_s_wallace_cla8_fa31_xor1 = 0; - uint8_t h_s_wallace_cla8_fa31_or0 = 0; - uint8_t h_s_wallace_cla8_fa32_xor1 = 0; - uint8_t h_s_wallace_cla8_fa32_or0 = 0; - uint8_t h_s_wallace_cla8_fa33_xor1 = 0; - uint8_t h_s_wallace_cla8_fa33_or0 = 0; - uint8_t h_s_wallace_cla8_nand_5_7 = 0; - uint8_t h_s_wallace_cla8_fa34_xor1 = 0; - uint8_t h_s_wallace_cla8_fa34_or0 = 0; - uint8_t h_s_wallace_cla8_nand_7_6 = 0; - uint8_t h_s_wallace_cla8_fa35_xor1 = 0; - uint8_t h_s_wallace_cla8_fa35_or0 = 0; - uint8_t h_s_wallace_cla8_and_0_0 = 0; - uint8_t h_s_wallace_cla8_and_1_0 = 0; - uint8_t h_s_wallace_cla8_and_0_2 = 0; - uint8_t h_s_wallace_cla8_nand_6_7 = 0; - uint8_t h_s_wallace_cla8_and_0_1 = 0; - uint8_t h_s_wallace_cla8_and_7_7 = 0; - uint64_t h_s_wallace_cla8_u_cla14_a = 0; - uint64_t h_s_wallace_cla8_u_cla14_b = 0; - uint64_t h_s_wallace_cla8_u_cla14_out = 0; - uint8_t h_s_wallace_cla8_xor0 = 0; - - h_s_wallace_cla8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cla8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cla8_ha0_xor0 = (ha(((h_s_wallace_cla8_and_2_0 >> 0) & 0x01), ((h_s_wallace_cla8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_ha0_and0 = (ha(((h_s_wallace_cla8_and_2_0 >> 0) & 0x01), ((h_s_wallace_cla8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cla8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cla8_fa0_xor1 = (fa(((h_s_wallace_cla8_ha0_and0 >> 0) & 0x01), ((h_s_wallace_cla8_and_3_0 >> 0) & 0x01), ((h_s_wallace_cla8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa0_or0 = (fa(((h_s_wallace_cla8_ha0_and0 >> 0) & 0x01), ((h_s_wallace_cla8_and_3_0 >> 0) & 0x01), ((h_s_wallace_cla8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cla8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cla8_fa1_xor1 = (fa(((h_s_wallace_cla8_fa0_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_4_0 >> 0) & 0x01), ((h_s_wallace_cla8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa1_or0 = (fa(((h_s_wallace_cla8_fa0_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_4_0 >> 0) & 0x01), ((h_s_wallace_cla8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cla8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cla8_fa2_xor1 = (fa(((h_s_wallace_cla8_fa1_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_5_0 >> 0) & 0x01), ((h_s_wallace_cla8_and_4_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa2_or0 = (fa(((h_s_wallace_cla8_fa1_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_5_0 >> 0) & 0x01), ((h_s_wallace_cla8_and_4_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cla8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cla8_fa3_xor1 = (fa(((h_s_wallace_cla8_fa2_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_6_0 >> 0) & 0x01), ((h_s_wallace_cla8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa3_or0 = (fa(((h_s_wallace_cla8_fa2_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_6_0 >> 0) & 0x01), ((h_s_wallace_cla8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_nand_7_0 = nand_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cla8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cla8_fa4_xor1 = (fa(((h_s_wallace_cla8_fa3_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_7_0 >> 0) & 0x01), ((h_s_wallace_cla8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa4_or0 = (fa(((h_s_wallace_cla8_fa3_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_7_0 >> 0) & 0x01), ((h_s_wallace_cla8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_nand_7_1 = nand_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cla8_fa5_xor1 = (fa(((h_s_wallace_cla8_fa4_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_cla8_nand_7_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa5_or0 = (fa(((h_s_wallace_cla8_fa4_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_cla8_nand_7_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_nand_7_2 = nand_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cla8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cla8_fa6_xor1 = (fa(((h_s_wallace_cla8_fa5_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_7_2 >> 0) & 0x01), ((h_s_wallace_cla8_and_6_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa6_or0 = (fa(((h_s_wallace_cla8_fa5_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_7_2 >> 0) & 0x01), ((h_s_wallace_cla8_and_6_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_nand_7_3 = nand_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cla8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cla8_fa7_xor1 = (fa(((h_s_wallace_cla8_fa6_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_7_3 >> 0) & 0x01), ((h_s_wallace_cla8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa7_or0 = (fa(((h_s_wallace_cla8_fa6_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_7_3 >> 0) & 0x01), ((h_s_wallace_cla8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_nand_7_4 = nand_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cla8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cla8_fa8_xor1 = (fa(((h_s_wallace_cla8_fa7_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_7_4 >> 0) & 0x01), ((h_s_wallace_cla8_and_6_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa8_or0 = (fa(((h_s_wallace_cla8_fa7_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_7_4 >> 0) & 0x01), ((h_s_wallace_cla8_and_6_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_nand_7_5 = nand_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cla8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cla8_fa9_xor1 = (fa(((h_s_wallace_cla8_fa8_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_7_5 >> 0) & 0x01), ((h_s_wallace_cla8_and_6_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa9_or0 = (fa(((h_s_wallace_cla8_fa8_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_7_5 >> 0) & 0x01), ((h_s_wallace_cla8_and_6_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cla8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cla8_ha1_xor0 = (ha(((h_s_wallace_cla8_and_1_2 >> 0) & 0x01), ((h_s_wallace_cla8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_ha1_and0 = (ha(((h_s_wallace_cla8_and_1_2 >> 0) & 0x01), ((h_s_wallace_cla8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cla8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cla8_fa10_xor1 = (fa(((h_s_wallace_cla8_ha1_and0 >> 0) & 0x01), ((h_s_wallace_cla8_and_2_2 >> 0) & 0x01), ((h_s_wallace_cla8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa10_or0 = (fa(((h_s_wallace_cla8_ha1_and0 >> 0) & 0x01), ((h_s_wallace_cla8_and_2_2 >> 0) & 0x01), ((h_s_wallace_cla8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cla8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cla8_fa11_xor1 = (fa(((h_s_wallace_cla8_fa10_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_3_2 >> 0) & 0x01), ((h_s_wallace_cla8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa11_or0 = (fa(((h_s_wallace_cla8_fa10_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_3_2 >> 0) & 0x01), ((h_s_wallace_cla8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cla8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cla8_fa12_xor1 = (fa(((h_s_wallace_cla8_fa11_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_4_2 >> 0) & 0x01), ((h_s_wallace_cla8_and_3_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa12_or0 = (fa(((h_s_wallace_cla8_fa11_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_4_2 >> 0) & 0x01), ((h_s_wallace_cla8_and_3_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cla8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cla8_fa13_xor1 = (fa(((h_s_wallace_cla8_fa12_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_5_2 >> 0) & 0x01), ((h_s_wallace_cla8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa13_or0 = (fa(((h_s_wallace_cla8_fa12_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_5_2 >> 0) & 0x01), ((h_s_wallace_cla8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cla8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cla8_fa14_xor1 = (fa(((h_s_wallace_cla8_fa13_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_6_2 >> 0) & 0x01), ((h_s_wallace_cla8_and_5_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa14_or0 = (fa(((h_s_wallace_cla8_fa13_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_6_2 >> 0) & 0x01), ((h_s_wallace_cla8_and_5_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cla8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cla8_fa15_xor1 = (fa(((h_s_wallace_cla8_fa14_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_5_4 >> 0) & 0x01), ((h_s_wallace_cla8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa15_or0 = (fa(((h_s_wallace_cla8_fa14_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_5_4 >> 0) & 0x01), ((h_s_wallace_cla8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cla8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cla8_fa16_xor1 = (fa(((h_s_wallace_cla8_fa15_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_5_5 >> 0) & 0x01), ((h_s_wallace_cla8_and_4_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa16_or0 = (fa(((h_s_wallace_cla8_fa15_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_5_5 >> 0) & 0x01), ((h_s_wallace_cla8_and_4_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cla8_nand_4_7 = nand_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cla8_fa17_xor1 = (fa(((h_s_wallace_cla8_fa16_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_5_6 >> 0) & 0x01), ((h_s_wallace_cla8_nand_4_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa17_or0 = (fa(((h_s_wallace_cla8_fa16_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_5_6 >> 0) & 0x01), ((h_s_wallace_cla8_nand_4_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cla8_ha2_xor0 = (ha(((h_s_wallace_cla8_and_0_4 >> 0) & 0x01), ((h_s_wallace_cla8_fa1_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_ha2_and0 = (ha(((h_s_wallace_cla8_and_0_4 >> 0) & 0x01), ((h_s_wallace_cla8_fa1_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cla8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cla8_fa18_xor1 = (fa(((h_s_wallace_cla8_ha2_and0 >> 0) & 0x01), ((h_s_wallace_cla8_and_1_4 >> 0) & 0x01), ((h_s_wallace_cla8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa18_or0 = (fa(((h_s_wallace_cla8_ha2_and0 >> 0) & 0x01), ((h_s_wallace_cla8_and_1_4 >> 0) & 0x01), ((h_s_wallace_cla8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cla8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cla8_fa19_xor1 = (fa(((h_s_wallace_cla8_fa18_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_2_4 >> 0) & 0x01), ((h_s_wallace_cla8_and_1_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa19_or0 = (fa(((h_s_wallace_cla8_fa18_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_2_4 >> 0) & 0x01), ((h_s_wallace_cla8_and_1_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cla8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cla8_fa20_xor1 = (fa(((h_s_wallace_cla8_fa19_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_3_4 >> 0) & 0x01), ((h_s_wallace_cla8_and_2_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa20_or0 = (fa(((h_s_wallace_cla8_fa19_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_3_4 >> 0) & 0x01), ((h_s_wallace_cla8_and_2_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cla8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cla8_fa21_xor1 = (fa(((h_s_wallace_cla8_fa20_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_4_4 >> 0) & 0x01), ((h_s_wallace_cla8_and_3_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa21_or0 = (fa(((h_s_wallace_cla8_fa20_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_4_4 >> 0) & 0x01), ((h_s_wallace_cla8_and_3_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cla8_nand_2_7 = nand_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cla8_fa22_xor1 = (fa(((h_s_wallace_cla8_fa21_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_3_6 >> 0) & 0x01), ((h_s_wallace_cla8_nand_2_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa22_or0 = (fa(((h_s_wallace_cla8_fa21_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_3_6 >> 0) & 0x01), ((h_s_wallace_cla8_nand_2_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_nand_3_7 = nand_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cla8_fa23_xor1 = (fa(((h_s_wallace_cla8_fa22_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_3_7 >> 0) & 0x01), ((h_s_wallace_cla8_fa7_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa23_or0 = (fa(((h_s_wallace_cla8_fa22_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_3_7 >> 0) & 0x01), ((h_s_wallace_cla8_fa7_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_ha3_xor0 = (ha(((h_s_wallace_cla8_fa2_xor1 >> 0) & 0x01), ((h_s_wallace_cla8_fa11_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_ha3_and0 = (ha(((h_s_wallace_cla8_fa2_xor1 >> 0) & 0x01), ((h_s_wallace_cla8_fa11_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cla8_fa24_xor1 = (fa(((h_s_wallace_cla8_ha3_and0 >> 0) & 0x01), ((h_s_wallace_cla8_and_0_6 >> 0) & 0x01), ((h_s_wallace_cla8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa24_or0 = (fa(((h_s_wallace_cla8_ha3_and0 >> 0) & 0x01), ((h_s_wallace_cla8_and_0_6 >> 0) & 0x01), ((h_s_wallace_cla8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cla8_nand_0_7 = nand_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cla8_fa25_xor1 = (fa(((h_s_wallace_cla8_fa24_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_1_6 >> 0) & 0x01), ((h_s_wallace_cla8_nand_0_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa25_or0 = (fa(((h_s_wallace_cla8_fa24_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_1_6 >> 0) & 0x01), ((h_s_wallace_cla8_nand_0_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cla8_nand_1_7 = nand_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cla8_fa26_xor1 = (fa(((h_s_wallace_cla8_fa25_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_2_6 >> 0) & 0x01), ((h_s_wallace_cla8_nand_1_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa26_or0 = (fa(((h_s_wallace_cla8_fa25_or0 >> 0) & 0x01), ((h_s_wallace_cla8_and_2_6 >> 0) & 0x01), ((h_s_wallace_cla8_nand_1_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_fa27_xor1 = (fa(((h_s_wallace_cla8_fa26_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa6_xor1 >> 0) & 0x01), ((h_s_wallace_cla8_fa15_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa27_or0 = (fa(((h_s_wallace_cla8_fa26_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa6_xor1 >> 0) & 0x01), ((h_s_wallace_cla8_fa15_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_ha4_xor0 = (ha(((h_s_wallace_cla8_fa12_xor1 >> 0) & 0x01), ((h_s_wallace_cla8_fa19_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_ha4_and0 = (ha(((h_s_wallace_cla8_fa12_xor1 >> 0) & 0x01), ((h_s_wallace_cla8_fa19_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_fa28_xor1 = (fa(((h_s_wallace_cla8_ha4_and0 >> 0) & 0x01), ((h_s_wallace_cla8_fa4_xor1 >> 0) & 0x01), ((h_s_wallace_cla8_fa13_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa28_or0 = (fa(((h_s_wallace_cla8_ha4_and0 >> 0) & 0x01), ((h_s_wallace_cla8_fa4_xor1 >> 0) & 0x01), ((h_s_wallace_cla8_fa13_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_fa29_xor1 = (fa(((h_s_wallace_cla8_fa28_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa5_xor1 >> 0) & 0x01), ((h_s_wallace_cla8_fa14_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa29_or0 = (fa(((h_s_wallace_cla8_fa28_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa5_xor1 >> 0) & 0x01), ((h_s_wallace_cla8_fa14_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_ha5_xor0 = (ha(((h_s_wallace_cla8_fa20_xor1 >> 0) & 0x01), ((h_s_wallace_cla8_fa25_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_ha5_and0 = (ha(((h_s_wallace_cla8_fa20_xor1 >> 0) & 0x01), ((h_s_wallace_cla8_fa25_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_fa30_xor1 = (fa(((h_s_wallace_cla8_ha5_and0 >> 0) & 0x01), ((h_s_wallace_cla8_fa21_xor1 >> 0) & 0x01), ((h_s_wallace_cla8_fa26_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa30_or0 = (fa(((h_s_wallace_cla8_ha5_and0 >> 0) & 0x01), ((h_s_wallace_cla8_fa21_xor1 >> 0) & 0x01), ((h_s_wallace_cla8_fa26_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_fa31_xor1 = (fa(((h_s_wallace_cla8_fa30_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa29_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa22_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa31_or0 = (fa(((h_s_wallace_cla8_fa30_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa29_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa22_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_fa32_xor1 = (fa(((h_s_wallace_cla8_fa31_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa27_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa16_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa32_or0 = (fa(((h_s_wallace_cla8_fa31_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa27_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa16_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_fa33_xor1 = (fa(((h_s_wallace_cla8_fa32_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa23_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa8_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa33_or0 = (fa(((h_s_wallace_cla8_fa32_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa23_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa8_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_nand_5_7 = nand_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cla8_fa34_xor1 = (fa(((h_s_wallace_cla8_fa33_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa17_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa34_or0 = (fa(((h_s_wallace_cla8_fa33_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa17_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_nand_7_6 = nand_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cla8_fa35_xor1 = (fa(((h_s_wallace_cla8_fa34_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa9_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cla8_fa35_or0 = (fa(((h_s_wallace_cla8_fa34_or0 >> 0) & 0x01), ((h_s_wallace_cla8_fa9_or0 >> 0) & 0x01), ((h_s_wallace_cla8_nand_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cla8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cla8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cla8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cla8_nand_6_7 = nand_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cla8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cla8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cla8_u_cla14_a |= ((h_s_wallace_cla8_and_1_0 >> 0) & 0x01) << 0; - h_s_wallace_cla8_u_cla14_a |= ((h_s_wallace_cla8_and_0_2 >> 0) & 0x01) << 1; - h_s_wallace_cla8_u_cla14_a |= ((h_s_wallace_cla8_fa0_xor1 >> 0) & 0x01) << 2; - h_s_wallace_cla8_u_cla14_a |= ((h_s_wallace_cla8_fa10_xor1 >> 0) & 0x01) << 3; - h_s_wallace_cla8_u_cla14_a |= ((h_s_wallace_cla8_fa18_xor1 >> 0) & 0x01) << 4; - h_s_wallace_cla8_u_cla14_a |= ((h_s_wallace_cla8_fa24_xor1 >> 0) & 0x01) << 5; - h_s_wallace_cla8_u_cla14_a |= ((h_s_wallace_cla8_fa28_xor1 >> 0) & 0x01) << 6; - h_s_wallace_cla8_u_cla14_a |= ((h_s_wallace_cla8_fa29_xor1 >> 0) & 0x01) << 7; - h_s_wallace_cla8_u_cla14_a |= ((h_s_wallace_cla8_fa27_xor1 >> 0) & 0x01) << 8; - h_s_wallace_cla8_u_cla14_a |= ((h_s_wallace_cla8_fa23_xor1 >> 0) & 0x01) << 9; - h_s_wallace_cla8_u_cla14_a |= ((h_s_wallace_cla8_fa17_xor1 >> 0) & 0x01) << 10; - h_s_wallace_cla8_u_cla14_a |= ((h_s_wallace_cla8_fa9_xor1 >> 0) & 0x01) << 11; - h_s_wallace_cla8_u_cla14_a |= ((h_s_wallace_cla8_nand_6_7 >> 0) & 0x01) << 12; - h_s_wallace_cla8_u_cla14_a |= ((h_s_wallace_cla8_fa35_or0 >> 0) & 0x01) << 13; - h_s_wallace_cla8_u_cla14_b |= ((h_s_wallace_cla8_and_0_1 >> 0) & 0x01) << 0; - h_s_wallace_cla8_u_cla14_b |= ((h_s_wallace_cla8_ha0_xor0 >> 0) & 0x01) << 1; - h_s_wallace_cla8_u_cla14_b |= ((h_s_wallace_cla8_ha1_xor0 >> 0) & 0x01) << 2; - h_s_wallace_cla8_u_cla14_b |= ((h_s_wallace_cla8_ha2_xor0 >> 0) & 0x01) << 3; - h_s_wallace_cla8_u_cla14_b |= ((h_s_wallace_cla8_ha3_xor0 >> 0) & 0x01) << 4; - h_s_wallace_cla8_u_cla14_b |= ((h_s_wallace_cla8_ha4_xor0 >> 0) & 0x01) << 5; - h_s_wallace_cla8_u_cla14_b |= ((h_s_wallace_cla8_ha5_xor0 >> 0) & 0x01) << 6; - h_s_wallace_cla8_u_cla14_b |= ((h_s_wallace_cla8_fa30_xor1 >> 0) & 0x01) << 7; - h_s_wallace_cla8_u_cla14_b |= ((h_s_wallace_cla8_fa31_xor1 >> 0) & 0x01) << 8; - h_s_wallace_cla8_u_cla14_b |= ((h_s_wallace_cla8_fa32_xor1 >> 0) & 0x01) << 9; - h_s_wallace_cla8_u_cla14_b |= ((h_s_wallace_cla8_fa33_xor1 >> 0) & 0x01) << 10; - h_s_wallace_cla8_u_cla14_b |= ((h_s_wallace_cla8_fa34_xor1 >> 0) & 0x01) << 11; - h_s_wallace_cla8_u_cla14_b |= ((h_s_wallace_cla8_fa35_xor1 >> 0) & 0x01) << 12; - h_s_wallace_cla8_u_cla14_b |= ((h_s_wallace_cla8_and_7_7 >> 0) & 0x01) << 13; - h_s_wallace_cla8_u_cla14_out = u_cla14(h_s_wallace_cla8_u_cla14_a, h_s_wallace_cla8_u_cla14_b); - h_s_wallace_cla8_xor0 = not_gate(((h_s_wallace_cla8_u_cla14_out >> 14) & 0x01)); - - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_and_0_0 >> 0) & 0x01) << 0; - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_u_cla14_out >> 0) & 0x01) << 1; - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_u_cla14_out >> 1) & 0x01) << 2; - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_u_cla14_out >> 2) & 0x01) << 3; - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_u_cla14_out >> 3) & 0x01) << 4; - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_u_cla14_out >> 4) & 0x01) << 5; - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_u_cla14_out >> 5) & 0x01) << 6; - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_u_cla14_out >> 6) & 0x01) << 7; - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_u_cla14_out >> 7) & 0x01) << 8; - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_u_cla14_out >> 8) & 0x01) << 9; - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_u_cla14_out >> 9) & 0x01) << 10; - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_u_cla14_out >> 10) & 0x01) << 11; - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_u_cla14_out >> 11) & 0x01) << 12; - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_u_cla14_out >> 12) & 0x01) << 13; - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_u_cla14_out >> 13) & 0x01) << 14; - h_s_wallace_cla8_out |= ((h_s_wallace_cla8_xor0 >> 0) & 0x01) << 15; - return h_s_wallace_cla8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)h_s_wallace_cla8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cska4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cska4.c deleted file mode 100644 index 017ddc0..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cska4.c +++ /dev/null @@ -1,239 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t mux2to1(uint8_t d0, uint8_t d1, uint8_t sel){ - uint8_t mux2to1_out = 0; - uint8_t mux2to1_and0 = 0; - uint8_t mux2to1_not0 = 0; - uint8_t mux2to1_and1 = 0; - uint8_t mux2to1_xor0 = 0; - - mux2to1_and0 = and_gate(((d1 >> 0) & 0x01), ((sel >> 0) & 0x01)); - mux2to1_not0 = not_gate(((sel >> 0) & 0x01)); - mux2to1_and1 = and_gate(((d0 >> 0) & 0x01), ((mux2to1_not0 >> 0) & 0x01)); - mux2to1_xor0 = xor_gate(((mux2to1_and0 >> 0) & 0x01), ((mux2to1_and1 >> 0) & 0x01)); - - mux2to1_out |= ((mux2to1_xor0 >> 0) & 0x01) << 0; - return mux2to1_out; -} - -uint64_t u_cska6(uint64_t a, uint64_t b){ - uint8_t u_cska6_out = 0; - uint8_t u_cska6_xor0 = 0; - uint8_t u_cska6_ha0_xor0 = 0; - uint8_t u_cska6_ha0_and0 = 0; - uint8_t u_cska6_xor1 = 0; - uint8_t u_cska6_fa0_xor1 = 0; - uint8_t u_cska6_fa0_or0 = 0; - uint8_t u_cska6_xor2 = 0; - uint8_t u_cska6_fa1_xor1 = 0; - uint8_t u_cska6_fa1_or0 = 0; - uint8_t u_cska6_xor3 = 0; - uint8_t u_cska6_fa2_xor1 = 0; - uint8_t u_cska6_fa2_or0 = 0; - uint8_t u_cska6_and_propagate00 = 0; - uint8_t u_cska6_and_propagate01 = 0; - uint8_t u_cska6_and_propagate02 = 0; - uint8_t u_cska6_mux2to10_and1 = 0; - uint8_t u_cska6_xor4 = 0; - uint8_t u_cska6_fa3_xor1 = 0; - uint8_t u_cska6_fa3_or0 = 0; - uint8_t u_cska6_xor5 = 0; - uint8_t u_cska6_fa4_xor1 = 0; - uint8_t u_cska6_fa4_or0 = 0; - uint8_t u_cska6_and_propagate13 = 0; - uint8_t u_cska6_mux2to11_xor0 = 0; - - u_cska6_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - u_cska6_ha0_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_ha0_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor1 = xor_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - u_cska6_fa0_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska6_ha0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa0_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska6_ha0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor2 = xor_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - u_cska6_fa1_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska6_fa0_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa1_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska6_fa0_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor3 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - u_cska6_fa2_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska6_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa2_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska6_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_and_propagate00 = and_gate(((u_cska6_xor0 >> 0) & 0x01), ((u_cska6_xor2 >> 0) & 0x01)); - u_cska6_and_propagate01 = and_gate(((u_cska6_xor1 >> 0) & 0x01), ((u_cska6_xor3 >> 0) & 0x01)); - u_cska6_and_propagate02 = and_gate(((u_cska6_and_propagate00 >> 0) & 0x01), ((u_cska6_and_propagate01 >> 0) & 0x01)); - u_cska6_mux2to10_and1 = (mux2to1(((u_cska6_fa2_or0 >> 0) & 0x01), (0x00), ((u_cska6_and_propagate02 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_xor4 = xor_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - u_cska6_fa3_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska6_mux2to10_and1 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa3_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska6_mux2to10_and1 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor5 = xor_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - u_cska6_fa4_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska6_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa4_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska6_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_and_propagate13 = and_gate(((u_cska6_xor4 >> 0) & 0x01), ((u_cska6_xor5 >> 0) & 0x01)); - u_cska6_mux2to11_xor0 = (mux2to1(((u_cska6_fa4_or0 >> 0) & 0x01), ((u_cska6_mux2to10_and1 >> 0) & 0x01), ((u_cska6_and_propagate13 >> 0) & 0x01)) >> 0) & 0x01; - - u_cska6_out |= ((u_cska6_ha0_xor0 >> 0) & 0x01) << 0; - u_cska6_out |= ((u_cska6_fa0_xor1 >> 0) & 0x01) << 1; - u_cska6_out |= ((u_cska6_fa1_xor1 >> 0) & 0x01) << 2; - u_cska6_out |= ((u_cska6_fa2_xor1 >> 0) & 0x01) << 3; - u_cska6_out |= ((u_cska6_fa3_xor1 >> 0) & 0x01) << 4; - u_cska6_out |= ((u_cska6_fa4_xor1 >> 0) & 0x01) << 5; - u_cska6_out |= ((u_cska6_mux2to11_xor0 >> 0) & 0x01) << 6; - return u_cska6_out; -} - -uint64_t h_s_wallace_cska4(uint64_t a, uint64_t b){ - uint8_t h_s_wallace_cska4_out = 0; - uint8_t h_s_wallace_cska4_and_2_0 = 0; - uint8_t h_s_wallace_cska4_and_1_1 = 0; - uint8_t h_s_wallace_cska4_ha0_xor0 = 0; - uint8_t h_s_wallace_cska4_ha0_and0 = 0; - uint8_t h_s_wallace_cska4_nand_3_0 = 0; - uint8_t h_s_wallace_cska4_and_2_1 = 0; - uint8_t h_s_wallace_cska4_fa0_xor1 = 0; - uint8_t h_s_wallace_cska4_fa0_or0 = 0; - uint8_t h_s_wallace_cska4_nand_3_1 = 0; - uint8_t h_s_wallace_cska4_fa1_xor1 = 0; - uint8_t h_s_wallace_cska4_fa1_or0 = 0; - uint8_t h_s_wallace_cska4_and_1_2 = 0; - uint8_t h_s_wallace_cska4_nand_0_3 = 0; - uint8_t h_s_wallace_cska4_ha1_xor0 = 0; - uint8_t h_s_wallace_cska4_ha1_and0 = 0; - uint8_t h_s_wallace_cska4_and_2_2 = 0; - uint8_t h_s_wallace_cska4_nand_1_3 = 0; - uint8_t h_s_wallace_cska4_fa2_xor1 = 0; - uint8_t h_s_wallace_cska4_fa2_or0 = 0; - uint8_t h_s_wallace_cska4_nand_3_2 = 0; - uint8_t h_s_wallace_cska4_fa3_xor1 = 0; - uint8_t h_s_wallace_cska4_fa3_or0 = 0; - uint8_t h_s_wallace_cska4_and_0_0 = 0; - uint8_t h_s_wallace_cska4_and_1_0 = 0; - uint8_t h_s_wallace_cska4_and_0_2 = 0; - uint8_t h_s_wallace_cska4_nand_2_3 = 0; - uint8_t h_s_wallace_cska4_and_0_1 = 0; - uint8_t h_s_wallace_cska4_and_3_3 = 0; - uint64_t h_s_wallace_cska4_u_cska6_a = 0; - uint64_t h_s_wallace_cska4_u_cska6_b = 0; - uint64_t h_s_wallace_cska4_u_cska6_out = 0; - uint8_t h_s_wallace_cska4_xor0 = 0; - - h_s_wallace_cska4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cska4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cska4_ha0_xor0 = (ha(((h_s_wallace_cska4_and_2_0 >> 0) & 0x01), ((h_s_wallace_cska4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska4_ha0_and0 = (ha(((h_s_wallace_cska4_and_2_0 >> 0) & 0x01), ((h_s_wallace_cska4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska4_nand_3_0 = nand_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cska4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cska4_fa0_xor1 = (fa(((h_s_wallace_cska4_ha0_and0 >> 0) & 0x01), ((h_s_wallace_cska4_nand_3_0 >> 0) & 0x01), ((h_s_wallace_cska4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska4_fa0_or0 = (fa(((h_s_wallace_cska4_ha0_and0 >> 0) & 0x01), ((h_s_wallace_cska4_nand_3_0 >> 0) & 0x01), ((h_s_wallace_cska4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska4_nand_3_1 = nand_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cska4_fa1_xor1 = (fa(((h_s_wallace_cska4_fa0_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_cska4_nand_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska4_fa1_or0 = (fa(((h_s_wallace_cska4_fa0_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_cska4_nand_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cska4_nand_0_3 = nand_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cska4_ha1_xor0 = (ha(((h_s_wallace_cska4_and_1_2 >> 0) & 0x01), ((h_s_wallace_cska4_nand_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska4_ha1_and0 = (ha(((h_s_wallace_cska4_and_1_2 >> 0) & 0x01), ((h_s_wallace_cska4_nand_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cska4_nand_1_3 = nand_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cska4_fa2_xor1 = (fa(((h_s_wallace_cska4_ha1_and0 >> 0) & 0x01), ((h_s_wallace_cska4_and_2_2 >> 0) & 0x01), ((h_s_wallace_cska4_nand_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska4_fa2_or0 = (fa(((h_s_wallace_cska4_ha1_and0 >> 0) & 0x01), ((h_s_wallace_cska4_and_2_2 >> 0) & 0x01), ((h_s_wallace_cska4_nand_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska4_nand_3_2 = nand_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cska4_fa3_xor1 = (fa(((h_s_wallace_cska4_fa2_or0 >> 0) & 0x01), ((h_s_wallace_cska4_fa1_or0 >> 0) & 0x01), ((h_s_wallace_cska4_nand_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska4_fa3_or0 = (fa(((h_s_wallace_cska4_fa2_or0 >> 0) & 0x01), ((h_s_wallace_cska4_fa1_or0 >> 0) & 0x01), ((h_s_wallace_cska4_nand_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cska4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cska4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cska4_nand_2_3 = nand_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cska4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cska4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cska4_u_cska6_a |= ((h_s_wallace_cska4_and_1_0 >> 0) & 0x01) << 0; - h_s_wallace_cska4_u_cska6_a |= ((h_s_wallace_cska4_and_0_2 >> 0) & 0x01) << 1; - h_s_wallace_cska4_u_cska6_a |= ((h_s_wallace_cska4_fa0_xor1 >> 0) & 0x01) << 2; - h_s_wallace_cska4_u_cska6_a |= ((h_s_wallace_cska4_fa1_xor1 >> 0) & 0x01) << 3; - h_s_wallace_cska4_u_cska6_a |= ((h_s_wallace_cska4_nand_2_3 >> 0) & 0x01) << 4; - h_s_wallace_cska4_u_cska6_a |= ((h_s_wallace_cska4_fa3_or0 >> 0) & 0x01) << 5; - h_s_wallace_cska4_u_cska6_b |= ((h_s_wallace_cska4_and_0_1 >> 0) & 0x01) << 0; - h_s_wallace_cska4_u_cska6_b |= ((h_s_wallace_cska4_ha0_xor0 >> 0) & 0x01) << 1; - h_s_wallace_cska4_u_cska6_b |= ((h_s_wallace_cska4_ha1_xor0 >> 0) & 0x01) << 2; - h_s_wallace_cska4_u_cska6_b |= ((h_s_wallace_cska4_fa2_xor1 >> 0) & 0x01) << 3; - h_s_wallace_cska4_u_cska6_b |= ((h_s_wallace_cska4_fa3_xor1 >> 0) & 0x01) << 4; - h_s_wallace_cska4_u_cska6_b |= ((h_s_wallace_cska4_and_3_3 >> 0) & 0x01) << 5; - h_s_wallace_cska4_u_cska6_out = u_cska6(h_s_wallace_cska4_u_cska6_a, h_s_wallace_cska4_u_cska6_b); - h_s_wallace_cska4_xor0 = not_gate(((h_s_wallace_cska4_u_cska6_out >> 6) & 0x01)); - - h_s_wallace_cska4_out |= ((h_s_wallace_cska4_and_0_0 >> 0) & 0x01) << 0; - h_s_wallace_cska4_out |= ((h_s_wallace_cska4_u_cska6_out >> 0) & 0x01) << 1; - h_s_wallace_cska4_out |= ((h_s_wallace_cska4_u_cska6_out >> 1) & 0x01) << 2; - h_s_wallace_cska4_out |= ((h_s_wallace_cska4_u_cska6_out >> 2) & 0x01) << 3; - h_s_wallace_cska4_out |= ((h_s_wallace_cska4_u_cska6_out >> 3) & 0x01) << 4; - h_s_wallace_cska4_out |= ((h_s_wallace_cska4_u_cska6_out >> 4) & 0x01) << 5; - h_s_wallace_cska4_out |= ((h_s_wallace_cska4_u_cska6_out >> 5) & 0x01) << 6; - h_s_wallace_cska4_out |= ((h_s_wallace_cska4_xor0 >> 0) & 0x01) << 7; - return h_s_wallace_cska4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)h_s_wallace_cska4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cska8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cska8.c deleted file mode 100644 index 8603d74..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_cska8.c +++ /dev/null @@ -1,575 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t mux2to1(uint8_t d0, uint8_t d1, uint8_t sel){ - uint8_t mux2to1_out = 0; - uint8_t mux2to1_and0 = 0; - uint8_t mux2to1_not0 = 0; - uint8_t mux2to1_and1 = 0; - uint8_t mux2to1_xor0 = 0; - - mux2to1_and0 = and_gate(((d1 >> 0) & 0x01), ((sel >> 0) & 0x01)); - mux2to1_not0 = not_gate(((sel >> 0) & 0x01)); - mux2to1_and1 = and_gate(((d0 >> 0) & 0x01), ((mux2to1_not0 >> 0) & 0x01)); - mux2to1_xor0 = xor_gate(((mux2to1_and0 >> 0) & 0x01), ((mux2to1_and1 >> 0) & 0x01)); - - mux2to1_out |= ((mux2to1_xor0 >> 0) & 0x01) << 0; - return mux2to1_out; -} - -uint64_t u_cska14(uint64_t a, uint64_t b){ - uint64_t u_cska14_out = 0; - uint8_t u_cska14_xor0 = 0; - uint8_t u_cska14_ha0_xor0 = 0; - uint8_t u_cska14_ha0_and0 = 0; - uint8_t u_cska14_xor1 = 0; - uint8_t u_cska14_fa0_xor1 = 0; - uint8_t u_cska14_fa0_or0 = 0; - uint8_t u_cska14_xor2 = 0; - uint8_t u_cska14_fa1_xor1 = 0; - uint8_t u_cska14_fa1_or0 = 0; - uint8_t u_cska14_xor3 = 0; - uint8_t u_cska14_fa2_xor1 = 0; - uint8_t u_cska14_fa2_or0 = 0; - uint8_t u_cska14_and_propagate00 = 0; - uint8_t u_cska14_and_propagate01 = 0; - uint8_t u_cska14_and_propagate02 = 0; - uint8_t u_cska14_mux2to10_and1 = 0; - uint8_t u_cska14_xor4 = 0; - uint8_t u_cska14_fa3_xor1 = 0; - uint8_t u_cska14_fa3_or0 = 0; - uint8_t u_cska14_xor5 = 0; - uint8_t u_cska14_fa4_xor1 = 0; - uint8_t u_cska14_fa4_or0 = 0; - uint8_t u_cska14_xor6 = 0; - uint8_t u_cska14_fa5_xor1 = 0; - uint8_t u_cska14_fa5_or0 = 0; - uint8_t u_cska14_xor7 = 0; - uint8_t u_cska14_fa6_xor1 = 0; - uint8_t u_cska14_fa6_or0 = 0; - uint8_t u_cska14_and_propagate13 = 0; - uint8_t u_cska14_and_propagate14 = 0; - uint8_t u_cska14_and_propagate15 = 0; - uint8_t u_cska14_mux2to11_xor0 = 0; - uint8_t u_cska14_xor8 = 0; - uint8_t u_cska14_fa7_xor1 = 0; - uint8_t u_cska14_fa7_or0 = 0; - uint8_t u_cska14_xor9 = 0; - uint8_t u_cska14_fa8_xor1 = 0; - uint8_t u_cska14_fa8_or0 = 0; - uint8_t u_cska14_xor10 = 0; - uint8_t u_cska14_fa9_xor1 = 0; - uint8_t u_cska14_fa9_or0 = 0; - uint8_t u_cska14_xor11 = 0; - uint8_t u_cska14_fa10_xor1 = 0; - uint8_t u_cska14_fa10_or0 = 0; - uint8_t u_cska14_and_propagate26 = 0; - uint8_t u_cska14_and_propagate27 = 0; - uint8_t u_cska14_and_propagate28 = 0; - uint8_t u_cska14_mux2to12_xor0 = 0; - uint8_t u_cska14_xor12 = 0; - uint8_t u_cska14_fa11_xor1 = 0; - uint8_t u_cska14_fa11_or0 = 0; - uint8_t u_cska14_xor13 = 0; - uint8_t u_cska14_fa12_xor1 = 0; - uint8_t u_cska14_fa12_or0 = 0; - uint8_t u_cska14_and_propagate39 = 0; - uint8_t u_cska14_mux2to13_xor0 = 0; - - u_cska14_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - u_cska14_ha0_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_ha0_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor1 = xor_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - u_cska14_fa0_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska14_ha0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa0_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska14_ha0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor2 = xor_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - u_cska14_fa1_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska14_fa0_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa1_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska14_fa0_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor3 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - u_cska14_fa2_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska14_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa2_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska14_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate00 = and_gate(((u_cska14_xor0 >> 0) & 0x01), ((u_cska14_xor2 >> 0) & 0x01)); - u_cska14_and_propagate01 = and_gate(((u_cska14_xor1 >> 0) & 0x01), ((u_cska14_xor3 >> 0) & 0x01)); - u_cska14_and_propagate02 = and_gate(((u_cska14_and_propagate00 >> 0) & 0x01), ((u_cska14_and_propagate01 >> 0) & 0x01)); - u_cska14_mux2to10_and1 = (mux2to1(((u_cska14_fa2_or0 >> 0) & 0x01), (0x00), ((u_cska14_and_propagate02 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_xor4 = xor_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - u_cska14_fa3_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska14_mux2to10_and1 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa3_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska14_mux2to10_and1 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor5 = xor_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - u_cska14_fa4_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska14_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa4_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska14_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor6 = xor_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - u_cska14_fa5_xor1 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_cska14_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa5_or0 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_cska14_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor7 = xor_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - u_cska14_fa6_xor1 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_cska14_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa6_or0 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_cska14_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate13 = and_gate(((u_cska14_xor4 >> 0) & 0x01), ((u_cska14_xor6 >> 0) & 0x01)); - u_cska14_and_propagate14 = and_gate(((u_cska14_xor5 >> 0) & 0x01), ((u_cska14_xor7 >> 0) & 0x01)); - u_cska14_and_propagate15 = and_gate(((u_cska14_and_propagate13 >> 0) & 0x01), ((u_cska14_and_propagate14 >> 0) & 0x01)); - u_cska14_mux2to11_xor0 = (mux2to1(((u_cska14_fa6_or0 >> 0) & 0x01), ((u_cska14_mux2to10_and1 >> 0) & 0x01), ((u_cska14_and_propagate15 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_xor8 = xor_gate(((a >> 8) & 0x01), ((b >> 8) & 0x01)); - u_cska14_fa7_xor1 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_cska14_mux2to11_xor0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa7_or0 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_cska14_mux2to11_xor0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor9 = xor_gate(((a >> 9) & 0x01), ((b >> 9) & 0x01)); - u_cska14_fa8_xor1 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_cska14_fa7_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa8_or0 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_cska14_fa7_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor10 = xor_gate(((a >> 10) & 0x01), ((b >> 10) & 0x01)); - u_cska14_fa9_xor1 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_cska14_fa8_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa9_or0 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_cska14_fa8_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor11 = xor_gate(((a >> 11) & 0x01), ((b >> 11) & 0x01)); - u_cska14_fa10_xor1 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_cska14_fa9_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa10_or0 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_cska14_fa9_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate26 = and_gate(((u_cska14_xor8 >> 0) & 0x01), ((u_cska14_xor10 >> 0) & 0x01)); - u_cska14_and_propagate27 = and_gate(((u_cska14_xor9 >> 0) & 0x01), ((u_cska14_xor11 >> 0) & 0x01)); - u_cska14_and_propagate28 = and_gate(((u_cska14_and_propagate26 >> 0) & 0x01), ((u_cska14_and_propagate27 >> 0) & 0x01)); - u_cska14_mux2to12_xor0 = (mux2to1(((u_cska14_fa10_or0 >> 0) & 0x01), ((u_cska14_mux2to11_xor0 >> 0) & 0x01), ((u_cska14_and_propagate28 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_xor12 = xor_gate(((a >> 12) & 0x01), ((b >> 12) & 0x01)); - u_cska14_fa11_xor1 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_cska14_mux2to12_xor0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa11_or0 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_cska14_mux2to12_xor0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor13 = xor_gate(((a >> 13) & 0x01), ((b >> 13) & 0x01)); - u_cska14_fa12_xor1 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_cska14_fa11_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa12_or0 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_cska14_fa11_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate39 = and_gate(((u_cska14_xor12 >> 0) & 0x01), ((u_cska14_xor13 >> 0) & 0x01)); - u_cska14_mux2to13_xor0 = (mux2to1(((u_cska14_fa12_or0 >> 0) & 0x01), ((u_cska14_mux2to12_xor0 >> 0) & 0x01), ((u_cska14_and_propagate39 >> 0) & 0x01)) >> 0) & 0x01; - - u_cska14_out |= ((u_cska14_ha0_xor0 >> 0) & 0x01) << 0; - u_cska14_out |= ((u_cska14_fa0_xor1 >> 0) & 0x01) << 1; - u_cska14_out |= ((u_cska14_fa1_xor1 >> 0) & 0x01) << 2; - u_cska14_out |= ((u_cska14_fa2_xor1 >> 0) & 0x01) << 3; - u_cska14_out |= ((u_cska14_fa3_xor1 >> 0) & 0x01) << 4; - u_cska14_out |= ((u_cska14_fa4_xor1 >> 0) & 0x01) << 5; - u_cska14_out |= ((u_cska14_fa5_xor1 >> 0) & 0x01) << 6; - u_cska14_out |= ((u_cska14_fa6_xor1 >> 0) & 0x01) << 7; - u_cska14_out |= ((u_cska14_fa7_xor1 >> 0) & 0x01) << 8; - u_cska14_out |= ((u_cska14_fa8_xor1 >> 0) & 0x01) << 9; - u_cska14_out |= ((u_cska14_fa9_xor1 >> 0) & 0x01) << 10; - u_cska14_out |= ((u_cska14_fa10_xor1 >> 0) & 0x01) << 11; - u_cska14_out |= ((u_cska14_fa11_xor1 >> 0) & 0x01) << 12; - u_cska14_out |= ((u_cska14_fa12_xor1 >> 0) & 0x01) << 13; - u_cska14_out |= ((u_cska14_mux2to13_xor0 >> 0) & 0x01) << 14; - return u_cska14_out; -} - -uint64_t h_s_wallace_cska8(uint64_t a, uint64_t b){ - uint64_t h_s_wallace_cska8_out = 0; - uint8_t h_s_wallace_cska8_and_2_0 = 0; - uint8_t h_s_wallace_cska8_and_1_1 = 0; - uint8_t h_s_wallace_cska8_ha0_xor0 = 0; - uint8_t h_s_wallace_cska8_ha0_and0 = 0; - uint8_t h_s_wallace_cska8_and_3_0 = 0; - uint8_t h_s_wallace_cska8_and_2_1 = 0; - uint8_t h_s_wallace_cska8_fa0_xor1 = 0; - uint8_t h_s_wallace_cska8_fa0_or0 = 0; - uint8_t h_s_wallace_cska8_and_4_0 = 0; - uint8_t h_s_wallace_cska8_and_3_1 = 0; - uint8_t h_s_wallace_cska8_fa1_xor1 = 0; - uint8_t h_s_wallace_cska8_fa1_or0 = 0; - uint8_t h_s_wallace_cska8_and_5_0 = 0; - uint8_t h_s_wallace_cska8_and_4_1 = 0; - uint8_t h_s_wallace_cska8_fa2_xor1 = 0; - uint8_t h_s_wallace_cska8_fa2_or0 = 0; - uint8_t h_s_wallace_cska8_and_6_0 = 0; - uint8_t h_s_wallace_cska8_and_5_1 = 0; - uint8_t h_s_wallace_cska8_fa3_xor1 = 0; - uint8_t h_s_wallace_cska8_fa3_or0 = 0; - uint8_t h_s_wallace_cska8_nand_7_0 = 0; - uint8_t h_s_wallace_cska8_and_6_1 = 0; - uint8_t h_s_wallace_cska8_fa4_xor1 = 0; - uint8_t h_s_wallace_cska8_fa4_or0 = 0; - uint8_t h_s_wallace_cska8_nand_7_1 = 0; - uint8_t h_s_wallace_cska8_fa5_xor1 = 0; - uint8_t h_s_wallace_cska8_fa5_or0 = 0; - uint8_t h_s_wallace_cska8_nand_7_2 = 0; - uint8_t h_s_wallace_cska8_and_6_3 = 0; - uint8_t h_s_wallace_cska8_fa6_xor1 = 0; - uint8_t h_s_wallace_cska8_fa6_or0 = 0; - uint8_t h_s_wallace_cska8_nand_7_3 = 0; - uint8_t h_s_wallace_cska8_and_6_4 = 0; - uint8_t h_s_wallace_cska8_fa7_xor1 = 0; - uint8_t h_s_wallace_cska8_fa7_or0 = 0; - uint8_t h_s_wallace_cska8_nand_7_4 = 0; - uint8_t h_s_wallace_cska8_and_6_5 = 0; - uint8_t h_s_wallace_cska8_fa8_xor1 = 0; - uint8_t h_s_wallace_cska8_fa8_or0 = 0; - uint8_t h_s_wallace_cska8_nand_7_5 = 0; - uint8_t h_s_wallace_cska8_and_6_6 = 0; - uint8_t h_s_wallace_cska8_fa9_xor1 = 0; - uint8_t h_s_wallace_cska8_fa9_or0 = 0; - uint8_t h_s_wallace_cska8_and_1_2 = 0; - uint8_t h_s_wallace_cska8_and_0_3 = 0; - uint8_t h_s_wallace_cska8_ha1_xor0 = 0; - uint8_t h_s_wallace_cska8_ha1_and0 = 0; - uint8_t h_s_wallace_cska8_and_2_2 = 0; - uint8_t h_s_wallace_cska8_and_1_3 = 0; - uint8_t h_s_wallace_cska8_fa10_xor1 = 0; - uint8_t h_s_wallace_cska8_fa10_or0 = 0; - uint8_t h_s_wallace_cska8_and_3_2 = 0; - uint8_t h_s_wallace_cska8_and_2_3 = 0; - uint8_t h_s_wallace_cska8_fa11_xor1 = 0; - uint8_t h_s_wallace_cska8_fa11_or0 = 0; - uint8_t h_s_wallace_cska8_and_4_2 = 0; - uint8_t h_s_wallace_cska8_and_3_3 = 0; - uint8_t h_s_wallace_cska8_fa12_xor1 = 0; - uint8_t h_s_wallace_cska8_fa12_or0 = 0; - uint8_t h_s_wallace_cska8_and_5_2 = 0; - uint8_t h_s_wallace_cska8_and_4_3 = 0; - uint8_t h_s_wallace_cska8_fa13_xor1 = 0; - uint8_t h_s_wallace_cska8_fa13_or0 = 0; - uint8_t h_s_wallace_cska8_and_6_2 = 0; - uint8_t h_s_wallace_cska8_and_5_3 = 0; - uint8_t h_s_wallace_cska8_fa14_xor1 = 0; - uint8_t h_s_wallace_cska8_fa14_or0 = 0; - uint8_t h_s_wallace_cska8_and_5_4 = 0; - uint8_t h_s_wallace_cska8_and_4_5 = 0; - uint8_t h_s_wallace_cska8_fa15_xor1 = 0; - uint8_t h_s_wallace_cska8_fa15_or0 = 0; - uint8_t h_s_wallace_cska8_and_5_5 = 0; - uint8_t h_s_wallace_cska8_and_4_6 = 0; - uint8_t h_s_wallace_cska8_fa16_xor1 = 0; - uint8_t h_s_wallace_cska8_fa16_or0 = 0; - uint8_t h_s_wallace_cska8_and_5_6 = 0; - uint8_t h_s_wallace_cska8_nand_4_7 = 0; - uint8_t h_s_wallace_cska8_fa17_xor1 = 0; - uint8_t h_s_wallace_cska8_fa17_or0 = 0; - uint8_t h_s_wallace_cska8_and_0_4 = 0; - uint8_t h_s_wallace_cska8_ha2_xor0 = 0; - uint8_t h_s_wallace_cska8_ha2_and0 = 0; - uint8_t h_s_wallace_cska8_and_1_4 = 0; - uint8_t h_s_wallace_cska8_and_0_5 = 0; - uint8_t h_s_wallace_cska8_fa18_xor1 = 0; - uint8_t h_s_wallace_cska8_fa18_or0 = 0; - uint8_t h_s_wallace_cska8_and_2_4 = 0; - uint8_t h_s_wallace_cska8_and_1_5 = 0; - uint8_t h_s_wallace_cska8_fa19_xor1 = 0; - uint8_t h_s_wallace_cska8_fa19_or0 = 0; - uint8_t h_s_wallace_cska8_and_3_4 = 0; - uint8_t h_s_wallace_cska8_and_2_5 = 0; - uint8_t h_s_wallace_cska8_fa20_xor1 = 0; - uint8_t h_s_wallace_cska8_fa20_or0 = 0; - uint8_t h_s_wallace_cska8_and_4_4 = 0; - uint8_t h_s_wallace_cska8_and_3_5 = 0; - uint8_t h_s_wallace_cska8_fa21_xor1 = 0; - uint8_t h_s_wallace_cska8_fa21_or0 = 0; - uint8_t h_s_wallace_cska8_and_3_6 = 0; - uint8_t h_s_wallace_cska8_nand_2_7 = 0; - uint8_t h_s_wallace_cska8_fa22_xor1 = 0; - uint8_t h_s_wallace_cska8_fa22_or0 = 0; - uint8_t h_s_wallace_cska8_nand_3_7 = 0; - uint8_t h_s_wallace_cska8_fa23_xor1 = 0; - uint8_t h_s_wallace_cska8_fa23_or0 = 0; - uint8_t h_s_wallace_cska8_ha3_xor0 = 0; - uint8_t h_s_wallace_cska8_ha3_and0 = 0; - uint8_t h_s_wallace_cska8_and_0_6 = 0; - uint8_t h_s_wallace_cska8_fa24_xor1 = 0; - uint8_t h_s_wallace_cska8_fa24_or0 = 0; - uint8_t h_s_wallace_cska8_and_1_6 = 0; - uint8_t h_s_wallace_cska8_nand_0_7 = 0; - uint8_t h_s_wallace_cska8_fa25_xor1 = 0; - uint8_t h_s_wallace_cska8_fa25_or0 = 0; - uint8_t h_s_wallace_cska8_and_2_6 = 0; - uint8_t h_s_wallace_cska8_nand_1_7 = 0; - uint8_t h_s_wallace_cska8_fa26_xor1 = 0; - uint8_t h_s_wallace_cska8_fa26_or0 = 0; - uint8_t h_s_wallace_cska8_fa27_xor1 = 0; - uint8_t h_s_wallace_cska8_fa27_or0 = 0; - uint8_t h_s_wallace_cska8_ha4_xor0 = 0; - uint8_t h_s_wallace_cska8_ha4_and0 = 0; - uint8_t h_s_wallace_cska8_fa28_xor1 = 0; - uint8_t h_s_wallace_cska8_fa28_or0 = 0; - uint8_t h_s_wallace_cska8_fa29_xor1 = 0; - uint8_t h_s_wallace_cska8_fa29_or0 = 0; - uint8_t h_s_wallace_cska8_ha5_xor0 = 0; - uint8_t h_s_wallace_cska8_ha5_and0 = 0; - uint8_t h_s_wallace_cska8_fa30_xor1 = 0; - uint8_t h_s_wallace_cska8_fa30_or0 = 0; - uint8_t h_s_wallace_cska8_fa31_xor1 = 0; - uint8_t h_s_wallace_cska8_fa31_or0 = 0; - uint8_t h_s_wallace_cska8_fa32_xor1 = 0; - uint8_t h_s_wallace_cska8_fa32_or0 = 0; - uint8_t h_s_wallace_cska8_fa33_xor1 = 0; - uint8_t h_s_wallace_cska8_fa33_or0 = 0; - uint8_t h_s_wallace_cska8_nand_5_7 = 0; - uint8_t h_s_wallace_cska8_fa34_xor1 = 0; - uint8_t h_s_wallace_cska8_fa34_or0 = 0; - uint8_t h_s_wallace_cska8_nand_7_6 = 0; - uint8_t h_s_wallace_cska8_fa35_xor1 = 0; - uint8_t h_s_wallace_cska8_fa35_or0 = 0; - uint8_t h_s_wallace_cska8_and_0_0 = 0; - uint8_t h_s_wallace_cska8_and_1_0 = 0; - uint8_t h_s_wallace_cska8_and_0_2 = 0; - uint8_t h_s_wallace_cska8_nand_6_7 = 0; - uint8_t h_s_wallace_cska8_and_0_1 = 0; - uint8_t h_s_wallace_cska8_and_7_7 = 0; - uint64_t h_s_wallace_cska8_u_cska14_a = 0; - uint64_t h_s_wallace_cska8_u_cska14_b = 0; - uint64_t h_s_wallace_cska8_u_cska14_out = 0; - uint8_t h_s_wallace_cska8_xor0 = 0; - - h_s_wallace_cska8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cska8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cska8_ha0_xor0 = (ha(((h_s_wallace_cska8_and_2_0 >> 0) & 0x01), ((h_s_wallace_cska8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_ha0_and0 = (ha(((h_s_wallace_cska8_and_2_0 >> 0) & 0x01), ((h_s_wallace_cska8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cska8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cska8_fa0_xor1 = (fa(((h_s_wallace_cska8_ha0_and0 >> 0) & 0x01), ((h_s_wallace_cska8_and_3_0 >> 0) & 0x01), ((h_s_wallace_cska8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa0_or0 = (fa(((h_s_wallace_cska8_ha0_and0 >> 0) & 0x01), ((h_s_wallace_cska8_and_3_0 >> 0) & 0x01), ((h_s_wallace_cska8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cska8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cska8_fa1_xor1 = (fa(((h_s_wallace_cska8_fa0_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_4_0 >> 0) & 0x01), ((h_s_wallace_cska8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa1_or0 = (fa(((h_s_wallace_cska8_fa0_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_4_0 >> 0) & 0x01), ((h_s_wallace_cska8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cska8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cska8_fa2_xor1 = (fa(((h_s_wallace_cska8_fa1_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_5_0 >> 0) & 0x01), ((h_s_wallace_cska8_and_4_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa2_or0 = (fa(((h_s_wallace_cska8_fa1_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_5_0 >> 0) & 0x01), ((h_s_wallace_cska8_and_4_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cska8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cska8_fa3_xor1 = (fa(((h_s_wallace_cska8_fa2_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_6_0 >> 0) & 0x01), ((h_s_wallace_cska8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa3_or0 = (fa(((h_s_wallace_cska8_fa2_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_6_0 >> 0) & 0x01), ((h_s_wallace_cska8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_nand_7_0 = nand_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cska8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cska8_fa4_xor1 = (fa(((h_s_wallace_cska8_fa3_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_7_0 >> 0) & 0x01), ((h_s_wallace_cska8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa4_or0 = (fa(((h_s_wallace_cska8_fa3_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_7_0 >> 0) & 0x01), ((h_s_wallace_cska8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_nand_7_1 = nand_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cska8_fa5_xor1 = (fa(((h_s_wallace_cska8_fa4_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_cska8_nand_7_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa5_or0 = (fa(((h_s_wallace_cska8_fa4_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_cska8_nand_7_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_nand_7_2 = nand_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cska8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cska8_fa6_xor1 = (fa(((h_s_wallace_cska8_fa5_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_7_2 >> 0) & 0x01), ((h_s_wallace_cska8_and_6_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa6_or0 = (fa(((h_s_wallace_cska8_fa5_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_7_2 >> 0) & 0x01), ((h_s_wallace_cska8_and_6_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_nand_7_3 = nand_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cska8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cska8_fa7_xor1 = (fa(((h_s_wallace_cska8_fa6_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_7_3 >> 0) & 0x01), ((h_s_wallace_cska8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa7_or0 = (fa(((h_s_wallace_cska8_fa6_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_7_3 >> 0) & 0x01), ((h_s_wallace_cska8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_nand_7_4 = nand_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cska8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cska8_fa8_xor1 = (fa(((h_s_wallace_cska8_fa7_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_7_4 >> 0) & 0x01), ((h_s_wallace_cska8_and_6_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa8_or0 = (fa(((h_s_wallace_cska8_fa7_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_7_4 >> 0) & 0x01), ((h_s_wallace_cska8_and_6_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_nand_7_5 = nand_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cska8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cska8_fa9_xor1 = (fa(((h_s_wallace_cska8_fa8_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_7_5 >> 0) & 0x01), ((h_s_wallace_cska8_and_6_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa9_or0 = (fa(((h_s_wallace_cska8_fa8_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_7_5 >> 0) & 0x01), ((h_s_wallace_cska8_and_6_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cska8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cska8_ha1_xor0 = (ha(((h_s_wallace_cska8_and_1_2 >> 0) & 0x01), ((h_s_wallace_cska8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_ha1_and0 = (ha(((h_s_wallace_cska8_and_1_2 >> 0) & 0x01), ((h_s_wallace_cska8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cska8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cska8_fa10_xor1 = (fa(((h_s_wallace_cska8_ha1_and0 >> 0) & 0x01), ((h_s_wallace_cska8_and_2_2 >> 0) & 0x01), ((h_s_wallace_cska8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa10_or0 = (fa(((h_s_wallace_cska8_ha1_and0 >> 0) & 0x01), ((h_s_wallace_cska8_and_2_2 >> 0) & 0x01), ((h_s_wallace_cska8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cska8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cska8_fa11_xor1 = (fa(((h_s_wallace_cska8_fa10_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_3_2 >> 0) & 0x01), ((h_s_wallace_cska8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa11_or0 = (fa(((h_s_wallace_cska8_fa10_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_3_2 >> 0) & 0x01), ((h_s_wallace_cska8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cska8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cska8_fa12_xor1 = (fa(((h_s_wallace_cska8_fa11_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_4_2 >> 0) & 0x01), ((h_s_wallace_cska8_and_3_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa12_or0 = (fa(((h_s_wallace_cska8_fa11_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_4_2 >> 0) & 0x01), ((h_s_wallace_cska8_and_3_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cska8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cska8_fa13_xor1 = (fa(((h_s_wallace_cska8_fa12_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_5_2 >> 0) & 0x01), ((h_s_wallace_cska8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa13_or0 = (fa(((h_s_wallace_cska8_fa12_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_5_2 >> 0) & 0x01), ((h_s_wallace_cska8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cska8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_cska8_fa14_xor1 = (fa(((h_s_wallace_cska8_fa13_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_6_2 >> 0) & 0x01), ((h_s_wallace_cska8_and_5_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa14_or0 = (fa(((h_s_wallace_cska8_fa13_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_6_2 >> 0) & 0x01), ((h_s_wallace_cska8_and_5_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cska8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cska8_fa15_xor1 = (fa(((h_s_wallace_cska8_fa14_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_5_4 >> 0) & 0x01), ((h_s_wallace_cska8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa15_or0 = (fa(((h_s_wallace_cska8_fa14_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_5_4 >> 0) & 0x01), ((h_s_wallace_cska8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cska8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cska8_fa16_xor1 = (fa(((h_s_wallace_cska8_fa15_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_5_5 >> 0) & 0x01), ((h_s_wallace_cska8_and_4_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa16_or0 = (fa(((h_s_wallace_cska8_fa15_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_5_5 >> 0) & 0x01), ((h_s_wallace_cska8_and_4_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cska8_nand_4_7 = nand_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cska8_fa17_xor1 = (fa(((h_s_wallace_cska8_fa16_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_5_6 >> 0) & 0x01), ((h_s_wallace_cska8_nand_4_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa17_or0 = (fa(((h_s_wallace_cska8_fa16_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_5_6 >> 0) & 0x01), ((h_s_wallace_cska8_nand_4_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cska8_ha2_xor0 = (ha(((h_s_wallace_cska8_and_0_4 >> 0) & 0x01), ((h_s_wallace_cska8_fa1_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_ha2_and0 = (ha(((h_s_wallace_cska8_and_0_4 >> 0) & 0x01), ((h_s_wallace_cska8_fa1_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cska8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cska8_fa18_xor1 = (fa(((h_s_wallace_cska8_ha2_and0 >> 0) & 0x01), ((h_s_wallace_cska8_and_1_4 >> 0) & 0x01), ((h_s_wallace_cska8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa18_or0 = (fa(((h_s_wallace_cska8_ha2_and0 >> 0) & 0x01), ((h_s_wallace_cska8_and_1_4 >> 0) & 0x01), ((h_s_wallace_cska8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cska8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cska8_fa19_xor1 = (fa(((h_s_wallace_cska8_fa18_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_2_4 >> 0) & 0x01), ((h_s_wallace_cska8_and_1_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa19_or0 = (fa(((h_s_wallace_cska8_fa18_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_2_4 >> 0) & 0x01), ((h_s_wallace_cska8_and_1_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cska8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cska8_fa20_xor1 = (fa(((h_s_wallace_cska8_fa19_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_3_4 >> 0) & 0x01), ((h_s_wallace_cska8_and_2_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa20_or0 = (fa(((h_s_wallace_cska8_fa19_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_3_4 >> 0) & 0x01), ((h_s_wallace_cska8_and_2_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_cska8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_cska8_fa21_xor1 = (fa(((h_s_wallace_cska8_fa20_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_4_4 >> 0) & 0x01), ((h_s_wallace_cska8_and_3_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa21_or0 = (fa(((h_s_wallace_cska8_fa20_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_4_4 >> 0) & 0x01), ((h_s_wallace_cska8_and_3_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cska8_nand_2_7 = nand_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cska8_fa22_xor1 = (fa(((h_s_wallace_cska8_fa21_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_3_6 >> 0) & 0x01), ((h_s_wallace_cska8_nand_2_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa22_or0 = (fa(((h_s_wallace_cska8_fa21_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_3_6 >> 0) & 0x01), ((h_s_wallace_cska8_nand_2_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_nand_3_7 = nand_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cska8_fa23_xor1 = (fa(((h_s_wallace_cska8_fa22_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_3_7 >> 0) & 0x01), ((h_s_wallace_cska8_fa7_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa23_or0 = (fa(((h_s_wallace_cska8_fa22_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_3_7 >> 0) & 0x01), ((h_s_wallace_cska8_fa7_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_ha3_xor0 = (ha(((h_s_wallace_cska8_fa2_xor1 >> 0) & 0x01), ((h_s_wallace_cska8_fa11_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_ha3_and0 = (ha(((h_s_wallace_cska8_fa2_xor1 >> 0) & 0x01), ((h_s_wallace_cska8_fa11_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cska8_fa24_xor1 = (fa(((h_s_wallace_cska8_ha3_and0 >> 0) & 0x01), ((h_s_wallace_cska8_and_0_6 >> 0) & 0x01), ((h_s_wallace_cska8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa24_or0 = (fa(((h_s_wallace_cska8_ha3_and0 >> 0) & 0x01), ((h_s_wallace_cska8_and_0_6 >> 0) & 0x01), ((h_s_wallace_cska8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cska8_nand_0_7 = nand_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cska8_fa25_xor1 = (fa(((h_s_wallace_cska8_fa24_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_1_6 >> 0) & 0x01), ((h_s_wallace_cska8_nand_0_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa25_or0 = (fa(((h_s_wallace_cska8_fa24_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_1_6 >> 0) & 0x01), ((h_s_wallace_cska8_nand_0_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cska8_nand_1_7 = nand_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cska8_fa26_xor1 = (fa(((h_s_wallace_cska8_fa25_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_2_6 >> 0) & 0x01), ((h_s_wallace_cska8_nand_1_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa26_or0 = (fa(((h_s_wallace_cska8_fa25_or0 >> 0) & 0x01), ((h_s_wallace_cska8_and_2_6 >> 0) & 0x01), ((h_s_wallace_cska8_nand_1_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_fa27_xor1 = (fa(((h_s_wallace_cska8_fa26_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa6_xor1 >> 0) & 0x01), ((h_s_wallace_cska8_fa15_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa27_or0 = (fa(((h_s_wallace_cska8_fa26_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa6_xor1 >> 0) & 0x01), ((h_s_wallace_cska8_fa15_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_ha4_xor0 = (ha(((h_s_wallace_cska8_fa12_xor1 >> 0) & 0x01), ((h_s_wallace_cska8_fa19_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_ha4_and0 = (ha(((h_s_wallace_cska8_fa12_xor1 >> 0) & 0x01), ((h_s_wallace_cska8_fa19_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_fa28_xor1 = (fa(((h_s_wallace_cska8_ha4_and0 >> 0) & 0x01), ((h_s_wallace_cska8_fa4_xor1 >> 0) & 0x01), ((h_s_wallace_cska8_fa13_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa28_or0 = (fa(((h_s_wallace_cska8_ha4_and0 >> 0) & 0x01), ((h_s_wallace_cska8_fa4_xor1 >> 0) & 0x01), ((h_s_wallace_cska8_fa13_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_fa29_xor1 = (fa(((h_s_wallace_cska8_fa28_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa5_xor1 >> 0) & 0x01), ((h_s_wallace_cska8_fa14_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa29_or0 = (fa(((h_s_wallace_cska8_fa28_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa5_xor1 >> 0) & 0x01), ((h_s_wallace_cska8_fa14_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_ha5_xor0 = (ha(((h_s_wallace_cska8_fa20_xor1 >> 0) & 0x01), ((h_s_wallace_cska8_fa25_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_ha5_and0 = (ha(((h_s_wallace_cska8_fa20_xor1 >> 0) & 0x01), ((h_s_wallace_cska8_fa25_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_fa30_xor1 = (fa(((h_s_wallace_cska8_ha5_and0 >> 0) & 0x01), ((h_s_wallace_cska8_fa21_xor1 >> 0) & 0x01), ((h_s_wallace_cska8_fa26_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa30_or0 = (fa(((h_s_wallace_cska8_ha5_and0 >> 0) & 0x01), ((h_s_wallace_cska8_fa21_xor1 >> 0) & 0x01), ((h_s_wallace_cska8_fa26_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_fa31_xor1 = (fa(((h_s_wallace_cska8_fa30_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa29_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa22_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa31_or0 = (fa(((h_s_wallace_cska8_fa30_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa29_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa22_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_fa32_xor1 = (fa(((h_s_wallace_cska8_fa31_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa27_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa16_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa32_or0 = (fa(((h_s_wallace_cska8_fa31_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa27_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa16_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_fa33_xor1 = (fa(((h_s_wallace_cska8_fa32_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa23_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa8_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa33_or0 = (fa(((h_s_wallace_cska8_fa32_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa23_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa8_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_nand_5_7 = nand_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cska8_fa34_xor1 = (fa(((h_s_wallace_cska8_fa33_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa17_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa34_or0 = (fa(((h_s_wallace_cska8_fa33_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa17_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_nand_7_6 = nand_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_cska8_fa35_xor1 = (fa(((h_s_wallace_cska8_fa34_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa9_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_cska8_fa35_or0 = (fa(((h_s_wallace_cska8_fa34_or0 >> 0) & 0x01), ((h_s_wallace_cska8_fa9_or0 >> 0) & 0x01), ((h_s_wallace_cska8_nand_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_cska8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cska8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_cska8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_cska8_nand_6_7 = nand_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cska8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_cska8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_cska8_u_cska14_a |= ((h_s_wallace_cska8_and_1_0 >> 0) & 0x01) << 0; - h_s_wallace_cska8_u_cska14_a |= ((h_s_wallace_cska8_and_0_2 >> 0) & 0x01) << 1; - h_s_wallace_cska8_u_cska14_a |= ((h_s_wallace_cska8_fa0_xor1 >> 0) & 0x01) << 2; - h_s_wallace_cska8_u_cska14_a |= ((h_s_wallace_cska8_fa10_xor1 >> 0) & 0x01) << 3; - h_s_wallace_cska8_u_cska14_a |= ((h_s_wallace_cska8_fa18_xor1 >> 0) & 0x01) << 4; - h_s_wallace_cska8_u_cska14_a |= ((h_s_wallace_cska8_fa24_xor1 >> 0) & 0x01) << 5; - h_s_wallace_cska8_u_cska14_a |= ((h_s_wallace_cska8_fa28_xor1 >> 0) & 0x01) << 6; - h_s_wallace_cska8_u_cska14_a |= ((h_s_wallace_cska8_fa29_xor1 >> 0) & 0x01) << 7; - h_s_wallace_cska8_u_cska14_a |= ((h_s_wallace_cska8_fa27_xor1 >> 0) & 0x01) << 8; - h_s_wallace_cska8_u_cska14_a |= ((h_s_wallace_cska8_fa23_xor1 >> 0) & 0x01) << 9; - h_s_wallace_cska8_u_cska14_a |= ((h_s_wallace_cska8_fa17_xor1 >> 0) & 0x01) << 10; - h_s_wallace_cska8_u_cska14_a |= ((h_s_wallace_cska8_fa9_xor1 >> 0) & 0x01) << 11; - h_s_wallace_cska8_u_cska14_a |= ((h_s_wallace_cska8_nand_6_7 >> 0) & 0x01) << 12; - h_s_wallace_cska8_u_cska14_a |= ((h_s_wallace_cska8_fa35_or0 >> 0) & 0x01) << 13; - h_s_wallace_cska8_u_cska14_b |= ((h_s_wallace_cska8_and_0_1 >> 0) & 0x01) << 0; - h_s_wallace_cska8_u_cska14_b |= ((h_s_wallace_cska8_ha0_xor0 >> 0) & 0x01) << 1; - h_s_wallace_cska8_u_cska14_b |= ((h_s_wallace_cska8_ha1_xor0 >> 0) & 0x01) << 2; - h_s_wallace_cska8_u_cska14_b |= ((h_s_wallace_cska8_ha2_xor0 >> 0) & 0x01) << 3; - h_s_wallace_cska8_u_cska14_b |= ((h_s_wallace_cska8_ha3_xor0 >> 0) & 0x01) << 4; - h_s_wallace_cska8_u_cska14_b |= ((h_s_wallace_cska8_ha4_xor0 >> 0) & 0x01) << 5; - h_s_wallace_cska8_u_cska14_b |= ((h_s_wallace_cska8_ha5_xor0 >> 0) & 0x01) << 6; - h_s_wallace_cska8_u_cska14_b |= ((h_s_wallace_cska8_fa30_xor1 >> 0) & 0x01) << 7; - h_s_wallace_cska8_u_cska14_b |= ((h_s_wallace_cska8_fa31_xor1 >> 0) & 0x01) << 8; - h_s_wallace_cska8_u_cska14_b |= ((h_s_wallace_cska8_fa32_xor1 >> 0) & 0x01) << 9; - h_s_wallace_cska8_u_cska14_b |= ((h_s_wallace_cska8_fa33_xor1 >> 0) & 0x01) << 10; - h_s_wallace_cska8_u_cska14_b |= ((h_s_wallace_cska8_fa34_xor1 >> 0) & 0x01) << 11; - h_s_wallace_cska8_u_cska14_b |= ((h_s_wallace_cska8_fa35_xor1 >> 0) & 0x01) << 12; - h_s_wallace_cska8_u_cska14_b |= ((h_s_wallace_cska8_and_7_7 >> 0) & 0x01) << 13; - h_s_wallace_cska8_u_cska14_out = u_cska14(h_s_wallace_cska8_u_cska14_a, h_s_wallace_cska8_u_cska14_b); - h_s_wallace_cska8_xor0 = not_gate(((h_s_wallace_cska8_u_cska14_out >> 14) & 0x01)); - - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_and_0_0 >> 0) & 0x01) << 0; - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_u_cska14_out >> 0) & 0x01) << 1; - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_u_cska14_out >> 1) & 0x01) << 2; - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_u_cska14_out >> 2) & 0x01) << 3; - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_u_cska14_out >> 3) & 0x01) << 4; - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_u_cska14_out >> 4) & 0x01) << 5; - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_u_cska14_out >> 5) & 0x01) << 6; - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_u_cska14_out >> 6) & 0x01) << 7; - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_u_cska14_out >> 7) & 0x01) << 8; - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_u_cska14_out >> 8) & 0x01) << 9; - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_u_cska14_out >> 9) & 0x01) << 10; - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_u_cska14_out >> 10) & 0x01) << 11; - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_u_cska14_out >> 11) & 0x01) << 12; - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_u_cska14_out >> 12) & 0x01) << 13; - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_u_cska14_out >> 13) & 0x01) << 14; - h_s_wallace_cska8_out |= ((h_s_wallace_cska8_xor0 >> 0) & 0x01) << 15; - return h_s_wallace_cska8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)h_s_wallace_cska8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_pg_rca4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_pg_rca4.c deleted file mode 100644 index eee9d8b..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_pg_rca4.c +++ /dev/null @@ -1,245 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t pg_fa_out = 0; - uint8_t pg_fa_xor0 = 0; - uint8_t pg_fa_and0 = 0; - uint8_t pg_fa_xor1 = 0; - - pg_fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_xor1 = xor_gate(((pg_fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - - pg_fa_out |= ((pg_fa_xor0 >> 0) & 0x01) << 0; - pg_fa_out |= ((pg_fa_and0 >> 0) & 0x01) << 1; - pg_fa_out |= ((pg_fa_xor1 >> 0) & 0x01) << 2; - return pg_fa_out; -} - -uint64_t u_pg_rca6(uint64_t a, uint64_t b){ - uint8_t u_pg_rca6_out = 0; - uint8_t u_pg_rca6_pg_fa0_xor0 = 0; - uint8_t u_pg_rca6_pg_fa0_and0 = 0; - uint8_t u_pg_rca6_pg_fa1_xor0 = 0; - uint8_t u_pg_rca6_pg_fa1_and0 = 0; - uint8_t u_pg_rca6_pg_fa1_xor1 = 0; - uint8_t u_pg_rca6_and1 = 0; - uint8_t u_pg_rca6_or1 = 0; - uint8_t u_pg_rca6_pg_fa2_xor0 = 0; - uint8_t u_pg_rca6_pg_fa2_and0 = 0; - uint8_t u_pg_rca6_pg_fa2_xor1 = 0; - uint8_t u_pg_rca6_and2 = 0; - uint8_t u_pg_rca6_or2 = 0; - uint8_t u_pg_rca6_pg_fa3_xor0 = 0; - uint8_t u_pg_rca6_pg_fa3_and0 = 0; - uint8_t u_pg_rca6_pg_fa3_xor1 = 0; - uint8_t u_pg_rca6_and3 = 0; - uint8_t u_pg_rca6_or3 = 0; - uint8_t u_pg_rca6_pg_fa4_xor0 = 0; - uint8_t u_pg_rca6_pg_fa4_and0 = 0; - uint8_t u_pg_rca6_pg_fa4_xor1 = 0; - uint8_t u_pg_rca6_and4 = 0; - uint8_t u_pg_rca6_or4 = 0; - uint8_t u_pg_rca6_pg_fa5_xor0 = 0; - uint8_t u_pg_rca6_pg_fa5_and0 = 0; - uint8_t u_pg_rca6_pg_fa5_xor1 = 0; - uint8_t u_pg_rca6_and5 = 0; - uint8_t u_pg_rca6_or5 = 0; - - u_pg_rca6_pg_fa0_xor0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - u_pg_rca6_pg_fa0_and0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - u_pg_rca6_pg_fa1_xor0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa1_and0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa1_xor1 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and1 = and_gate(((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01), ((u_pg_rca6_pg_fa1_xor0 >> 0) & 0x01)); - u_pg_rca6_or1 = or_gate(((u_pg_rca6_and1 >> 0) & 0x01), ((u_pg_rca6_pg_fa1_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa2_xor0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca6_or1 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa2_and0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca6_or1 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa2_xor1 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca6_or1 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and2 = and_gate(((u_pg_rca6_or1 >> 0) & 0x01), ((u_pg_rca6_pg_fa2_xor0 >> 0) & 0x01)); - u_pg_rca6_or2 = or_gate(((u_pg_rca6_and2 >> 0) & 0x01), ((u_pg_rca6_pg_fa2_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa3_xor0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca6_or2 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa3_and0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca6_or2 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa3_xor1 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca6_or2 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and3 = and_gate(((u_pg_rca6_or2 >> 0) & 0x01), ((u_pg_rca6_pg_fa3_xor0 >> 0) & 0x01)); - u_pg_rca6_or3 = or_gate(((u_pg_rca6_and3 >> 0) & 0x01), ((u_pg_rca6_pg_fa3_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa4_xor0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca6_or3 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa4_and0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca6_or3 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa4_xor1 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca6_or3 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and4 = and_gate(((u_pg_rca6_or3 >> 0) & 0x01), ((u_pg_rca6_pg_fa4_xor0 >> 0) & 0x01)); - u_pg_rca6_or4 = or_gate(((u_pg_rca6_and4 >> 0) & 0x01), ((u_pg_rca6_pg_fa4_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa5_xor0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca6_or4 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa5_and0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca6_or4 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa5_xor1 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca6_or4 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and5 = and_gate(((u_pg_rca6_or4 >> 0) & 0x01), ((u_pg_rca6_pg_fa5_xor0 >> 0) & 0x01)); - u_pg_rca6_or5 = or_gate(((u_pg_rca6_and5 >> 0) & 0x01), ((u_pg_rca6_pg_fa5_and0 >> 0) & 0x01)); - - u_pg_rca6_out |= ((u_pg_rca6_pg_fa0_xor0 >> 0) & 0x01) << 0; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa1_xor1 >> 0) & 0x01) << 1; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa2_xor1 >> 0) & 0x01) << 2; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa3_xor1 >> 0) & 0x01) << 3; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa4_xor1 >> 0) & 0x01) << 4; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa5_xor1 >> 0) & 0x01) << 5; - u_pg_rca6_out |= ((u_pg_rca6_or5 >> 0) & 0x01) << 6; - return u_pg_rca6_out; -} - -uint64_t h_s_wallace_pg_rca4(uint64_t a, uint64_t b){ - uint8_t h_s_wallace_pg_rca4_out = 0; - uint8_t h_s_wallace_pg_rca4_and_2_0 = 0; - uint8_t h_s_wallace_pg_rca4_and_1_1 = 0; - uint8_t h_s_wallace_pg_rca4_ha0_xor0 = 0; - uint8_t h_s_wallace_pg_rca4_ha0_and0 = 0; - uint8_t h_s_wallace_pg_rca4_nand_3_0 = 0; - uint8_t h_s_wallace_pg_rca4_and_2_1 = 0; - uint8_t h_s_wallace_pg_rca4_fa0_xor1 = 0; - uint8_t h_s_wallace_pg_rca4_fa0_or0 = 0; - uint8_t h_s_wallace_pg_rca4_nand_3_1 = 0; - uint8_t h_s_wallace_pg_rca4_fa1_xor1 = 0; - uint8_t h_s_wallace_pg_rca4_fa1_or0 = 0; - uint8_t h_s_wallace_pg_rca4_and_1_2 = 0; - uint8_t h_s_wallace_pg_rca4_nand_0_3 = 0; - uint8_t h_s_wallace_pg_rca4_ha1_xor0 = 0; - uint8_t h_s_wallace_pg_rca4_ha1_and0 = 0; - uint8_t h_s_wallace_pg_rca4_and_2_2 = 0; - uint8_t h_s_wallace_pg_rca4_nand_1_3 = 0; - uint8_t h_s_wallace_pg_rca4_fa2_xor1 = 0; - uint8_t h_s_wallace_pg_rca4_fa2_or0 = 0; - uint8_t h_s_wallace_pg_rca4_nand_3_2 = 0; - uint8_t h_s_wallace_pg_rca4_fa3_xor1 = 0; - uint8_t h_s_wallace_pg_rca4_fa3_or0 = 0; - uint8_t h_s_wallace_pg_rca4_and_0_0 = 0; - uint8_t h_s_wallace_pg_rca4_and_1_0 = 0; - uint8_t h_s_wallace_pg_rca4_and_0_2 = 0; - uint8_t h_s_wallace_pg_rca4_nand_2_3 = 0; - uint8_t h_s_wallace_pg_rca4_and_0_1 = 0; - uint8_t h_s_wallace_pg_rca4_and_3_3 = 0; - uint64_t h_s_wallace_pg_rca4_u_pg_rca6_a = 0; - uint64_t h_s_wallace_pg_rca4_u_pg_rca6_b = 0; - uint64_t h_s_wallace_pg_rca4_u_pg_rca6_out = 0; - uint8_t h_s_wallace_pg_rca4_xor0 = 0; - - h_s_wallace_pg_rca4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_pg_rca4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_pg_rca4_ha0_xor0 = (ha(((h_s_wallace_pg_rca4_and_2_0 >> 0) & 0x01), ((h_s_wallace_pg_rca4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca4_ha0_and0 = (ha(((h_s_wallace_pg_rca4_and_2_0 >> 0) & 0x01), ((h_s_wallace_pg_rca4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca4_nand_3_0 = nand_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_pg_rca4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_pg_rca4_fa0_xor1 = (fa(((h_s_wallace_pg_rca4_ha0_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca4_nand_3_0 >> 0) & 0x01), ((h_s_wallace_pg_rca4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca4_fa0_or0 = (fa(((h_s_wallace_pg_rca4_ha0_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca4_nand_3_0 >> 0) & 0x01), ((h_s_wallace_pg_rca4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca4_nand_3_1 = nand_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_pg_rca4_fa1_xor1 = (fa(((h_s_wallace_pg_rca4_fa0_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_pg_rca4_nand_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca4_fa1_or0 = (fa(((h_s_wallace_pg_rca4_fa0_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_pg_rca4_nand_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_pg_rca4_nand_0_3 = nand_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_pg_rca4_ha1_xor0 = (ha(((h_s_wallace_pg_rca4_and_1_2 >> 0) & 0x01), ((h_s_wallace_pg_rca4_nand_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca4_ha1_and0 = (ha(((h_s_wallace_pg_rca4_and_1_2 >> 0) & 0x01), ((h_s_wallace_pg_rca4_nand_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_pg_rca4_nand_1_3 = nand_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_pg_rca4_fa2_xor1 = (fa(((h_s_wallace_pg_rca4_ha1_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca4_and_2_2 >> 0) & 0x01), ((h_s_wallace_pg_rca4_nand_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca4_fa2_or0 = (fa(((h_s_wallace_pg_rca4_ha1_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca4_and_2_2 >> 0) & 0x01), ((h_s_wallace_pg_rca4_nand_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca4_nand_3_2 = nand_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_pg_rca4_fa3_xor1 = (fa(((h_s_wallace_pg_rca4_fa2_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca4_fa1_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca4_nand_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca4_fa3_or0 = (fa(((h_s_wallace_pg_rca4_fa2_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca4_fa1_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca4_nand_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_pg_rca4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_pg_rca4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_pg_rca4_nand_2_3 = nand_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_pg_rca4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_pg_rca4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_pg_rca4_u_pg_rca6_a |= ((h_s_wallace_pg_rca4_and_1_0 >> 0) & 0x01) << 0; - h_s_wallace_pg_rca4_u_pg_rca6_a |= ((h_s_wallace_pg_rca4_and_0_2 >> 0) & 0x01) << 1; - h_s_wallace_pg_rca4_u_pg_rca6_a |= ((h_s_wallace_pg_rca4_fa0_xor1 >> 0) & 0x01) << 2; - h_s_wallace_pg_rca4_u_pg_rca6_a |= ((h_s_wallace_pg_rca4_fa1_xor1 >> 0) & 0x01) << 3; - h_s_wallace_pg_rca4_u_pg_rca6_a |= ((h_s_wallace_pg_rca4_nand_2_3 >> 0) & 0x01) << 4; - h_s_wallace_pg_rca4_u_pg_rca6_a |= ((h_s_wallace_pg_rca4_fa3_or0 >> 0) & 0x01) << 5; - h_s_wallace_pg_rca4_u_pg_rca6_b |= ((h_s_wallace_pg_rca4_and_0_1 >> 0) & 0x01) << 0; - h_s_wallace_pg_rca4_u_pg_rca6_b |= ((h_s_wallace_pg_rca4_ha0_xor0 >> 0) & 0x01) << 1; - h_s_wallace_pg_rca4_u_pg_rca6_b |= ((h_s_wallace_pg_rca4_ha1_xor0 >> 0) & 0x01) << 2; - h_s_wallace_pg_rca4_u_pg_rca6_b |= ((h_s_wallace_pg_rca4_fa2_xor1 >> 0) & 0x01) << 3; - h_s_wallace_pg_rca4_u_pg_rca6_b |= ((h_s_wallace_pg_rca4_fa3_xor1 >> 0) & 0x01) << 4; - h_s_wallace_pg_rca4_u_pg_rca6_b |= ((h_s_wallace_pg_rca4_and_3_3 >> 0) & 0x01) << 5; - h_s_wallace_pg_rca4_u_pg_rca6_out = u_pg_rca6(h_s_wallace_pg_rca4_u_pg_rca6_a, h_s_wallace_pg_rca4_u_pg_rca6_b); - h_s_wallace_pg_rca4_xor0 = not_gate(((h_s_wallace_pg_rca4_u_pg_rca6_out >> 6) & 0x01)); - - h_s_wallace_pg_rca4_out |= ((h_s_wallace_pg_rca4_and_0_0 >> 0) & 0x01) << 0; - h_s_wallace_pg_rca4_out |= ((h_s_wallace_pg_rca4_u_pg_rca6_out >> 0) & 0x01) << 1; - h_s_wallace_pg_rca4_out |= ((h_s_wallace_pg_rca4_u_pg_rca6_out >> 1) & 0x01) << 2; - h_s_wallace_pg_rca4_out |= ((h_s_wallace_pg_rca4_u_pg_rca6_out >> 2) & 0x01) << 3; - h_s_wallace_pg_rca4_out |= ((h_s_wallace_pg_rca4_u_pg_rca6_out >> 3) & 0x01) << 4; - h_s_wallace_pg_rca4_out |= ((h_s_wallace_pg_rca4_u_pg_rca6_out >> 4) & 0x01) << 5; - h_s_wallace_pg_rca4_out |= ((h_s_wallace_pg_rca4_u_pg_rca6_out >> 5) & 0x01) << 6; - h_s_wallace_pg_rca4_out |= ((h_s_wallace_pg_rca4_xor0 >> 0) & 0x01) << 7; - return h_s_wallace_pg_rca4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)h_s_wallace_pg_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_pg_rca8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_pg_rca8.c deleted file mode 100644 index 3a18618..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_pg_rca8.c +++ /dev/null @@ -1,597 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t pg_fa_out = 0; - uint8_t pg_fa_xor0 = 0; - uint8_t pg_fa_and0 = 0; - uint8_t pg_fa_xor1 = 0; - - pg_fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_xor1 = xor_gate(((pg_fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - - pg_fa_out |= ((pg_fa_xor0 >> 0) & 0x01) << 0; - pg_fa_out |= ((pg_fa_and0 >> 0) & 0x01) << 1; - pg_fa_out |= ((pg_fa_xor1 >> 0) & 0x01) << 2; - return pg_fa_out; -} - -uint64_t u_pg_rca14(uint64_t a, uint64_t b){ - uint64_t u_pg_rca14_out = 0; - uint8_t u_pg_rca14_pg_fa0_xor0 = 0; - uint8_t u_pg_rca14_pg_fa0_and0 = 0; - uint8_t u_pg_rca14_pg_fa1_xor0 = 0; - uint8_t u_pg_rca14_pg_fa1_and0 = 0; - uint8_t u_pg_rca14_pg_fa1_xor1 = 0; - uint8_t u_pg_rca14_and1 = 0; - uint8_t u_pg_rca14_or1 = 0; - uint8_t u_pg_rca14_pg_fa2_xor0 = 0; - uint8_t u_pg_rca14_pg_fa2_and0 = 0; - uint8_t u_pg_rca14_pg_fa2_xor1 = 0; - uint8_t u_pg_rca14_and2 = 0; - uint8_t u_pg_rca14_or2 = 0; - uint8_t u_pg_rca14_pg_fa3_xor0 = 0; - uint8_t u_pg_rca14_pg_fa3_and0 = 0; - uint8_t u_pg_rca14_pg_fa3_xor1 = 0; - uint8_t u_pg_rca14_and3 = 0; - uint8_t u_pg_rca14_or3 = 0; - uint8_t u_pg_rca14_pg_fa4_xor0 = 0; - uint8_t u_pg_rca14_pg_fa4_and0 = 0; - uint8_t u_pg_rca14_pg_fa4_xor1 = 0; - uint8_t u_pg_rca14_and4 = 0; - uint8_t u_pg_rca14_or4 = 0; - uint8_t u_pg_rca14_pg_fa5_xor0 = 0; - uint8_t u_pg_rca14_pg_fa5_and0 = 0; - uint8_t u_pg_rca14_pg_fa5_xor1 = 0; - uint8_t u_pg_rca14_and5 = 0; - uint8_t u_pg_rca14_or5 = 0; - uint8_t u_pg_rca14_pg_fa6_xor0 = 0; - uint8_t u_pg_rca14_pg_fa6_and0 = 0; - uint8_t u_pg_rca14_pg_fa6_xor1 = 0; - uint8_t u_pg_rca14_and6 = 0; - uint8_t u_pg_rca14_or6 = 0; - uint8_t u_pg_rca14_pg_fa7_xor0 = 0; - uint8_t u_pg_rca14_pg_fa7_and0 = 0; - uint8_t u_pg_rca14_pg_fa7_xor1 = 0; - uint8_t u_pg_rca14_and7 = 0; - uint8_t u_pg_rca14_or7 = 0; - uint8_t u_pg_rca14_pg_fa8_xor0 = 0; - uint8_t u_pg_rca14_pg_fa8_and0 = 0; - uint8_t u_pg_rca14_pg_fa8_xor1 = 0; - uint8_t u_pg_rca14_and8 = 0; - uint8_t u_pg_rca14_or8 = 0; - uint8_t u_pg_rca14_pg_fa9_xor0 = 0; - uint8_t u_pg_rca14_pg_fa9_and0 = 0; - uint8_t u_pg_rca14_pg_fa9_xor1 = 0; - uint8_t u_pg_rca14_and9 = 0; - uint8_t u_pg_rca14_or9 = 0; - uint8_t u_pg_rca14_pg_fa10_xor0 = 0; - uint8_t u_pg_rca14_pg_fa10_and0 = 0; - uint8_t u_pg_rca14_pg_fa10_xor1 = 0; - uint8_t u_pg_rca14_and10 = 0; - uint8_t u_pg_rca14_or10 = 0; - uint8_t u_pg_rca14_pg_fa11_xor0 = 0; - uint8_t u_pg_rca14_pg_fa11_and0 = 0; - uint8_t u_pg_rca14_pg_fa11_xor1 = 0; - uint8_t u_pg_rca14_and11 = 0; - uint8_t u_pg_rca14_or11 = 0; - uint8_t u_pg_rca14_pg_fa12_xor0 = 0; - uint8_t u_pg_rca14_pg_fa12_and0 = 0; - uint8_t u_pg_rca14_pg_fa12_xor1 = 0; - uint8_t u_pg_rca14_and12 = 0; - uint8_t u_pg_rca14_or12 = 0; - uint8_t u_pg_rca14_pg_fa13_xor0 = 0; - uint8_t u_pg_rca14_pg_fa13_and0 = 0; - uint8_t u_pg_rca14_pg_fa13_xor1 = 0; - uint8_t u_pg_rca14_and13 = 0; - uint8_t u_pg_rca14_or13 = 0; - - u_pg_rca14_pg_fa0_xor0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - u_pg_rca14_pg_fa0_and0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - u_pg_rca14_pg_fa1_xor0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa1_and0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa1_xor1 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and1 = and_gate(((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01), ((u_pg_rca14_pg_fa1_xor0 >> 0) & 0x01)); - u_pg_rca14_or1 = or_gate(((u_pg_rca14_and1 >> 0) & 0x01), ((u_pg_rca14_pg_fa1_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa2_xor0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca14_or1 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa2_and0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca14_or1 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa2_xor1 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca14_or1 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and2 = and_gate(((u_pg_rca14_or1 >> 0) & 0x01), ((u_pg_rca14_pg_fa2_xor0 >> 0) & 0x01)); - u_pg_rca14_or2 = or_gate(((u_pg_rca14_and2 >> 0) & 0x01), ((u_pg_rca14_pg_fa2_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa3_xor0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca14_or2 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa3_and0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca14_or2 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa3_xor1 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca14_or2 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and3 = and_gate(((u_pg_rca14_or2 >> 0) & 0x01), ((u_pg_rca14_pg_fa3_xor0 >> 0) & 0x01)); - u_pg_rca14_or3 = or_gate(((u_pg_rca14_and3 >> 0) & 0x01), ((u_pg_rca14_pg_fa3_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa4_xor0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca14_or3 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa4_and0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca14_or3 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa4_xor1 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca14_or3 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and4 = and_gate(((u_pg_rca14_or3 >> 0) & 0x01), ((u_pg_rca14_pg_fa4_xor0 >> 0) & 0x01)); - u_pg_rca14_or4 = or_gate(((u_pg_rca14_and4 >> 0) & 0x01), ((u_pg_rca14_pg_fa4_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa5_xor0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca14_or4 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa5_and0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca14_or4 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa5_xor1 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca14_or4 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and5 = and_gate(((u_pg_rca14_or4 >> 0) & 0x01), ((u_pg_rca14_pg_fa5_xor0 >> 0) & 0x01)); - u_pg_rca14_or5 = or_gate(((u_pg_rca14_and5 >> 0) & 0x01), ((u_pg_rca14_pg_fa5_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa6_xor0 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_pg_rca14_or5 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa6_and0 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_pg_rca14_or5 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa6_xor1 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_pg_rca14_or5 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and6 = and_gate(((u_pg_rca14_or5 >> 0) & 0x01), ((u_pg_rca14_pg_fa6_xor0 >> 0) & 0x01)); - u_pg_rca14_or6 = or_gate(((u_pg_rca14_and6 >> 0) & 0x01), ((u_pg_rca14_pg_fa6_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa7_xor0 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_pg_rca14_or6 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa7_and0 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_pg_rca14_or6 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa7_xor1 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_pg_rca14_or6 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and7 = and_gate(((u_pg_rca14_or6 >> 0) & 0x01), ((u_pg_rca14_pg_fa7_xor0 >> 0) & 0x01)); - u_pg_rca14_or7 = or_gate(((u_pg_rca14_and7 >> 0) & 0x01), ((u_pg_rca14_pg_fa7_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa8_xor0 = (pg_fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_pg_rca14_or7 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa8_and0 = (pg_fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_pg_rca14_or7 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa8_xor1 = (pg_fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_pg_rca14_or7 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and8 = and_gate(((u_pg_rca14_or7 >> 0) & 0x01), ((u_pg_rca14_pg_fa8_xor0 >> 0) & 0x01)); - u_pg_rca14_or8 = or_gate(((u_pg_rca14_and8 >> 0) & 0x01), ((u_pg_rca14_pg_fa8_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa9_xor0 = (pg_fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_pg_rca14_or8 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa9_and0 = (pg_fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_pg_rca14_or8 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa9_xor1 = (pg_fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_pg_rca14_or8 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and9 = and_gate(((u_pg_rca14_or8 >> 0) & 0x01), ((u_pg_rca14_pg_fa9_xor0 >> 0) & 0x01)); - u_pg_rca14_or9 = or_gate(((u_pg_rca14_and9 >> 0) & 0x01), ((u_pg_rca14_pg_fa9_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa10_xor0 = (pg_fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_pg_rca14_or9 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa10_and0 = (pg_fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_pg_rca14_or9 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa10_xor1 = (pg_fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_pg_rca14_or9 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and10 = and_gate(((u_pg_rca14_or9 >> 0) & 0x01), ((u_pg_rca14_pg_fa10_xor0 >> 0) & 0x01)); - u_pg_rca14_or10 = or_gate(((u_pg_rca14_and10 >> 0) & 0x01), ((u_pg_rca14_pg_fa10_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa11_xor0 = (pg_fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_pg_rca14_or10 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa11_and0 = (pg_fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_pg_rca14_or10 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa11_xor1 = (pg_fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_pg_rca14_or10 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and11 = and_gate(((u_pg_rca14_or10 >> 0) & 0x01), ((u_pg_rca14_pg_fa11_xor0 >> 0) & 0x01)); - u_pg_rca14_or11 = or_gate(((u_pg_rca14_and11 >> 0) & 0x01), ((u_pg_rca14_pg_fa11_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa12_xor0 = (pg_fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_pg_rca14_or11 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa12_and0 = (pg_fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_pg_rca14_or11 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa12_xor1 = (pg_fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_pg_rca14_or11 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and12 = and_gate(((u_pg_rca14_or11 >> 0) & 0x01), ((u_pg_rca14_pg_fa12_xor0 >> 0) & 0x01)); - u_pg_rca14_or12 = or_gate(((u_pg_rca14_and12 >> 0) & 0x01), ((u_pg_rca14_pg_fa12_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa13_xor0 = (pg_fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_pg_rca14_or12 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa13_and0 = (pg_fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_pg_rca14_or12 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa13_xor1 = (pg_fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_pg_rca14_or12 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and13 = and_gate(((u_pg_rca14_or12 >> 0) & 0x01), ((u_pg_rca14_pg_fa13_xor0 >> 0) & 0x01)); - u_pg_rca14_or13 = or_gate(((u_pg_rca14_and13 >> 0) & 0x01), ((u_pg_rca14_pg_fa13_and0 >> 0) & 0x01)); - - u_pg_rca14_out |= ((u_pg_rca14_pg_fa0_xor0 >> 0) & 0x01) << 0; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa1_xor1 >> 0) & 0x01) << 1; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa2_xor1 >> 0) & 0x01) << 2; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa3_xor1 >> 0) & 0x01) << 3; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa4_xor1 >> 0) & 0x01) << 4; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa5_xor1 >> 0) & 0x01) << 5; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa6_xor1 >> 0) & 0x01) << 6; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa7_xor1 >> 0) & 0x01) << 7; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa8_xor1 >> 0) & 0x01) << 8; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa9_xor1 >> 0) & 0x01) << 9; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa10_xor1 >> 0) & 0x01) << 10; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa11_xor1 >> 0) & 0x01) << 11; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa12_xor1 >> 0) & 0x01) << 12; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa13_xor1 >> 0) & 0x01) << 13; - u_pg_rca14_out |= ((u_pg_rca14_or13 >> 0) & 0x01) << 14; - return u_pg_rca14_out; -} - -uint64_t h_s_wallace_pg_rca8(uint64_t a, uint64_t b){ - uint64_t h_s_wallace_pg_rca8_out = 0; - uint8_t h_s_wallace_pg_rca8_and_2_0 = 0; - uint8_t h_s_wallace_pg_rca8_and_1_1 = 0; - uint8_t h_s_wallace_pg_rca8_ha0_xor0 = 0; - uint8_t h_s_wallace_pg_rca8_ha0_and0 = 0; - uint8_t h_s_wallace_pg_rca8_and_3_0 = 0; - uint8_t h_s_wallace_pg_rca8_and_2_1 = 0; - uint8_t h_s_wallace_pg_rca8_fa0_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa0_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_4_0 = 0; - uint8_t h_s_wallace_pg_rca8_and_3_1 = 0; - uint8_t h_s_wallace_pg_rca8_fa1_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa1_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_5_0 = 0; - uint8_t h_s_wallace_pg_rca8_and_4_1 = 0; - uint8_t h_s_wallace_pg_rca8_fa2_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa2_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_6_0 = 0; - uint8_t h_s_wallace_pg_rca8_and_5_1 = 0; - uint8_t h_s_wallace_pg_rca8_fa3_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa3_or0 = 0; - uint8_t h_s_wallace_pg_rca8_nand_7_0 = 0; - uint8_t h_s_wallace_pg_rca8_and_6_1 = 0; - uint8_t h_s_wallace_pg_rca8_fa4_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa4_or0 = 0; - uint8_t h_s_wallace_pg_rca8_nand_7_1 = 0; - uint8_t h_s_wallace_pg_rca8_fa5_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa5_or0 = 0; - uint8_t h_s_wallace_pg_rca8_nand_7_2 = 0; - uint8_t h_s_wallace_pg_rca8_and_6_3 = 0; - uint8_t h_s_wallace_pg_rca8_fa6_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa6_or0 = 0; - uint8_t h_s_wallace_pg_rca8_nand_7_3 = 0; - uint8_t h_s_wallace_pg_rca8_and_6_4 = 0; - uint8_t h_s_wallace_pg_rca8_fa7_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa7_or0 = 0; - uint8_t h_s_wallace_pg_rca8_nand_7_4 = 0; - uint8_t h_s_wallace_pg_rca8_and_6_5 = 0; - uint8_t h_s_wallace_pg_rca8_fa8_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa8_or0 = 0; - uint8_t h_s_wallace_pg_rca8_nand_7_5 = 0; - uint8_t h_s_wallace_pg_rca8_and_6_6 = 0; - uint8_t h_s_wallace_pg_rca8_fa9_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa9_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_1_2 = 0; - uint8_t h_s_wallace_pg_rca8_and_0_3 = 0; - uint8_t h_s_wallace_pg_rca8_ha1_xor0 = 0; - uint8_t h_s_wallace_pg_rca8_ha1_and0 = 0; - uint8_t h_s_wallace_pg_rca8_and_2_2 = 0; - uint8_t h_s_wallace_pg_rca8_and_1_3 = 0; - uint8_t h_s_wallace_pg_rca8_fa10_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa10_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_3_2 = 0; - uint8_t h_s_wallace_pg_rca8_and_2_3 = 0; - uint8_t h_s_wallace_pg_rca8_fa11_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa11_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_4_2 = 0; - uint8_t h_s_wallace_pg_rca8_and_3_3 = 0; - uint8_t h_s_wallace_pg_rca8_fa12_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa12_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_5_2 = 0; - uint8_t h_s_wallace_pg_rca8_and_4_3 = 0; - uint8_t h_s_wallace_pg_rca8_fa13_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa13_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_6_2 = 0; - uint8_t h_s_wallace_pg_rca8_and_5_3 = 0; - uint8_t h_s_wallace_pg_rca8_fa14_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa14_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_5_4 = 0; - uint8_t h_s_wallace_pg_rca8_and_4_5 = 0; - uint8_t h_s_wallace_pg_rca8_fa15_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa15_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_5_5 = 0; - uint8_t h_s_wallace_pg_rca8_and_4_6 = 0; - uint8_t h_s_wallace_pg_rca8_fa16_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa16_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_5_6 = 0; - uint8_t h_s_wallace_pg_rca8_nand_4_7 = 0; - uint8_t h_s_wallace_pg_rca8_fa17_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa17_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_0_4 = 0; - uint8_t h_s_wallace_pg_rca8_ha2_xor0 = 0; - uint8_t h_s_wallace_pg_rca8_ha2_and0 = 0; - uint8_t h_s_wallace_pg_rca8_and_1_4 = 0; - uint8_t h_s_wallace_pg_rca8_and_0_5 = 0; - uint8_t h_s_wallace_pg_rca8_fa18_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa18_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_2_4 = 0; - uint8_t h_s_wallace_pg_rca8_and_1_5 = 0; - uint8_t h_s_wallace_pg_rca8_fa19_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa19_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_3_4 = 0; - uint8_t h_s_wallace_pg_rca8_and_2_5 = 0; - uint8_t h_s_wallace_pg_rca8_fa20_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa20_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_4_4 = 0; - uint8_t h_s_wallace_pg_rca8_and_3_5 = 0; - uint8_t h_s_wallace_pg_rca8_fa21_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa21_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_3_6 = 0; - uint8_t h_s_wallace_pg_rca8_nand_2_7 = 0; - uint8_t h_s_wallace_pg_rca8_fa22_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa22_or0 = 0; - uint8_t h_s_wallace_pg_rca8_nand_3_7 = 0; - uint8_t h_s_wallace_pg_rca8_fa23_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa23_or0 = 0; - uint8_t h_s_wallace_pg_rca8_ha3_xor0 = 0; - uint8_t h_s_wallace_pg_rca8_ha3_and0 = 0; - uint8_t h_s_wallace_pg_rca8_and_0_6 = 0; - uint8_t h_s_wallace_pg_rca8_fa24_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa24_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_1_6 = 0; - uint8_t h_s_wallace_pg_rca8_nand_0_7 = 0; - uint8_t h_s_wallace_pg_rca8_fa25_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa25_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_2_6 = 0; - uint8_t h_s_wallace_pg_rca8_nand_1_7 = 0; - uint8_t h_s_wallace_pg_rca8_fa26_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa26_or0 = 0; - uint8_t h_s_wallace_pg_rca8_fa27_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa27_or0 = 0; - uint8_t h_s_wallace_pg_rca8_ha4_xor0 = 0; - uint8_t h_s_wallace_pg_rca8_ha4_and0 = 0; - uint8_t h_s_wallace_pg_rca8_fa28_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa28_or0 = 0; - uint8_t h_s_wallace_pg_rca8_fa29_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa29_or0 = 0; - uint8_t h_s_wallace_pg_rca8_ha5_xor0 = 0; - uint8_t h_s_wallace_pg_rca8_ha5_and0 = 0; - uint8_t h_s_wallace_pg_rca8_fa30_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa30_or0 = 0; - uint8_t h_s_wallace_pg_rca8_fa31_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa31_or0 = 0; - uint8_t h_s_wallace_pg_rca8_fa32_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa32_or0 = 0; - uint8_t h_s_wallace_pg_rca8_fa33_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa33_or0 = 0; - uint8_t h_s_wallace_pg_rca8_nand_5_7 = 0; - uint8_t h_s_wallace_pg_rca8_fa34_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa34_or0 = 0; - uint8_t h_s_wallace_pg_rca8_nand_7_6 = 0; - uint8_t h_s_wallace_pg_rca8_fa35_xor1 = 0; - uint8_t h_s_wallace_pg_rca8_fa35_or0 = 0; - uint8_t h_s_wallace_pg_rca8_and_0_0 = 0; - uint8_t h_s_wallace_pg_rca8_and_1_0 = 0; - uint8_t h_s_wallace_pg_rca8_and_0_2 = 0; - uint8_t h_s_wallace_pg_rca8_nand_6_7 = 0; - uint8_t h_s_wallace_pg_rca8_and_0_1 = 0; - uint8_t h_s_wallace_pg_rca8_and_7_7 = 0; - uint64_t h_s_wallace_pg_rca8_u_pg_rca14_a = 0; - uint64_t h_s_wallace_pg_rca8_u_pg_rca14_b = 0; - uint64_t h_s_wallace_pg_rca8_u_pg_rca14_out = 0; - uint8_t h_s_wallace_pg_rca8_xor0 = 0; - - h_s_wallace_pg_rca8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_pg_rca8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_pg_rca8_ha0_xor0 = (ha(((h_s_wallace_pg_rca8_and_2_0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_ha0_and0 = (ha(((h_s_wallace_pg_rca8_and_2_0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_pg_rca8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_pg_rca8_fa0_xor1 = (fa(((h_s_wallace_pg_rca8_ha0_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_3_0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa0_or0 = (fa(((h_s_wallace_pg_rca8_ha0_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_3_0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_pg_rca8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_pg_rca8_fa1_xor1 = (fa(((h_s_wallace_pg_rca8_fa0_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_4_0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa1_or0 = (fa(((h_s_wallace_pg_rca8_fa0_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_4_0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_pg_rca8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_pg_rca8_fa2_xor1 = (fa(((h_s_wallace_pg_rca8_fa1_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_5_0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_4_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa2_or0 = (fa(((h_s_wallace_pg_rca8_fa1_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_5_0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_4_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_pg_rca8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_pg_rca8_fa3_xor1 = (fa(((h_s_wallace_pg_rca8_fa2_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_6_0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa3_or0 = (fa(((h_s_wallace_pg_rca8_fa2_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_6_0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_nand_7_0 = nand_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_pg_rca8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_pg_rca8_fa4_xor1 = (fa(((h_s_wallace_pg_rca8_fa3_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_7_0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa4_or0 = (fa(((h_s_wallace_pg_rca8_fa3_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_7_0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_nand_7_1 = nand_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_pg_rca8_fa5_xor1 = (fa(((h_s_wallace_pg_rca8_fa4_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_pg_rca8_nand_7_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa5_or0 = (fa(((h_s_wallace_pg_rca8_fa4_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_pg_rca8_nand_7_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_nand_7_2 = nand_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_pg_rca8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_pg_rca8_fa6_xor1 = (fa(((h_s_wallace_pg_rca8_fa5_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_7_2 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_6_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa6_or0 = (fa(((h_s_wallace_pg_rca8_fa5_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_7_2 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_6_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_nand_7_3 = nand_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_pg_rca8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_pg_rca8_fa7_xor1 = (fa(((h_s_wallace_pg_rca8_fa6_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_7_3 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa7_or0 = (fa(((h_s_wallace_pg_rca8_fa6_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_7_3 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_nand_7_4 = nand_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_pg_rca8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_pg_rca8_fa8_xor1 = (fa(((h_s_wallace_pg_rca8_fa7_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_7_4 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_6_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa8_or0 = (fa(((h_s_wallace_pg_rca8_fa7_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_7_4 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_6_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_nand_7_5 = nand_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_pg_rca8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_pg_rca8_fa9_xor1 = (fa(((h_s_wallace_pg_rca8_fa8_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_7_5 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_6_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa9_or0 = (fa(((h_s_wallace_pg_rca8_fa8_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_7_5 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_6_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_pg_rca8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_pg_rca8_ha1_xor0 = (ha(((h_s_wallace_pg_rca8_and_1_2 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_ha1_and0 = (ha(((h_s_wallace_pg_rca8_and_1_2 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_pg_rca8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_pg_rca8_fa10_xor1 = (fa(((h_s_wallace_pg_rca8_ha1_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_2_2 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa10_or0 = (fa(((h_s_wallace_pg_rca8_ha1_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_2_2 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_pg_rca8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_pg_rca8_fa11_xor1 = (fa(((h_s_wallace_pg_rca8_fa10_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_3_2 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa11_or0 = (fa(((h_s_wallace_pg_rca8_fa10_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_3_2 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_pg_rca8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_pg_rca8_fa12_xor1 = (fa(((h_s_wallace_pg_rca8_fa11_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_4_2 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_3_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa12_or0 = (fa(((h_s_wallace_pg_rca8_fa11_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_4_2 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_3_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_pg_rca8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_pg_rca8_fa13_xor1 = (fa(((h_s_wallace_pg_rca8_fa12_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_5_2 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa13_or0 = (fa(((h_s_wallace_pg_rca8_fa12_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_5_2 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_pg_rca8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_pg_rca8_fa14_xor1 = (fa(((h_s_wallace_pg_rca8_fa13_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_6_2 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_5_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa14_or0 = (fa(((h_s_wallace_pg_rca8_fa13_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_6_2 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_5_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_pg_rca8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_pg_rca8_fa15_xor1 = (fa(((h_s_wallace_pg_rca8_fa14_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_5_4 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa15_or0 = (fa(((h_s_wallace_pg_rca8_fa14_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_5_4 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_pg_rca8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_pg_rca8_fa16_xor1 = (fa(((h_s_wallace_pg_rca8_fa15_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_5_5 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_4_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa16_or0 = (fa(((h_s_wallace_pg_rca8_fa15_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_5_5 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_4_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_pg_rca8_nand_4_7 = nand_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_pg_rca8_fa17_xor1 = (fa(((h_s_wallace_pg_rca8_fa16_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_5_6 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_4_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa17_or0 = (fa(((h_s_wallace_pg_rca8_fa16_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_5_6 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_4_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_pg_rca8_ha2_xor0 = (ha(((h_s_wallace_pg_rca8_and_0_4 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa1_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_ha2_and0 = (ha(((h_s_wallace_pg_rca8_and_0_4 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa1_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_pg_rca8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_pg_rca8_fa18_xor1 = (fa(((h_s_wallace_pg_rca8_ha2_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_1_4 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa18_or0 = (fa(((h_s_wallace_pg_rca8_ha2_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_1_4 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_pg_rca8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_pg_rca8_fa19_xor1 = (fa(((h_s_wallace_pg_rca8_fa18_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_2_4 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_1_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa19_or0 = (fa(((h_s_wallace_pg_rca8_fa18_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_2_4 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_1_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_pg_rca8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_pg_rca8_fa20_xor1 = (fa(((h_s_wallace_pg_rca8_fa19_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_3_4 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_2_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa20_or0 = (fa(((h_s_wallace_pg_rca8_fa19_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_3_4 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_2_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_pg_rca8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_pg_rca8_fa21_xor1 = (fa(((h_s_wallace_pg_rca8_fa20_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_4_4 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_3_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa21_or0 = (fa(((h_s_wallace_pg_rca8_fa20_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_4_4 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_3_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_pg_rca8_nand_2_7 = nand_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_pg_rca8_fa22_xor1 = (fa(((h_s_wallace_pg_rca8_fa21_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_3_6 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_2_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa22_or0 = (fa(((h_s_wallace_pg_rca8_fa21_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_3_6 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_2_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_nand_3_7 = nand_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_pg_rca8_fa23_xor1 = (fa(((h_s_wallace_pg_rca8_fa22_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_3_7 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa7_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa23_or0 = (fa(((h_s_wallace_pg_rca8_fa22_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_3_7 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa7_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_ha3_xor0 = (ha(((h_s_wallace_pg_rca8_fa2_xor1 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa11_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_ha3_and0 = (ha(((h_s_wallace_pg_rca8_fa2_xor1 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa11_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_pg_rca8_fa24_xor1 = (fa(((h_s_wallace_pg_rca8_ha3_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_0_6 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa24_or0 = (fa(((h_s_wallace_pg_rca8_ha3_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_0_6 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_pg_rca8_nand_0_7 = nand_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_pg_rca8_fa25_xor1 = (fa(((h_s_wallace_pg_rca8_fa24_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_1_6 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_0_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa25_or0 = (fa(((h_s_wallace_pg_rca8_fa24_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_1_6 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_0_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_pg_rca8_nand_1_7 = nand_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_pg_rca8_fa26_xor1 = (fa(((h_s_wallace_pg_rca8_fa25_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_2_6 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_1_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa26_or0 = (fa(((h_s_wallace_pg_rca8_fa25_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_and_2_6 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_1_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_fa27_xor1 = (fa(((h_s_wallace_pg_rca8_fa26_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa6_xor1 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa15_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa27_or0 = (fa(((h_s_wallace_pg_rca8_fa26_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa6_xor1 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa15_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_ha4_xor0 = (ha(((h_s_wallace_pg_rca8_fa12_xor1 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa19_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_ha4_and0 = (ha(((h_s_wallace_pg_rca8_fa12_xor1 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa19_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_fa28_xor1 = (fa(((h_s_wallace_pg_rca8_ha4_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa4_xor1 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa13_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa28_or0 = (fa(((h_s_wallace_pg_rca8_ha4_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa4_xor1 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa13_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_fa29_xor1 = (fa(((h_s_wallace_pg_rca8_fa28_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa5_xor1 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa14_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa29_or0 = (fa(((h_s_wallace_pg_rca8_fa28_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa5_xor1 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa14_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_ha5_xor0 = (ha(((h_s_wallace_pg_rca8_fa20_xor1 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa25_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_ha5_and0 = (ha(((h_s_wallace_pg_rca8_fa20_xor1 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa25_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_fa30_xor1 = (fa(((h_s_wallace_pg_rca8_ha5_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa21_xor1 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa26_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa30_or0 = (fa(((h_s_wallace_pg_rca8_ha5_and0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa21_xor1 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa26_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_fa31_xor1 = (fa(((h_s_wallace_pg_rca8_fa30_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa29_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa22_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa31_or0 = (fa(((h_s_wallace_pg_rca8_fa30_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa29_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa22_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_fa32_xor1 = (fa(((h_s_wallace_pg_rca8_fa31_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa27_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa16_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa32_or0 = (fa(((h_s_wallace_pg_rca8_fa31_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa27_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa16_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_fa33_xor1 = (fa(((h_s_wallace_pg_rca8_fa32_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa23_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa8_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa33_or0 = (fa(((h_s_wallace_pg_rca8_fa32_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa23_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa8_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_nand_5_7 = nand_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_pg_rca8_fa34_xor1 = (fa(((h_s_wallace_pg_rca8_fa33_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa17_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa34_or0 = (fa(((h_s_wallace_pg_rca8_fa33_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa17_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_nand_7_6 = nand_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_pg_rca8_fa35_xor1 = (fa(((h_s_wallace_pg_rca8_fa34_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa9_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_pg_rca8_fa35_or0 = (fa(((h_s_wallace_pg_rca8_fa34_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_fa9_or0 >> 0) & 0x01), ((h_s_wallace_pg_rca8_nand_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_pg_rca8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_pg_rca8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_pg_rca8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_pg_rca8_nand_6_7 = nand_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_pg_rca8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_pg_rca8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_pg_rca8_u_pg_rca14_a |= ((h_s_wallace_pg_rca8_and_1_0 >> 0) & 0x01) << 0; - h_s_wallace_pg_rca8_u_pg_rca14_a |= ((h_s_wallace_pg_rca8_and_0_2 >> 0) & 0x01) << 1; - h_s_wallace_pg_rca8_u_pg_rca14_a |= ((h_s_wallace_pg_rca8_fa0_xor1 >> 0) & 0x01) << 2; - h_s_wallace_pg_rca8_u_pg_rca14_a |= ((h_s_wallace_pg_rca8_fa10_xor1 >> 0) & 0x01) << 3; - h_s_wallace_pg_rca8_u_pg_rca14_a |= ((h_s_wallace_pg_rca8_fa18_xor1 >> 0) & 0x01) << 4; - h_s_wallace_pg_rca8_u_pg_rca14_a |= ((h_s_wallace_pg_rca8_fa24_xor1 >> 0) & 0x01) << 5; - h_s_wallace_pg_rca8_u_pg_rca14_a |= ((h_s_wallace_pg_rca8_fa28_xor1 >> 0) & 0x01) << 6; - h_s_wallace_pg_rca8_u_pg_rca14_a |= ((h_s_wallace_pg_rca8_fa29_xor1 >> 0) & 0x01) << 7; - h_s_wallace_pg_rca8_u_pg_rca14_a |= ((h_s_wallace_pg_rca8_fa27_xor1 >> 0) & 0x01) << 8; - h_s_wallace_pg_rca8_u_pg_rca14_a |= ((h_s_wallace_pg_rca8_fa23_xor1 >> 0) & 0x01) << 9; - h_s_wallace_pg_rca8_u_pg_rca14_a |= ((h_s_wallace_pg_rca8_fa17_xor1 >> 0) & 0x01) << 10; - h_s_wallace_pg_rca8_u_pg_rca14_a |= ((h_s_wallace_pg_rca8_fa9_xor1 >> 0) & 0x01) << 11; - h_s_wallace_pg_rca8_u_pg_rca14_a |= ((h_s_wallace_pg_rca8_nand_6_7 >> 0) & 0x01) << 12; - h_s_wallace_pg_rca8_u_pg_rca14_a |= ((h_s_wallace_pg_rca8_fa35_or0 >> 0) & 0x01) << 13; - h_s_wallace_pg_rca8_u_pg_rca14_b |= ((h_s_wallace_pg_rca8_and_0_1 >> 0) & 0x01) << 0; - h_s_wallace_pg_rca8_u_pg_rca14_b |= ((h_s_wallace_pg_rca8_ha0_xor0 >> 0) & 0x01) << 1; - h_s_wallace_pg_rca8_u_pg_rca14_b |= ((h_s_wallace_pg_rca8_ha1_xor0 >> 0) & 0x01) << 2; - h_s_wallace_pg_rca8_u_pg_rca14_b |= ((h_s_wallace_pg_rca8_ha2_xor0 >> 0) & 0x01) << 3; - h_s_wallace_pg_rca8_u_pg_rca14_b |= ((h_s_wallace_pg_rca8_ha3_xor0 >> 0) & 0x01) << 4; - h_s_wallace_pg_rca8_u_pg_rca14_b |= ((h_s_wallace_pg_rca8_ha4_xor0 >> 0) & 0x01) << 5; - h_s_wallace_pg_rca8_u_pg_rca14_b |= ((h_s_wallace_pg_rca8_ha5_xor0 >> 0) & 0x01) << 6; - h_s_wallace_pg_rca8_u_pg_rca14_b |= ((h_s_wallace_pg_rca8_fa30_xor1 >> 0) & 0x01) << 7; - h_s_wallace_pg_rca8_u_pg_rca14_b |= ((h_s_wallace_pg_rca8_fa31_xor1 >> 0) & 0x01) << 8; - h_s_wallace_pg_rca8_u_pg_rca14_b |= ((h_s_wallace_pg_rca8_fa32_xor1 >> 0) & 0x01) << 9; - h_s_wallace_pg_rca8_u_pg_rca14_b |= ((h_s_wallace_pg_rca8_fa33_xor1 >> 0) & 0x01) << 10; - h_s_wallace_pg_rca8_u_pg_rca14_b |= ((h_s_wallace_pg_rca8_fa34_xor1 >> 0) & 0x01) << 11; - h_s_wallace_pg_rca8_u_pg_rca14_b |= ((h_s_wallace_pg_rca8_fa35_xor1 >> 0) & 0x01) << 12; - h_s_wallace_pg_rca8_u_pg_rca14_b |= ((h_s_wallace_pg_rca8_and_7_7 >> 0) & 0x01) << 13; - h_s_wallace_pg_rca8_u_pg_rca14_out = u_pg_rca14(h_s_wallace_pg_rca8_u_pg_rca14_a, h_s_wallace_pg_rca8_u_pg_rca14_b); - h_s_wallace_pg_rca8_xor0 = not_gate(((h_s_wallace_pg_rca8_u_pg_rca14_out >> 14) & 0x01)); - - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_and_0_0 >> 0) & 0x01) << 0; - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_u_pg_rca14_out >> 0) & 0x01) << 1; - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_u_pg_rca14_out >> 1) & 0x01) << 2; - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_u_pg_rca14_out >> 2) & 0x01) << 3; - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_u_pg_rca14_out >> 3) & 0x01) << 4; - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_u_pg_rca14_out >> 4) & 0x01) << 5; - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_u_pg_rca14_out >> 5) & 0x01) << 6; - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_u_pg_rca14_out >> 6) & 0x01) << 7; - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_u_pg_rca14_out >> 7) & 0x01) << 8; - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_u_pg_rca14_out >> 8) & 0x01) << 9; - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_u_pg_rca14_out >> 9) & 0x01) << 10; - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_u_pg_rca14_out >> 10) & 0x01) << 11; - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_u_pg_rca14_out >> 11) & 0x01) << 12; - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_u_pg_rca14_out >> 12) & 0x01) << 13; - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_u_pg_rca14_out >> 13) & 0x01) << 14; - h_s_wallace_pg_rca8_out |= ((h_s_wallace_pg_rca8_xor0 >> 0) & 0x01) << 15; - return h_s_wallace_pg_rca8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)h_s_wallace_pg_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_rca4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_rca4.c deleted file mode 100644 index 1b89ed3..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_rca4.c +++ /dev/null @@ -1,199 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint64_t u_rca6(uint64_t a, uint64_t b){ - uint8_t u_rca6_out = 0; - uint8_t u_rca6_ha_xor0 = 0; - uint8_t u_rca6_ha_and0 = 0; - uint8_t u_rca6_fa1_xor1 = 0; - uint8_t u_rca6_fa1_or0 = 0; - uint8_t u_rca6_fa2_xor1 = 0; - uint8_t u_rca6_fa2_or0 = 0; - uint8_t u_rca6_fa3_xor1 = 0; - uint8_t u_rca6_fa3_or0 = 0; - uint8_t u_rca6_fa4_xor1 = 0; - uint8_t u_rca6_fa4_or0 = 0; - uint8_t u_rca6_fa5_xor1 = 0; - uint8_t u_rca6_fa5_or0 = 0; - - u_rca6_ha_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_ha_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa1_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca6_ha_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa1_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca6_ha_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa2_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca6_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa2_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca6_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa3_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca6_fa2_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa3_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca6_fa2_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa4_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca6_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa4_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca6_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa5_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca6_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa5_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca6_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - - u_rca6_out |= ((u_rca6_ha_xor0 >> 0) & 0x01) << 0; - u_rca6_out |= ((u_rca6_fa1_xor1 >> 0) & 0x01) << 1; - u_rca6_out |= ((u_rca6_fa2_xor1 >> 0) & 0x01) << 2; - u_rca6_out |= ((u_rca6_fa3_xor1 >> 0) & 0x01) << 3; - u_rca6_out |= ((u_rca6_fa4_xor1 >> 0) & 0x01) << 4; - u_rca6_out |= ((u_rca6_fa5_xor1 >> 0) & 0x01) << 5; - u_rca6_out |= ((u_rca6_fa5_or0 >> 0) & 0x01) << 6; - return u_rca6_out; -} - -uint64_t h_s_wallace_rca4(uint64_t a, uint64_t b){ - uint8_t h_s_wallace_rca4_out = 0; - uint8_t h_s_wallace_rca4_and_2_0 = 0; - uint8_t h_s_wallace_rca4_and_1_1 = 0; - uint8_t h_s_wallace_rca4_ha0_xor0 = 0; - uint8_t h_s_wallace_rca4_ha0_and0 = 0; - uint8_t h_s_wallace_rca4_nand_3_0 = 0; - uint8_t h_s_wallace_rca4_and_2_1 = 0; - uint8_t h_s_wallace_rca4_fa0_xor1 = 0; - uint8_t h_s_wallace_rca4_fa0_or0 = 0; - uint8_t h_s_wallace_rca4_nand_3_1 = 0; - uint8_t h_s_wallace_rca4_fa1_xor1 = 0; - uint8_t h_s_wallace_rca4_fa1_or0 = 0; - uint8_t h_s_wallace_rca4_and_1_2 = 0; - uint8_t h_s_wallace_rca4_nand_0_3 = 0; - uint8_t h_s_wallace_rca4_ha1_xor0 = 0; - uint8_t h_s_wallace_rca4_ha1_and0 = 0; - uint8_t h_s_wallace_rca4_and_2_2 = 0; - uint8_t h_s_wallace_rca4_nand_1_3 = 0; - uint8_t h_s_wallace_rca4_fa2_xor1 = 0; - uint8_t h_s_wallace_rca4_fa2_or0 = 0; - uint8_t h_s_wallace_rca4_nand_3_2 = 0; - uint8_t h_s_wallace_rca4_fa3_xor1 = 0; - uint8_t h_s_wallace_rca4_fa3_or0 = 0; - uint8_t h_s_wallace_rca4_and_0_0 = 0; - uint8_t h_s_wallace_rca4_and_1_0 = 0; - uint8_t h_s_wallace_rca4_and_0_2 = 0; - uint8_t h_s_wallace_rca4_nand_2_3 = 0; - uint8_t h_s_wallace_rca4_and_0_1 = 0; - uint8_t h_s_wallace_rca4_and_3_3 = 0; - uint64_t h_s_wallace_rca4_u_rca6_a = 0; - uint64_t h_s_wallace_rca4_u_rca6_b = 0; - uint64_t h_s_wallace_rca4_u_rca6_out = 0; - uint8_t h_s_wallace_rca4_xor0 = 0; - - h_s_wallace_rca4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_rca4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_rca4_ha0_xor0 = (ha(((h_s_wallace_rca4_and_2_0 >> 0) & 0x01), ((h_s_wallace_rca4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca4_ha0_and0 = (ha(((h_s_wallace_rca4_and_2_0 >> 0) & 0x01), ((h_s_wallace_rca4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca4_nand_3_0 = nand_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_rca4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_rca4_fa0_xor1 = (fa(((h_s_wallace_rca4_ha0_and0 >> 0) & 0x01), ((h_s_wallace_rca4_nand_3_0 >> 0) & 0x01), ((h_s_wallace_rca4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca4_fa0_or0 = (fa(((h_s_wallace_rca4_ha0_and0 >> 0) & 0x01), ((h_s_wallace_rca4_nand_3_0 >> 0) & 0x01), ((h_s_wallace_rca4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca4_nand_3_1 = nand_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_rca4_fa1_xor1 = (fa(((h_s_wallace_rca4_fa0_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_rca4_nand_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca4_fa1_or0 = (fa(((h_s_wallace_rca4_fa0_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_rca4_nand_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_rca4_nand_0_3 = nand_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_rca4_ha1_xor0 = (ha(((h_s_wallace_rca4_and_1_2 >> 0) & 0x01), ((h_s_wallace_rca4_nand_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca4_ha1_and0 = (ha(((h_s_wallace_rca4_and_1_2 >> 0) & 0x01), ((h_s_wallace_rca4_nand_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_rca4_nand_1_3 = nand_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_rca4_fa2_xor1 = (fa(((h_s_wallace_rca4_ha1_and0 >> 0) & 0x01), ((h_s_wallace_rca4_and_2_2 >> 0) & 0x01), ((h_s_wallace_rca4_nand_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca4_fa2_or0 = (fa(((h_s_wallace_rca4_ha1_and0 >> 0) & 0x01), ((h_s_wallace_rca4_and_2_2 >> 0) & 0x01), ((h_s_wallace_rca4_nand_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca4_nand_3_2 = nand_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_rca4_fa3_xor1 = (fa(((h_s_wallace_rca4_fa2_or0 >> 0) & 0x01), ((h_s_wallace_rca4_fa1_or0 >> 0) & 0x01), ((h_s_wallace_rca4_nand_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca4_fa3_or0 = (fa(((h_s_wallace_rca4_fa2_or0 >> 0) & 0x01), ((h_s_wallace_rca4_fa1_or0 >> 0) & 0x01), ((h_s_wallace_rca4_nand_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_rca4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_rca4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_rca4_nand_2_3 = nand_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_rca4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_rca4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_rca4_u_rca6_a |= ((h_s_wallace_rca4_and_1_0 >> 0) & 0x01) << 0; - h_s_wallace_rca4_u_rca6_a |= ((h_s_wallace_rca4_and_0_2 >> 0) & 0x01) << 1; - h_s_wallace_rca4_u_rca6_a |= ((h_s_wallace_rca4_fa0_xor1 >> 0) & 0x01) << 2; - h_s_wallace_rca4_u_rca6_a |= ((h_s_wallace_rca4_fa1_xor1 >> 0) & 0x01) << 3; - h_s_wallace_rca4_u_rca6_a |= ((h_s_wallace_rca4_nand_2_3 >> 0) & 0x01) << 4; - h_s_wallace_rca4_u_rca6_a |= ((h_s_wallace_rca4_fa3_or0 >> 0) & 0x01) << 5; - h_s_wallace_rca4_u_rca6_b |= ((h_s_wallace_rca4_and_0_1 >> 0) & 0x01) << 0; - h_s_wallace_rca4_u_rca6_b |= ((h_s_wallace_rca4_ha0_xor0 >> 0) & 0x01) << 1; - h_s_wallace_rca4_u_rca6_b |= ((h_s_wallace_rca4_ha1_xor0 >> 0) & 0x01) << 2; - h_s_wallace_rca4_u_rca6_b |= ((h_s_wallace_rca4_fa2_xor1 >> 0) & 0x01) << 3; - h_s_wallace_rca4_u_rca6_b |= ((h_s_wallace_rca4_fa3_xor1 >> 0) & 0x01) << 4; - h_s_wallace_rca4_u_rca6_b |= ((h_s_wallace_rca4_and_3_3 >> 0) & 0x01) << 5; - h_s_wallace_rca4_u_rca6_out = u_rca6(h_s_wallace_rca4_u_rca6_a, h_s_wallace_rca4_u_rca6_b); - h_s_wallace_rca4_xor0 = not_gate(((h_s_wallace_rca4_u_rca6_out >> 6) & 0x01)); - - h_s_wallace_rca4_out |= ((h_s_wallace_rca4_and_0_0 >> 0) & 0x01) << 0; - h_s_wallace_rca4_out |= ((h_s_wallace_rca4_u_rca6_out >> 0) & 0x01) << 1; - h_s_wallace_rca4_out |= ((h_s_wallace_rca4_u_rca6_out >> 1) & 0x01) << 2; - h_s_wallace_rca4_out |= ((h_s_wallace_rca4_u_rca6_out >> 2) & 0x01) << 3; - h_s_wallace_rca4_out |= ((h_s_wallace_rca4_u_rca6_out >> 3) & 0x01) << 4; - h_s_wallace_rca4_out |= ((h_s_wallace_rca4_u_rca6_out >> 4) & 0x01) << 5; - h_s_wallace_rca4_out |= ((h_s_wallace_rca4_u_rca6_out >> 5) & 0x01) << 6; - h_s_wallace_rca4_out |= ((h_s_wallace_rca4_xor0 >> 0) & 0x01) << 7; - return h_s_wallace_rca4_out; -} - -#include -int main(){ - int result = 0; - for (int i = -8; i < 8; i++){ - for (int j = -8; j < 8; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 256 + result; - } - - assert(result == (int)h_s_wallace_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_rca8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_rca8.c deleted file mode 100644 index 3e1b3cb..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_s_wallace_rca8.c +++ /dev/null @@ -1,503 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint64_t u_rca14(uint64_t a, uint64_t b){ - uint64_t u_rca14_out = 0; - uint8_t u_rca14_ha_xor0 = 0; - uint8_t u_rca14_ha_and0 = 0; - uint8_t u_rca14_fa1_xor1 = 0; - uint8_t u_rca14_fa1_or0 = 0; - uint8_t u_rca14_fa2_xor1 = 0; - uint8_t u_rca14_fa2_or0 = 0; - uint8_t u_rca14_fa3_xor1 = 0; - uint8_t u_rca14_fa3_or0 = 0; - uint8_t u_rca14_fa4_xor1 = 0; - uint8_t u_rca14_fa4_or0 = 0; - uint8_t u_rca14_fa5_xor1 = 0; - uint8_t u_rca14_fa5_or0 = 0; - uint8_t u_rca14_fa6_xor1 = 0; - uint8_t u_rca14_fa6_or0 = 0; - uint8_t u_rca14_fa7_xor1 = 0; - uint8_t u_rca14_fa7_or0 = 0; - uint8_t u_rca14_fa8_xor1 = 0; - uint8_t u_rca14_fa8_or0 = 0; - uint8_t u_rca14_fa9_xor1 = 0; - uint8_t u_rca14_fa9_or0 = 0; - uint8_t u_rca14_fa10_xor1 = 0; - uint8_t u_rca14_fa10_or0 = 0; - uint8_t u_rca14_fa11_xor1 = 0; - uint8_t u_rca14_fa11_or0 = 0; - uint8_t u_rca14_fa12_xor1 = 0; - uint8_t u_rca14_fa12_or0 = 0; - uint8_t u_rca14_fa13_xor1 = 0; - uint8_t u_rca14_fa13_or0 = 0; - - u_rca14_ha_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_ha_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa1_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca14_ha_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa1_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca14_ha_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa2_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca14_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa2_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca14_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa3_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca14_fa2_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa3_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca14_fa2_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa4_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca14_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa4_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca14_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa5_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca14_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa5_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca14_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa6_xor1 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_rca14_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa6_or0 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_rca14_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa7_xor1 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_rca14_fa6_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa7_or0 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_rca14_fa6_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa8_xor1 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_rca14_fa7_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa8_or0 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_rca14_fa7_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa9_xor1 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_rca14_fa8_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa9_or0 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_rca14_fa8_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa10_xor1 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_rca14_fa9_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa10_or0 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_rca14_fa9_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa11_xor1 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_rca14_fa10_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa11_or0 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_rca14_fa10_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa12_xor1 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_rca14_fa11_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa12_or0 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_rca14_fa11_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa13_xor1 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_rca14_fa12_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa13_or0 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_rca14_fa12_or0 >> 0) & 0x01)) >> 1) & 0x01; - - u_rca14_out |= ((u_rca14_ha_xor0 >> 0) & 0x01) << 0; - u_rca14_out |= ((u_rca14_fa1_xor1 >> 0) & 0x01) << 1; - u_rca14_out |= ((u_rca14_fa2_xor1 >> 0) & 0x01) << 2; - u_rca14_out |= ((u_rca14_fa3_xor1 >> 0) & 0x01) << 3; - u_rca14_out |= ((u_rca14_fa4_xor1 >> 0) & 0x01) << 4; - u_rca14_out |= ((u_rca14_fa5_xor1 >> 0) & 0x01) << 5; - u_rca14_out |= ((u_rca14_fa6_xor1 >> 0) & 0x01) << 6; - u_rca14_out |= ((u_rca14_fa7_xor1 >> 0) & 0x01) << 7; - u_rca14_out |= ((u_rca14_fa8_xor1 >> 0) & 0x01) << 8; - u_rca14_out |= ((u_rca14_fa9_xor1 >> 0) & 0x01) << 9; - u_rca14_out |= ((u_rca14_fa10_xor1 >> 0) & 0x01) << 10; - u_rca14_out |= ((u_rca14_fa11_xor1 >> 0) & 0x01) << 11; - u_rca14_out |= ((u_rca14_fa12_xor1 >> 0) & 0x01) << 12; - u_rca14_out |= ((u_rca14_fa13_xor1 >> 0) & 0x01) << 13; - u_rca14_out |= ((u_rca14_fa13_or0 >> 0) & 0x01) << 14; - return u_rca14_out; -} - -uint64_t h_s_wallace_rca8(uint64_t a, uint64_t b){ - uint64_t h_s_wallace_rca8_out = 0; - uint8_t h_s_wallace_rca8_and_2_0 = 0; - uint8_t h_s_wallace_rca8_and_1_1 = 0; - uint8_t h_s_wallace_rca8_ha0_xor0 = 0; - uint8_t h_s_wallace_rca8_ha0_and0 = 0; - uint8_t h_s_wallace_rca8_and_3_0 = 0; - uint8_t h_s_wallace_rca8_and_2_1 = 0; - uint8_t h_s_wallace_rca8_fa0_xor1 = 0; - uint8_t h_s_wallace_rca8_fa0_or0 = 0; - uint8_t h_s_wallace_rca8_and_4_0 = 0; - uint8_t h_s_wallace_rca8_and_3_1 = 0; - uint8_t h_s_wallace_rca8_fa1_xor1 = 0; - uint8_t h_s_wallace_rca8_fa1_or0 = 0; - uint8_t h_s_wallace_rca8_and_5_0 = 0; - uint8_t h_s_wallace_rca8_and_4_1 = 0; - uint8_t h_s_wallace_rca8_fa2_xor1 = 0; - uint8_t h_s_wallace_rca8_fa2_or0 = 0; - uint8_t h_s_wallace_rca8_and_6_0 = 0; - uint8_t h_s_wallace_rca8_and_5_1 = 0; - uint8_t h_s_wallace_rca8_fa3_xor1 = 0; - uint8_t h_s_wallace_rca8_fa3_or0 = 0; - uint8_t h_s_wallace_rca8_nand_7_0 = 0; - uint8_t h_s_wallace_rca8_and_6_1 = 0; - uint8_t h_s_wallace_rca8_fa4_xor1 = 0; - uint8_t h_s_wallace_rca8_fa4_or0 = 0; - uint8_t h_s_wallace_rca8_nand_7_1 = 0; - uint8_t h_s_wallace_rca8_fa5_xor1 = 0; - uint8_t h_s_wallace_rca8_fa5_or0 = 0; - uint8_t h_s_wallace_rca8_nand_7_2 = 0; - uint8_t h_s_wallace_rca8_and_6_3 = 0; - uint8_t h_s_wallace_rca8_fa6_xor1 = 0; - uint8_t h_s_wallace_rca8_fa6_or0 = 0; - uint8_t h_s_wallace_rca8_nand_7_3 = 0; - uint8_t h_s_wallace_rca8_and_6_4 = 0; - uint8_t h_s_wallace_rca8_fa7_xor1 = 0; - uint8_t h_s_wallace_rca8_fa7_or0 = 0; - uint8_t h_s_wallace_rca8_nand_7_4 = 0; - uint8_t h_s_wallace_rca8_and_6_5 = 0; - uint8_t h_s_wallace_rca8_fa8_xor1 = 0; - uint8_t h_s_wallace_rca8_fa8_or0 = 0; - uint8_t h_s_wallace_rca8_nand_7_5 = 0; - uint8_t h_s_wallace_rca8_and_6_6 = 0; - uint8_t h_s_wallace_rca8_fa9_xor1 = 0; - uint8_t h_s_wallace_rca8_fa9_or0 = 0; - uint8_t h_s_wallace_rca8_and_1_2 = 0; - uint8_t h_s_wallace_rca8_and_0_3 = 0; - uint8_t h_s_wallace_rca8_ha1_xor0 = 0; - uint8_t h_s_wallace_rca8_ha1_and0 = 0; - uint8_t h_s_wallace_rca8_and_2_2 = 0; - uint8_t h_s_wallace_rca8_and_1_3 = 0; - uint8_t h_s_wallace_rca8_fa10_xor1 = 0; - uint8_t h_s_wallace_rca8_fa10_or0 = 0; - uint8_t h_s_wallace_rca8_and_3_2 = 0; - uint8_t h_s_wallace_rca8_and_2_3 = 0; - uint8_t h_s_wallace_rca8_fa11_xor1 = 0; - uint8_t h_s_wallace_rca8_fa11_or0 = 0; - uint8_t h_s_wallace_rca8_and_4_2 = 0; - uint8_t h_s_wallace_rca8_and_3_3 = 0; - uint8_t h_s_wallace_rca8_fa12_xor1 = 0; - uint8_t h_s_wallace_rca8_fa12_or0 = 0; - uint8_t h_s_wallace_rca8_and_5_2 = 0; - uint8_t h_s_wallace_rca8_and_4_3 = 0; - uint8_t h_s_wallace_rca8_fa13_xor1 = 0; - uint8_t h_s_wallace_rca8_fa13_or0 = 0; - uint8_t h_s_wallace_rca8_and_6_2 = 0; - uint8_t h_s_wallace_rca8_and_5_3 = 0; - uint8_t h_s_wallace_rca8_fa14_xor1 = 0; - uint8_t h_s_wallace_rca8_fa14_or0 = 0; - uint8_t h_s_wallace_rca8_and_5_4 = 0; - uint8_t h_s_wallace_rca8_and_4_5 = 0; - uint8_t h_s_wallace_rca8_fa15_xor1 = 0; - uint8_t h_s_wallace_rca8_fa15_or0 = 0; - uint8_t h_s_wallace_rca8_and_5_5 = 0; - uint8_t h_s_wallace_rca8_and_4_6 = 0; - uint8_t h_s_wallace_rca8_fa16_xor1 = 0; - uint8_t h_s_wallace_rca8_fa16_or0 = 0; - uint8_t h_s_wallace_rca8_and_5_6 = 0; - uint8_t h_s_wallace_rca8_nand_4_7 = 0; - uint8_t h_s_wallace_rca8_fa17_xor1 = 0; - uint8_t h_s_wallace_rca8_fa17_or0 = 0; - uint8_t h_s_wallace_rca8_and_0_4 = 0; - uint8_t h_s_wallace_rca8_ha2_xor0 = 0; - uint8_t h_s_wallace_rca8_ha2_and0 = 0; - uint8_t h_s_wallace_rca8_and_1_4 = 0; - uint8_t h_s_wallace_rca8_and_0_5 = 0; - uint8_t h_s_wallace_rca8_fa18_xor1 = 0; - uint8_t h_s_wallace_rca8_fa18_or0 = 0; - uint8_t h_s_wallace_rca8_and_2_4 = 0; - uint8_t h_s_wallace_rca8_and_1_5 = 0; - uint8_t h_s_wallace_rca8_fa19_xor1 = 0; - uint8_t h_s_wallace_rca8_fa19_or0 = 0; - uint8_t h_s_wallace_rca8_and_3_4 = 0; - uint8_t h_s_wallace_rca8_and_2_5 = 0; - uint8_t h_s_wallace_rca8_fa20_xor1 = 0; - uint8_t h_s_wallace_rca8_fa20_or0 = 0; - uint8_t h_s_wallace_rca8_and_4_4 = 0; - uint8_t h_s_wallace_rca8_and_3_5 = 0; - uint8_t h_s_wallace_rca8_fa21_xor1 = 0; - uint8_t h_s_wallace_rca8_fa21_or0 = 0; - uint8_t h_s_wallace_rca8_and_3_6 = 0; - uint8_t h_s_wallace_rca8_nand_2_7 = 0; - uint8_t h_s_wallace_rca8_fa22_xor1 = 0; - uint8_t h_s_wallace_rca8_fa22_or0 = 0; - uint8_t h_s_wallace_rca8_nand_3_7 = 0; - uint8_t h_s_wallace_rca8_fa23_xor1 = 0; - uint8_t h_s_wallace_rca8_fa23_or0 = 0; - uint8_t h_s_wallace_rca8_ha3_xor0 = 0; - uint8_t h_s_wallace_rca8_ha3_and0 = 0; - uint8_t h_s_wallace_rca8_and_0_6 = 0; - uint8_t h_s_wallace_rca8_fa24_xor1 = 0; - uint8_t h_s_wallace_rca8_fa24_or0 = 0; - uint8_t h_s_wallace_rca8_and_1_6 = 0; - uint8_t h_s_wallace_rca8_nand_0_7 = 0; - uint8_t h_s_wallace_rca8_fa25_xor1 = 0; - uint8_t h_s_wallace_rca8_fa25_or0 = 0; - uint8_t h_s_wallace_rca8_and_2_6 = 0; - uint8_t h_s_wallace_rca8_nand_1_7 = 0; - uint8_t h_s_wallace_rca8_fa26_xor1 = 0; - uint8_t h_s_wallace_rca8_fa26_or0 = 0; - uint8_t h_s_wallace_rca8_fa27_xor1 = 0; - uint8_t h_s_wallace_rca8_fa27_or0 = 0; - uint8_t h_s_wallace_rca8_ha4_xor0 = 0; - uint8_t h_s_wallace_rca8_ha4_and0 = 0; - uint8_t h_s_wallace_rca8_fa28_xor1 = 0; - uint8_t h_s_wallace_rca8_fa28_or0 = 0; - uint8_t h_s_wallace_rca8_fa29_xor1 = 0; - uint8_t h_s_wallace_rca8_fa29_or0 = 0; - uint8_t h_s_wallace_rca8_ha5_xor0 = 0; - uint8_t h_s_wallace_rca8_ha5_and0 = 0; - uint8_t h_s_wallace_rca8_fa30_xor1 = 0; - uint8_t h_s_wallace_rca8_fa30_or0 = 0; - uint8_t h_s_wallace_rca8_fa31_xor1 = 0; - uint8_t h_s_wallace_rca8_fa31_or0 = 0; - uint8_t h_s_wallace_rca8_fa32_xor1 = 0; - uint8_t h_s_wallace_rca8_fa32_or0 = 0; - uint8_t h_s_wallace_rca8_fa33_xor1 = 0; - uint8_t h_s_wallace_rca8_fa33_or0 = 0; - uint8_t h_s_wallace_rca8_nand_5_7 = 0; - uint8_t h_s_wallace_rca8_fa34_xor1 = 0; - uint8_t h_s_wallace_rca8_fa34_or0 = 0; - uint8_t h_s_wallace_rca8_nand_7_6 = 0; - uint8_t h_s_wallace_rca8_fa35_xor1 = 0; - uint8_t h_s_wallace_rca8_fa35_or0 = 0; - uint8_t h_s_wallace_rca8_and_0_0 = 0; - uint8_t h_s_wallace_rca8_and_1_0 = 0; - uint8_t h_s_wallace_rca8_and_0_2 = 0; - uint8_t h_s_wallace_rca8_nand_6_7 = 0; - uint8_t h_s_wallace_rca8_and_0_1 = 0; - uint8_t h_s_wallace_rca8_and_7_7 = 0; - uint64_t h_s_wallace_rca8_u_rca14_a = 0; - uint64_t h_s_wallace_rca8_u_rca14_b = 0; - uint64_t h_s_wallace_rca8_u_rca14_out = 0; - uint8_t h_s_wallace_rca8_xor0 = 0; - - h_s_wallace_rca8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_rca8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_rca8_ha0_xor0 = (ha(((h_s_wallace_rca8_and_2_0 >> 0) & 0x01), ((h_s_wallace_rca8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_ha0_and0 = (ha(((h_s_wallace_rca8_and_2_0 >> 0) & 0x01), ((h_s_wallace_rca8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_rca8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_rca8_fa0_xor1 = (fa(((h_s_wallace_rca8_ha0_and0 >> 0) & 0x01), ((h_s_wallace_rca8_and_3_0 >> 0) & 0x01), ((h_s_wallace_rca8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa0_or0 = (fa(((h_s_wallace_rca8_ha0_and0 >> 0) & 0x01), ((h_s_wallace_rca8_and_3_0 >> 0) & 0x01), ((h_s_wallace_rca8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_rca8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_rca8_fa1_xor1 = (fa(((h_s_wallace_rca8_fa0_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_4_0 >> 0) & 0x01), ((h_s_wallace_rca8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa1_or0 = (fa(((h_s_wallace_rca8_fa0_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_4_0 >> 0) & 0x01), ((h_s_wallace_rca8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_rca8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_rca8_fa2_xor1 = (fa(((h_s_wallace_rca8_fa1_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_5_0 >> 0) & 0x01), ((h_s_wallace_rca8_and_4_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa2_or0 = (fa(((h_s_wallace_rca8_fa1_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_5_0 >> 0) & 0x01), ((h_s_wallace_rca8_and_4_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_rca8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_rca8_fa3_xor1 = (fa(((h_s_wallace_rca8_fa2_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_6_0 >> 0) & 0x01), ((h_s_wallace_rca8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa3_or0 = (fa(((h_s_wallace_rca8_fa2_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_6_0 >> 0) & 0x01), ((h_s_wallace_rca8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_nand_7_0 = nand_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_rca8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_rca8_fa4_xor1 = (fa(((h_s_wallace_rca8_fa3_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_7_0 >> 0) & 0x01), ((h_s_wallace_rca8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa4_or0 = (fa(((h_s_wallace_rca8_fa3_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_7_0 >> 0) & 0x01), ((h_s_wallace_rca8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_nand_7_1 = nand_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_rca8_fa5_xor1 = (fa(((h_s_wallace_rca8_fa4_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_rca8_nand_7_1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa5_or0 = (fa(((h_s_wallace_rca8_fa4_or0 >> 0) & 0x01), (0x01), ((h_s_wallace_rca8_nand_7_1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_nand_7_2 = nand_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_rca8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_rca8_fa6_xor1 = (fa(((h_s_wallace_rca8_fa5_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_7_2 >> 0) & 0x01), ((h_s_wallace_rca8_and_6_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa6_or0 = (fa(((h_s_wallace_rca8_fa5_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_7_2 >> 0) & 0x01), ((h_s_wallace_rca8_and_6_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_nand_7_3 = nand_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_rca8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_rca8_fa7_xor1 = (fa(((h_s_wallace_rca8_fa6_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_7_3 >> 0) & 0x01), ((h_s_wallace_rca8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa7_or0 = (fa(((h_s_wallace_rca8_fa6_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_7_3 >> 0) & 0x01), ((h_s_wallace_rca8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_nand_7_4 = nand_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_rca8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_rca8_fa8_xor1 = (fa(((h_s_wallace_rca8_fa7_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_7_4 >> 0) & 0x01), ((h_s_wallace_rca8_and_6_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa8_or0 = (fa(((h_s_wallace_rca8_fa7_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_7_4 >> 0) & 0x01), ((h_s_wallace_rca8_and_6_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_nand_7_5 = nand_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_rca8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_rca8_fa9_xor1 = (fa(((h_s_wallace_rca8_fa8_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_7_5 >> 0) & 0x01), ((h_s_wallace_rca8_and_6_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa9_or0 = (fa(((h_s_wallace_rca8_fa8_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_7_5 >> 0) & 0x01), ((h_s_wallace_rca8_and_6_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_rca8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_rca8_ha1_xor0 = (ha(((h_s_wallace_rca8_and_1_2 >> 0) & 0x01), ((h_s_wallace_rca8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_ha1_and0 = (ha(((h_s_wallace_rca8_and_1_2 >> 0) & 0x01), ((h_s_wallace_rca8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_rca8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_rca8_fa10_xor1 = (fa(((h_s_wallace_rca8_ha1_and0 >> 0) & 0x01), ((h_s_wallace_rca8_and_2_2 >> 0) & 0x01), ((h_s_wallace_rca8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa10_or0 = (fa(((h_s_wallace_rca8_ha1_and0 >> 0) & 0x01), ((h_s_wallace_rca8_and_2_2 >> 0) & 0x01), ((h_s_wallace_rca8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_rca8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_rca8_fa11_xor1 = (fa(((h_s_wallace_rca8_fa10_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_3_2 >> 0) & 0x01), ((h_s_wallace_rca8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa11_or0 = (fa(((h_s_wallace_rca8_fa10_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_3_2 >> 0) & 0x01), ((h_s_wallace_rca8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_rca8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_rca8_fa12_xor1 = (fa(((h_s_wallace_rca8_fa11_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_4_2 >> 0) & 0x01), ((h_s_wallace_rca8_and_3_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa12_or0 = (fa(((h_s_wallace_rca8_fa11_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_4_2 >> 0) & 0x01), ((h_s_wallace_rca8_and_3_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_rca8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_rca8_fa13_xor1 = (fa(((h_s_wallace_rca8_fa12_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_5_2 >> 0) & 0x01), ((h_s_wallace_rca8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa13_or0 = (fa(((h_s_wallace_rca8_fa12_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_5_2 >> 0) & 0x01), ((h_s_wallace_rca8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_rca8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_s_wallace_rca8_fa14_xor1 = (fa(((h_s_wallace_rca8_fa13_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_6_2 >> 0) & 0x01), ((h_s_wallace_rca8_and_5_3 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa14_or0 = (fa(((h_s_wallace_rca8_fa13_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_6_2 >> 0) & 0x01), ((h_s_wallace_rca8_and_5_3 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_rca8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_rca8_fa15_xor1 = (fa(((h_s_wallace_rca8_fa14_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_5_4 >> 0) & 0x01), ((h_s_wallace_rca8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa15_or0 = (fa(((h_s_wallace_rca8_fa14_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_5_4 >> 0) & 0x01), ((h_s_wallace_rca8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_rca8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_rca8_fa16_xor1 = (fa(((h_s_wallace_rca8_fa15_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_5_5 >> 0) & 0x01), ((h_s_wallace_rca8_and_4_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa16_or0 = (fa(((h_s_wallace_rca8_fa15_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_5_5 >> 0) & 0x01), ((h_s_wallace_rca8_and_4_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_rca8_nand_4_7 = nand_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_rca8_fa17_xor1 = (fa(((h_s_wallace_rca8_fa16_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_5_6 >> 0) & 0x01), ((h_s_wallace_rca8_nand_4_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa17_or0 = (fa(((h_s_wallace_rca8_fa16_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_5_6 >> 0) & 0x01), ((h_s_wallace_rca8_nand_4_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_rca8_ha2_xor0 = (ha(((h_s_wallace_rca8_and_0_4 >> 0) & 0x01), ((h_s_wallace_rca8_fa1_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_ha2_and0 = (ha(((h_s_wallace_rca8_and_0_4 >> 0) & 0x01), ((h_s_wallace_rca8_fa1_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_rca8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_rca8_fa18_xor1 = (fa(((h_s_wallace_rca8_ha2_and0 >> 0) & 0x01), ((h_s_wallace_rca8_and_1_4 >> 0) & 0x01), ((h_s_wallace_rca8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa18_or0 = (fa(((h_s_wallace_rca8_ha2_and0 >> 0) & 0x01), ((h_s_wallace_rca8_and_1_4 >> 0) & 0x01), ((h_s_wallace_rca8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_rca8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_rca8_fa19_xor1 = (fa(((h_s_wallace_rca8_fa18_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_2_4 >> 0) & 0x01), ((h_s_wallace_rca8_and_1_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa19_or0 = (fa(((h_s_wallace_rca8_fa18_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_2_4 >> 0) & 0x01), ((h_s_wallace_rca8_and_1_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_rca8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_rca8_fa20_xor1 = (fa(((h_s_wallace_rca8_fa19_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_3_4 >> 0) & 0x01), ((h_s_wallace_rca8_and_2_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa20_or0 = (fa(((h_s_wallace_rca8_fa19_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_3_4 >> 0) & 0x01), ((h_s_wallace_rca8_and_2_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_s_wallace_rca8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_s_wallace_rca8_fa21_xor1 = (fa(((h_s_wallace_rca8_fa20_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_4_4 >> 0) & 0x01), ((h_s_wallace_rca8_and_3_5 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa21_or0 = (fa(((h_s_wallace_rca8_fa20_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_4_4 >> 0) & 0x01), ((h_s_wallace_rca8_and_3_5 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_rca8_nand_2_7 = nand_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_rca8_fa22_xor1 = (fa(((h_s_wallace_rca8_fa21_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_3_6 >> 0) & 0x01), ((h_s_wallace_rca8_nand_2_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa22_or0 = (fa(((h_s_wallace_rca8_fa21_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_3_6 >> 0) & 0x01), ((h_s_wallace_rca8_nand_2_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_nand_3_7 = nand_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_rca8_fa23_xor1 = (fa(((h_s_wallace_rca8_fa22_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_3_7 >> 0) & 0x01), ((h_s_wallace_rca8_fa7_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa23_or0 = (fa(((h_s_wallace_rca8_fa22_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_3_7 >> 0) & 0x01), ((h_s_wallace_rca8_fa7_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_ha3_xor0 = (ha(((h_s_wallace_rca8_fa2_xor1 >> 0) & 0x01), ((h_s_wallace_rca8_fa11_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_ha3_and0 = (ha(((h_s_wallace_rca8_fa2_xor1 >> 0) & 0x01), ((h_s_wallace_rca8_fa11_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_rca8_fa24_xor1 = (fa(((h_s_wallace_rca8_ha3_and0 >> 0) & 0x01), ((h_s_wallace_rca8_and_0_6 >> 0) & 0x01), ((h_s_wallace_rca8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa24_or0 = (fa(((h_s_wallace_rca8_ha3_and0 >> 0) & 0x01), ((h_s_wallace_rca8_and_0_6 >> 0) & 0x01), ((h_s_wallace_rca8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_rca8_nand_0_7 = nand_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_rca8_fa25_xor1 = (fa(((h_s_wallace_rca8_fa24_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_1_6 >> 0) & 0x01), ((h_s_wallace_rca8_nand_0_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa25_or0 = (fa(((h_s_wallace_rca8_fa24_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_1_6 >> 0) & 0x01), ((h_s_wallace_rca8_nand_0_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_rca8_nand_1_7 = nand_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_rca8_fa26_xor1 = (fa(((h_s_wallace_rca8_fa25_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_2_6 >> 0) & 0x01), ((h_s_wallace_rca8_nand_1_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa26_or0 = (fa(((h_s_wallace_rca8_fa25_or0 >> 0) & 0x01), ((h_s_wallace_rca8_and_2_6 >> 0) & 0x01), ((h_s_wallace_rca8_nand_1_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_fa27_xor1 = (fa(((h_s_wallace_rca8_fa26_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa6_xor1 >> 0) & 0x01), ((h_s_wallace_rca8_fa15_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa27_or0 = (fa(((h_s_wallace_rca8_fa26_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa6_xor1 >> 0) & 0x01), ((h_s_wallace_rca8_fa15_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_ha4_xor0 = (ha(((h_s_wallace_rca8_fa12_xor1 >> 0) & 0x01), ((h_s_wallace_rca8_fa19_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_ha4_and0 = (ha(((h_s_wallace_rca8_fa12_xor1 >> 0) & 0x01), ((h_s_wallace_rca8_fa19_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_fa28_xor1 = (fa(((h_s_wallace_rca8_ha4_and0 >> 0) & 0x01), ((h_s_wallace_rca8_fa4_xor1 >> 0) & 0x01), ((h_s_wallace_rca8_fa13_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa28_or0 = (fa(((h_s_wallace_rca8_ha4_and0 >> 0) & 0x01), ((h_s_wallace_rca8_fa4_xor1 >> 0) & 0x01), ((h_s_wallace_rca8_fa13_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_fa29_xor1 = (fa(((h_s_wallace_rca8_fa28_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa5_xor1 >> 0) & 0x01), ((h_s_wallace_rca8_fa14_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa29_or0 = (fa(((h_s_wallace_rca8_fa28_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa5_xor1 >> 0) & 0x01), ((h_s_wallace_rca8_fa14_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_ha5_xor0 = (ha(((h_s_wallace_rca8_fa20_xor1 >> 0) & 0x01), ((h_s_wallace_rca8_fa25_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_ha5_and0 = (ha(((h_s_wallace_rca8_fa20_xor1 >> 0) & 0x01), ((h_s_wallace_rca8_fa25_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_fa30_xor1 = (fa(((h_s_wallace_rca8_ha5_and0 >> 0) & 0x01), ((h_s_wallace_rca8_fa21_xor1 >> 0) & 0x01), ((h_s_wallace_rca8_fa26_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa30_or0 = (fa(((h_s_wallace_rca8_ha5_and0 >> 0) & 0x01), ((h_s_wallace_rca8_fa21_xor1 >> 0) & 0x01), ((h_s_wallace_rca8_fa26_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_fa31_xor1 = (fa(((h_s_wallace_rca8_fa30_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa29_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa22_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa31_or0 = (fa(((h_s_wallace_rca8_fa30_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa29_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa22_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_fa32_xor1 = (fa(((h_s_wallace_rca8_fa31_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa27_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa16_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa32_or0 = (fa(((h_s_wallace_rca8_fa31_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa27_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa16_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_fa33_xor1 = (fa(((h_s_wallace_rca8_fa32_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa23_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa8_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa33_or0 = (fa(((h_s_wallace_rca8_fa32_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa23_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa8_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_nand_5_7 = nand_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_rca8_fa34_xor1 = (fa(((h_s_wallace_rca8_fa33_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa17_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa34_or0 = (fa(((h_s_wallace_rca8_fa33_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa17_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_nand_7_6 = nand_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_s_wallace_rca8_fa35_xor1 = (fa(((h_s_wallace_rca8_fa34_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa9_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_s_wallace_rca8_fa35_or0 = (fa(((h_s_wallace_rca8_fa34_or0 >> 0) & 0x01), ((h_s_wallace_rca8_fa9_or0 >> 0) & 0x01), ((h_s_wallace_rca8_nand_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_s_wallace_rca8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_rca8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_s_wallace_rca8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_s_wallace_rca8_nand_6_7 = nand_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_rca8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_s_wallace_rca8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_s_wallace_rca8_u_rca14_a |= ((h_s_wallace_rca8_and_1_0 >> 0) & 0x01) << 0; - h_s_wallace_rca8_u_rca14_a |= ((h_s_wallace_rca8_and_0_2 >> 0) & 0x01) << 1; - h_s_wallace_rca8_u_rca14_a |= ((h_s_wallace_rca8_fa0_xor1 >> 0) & 0x01) << 2; - h_s_wallace_rca8_u_rca14_a |= ((h_s_wallace_rca8_fa10_xor1 >> 0) & 0x01) << 3; - h_s_wallace_rca8_u_rca14_a |= ((h_s_wallace_rca8_fa18_xor1 >> 0) & 0x01) << 4; - h_s_wallace_rca8_u_rca14_a |= ((h_s_wallace_rca8_fa24_xor1 >> 0) & 0x01) << 5; - h_s_wallace_rca8_u_rca14_a |= ((h_s_wallace_rca8_fa28_xor1 >> 0) & 0x01) << 6; - h_s_wallace_rca8_u_rca14_a |= ((h_s_wallace_rca8_fa29_xor1 >> 0) & 0x01) << 7; - h_s_wallace_rca8_u_rca14_a |= ((h_s_wallace_rca8_fa27_xor1 >> 0) & 0x01) << 8; - h_s_wallace_rca8_u_rca14_a |= ((h_s_wallace_rca8_fa23_xor1 >> 0) & 0x01) << 9; - h_s_wallace_rca8_u_rca14_a |= ((h_s_wallace_rca8_fa17_xor1 >> 0) & 0x01) << 10; - h_s_wallace_rca8_u_rca14_a |= ((h_s_wallace_rca8_fa9_xor1 >> 0) & 0x01) << 11; - h_s_wallace_rca8_u_rca14_a |= ((h_s_wallace_rca8_nand_6_7 >> 0) & 0x01) << 12; - h_s_wallace_rca8_u_rca14_a |= ((h_s_wallace_rca8_fa35_or0 >> 0) & 0x01) << 13; - h_s_wallace_rca8_u_rca14_b |= ((h_s_wallace_rca8_and_0_1 >> 0) & 0x01) << 0; - h_s_wallace_rca8_u_rca14_b |= ((h_s_wallace_rca8_ha0_xor0 >> 0) & 0x01) << 1; - h_s_wallace_rca8_u_rca14_b |= ((h_s_wallace_rca8_ha1_xor0 >> 0) & 0x01) << 2; - h_s_wallace_rca8_u_rca14_b |= ((h_s_wallace_rca8_ha2_xor0 >> 0) & 0x01) << 3; - h_s_wallace_rca8_u_rca14_b |= ((h_s_wallace_rca8_ha3_xor0 >> 0) & 0x01) << 4; - h_s_wallace_rca8_u_rca14_b |= ((h_s_wallace_rca8_ha4_xor0 >> 0) & 0x01) << 5; - h_s_wallace_rca8_u_rca14_b |= ((h_s_wallace_rca8_ha5_xor0 >> 0) & 0x01) << 6; - h_s_wallace_rca8_u_rca14_b |= ((h_s_wallace_rca8_fa30_xor1 >> 0) & 0x01) << 7; - h_s_wallace_rca8_u_rca14_b |= ((h_s_wallace_rca8_fa31_xor1 >> 0) & 0x01) << 8; - h_s_wallace_rca8_u_rca14_b |= ((h_s_wallace_rca8_fa32_xor1 >> 0) & 0x01) << 9; - h_s_wallace_rca8_u_rca14_b |= ((h_s_wallace_rca8_fa33_xor1 >> 0) & 0x01) << 10; - h_s_wallace_rca8_u_rca14_b |= ((h_s_wallace_rca8_fa34_xor1 >> 0) & 0x01) << 11; - h_s_wallace_rca8_u_rca14_b |= ((h_s_wallace_rca8_fa35_xor1 >> 0) & 0x01) << 12; - h_s_wallace_rca8_u_rca14_b |= ((h_s_wallace_rca8_and_7_7 >> 0) & 0x01) << 13; - h_s_wallace_rca8_u_rca14_out = u_rca14(h_s_wallace_rca8_u_rca14_a, h_s_wallace_rca8_u_rca14_b); - h_s_wallace_rca8_xor0 = not_gate(((h_s_wallace_rca8_u_rca14_out >> 14) & 0x01)); - - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_and_0_0 >> 0) & 0x01) << 0; - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_u_rca14_out >> 0) & 0x01) << 1; - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_u_rca14_out >> 1) & 0x01) << 2; - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_u_rca14_out >> 2) & 0x01) << 3; - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_u_rca14_out >> 3) & 0x01) << 4; - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_u_rca14_out >> 4) & 0x01) << 5; - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_u_rca14_out >> 5) & 0x01) << 6; - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_u_rca14_out >> 6) & 0x01) << 7; - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_u_rca14_out >> 7) & 0x01) << 8; - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_u_rca14_out >> 8) & 0x01) << 9; - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_u_rca14_out >> 9) & 0x01) << 10; - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_u_rca14_out >> 10) & 0x01) << 11; - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_u_rca14_out >> 11) & 0x01) << 12; - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_u_rca14_out >> 12) & 0x01) << 13; - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_u_rca14_out >> 13) & 0x01) << 14; - h_s_wallace_rca8_out |= ((h_s_wallace_rca8_xor0 >> 0) & 0x01) << 15; - return h_s_wallace_rca8_out; -} - -#include -int main(){ - int result = 0; - for (int i = -128; i < 128; i++){ - for (int j = -128; j < 128; j++){ - result = i * j; - - // Calculating 2's complement in case of negative sum - if (result < 0) { - result = 65536 + result; - } - - assert(result == (int)h_s_wallace_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_arrmul4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_arrmul4.c deleted file mode 100644 index 156dd4a..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_arrmul4.c +++ /dev/null @@ -1,151 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint64_t h_u_arrmul4(uint64_t a, uint64_t b){ - uint8_t h_u_arrmul4_out = 0; - uint8_t h_u_arrmul4_and0_0 = 0; - uint8_t h_u_arrmul4_and1_0 = 0; - uint8_t h_u_arrmul4_and2_0 = 0; - uint8_t h_u_arrmul4_and3_0 = 0; - uint8_t h_u_arrmul4_and0_1 = 0; - uint8_t h_u_arrmul4_ha0_1_xor0 = 0; - uint8_t h_u_arrmul4_ha0_1_and0 = 0; - uint8_t h_u_arrmul4_and1_1 = 0; - uint8_t h_u_arrmul4_fa1_1_xor1 = 0; - uint8_t h_u_arrmul4_fa1_1_or0 = 0; - uint8_t h_u_arrmul4_and2_1 = 0; - uint8_t h_u_arrmul4_fa2_1_xor1 = 0; - uint8_t h_u_arrmul4_fa2_1_or0 = 0; - uint8_t h_u_arrmul4_and3_1 = 0; - uint8_t h_u_arrmul4_ha3_1_xor0 = 0; - uint8_t h_u_arrmul4_ha3_1_and0 = 0; - uint8_t h_u_arrmul4_and0_2 = 0; - uint8_t h_u_arrmul4_ha0_2_xor0 = 0; - uint8_t h_u_arrmul4_ha0_2_and0 = 0; - uint8_t h_u_arrmul4_and1_2 = 0; - uint8_t h_u_arrmul4_fa1_2_xor1 = 0; - uint8_t h_u_arrmul4_fa1_2_or0 = 0; - uint8_t h_u_arrmul4_and2_2 = 0; - uint8_t h_u_arrmul4_fa2_2_xor1 = 0; - uint8_t h_u_arrmul4_fa2_2_or0 = 0; - uint8_t h_u_arrmul4_and3_2 = 0; - uint8_t h_u_arrmul4_fa3_2_xor1 = 0; - uint8_t h_u_arrmul4_fa3_2_or0 = 0; - uint8_t h_u_arrmul4_and0_3 = 0; - uint8_t h_u_arrmul4_ha0_3_xor0 = 0; - uint8_t h_u_arrmul4_ha0_3_and0 = 0; - uint8_t h_u_arrmul4_and1_3 = 0; - uint8_t h_u_arrmul4_fa1_3_xor1 = 0; - uint8_t h_u_arrmul4_fa1_3_or0 = 0; - uint8_t h_u_arrmul4_and2_3 = 0; - uint8_t h_u_arrmul4_fa2_3_xor1 = 0; - uint8_t h_u_arrmul4_fa2_3_or0 = 0; - uint8_t h_u_arrmul4_and3_3 = 0; - uint8_t h_u_arrmul4_fa3_3_xor1 = 0; - uint8_t h_u_arrmul4_fa3_3_or0 = 0; - - h_u_arrmul4_and0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_arrmul4_and1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_arrmul4_and2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_arrmul4_and3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_arrmul4_and0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_arrmul4_ha0_1_xor0 = (ha(((h_u_arrmul4_and0_1 >> 0) & 0x01), ((h_u_arrmul4_and1_0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul4_ha0_1_and0 = (ha(((h_u_arrmul4_and0_1 >> 0) & 0x01), ((h_u_arrmul4_and1_0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul4_and1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_arrmul4_fa1_1_xor1 = (fa(((h_u_arrmul4_and1_1 >> 0) & 0x01), ((h_u_arrmul4_and2_0 >> 0) & 0x01), ((h_u_arrmul4_ha0_1_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul4_fa1_1_or0 = (fa(((h_u_arrmul4_and1_1 >> 0) & 0x01), ((h_u_arrmul4_and2_0 >> 0) & 0x01), ((h_u_arrmul4_ha0_1_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul4_and2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_arrmul4_fa2_1_xor1 = (fa(((h_u_arrmul4_and2_1 >> 0) & 0x01), ((h_u_arrmul4_and3_0 >> 0) & 0x01), ((h_u_arrmul4_fa1_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul4_fa2_1_or0 = (fa(((h_u_arrmul4_and2_1 >> 0) & 0x01), ((h_u_arrmul4_and3_0 >> 0) & 0x01), ((h_u_arrmul4_fa1_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul4_and3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_arrmul4_ha3_1_xor0 = (ha(((h_u_arrmul4_and3_1 >> 0) & 0x01), ((h_u_arrmul4_fa2_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul4_ha3_1_and0 = (ha(((h_u_arrmul4_and3_1 >> 0) & 0x01), ((h_u_arrmul4_fa2_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul4_and0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_arrmul4_ha0_2_xor0 = (ha(((h_u_arrmul4_and0_2 >> 0) & 0x01), ((h_u_arrmul4_fa1_1_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul4_ha0_2_and0 = (ha(((h_u_arrmul4_and0_2 >> 0) & 0x01), ((h_u_arrmul4_fa1_1_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul4_and1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_arrmul4_fa1_2_xor1 = (fa(((h_u_arrmul4_and1_2 >> 0) & 0x01), ((h_u_arrmul4_fa2_1_xor1 >> 0) & 0x01), ((h_u_arrmul4_ha0_2_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul4_fa1_2_or0 = (fa(((h_u_arrmul4_and1_2 >> 0) & 0x01), ((h_u_arrmul4_fa2_1_xor1 >> 0) & 0x01), ((h_u_arrmul4_ha0_2_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul4_and2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_arrmul4_fa2_2_xor1 = (fa(((h_u_arrmul4_and2_2 >> 0) & 0x01), ((h_u_arrmul4_ha3_1_xor0 >> 0) & 0x01), ((h_u_arrmul4_fa1_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul4_fa2_2_or0 = (fa(((h_u_arrmul4_and2_2 >> 0) & 0x01), ((h_u_arrmul4_ha3_1_xor0 >> 0) & 0x01), ((h_u_arrmul4_fa1_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul4_and3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_arrmul4_fa3_2_xor1 = (fa(((h_u_arrmul4_and3_2 >> 0) & 0x01), ((h_u_arrmul4_ha3_1_and0 >> 0) & 0x01), ((h_u_arrmul4_fa2_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul4_fa3_2_or0 = (fa(((h_u_arrmul4_and3_2 >> 0) & 0x01), ((h_u_arrmul4_ha3_1_and0 >> 0) & 0x01), ((h_u_arrmul4_fa2_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul4_and0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_arrmul4_ha0_3_xor0 = (ha(((h_u_arrmul4_and0_3 >> 0) & 0x01), ((h_u_arrmul4_fa1_2_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul4_ha0_3_and0 = (ha(((h_u_arrmul4_and0_3 >> 0) & 0x01), ((h_u_arrmul4_fa1_2_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul4_and1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_arrmul4_fa1_3_xor1 = (fa(((h_u_arrmul4_and1_3 >> 0) & 0x01), ((h_u_arrmul4_fa2_2_xor1 >> 0) & 0x01), ((h_u_arrmul4_ha0_3_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul4_fa1_3_or0 = (fa(((h_u_arrmul4_and1_3 >> 0) & 0x01), ((h_u_arrmul4_fa2_2_xor1 >> 0) & 0x01), ((h_u_arrmul4_ha0_3_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul4_and2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_arrmul4_fa2_3_xor1 = (fa(((h_u_arrmul4_and2_3 >> 0) & 0x01), ((h_u_arrmul4_fa3_2_xor1 >> 0) & 0x01), ((h_u_arrmul4_fa1_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul4_fa2_3_or0 = (fa(((h_u_arrmul4_and2_3 >> 0) & 0x01), ((h_u_arrmul4_fa3_2_xor1 >> 0) & 0x01), ((h_u_arrmul4_fa1_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul4_and3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_arrmul4_fa3_3_xor1 = (fa(((h_u_arrmul4_and3_3 >> 0) & 0x01), ((h_u_arrmul4_fa3_2_or0 >> 0) & 0x01), ((h_u_arrmul4_fa2_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul4_fa3_3_or0 = (fa(((h_u_arrmul4_and3_3 >> 0) & 0x01), ((h_u_arrmul4_fa3_2_or0 >> 0) & 0x01), ((h_u_arrmul4_fa2_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - - h_u_arrmul4_out |= ((h_u_arrmul4_and0_0 >> 0) & 0x01) << 0; - h_u_arrmul4_out |= ((h_u_arrmul4_ha0_1_xor0 >> 0) & 0x01) << 1; - h_u_arrmul4_out |= ((h_u_arrmul4_ha0_2_xor0 >> 0) & 0x01) << 2; - h_u_arrmul4_out |= ((h_u_arrmul4_ha0_3_xor0 >> 0) & 0x01) << 3; - h_u_arrmul4_out |= ((h_u_arrmul4_fa1_3_xor1 >> 0) & 0x01) << 4; - h_u_arrmul4_out |= ((h_u_arrmul4_fa2_3_xor1 >> 0) & 0x01) << 5; - h_u_arrmul4_out |= ((h_u_arrmul4_fa3_3_xor1 >> 0) & 0x01) << 6; - h_u_arrmul4_out |= ((h_u_arrmul4_fa3_3_or0 >> 0) & 0x01) << 7; - return h_u_arrmul4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == h_u_arrmul4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_arrmul8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_arrmul8.c deleted file mode 100644 index 7f4ef58..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_arrmul8.c +++ /dev/null @@ -1,431 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint64_t h_u_arrmul8(uint64_t a, uint64_t b){ - uint64_t h_u_arrmul8_out = 0; - uint8_t h_u_arrmul8_and0_0 = 0; - uint8_t h_u_arrmul8_and1_0 = 0; - uint8_t h_u_arrmul8_and2_0 = 0; - uint8_t h_u_arrmul8_and3_0 = 0; - uint8_t h_u_arrmul8_and4_0 = 0; - uint8_t h_u_arrmul8_and5_0 = 0; - uint8_t h_u_arrmul8_and6_0 = 0; - uint8_t h_u_arrmul8_and7_0 = 0; - uint8_t h_u_arrmul8_and0_1 = 0; - uint8_t h_u_arrmul8_ha0_1_xor0 = 0; - uint8_t h_u_arrmul8_ha0_1_and0 = 0; - uint8_t h_u_arrmul8_and1_1 = 0; - uint8_t h_u_arrmul8_fa1_1_xor1 = 0; - uint8_t h_u_arrmul8_fa1_1_or0 = 0; - uint8_t h_u_arrmul8_and2_1 = 0; - uint8_t h_u_arrmul8_fa2_1_xor1 = 0; - uint8_t h_u_arrmul8_fa2_1_or0 = 0; - uint8_t h_u_arrmul8_and3_1 = 0; - uint8_t h_u_arrmul8_fa3_1_xor1 = 0; - uint8_t h_u_arrmul8_fa3_1_or0 = 0; - uint8_t h_u_arrmul8_and4_1 = 0; - uint8_t h_u_arrmul8_fa4_1_xor1 = 0; - uint8_t h_u_arrmul8_fa4_1_or0 = 0; - uint8_t h_u_arrmul8_and5_1 = 0; - uint8_t h_u_arrmul8_fa5_1_xor1 = 0; - uint8_t h_u_arrmul8_fa5_1_or0 = 0; - uint8_t h_u_arrmul8_and6_1 = 0; - uint8_t h_u_arrmul8_fa6_1_xor1 = 0; - uint8_t h_u_arrmul8_fa6_1_or0 = 0; - uint8_t h_u_arrmul8_and7_1 = 0; - uint8_t h_u_arrmul8_ha7_1_xor0 = 0; - uint8_t h_u_arrmul8_ha7_1_and0 = 0; - uint8_t h_u_arrmul8_and0_2 = 0; - uint8_t h_u_arrmul8_ha0_2_xor0 = 0; - uint8_t h_u_arrmul8_ha0_2_and0 = 0; - uint8_t h_u_arrmul8_and1_2 = 0; - uint8_t h_u_arrmul8_fa1_2_xor1 = 0; - uint8_t h_u_arrmul8_fa1_2_or0 = 0; - uint8_t h_u_arrmul8_and2_2 = 0; - uint8_t h_u_arrmul8_fa2_2_xor1 = 0; - uint8_t h_u_arrmul8_fa2_2_or0 = 0; - uint8_t h_u_arrmul8_and3_2 = 0; - uint8_t h_u_arrmul8_fa3_2_xor1 = 0; - uint8_t h_u_arrmul8_fa3_2_or0 = 0; - uint8_t h_u_arrmul8_and4_2 = 0; - uint8_t h_u_arrmul8_fa4_2_xor1 = 0; - uint8_t h_u_arrmul8_fa4_2_or0 = 0; - uint8_t h_u_arrmul8_and5_2 = 0; - uint8_t h_u_arrmul8_fa5_2_xor1 = 0; - uint8_t h_u_arrmul8_fa5_2_or0 = 0; - uint8_t h_u_arrmul8_and6_2 = 0; - uint8_t h_u_arrmul8_fa6_2_xor1 = 0; - uint8_t h_u_arrmul8_fa6_2_or0 = 0; - uint8_t h_u_arrmul8_and7_2 = 0; - uint8_t h_u_arrmul8_fa7_2_xor1 = 0; - uint8_t h_u_arrmul8_fa7_2_or0 = 0; - uint8_t h_u_arrmul8_and0_3 = 0; - uint8_t h_u_arrmul8_ha0_3_xor0 = 0; - uint8_t h_u_arrmul8_ha0_3_and0 = 0; - uint8_t h_u_arrmul8_and1_3 = 0; - uint8_t h_u_arrmul8_fa1_3_xor1 = 0; - uint8_t h_u_arrmul8_fa1_3_or0 = 0; - uint8_t h_u_arrmul8_and2_3 = 0; - uint8_t h_u_arrmul8_fa2_3_xor1 = 0; - uint8_t h_u_arrmul8_fa2_3_or0 = 0; - uint8_t h_u_arrmul8_and3_3 = 0; - uint8_t h_u_arrmul8_fa3_3_xor1 = 0; - uint8_t h_u_arrmul8_fa3_3_or0 = 0; - uint8_t h_u_arrmul8_and4_3 = 0; - uint8_t h_u_arrmul8_fa4_3_xor1 = 0; - uint8_t h_u_arrmul8_fa4_3_or0 = 0; - uint8_t h_u_arrmul8_and5_3 = 0; - uint8_t h_u_arrmul8_fa5_3_xor1 = 0; - uint8_t h_u_arrmul8_fa5_3_or0 = 0; - uint8_t h_u_arrmul8_and6_3 = 0; - uint8_t h_u_arrmul8_fa6_3_xor1 = 0; - uint8_t h_u_arrmul8_fa6_3_or0 = 0; - uint8_t h_u_arrmul8_and7_3 = 0; - uint8_t h_u_arrmul8_fa7_3_xor1 = 0; - uint8_t h_u_arrmul8_fa7_3_or0 = 0; - uint8_t h_u_arrmul8_and0_4 = 0; - uint8_t h_u_arrmul8_ha0_4_xor0 = 0; - uint8_t h_u_arrmul8_ha0_4_and0 = 0; - uint8_t h_u_arrmul8_and1_4 = 0; - uint8_t h_u_arrmul8_fa1_4_xor1 = 0; - uint8_t h_u_arrmul8_fa1_4_or0 = 0; - uint8_t h_u_arrmul8_and2_4 = 0; - uint8_t h_u_arrmul8_fa2_4_xor1 = 0; - uint8_t h_u_arrmul8_fa2_4_or0 = 0; - uint8_t h_u_arrmul8_and3_4 = 0; - uint8_t h_u_arrmul8_fa3_4_xor1 = 0; - uint8_t h_u_arrmul8_fa3_4_or0 = 0; - uint8_t h_u_arrmul8_and4_4 = 0; - uint8_t h_u_arrmul8_fa4_4_xor1 = 0; - uint8_t h_u_arrmul8_fa4_4_or0 = 0; - uint8_t h_u_arrmul8_and5_4 = 0; - uint8_t h_u_arrmul8_fa5_4_xor1 = 0; - uint8_t h_u_arrmul8_fa5_4_or0 = 0; - uint8_t h_u_arrmul8_and6_4 = 0; - uint8_t h_u_arrmul8_fa6_4_xor1 = 0; - uint8_t h_u_arrmul8_fa6_4_or0 = 0; - uint8_t h_u_arrmul8_and7_4 = 0; - uint8_t h_u_arrmul8_fa7_4_xor1 = 0; - uint8_t h_u_arrmul8_fa7_4_or0 = 0; - uint8_t h_u_arrmul8_and0_5 = 0; - uint8_t h_u_arrmul8_ha0_5_xor0 = 0; - uint8_t h_u_arrmul8_ha0_5_and0 = 0; - uint8_t h_u_arrmul8_and1_5 = 0; - uint8_t h_u_arrmul8_fa1_5_xor1 = 0; - uint8_t h_u_arrmul8_fa1_5_or0 = 0; - uint8_t h_u_arrmul8_and2_5 = 0; - uint8_t h_u_arrmul8_fa2_5_xor1 = 0; - uint8_t h_u_arrmul8_fa2_5_or0 = 0; - uint8_t h_u_arrmul8_and3_5 = 0; - uint8_t h_u_arrmul8_fa3_5_xor1 = 0; - uint8_t h_u_arrmul8_fa3_5_or0 = 0; - uint8_t h_u_arrmul8_and4_5 = 0; - uint8_t h_u_arrmul8_fa4_5_xor1 = 0; - uint8_t h_u_arrmul8_fa4_5_or0 = 0; - uint8_t h_u_arrmul8_and5_5 = 0; - uint8_t h_u_arrmul8_fa5_5_xor1 = 0; - uint8_t h_u_arrmul8_fa5_5_or0 = 0; - uint8_t h_u_arrmul8_and6_5 = 0; - uint8_t h_u_arrmul8_fa6_5_xor1 = 0; - uint8_t h_u_arrmul8_fa6_5_or0 = 0; - uint8_t h_u_arrmul8_and7_5 = 0; - uint8_t h_u_arrmul8_fa7_5_xor1 = 0; - uint8_t h_u_arrmul8_fa7_5_or0 = 0; - uint8_t h_u_arrmul8_and0_6 = 0; - uint8_t h_u_arrmul8_ha0_6_xor0 = 0; - uint8_t h_u_arrmul8_ha0_6_and0 = 0; - uint8_t h_u_arrmul8_and1_6 = 0; - uint8_t h_u_arrmul8_fa1_6_xor1 = 0; - uint8_t h_u_arrmul8_fa1_6_or0 = 0; - uint8_t h_u_arrmul8_and2_6 = 0; - uint8_t h_u_arrmul8_fa2_6_xor1 = 0; - uint8_t h_u_arrmul8_fa2_6_or0 = 0; - uint8_t h_u_arrmul8_and3_6 = 0; - uint8_t h_u_arrmul8_fa3_6_xor1 = 0; - uint8_t h_u_arrmul8_fa3_6_or0 = 0; - uint8_t h_u_arrmul8_and4_6 = 0; - uint8_t h_u_arrmul8_fa4_6_xor1 = 0; - uint8_t h_u_arrmul8_fa4_6_or0 = 0; - uint8_t h_u_arrmul8_and5_6 = 0; - uint8_t h_u_arrmul8_fa5_6_xor1 = 0; - uint8_t h_u_arrmul8_fa5_6_or0 = 0; - uint8_t h_u_arrmul8_and6_6 = 0; - uint8_t h_u_arrmul8_fa6_6_xor1 = 0; - uint8_t h_u_arrmul8_fa6_6_or0 = 0; - uint8_t h_u_arrmul8_and7_6 = 0; - uint8_t h_u_arrmul8_fa7_6_xor1 = 0; - uint8_t h_u_arrmul8_fa7_6_or0 = 0; - uint8_t h_u_arrmul8_and0_7 = 0; - uint8_t h_u_arrmul8_ha0_7_xor0 = 0; - uint8_t h_u_arrmul8_ha0_7_and0 = 0; - uint8_t h_u_arrmul8_and1_7 = 0; - uint8_t h_u_arrmul8_fa1_7_xor1 = 0; - uint8_t h_u_arrmul8_fa1_7_or0 = 0; - uint8_t h_u_arrmul8_and2_7 = 0; - uint8_t h_u_arrmul8_fa2_7_xor1 = 0; - uint8_t h_u_arrmul8_fa2_7_or0 = 0; - uint8_t h_u_arrmul8_and3_7 = 0; - uint8_t h_u_arrmul8_fa3_7_xor1 = 0; - uint8_t h_u_arrmul8_fa3_7_or0 = 0; - uint8_t h_u_arrmul8_and4_7 = 0; - uint8_t h_u_arrmul8_fa4_7_xor1 = 0; - uint8_t h_u_arrmul8_fa4_7_or0 = 0; - uint8_t h_u_arrmul8_and5_7 = 0; - uint8_t h_u_arrmul8_fa5_7_xor1 = 0; - uint8_t h_u_arrmul8_fa5_7_or0 = 0; - uint8_t h_u_arrmul8_and6_7 = 0; - uint8_t h_u_arrmul8_fa6_7_xor1 = 0; - uint8_t h_u_arrmul8_fa6_7_or0 = 0; - uint8_t h_u_arrmul8_and7_7 = 0; - uint8_t h_u_arrmul8_fa7_7_xor1 = 0; - uint8_t h_u_arrmul8_fa7_7_or0 = 0; - - h_u_arrmul8_and0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_arrmul8_and1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_arrmul8_and2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_arrmul8_and3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_arrmul8_and4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_u_arrmul8_and5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_u_arrmul8_and6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_u_arrmul8_and7_0 = and_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_u_arrmul8_and0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_arrmul8_ha0_1_xor0 = (ha(((h_u_arrmul8_and0_1 >> 0) & 0x01), ((h_u_arrmul8_and1_0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_ha0_1_and0 = (ha(((h_u_arrmul8_and0_1 >> 0) & 0x01), ((h_u_arrmul8_and1_0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_arrmul8_fa1_1_xor1 = (fa(((h_u_arrmul8_and1_1 >> 0) & 0x01), ((h_u_arrmul8_and2_0 >> 0) & 0x01), ((h_u_arrmul8_ha0_1_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa1_1_or0 = (fa(((h_u_arrmul8_and1_1 >> 0) & 0x01), ((h_u_arrmul8_and2_0 >> 0) & 0x01), ((h_u_arrmul8_ha0_1_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_arrmul8_fa2_1_xor1 = (fa(((h_u_arrmul8_and2_1 >> 0) & 0x01), ((h_u_arrmul8_and3_0 >> 0) & 0x01), ((h_u_arrmul8_fa1_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa2_1_or0 = (fa(((h_u_arrmul8_and2_1 >> 0) & 0x01), ((h_u_arrmul8_and3_0 >> 0) & 0x01), ((h_u_arrmul8_fa1_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_arrmul8_fa3_1_xor1 = (fa(((h_u_arrmul8_and3_1 >> 0) & 0x01), ((h_u_arrmul8_and4_0 >> 0) & 0x01), ((h_u_arrmul8_fa2_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa3_1_or0 = (fa(((h_u_arrmul8_and3_1 >> 0) & 0x01), ((h_u_arrmul8_and4_0 >> 0) & 0x01), ((h_u_arrmul8_fa2_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_u_arrmul8_fa4_1_xor1 = (fa(((h_u_arrmul8_and4_1 >> 0) & 0x01), ((h_u_arrmul8_and5_0 >> 0) & 0x01), ((h_u_arrmul8_fa3_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa4_1_or0 = (fa(((h_u_arrmul8_and4_1 >> 0) & 0x01), ((h_u_arrmul8_and5_0 >> 0) & 0x01), ((h_u_arrmul8_fa3_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_u_arrmul8_fa5_1_xor1 = (fa(((h_u_arrmul8_and5_1 >> 0) & 0x01), ((h_u_arrmul8_and6_0 >> 0) & 0x01), ((h_u_arrmul8_fa4_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa5_1_or0 = (fa(((h_u_arrmul8_and5_1 >> 0) & 0x01), ((h_u_arrmul8_and6_0 >> 0) & 0x01), ((h_u_arrmul8_fa4_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_u_arrmul8_fa6_1_xor1 = (fa(((h_u_arrmul8_and6_1 >> 0) & 0x01), ((h_u_arrmul8_and7_0 >> 0) & 0x01), ((h_u_arrmul8_fa5_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa6_1_or0 = (fa(((h_u_arrmul8_and6_1 >> 0) & 0x01), ((h_u_arrmul8_and7_0 >> 0) & 0x01), ((h_u_arrmul8_fa5_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and7_1 = and_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_u_arrmul8_ha7_1_xor0 = (ha(((h_u_arrmul8_and7_1 >> 0) & 0x01), ((h_u_arrmul8_fa6_1_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_ha7_1_and0 = (ha(((h_u_arrmul8_and7_1 >> 0) & 0x01), ((h_u_arrmul8_fa6_1_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_arrmul8_ha0_2_xor0 = (ha(((h_u_arrmul8_and0_2 >> 0) & 0x01), ((h_u_arrmul8_fa1_1_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_ha0_2_and0 = (ha(((h_u_arrmul8_and0_2 >> 0) & 0x01), ((h_u_arrmul8_fa1_1_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_arrmul8_fa1_2_xor1 = (fa(((h_u_arrmul8_and1_2 >> 0) & 0x01), ((h_u_arrmul8_fa2_1_xor1 >> 0) & 0x01), ((h_u_arrmul8_ha0_2_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa1_2_or0 = (fa(((h_u_arrmul8_and1_2 >> 0) & 0x01), ((h_u_arrmul8_fa2_1_xor1 >> 0) & 0x01), ((h_u_arrmul8_ha0_2_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_arrmul8_fa2_2_xor1 = (fa(((h_u_arrmul8_and2_2 >> 0) & 0x01), ((h_u_arrmul8_fa3_1_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa1_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa2_2_or0 = (fa(((h_u_arrmul8_and2_2 >> 0) & 0x01), ((h_u_arrmul8_fa3_1_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa1_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_arrmul8_fa3_2_xor1 = (fa(((h_u_arrmul8_and3_2 >> 0) & 0x01), ((h_u_arrmul8_fa4_1_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa2_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa3_2_or0 = (fa(((h_u_arrmul8_and3_2 >> 0) & 0x01), ((h_u_arrmul8_fa4_1_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa2_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_u_arrmul8_fa4_2_xor1 = (fa(((h_u_arrmul8_and4_2 >> 0) & 0x01), ((h_u_arrmul8_fa5_1_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa3_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa4_2_or0 = (fa(((h_u_arrmul8_and4_2 >> 0) & 0x01), ((h_u_arrmul8_fa5_1_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa3_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_u_arrmul8_fa5_2_xor1 = (fa(((h_u_arrmul8_and5_2 >> 0) & 0x01), ((h_u_arrmul8_fa6_1_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa4_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa5_2_or0 = (fa(((h_u_arrmul8_and5_2 >> 0) & 0x01), ((h_u_arrmul8_fa6_1_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa4_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_u_arrmul8_fa6_2_xor1 = (fa(((h_u_arrmul8_and6_2 >> 0) & 0x01), ((h_u_arrmul8_ha7_1_xor0 >> 0) & 0x01), ((h_u_arrmul8_fa5_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa6_2_or0 = (fa(((h_u_arrmul8_and6_2 >> 0) & 0x01), ((h_u_arrmul8_ha7_1_xor0 >> 0) & 0x01), ((h_u_arrmul8_fa5_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and7_2 = and_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_u_arrmul8_fa7_2_xor1 = (fa(((h_u_arrmul8_and7_2 >> 0) & 0x01), ((h_u_arrmul8_ha7_1_and0 >> 0) & 0x01), ((h_u_arrmul8_fa6_2_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa7_2_or0 = (fa(((h_u_arrmul8_and7_2 >> 0) & 0x01), ((h_u_arrmul8_ha7_1_and0 >> 0) & 0x01), ((h_u_arrmul8_fa6_2_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_arrmul8_ha0_3_xor0 = (ha(((h_u_arrmul8_and0_3 >> 0) & 0x01), ((h_u_arrmul8_fa1_2_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_ha0_3_and0 = (ha(((h_u_arrmul8_and0_3 >> 0) & 0x01), ((h_u_arrmul8_fa1_2_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_arrmul8_fa1_3_xor1 = (fa(((h_u_arrmul8_and1_3 >> 0) & 0x01), ((h_u_arrmul8_fa2_2_xor1 >> 0) & 0x01), ((h_u_arrmul8_ha0_3_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa1_3_or0 = (fa(((h_u_arrmul8_and1_3 >> 0) & 0x01), ((h_u_arrmul8_fa2_2_xor1 >> 0) & 0x01), ((h_u_arrmul8_ha0_3_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_arrmul8_fa2_3_xor1 = (fa(((h_u_arrmul8_and2_3 >> 0) & 0x01), ((h_u_arrmul8_fa3_2_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa1_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa2_3_or0 = (fa(((h_u_arrmul8_and2_3 >> 0) & 0x01), ((h_u_arrmul8_fa3_2_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa1_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_arrmul8_fa3_3_xor1 = (fa(((h_u_arrmul8_and3_3 >> 0) & 0x01), ((h_u_arrmul8_fa4_2_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa2_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa3_3_or0 = (fa(((h_u_arrmul8_and3_3 >> 0) & 0x01), ((h_u_arrmul8_fa4_2_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa2_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_u_arrmul8_fa4_3_xor1 = (fa(((h_u_arrmul8_and4_3 >> 0) & 0x01), ((h_u_arrmul8_fa5_2_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa3_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa4_3_or0 = (fa(((h_u_arrmul8_and4_3 >> 0) & 0x01), ((h_u_arrmul8_fa5_2_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa3_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_u_arrmul8_fa5_3_xor1 = (fa(((h_u_arrmul8_and5_3 >> 0) & 0x01), ((h_u_arrmul8_fa6_2_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa4_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa5_3_or0 = (fa(((h_u_arrmul8_and5_3 >> 0) & 0x01), ((h_u_arrmul8_fa6_2_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa4_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_u_arrmul8_fa6_3_xor1 = (fa(((h_u_arrmul8_and6_3 >> 0) & 0x01), ((h_u_arrmul8_fa7_2_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa5_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa6_3_or0 = (fa(((h_u_arrmul8_and6_3 >> 0) & 0x01), ((h_u_arrmul8_fa7_2_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa5_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and7_3 = and_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_u_arrmul8_fa7_3_xor1 = (fa(((h_u_arrmul8_and7_3 >> 0) & 0x01), ((h_u_arrmul8_fa7_2_or0 >> 0) & 0x01), ((h_u_arrmul8_fa6_3_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa7_3_or0 = (fa(((h_u_arrmul8_and7_3 >> 0) & 0x01), ((h_u_arrmul8_fa7_2_or0 >> 0) & 0x01), ((h_u_arrmul8_fa6_3_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_u_arrmul8_ha0_4_xor0 = (ha(((h_u_arrmul8_and0_4 >> 0) & 0x01), ((h_u_arrmul8_fa1_3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_ha0_4_and0 = (ha(((h_u_arrmul8_and0_4 >> 0) & 0x01), ((h_u_arrmul8_fa1_3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_u_arrmul8_fa1_4_xor1 = (fa(((h_u_arrmul8_and1_4 >> 0) & 0x01), ((h_u_arrmul8_fa2_3_xor1 >> 0) & 0x01), ((h_u_arrmul8_ha0_4_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa1_4_or0 = (fa(((h_u_arrmul8_and1_4 >> 0) & 0x01), ((h_u_arrmul8_fa2_3_xor1 >> 0) & 0x01), ((h_u_arrmul8_ha0_4_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_u_arrmul8_fa2_4_xor1 = (fa(((h_u_arrmul8_and2_4 >> 0) & 0x01), ((h_u_arrmul8_fa3_3_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa1_4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa2_4_or0 = (fa(((h_u_arrmul8_and2_4 >> 0) & 0x01), ((h_u_arrmul8_fa3_3_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa1_4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_u_arrmul8_fa3_4_xor1 = (fa(((h_u_arrmul8_and3_4 >> 0) & 0x01), ((h_u_arrmul8_fa4_3_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa2_4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa3_4_or0 = (fa(((h_u_arrmul8_and3_4 >> 0) & 0x01), ((h_u_arrmul8_fa4_3_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa2_4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_u_arrmul8_fa4_4_xor1 = (fa(((h_u_arrmul8_and4_4 >> 0) & 0x01), ((h_u_arrmul8_fa5_3_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa3_4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa4_4_or0 = (fa(((h_u_arrmul8_and4_4 >> 0) & 0x01), ((h_u_arrmul8_fa5_3_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa3_4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_u_arrmul8_fa5_4_xor1 = (fa(((h_u_arrmul8_and5_4 >> 0) & 0x01), ((h_u_arrmul8_fa6_3_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa4_4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa5_4_or0 = (fa(((h_u_arrmul8_and5_4 >> 0) & 0x01), ((h_u_arrmul8_fa6_3_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa4_4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_u_arrmul8_fa6_4_xor1 = (fa(((h_u_arrmul8_and6_4 >> 0) & 0x01), ((h_u_arrmul8_fa7_3_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa5_4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa6_4_or0 = (fa(((h_u_arrmul8_and6_4 >> 0) & 0x01), ((h_u_arrmul8_fa7_3_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa5_4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and7_4 = and_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_u_arrmul8_fa7_4_xor1 = (fa(((h_u_arrmul8_and7_4 >> 0) & 0x01), ((h_u_arrmul8_fa7_3_or0 >> 0) & 0x01), ((h_u_arrmul8_fa6_4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa7_4_or0 = (fa(((h_u_arrmul8_and7_4 >> 0) & 0x01), ((h_u_arrmul8_fa7_3_or0 >> 0) & 0x01), ((h_u_arrmul8_fa6_4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_u_arrmul8_ha0_5_xor0 = (ha(((h_u_arrmul8_and0_5 >> 0) & 0x01), ((h_u_arrmul8_fa1_4_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_ha0_5_and0 = (ha(((h_u_arrmul8_and0_5 >> 0) & 0x01), ((h_u_arrmul8_fa1_4_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_u_arrmul8_fa1_5_xor1 = (fa(((h_u_arrmul8_and1_5 >> 0) & 0x01), ((h_u_arrmul8_fa2_4_xor1 >> 0) & 0x01), ((h_u_arrmul8_ha0_5_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa1_5_or0 = (fa(((h_u_arrmul8_and1_5 >> 0) & 0x01), ((h_u_arrmul8_fa2_4_xor1 >> 0) & 0x01), ((h_u_arrmul8_ha0_5_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_u_arrmul8_fa2_5_xor1 = (fa(((h_u_arrmul8_and2_5 >> 0) & 0x01), ((h_u_arrmul8_fa3_4_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa1_5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa2_5_or0 = (fa(((h_u_arrmul8_and2_5 >> 0) & 0x01), ((h_u_arrmul8_fa3_4_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa1_5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_u_arrmul8_fa3_5_xor1 = (fa(((h_u_arrmul8_and3_5 >> 0) & 0x01), ((h_u_arrmul8_fa4_4_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa2_5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa3_5_or0 = (fa(((h_u_arrmul8_and3_5 >> 0) & 0x01), ((h_u_arrmul8_fa4_4_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa2_5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_u_arrmul8_fa4_5_xor1 = (fa(((h_u_arrmul8_and4_5 >> 0) & 0x01), ((h_u_arrmul8_fa5_4_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa3_5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa4_5_or0 = (fa(((h_u_arrmul8_and4_5 >> 0) & 0x01), ((h_u_arrmul8_fa5_4_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa3_5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_u_arrmul8_fa5_5_xor1 = (fa(((h_u_arrmul8_and5_5 >> 0) & 0x01), ((h_u_arrmul8_fa6_4_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa4_5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa5_5_or0 = (fa(((h_u_arrmul8_and5_5 >> 0) & 0x01), ((h_u_arrmul8_fa6_4_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa4_5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_u_arrmul8_fa6_5_xor1 = (fa(((h_u_arrmul8_and6_5 >> 0) & 0x01), ((h_u_arrmul8_fa7_4_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa5_5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa6_5_or0 = (fa(((h_u_arrmul8_and6_5 >> 0) & 0x01), ((h_u_arrmul8_fa7_4_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa5_5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and7_5 = and_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_u_arrmul8_fa7_5_xor1 = (fa(((h_u_arrmul8_and7_5 >> 0) & 0x01), ((h_u_arrmul8_fa7_4_or0 >> 0) & 0x01), ((h_u_arrmul8_fa6_5_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa7_5_or0 = (fa(((h_u_arrmul8_and7_5 >> 0) & 0x01), ((h_u_arrmul8_fa7_4_or0 >> 0) & 0x01), ((h_u_arrmul8_fa6_5_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_u_arrmul8_ha0_6_xor0 = (ha(((h_u_arrmul8_and0_6 >> 0) & 0x01), ((h_u_arrmul8_fa1_5_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_ha0_6_and0 = (ha(((h_u_arrmul8_and0_6 >> 0) & 0x01), ((h_u_arrmul8_fa1_5_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_u_arrmul8_fa1_6_xor1 = (fa(((h_u_arrmul8_and1_6 >> 0) & 0x01), ((h_u_arrmul8_fa2_5_xor1 >> 0) & 0x01), ((h_u_arrmul8_ha0_6_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa1_6_or0 = (fa(((h_u_arrmul8_and1_6 >> 0) & 0x01), ((h_u_arrmul8_fa2_5_xor1 >> 0) & 0x01), ((h_u_arrmul8_ha0_6_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_u_arrmul8_fa2_6_xor1 = (fa(((h_u_arrmul8_and2_6 >> 0) & 0x01), ((h_u_arrmul8_fa3_5_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa1_6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa2_6_or0 = (fa(((h_u_arrmul8_and2_6 >> 0) & 0x01), ((h_u_arrmul8_fa3_5_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa1_6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_u_arrmul8_fa3_6_xor1 = (fa(((h_u_arrmul8_and3_6 >> 0) & 0x01), ((h_u_arrmul8_fa4_5_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa2_6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa3_6_or0 = (fa(((h_u_arrmul8_and3_6 >> 0) & 0x01), ((h_u_arrmul8_fa4_5_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa2_6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_u_arrmul8_fa4_6_xor1 = (fa(((h_u_arrmul8_and4_6 >> 0) & 0x01), ((h_u_arrmul8_fa5_5_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa3_6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa4_6_or0 = (fa(((h_u_arrmul8_and4_6 >> 0) & 0x01), ((h_u_arrmul8_fa5_5_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa3_6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_u_arrmul8_fa5_6_xor1 = (fa(((h_u_arrmul8_and5_6 >> 0) & 0x01), ((h_u_arrmul8_fa6_5_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa4_6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa5_6_or0 = (fa(((h_u_arrmul8_and5_6 >> 0) & 0x01), ((h_u_arrmul8_fa6_5_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa4_6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_u_arrmul8_fa6_6_xor1 = (fa(((h_u_arrmul8_and6_6 >> 0) & 0x01), ((h_u_arrmul8_fa7_5_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa5_6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa6_6_or0 = (fa(((h_u_arrmul8_and6_6 >> 0) & 0x01), ((h_u_arrmul8_fa7_5_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa5_6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and7_6 = and_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_u_arrmul8_fa7_6_xor1 = (fa(((h_u_arrmul8_and7_6 >> 0) & 0x01), ((h_u_arrmul8_fa7_5_or0 >> 0) & 0x01), ((h_u_arrmul8_fa6_6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa7_6_or0 = (fa(((h_u_arrmul8_and7_6 >> 0) & 0x01), ((h_u_arrmul8_fa7_5_or0 >> 0) & 0x01), ((h_u_arrmul8_fa6_6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and0_7 = and_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_u_arrmul8_ha0_7_xor0 = (ha(((h_u_arrmul8_and0_7 >> 0) & 0x01), ((h_u_arrmul8_fa1_6_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_ha0_7_and0 = (ha(((h_u_arrmul8_and0_7 >> 0) & 0x01), ((h_u_arrmul8_fa1_6_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and1_7 = and_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_u_arrmul8_fa1_7_xor1 = (fa(((h_u_arrmul8_and1_7 >> 0) & 0x01), ((h_u_arrmul8_fa2_6_xor1 >> 0) & 0x01), ((h_u_arrmul8_ha0_7_and0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa1_7_or0 = (fa(((h_u_arrmul8_and1_7 >> 0) & 0x01), ((h_u_arrmul8_fa2_6_xor1 >> 0) & 0x01), ((h_u_arrmul8_ha0_7_and0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and2_7 = and_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_u_arrmul8_fa2_7_xor1 = (fa(((h_u_arrmul8_and2_7 >> 0) & 0x01), ((h_u_arrmul8_fa3_6_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa1_7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa2_7_or0 = (fa(((h_u_arrmul8_and2_7 >> 0) & 0x01), ((h_u_arrmul8_fa3_6_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa1_7_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and3_7 = and_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_u_arrmul8_fa3_7_xor1 = (fa(((h_u_arrmul8_and3_7 >> 0) & 0x01), ((h_u_arrmul8_fa4_6_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa2_7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa3_7_or0 = (fa(((h_u_arrmul8_and3_7 >> 0) & 0x01), ((h_u_arrmul8_fa4_6_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa2_7_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and4_7 = and_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_u_arrmul8_fa4_7_xor1 = (fa(((h_u_arrmul8_and4_7 >> 0) & 0x01), ((h_u_arrmul8_fa5_6_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa3_7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa4_7_or0 = (fa(((h_u_arrmul8_and4_7 >> 0) & 0x01), ((h_u_arrmul8_fa5_6_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa3_7_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and5_7 = and_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_u_arrmul8_fa5_7_xor1 = (fa(((h_u_arrmul8_and5_7 >> 0) & 0x01), ((h_u_arrmul8_fa6_6_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa4_7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa5_7_or0 = (fa(((h_u_arrmul8_and5_7 >> 0) & 0x01), ((h_u_arrmul8_fa6_6_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa4_7_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and6_7 = and_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_u_arrmul8_fa6_7_xor1 = (fa(((h_u_arrmul8_and6_7 >> 0) & 0x01), ((h_u_arrmul8_fa7_6_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa5_7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa6_7_or0 = (fa(((h_u_arrmul8_and6_7 >> 0) & 0x01), ((h_u_arrmul8_fa7_6_xor1 >> 0) & 0x01), ((h_u_arrmul8_fa5_7_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_arrmul8_and7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_u_arrmul8_fa7_7_xor1 = (fa(((h_u_arrmul8_and7_7 >> 0) & 0x01), ((h_u_arrmul8_fa7_6_or0 >> 0) & 0x01), ((h_u_arrmul8_fa6_7_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_arrmul8_fa7_7_or0 = (fa(((h_u_arrmul8_and7_7 >> 0) & 0x01), ((h_u_arrmul8_fa7_6_or0 >> 0) & 0x01), ((h_u_arrmul8_fa6_7_or0 >> 0) & 0x01)) >> 1) & 0x01; - - h_u_arrmul8_out |= ((h_u_arrmul8_and0_0 >> 0) & 0x01) << 0; - h_u_arrmul8_out |= ((h_u_arrmul8_ha0_1_xor0 >> 0) & 0x01) << 1; - h_u_arrmul8_out |= ((h_u_arrmul8_ha0_2_xor0 >> 0) & 0x01) << 2; - h_u_arrmul8_out |= ((h_u_arrmul8_ha0_3_xor0 >> 0) & 0x01) << 3; - h_u_arrmul8_out |= ((h_u_arrmul8_ha0_4_xor0 >> 0) & 0x01) << 4; - h_u_arrmul8_out |= ((h_u_arrmul8_ha0_5_xor0 >> 0) & 0x01) << 5; - h_u_arrmul8_out |= ((h_u_arrmul8_ha0_6_xor0 >> 0) & 0x01) << 6; - h_u_arrmul8_out |= ((h_u_arrmul8_ha0_7_xor0 >> 0) & 0x01) << 7; - h_u_arrmul8_out |= ((h_u_arrmul8_fa1_7_xor1 >> 0) & 0x01) << 8; - h_u_arrmul8_out |= ((h_u_arrmul8_fa2_7_xor1 >> 0) & 0x01) << 9; - h_u_arrmul8_out |= ((h_u_arrmul8_fa3_7_xor1 >> 0) & 0x01) << 10; - h_u_arrmul8_out |= ((h_u_arrmul8_fa4_7_xor1 >> 0) & 0x01) << 11; - h_u_arrmul8_out |= ((h_u_arrmul8_fa5_7_xor1 >> 0) & 0x01) << 12; - h_u_arrmul8_out |= ((h_u_arrmul8_fa6_7_xor1 >> 0) & 0x01) << 13; - h_u_arrmul8_out |= ((h_u_arrmul8_fa7_7_xor1 >> 0) & 0x01) << 14; - h_u_arrmul8_out |= ((h_u_arrmul8_fa7_7_or0 >> 0) & 0x01) << 15; - return h_u_arrmul8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == h_u_arrmul8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cla4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cla4.c deleted file mode 100644 index fc47f19..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cla4.c +++ /dev/null @@ -1,269 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_logic(uint8_t a, uint8_t b){ - uint8_t pg_logic_out = 0; - uint8_t pg_logic_or0 = 0; - uint8_t pg_logic_and0 = 0; - uint8_t pg_logic_xor0 = 0; - - pg_logic_or0 = or_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - pg_logic_out |= ((pg_logic_or0 >> 0) & 0x01) << 0; - pg_logic_out |= ((pg_logic_and0 >> 0) & 0x01) << 1; - pg_logic_out |= ((pg_logic_xor0 >> 0) & 0x01) << 2; - return pg_logic_out; -} - -uint64_t u_cla6(uint64_t a, uint64_t b){ - uint8_t u_cla6_out = 0; - uint8_t u_cla6_pg_logic0_or0 = 0; - uint8_t u_cla6_pg_logic0_and0 = 0; - uint8_t u_cla6_pg_logic0_xor0 = 0; - uint8_t u_cla6_pg_logic1_or0 = 0; - uint8_t u_cla6_pg_logic1_and0 = 0; - uint8_t u_cla6_pg_logic1_xor0 = 0; - uint8_t u_cla6_xor1 = 0; - uint8_t u_cla6_and0 = 0; - uint8_t u_cla6_or0 = 0; - uint8_t u_cla6_pg_logic2_or0 = 0; - uint8_t u_cla6_pg_logic2_and0 = 0; - uint8_t u_cla6_pg_logic2_xor0 = 0; - uint8_t u_cla6_xor2 = 0; - uint8_t u_cla6_and1 = 0; - uint8_t u_cla6_and2 = 0; - uint8_t u_cla6_and3 = 0; - uint8_t u_cla6_and4 = 0; - uint8_t u_cla6_or1 = 0; - uint8_t u_cla6_or2 = 0; - uint8_t u_cla6_pg_logic3_or0 = 0; - uint8_t u_cla6_pg_logic3_and0 = 0; - uint8_t u_cla6_pg_logic3_xor0 = 0; - uint8_t u_cla6_xor3 = 0; - uint8_t u_cla6_and5 = 0; - uint8_t u_cla6_and6 = 0; - uint8_t u_cla6_and7 = 0; - uint8_t u_cla6_and8 = 0; - uint8_t u_cla6_and9 = 0; - uint8_t u_cla6_and10 = 0; - uint8_t u_cla6_and11 = 0; - uint8_t u_cla6_or3 = 0; - uint8_t u_cla6_or4 = 0; - uint8_t u_cla6_or5 = 0; - uint8_t u_cla6_pg_logic4_or0 = 0; - uint8_t u_cla6_pg_logic4_and0 = 0; - uint8_t u_cla6_pg_logic4_xor0 = 0; - uint8_t u_cla6_xor4 = 0; - uint8_t u_cla6_and12 = 0; - uint8_t u_cla6_or6 = 0; - uint8_t u_cla6_pg_logic5_or0 = 0; - uint8_t u_cla6_pg_logic5_and0 = 0; - uint8_t u_cla6_pg_logic5_xor0 = 0; - uint8_t u_cla6_xor5 = 0; - uint8_t u_cla6_and13 = 0; - uint8_t u_cla6_and14 = 0; - uint8_t u_cla6_and15 = 0; - uint8_t u_cla6_or7 = 0; - uint8_t u_cla6_or8 = 0; - - u_cla6_pg_logic0_or0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic0_and0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic0_xor0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 2) & 0x01; - u_cla6_pg_logic1_or0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic1_and0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic1_xor0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 2) & 0x01; - u_cla6_xor1 = xor_gate(((u_cla6_pg_logic1_xor0 >> 0) & 0x01), ((u_cla6_pg_logic0_and0 >> 0) & 0x01)); - u_cla6_and0 = and_gate(((u_cla6_pg_logic0_and0 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_or0 = or_gate(((u_cla6_pg_logic1_and0 >> 0) & 0x01), ((u_cla6_and0 >> 0) & 0x01)); - u_cla6_pg_logic2_or0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic2_and0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic2_xor0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 2) & 0x01; - u_cla6_xor2 = xor_gate(((u_cla6_pg_logic2_xor0 >> 0) & 0x01), ((u_cla6_or0 >> 0) & 0x01)); - u_cla6_and1 = and_gate(((u_cla6_pg_logic2_or0 >> 0) & 0x01), ((u_cla6_pg_logic0_or0 >> 0) & 0x01)); - u_cla6_and2 = and_gate(((u_cla6_pg_logic0_and0 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_and3 = and_gate(((u_cla6_and2 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_and4 = and_gate(((u_cla6_pg_logic1_and0 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_or1 = or_gate(((u_cla6_and3 >> 0) & 0x01), ((u_cla6_and4 >> 0) & 0x01)); - u_cla6_or2 = or_gate(((u_cla6_pg_logic2_and0 >> 0) & 0x01), ((u_cla6_or1 >> 0) & 0x01)); - u_cla6_pg_logic3_or0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic3_and0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic3_xor0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 2) & 0x01; - u_cla6_xor3 = xor_gate(((u_cla6_pg_logic3_xor0 >> 0) & 0x01), ((u_cla6_or2 >> 0) & 0x01)); - u_cla6_and5 = and_gate(((u_cla6_pg_logic3_or0 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_and6 = and_gate(((u_cla6_pg_logic0_and0 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_and7 = and_gate(((u_cla6_pg_logic3_or0 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_and8 = and_gate(((u_cla6_and6 >> 0) & 0x01), ((u_cla6_and7 >> 0) & 0x01)); - u_cla6_and9 = and_gate(((u_cla6_pg_logic1_and0 >> 0) & 0x01), ((u_cla6_pg_logic3_or0 >> 0) & 0x01)); - u_cla6_and10 = and_gate(((u_cla6_and9 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_and11 = and_gate(((u_cla6_pg_logic2_and0 >> 0) & 0x01), ((u_cla6_pg_logic3_or0 >> 0) & 0x01)); - u_cla6_or3 = or_gate(((u_cla6_and8 >> 0) & 0x01), ((u_cla6_and11 >> 0) & 0x01)); - u_cla6_or4 = or_gate(((u_cla6_and10 >> 0) & 0x01), ((u_cla6_or3 >> 0) & 0x01)); - u_cla6_or5 = or_gate(((u_cla6_pg_logic3_and0 >> 0) & 0x01), ((u_cla6_or4 >> 0) & 0x01)); - u_cla6_pg_logic4_or0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic4_and0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic4_xor0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 2) & 0x01; - u_cla6_xor4 = xor_gate(((u_cla6_pg_logic4_xor0 >> 0) & 0x01), ((u_cla6_or5 >> 0) & 0x01)); - u_cla6_and12 = and_gate(((u_cla6_or5 >> 0) & 0x01), ((u_cla6_pg_logic4_or0 >> 0) & 0x01)); - u_cla6_or6 = or_gate(((u_cla6_pg_logic4_and0 >> 0) & 0x01), ((u_cla6_and12 >> 0) & 0x01)); - u_cla6_pg_logic5_or0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic5_and0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic5_xor0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 2) & 0x01; - u_cla6_xor5 = xor_gate(((u_cla6_pg_logic5_xor0 >> 0) & 0x01), ((u_cla6_or6 >> 0) & 0x01)); - u_cla6_and13 = and_gate(((u_cla6_or5 >> 0) & 0x01), ((u_cla6_pg_logic5_or0 >> 0) & 0x01)); - u_cla6_and14 = and_gate(((u_cla6_and13 >> 0) & 0x01), ((u_cla6_pg_logic4_or0 >> 0) & 0x01)); - u_cla6_and15 = and_gate(((u_cla6_pg_logic4_and0 >> 0) & 0x01), ((u_cla6_pg_logic5_or0 >> 0) & 0x01)); - u_cla6_or7 = or_gate(((u_cla6_and14 >> 0) & 0x01), ((u_cla6_and15 >> 0) & 0x01)); - u_cla6_or8 = or_gate(((u_cla6_pg_logic5_and0 >> 0) & 0x01), ((u_cla6_or7 >> 0) & 0x01)); - - u_cla6_out |= ((u_cla6_pg_logic0_xor0 >> 0) & 0x01) << 0; - u_cla6_out |= ((u_cla6_xor1 >> 0) & 0x01) << 1; - u_cla6_out |= ((u_cla6_xor2 >> 0) & 0x01) << 2; - u_cla6_out |= ((u_cla6_xor3 >> 0) & 0x01) << 3; - u_cla6_out |= ((u_cla6_xor4 >> 0) & 0x01) << 4; - u_cla6_out |= ((u_cla6_xor5 >> 0) & 0x01) << 5; - u_cla6_out |= ((u_cla6_or8 >> 0) & 0x01) << 6; - return u_cla6_out; -} - -uint64_t h_u_dadda_cla4(uint64_t a, uint64_t b){ - uint8_t h_u_dadda_cla4_out = 0; - uint8_t h_u_dadda_cla4_and_3_0 = 0; - uint8_t h_u_dadda_cla4_and_2_1 = 0; - uint8_t h_u_dadda_cla4_ha0_xor0 = 0; - uint8_t h_u_dadda_cla4_ha0_and0 = 0; - uint8_t h_u_dadda_cla4_and_3_1 = 0; - uint8_t h_u_dadda_cla4_ha1_xor0 = 0; - uint8_t h_u_dadda_cla4_ha1_and0 = 0; - uint8_t h_u_dadda_cla4_and_2_0 = 0; - uint8_t h_u_dadda_cla4_and_1_1 = 0; - uint8_t h_u_dadda_cla4_ha2_xor0 = 0; - uint8_t h_u_dadda_cla4_ha2_and0 = 0; - uint8_t h_u_dadda_cla4_and_1_2 = 0; - uint8_t h_u_dadda_cla4_and_0_3 = 0; - uint8_t h_u_dadda_cla4_fa0_xor1 = 0; - uint8_t h_u_dadda_cla4_fa0_or0 = 0; - uint8_t h_u_dadda_cla4_and_2_2 = 0; - uint8_t h_u_dadda_cla4_and_1_3 = 0; - uint8_t h_u_dadda_cla4_fa1_xor1 = 0; - uint8_t h_u_dadda_cla4_fa1_or0 = 0; - uint8_t h_u_dadda_cla4_and_3_2 = 0; - uint8_t h_u_dadda_cla4_fa2_xor1 = 0; - uint8_t h_u_dadda_cla4_fa2_or0 = 0; - uint8_t h_u_dadda_cla4_and_0_0 = 0; - uint8_t h_u_dadda_cla4_and_1_0 = 0; - uint8_t h_u_dadda_cla4_and_0_2 = 0; - uint8_t h_u_dadda_cla4_and_2_3 = 0; - uint8_t h_u_dadda_cla4_and_0_1 = 0; - uint8_t h_u_dadda_cla4_and_3_3 = 0; - uint64_t h_u_dadda_cla4_u_cla6_a = 0; - uint64_t h_u_dadda_cla4_u_cla6_b = 0; - uint64_t h_u_dadda_cla4_u_cla6_out = 0; - - h_u_dadda_cla4_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cla4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cla4_ha0_xor0 = (ha(((h_u_dadda_cla4_and_3_0 >> 0) & 0x01), ((h_u_dadda_cla4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla4_ha0_and0 = (ha(((h_u_dadda_cla4_and_3_0 >> 0) & 0x01), ((h_u_dadda_cla4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla4_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cla4_ha1_xor0 = (ha(((h_u_dadda_cla4_ha0_and0 >> 0) & 0x01), ((h_u_dadda_cla4_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla4_ha1_and0 = (ha(((h_u_dadda_cla4_ha0_and0 >> 0) & 0x01), ((h_u_dadda_cla4_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cla4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cla4_ha2_xor0 = (ha(((h_u_dadda_cla4_and_2_0 >> 0) & 0x01), ((h_u_dadda_cla4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla4_ha2_and0 = (ha(((h_u_dadda_cla4_and_2_0 >> 0) & 0x01), ((h_u_dadda_cla4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cla4_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cla4_fa0_xor1 = (fa(((h_u_dadda_cla4_ha2_and0 >> 0) & 0x01), ((h_u_dadda_cla4_and_1_2 >> 0) & 0x01), ((h_u_dadda_cla4_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla4_fa0_or0 = (fa(((h_u_dadda_cla4_ha2_and0 >> 0) & 0x01), ((h_u_dadda_cla4_and_1_2 >> 0) & 0x01), ((h_u_dadda_cla4_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cla4_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cla4_fa1_xor1 = (fa(((h_u_dadda_cla4_fa0_or0 >> 0) & 0x01), ((h_u_dadda_cla4_and_2_2 >> 0) & 0x01), ((h_u_dadda_cla4_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla4_fa1_or0 = (fa(((h_u_dadda_cla4_fa0_or0 >> 0) & 0x01), ((h_u_dadda_cla4_and_2_2 >> 0) & 0x01), ((h_u_dadda_cla4_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla4_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cla4_fa2_xor1 = (fa(((h_u_dadda_cla4_fa1_or0 >> 0) & 0x01), ((h_u_dadda_cla4_ha1_and0 >> 0) & 0x01), ((h_u_dadda_cla4_and_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla4_fa2_or0 = (fa(((h_u_dadda_cla4_fa1_or0 >> 0) & 0x01), ((h_u_dadda_cla4_ha1_and0 >> 0) & 0x01), ((h_u_dadda_cla4_and_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cla4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cla4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cla4_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cla4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cla4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cla4_u_cla6_a |= ((h_u_dadda_cla4_and_1_0 >> 0) & 0x01) << 0; - h_u_dadda_cla4_u_cla6_a |= ((h_u_dadda_cla4_and_0_2 >> 0) & 0x01) << 1; - h_u_dadda_cla4_u_cla6_a |= ((h_u_dadda_cla4_ha0_xor0 >> 0) & 0x01) << 2; - h_u_dadda_cla4_u_cla6_a |= ((h_u_dadda_cla4_ha1_xor0 >> 0) & 0x01) << 3; - h_u_dadda_cla4_u_cla6_a |= ((h_u_dadda_cla4_and_2_3 >> 0) & 0x01) << 4; - h_u_dadda_cla4_u_cla6_a |= ((h_u_dadda_cla4_fa2_or0 >> 0) & 0x01) << 5; - h_u_dadda_cla4_u_cla6_b |= ((h_u_dadda_cla4_and_0_1 >> 0) & 0x01) << 0; - h_u_dadda_cla4_u_cla6_b |= ((h_u_dadda_cla4_ha2_xor0 >> 0) & 0x01) << 1; - h_u_dadda_cla4_u_cla6_b |= ((h_u_dadda_cla4_fa0_xor1 >> 0) & 0x01) << 2; - h_u_dadda_cla4_u_cla6_b |= ((h_u_dadda_cla4_fa1_xor1 >> 0) & 0x01) << 3; - h_u_dadda_cla4_u_cla6_b |= ((h_u_dadda_cla4_fa2_xor1 >> 0) & 0x01) << 4; - h_u_dadda_cla4_u_cla6_b |= ((h_u_dadda_cla4_and_3_3 >> 0) & 0x01) << 5; - h_u_dadda_cla4_u_cla6_out = u_cla6(h_u_dadda_cla4_u_cla6_a, h_u_dadda_cla4_u_cla6_b); - - h_u_dadda_cla4_out |= ((h_u_dadda_cla4_and_0_0 >> 0) & 0x01) << 0; - h_u_dadda_cla4_out |= ((h_u_dadda_cla4_u_cla6_out >> 0) & 0x01) << 1; - h_u_dadda_cla4_out |= ((h_u_dadda_cla4_u_cla6_out >> 1) & 0x01) << 2; - h_u_dadda_cla4_out |= ((h_u_dadda_cla4_u_cla6_out >> 2) & 0x01) << 3; - h_u_dadda_cla4_out |= ((h_u_dadda_cla4_u_cla6_out >> 3) & 0x01) << 4; - h_u_dadda_cla4_out |= ((h_u_dadda_cla4_u_cla6_out >> 4) & 0x01) << 5; - h_u_dadda_cla4_out |= ((h_u_dadda_cla4_u_cla6_out >> 5) & 0x01) << 6; - h_u_dadda_cla4_out |= ((h_u_dadda_cla4_u_cla6_out >> 6) & 0x01) << 7; - return h_u_dadda_cla4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == h_u_dadda_cla4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cla8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cla8.c deleted file mode 100644 index e02d4e8..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cla8.c +++ /dev/null @@ -1,725 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_logic(uint8_t a, uint8_t b){ - uint8_t pg_logic_out = 0; - uint8_t pg_logic_or0 = 0; - uint8_t pg_logic_and0 = 0; - uint8_t pg_logic_xor0 = 0; - - pg_logic_or0 = or_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - pg_logic_out |= ((pg_logic_or0 >> 0) & 0x01) << 0; - pg_logic_out |= ((pg_logic_and0 >> 0) & 0x01) << 1; - pg_logic_out |= ((pg_logic_xor0 >> 0) & 0x01) << 2; - return pg_logic_out; -} - -uint64_t u_cla14(uint64_t a, uint64_t b){ - uint64_t u_cla14_out = 0; - uint8_t u_cla14_pg_logic0_or0 = 0; - uint8_t u_cla14_pg_logic0_and0 = 0; - uint8_t u_cla14_pg_logic0_xor0 = 0; - uint8_t u_cla14_pg_logic1_or0 = 0; - uint8_t u_cla14_pg_logic1_and0 = 0; - uint8_t u_cla14_pg_logic1_xor0 = 0; - uint8_t u_cla14_xor1 = 0; - uint8_t u_cla14_and0 = 0; - uint8_t u_cla14_or0 = 0; - uint8_t u_cla14_pg_logic2_or0 = 0; - uint8_t u_cla14_pg_logic2_and0 = 0; - uint8_t u_cla14_pg_logic2_xor0 = 0; - uint8_t u_cla14_xor2 = 0; - uint8_t u_cla14_and1 = 0; - uint8_t u_cla14_and2 = 0; - uint8_t u_cla14_and3 = 0; - uint8_t u_cla14_and4 = 0; - uint8_t u_cla14_or1 = 0; - uint8_t u_cla14_or2 = 0; - uint8_t u_cla14_pg_logic3_or0 = 0; - uint8_t u_cla14_pg_logic3_and0 = 0; - uint8_t u_cla14_pg_logic3_xor0 = 0; - uint8_t u_cla14_xor3 = 0; - uint8_t u_cla14_and5 = 0; - uint8_t u_cla14_and6 = 0; - uint8_t u_cla14_and7 = 0; - uint8_t u_cla14_and8 = 0; - uint8_t u_cla14_and9 = 0; - uint8_t u_cla14_and10 = 0; - uint8_t u_cla14_and11 = 0; - uint8_t u_cla14_or3 = 0; - uint8_t u_cla14_or4 = 0; - uint8_t u_cla14_or5 = 0; - uint8_t u_cla14_pg_logic4_or0 = 0; - uint8_t u_cla14_pg_logic4_and0 = 0; - uint8_t u_cla14_pg_logic4_xor0 = 0; - uint8_t u_cla14_xor4 = 0; - uint8_t u_cla14_and12 = 0; - uint8_t u_cla14_or6 = 0; - uint8_t u_cla14_pg_logic5_or0 = 0; - uint8_t u_cla14_pg_logic5_and0 = 0; - uint8_t u_cla14_pg_logic5_xor0 = 0; - uint8_t u_cla14_xor5 = 0; - uint8_t u_cla14_and13 = 0; - uint8_t u_cla14_and14 = 0; - uint8_t u_cla14_and15 = 0; - uint8_t u_cla14_or7 = 0; - uint8_t u_cla14_or8 = 0; - uint8_t u_cla14_pg_logic6_or0 = 0; - uint8_t u_cla14_pg_logic6_and0 = 0; - uint8_t u_cla14_pg_logic6_xor0 = 0; - uint8_t u_cla14_xor6 = 0; - uint8_t u_cla14_and16 = 0; - uint8_t u_cla14_and17 = 0; - uint8_t u_cla14_and18 = 0; - uint8_t u_cla14_and19 = 0; - uint8_t u_cla14_and20 = 0; - uint8_t u_cla14_and21 = 0; - uint8_t u_cla14_or9 = 0; - uint8_t u_cla14_or10 = 0; - uint8_t u_cla14_or11 = 0; - uint8_t u_cla14_pg_logic7_or0 = 0; - uint8_t u_cla14_pg_logic7_and0 = 0; - uint8_t u_cla14_pg_logic7_xor0 = 0; - uint8_t u_cla14_xor7 = 0; - uint8_t u_cla14_and22 = 0; - uint8_t u_cla14_and23 = 0; - uint8_t u_cla14_and24 = 0; - uint8_t u_cla14_and25 = 0; - uint8_t u_cla14_and26 = 0; - uint8_t u_cla14_and27 = 0; - uint8_t u_cla14_and28 = 0; - uint8_t u_cla14_and29 = 0; - uint8_t u_cla14_and30 = 0; - uint8_t u_cla14_and31 = 0; - uint8_t u_cla14_or12 = 0; - uint8_t u_cla14_or13 = 0; - uint8_t u_cla14_or14 = 0; - uint8_t u_cla14_or15 = 0; - uint8_t u_cla14_pg_logic8_or0 = 0; - uint8_t u_cla14_pg_logic8_and0 = 0; - uint8_t u_cla14_pg_logic8_xor0 = 0; - uint8_t u_cla14_xor8 = 0; - uint8_t u_cla14_and32 = 0; - uint8_t u_cla14_or16 = 0; - uint8_t u_cla14_pg_logic9_or0 = 0; - uint8_t u_cla14_pg_logic9_and0 = 0; - uint8_t u_cla14_pg_logic9_xor0 = 0; - uint8_t u_cla14_xor9 = 0; - uint8_t u_cla14_and33 = 0; - uint8_t u_cla14_and34 = 0; - uint8_t u_cla14_and35 = 0; - uint8_t u_cla14_or17 = 0; - uint8_t u_cla14_or18 = 0; - uint8_t u_cla14_pg_logic10_or0 = 0; - uint8_t u_cla14_pg_logic10_and0 = 0; - uint8_t u_cla14_pg_logic10_xor0 = 0; - uint8_t u_cla14_xor10 = 0; - uint8_t u_cla14_and36 = 0; - uint8_t u_cla14_and37 = 0; - uint8_t u_cla14_and38 = 0; - uint8_t u_cla14_and39 = 0; - uint8_t u_cla14_and40 = 0; - uint8_t u_cla14_and41 = 0; - uint8_t u_cla14_or19 = 0; - uint8_t u_cla14_or20 = 0; - uint8_t u_cla14_or21 = 0; - uint8_t u_cla14_pg_logic11_or0 = 0; - uint8_t u_cla14_pg_logic11_and0 = 0; - uint8_t u_cla14_pg_logic11_xor0 = 0; - uint8_t u_cla14_xor11 = 0; - uint8_t u_cla14_and42 = 0; - uint8_t u_cla14_and43 = 0; - uint8_t u_cla14_and44 = 0; - uint8_t u_cla14_and45 = 0; - uint8_t u_cla14_and46 = 0; - uint8_t u_cla14_and47 = 0; - uint8_t u_cla14_and48 = 0; - uint8_t u_cla14_and49 = 0; - uint8_t u_cla14_and50 = 0; - uint8_t u_cla14_and51 = 0; - uint8_t u_cla14_or22 = 0; - uint8_t u_cla14_or23 = 0; - uint8_t u_cla14_or24 = 0; - uint8_t u_cla14_or25 = 0; - uint8_t u_cla14_pg_logic12_or0 = 0; - uint8_t u_cla14_pg_logic12_and0 = 0; - uint8_t u_cla14_pg_logic12_xor0 = 0; - uint8_t u_cla14_xor12 = 0; - uint8_t u_cla14_and52 = 0; - uint8_t u_cla14_or26 = 0; - uint8_t u_cla14_pg_logic13_or0 = 0; - uint8_t u_cla14_pg_logic13_and0 = 0; - uint8_t u_cla14_pg_logic13_xor0 = 0; - uint8_t u_cla14_xor13 = 0; - uint8_t u_cla14_and53 = 0; - uint8_t u_cla14_and54 = 0; - uint8_t u_cla14_and55 = 0; - uint8_t u_cla14_or27 = 0; - uint8_t u_cla14_or28 = 0; - - u_cla14_pg_logic0_or0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic0_and0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic0_xor0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 2) & 0x01; - u_cla14_pg_logic1_or0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic1_and0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic1_xor0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 2) & 0x01; - u_cla14_xor1 = xor_gate(((u_cla14_pg_logic1_xor0 >> 0) & 0x01), ((u_cla14_pg_logic0_and0 >> 0) & 0x01)); - u_cla14_and0 = and_gate(((u_cla14_pg_logic0_and0 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_or0 = or_gate(((u_cla14_pg_logic1_and0 >> 0) & 0x01), ((u_cla14_and0 >> 0) & 0x01)); - u_cla14_pg_logic2_or0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic2_and0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic2_xor0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 2) & 0x01; - u_cla14_xor2 = xor_gate(((u_cla14_pg_logic2_xor0 >> 0) & 0x01), ((u_cla14_or0 >> 0) & 0x01)); - u_cla14_and1 = and_gate(((u_cla14_pg_logic2_or0 >> 0) & 0x01), ((u_cla14_pg_logic0_or0 >> 0) & 0x01)); - u_cla14_and2 = and_gate(((u_cla14_pg_logic0_and0 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_and3 = and_gate(((u_cla14_and2 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_and4 = and_gate(((u_cla14_pg_logic1_and0 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_or1 = or_gate(((u_cla14_and3 >> 0) & 0x01), ((u_cla14_and4 >> 0) & 0x01)); - u_cla14_or2 = or_gate(((u_cla14_pg_logic2_and0 >> 0) & 0x01), ((u_cla14_or1 >> 0) & 0x01)); - u_cla14_pg_logic3_or0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic3_and0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic3_xor0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 2) & 0x01; - u_cla14_xor3 = xor_gate(((u_cla14_pg_logic3_xor0 >> 0) & 0x01), ((u_cla14_or2 >> 0) & 0x01)); - u_cla14_and5 = and_gate(((u_cla14_pg_logic3_or0 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_and6 = and_gate(((u_cla14_pg_logic0_and0 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_and7 = and_gate(((u_cla14_pg_logic3_or0 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_and8 = and_gate(((u_cla14_and6 >> 0) & 0x01), ((u_cla14_and7 >> 0) & 0x01)); - u_cla14_and9 = and_gate(((u_cla14_pg_logic1_and0 >> 0) & 0x01), ((u_cla14_pg_logic3_or0 >> 0) & 0x01)); - u_cla14_and10 = and_gate(((u_cla14_and9 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_and11 = and_gate(((u_cla14_pg_logic2_and0 >> 0) & 0x01), ((u_cla14_pg_logic3_or0 >> 0) & 0x01)); - u_cla14_or3 = or_gate(((u_cla14_and8 >> 0) & 0x01), ((u_cla14_and11 >> 0) & 0x01)); - u_cla14_or4 = or_gate(((u_cla14_and10 >> 0) & 0x01), ((u_cla14_or3 >> 0) & 0x01)); - u_cla14_or5 = or_gate(((u_cla14_pg_logic3_and0 >> 0) & 0x01), ((u_cla14_or4 >> 0) & 0x01)); - u_cla14_pg_logic4_or0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic4_and0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic4_xor0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 2) & 0x01; - u_cla14_xor4 = xor_gate(((u_cla14_pg_logic4_xor0 >> 0) & 0x01), ((u_cla14_or5 >> 0) & 0x01)); - u_cla14_and12 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_or6 = or_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_and12 >> 0) & 0x01)); - u_cla14_pg_logic5_or0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic5_and0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic5_xor0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 2) & 0x01; - u_cla14_xor5 = xor_gate(((u_cla14_pg_logic5_xor0 >> 0) & 0x01), ((u_cla14_or6 >> 0) & 0x01)); - u_cla14_and13 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and14 = and_gate(((u_cla14_and13 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_and15 = and_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_or7 = or_gate(((u_cla14_and14 >> 0) & 0x01), ((u_cla14_and15 >> 0) & 0x01)); - u_cla14_or8 = or_gate(((u_cla14_pg_logic5_and0 >> 0) & 0x01), ((u_cla14_or7 >> 0) & 0x01)); - u_cla14_pg_logic6_or0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic6_and0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic6_xor0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 2) & 0x01; - u_cla14_xor6 = xor_gate(((u_cla14_pg_logic6_xor0 >> 0) & 0x01), ((u_cla14_or8 >> 0) & 0x01)); - u_cla14_and16 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and17 = and_gate(((u_cla14_pg_logic6_or0 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_and18 = and_gate(((u_cla14_and16 >> 0) & 0x01), ((u_cla14_and17 >> 0) & 0x01)); - u_cla14_and19 = and_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and20 = and_gate(((u_cla14_and19 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and21 = and_gate(((u_cla14_pg_logic5_and0 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_or9 = or_gate(((u_cla14_and18 >> 0) & 0x01), ((u_cla14_and20 >> 0) & 0x01)); - u_cla14_or10 = or_gate(((u_cla14_or9 >> 0) & 0x01), ((u_cla14_and21 >> 0) & 0x01)); - u_cla14_or11 = or_gate(((u_cla14_pg_logic6_and0 >> 0) & 0x01), ((u_cla14_or10 >> 0) & 0x01)); - u_cla14_pg_logic7_or0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic7_and0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic7_xor0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 2) & 0x01; - u_cla14_xor7 = xor_gate(((u_cla14_pg_logic7_xor0 >> 0) & 0x01), ((u_cla14_or11 >> 0) & 0x01)); - u_cla14_and22 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and23 = and_gate(((u_cla14_pg_logic7_or0 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and24 = and_gate(((u_cla14_and22 >> 0) & 0x01), ((u_cla14_and23 >> 0) & 0x01)); - u_cla14_and25 = and_gate(((u_cla14_and24 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_and26 = and_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and27 = and_gate(((u_cla14_pg_logic7_or0 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and28 = and_gate(((u_cla14_and26 >> 0) & 0x01), ((u_cla14_and27 >> 0) & 0x01)); - u_cla14_and29 = and_gate(((u_cla14_pg_logic5_and0 >> 0) & 0x01), ((u_cla14_pg_logic7_or0 >> 0) & 0x01)); - u_cla14_and30 = and_gate(((u_cla14_and29 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and31 = and_gate(((u_cla14_pg_logic6_and0 >> 0) & 0x01), ((u_cla14_pg_logic7_or0 >> 0) & 0x01)); - u_cla14_or12 = or_gate(((u_cla14_and25 >> 0) & 0x01), ((u_cla14_and30 >> 0) & 0x01)); - u_cla14_or13 = or_gate(((u_cla14_and28 >> 0) & 0x01), ((u_cla14_and31 >> 0) & 0x01)); - u_cla14_or14 = or_gate(((u_cla14_or12 >> 0) & 0x01), ((u_cla14_or13 >> 0) & 0x01)); - u_cla14_or15 = or_gate(((u_cla14_pg_logic7_and0 >> 0) & 0x01), ((u_cla14_or14 >> 0) & 0x01)); - u_cla14_pg_logic8_or0 = (pg_logic(((a >> 8) & 0x01), ((b >> 8) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic8_and0 = (pg_logic(((a >> 8) & 0x01), ((b >> 8) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic8_xor0 = (pg_logic(((a >> 8) & 0x01), ((b >> 8) & 0x01)) >> 2) & 0x01; - u_cla14_xor8 = xor_gate(((u_cla14_pg_logic8_xor0 >> 0) & 0x01), ((u_cla14_or15 >> 0) & 0x01)); - u_cla14_and32 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_or16 = or_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_and32 >> 0) & 0x01)); - u_cla14_pg_logic9_or0 = (pg_logic(((a >> 9) & 0x01), ((b >> 9) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic9_and0 = (pg_logic(((a >> 9) & 0x01), ((b >> 9) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic9_xor0 = (pg_logic(((a >> 9) & 0x01), ((b >> 9) & 0x01)) >> 2) & 0x01; - u_cla14_xor9 = xor_gate(((u_cla14_pg_logic9_xor0 >> 0) & 0x01), ((u_cla14_or16 >> 0) & 0x01)); - u_cla14_and33 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and34 = and_gate(((u_cla14_and33 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_and35 = and_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_or17 = or_gate(((u_cla14_and34 >> 0) & 0x01), ((u_cla14_and35 >> 0) & 0x01)); - u_cla14_or18 = or_gate(((u_cla14_pg_logic9_and0 >> 0) & 0x01), ((u_cla14_or17 >> 0) & 0x01)); - u_cla14_pg_logic10_or0 = (pg_logic(((a >> 10) & 0x01), ((b >> 10) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic10_and0 = (pg_logic(((a >> 10) & 0x01), ((b >> 10) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic10_xor0 = (pg_logic(((a >> 10) & 0x01), ((b >> 10) & 0x01)) >> 2) & 0x01; - u_cla14_xor10 = xor_gate(((u_cla14_pg_logic10_xor0 >> 0) & 0x01), ((u_cla14_or18 >> 0) & 0x01)); - u_cla14_and36 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and37 = and_gate(((u_cla14_pg_logic10_or0 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_and38 = and_gate(((u_cla14_and36 >> 0) & 0x01), ((u_cla14_and37 >> 0) & 0x01)); - u_cla14_and39 = and_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and40 = and_gate(((u_cla14_and39 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and41 = and_gate(((u_cla14_pg_logic9_and0 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_or19 = or_gate(((u_cla14_and38 >> 0) & 0x01), ((u_cla14_and40 >> 0) & 0x01)); - u_cla14_or20 = or_gate(((u_cla14_or19 >> 0) & 0x01), ((u_cla14_and41 >> 0) & 0x01)); - u_cla14_or21 = or_gate(((u_cla14_pg_logic10_and0 >> 0) & 0x01), ((u_cla14_or20 >> 0) & 0x01)); - u_cla14_pg_logic11_or0 = (pg_logic(((a >> 11) & 0x01), ((b >> 11) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic11_and0 = (pg_logic(((a >> 11) & 0x01), ((b >> 11) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic11_xor0 = (pg_logic(((a >> 11) & 0x01), ((b >> 11) & 0x01)) >> 2) & 0x01; - u_cla14_xor11 = xor_gate(((u_cla14_pg_logic11_xor0 >> 0) & 0x01), ((u_cla14_or21 >> 0) & 0x01)); - u_cla14_and42 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and43 = and_gate(((u_cla14_pg_logic11_or0 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and44 = and_gate(((u_cla14_and42 >> 0) & 0x01), ((u_cla14_and43 >> 0) & 0x01)); - u_cla14_and45 = and_gate(((u_cla14_and44 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_and46 = and_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and47 = and_gate(((u_cla14_pg_logic11_or0 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and48 = and_gate(((u_cla14_and46 >> 0) & 0x01), ((u_cla14_and47 >> 0) & 0x01)); - u_cla14_and49 = and_gate(((u_cla14_pg_logic9_and0 >> 0) & 0x01), ((u_cla14_pg_logic11_or0 >> 0) & 0x01)); - u_cla14_and50 = and_gate(((u_cla14_and49 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and51 = and_gate(((u_cla14_pg_logic10_and0 >> 0) & 0x01), ((u_cla14_pg_logic11_or0 >> 0) & 0x01)); - u_cla14_or22 = or_gate(((u_cla14_and45 >> 0) & 0x01), ((u_cla14_and50 >> 0) & 0x01)); - u_cla14_or23 = or_gate(((u_cla14_and48 >> 0) & 0x01), ((u_cla14_and51 >> 0) & 0x01)); - u_cla14_or24 = or_gate(((u_cla14_or22 >> 0) & 0x01), ((u_cla14_or23 >> 0) & 0x01)); - u_cla14_or25 = or_gate(((u_cla14_pg_logic11_and0 >> 0) & 0x01), ((u_cla14_or24 >> 0) & 0x01)); - u_cla14_pg_logic12_or0 = (pg_logic(((a >> 12) & 0x01), ((b >> 12) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic12_and0 = (pg_logic(((a >> 12) & 0x01), ((b >> 12) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic12_xor0 = (pg_logic(((a >> 12) & 0x01), ((b >> 12) & 0x01)) >> 2) & 0x01; - u_cla14_xor12 = xor_gate(((u_cla14_pg_logic12_xor0 >> 0) & 0x01), ((u_cla14_or25 >> 0) & 0x01)); - u_cla14_and52 = and_gate(((u_cla14_or25 >> 0) & 0x01), ((u_cla14_pg_logic12_or0 >> 0) & 0x01)); - u_cla14_or26 = or_gate(((u_cla14_pg_logic12_and0 >> 0) & 0x01), ((u_cla14_and52 >> 0) & 0x01)); - u_cla14_pg_logic13_or0 = (pg_logic(((a >> 13) & 0x01), ((b >> 13) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic13_and0 = (pg_logic(((a >> 13) & 0x01), ((b >> 13) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic13_xor0 = (pg_logic(((a >> 13) & 0x01), ((b >> 13) & 0x01)) >> 2) & 0x01; - u_cla14_xor13 = xor_gate(((u_cla14_pg_logic13_xor0 >> 0) & 0x01), ((u_cla14_or26 >> 0) & 0x01)); - u_cla14_and53 = and_gate(((u_cla14_or25 >> 0) & 0x01), ((u_cla14_pg_logic13_or0 >> 0) & 0x01)); - u_cla14_and54 = and_gate(((u_cla14_and53 >> 0) & 0x01), ((u_cla14_pg_logic12_or0 >> 0) & 0x01)); - u_cla14_and55 = and_gate(((u_cla14_pg_logic12_and0 >> 0) & 0x01), ((u_cla14_pg_logic13_or0 >> 0) & 0x01)); - u_cla14_or27 = or_gate(((u_cla14_and54 >> 0) & 0x01), ((u_cla14_and55 >> 0) & 0x01)); - u_cla14_or28 = or_gate(((u_cla14_pg_logic13_and0 >> 0) & 0x01), ((u_cla14_or27 >> 0) & 0x01)); - - u_cla14_out |= ((u_cla14_pg_logic0_xor0 >> 0) & 0x01) << 0; - u_cla14_out |= ((u_cla14_xor1 >> 0) & 0x01) << 1; - u_cla14_out |= ((u_cla14_xor2 >> 0) & 0x01) << 2; - u_cla14_out |= ((u_cla14_xor3 >> 0) & 0x01) << 3; - u_cla14_out |= ((u_cla14_xor4 >> 0) & 0x01) << 4; - u_cla14_out |= ((u_cla14_xor5 >> 0) & 0x01) << 5; - u_cla14_out |= ((u_cla14_xor6 >> 0) & 0x01) << 6; - u_cla14_out |= ((u_cla14_xor7 >> 0) & 0x01) << 7; - u_cla14_out |= ((u_cla14_xor8 >> 0) & 0x01) << 8; - u_cla14_out |= ((u_cla14_xor9 >> 0) & 0x01) << 9; - u_cla14_out |= ((u_cla14_xor10 >> 0) & 0x01) << 10; - u_cla14_out |= ((u_cla14_xor11 >> 0) & 0x01) << 11; - u_cla14_out |= ((u_cla14_xor12 >> 0) & 0x01) << 12; - u_cla14_out |= ((u_cla14_xor13 >> 0) & 0x01) << 13; - u_cla14_out |= ((u_cla14_or28 >> 0) & 0x01) << 14; - return u_cla14_out; -} - -uint64_t h_u_dadda_cla8(uint64_t a, uint64_t b){ - uint64_t h_u_dadda_cla8_out = 0; - uint8_t h_u_dadda_cla8_and_6_0 = 0; - uint8_t h_u_dadda_cla8_and_5_1 = 0; - uint8_t h_u_dadda_cla8_ha0_xor0 = 0; - uint8_t h_u_dadda_cla8_ha0_and0 = 0; - uint8_t h_u_dadda_cla8_and_7_0 = 0; - uint8_t h_u_dadda_cla8_and_6_1 = 0; - uint8_t h_u_dadda_cla8_fa0_xor1 = 0; - uint8_t h_u_dadda_cla8_fa0_or0 = 0; - uint8_t h_u_dadda_cla8_and_5_2 = 0; - uint8_t h_u_dadda_cla8_and_4_3 = 0; - uint8_t h_u_dadda_cla8_ha1_xor0 = 0; - uint8_t h_u_dadda_cla8_ha1_and0 = 0; - uint8_t h_u_dadda_cla8_and_7_1 = 0; - uint8_t h_u_dadda_cla8_fa1_xor1 = 0; - uint8_t h_u_dadda_cla8_fa1_or0 = 0; - uint8_t h_u_dadda_cla8_and_6_2 = 0; - uint8_t h_u_dadda_cla8_and_5_3 = 0; - uint8_t h_u_dadda_cla8_ha2_xor0 = 0; - uint8_t h_u_dadda_cla8_ha2_and0 = 0; - uint8_t h_u_dadda_cla8_and_7_2 = 0; - uint8_t h_u_dadda_cla8_fa2_xor1 = 0; - uint8_t h_u_dadda_cla8_fa2_or0 = 0; - uint8_t h_u_dadda_cla8_and_3_0 = 0; - uint8_t h_u_dadda_cla8_and_2_1 = 0; - uint8_t h_u_dadda_cla8_ha3_xor0 = 0; - uint8_t h_u_dadda_cla8_ha3_and0 = 0; - uint8_t h_u_dadda_cla8_and_4_0 = 0; - uint8_t h_u_dadda_cla8_and_3_1 = 0; - uint8_t h_u_dadda_cla8_fa3_xor1 = 0; - uint8_t h_u_dadda_cla8_fa3_or0 = 0; - uint8_t h_u_dadda_cla8_and_2_2 = 0; - uint8_t h_u_dadda_cla8_and_1_3 = 0; - uint8_t h_u_dadda_cla8_ha4_xor0 = 0; - uint8_t h_u_dadda_cla8_ha4_and0 = 0; - uint8_t h_u_dadda_cla8_and_5_0 = 0; - uint8_t h_u_dadda_cla8_fa4_xor1 = 0; - uint8_t h_u_dadda_cla8_fa4_or0 = 0; - uint8_t h_u_dadda_cla8_and_4_1 = 0; - uint8_t h_u_dadda_cla8_and_3_2 = 0; - uint8_t h_u_dadda_cla8_and_2_3 = 0; - uint8_t h_u_dadda_cla8_fa5_xor1 = 0; - uint8_t h_u_dadda_cla8_fa5_or0 = 0; - uint8_t h_u_dadda_cla8_and_1_4 = 0; - uint8_t h_u_dadda_cla8_and_0_5 = 0; - uint8_t h_u_dadda_cla8_ha5_xor0 = 0; - uint8_t h_u_dadda_cla8_ha5_and0 = 0; - uint8_t h_u_dadda_cla8_fa6_xor1 = 0; - uint8_t h_u_dadda_cla8_fa6_or0 = 0; - uint8_t h_u_dadda_cla8_and_4_2 = 0; - uint8_t h_u_dadda_cla8_and_3_3 = 0; - uint8_t h_u_dadda_cla8_and_2_4 = 0; - uint8_t h_u_dadda_cla8_fa7_xor1 = 0; - uint8_t h_u_dadda_cla8_fa7_or0 = 0; - uint8_t h_u_dadda_cla8_and_1_5 = 0; - uint8_t h_u_dadda_cla8_and_0_6 = 0; - uint8_t h_u_dadda_cla8_fa8_xor1 = 0; - uint8_t h_u_dadda_cla8_fa8_or0 = 0; - uint8_t h_u_dadda_cla8_fa9_xor1 = 0; - uint8_t h_u_dadda_cla8_fa9_or0 = 0; - uint8_t h_u_dadda_cla8_and_3_4 = 0; - uint8_t h_u_dadda_cla8_and_2_5 = 0; - uint8_t h_u_dadda_cla8_and_1_6 = 0; - uint8_t h_u_dadda_cla8_fa10_xor1 = 0; - uint8_t h_u_dadda_cla8_fa10_or0 = 0; - uint8_t h_u_dadda_cla8_and_0_7 = 0; - uint8_t h_u_dadda_cla8_fa11_xor1 = 0; - uint8_t h_u_dadda_cla8_fa11_or0 = 0; - uint8_t h_u_dadda_cla8_fa12_xor1 = 0; - uint8_t h_u_dadda_cla8_fa12_or0 = 0; - uint8_t h_u_dadda_cla8_and_4_4 = 0; - uint8_t h_u_dadda_cla8_and_3_5 = 0; - uint8_t h_u_dadda_cla8_and_2_6 = 0; - uint8_t h_u_dadda_cla8_fa13_xor1 = 0; - uint8_t h_u_dadda_cla8_fa13_or0 = 0; - uint8_t h_u_dadda_cla8_and_1_7 = 0; - uint8_t h_u_dadda_cla8_fa14_xor1 = 0; - uint8_t h_u_dadda_cla8_fa14_or0 = 0; - uint8_t h_u_dadda_cla8_fa15_xor1 = 0; - uint8_t h_u_dadda_cla8_fa15_or0 = 0; - uint8_t h_u_dadda_cla8_and_6_3 = 0; - uint8_t h_u_dadda_cla8_and_5_4 = 0; - uint8_t h_u_dadda_cla8_and_4_5 = 0; - uint8_t h_u_dadda_cla8_fa16_xor1 = 0; - uint8_t h_u_dadda_cla8_fa16_or0 = 0; - uint8_t h_u_dadda_cla8_and_3_6 = 0; - uint8_t h_u_dadda_cla8_and_2_7 = 0; - uint8_t h_u_dadda_cla8_fa17_xor1 = 0; - uint8_t h_u_dadda_cla8_fa17_or0 = 0; - uint8_t h_u_dadda_cla8_fa18_xor1 = 0; - uint8_t h_u_dadda_cla8_fa18_or0 = 0; - uint8_t h_u_dadda_cla8_and_7_3 = 0; - uint8_t h_u_dadda_cla8_and_6_4 = 0; - uint8_t h_u_dadda_cla8_fa19_xor1 = 0; - uint8_t h_u_dadda_cla8_fa19_or0 = 0; - uint8_t h_u_dadda_cla8_and_5_5 = 0; - uint8_t h_u_dadda_cla8_and_4_6 = 0; - uint8_t h_u_dadda_cla8_and_3_7 = 0; - uint8_t h_u_dadda_cla8_fa20_xor1 = 0; - uint8_t h_u_dadda_cla8_fa20_or0 = 0; - uint8_t h_u_dadda_cla8_fa21_xor1 = 0; - uint8_t h_u_dadda_cla8_fa21_or0 = 0; - uint8_t h_u_dadda_cla8_and_7_4 = 0; - uint8_t h_u_dadda_cla8_and_6_5 = 0; - uint8_t h_u_dadda_cla8_and_5_6 = 0; - uint8_t h_u_dadda_cla8_fa22_xor1 = 0; - uint8_t h_u_dadda_cla8_fa22_or0 = 0; - uint8_t h_u_dadda_cla8_and_7_5 = 0; - uint8_t h_u_dadda_cla8_fa23_xor1 = 0; - uint8_t h_u_dadda_cla8_fa23_or0 = 0; - uint8_t h_u_dadda_cla8_and_2_0 = 0; - uint8_t h_u_dadda_cla8_and_1_1 = 0; - uint8_t h_u_dadda_cla8_ha6_xor0 = 0; - uint8_t h_u_dadda_cla8_ha6_and0 = 0; - uint8_t h_u_dadda_cla8_and_1_2 = 0; - uint8_t h_u_dadda_cla8_and_0_3 = 0; - uint8_t h_u_dadda_cla8_fa24_xor1 = 0; - uint8_t h_u_dadda_cla8_fa24_or0 = 0; - uint8_t h_u_dadda_cla8_and_0_4 = 0; - uint8_t h_u_dadda_cla8_fa25_xor1 = 0; - uint8_t h_u_dadda_cla8_fa25_or0 = 0; - uint8_t h_u_dadda_cla8_fa26_xor1 = 0; - uint8_t h_u_dadda_cla8_fa26_or0 = 0; - uint8_t h_u_dadda_cla8_fa27_xor1 = 0; - uint8_t h_u_dadda_cla8_fa27_or0 = 0; - uint8_t h_u_dadda_cla8_fa28_xor1 = 0; - uint8_t h_u_dadda_cla8_fa28_or0 = 0; - uint8_t h_u_dadda_cla8_fa29_xor1 = 0; - uint8_t h_u_dadda_cla8_fa29_or0 = 0; - uint8_t h_u_dadda_cla8_fa30_xor1 = 0; - uint8_t h_u_dadda_cla8_fa30_or0 = 0; - uint8_t h_u_dadda_cla8_fa31_xor1 = 0; - uint8_t h_u_dadda_cla8_fa31_or0 = 0; - uint8_t h_u_dadda_cla8_and_4_7 = 0; - uint8_t h_u_dadda_cla8_fa32_xor1 = 0; - uint8_t h_u_dadda_cla8_fa32_or0 = 0; - uint8_t h_u_dadda_cla8_and_6_6 = 0; - uint8_t h_u_dadda_cla8_and_5_7 = 0; - uint8_t h_u_dadda_cla8_fa33_xor1 = 0; - uint8_t h_u_dadda_cla8_fa33_or0 = 0; - uint8_t h_u_dadda_cla8_and_7_6 = 0; - uint8_t h_u_dadda_cla8_fa34_xor1 = 0; - uint8_t h_u_dadda_cla8_fa34_or0 = 0; - uint8_t h_u_dadda_cla8_and_0_0 = 0; - uint8_t h_u_dadda_cla8_and_1_0 = 0; - uint8_t h_u_dadda_cla8_and_0_2 = 0; - uint8_t h_u_dadda_cla8_and_6_7 = 0; - uint8_t h_u_dadda_cla8_and_0_1 = 0; - uint8_t h_u_dadda_cla8_and_7_7 = 0; - uint64_t h_u_dadda_cla8_u_cla14_a = 0; - uint64_t h_u_dadda_cla8_u_cla14_b = 0; - uint64_t h_u_dadda_cla8_u_cla14_out = 0; - - h_u_dadda_cla8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cla8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cla8_ha0_xor0 = (ha(((h_u_dadda_cla8_and_6_0 >> 0) & 0x01), ((h_u_dadda_cla8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_ha0_and0 = (ha(((h_u_dadda_cla8_and_6_0 >> 0) & 0x01), ((h_u_dadda_cla8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_7_0 = and_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cla8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cla8_fa0_xor1 = (fa(((h_u_dadda_cla8_ha0_and0 >> 0) & 0x01), ((h_u_dadda_cla8_and_7_0 >> 0) & 0x01), ((h_u_dadda_cla8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa0_or0 = (fa(((h_u_dadda_cla8_ha0_and0 >> 0) & 0x01), ((h_u_dadda_cla8_and_7_0 >> 0) & 0x01), ((h_u_dadda_cla8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cla8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cla8_ha1_xor0 = (ha(((h_u_dadda_cla8_and_5_2 >> 0) & 0x01), ((h_u_dadda_cla8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_ha1_and0 = (ha(((h_u_dadda_cla8_and_5_2 >> 0) & 0x01), ((h_u_dadda_cla8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_7_1 = and_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cla8_fa1_xor1 = (fa(((h_u_dadda_cla8_ha1_and0 >> 0) & 0x01), ((h_u_dadda_cla8_fa0_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_7_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa1_or0 = (fa(((h_u_dadda_cla8_ha1_and0 >> 0) & 0x01), ((h_u_dadda_cla8_fa0_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_7_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cla8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cla8_ha2_xor0 = (ha(((h_u_dadda_cla8_and_6_2 >> 0) & 0x01), ((h_u_dadda_cla8_and_5_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_ha2_and0 = (ha(((h_u_dadda_cla8_and_6_2 >> 0) & 0x01), ((h_u_dadda_cla8_and_5_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_7_2 = and_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cla8_fa2_xor1 = (fa(((h_u_dadda_cla8_ha2_and0 >> 0) & 0x01), ((h_u_dadda_cla8_fa1_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_7_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa2_or0 = (fa(((h_u_dadda_cla8_ha2_and0 >> 0) & 0x01), ((h_u_dadda_cla8_fa1_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_7_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cla8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cla8_ha3_xor0 = (ha(((h_u_dadda_cla8_and_3_0 >> 0) & 0x01), ((h_u_dadda_cla8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_ha3_and0 = (ha(((h_u_dadda_cla8_and_3_0 >> 0) & 0x01), ((h_u_dadda_cla8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cla8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cla8_fa3_xor1 = (fa(((h_u_dadda_cla8_ha3_and0 >> 0) & 0x01), ((h_u_dadda_cla8_and_4_0 >> 0) & 0x01), ((h_u_dadda_cla8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa3_or0 = (fa(((h_u_dadda_cla8_ha3_and0 >> 0) & 0x01), ((h_u_dadda_cla8_and_4_0 >> 0) & 0x01), ((h_u_dadda_cla8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cla8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cla8_ha4_xor0 = (ha(((h_u_dadda_cla8_and_2_2 >> 0) & 0x01), ((h_u_dadda_cla8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_ha4_and0 = (ha(((h_u_dadda_cla8_and_2_2 >> 0) & 0x01), ((h_u_dadda_cla8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cla8_fa4_xor1 = (fa(((h_u_dadda_cla8_ha4_and0 >> 0) & 0x01), ((h_u_dadda_cla8_fa3_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_5_0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa4_or0 = (fa(((h_u_dadda_cla8_ha4_and0 >> 0) & 0x01), ((h_u_dadda_cla8_fa3_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_5_0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cla8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cla8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cla8_fa5_xor1 = (fa(((h_u_dadda_cla8_and_4_1 >> 0) & 0x01), ((h_u_dadda_cla8_and_3_2 >> 0) & 0x01), ((h_u_dadda_cla8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa5_or0 = (fa(((h_u_dadda_cla8_and_4_1 >> 0) & 0x01), ((h_u_dadda_cla8_and_3_2 >> 0) & 0x01), ((h_u_dadda_cla8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cla8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cla8_ha5_xor0 = (ha(((h_u_dadda_cla8_and_1_4 >> 0) & 0x01), ((h_u_dadda_cla8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_ha5_and0 = (ha(((h_u_dadda_cla8_and_1_4 >> 0) & 0x01), ((h_u_dadda_cla8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_fa6_xor1 = (fa(((h_u_dadda_cla8_ha5_and0 >> 0) & 0x01), ((h_u_dadda_cla8_fa5_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa6_or0 = (fa(((h_u_dadda_cla8_ha5_and0 >> 0) & 0x01), ((h_u_dadda_cla8_fa5_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cla8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cla8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cla8_fa7_xor1 = (fa(((h_u_dadda_cla8_and_4_2 >> 0) & 0x01), ((h_u_dadda_cla8_and_3_3 >> 0) & 0x01), ((h_u_dadda_cla8_and_2_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa7_or0 = (fa(((h_u_dadda_cla8_and_4_2 >> 0) & 0x01), ((h_u_dadda_cla8_and_3_3 >> 0) & 0x01), ((h_u_dadda_cla8_and_2_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cla8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cla8_fa8_xor1 = (fa(((h_u_dadda_cla8_and_1_5 >> 0) & 0x01), ((h_u_dadda_cla8_and_0_6 >> 0) & 0x01), ((h_u_dadda_cla8_ha0_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa8_or0 = (fa(((h_u_dadda_cla8_and_1_5 >> 0) & 0x01), ((h_u_dadda_cla8_and_0_6 >> 0) & 0x01), ((h_u_dadda_cla8_ha0_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_fa9_xor1 = (fa(((h_u_dadda_cla8_fa8_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa7_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa9_or0 = (fa(((h_u_dadda_cla8_fa8_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa7_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cla8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cla8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cla8_fa10_xor1 = (fa(((h_u_dadda_cla8_and_3_4 >> 0) & 0x01), ((h_u_dadda_cla8_and_2_5 >> 0) & 0x01), ((h_u_dadda_cla8_and_1_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa10_or0 = (fa(((h_u_dadda_cla8_and_3_4 >> 0) & 0x01), ((h_u_dadda_cla8_and_2_5 >> 0) & 0x01), ((h_u_dadda_cla8_and_1_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_0_7 = and_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cla8_fa11_xor1 = (fa(((h_u_dadda_cla8_and_0_7 >> 0) & 0x01), ((h_u_dadda_cla8_fa0_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_ha1_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa11_or0 = (fa(((h_u_dadda_cla8_and_0_7 >> 0) & 0x01), ((h_u_dadda_cla8_fa0_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_ha1_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_fa12_xor1 = (fa(((h_u_dadda_cla8_fa11_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa10_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa9_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa12_or0 = (fa(((h_u_dadda_cla8_fa11_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa10_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa9_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cla8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cla8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cla8_fa13_xor1 = (fa(((h_u_dadda_cla8_and_4_4 >> 0) & 0x01), ((h_u_dadda_cla8_and_3_5 >> 0) & 0x01), ((h_u_dadda_cla8_and_2_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa13_or0 = (fa(((h_u_dadda_cla8_and_4_4 >> 0) & 0x01), ((h_u_dadda_cla8_and_3_5 >> 0) & 0x01), ((h_u_dadda_cla8_and_2_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_1_7 = and_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cla8_fa14_xor1 = (fa(((h_u_dadda_cla8_and_1_7 >> 0) & 0x01), ((h_u_dadda_cla8_fa1_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_ha2_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa14_or0 = (fa(((h_u_dadda_cla8_and_1_7 >> 0) & 0x01), ((h_u_dadda_cla8_fa1_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_ha2_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_fa15_xor1 = (fa(((h_u_dadda_cla8_fa14_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa13_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa12_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa15_or0 = (fa(((h_u_dadda_cla8_fa14_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa13_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa12_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cla8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cla8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cla8_fa16_xor1 = (fa(((h_u_dadda_cla8_and_6_3 >> 0) & 0x01), ((h_u_dadda_cla8_and_5_4 >> 0) & 0x01), ((h_u_dadda_cla8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa16_or0 = (fa(((h_u_dadda_cla8_and_6_3 >> 0) & 0x01), ((h_u_dadda_cla8_and_5_4 >> 0) & 0x01), ((h_u_dadda_cla8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cla8_and_2_7 = and_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cla8_fa17_xor1 = (fa(((h_u_dadda_cla8_and_3_6 >> 0) & 0x01), ((h_u_dadda_cla8_and_2_7 >> 0) & 0x01), ((h_u_dadda_cla8_fa2_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa17_or0 = (fa(((h_u_dadda_cla8_and_3_6 >> 0) & 0x01), ((h_u_dadda_cla8_and_2_7 >> 0) & 0x01), ((h_u_dadda_cla8_fa2_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_fa18_xor1 = (fa(((h_u_dadda_cla8_fa17_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa16_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa15_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa18_or0 = (fa(((h_u_dadda_cla8_fa17_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa16_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa15_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_7_3 = and_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cla8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cla8_fa19_xor1 = (fa(((h_u_dadda_cla8_fa2_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_7_3 >> 0) & 0x01), ((h_u_dadda_cla8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa19_or0 = (fa(((h_u_dadda_cla8_fa2_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_7_3 >> 0) & 0x01), ((h_u_dadda_cla8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cla8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cla8_and_3_7 = and_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cla8_fa20_xor1 = (fa(((h_u_dadda_cla8_and_5_5 >> 0) & 0x01), ((h_u_dadda_cla8_and_4_6 >> 0) & 0x01), ((h_u_dadda_cla8_and_3_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa20_or0 = (fa(((h_u_dadda_cla8_and_5_5 >> 0) & 0x01), ((h_u_dadda_cla8_and_4_6 >> 0) & 0x01), ((h_u_dadda_cla8_and_3_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_fa21_xor1 = (fa(((h_u_dadda_cla8_fa20_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa19_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa18_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa21_or0 = (fa(((h_u_dadda_cla8_fa20_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa19_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa18_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_7_4 = and_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cla8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cla8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cla8_fa22_xor1 = (fa(((h_u_dadda_cla8_and_7_4 >> 0) & 0x01), ((h_u_dadda_cla8_and_6_5 >> 0) & 0x01), ((h_u_dadda_cla8_and_5_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa22_or0 = (fa(((h_u_dadda_cla8_and_7_4 >> 0) & 0x01), ((h_u_dadda_cla8_and_6_5 >> 0) & 0x01), ((h_u_dadda_cla8_and_5_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_7_5 = and_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cla8_fa23_xor1 = (fa(((h_u_dadda_cla8_fa22_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa21_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_7_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa23_or0 = (fa(((h_u_dadda_cla8_fa22_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa21_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_7_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cla8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cla8_ha6_xor0 = (ha(((h_u_dadda_cla8_and_2_0 >> 0) & 0x01), ((h_u_dadda_cla8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_ha6_and0 = (ha(((h_u_dadda_cla8_and_2_0 >> 0) & 0x01), ((h_u_dadda_cla8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cla8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cla8_fa24_xor1 = (fa(((h_u_dadda_cla8_ha6_and0 >> 0) & 0x01), ((h_u_dadda_cla8_and_1_2 >> 0) & 0x01), ((h_u_dadda_cla8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa24_or0 = (fa(((h_u_dadda_cla8_ha6_and0 >> 0) & 0x01), ((h_u_dadda_cla8_and_1_2 >> 0) & 0x01), ((h_u_dadda_cla8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cla8_fa25_xor1 = (fa(((h_u_dadda_cla8_fa24_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_0_4 >> 0) & 0x01), ((h_u_dadda_cla8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa25_or0 = (fa(((h_u_dadda_cla8_fa24_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_0_4 >> 0) & 0x01), ((h_u_dadda_cla8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_fa26_xor1 = (fa(((h_u_dadda_cla8_fa25_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa4_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_fa5_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa26_or0 = (fa(((h_u_dadda_cla8_fa25_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa4_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_fa5_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_fa27_xor1 = (fa(((h_u_dadda_cla8_fa26_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa6_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_fa7_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa27_or0 = (fa(((h_u_dadda_cla8_fa26_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa6_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_fa7_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_fa28_xor1 = (fa(((h_u_dadda_cla8_fa27_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa9_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_fa10_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa28_or0 = (fa(((h_u_dadda_cla8_fa27_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa9_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_fa10_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_fa29_xor1 = (fa(((h_u_dadda_cla8_fa28_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa12_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_fa13_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa29_or0 = (fa(((h_u_dadda_cla8_fa28_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa12_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_fa13_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_fa30_xor1 = (fa(((h_u_dadda_cla8_fa29_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa15_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_fa16_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa30_or0 = (fa(((h_u_dadda_cla8_fa29_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa15_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_fa16_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_fa31_xor1 = (fa(((h_u_dadda_cla8_fa30_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa18_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_fa19_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa31_or0 = (fa(((h_u_dadda_cla8_fa30_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa18_xor1 >> 0) & 0x01), ((h_u_dadda_cla8_fa19_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_4_7 = and_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cla8_fa32_xor1 = (fa(((h_u_dadda_cla8_fa31_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_4_7 >> 0) & 0x01), ((h_u_dadda_cla8_fa21_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa32_or0 = (fa(((h_u_dadda_cla8_fa31_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_4_7 >> 0) & 0x01), ((h_u_dadda_cla8_fa21_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cla8_and_5_7 = and_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cla8_fa33_xor1 = (fa(((h_u_dadda_cla8_fa32_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_6_6 >> 0) & 0x01), ((h_u_dadda_cla8_and_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa33_or0 = (fa(((h_u_dadda_cla8_fa32_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_6_6 >> 0) & 0x01), ((h_u_dadda_cla8_and_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_7_6 = and_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cla8_fa34_xor1 = (fa(((h_u_dadda_cla8_fa33_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa23_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cla8_fa34_or0 = (fa(((h_u_dadda_cla8_fa33_or0 >> 0) & 0x01), ((h_u_dadda_cla8_fa23_or0 >> 0) & 0x01), ((h_u_dadda_cla8_and_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cla8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cla8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cla8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cla8_and_6_7 = and_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cla8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cla8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cla8_u_cla14_a |= ((h_u_dadda_cla8_and_1_0 >> 0) & 0x01) << 0; - h_u_dadda_cla8_u_cla14_a |= ((h_u_dadda_cla8_and_0_2 >> 0) & 0x01) << 1; - h_u_dadda_cla8_u_cla14_a |= ((h_u_dadda_cla8_ha3_xor0 >> 0) & 0x01) << 2; - h_u_dadda_cla8_u_cla14_a |= ((h_u_dadda_cla8_ha4_xor0 >> 0) & 0x01) << 3; - h_u_dadda_cla8_u_cla14_a |= ((h_u_dadda_cla8_ha5_xor0 >> 0) & 0x01) << 4; - h_u_dadda_cla8_u_cla14_a |= ((h_u_dadda_cla8_fa8_xor1 >> 0) & 0x01) << 5; - h_u_dadda_cla8_u_cla14_a |= ((h_u_dadda_cla8_fa11_xor1 >> 0) & 0x01) << 6; - h_u_dadda_cla8_u_cla14_a |= ((h_u_dadda_cla8_fa14_xor1 >> 0) & 0x01) << 7; - h_u_dadda_cla8_u_cla14_a |= ((h_u_dadda_cla8_fa17_xor1 >> 0) & 0x01) << 8; - h_u_dadda_cla8_u_cla14_a |= ((h_u_dadda_cla8_fa20_xor1 >> 0) & 0x01) << 9; - h_u_dadda_cla8_u_cla14_a |= ((h_u_dadda_cla8_fa22_xor1 >> 0) & 0x01) << 10; - h_u_dadda_cla8_u_cla14_a |= ((h_u_dadda_cla8_fa23_xor1 >> 0) & 0x01) << 11; - h_u_dadda_cla8_u_cla14_a |= ((h_u_dadda_cla8_and_6_7 >> 0) & 0x01) << 12; - h_u_dadda_cla8_u_cla14_a |= ((h_u_dadda_cla8_fa34_or0 >> 0) & 0x01) << 13; - h_u_dadda_cla8_u_cla14_b |= ((h_u_dadda_cla8_and_0_1 >> 0) & 0x01) << 0; - h_u_dadda_cla8_u_cla14_b |= ((h_u_dadda_cla8_ha6_xor0 >> 0) & 0x01) << 1; - h_u_dadda_cla8_u_cla14_b |= ((h_u_dadda_cla8_fa24_xor1 >> 0) & 0x01) << 2; - h_u_dadda_cla8_u_cla14_b |= ((h_u_dadda_cla8_fa25_xor1 >> 0) & 0x01) << 3; - h_u_dadda_cla8_u_cla14_b |= ((h_u_dadda_cla8_fa26_xor1 >> 0) & 0x01) << 4; - h_u_dadda_cla8_u_cla14_b |= ((h_u_dadda_cla8_fa27_xor1 >> 0) & 0x01) << 5; - h_u_dadda_cla8_u_cla14_b |= ((h_u_dadda_cla8_fa28_xor1 >> 0) & 0x01) << 6; - h_u_dadda_cla8_u_cla14_b |= ((h_u_dadda_cla8_fa29_xor1 >> 0) & 0x01) << 7; - h_u_dadda_cla8_u_cla14_b |= ((h_u_dadda_cla8_fa30_xor1 >> 0) & 0x01) << 8; - h_u_dadda_cla8_u_cla14_b |= ((h_u_dadda_cla8_fa31_xor1 >> 0) & 0x01) << 9; - h_u_dadda_cla8_u_cla14_b |= ((h_u_dadda_cla8_fa32_xor1 >> 0) & 0x01) << 10; - h_u_dadda_cla8_u_cla14_b |= ((h_u_dadda_cla8_fa33_xor1 >> 0) & 0x01) << 11; - h_u_dadda_cla8_u_cla14_b |= ((h_u_dadda_cla8_fa34_xor1 >> 0) & 0x01) << 12; - h_u_dadda_cla8_u_cla14_b |= ((h_u_dadda_cla8_and_7_7 >> 0) & 0x01) << 13; - h_u_dadda_cla8_u_cla14_out = u_cla14(h_u_dadda_cla8_u_cla14_a, h_u_dadda_cla8_u_cla14_b); - - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_and_0_0 >> 0) & 0x01) << 0; - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_u_cla14_out >> 0) & 0x01) << 1; - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_u_cla14_out >> 1) & 0x01) << 2; - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_u_cla14_out >> 2) & 0x01) << 3; - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_u_cla14_out >> 3) & 0x01) << 4; - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_u_cla14_out >> 4) & 0x01) << 5; - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_u_cla14_out >> 5) & 0x01) << 6; - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_u_cla14_out >> 6) & 0x01) << 7; - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_u_cla14_out >> 7) & 0x01) << 8; - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_u_cla14_out >> 8) & 0x01) << 9; - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_u_cla14_out >> 9) & 0x01) << 10; - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_u_cla14_out >> 10) & 0x01) << 11; - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_u_cla14_out >> 11) & 0x01) << 12; - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_u_cla14_out >> 12) & 0x01) << 13; - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_u_cla14_out >> 13) & 0x01) << 14; - h_u_dadda_cla8_out |= ((h_u_dadda_cla8_u_cla14_out >> 14) & 0x01) << 15; - return h_u_dadda_cla8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == h_u_dadda_cla8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cska4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cska4.c deleted file mode 100644 index 5e4e8d6..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cska4.c +++ /dev/null @@ -1,225 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t mux2to1(uint8_t d0, uint8_t d1, uint8_t sel){ - uint8_t mux2to1_out = 0; - uint8_t mux2to1_and0 = 0; - uint8_t mux2to1_not0 = 0; - uint8_t mux2to1_and1 = 0; - uint8_t mux2to1_xor0 = 0; - - mux2to1_and0 = and_gate(((d1 >> 0) & 0x01), ((sel >> 0) & 0x01)); - mux2to1_not0 = not_gate(((sel >> 0) & 0x01)); - mux2to1_and1 = and_gate(((d0 >> 0) & 0x01), ((mux2to1_not0 >> 0) & 0x01)); - mux2to1_xor0 = xor_gate(((mux2to1_and0 >> 0) & 0x01), ((mux2to1_and1 >> 0) & 0x01)); - - mux2to1_out |= ((mux2to1_xor0 >> 0) & 0x01) << 0; - return mux2to1_out; -} - -uint64_t u_cska6(uint64_t a, uint64_t b){ - uint8_t u_cska6_out = 0; - uint8_t u_cska6_xor0 = 0; - uint8_t u_cska6_ha0_xor0 = 0; - uint8_t u_cska6_ha0_and0 = 0; - uint8_t u_cska6_xor1 = 0; - uint8_t u_cska6_fa0_xor1 = 0; - uint8_t u_cska6_fa0_or0 = 0; - uint8_t u_cska6_xor2 = 0; - uint8_t u_cska6_fa1_xor1 = 0; - uint8_t u_cska6_fa1_or0 = 0; - uint8_t u_cska6_xor3 = 0; - uint8_t u_cska6_fa2_xor1 = 0; - uint8_t u_cska6_fa2_or0 = 0; - uint8_t u_cska6_and_propagate00 = 0; - uint8_t u_cska6_and_propagate01 = 0; - uint8_t u_cska6_and_propagate02 = 0; - uint8_t u_cska6_mux2to10_and1 = 0; - uint8_t u_cska6_xor4 = 0; - uint8_t u_cska6_fa3_xor1 = 0; - uint8_t u_cska6_fa3_or0 = 0; - uint8_t u_cska6_xor5 = 0; - uint8_t u_cska6_fa4_xor1 = 0; - uint8_t u_cska6_fa4_or0 = 0; - uint8_t u_cska6_and_propagate13 = 0; - uint8_t u_cska6_mux2to11_xor0 = 0; - - u_cska6_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - u_cska6_ha0_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_ha0_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor1 = xor_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - u_cska6_fa0_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska6_ha0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa0_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska6_ha0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor2 = xor_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - u_cska6_fa1_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska6_fa0_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa1_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska6_fa0_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor3 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - u_cska6_fa2_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska6_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa2_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska6_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_and_propagate00 = and_gate(((u_cska6_xor0 >> 0) & 0x01), ((u_cska6_xor2 >> 0) & 0x01)); - u_cska6_and_propagate01 = and_gate(((u_cska6_xor1 >> 0) & 0x01), ((u_cska6_xor3 >> 0) & 0x01)); - u_cska6_and_propagate02 = and_gate(((u_cska6_and_propagate00 >> 0) & 0x01), ((u_cska6_and_propagate01 >> 0) & 0x01)); - u_cska6_mux2to10_and1 = (mux2to1(((u_cska6_fa2_or0 >> 0) & 0x01), (0x00), ((u_cska6_and_propagate02 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_xor4 = xor_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - u_cska6_fa3_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska6_mux2to10_and1 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa3_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska6_mux2to10_and1 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor5 = xor_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - u_cska6_fa4_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska6_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa4_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska6_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_and_propagate13 = and_gate(((u_cska6_xor4 >> 0) & 0x01), ((u_cska6_xor5 >> 0) & 0x01)); - u_cska6_mux2to11_xor0 = (mux2to1(((u_cska6_fa4_or0 >> 0) & 0x01), ((u_cska6_mux2to10_and1 >> 0) & 0x01), ((u_cska6_and_propagate13 >> 0) & 0x01)) >> 0) & 0x01; - - u_cska6_out |= ((u_cska6_ha0_xor0 >> 0) & 0x01) << 0; - u_cska6_out |= ((u_cska6_fa0_xor1 >> 0) & 0x01) << 1; - u_cska6_out |= ((u_cska6_fa1_xor1 >> 0) & 0x01) << 2; - u_cska6_out |= ((u_cska6_fa2_xor1 >> 0) & 0x01) << 3; - u_cska6_out |= ((u_cska6_fa3_xor1 >> 0) & 0x01) << 4; - u_cska6_out |= ((u_cska6_fa4_xor1 >> 0) & 0x01) << 5; - u_cska6_out |= ((u_cska6_mux2to11_xor0 >> 0) & 0x01) << 6; - return u_cska6_out; -} - -uint64_t h_u_dadda_cska4(uint64_t a, uint64_t b){ - uint8_t h_u_dadda_cska4_out = 0; - uint8_t h_u_dadda_cska4_and_3_0 = 0; - uint8_t h_u_dadda_cska4_and_2_1 = 0; - uint8_t h_u_dadda_cska4_ha0_xor0 = 0; - uint8_t h_u_dadda_cska4_ha0_and0 = 0; - uint8_t h_u_dadda_cska4_and_3_1 = 0; - uint8_t h_u_dadda_cska4_ha1_xor0 = 0; - uint8_t h_u_dadda_cska4_ha1_and0 = 0; - uint8_t h_u_dadda_cska4_and_2_0 = 0; - uint8_t h_u_dadda_cska4_and_1_1 = 0; - uint8_t h_u_dadda_cska4_ha2_xor0 = 0; - uint8_t h_u_dadda_cska4_ha2_and0 = 0; - uint8_t h_u_dadda_cska4_and_1_2 = 0; - uint8_t h_u_dadda_cska4_and_0_3 = 0; - uint8_t h_u_dadda_cska4_fa0_xor1 = 0; - uint8_t h_u_dadda_cska4_fa0_or0 = 0; - uint8_t h_u_dadda_cska4_and_2_2 = 0; - uint8_t h_u_dadda_cska4_and_1_3 = 0; - uint8_t h_u_dadda_cska4_fa1_xor1 = 0; - uint8_t h_u_dadda_cska4_fa1_or0 = 0; - uint8_t h_u_dadda_cska4_and_3_2 = 0; - uint8_t h_u_dadda_cska4_fa2_xor1 = 0; - uint8_t h_u_dadda_cska4_fa2_or0 = 0; - uint8_t h_u_dadda_cska4_and_0_0 = 0; - uint8_t h_u_dadda_cska4_and_1_0 = 0; - uint8_t h_u_dadda_cska4_and_0_2 = 0; - uint8_t h_u_dadda_cska4_and_2_3 = 0; - uint8_t h_u_dadda_cska4_and_0_1 = 0; - uint8_t h_u_dadda_cska4_and_3_3 = 0; - uint64_t h_u_dadda_cska4_u_cska6_a = 0; - uint64_t h_u_dadda_cska4_u_cska6_b = 0; - uint64_t h_u_dadda_cska4_u_cska6_out = 0; - - h_u_dadda_cska4_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cska4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cska4_ha0_xor0 = (ha(((h_u_dadda_cska4_and_3_0 >> 0) & 0x01), ((h_u_dadda_cska4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska4_ha0_and0 = (ha(((h_u_dadda_cska4_and_3_0 >> 0) & 0x01), ((h_u_dadda_cska4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska4_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cska4_ha1_xor0 = (ha(((h_u_dadda_cska4_ha0_and0 >> 0) & 0x01), ((h_u_dadda_cska4_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska4_ha1_and0 = (ha(((h_u_dadda_cska4_ha0_and0 >> 0) & 0x01), ((h_u_dadda_cska4_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cska4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cska4_ha2_xor0 = (ha(((h_u_dadda_cska4_and_2_0 >> 0) & 0x01), ((h_u_dadda_cska4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska4_ha2_and0 = (ha(((h_u_dadda_cska4_and_2_0 >> 0) & 0x01), ((h_u_dadda_cska4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cska4_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cska4_fa0_xor1 = (fa(((h_u_dadda_cska4_ha2_and0 >> 0) & 0x01), ((h_u_dadda_cska4_and_1_2 >> 0) & 0x01), ((h_u_dadda_cska4_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska4_fa0_or0 = (fa(((h_u_dadda_cska4_ha2_and0 >> 0) & 0x01), ((h_u_dadda_cska4_and_1_2 >> 0) & 0x01), ((h_u_dadda_cska4_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cska4_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cska4_fa1_xor1 = (fa(((h_u_dadda_cska4_fa0_or0 >> 0) & 0x01), ((h_u_dadda_cska4_and_2_2 >> 0) & 0x01), ((h_u_dadda_cska4_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska4_fa1_or0 = (fa(((h_u_dadda_cska4_fa0_or0 >> 0) & 0x01), ((h_u_dadda_cska4_and_2_2 >> 0) & 0x01), ((h_u_dadda_cska4_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska4_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cska4_fa2_xor1 = (fa(((h_u_dadda_cska4_fa1_or0 >> 0) & 0x01), ((h_u_dadda_cska4_ha1_and0 >> 0) & 0x01), ((h_u_dadda_cska4_and_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska4_fa2_or0 = (fa(((h_u_dadda_cska4_fa1_or0 >> 0) & 0x01), ((h_u_dadda_cska4_ha1_and0 >> 0) & 0x01), ((h_u_dadda_cska4_and_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cska4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cska4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cska4_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cska4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cska4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cska4_u_cska6_a |= ((h_u_dadda_cska4_and_1_0 >> 0) & 0x01) << 0; - h_u_dadda_cska4_u_cska6_a |= ((h_u_dadda_cska4_and_0_2 >> 0) & 0x01) << 1; - h_u_dadda_cska4_u_cska6_a |= ((h_u_dadda_cska4_ha0_xor0 >> 0) & 0x01) << 2; - h_u_dadda_cska4_u_cska6_a |= ((h_u_dadda_cska4_ha1_xor0 >> 0) & 0x01) << 3; - h_u_dadda_cska4_u_cska6_a |= ((h_u_dadda_cska4_and_2_3 >> 0) & 0x01) << 4; - h_u_dadda_cska4_u_cska6_a |= ((h_u_dadda_cska4_fa2_or0 >> 0) & 0x01) << 5; - h_u_dadda_cska4_u_cska6_b |= ((h_u_dadda_cska4_and_0_1 >> 0) & 0x01) << 0; - h_u_dadda_cska4_u_cska6_b |= ((h_u_dadda_cska4_ha2_xor0 >> 0) & 0x01) << 1; - h_u_dadda_cska4_u_cska6_b |= ((h_u_dadda_cska4_fa0_xor1 >> 0) & 0x01) << 2; - h_u_dadda_cska4_u_cska6_b |= ((h_u_dadda_cska4_fa1_xor1 >> 0) & 0x01) << 3; - h_u_dadda_cska4_u_cska6_b |= ((h_u_dadda_cska4_fa2_xor1 >> 0) & 0x01) << 4; - h_u_dadda_cska4_u_cska6_b |= ((h_u_dadda_cska4_and_3_3 >> 0) & 0x01) << 5; - h_u_dadda_cska4_u_cska6_out = u_cska6(h_u_dadda_cska4_u_cska6_a, h_u_dadda_cska4_u_cska6_b); - - h_u_dadda_cska4_out |= ((h_u_dadda_cska4_and_0_0 >> 0) & 0x01) << 0; - h_u_dadda_cska4_out |= ((h_u_dadda_cska4_u_cska6_out >> 0) & 0x01) << 1; - h_u_dadda_cska4_out |= ((h_u_dadda_cska4_u_cska6_out >> 1) & 0x01) << 2; - h_u_dadda_cska4_out |= ((h_u_dadda_cska4_u_cska6_out >> 2) & 0x01) << 3; - h_u_dadda_cska4_out |= ((h_u_dadda_cska4_u_cska6_out >> 3) & 0x01) << 4; - h_u_dadda_cska4_out |= ((h_u_dadda_cska4_u_cska6_out >> 4) & 0x01) << 5; - h_u_dadda_cska4_out |= ((h_u_dadda_cska4_u_cska6_out >> 5) & 0x01) << 6; - h_u_dadda_cska4_out |= ((h_u_dadda_cska4_u_cska6_out >> 6) & 0x01) << 7; - return h_u_dadda_cska4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == h_u_dadda_cska4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cska8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cska8.c deleted file mode 100644 index 5b5a23b..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_cska8.c +++ /dev/null @@ -1,561 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t mux2to1(uint8_t d0, uint8_t d1, uint8_t sel){ - uint8_t mux2to1_out = 0; - uint8_t mux2to1_and0 = 0; - uint8_t mux2to1_not0 = 0; - uint8_t mux2to1_and1 = 0; - uint8_t mux2to1_xor0 = 0; - - mux2to1_and0 = and_gate(((d1 >> 0) & 0x01), ((sel >> 0) & 0x01)); - mux2to1_not0 = not_gate(((sel >> 0) & 0x01)); - mux2to1_and1 = and_gate(((d0 >> 0) & 0x01), ((mux2to1_not0 >> 0) & 0x01)); - mux2to1_xor0 = xor_gate(((mux2to1_and0 >> 0) & 0x01), ((mux2to1_and1 >> 0) & 0x01)); - - mux2to1_out |= ((mux2to1_xor0 >> 0) & 0x01) << 0; - return mux2to1_out; -} - -uint64_t u_cska14(uint64_t a, uint64_t b){ - uint64_t u_cska14_out = 0; - uint8_t u_cska14_xor0 = 0; - uint8_t u_cska14_ha0_xor0 = 0; - uint8_t u_cska14_ha0_and0 = 0; - uint8_t u_cska14_xor1 = 0; - uint8_t u_cska14_fa0_xor1 = 0; - uint8_t u_cska14_fa0_or0 = 0; - uint8_t u_cska14_xor2 = 0; - uint8_t u_cska14_fa1_xor1 = 0; - uint8_t u_cska14_fa1_or0 = 0; - uint8_t u_cska14_xor3 = 0; - uint8_t u_cska14_fa2_xor1 = 0; - uint8_t u_cska14_fa2_or0 = 0; - uint8_t u_cska14_and_propagate00 = 0; - uint8_t u_cska14_and_propagate01 = 0; - uint8_t u_cska14_and_propagate02 = 0; - uint8_t u_cska14_mux2to10_and1 = 0; - uint8_t u_cska14_xor4 = 0; - uint8_t u_cska14_fa3_xor1 = 0; - uint8_t u_cska14_fa3_or0 = 0; - uint8_t u_cska14_xor5 = 0; - uint8_t u_cska14_fa4_xor1 = 0; - uint8_t u_cska14_fa4_or0 = 0; - uint8_t u_cska14_xor6 = 0; - uint8_t u_cska14_fa5_xor1 = 0; - uint8_t u_cska14_fa5_or0 = 0; - uint8_t u_cska14_xor7 = 0; - uint8_t u_cska14_fa6_xor1 = 0; - uint8_t u_cska14_fa6_or0 = 0; - uint8_t u_cska14_and_propagate13 = 0; - uint8_t u_cska14_and_propagate14 = 0; - uint8_t u_cska14_and_propagate15 = 0; - uint8_t u_cska14_mux2to11_xor0 = 0; - uint8_t u_cska14_xor8 = 0; - uint8_t u_cska14_fa7_xor1 = 0; - uint8_t u_cska14_fa7_or0 = 0; - uint8_t u_cska14_xor9 = 0; - uint8_t u_cska14_fa8_xor1 = 0; - uint8_t u_cska14_fa8_or0 = 0; - uint8_t u_cska14_xor10 = 0; - uint8_t u_cska14_fa9_xor1 = 0; - uint8_t u_cska14_fa9_or0 = 0; - uint8_t u_cska14_xor11 = 0; - uint8_t u_cska14_fa10_xor1 = 0; - uint8_t u_cska14_fa10_or0 = 0; - uint8_t u_cska14_and_propagate26 = 0; - uint8_t u_cska14_and_propagate27 = 0; - uint8_t u_cska14_and_propagate28 = 0; - uint8_t u_cska14_mux2to12_xor0 = 0; - uint8_t u_cska14_xor12 = 0; - uint8_t u_cska14_fa11_xor1 = 0; - uint8_t u_cska14_fa11_or0 = 0; - uint8_t u_cska14_xor13 = 0; - uint8_t u_cska14_fa12_xor1 = 0; - uint8_t u_cska14_fa12_or0 = 0; - uint8_t u_cska14_and_propagate39 = 0; - uint8_t u_cska14_mux2to13_xor0 = 0; - - u_cska14_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - u_cska14_ha0_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_ha0_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor1 = xor_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - u_cska14_fa0_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska14_ha0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa0_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska14_ha0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor2 = xor_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - u_cska14_fa1_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska14_fa0_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa1_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska14_fa0_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor3 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - u_cska14_fa2_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska14_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa2_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska14_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate00 = and_gate(((u_cska14_xor0 >> 0) & 0x01), ((u_cska14_xor2 >> 0) & 0x01)); - u_cska14_and_propagate01 = and_gate(((u_cska14_xor1 >> 0) & 0x01), ((u_cska14_xor3 >> 0) & 0x01)); - u_cska14_and_propagate02 = and_gate(((u_cska14_and_propagate00 >> 0) & 0x01), ((u_cska14_and_propagate01 >> 0) & 0x01)); - u_cska14_mux2to10_and1 = (mux2to1(((u_cska14_fa2_or0 >> 0) & 0x01), (0x00), ((u_cska14_and_propagate02 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_xor4 = xor_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - u_cska14_fa3_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska14_mux2to10_and1 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa3_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska14_mux2to10_and1 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor5 = xor_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - u_cska14_fa4_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska14_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa4_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska14_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor6 = xor_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - u_cska14_fa5_xor1 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_cska14_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa5_or0 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_cska14_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor7 = xor_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - u_cska14_fa6_xor1 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_cska14_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa6_or0 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_cska14_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate13 = and_gate(((u_cska14_xor4 >> 0) & 0x01), ((u_cska14_xor6 >> 0) & 0x01)); - u_cska14_and_propagate14 = and_gate(((u_cska14_xor5 >> 0) & 0x01), ((u_cska14_xor7 >> 0) & 0x01)); - u_cska14_and_propagate15 = and_gate(((u_cska14_and_propagate13 >> 0) & 0x01), ((u_cska14_and_propagate14 >> 0) & 0x01)); - u_cska14_mux2to11_xor0 = (mux2to1(((u_cska14_fa6_or0 >> 0) & 0x01), ((u_cska14_mux2to10_and1 >> 0) & 0x01), ((u_cska14_and_propagate15 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_xor8 = xor_gate(((a >> 8) & 0x01), ((b >> 8) & 0x01)); - u_cska14_fa7_xor1 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_cska14_mux2to11_xor0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa7_or0 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_cska14_mux2to11_xor0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor9 = xor_gate(((a >> 9) & 0x01), ((b >> 9) & 0x01)); - u_cska14_fa8_xor1 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_cska14_fa7_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa8_or0 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_cska14_fa7_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor10 = xor_gate(((a >> 10) & 0x01), ((b >> 10) & 0x01)); - u_cska14_fa9_xor1 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_cska14_fa8_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa9_or0 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_cska14_fa8_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor11 = xor_gate(((a >> 11) & 0x01), ((b >> 11) & 0x01)); - u_cska14_fa10_xor1 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_cska14_fa9_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa10_or0 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_cska14_fa9_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate26 = and_gate(((u_cska14_xor8 >> 0) & 0x01), ((u_cska14_xor10 >> 0) & 0x01)); - u_cska14_and_propagate27 = and_gate(((u_cska14_xor9 >> 0) & 0x01), ((u_cska14_xor11 >> 0) & 0x01)); - u_cska14_and_propagate28 = and_gate(((u_cska14_and_propagate26 >> 0) & 0x01), ((u_cska14_and_propagate27 >> 0) & 0x01)); - u_cska14_mux2to12_xor0 = (mux2to1(((u_cska14_fa10_or0 >> 0) & 0x01), ((u_cska14_mux2to11_xor0 >> 0) & 0x01), ((u_cska14_and_propagate28 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_xor12 = xor_gate(((a >> 12) & 0x01), ((b >> 12) & 0x01)); - u_cska14_fa11_xor1 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_cska14_mux2to12_xor0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa11_or0 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_cska14_mux2to12_xor0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor13 = xor_gate(((a >> 13) & 0x01), ((b >> 13) & 0x01)); - u_cska14_fa12_xor1 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_cska14_fa11_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa12_or0 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_cska14_fa11_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate39 = and_gate(((u_cska14_xor12 >> 0) & 0x01), ((u_cska14_xor13 >> 0) & 0x01)); - u_cska14_mux2to13_xor0 = (mux2to1(((u_cska14_fa12_or0 >> 0) & 0x01), ((u_cska14_mux2to12_xor0 >> 0) & 0x01), ((u_cska14_and_propagate39 >> 0) & 0x01)) >> 0) & 0x01; - - u_cska14_out |= ((u_cska14_ha0_xor0 >> 0) & 0x01) << 0; - u_cska14_out |= ((u_cska14_fa0_xor1 >> 0) & 0x01) << 1; - u_cska14_out |= ((u_cska14_fa1_xor1 >> 0) & 0x01) << 2; - u_cska14_out |= ((u_cska14_fa2_xor1 >> 0) & 0x01) << 3; - u_cska14_out |= ((u_cska14_fa3_xor1 >> 0) & 0x01) << 4; - u_cska14_out |= ((u_cska14_fa4_xor1 >> 0) & 0x01) << 5; - u_cska14_out |= ((u_cska14_fa5_xor1 >> 0) & 0x01) << 6; - u_cska14_out |= ((u_cska14_fa6_xor1 >> 0) & 0x01) << 7; - u_cska14_out |= ((u_cska14_fa7_xor1 >> 0) & 0x01) << 8; - u_cska14_out |= ((u_cska14_fa8_xor1 >> 0) & 0x01) << 9; - u_cska14_out |= ((u_cska14_fa9_xor1 >> 0) & 0x01) << 10; - u_cska14_out |= ((u_cska14_fa10_xor1 >> 0) & 0x01) << 11; - u_cska14_out |= ((u_cska14_fa11_xor1 >> 0) & 0x01) << 12; - u_cska14_out |= ((u_cska14_fa12_xor1 >> 0) & 0x01) << 13; - u_cska14_out |= ((u_cska14_mux2to13_xor0 >> 0) & 0x01) << 14; - return u_cska14_out; -} - -uint64_t h_u_dadda_cska8(uint64_t a, uint64_t b){ - uint64_t h_u_dadda_cska8_out = 0; - uint8_t h_u_dadda_cska8_and_6_0 = 0; - uint8_t h_u_dadda_cska8_and_5_1 = 0; - uint8_t h_u_dadda_cska8_ha0_xor0 = 0; - uint8_t h_u_dadda_cska8_ha0_and0 = 0; - uint8_t h_u_dadda_cska8_and_7_0 = 0; - uint8_t h_u_dadda_cska8_and_6_1 = 0; - uint8_t h_u_dadda_cska8_fa0_xor1 = 0; - uint8_t h_u_dadda_cska8_fa0_or0 = 0; - uint8_t h_u_dadda_cska8_and_5_2 = 0; - uint8_t h_u_dadda_cska8_and_4_3 = 0; - uint8_t h_u_dadda_cska8_ha1_xor0 = 0; - uint8_t h_u_dadda_cska8_ha1_and0 = 0; - uint8_t h_u_dadda_cska8_and_7_1 = 0; - uint8_t h_u_dadda_cska8_fa1_xor1 = 0; - uint8_t h_u_dadda_cska8_fa1_or0 = 0; - uint8_t h_u_dadda_cska8_and_6_2 = 0; - uint8_t h_u_dadda_cska8_and_5_3 = 0; - uint8_t h_u_dadda_cska8_ha2_xor0 = 0; - uint8_t h_u_dadda_cska8_ha2_and0 = 0; - uint8_t h_u_dadda_cska8_and_7_2 = 0; - uint8_t h_u_dadda_cska8_fa2_xor1 = 0; - uint8_t h_u_dadda_cska8_fa2_or0 = 0; - uint8_t h_u_dadda_cska8_and_3_0 = 0; - uint8_t h_u_dadda_cska8_and_2_1 = 0; - uint8_t h_u_dadda_cska8_ha3_xor0 = 0; - uint8_t h_u_dadda_cska8_ha3_and0 = 0; - uint8_t h_u_dadda_cska8_and_4_0 = 0; - uint8_t h_u_dadda_cska8_and_3_1 = 0; - uint8_t h_u_dadda_cska8_fa3_xor1 = 0; - uint8_t h_u_dadda_cska8_fa3_or0 = 0; - uint8_t h_u_dadda_cska8_and_2_2 = 0; - uint8_t h_u_dadda_cska8_and_1_3 = 0; - uint8_t h_u_dadda_cska8_ha4_xor0 = 0; - uint8_t h_u_dadda_cska8_ha4_and0 = 0; - uint8_t h_u_dadda_cska8_and_5_0 = 0; - uint8_t h_u_dadda_cska8_fa4_xor1 = 0; - uint8_t h_u_dadda_cska8_fa4_or0 = 0; - uint8_t h_u_dadda_cska8_and_4_1 = 0; - uint8_t h_u_dadda_cska8_and_3_2 = 0; - uint8_t h_u_dadda_cska8_and_2_3 = 0; - uint8_t h_u_dadda_cska8_fa5_xor1 = 0; - uint8_t h_u_dadda_cska8_fa5_or0 = 0; - uint8_t h_u_dadda_cska8_and_1_4 = 0; - uint8_t h_u_dadda_cska8_and_0_5 = 0; - uint8_t h_u_dadda_cska8_ha5_xor0 = 0; - uint8_t h_u_dadda_cska8_ha5_and0 = 0; - uint8_t h_u_dadda_cska8_fa6_xor1 = 0; - uint8_t h_u_dadda_cska8_fa6_or0 = 0; - uint8_t h_u_dadda_cska8_and_4_2 = 0; - uint8_t h_u_dadda_cska8_and_3_3 = 0; - uint8_t h_u_dadda_cska8_and_2_4 = 0; - uint8_t h_u_dadda_cska8_fa7_xor1 = 0; - uint8_t h_u_dadda_cska8_fa7_or0 = 0; - uint8_t h_u_dadda_cska8_and_1_5 = 0; - uint8_t h_u_dadda_cska8_and_0_6 = 0; - uint8_t h_u_dadda_cska8_fa8_xor1 = 0; - uint8_t h_u_dadda_cska8_fa8_or0 = 0; - uint8_t h_u_dadda_cska8_fa9_xor1 = 0; - uint8_t h_u_dadda_cska8_fa9_or0 = 0; - uint8_t h_u_dadda_cska8_and_3_4 = 0; - uint8_t h_u_dadda_cska8_and_2_5 = 0; - uint8_t h_u_dadda_cska8_and_1_6 = 0; - uint8_t h_u_dadda_cska8_fa10_xor1 = 0; - uint8_t h_u_dadda_cska8_fa10_or0 = 0; - uint8_t h_u_dadda_cska8_and_0_7 = 0; - uint8_t h_u_dadda_cska8_fa11_xor1 = 0; - uint8_t h_u_dadda_cska8_fa11_or0 = 0; - uint8_t h_u_dadda_cska8_fa12_xor1 = 0; - uint8_t h_u_dadda_cska8_fa12_or0 = 0; - uint8_t h_u_dadda_cska8_and_4_4 = 0; - uint8_t h_u_dadda_cska8_and_3_5 = 0; - uint8_t h_u_dadda_cska8_and_2_6 = 0; - uint8_t h_u_dadda_cska8_fa13_xor1 = 0; - uint8_t h_u_dadda_cska8_fa13_or0 = 0; - uint8_t h_u_dadda_cska8_and_1_7 = 0; - uint8_t h_u_dadda_cska8_fa14_xor1 = 0; - uint8_t h_u_dadda_cska8_fa14_or0 = 0; - uint8_t h_u_dadda_cska8_fa15_xor1 = 0; - uint8_t h_u_dadda_cska8_fa15_or0 = 0; - uint8_t h_u_dadda_cska8_and_6_3 = 0; - uint8_t h_u_dadda_cska8_and_5_4 = 0; - uint8_t h_u_dadda_cska8_and_4_5 = 0; - uint8_t h_u_dadda_cska8_fa16_xor1 = 0; - uint8_t h_u_dadda_cska8_fa16_or0 = 0; - uint8_t h_u_dadda_cska8_and_3_6 = 0; - uint8_t h_u_dadda_cska8_and_2_7 = 0; - uint8_t h_u_dadda_cska8_fa17_xor1 = 0; - uint8_t h_u_dadda_cska8_fa17_or0 = 0; - uint8_t h_u_dadda_cska8_fa18_xor1 = 0; - uint8_t h_u_dadda_cska8_fa18_or0 = 0; - uint8_t h_u_dadda_cska8_and_7_3 = 0; - uint8_t h_u_dadda_cska8_and_6_4 = 0; - uint8_t h_u_dadda_cska8_fa19_xor1 = 0; - uint8_t h_u_dadda_cska8_fa19_or0 = 0; - uint8_t h_u_dadda_cska8_and_5_5 = 0; - uint8_t h_u_dadda_cska8_and_4_6 = 0; - uint8_t h_u_dadda_cska8_and_3_7 = 0; - uint8_t h_u_dadda_cska8_fa20_xor1 = 0; - uint8_t h_u_dadda_cska8_fa20_or0 = 0; - uint8_t h_u_dadda_cska8_fa21_xor1 = 0; - uint8_t h_u_dadda_cska8_fa21_or0 = 0; - uint8_t h_u_dadda_cska8_and_7_4 = 0; - uint8_t h_u_dadda_cska8_and_6_5 = 0; - uint8_t h_u_dadda_cska8_and_5_6 = 0; - uint8_t h_u_dadda_cska8_fa22_xor1 = 0; - uint8_t h_u_dadda_cska8_fa22_or0 = 0; - uint8_t h_u_dadda_cska8_and_7_5 = 0; - uint8_t h_u_dadda_cska8_fa23_xor1 = 0; - uint8_t h_u_dadda_cska8_fa23_or0 = 0; - uint8_t h_u_dadda_cska8_and_2_0 = 0; - uint8_t h_u_dadda_cska8_and_1_1 = 0; - uint8_t h_u_dadda_cska8_ha6_xor0 = 0; - uint8_t h_u_dadda_cska8_ha6_and0 = 0; - uint8_t h_u_dadda_cska8_and_1_2 = 0; - uint8_t h_u_dadda_cska8_and_0_3 = 0; - uint8_t h_u_dadda_cska8_fa24_xor1 = 0; - uint8_t h_u_dadda_cska8_fa24_or0 = 0; - uint8_t h_u_dadda_cska8_and_0_4 = 0; - uint8_t h_u_dadda_cska8_fa25_xor1 = 0; - uint8_t h_u_dadda_cska8_fa25_or0 = 0; - uint8_t h_u_dadda_cska8_fa26_xor1 = 0; - uint8_t h_u_dadda_cska8_fa26_or0 = 0; - uint8_t h_u_dadda_cska8_fa27_xor1 = 0; - uint8_t h_u_dadda_cska8_fa27_or0 = 0; - uint8_t h_u_dadda_cska8_fa28_xor1 = 0; - uint8_t h_u_dadda_cska8_fa28_or0 = 0; - uint8_t h_u_dadda_cska8_fa29_xor1 = 0; - uint8_t h_u_dadda_cska8_fa29_or0 = 0; - uint8_t h_u_dadda_cska8_fa30_xor1 = 0; - uint8_t h_u_dadda_cska8_fa30_or0 = 0; - uint8_t h_u_dadda_cska8_fa31_xor1 = 0; - uint8_t h_u_dadda_cska8_fa31_or0 = 0; - uint8_t h_u_dadda_cska8_and_4_7 = 0; - uint8_t h_u_dadda_cska8_fa32_xor1 = 0; - uint8_t h_u_dadda_cska8_fa32_or0 = 0; - uint8_t h_u_dadda_cska8_and_6_6 = 0; - uint8_t h_u_dadda_cska8_and_5_7 = 0; - uint8_t h_u_dadda_cska8_fa33_xor1 = 0; - uint8_t h_u_dadda_cska8_fa33_or0 = 0; - uint8_t h_u_dadda_cska8_and_7_6 = 0; - uint8_t h_u_dadda_cska8_fa34_xor1 = 0; - uint8_t h_u_dadda_cska8_fa34_or0 = 0; - uint8_t h_u_dadda_cska8_and_0_0 = 0; - uint8_t h_u_dadda_cska8_and_1_0 = 0; - uint8_t h_u_dadda_cska8_and_0_2 = 0; - uint8_t h_u_dadda_cska8_and_6_7 = 0; - uint8_t h_u_dadda_cska8_and_0_1 = 0; - uint8_t h_u_dadda_cska8_and_7_7 = 0; - uint64_t h_u_dadda_cska8_u_cska14_a = 0; - uint64_t h_u_dadda_cska8_u_cska14_b = 0; - uint64_t h_u_dadda_cska8_u_cska14_out = 0; - - h_u_dadda_cska8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cska8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cska8_ha0_xor0 = (ha(((h_u_dadda_cska8_and_6_0 >> 0) & 0x01), ((h_u_dadda_cska8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_ha0_and0 = (ha(((h_u_dadda_cska8_and_6_0 >> 0) & 0x01), ((h_u_dadda_cska8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_7_0 = and_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cska8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cska8_fa0_xor1 = (fa(((h_u_dadda_cska8_ha0_and0 >> 0) & 0x01), ((h_u_dadda_cska8_and_7_0 >> 0) & 0x01), ((h_u_dadda_cska8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa0_or0 = (fa(((h_u_dadda_cska8_ha0_and0 >> 0) & 0x01), ((h_u_dadda_cska8_and_7_0 >> 0) & 0x01), ((h_u_dadda_cska8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cska8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cska8_ha1_xor0 = (ha(((h_u_dadda_cska8_and_5_2 >> 0) & 0x01), ((h_u_dadda_cska8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_ha1_and0 = (ha(((h_u_dadda_cska8_and_5_2 >> 0) & 0x01), ((h_u_dadda_cska8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_7_1 = and_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cska8_fa1_xor1 = (fa(((h_u_dadda_cska8_ha1_and0 >> 0) & 0x01), ((h_u_dadda_cska8_fa0_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_7_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa1_or0 = (fa(((h_u_dadda_cska8_ha1_and0 >> 0) & 0x01), ((h_u_dadda_cska8_fa0_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_7_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cska8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cska8_ha2_xor0 = (ha(((h_u_dadda_cska8_and_6_2 >> 0) & 0x01), ((h_u_dadda_cska8_and_5_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_ha2_and0 = (ha(((h_u_dadda_cska8_and_6_2 >> 0) & 0x01), ((h_u_dadda_cska8_and_5_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_7_2 = and_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cska8_fa2_xor1 = (fa(((h_u_dadda_cska8_ha2_and0 >> 0) & 0x01), ((h_u_dadda_cska8_fa1_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_7_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa2_or0 = (fa(((h_u_dadda_cska8_ha2_and0 >> 0) & 0x01), ((h_u_dadda_cska8_fa1_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_7_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cska8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cska8_ha3_xor0 = (ha(((h_u_dadda_cska8_and_3_0 >> 0) & 0x01), ((h_u_dadda_cska8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_ha3_and0 = (ha(((h_u_dadda_cska8_and_3_0 >> 0) & 0x01), ((h_u_dadda_cska8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cska8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cska8_fa3_xor1 = (fa(((h_u_dadda_cska8_ha3_and0 >> 0) & 0x01), ((h_u_dadda_cska8_and_4_0 >> 0) & 0x01), ((h_u_dadda_cska8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa3_or0 = (fa(((h_u_dadda_cska8_ha3_and0 >> 0) & 0x01), ((h_u_dadda_cska8_and_4_0 >> 0) & 0x01), ((h_u_dadda_cska8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cska8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cska8_ha4_xor0 = (ha(((h_u_dadda_cska8_and_2_2 >> 0) & 0x01), ((h_u_dadda_cska8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_ha4_and0 = (ha(((h_u_dadda_cska8_and_2_2 >> 0) & 0x01), ((h_u_dadda_cska8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cska8_fa4_xor1 = (fa(((h_u_dadda_cska8_ha4_and0 >> 0) & 0x01), ((h_u_dadda_cska8_fa3_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_5_0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa4_or0 = (fa(((h_u_dadda_cska8_ha4_and0 >> 0) & 0x01), ((h_u_dadda_cska8_fa3_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_5_0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cska8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cska8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cska8_fa5_xor1 = (fa(((h_u_dadda_cska8_and_4_1 >> 0) & 0x01), ((h_u_dadda_cska8_and_3_2 >> 0) & 0x01), ((h_u_dadda_cska8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa5_or0 = (fa(((h_u_dadda_cska8_and_4_1 >> 0) & 0x01), ((h_u_dadda_cska8_and_3_2 >> 0) & 0x01), ((h_u_dadda_cska8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cska8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cska8_ha5_xor0 = (ha(((h_u_dadda_cska8_and_1_4 >> 0) & 0x01), ((h_u_dadda_cska8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_ha5_and0 = (ha(((h_u_dadda_cska8_and_1_4 >> 0) & 0x01), ((h_u_dadda_cska8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_fa6_xor1 = (fa(((h_u_dadda_cska8_ha5_and0 >> 0) & 0x01), ((h_u_dadda_cska8_fa5_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa6_or0 = (fa(((h_u_dadda_cska8_ha5_and0 >> 0) & 0x01), ((h_u_dadda_cska8_fa5_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cska8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cska8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cska8_fa7_xor1 = (fa(((h_u_dadda_cska8_and_4_2 >> 0) & 0x01), ((h_u_dadda_cska8_and_3_3 >> 0) & 0x01), ((h_u_dadda_cska8_and_2_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa7_or0 = (fa(((h_u_dadda_cska8_and_4_2 >> 0) & 0x01), ((h_u_dadda_cska8_and_3_3 >> 0) & 0x01), ((h_u_dadda_cska8_and_2_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cska8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cska8_fa8_xor1 = (fa(((h_u_dadda_cska8_and_1_5 >> 0) & 0x01), ((h_u_dadda_cska8_and_0_6 >> 0) & 0x01), ((h_u_dadda_cska8_ha0_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa8_or0 = (fa(((h_u_dadda_cska8_and_1_5 >> 0) & 0x01), ((h_u_dadda_cska8_and_0_6 >> 0) & 0x01), ((h_u_dadda_cska8_ha0_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_fa9_xor1 = (fa(((h_u_dadda_cska8_fa8_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa7_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa9_or0 = (fa(((h_u_dadda_cska8_fa8_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa7_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cska8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cska8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cska8_fa10_xor1 = (fa(((h_u_dadda_cska8_and_3_4 >> 0) & 0x01), ((h_u_dadda_cska8_and_2_5 >> 0) & 0x01), ((h_u_dadda_cska8_and_1_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa10_or0 = (fa(((h_u_dadda_cska8_and_3_4 >> 0) & 0x01), ((h_u_dadda_cska8_and_2_5 >> 0) & 0x01), ((h_u_dadda_cska8_and_1_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_0_7 = and_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cska8_fa11_xor1 = (fa(((h_u_dadda_cska8_and_0_7 >> 0) & 0x01), ((h_u_dadda_cska8_fa0_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_ha1_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa11_or0 = (fa(((h_u_dadda_cska8_and_0_7 >> 0) & 0x01), ((h_u_dadda_cska8_fa0_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_ha1_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_fa12_xor1 = (fa(((h_u_dadda_cska8_fa11_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa10_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa9_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa12_or0 = (fa(((h_u_dadda_cska8_fa11_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa10_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa9_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cska8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cska8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cska8_fa13_xor1 = (fa(((h_u_dadda_cska8_and_4_4 >> 0) & 0x01), ((h_u_dadda_cska8_and_3_5 >> 0) & 0x01), ((h_u_dadda_cska8_and_2_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa13_or0 = (fa(((h_u_dadda_cska8_and_4_4 >> 0) & 0x01), ((h_u_dadda_cska8_and_3_5 >> 0) & 0x01), ((h_u_dadda_cska8_and_2_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_1_7 = and_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cska8_fa14_xor1 = (fa(((h_u_dadda_cska8_and_1_7 >> 0) & 0x01), ((h_u_dadda_cska8_fa1_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_ha2_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa14_or0 = (fa(((h_u_dadda_cska8_and_1_7 >> 0) & 0x01), ((h_u_dadda_cska8_fa1_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_ha2_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_fa15_xor1 = (fa(((h_u_dadda_cska8_fa14_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa13_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa12_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa15_or0 = (fa(((h_u_dadda_cska8_fa14_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa13_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa12_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cska8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cska8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cska8_fa16_xor1 = (fa(((h_u_dadda_cska8_and_6_3 >> 0) & 0x01), ((h_u_dadda_cska8_and_5_4 >> 0) & 0x01), ((h_u_dadda_cska8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa16_or0 = (fa(((h_u_dadda_cska8_and_6_3 >> 0) & 0x01), ((h_u_dadda_cska8_and_5_4 >> 0) & 0x01), ((h_u_dadda_cska8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cska8_and_2_7 = and_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cska8_fa17_xor1 = (fa(((h_u_dadda_cska8_and_3_6 >> 0) & 0x01), ((h_u_dadda_cska8_and_2_7 >> 0) & 0x01), ((h_u_dadda_cska8_fa2_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa17_or0 = (fa(((h_u_dadda_cska8_and_3_6 >> 0) & 0x01), ((h_u_dadda_cska8_and_2_7 >> 0) & 0x01), ((h_u_dadda_cska8_fa2_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_fa18_xor1 = (fa(((h_u_dadda_cska8_fa17_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa16_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa15_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa18_or0 = (fa(((h_u_dadda_cska8_fa17_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa16_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa15_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_7_3 = and_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cska8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cska8_fa19_xor1 = (fa(((h_u_dadda_cska8_fa2_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_7_3 >> 0) & 0x01), ((h_u_dadda_cska8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa19_or0 = (fa(((h_u_dadda_cska8_fa2_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_7_3 >> 0) & 0x01), ((h_u_dadda_cska8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cska8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cska8_and_3_7 = and_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cska8_fa20_xor1 = (fa(((h_u_dadda_cska8_and_5_5 >> 0) & 0x01), ((h_u_dadda_cska8_and_4_6 >> 0) & 0x01), ((h_u_dadda_cska8_and_3_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa20_or0 = (fa(((h_u_dadda_cska8_and_5_5 >> 0) & 0x01), ((h_u_dadda_cska8_and_4_6 >> 0) & 0x01), ((h_u_dadda_cska8_and_3_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_fa21_xor1 = (fa(((h_u_dadda_cska8_fa20_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa19_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa18_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa21_or0 = (fa(((h_u_dadda_cska8_fa20_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa19_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa18_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_7_4 = and_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cska8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cska8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cska8_fa22_xor1 = (fa(((h_u_dadda_cska8_and_7_4 >> 0) & 0x01), ((h_u_dadda_cska8_and_6_5 >> 0) & 0x01), ((h_u_dadda_cska8_and_5_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa22_or0 = (fa(((h_u_dadda_cska8_and_7_4 >> 0) & 0x01), ((h_u_dadda_cska8_and_6_5 >> 0) & 0x01), ((h_u_dadda_cska8_and_5_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_7_5 = and_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_cska8_fa23_xor1 = (fa(((h_u_dadda_cska8_fa22_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa21_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_7_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa23_or0 = (fa(((h_u_dadda_cska8_fa22_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa21_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_7_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cska8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cska8_ha6_xor0 = (ha(((h_u_dadda_cska8_and_2_0 >> 0) & 0x01), ((h_u_dadda_cska8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_ha6_and0 = (ha(((h_u_dadda_cska8_and_2_0 >> 0) & 0x01), ((h_u_dadda_cska8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cska8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_cska8_fa24_xor1 = (fa(((h_u_dadda_cska8_ha6_and0 >> 0) & 0x01), ((h_u_dadda_cska8_and_1_2 >> 0) & 0x01), ((h_u_dadda_cska8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa24_or0 = (fa(((h_u_dadda_cska8_ha6_and0 >> 0) & 0x01), ((h_u_dadda_cska8_and_1_2 >> 0) & 0x01), ((h_u_dadda_cska8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_cska8_fa25_xor1 = (fa(((h_u_dadda_cska8_fa24_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_0_4 >> 0) & 0x01), ((h_u_dadda_cska8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa25_or0 = (fa(((h_u_dadda_cska8_fa24_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_0_4 >> 0) & 0x01), ((h_u_dadda_cska8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_fa26_xor1 = (fa(((h_u_dadda_cska8_fa25_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa4_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_fa5_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa26_or0 = (fa(((h_u_dadda_cska8_fa25_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa4_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_fa5_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_fa27_xor1 = (fa(((h_u_dadda_cska8_fa26_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa6_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_fa7_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa27_or0 = (fa(((h_u_dadda_cska8_fa26_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa6_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_fa7_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_fa28_xor1 = (fa(((h_u_dadda_cska8_fa27_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa9_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_fa10_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa28_or0 = (fa(((h_u_dadda_cska8_fa27_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa9_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_fa10_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_fa29_xor1 = (fa(((h_u_dadda_cska8_fa28_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa12_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_fa13_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa29_or0 = (fa(((h_u_dadda_cska8_fa28_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa12_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_fa13_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_fa30_xor1 = (fa(((h_u_dadda_cska8_fa29_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa15_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_fa16_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa30_or0 = (fa(((h_u_dadda_cska8_fa29_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa15_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_fa16_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_fa31_xor1 = (fa(((h_u_dadda_cska8_fa30_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa18_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_fa19_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa31_or0 = (fa(((h_u_dadda_cska8_fa30_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa18_xor1 >> 0) & 0x01), ((h_u_dadda_cska8_fa19_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_4_7 = and_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cska8_fa32_xor1 = (fa(((h_u_dadda_cska8_fa31_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_4_7 >> 0) & 0x01), ((h_u_dadda_cska8_fa21_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa32_or0 = (fa(((h_u_dadda_cska8_fa31_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_4_7 >> 0) & 0x01), ((h_u_dadda_cska8_fa21_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cska8_and_5_7 = and_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cska8_fa33_xor1 = (fa(((h_u_dadda_cska8_fa32_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_6_6 >> 0) & 0x01), ((h_u_dadda_cska8_and_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa33_or0 = (fa(((h_u_dadda_cska8_fa32_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_6_6 >> 0) & 0x01), ((h_u_dadda_cska8_and_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_7_6 = and_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_cska8_fa34_xor1 = (fa(((h_u_dadda_cska8_fa33_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa23_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_cska8_fa34_or0 = (fa(((h_u_dadda_cska8_fa33_or0 >> 0) & 0x01), ((h_u_dadda_cska8_fa23_or0 >> 0) & 0x01), ((h_u_dadda_cska8_and_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_cska8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cska8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_cska8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_cska8_and_6_7 = and_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cska8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_cska8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_cska8_u_cska14_a |= ((h_u_dadda_cska8_and_1_0 >> 0) & 0x01) << 0; - h_u_dadda_cska8_u_cska14_a |= ((h_u_dadda_cska8_and_0_2 >> 0) & 0x01) << 1; - h_u_dadda_cska8_u_cska14_a |= ((h_u_dadda_cska8_ha3_xor0 >> 0) & 0x01) << 2; - h_u_dadda_cska8_u_cska14_a |= ((h_u_dadda_cska8_ha4_xor0 >> 0) & 0x01) << 3; - h_u_dadda_cska8_u_cska14_a |= ((h_u_dadda_cska8_ha5_xor0 >> 0) & 0x01) << 4; - h_u_dadda_cska8_u_cska14_a |= ((h_u_dadda_cska8_fa8_xor1 >> 0) & 0x01) << 5; - h_u_dadda_cska8_u_cska14_a |= ((h_u_dadda_cska8_fa11_xor1 >> 0) & 0x01) << 6; - h_u_dadda_cska8_u_cska14_a |= ((h_u_dadda_cska8_fa14_xor1 >> 0) & 0x01) << 7; - h_u_dadda_cska8_u_cska14_a |= ((h_u_dadda_cska8_fa17_xor1 >> 0) & 0x01) << 8; - h_u_dadda_cska8_u_cska14_a |= ((h_u_dadda_cska8_fa20_xor1 >> 0) & 0x01) << 9; - h_u_dadda_cska8_u_cska14_a |= ((h_u_dadda_cska8_fa22_xor1 >> 0) & 0x01) << 10; - h_u_dadda_cska8_u_cska14_a |= ((h_u_dadda_cska8_fa23_xor1 >> 0) & 0x01) << 11; - h_u_dadda_cska8_u_cska14_a |= ((h_u_dadda_cska8_and_6_7 >> 0) & 0x01) << 12; - h_u_dadda_cska8_u_cska14_a |= ((h_u_dadda_cska8_fa34_or0 >> 0) & 0x01) << 13; - h_u_dadda_cska8_u_cska14_b |= ((h_u_dadda_cska8_and_0_1 >> 0) & 0x01) << 0; - h_u_dadda_cska8_u_cska14_b |= ((h_u_dadda_cska8_ha6_xor0 >> 0) & 0x01) << 1; - h_u_dadda_cska8_u_cska14_b |= ((h_u_dadda_cska8_fa24_xor1 >> 0) & 0x01) << 2; - h_u_dadda_cska8_u_cska14_b |= ((h_u_dadda_cska8_fa25_xor1 >> 0) & 0x01) << 3; - h_u_dadda_cska8_u_cska14_b |= ((h_u_dadda_cska8_fa26_xor1 >> 0) & 0x01) << 4; - h_u_dadda_cska8_u_cska14_b |= ((h_u_dadda_cska8_fa27_xor1 >> 0) & 0x01) << 5; - h_u_dadda_cska8_u_cska14_b |= ((h_u_dadda_cska8_fa28_xor1 >> 0) & 0x01) << 6; - h_u_dadda_cska8_u_cska14_b |= ((h_u_dadda_cska8_fa29_xor1 >> 0) & 0x01) << 7; - h_u_dadda_cska8_u_cska14_b |= ((h_u_dadda_cska8_fa30_xor1 >> 0) & 0x01) << 8; - h_u_dadda_cska8_u_cska14_b |= ((h_u_dadda_cska8_fa31_xor1 >> 0) & 0x01) << 9; - h_u_dadda_cska8_u_cska14_b |= ((h_u_dadda_cska8_fa32_xor1 >> 0) & 0x01) << 10; - h_u_dadda_cska8_u_cska14_b |= ((h_u_dadda_cska8_fa33_xor1 >> 0) & 0x01) << 11; - h_u_dadda_cska8_u_cska14_b |= ((h_u_dadda_cska8_fa34_xor1 >> 0) & 0x01) << 12; - h_u_dadda_cska8_u_cska14_b |= ((h_u_dadda_cska8_and_7_7 >> 0) & 0x01) << 13; - h_u_dadda_cska8_u_cska14_out = u_cska14(h_u_dadda_cska8_u_cska14_a, h_u_dadda_cska8_u_cska14_b); - - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_and_0_0 >> 0) & 0x01) << 0; - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_u_cska14_out >> 0) & 0x01) << 1; - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_u_cska14_out >> 1) & 0x01) << 2; - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_u_cska14_out >> 2) & 0x01) << 3; - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_u_cska14_out >> 3) & 0x01) << 4; - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_u_cska14_out >> 4) & 0x01) << 5; - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_u_cska14_out >> 5) & 0x01) << 6; - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_u_cska14_out >> 6) & 0x01) << 7; - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_u_cska14_out >> 7) & 0x01) << 8; - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_u_cska14_out >> 8) & 0x01) << 9; - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_u_cska14_out >> 9) & 0x01) << 10; - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_u_cska14_out >> 10) & 0x01) << 11; - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_u_cska14_out >> 11) & 0x01) << 12; - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_u_cska14_out >> 12) & 0x01) << 13; - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_u_cska14_out >> 13) & 0x01) << 14; - h_u_dadda_cska8_out |= ((h_u_dadda_cska8_u_cska14_out >> 14) & 0x01) << 15; - return h_u_dadda_cska8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == h_u_dadda_cska8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_pg_rca4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_pg_rca4.c deleted file mode 100644 index 650b0c7..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_pg_rca4.c +++ /dev/null @@ -1,227 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t pg_fa_out = 0; - uint8_t pg_fa_xor0 = 0; - uint8_t pg_fa_and0 = 0; - uint8_t pg_fa_xor1 = 0; - - pg_fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_xor1 = xor_gate(((pg_fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - - pg_fa_out |= ((pg_fa_xor0 >> 0) & 0x01) << 0; - pg_fa_out |= ((pg_fa_and0 >> 0) & 0x01) << 1; - pg_fa_out |= ((pg_fa_xor1 >> 0) & 0x01) << 2; - return pg_fa_out; -} - -uint64_t u_pg_rca6(uint64_t a, uint64_t b){ - uint8_t u_pg_rca6_out = 0; - uint8_t u_pg_rca6_pg_fa0_xor0 = 0; - uint8_t u_pg_rca6_pg_fa0_and0 = 0; - uint8_t u_pg_rca6_pg_fa1_xor0 = 0; - uint8_t u_pg_rca6_pg_fa1_and0 = 0; - uint8_t u_pg_rca6_pg_fa1_xor1 = 0; - uint8_t u_pg_rca6_and1 = 0; - uint8_t u_pg_rca6_or1 = 0; - uint8_t u_pg_rca6_pg_fa2_xor0 = 0; - uint8_t u_pg_rca6_pg_fa2_and0 = 0; - uint8_t u_pg_rca6_pg_fa2_xor1 = 0; - uint8_t u_pg_rca6_and2 = 0; - uint8_t u_pg_rca6_or2 = 0; - uint8_t u_pg_rca6_pg_fa3_xor0 = 0; - uint8_t u_pg_rca6_pg_fa3_and0 = 0; - uint8_t u_pg_rca6_pg_fa3_xor1 = 0; - uint8_t u_pg_rca6_and3 = 0; - uint8_t u_pg_rca6_or3 = 0; - uint8_t u_pg_rca6_pg_fa4_xor0 = 0; - uint8_t u_pg_rca6_pg_fa4_and0 = 0; - uint8_t u_pg_rca6_pg_fa4_xor1 = 0; - uint8_t u_pg_rca6_and4 = 0; - uint8_t u_pg_rca6_or4 = 0; - uint8_t u_pg_rca6_pg_fa5_xor0 = 0; - uint8_t u_pg_rca6_pg_fa5_and0 = 0; - uint8_t u_pg_rca6_pg_fa5_xor1 = 0; - uint8_t u_pg_rca6_and5 = 0; - uint8_t u_pg_rca6_or5 = 0; - - u_pg_rca6_pg_fa0_xor0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - u_pg_rca6_pg_fa0_and0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - u_pg_rca6_pg_fa1_xor0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa1_and0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa1_xor1 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and1 = and_gate(((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01), ((u_pg_rca6_pg_fa1_xor0 >> 0) & 0x01)); - u_pg_rca6_or1 = or_gate(((u_pg_rca6_and1 >> 0) & 0x01), ((u_pg_rca6_pg_fa1_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa2_xor0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca6_or1 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa2_and0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca6_or1 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa2_xor1 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca6_or1 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and2 = and_gate(((u_pg_rca6_or1 >> 0) & 0x01), ((u_pg_rca6_pg_fa2_xor0 >> 0) & 0x01)); - u_pg_rca6_or2 = or_gate(((u_pg_rca6_and2 >> 0) & 0x01), ((u_pg_rca6_pg_fa2_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa3_xor0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca6_or2 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa3_and0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca6_or2 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa3_xor1 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca6_or2 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and3 = and_gate(((u_pg_rca6_or2 >> 0) & 0x01), ((u_pg_rca6_pg_fa3_xor0 >> 0) & 0x01)); - u_pg_rca6_or3 = or_gate(((u_pg_rca6_and3 >> 0) & 0x01), ((u_pg_rca6_pg_fa3_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa4_xor0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca6_or3 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa4_and0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca6_or3 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa4_xor1 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca6_or3 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and4 = and_gate(((u_pg_rca6_or3 >> 0) & 0x01), ((u_pg_rca6_pg_fa4_xor0 >> 0) & 0x01)); - u_pg_rca6_or4 = or_gate(((u_pg_rca6_and4 >> 0) & 0x01), ((u_pg_rca6_pg_fa4_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa5_xor0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca6_or4 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa5_and0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca6_or4 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa5_xor1 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca6_or4 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and5 = and_gate(((u_pg_rca6_or4 >> 0) & 0x01), ((u_pg_rca6_pg_fa5_xor0 >> 0) & 0x01)); - u_pg_rca6_or5 = or_gate(((u_pg_rca6_and5 >> 0) & 0x01), ((u_pg_rca6_pg_fa5_and0 >> 0) & 0x01)); - - u_pg_rca6_out |= ((u_pg_rca6_pg_fa0_xor0 >> 0) & 0x01) << 0; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa1_xor1 >> 0) & 0x01) << 1; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa2_xor1 >> 0) & 0x01) << 2; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa3_xor1 >> 0) & 0x01) << 3; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa4_xor1 >> 0) & 0x01) << 4; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa5_xor1 >> 0) & 0x01) << 5; - u_pg_rca6_out |= ((u_pg_rca6_or5 >> 0) & 0x01) << 6; - return u_pg_rca6_out; -} - -uint64_t h_u_dadda_pg_rca4(uint64_t a, uint64_t b){ - uint8_t h_u_dadda_pg_rca4_out = 0; - uint8_t h_u_dadda_pg_rca4_and_3_0 = 0; - uint8_t h_u_dadda_pg_rca4_and_2_1 = 0; - uint8_t h_u_dadda_pg_rca4_ha0_xor0 = 0; - uint8_t h_u_dadda_pg_rca4_ha0_and0 = 0; - uint8_t h_u_dadda_pg_rca4_and_3_1 = 0; - uint8_t h_u_dadda_pg_rca4_ha1_xor0 = 0; - uint8_t h_u_dadda_pg_rca4_ha1_and0 = 0; - uint8_t h_u_dadda_pg_rca4_and_2_0 = 0; - uint8_t h_u_dadda_pg_rca4_and_1_1 = 0; - uint8_t h_u_dadda_pg_rca4_ha2_xor0 = 0; - uint8_t h_u_dadda_pg_rca4_ha2_and0 = 0; - uint8_t h_u_dadda_pg_rca4_and_1_2 = 0; - uint8_t h_u_dadda_pg_rca4_and_0_3 = 0; - uint8_t h_u_dadda_pg_rca4_fa0_xor1 = 0; - uint8_t h_u_dadda_pg_rca4_fa0_or0 = 0; - uint8_t h_u_dadda_pg_rca4_and_2_2 = 0; - uint8_t h_u_dadda_pg_rca4_and_1_3 = 0; - uint8_t h_u_dadda_pg_rca4_fa1_xor1 = 0; - uint8_t h_u_dadda_pg_rca4_fa1_or0 = 0; - uint8_t h_u_dadda_pg_rca4_and_3_2 = 0; - uint8_t h_u_dadda_pg_rca4_fa2_xor1 = 0; - uint8_t h_u_dadda_pg_rca4_fa2_or0 = 0; - uint8_t h_u_dadda_pg_rca4_and_0_0 = 0; - uint8_t h_u_dadda_pg_rca4_and_1_0 = 0; - uint8_t h_u_dadda_pg_rca4_and_0_2 = 0; - uint8_t h_u_dadda_pg_rca4_and_2_3 = 0; - uint8_t h_u_dadda_pg_rca4_and_0_1 = 0; - uint8_t h_u_dadda_pg_rca4_and_3_3 = 0; - uint64_t h_u_dadda_pg_rca4_u_pg_rca6_a = 0; - uint64_t h_u_dadda_pg_rca4_u_pg_rca6_b = 0; - uint64_t h_u_dadda_pg_rca4_u_pg_rca6_out = 0; - - h_u_dadda_pg_rca4_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_pg_rca4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_pg_rca4_ha0_xor0 = (ha(((h_u_dadda_pg_rca4_and_3_0 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca4_ha0_and0 = (ha(((h_u_dadda_pg_rca4_and_3_0 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca4_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_pg_rca4_ha1_xor0 = (ha(((h_u_dadda_pg_rca4_ha0_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca4_ha1_and0 = (ha(((h_u_dadda_pg_rca4_ha0_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_pg_rca4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_pg_rca4_ha2_xor0 = (ha(((h_u_dadda_pg_rca4_and_2_0 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca4_ha2_and0 = (ha(((h_u_dadda_pg_rca4_and_2_0 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_pg_rca4_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_pg_rca4_fa0_xor1 = (fa(((h_u_dadda_pg_rca4_ha2_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_1_2 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca4_fa0_or0 = (fa(((h_u_dadda_pg_rca4_ha2_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_1_2 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_pg_rca4_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_pg_rca4_fa1_xor1 = (fa(((h_u_dadda_pg_rca4_fa0_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_2_2 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca4_fa1_or0 = (fa(((h_u_dadda_pg_rca4_fa0_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_2_2 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca4_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_pg_rca4_fa2_xor1 = (fa(((h_u_dadda_pg_rca4_fa1_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca4_ha1_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca4_fa2_or0 = (fa(((h_u_dadda_pg_rca4_fa1_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca4_ha1_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca4_and_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_pg_rca4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_pg_rca4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_pg_rca4_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_pg_rca4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_pg_rca4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_pg_rca4_u_pg_rca6_a |= ((h_u_dadda_pg_rca4_and_1_0 >> 0) & 0x01) << 0; - h_u_dadda_pg_rca4_u_pg_rca6_a |= ((h_u_dadda_pg_rca4_and_0_2 >> 0) & 0x01) << 1; - h_u_dadda_pg_rca4_u_pg_rca6_a |= ((h_u_dadda_pg_rca4_ha0_xor0 >> 0) & 0x01) << 2; - h_u_dadda_pg_rca4_u_pg_rca6_a |= ((h_u_dadda_pg_rca4_ha1_xor0 >> 0) & 0x01) << 3; - h_u_dadda_pg_rca4_u_pg_rca6_a |= ((h_u_dadda_pg_rca4_and_2_3 >> 0) & 0x01) << 4; - h_u_dadda_pg_rca4_u_pg_rca6_a |= ((h_u_dadda_pg_rca4_fa2_or0 >> 0) & 0x01) << 5; - h_u_dadda_pg_rca4_u_pg_rca6_b |= ((h_u_dadda_pg_rca4_and_0_1 >> 0) & 0x01) << 0; - h_u_dadda_pg_rca4_u_pg_rca6_b |= ((h_u_dadda_pg_rca4_ha2_xor0 >> 0) & 0x01) << 1; - h_u_dadda_pg_rca4_u_pg_rca6_b |= ((h_u_dadda_pg_rca4_fa0_xor1 >> 0) & 0x01) << 2; - h_u_dadda_pg_rca4_u_pg_rca6_b |= ((h_u_dadda_pg_rca4_fa1_xor1 >> 0) & 0x01) << 3; - h_u_dadda_pg_rca4_u_pg_rca6_b |= ((h_u_dadda_pg_rca4_fa2_xor1 >> 0) & 0x01) << 4; - h_u_dadda_pg_rca4_u_pg_rca6_b |= ((h_u_dadda_pg_rca4_and_3_3 >> 0) & 0x01) << 5; - h_u_dadda_pg_rca4_u_pg_rca6_out = u_pg_rca6(h_u_dadda_pg_rca4_u_pg_rca6_a, h_u_dadda_pg_rca4_u_pg_rca6_b); - - h_u_dadda_pg_rca4_out |= ((h_u_dadda_pg_rca4_and_0_0 >> 0) & 0x01) << 0; - h_u_dadda_pg_rca4_out |= ((h_u_dadda_pg_rca4_u_pg_rca6_out >> 0) & 0x01) << 1; - h_u_dadda_pg_rca4_out |= ((h_u_dadda_pg_rca4_u_pg_rca6_out >> 1) & 0x01) << 2; - h_u_dadda_pg_rca4_out |= ((h_u_dadda_pg_rca4_u_pg_rca6_out >> 2) & 0x01) << 3; - h_u_dadda_pg_rca4_out |= ((h_u_dadda_pg_rca4_u_pg_rca6_out >> 3) & 0x01) << 4; - h_u_dadda_pg_rca4_out |= ((h_u_dadda_pg_rca4_u_pg_rca6_out >> 4) & 0x01) << 5; - h_u_dadda_pg_rca4_out |= ((h_u_dadda_pg_rca4_u_pg_rca6_out >> 5) & 0x01) << 6; - h_u_dadda_pg_rca4_out |= ((h_u_dadda_pg_rca4_u_pg_rca6_out >> 6) & 0x01) << 7; - return h_u_dadda_pg_rca4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == h_u_dadda_pg_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_pg_rca8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_pg_rca8.c deleted file mode 100644 index 23bf1ef..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_pg_rca8.c +++ /dev/null @@ -1,579 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t pg_fa_out = 0; - uint8_t pg_fa_xor0 = 0; - uint8_t pg_fa_and0 = 0; - uint8_t pg_fa_xor1 = 0; - - pg_fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_xor1 = xor_gate(((pg_fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - - pg_fa_out |= ((pg_fa_xor0 >> 0) & 0x01) << 0; - pg_fa_out |= ((pg_fa_and0 >> 0) & 0x01) << 1; - pg_fa_out |= ((pg_fa_xor1 >> 0) & 0x01) << 2; - return pg_fa_out; -} - -uint64_t u_pg_rca14(uint64_t a, uint64_t b){ - uint64_t u_pg_rca14_out = 0; - uint8_t u_pg_rca14_pg_fa0_xor0 = 0; - uint8_t u_pg_rca14_pg_fa0_and0 = 0; - uint8_t u_pg_rca14_pg_fa1_xor0 = 0; - uint8_t u_pg_rca14_pg_fa1_and0 = 0; - uint8_t u_pg_rca14_pg_fa1_xor1 = 0; - uint8_t u_pg_rca14_and1 = 0; - uint8_t u_pg_rca14_or1 = 0; - uint8_t u_pg_rca14_pg_fa2_xor0 = 0; - uint8_t u_pg_rca14_pg_fa2_and0 = 0; - uint8_t u_pg_rca14_pg_fa2_xor1 = 0; - uint8_t u_pg_rca14_and2 = 0; - uint8_t u_pg_rca14_or2 = 0; - uint8_t u_pg_rca14_pg_fa3_xor0 = 0; - uint8_t u_pg_rca14_pg_fa3_and0 = 0; - uint8_t u_pg_rca14_pg_fa3_xor1 = 0; - uint8_t u_pg_rca14_and3 = 0; - uint8_t u_pg_rca14_or3 = 0; - uint8_t u_pg_rca14_pg_fa4_xor0 = 0; - uint8_t u_pg_rca14_pg_fa4_and0 = 0; - uint8_t u_pg_rca14_pg_fa4_xor1 = 0; - uint8_t u_pg_rca14_and4 = 0; - uint8_t u_pg_rca14_or4 = 0; - uint8_t u_pg_rca14_pg_fa5_xor0 = 0; - uint8_t u_pg_rca14_pg_fa5_and0 = 0; - uint8_t u_pg_rca14_pg_fa5_xor1 = 0; - uint8_t u_pg_rca14_and5 = 0; - uint8_t u_pg_rca14_or5 = 0; - uint8_t u_pg_rca14_pg_fa6_xor0 = 0; - uint8_t u_pg_rca14_pg_fa6_and0 = 0; - uint8_t u_pg_rca14_pg_fa6_xor1 = 0; - uint8_t u_pg_rca14_and6 = 0; - uint8_t u_pg_rca14_or6 = 0; - uint8_t u_pg_rca14_pg_fa7_xor0 = 0; - uint8_t u_pg_rca14_pg_fa7_and0 = 0; - uint8_t u_pg_rca14_pg_fa7_xor1 = 0; - uint8_t u_pg_rca14_and7 = 0; - uint8_t u_pg_rca14_or7 = 0; - uint8_t u_pg_rca14_pg_fa8_xor0 = 0; - uint8_t u_pg_rca14_pg_fa8_and0 = 0; - uint8_t u_pg_rca14_pg_fa8_xor1 = 0; - uint8_t u_pg_rca14_and8 = 0; - uint8_t u_pg_rca14_or8 = 0; - uint8_t u_pg_rca14_pg_fa9_xor0 = 0; - uint8_t u_pg_rca14_pg_fa9_and0 = 0; - uint8_t u_pg_rca14_pg_fa9_xor1 = 0; - uint8_t u_pg_rca14_and9 = 0; - uint8_t u_pg_rca14_or9 = 0; - uint8_t u_pg_rca14_pg_fa10_xor0 = 0; - uint8_t u_pg_rca14_pg_fa10_and0 = 0; - uint8_t u_pg_rca14_pg_fa10_xor1 = 0; - uint8_t u_pg_rca14_and10 = 0; - uint8_t u_pg_rca14_or10 = 0; - uint8_t u_pg_rca14_pg_fa11_xor0 = 0; - uint8_t u_pg_rca14_pg_fa11_and0 = 0; - uint8_t u_pg_rca14_pg_fa11_xor1 = 0; - uint8_t u_pg_rca14_and11 = 0; - uint8_t u_pg_rca14_or11 = 0; - uint8_t u_pg_rca14_pg_fa12_xor0 = 0; - uint8_t u_pg_rca14_pg_fa12_and0 = 0; - uint8_t u_pg_rca14_pg_fa12_xor1 = 0; - uint8_t u_pg_rca14_and12 = 0; - uint8_t u_pg_rca14_or12 = 0; - uint8_t u_pg_rca14_pg_fa13_xor0 = 0; - uint8_t u_pg_rca14_pg_fa13_and0 = 0; - uint8_t u_pg_rca14_pg_fa13_xor1 = 0; - uint8_t u_pg_rca14_and13 = 0; - uint8_t u_pg_rca14_or13 = 0; - - u_pg_rca14_pg_fa0_xor0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - u_pg_rca14_pg_fa0_and0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - u_pg_rca14_pg_fa1_xor0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa1_and0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa1_xor1 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and1 = and_gate(((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01), ((u_pg_rca14_pg_fa1_xor0 >> 0) & 0x01)); - u_pg_rca14_or1 = or_gate(((u_pg_rca14_and1 >> 0) & 0x01), ((u_pg_rca14_pg_fa1_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa2_xor0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca14_or1 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa2_and0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca14_or1 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa2_xor1 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca14_or1 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and2 = and_gate(((u_pg_rca14_or1 >> 0) & 0x01), ((u_pg_rca14_pg_fa2_xor0 >> 0) & 0x01)); - u_pg_rca14_or2 = or_gate(((u_pg_rca14_and2 >> 0) & 0x01), ((u_pg_rca14_pg_fa2_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa3_xor0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca14_or2 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa3_and0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca14_or2 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa3_xor1 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca14_or2 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and3 = and_gate(((u_pg_rca14_or2 >> 0) & 0x01), ((u_pg_rca14_pg_fa3_xor0 >> 0) & 0x01)); - u_pg_rca14_or3 = or_gate(((u_pg_rca14_and3 >> 0) & 0x01), ((u_pg_rca14_pg_fa3_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa4_xor0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca14_or3 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa4_and0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca14_or3 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa4_xor1 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca14_or3 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and4 = and_gate(((u_pg_rca14_or3 >> 0) & 0x01), ((u_pg_rca14_pg_fa4_xor0 >> 0) & 0x01)); - u_pg_rca14_or4 = or_gate(((u_pg_rca14_and4 >> 0) & 0x01), ((u_pg_rca14_pg_fa4_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa5_xor0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca14_or4 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa5_and0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca14_or4 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa5_xor1 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca14_or4 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and5 = and_gate(((u_pg_rca14_or4 >> 0) & 0x01), ((u_pg_rca14_pg_fa5_xor0 >> 0) & 0x01)); - u_pg_rca14_or5 = or_gate(((u_pg_rca14_and5 >> 0) & 0x01), ((u_pg_rca14_pg_fa5_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa6_xor0 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_pg_rca14_or5 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa6_and0 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_pg_rca14_or5 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa6_xor1 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_pg_rca14_or5 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and6 = and_gate(((u_pg_rca14_or5 >> 0) & 0x01), ((u_pg_rca14_pg_fa6_xor0 >> 0) & 0x01)); - u_pg_rca14_or6 = or_gate(((u_pg_rca14_and6 >> 0) & 0x01), ((u_pg_rca14_pg_fa6_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa7_xor0 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_pg_rca14_or6 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa7_and0 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_pg_rca14_or6 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa7_xor1 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_pg_rca14_or6 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and7 = and_gate(((u_pg_rca14_or6 >> 0) & 0x01), ((u_pg_rca14_pg_fa7_xor0 >> 0) & 0x01)); - u_pg_rca14_or7 = or_gate(((u_pg_rca14_and7 >> 0) & 0x01), ((u_pg_rca14_pg_fa7_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa8_xor0 = (pg_fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_pg_rca14_or7 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa8_and0 = (pg_fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_pg_rca14_or7 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa8_xor1 = (pg_fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_pg_rca14_or7 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and8 = and_gate(((u_pg_rca14_or7 >> 0) & 0x01), ((u_pg_rca14_pg_fa8_xor0 >> 0) & 0x01)); - u_pg_rca14_or8 = or_gate(((u_pg_rca14_and8 >> 0) & 0x01), ((u_pg_rca14_pg_fa8_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa9_xor0 = (pg_fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_pg_rca14_or8 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa9_and0 = (pg_fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_pg_rca14_or8 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa9_xor1 = (pg_fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_pg_rca14_or8 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and9 = and_gate(((u_pg_rca14_or8 >> 0) & 0x01), ((u_pg_rca14_pg_fa9_xor0 >> 0) & 0x01)); - u_pg_rca14_or9 = or_gate(((u_pg_rca14_and9 >> 0) & 0x01), ((u_pg_rca14_pg_fa9_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa10_xor0 = (pg_fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_pg_rca14_or9 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa10_and0 = (pg_fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_pg_rca14_or9 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa10_xor1 = (pg_fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_pg_rca14_or9 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and10 = and_gate(((u_pg_rca14_or9 >> 0) & 0x01), ((u_pg_rca14_pg_fa10_xor0 >> 0) & 0x01)); - u_pg_rca14_or10 = or_gate(((u_pg_rca14_and10 >> 0) & 0x01), ((u_pg_rca14_pg_fa10_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa11_xor0 = (pg_fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_pg_rca14_or10 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa11_and0 = (pg_fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_pg_rca14_or10 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa11_xor1 = (pg_fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_pg_rca14_or10 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and11 = and_gate(((u_pg_rca14_or10 >> 0) & 0x01), ((u_pg_rca14_pg_fa11_xor0 >> 0) & 0x01)); - u_pg_rca14_or11 = or_gate(((u_pg_rca14_and11 >> 0) & 0x01), ((u_pg_rca14_pg_fa11_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa12_xor0 = (pg_fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_pg_rca14_or11 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa12_and0 = (pg_fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_pg_rca14_or11 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa12_xor1 = (pg_fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_pg_rca14_or11 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and12 = and_gate(((u_pg_rca14_or11 >> 0) & 0x01), ((u_pg_rca14_pg_fa12_xor0 >> 0) & 0x01)); - u_pg_rca14_or12 = or_gate(((u_pg_rca14_and12 >> 0) & 0x01), ((u_pg_rca14_pg_fa12_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa13_xor0 = (pg_fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_pg_rca14_or12 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa13_and0 = (pg_fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_pg_rca14_or12 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa13_xor1 = (pg_fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_pg_rca14_or12 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and13 = and_gate(((u_pg_rca14_or12 >> 0) & 0x01), ((u_pg_rca14_pg_fa13_xor0 >> 0) & 0x01)); - u_pg_rca14_or13 = or_gate(((u_pg_rca14_and13 >> 0) & 0x01), ((u_pg_rca14_pg_fa13_and0 >> 0) & 0x01)); - - u_pg_rca14_out |= ((u_pg_rca14_pg_fa0_xor0 >> 0) & 0x01) << 0; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa1_xor1 >> 0) & 0x01) << 1; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa2_xor1 >> 0) & 0x01) << 2; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa3_xor1 >> 0) & 0x01) << 3; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa4_xor1 >> 0) & 0x01) << 4; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa5_xor1 >> 0) & 0x01) << 5; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa6_xor1 >> 0) & 0x01) << 6; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa7_xor1 >> 0) & 0x01) << 7; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa8_xor1 >> 0) & 0x01) << 8; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa9_xor1 >> 0) & 0x01) << 9; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa10_xor1 >> 0) & 0x01) << 10; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa11_xor1 >> 0) & 0x01) << 11; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa12_xor1 >> 0) & 0x01) << 12; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa13_xor1 >> 0) & 0x01) << 13; - u_pg_rca14_out |= ((u_pg_rca14_or13 >> 0) & 0x01) << 14; - return u_pg_rca14_out; -} - -uint64_t h_u_dadda_pg_rca8(uint64_t a, uint64_t b){ - uint64_t h_u_dadda_pg_rca8_out = 0; - uint8_t h_u_dadda_pg_rca8_and_6_0 = 0; - uint8_t h_u_dadda_pg_rca8_and_5_1 = 0; - uint8_t h_u_dadda_pg_rca8_ha0_xor0 = 0; - uint8_t h_u_dadda_pg_rca8_ha0_and0 = 0; - uint8_t h_u_dadda_pg_rca8_and_7_0 = 0; - uint8_t h_u_dadda_pg_rca8_and_6_1 = 0; - uint8_t h_u_dadda_pg_rca8_fa0_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa0_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_5_2 = 0; - uint8_t h_u_dadda_pg_rca8_and_4_3 = 0; - uint8_t h_u_dadda_pg_rca8_ha1_xor0 = 0; - uint8_t h_u_dadda_pg_rca8_ha1_and0 = 0; - uint8_t h_u_dadda_pg_rca8_and_7_1 = 0; - uint8_t h_u_dadda_pg_rca8_fa1_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa1_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_6_2 = 0; - uint8_t h_u_dadda_pg_rca8_and_5_3 = 0; - uint8_t h_u_dadda_pg_rca8_ha2_xor0 = 0; - uint8_t h_u_dadda_pg_rca8_ha2_and0 = 0; - uint8_t h_u_dadda_pg_rca8_and_7_2 = 0; - uint8_t h_u_dadda_pg_rca8_fa2_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa2_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_3_0 = 0; - uint8_t h_u_dadda_pg_rca8_and_2_1 = 0; - uint8_t h_u_dadda_pg_rca8_ha3_xor0 = 0; - uint8_t h_u_dadda_pg_rca8_ha3_and0 = 0; - uint8_t h_u_dadda_pg_rca8_and_4_0 = 0; - uint8_t h_u_dadda_pg_rca8_and_3_1 = 0; - uint8_t h_u_dadda_pg_rca8_fa3_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa3_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_2_2 = 0; - uint8_t h_u_dadda_pg_rca8_and_1_3 = 0; - uint8_t h_u_dadda_pg_rca8_ha4_xor0 = 0; - uint8_t h_u_dadda_pg_rca8_ha4_and0 = 0; - uint8_t h_u_dadda_pg_rca8_and_5_0 = 0; - uint8_t h_u_dadda_pg_rca8_fa4_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa4_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_4_1 = 0; - uint8_t h_u_dadda_pg_rca8_and_3_2 = 0; - uint8_t h_u_dadda_pg_rca8_and_2_3 = 0; - uint8_t h_u_dadda_pg_rca8_fa5_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa5_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_1_4 = 0; - uint8_t h_u_dadda_pg_rca8_and_0_5 = 0; - uint8_t h_u_dadda_pg_rca8_ha5_xor0 = 0; - uint8_t h_u_dadda_pg_rca8_ha5_and0 = 0; - uint8_t h_u_dadda_pg_rca8_fa6_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa6_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_4_2 = 0; - uint8_t h_u_dadda_pg_rca8_and_3_3 = 0; - uint8_t h_u_dadda_pg_rca8_and_2_4 = 0; - uint8_t h_u_dadda_pg_rca8_fa7_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa7_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_1_5 = 0; - uint8_t h_u_dadda_pg_rca8_and_0_6 = 0; - uint8_t h_u_dadda_pg_rca8_fa8_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa8_or0 = 0; - uint8_t h_u_dadda_pg_rca8_fa9_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa9_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_3_4 = 0; - uint8_t h_u_dadda_pg_rca8_and_2_5 = 0; - uint8_t h_u_dadda_pg_rca8_and_1_6 = 0; - uint8_t h_u_dadda_pg_rca8_fa10_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa10_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_0_7 = 0; - uint8_t h_u_dadda_pg_rca8_fa11_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa11_or0 = 0; - uint8_t h_u_dadda_pg_rca8_fa12_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa12_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_4_4 = 0; - uint8_t h_u_dadda_pg_rca8_and_3_5 = 0; - uint8_t h_u_dadda_pg_rca8_and_2_6 = 0; - uint8_t h_u_dadda_pg_rca8_fa13_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa13_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_1_7 = 0; - uint8_t h_u_dadda_pg_rca8_fa14_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa14_or0 = 0; - uint8_t h_u_dadda_pg_rca8_fa15_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa15_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_6_3 = 0; - uint8_t h_u_dadda_pg_rca8_and_5_4 = 0; - uint8_t h_u_dadda_pg_rca8_and_4_5 = 0; - uint8_t h_u_dadda_pg_rca8_fa16_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa16_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_3_6 = 0; - uint8_t h_u_dadda_pg_rca8_and_2_7 = 0; - uint8_t h_u_dadda_pg_rca8_fa17_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa17_or0 = 0; - uint8_t h_u_dadda_pg_rca8_fa18_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa18_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_7_3 = 0; - uint8_t h_u_dadda_pg_rca8_and_6_4 = 0; - uint8_t h_u_dadda_pg_rca8_fa19_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa19_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_5_5 = 0; - uint8_t h_u_dadda_pg_rca8_and_4_6 = 0; - uint8_t h_u_dadda_pg_rca8_and_3_7 = 0; - uint8_t h_u_dadda_pg_rca8_fa20_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa20_or0 = 0; - uint8_t h_u_dadda_pg_rca8_fa21_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa21_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_7_4 = 0; - uint8_t h_u_dadda_pg_rca8_and_6_5 = 0; - uint8_t h_u_dadda_pg_rca8_and_5_6 = 0; - uint8_t h_u_dadda_pg_rca8_fa22_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa22_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_7_5 = 0; - uint8_t h_u_dadda_pg_rca8_fa23_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa23_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_2_0 = 0; - uint8_t h_u_dadda_pg_rca8_and_1_1 = 0; - uint8_t h_u_dadda_pg_rca8_ha6_xor0 = 0; - uint8_t h_u_dadda_pg_rca8_ha6_and0 = 0; - uint8_t h_u_dadda_pg_rca8_and_1_2 = 0; - uint8_t h_u_dadda_pg_rca8_and_0_3 = 0; - uint8_t h_u_dadda_pg_rca8_fa24_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa24_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_0_4 = 0; - uint8_t h_u_dadda_pg_rca8_fa25_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa25_or0 = 0; - uint8_t h_u_dadda_pg_rca8_fa26_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa26_or0 = 0; - uint8_t h_u_dadda_pg_rca8_fa27_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa27_or0 = 0; - uint8_t h_u_dadda_pg_rca8_fa28_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa28_or0 = 0; - uint8_t h_u_dadda_pg_rca8_fa29_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa29_or0 = 0; - uint8_t h_u_dadda_pg_rca8_fa30_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa30_or0 = 0; - uint8_t h_u_dadda_pg_rca8_fa31_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa31_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_4_7 = 0; - uint8_t h_u_dadda_pg_rca8_fa32_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa32_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_6_6 = 0; - uint8_t h_u_dadda_pg_rca8_and_5_7 = 0; - uint8_t h_u_dadda_pg_rca8_fa33_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa33_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_7_6 = 0; - uint8_t h_u_dadda_pg_rca8_fa34_xor1 = 0; - uint8_t h_u_dadda_pg_rca8_fa34_or0 = 0; - uint8_t h_u_dadda_pg_rca8_and_0_0 = 0; - uint8_t h_u_dadda_pg_rca8_and_1_0 = 0; - uint8_t h_u_dadda_pg_rca8_and_0_2 = 0; - uint8_t h_u_dadda_pg_rca8_and_6_7 = 0; - uint8_t h_u_dadda_pg_rca8_and_0_1 = 0; - uint8_t h_u_dadda_pg_rca8_and_7_7 = 0; - uint64_t h_u_dadda_pg_rca8_u_pg_rca14_a = 0; - uint64_t h_u_dadda_pg_rca8_u_pg_rca14_b = 0; - uint64_t h_u_dadda_pg_rca8_u_pg_rca14_out = 0; - - h_u_dadda_pg_rca8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_pg_rca8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_pg_rca8_ha0_xor0 = (ha(((h_u_dadda_pg_rca8_and_6_0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_ha0_and0 = (ha(((h_u_dadda_pg_rca8_and_6_0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_7_0 = and_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_pg_rca8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_pg_rca8_fa0_xor1 = (fa(((h_u_dadda_pg_rca8_ha0_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_7_0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa0_or0 = (fa(((h_u_dadda_pg_rca8_ha0_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_7_0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_pg_rca8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_pg_rca8_ha1_xor0 = (ha(((h_u_dadda_pg_rca8_and_5_2 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_ha1_and0 = (ha(((h_u_dadda_pg_rca8_and_5_2 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_7_1 = and_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_pg_rca8_fa1_xor1 = (fa(((h_u_dadda_pg_rca8_ha1_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa0_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_7_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa1_or0 = (fa(((h_u_dadda_pg_rca8_ha1_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa0_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_7_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_pg_rca8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_pg_rca8_ha2_xor0 = (ha(((h_u_dadda_pg_rca8_and_6_2 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_5_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_ha2_and0 = (ha(((h_u_dadda_pg_rca8_and_6_2 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_5_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_7_2 = and_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_pg_rca8_fa2_xor1 = (fa(((h_u_dadda_pg_rca8_ha2_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa1_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_7_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa2_or0 = (fa(((h_u_dadda_pg_rca8_ha2_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa1_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_7_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_pg_rca8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_pg_rca8_ha3_xor0 = (ha(((h_u_dadda_pg_rca8_and_3_0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_ha3_and0 = (ha(((h_u_dadda_pg_rca8_and_3_0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_pg_rca8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_pg_rca8_fa3_xor1 = (fa(((h_u_dadda_pg_rca8_ha3_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_4_0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa3_or0 = (fa(((h_u_dadda_pg_rca8_ha3_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_4_0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_pg_rca8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_pg_rca8_ha4_xor0 = (ha(((h_u_dadda_pg_rca8_and_2_2 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_ha4_and0 = (ha(((h_u_dadda_pg_rca8_and_2_2 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_pg_rca8_fa4_xor1 = (fa(((h_u_dadda_pg_rca8_ha4_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa3_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_5_0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa4_or0 = (fa(((h_u_dadda_pg_rca8_ha4_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa3_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_5_0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_pg_rca8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_pg_rca8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_pg_rca8_fa5_xor1 = (fa(((h_u_dadda_pg_rca8_and_4_1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_3_2 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa5_or0 = (fa(((h_u_dadda_pg_rca8_and_4_1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_3_2 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_pg_rca8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_pg_rca8_ha5_xor0 = (ha(((h_u_dadda_pg_rca8_and_1_4 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_ha5_and0 = (ha(((h_u_dadda_pg_rca8_and_1_4 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_fa6_xor1 = (fa(((h_u_dadda_pg_rca8_ha5_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa5_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa6_or0 = (fa(((h_u_dadda_pg_rca8_ha5_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa5_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_pg_rca8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_pg_rca8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_pg_rca8_fa7_xor1 = (fa(((h_u_dadda_pg_rca8_and_4_2 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_3_3 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_2_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa7_or0 = (fa(((h_u_dadda_pg_rca8_and_4_2 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_3_3 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_2_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_pg_rca8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_pg_rca8_fa8_xor1 = (fa(((h_u_dadda_pg_rca8_and_1_5 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_0_6 >> 0) & 0x01), ((h_u_dadda_pg_rca8_ha0_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa8_or0 = (fa(((h_u_dadda_pg_rca8_and_1_5 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_0_6 >> 0) & 0x01), ((h_u_dadda_pg_rca8_ha0_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_fa9_xor1 = (fa(((h_u_dadda_pg_rca8_fa8_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa7_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa9_or0 = (fa(((h_u_dadda_pg_rca8_fa8_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa7_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_pg_rca8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_pg_rca8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_pg_rca8_fa10_xor1 = (fa(((h_u_dadda_pg_rca8_and_3_4 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_2_5 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_1_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa10_or0 = (fa(((h_u_dadda_pg_rca8_and_3_4 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_2_5 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_1_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_0_7 = and_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_pg_rca8_fa11_xor1 = (fa(((h_u_dadda_pg_rca8_and_0_7 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa0_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_ha1_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa11_or0 = (fa(((h_u_dadda_pg_rca8_and_0_7 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa0_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_ha1_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_fa12_xor1 = (fa(((h_u_dadda_pg_rca8_fa11_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa10_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa9_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa12_or0 = (fa(((h_u_dadda_pg_rca8_fa11_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa10_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa9_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_pg_rca8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_pg_rca8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_pg_rca8_fa13_xor1 = (fa(((h_u_dadda_pg_rca8_and_4_4 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_3_5 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_2_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa13_or0 = (fa(((h_u_dadda_pg_rca8_and_4_4 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_3_5 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_2_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_1_7 = and_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_pg_rca8_fa14_xor1 = (fa(((h_u_dadda_pg_rca8_and_1_7 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa1_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_ha2_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa14_or0 = (fa(((h_u_dadda_pg_rca8_and_1_7 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa1_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_ha2_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_fa15_xor1 = (fa(((h_u_dadda_pg_rca8_fa14_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa13_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa12_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa15_or0 = (fa(((h_u_dadda_pg_rca8_fa14_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa13_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa12_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_pg_rca8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_pg_rca8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_pg_rca8_fa16_xor1 = (fa(((h_u_dadda_pg_rca8_and_6_3 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_5_4 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa16_or0 = (fa(((h_u_dadda_pg_rca8_and_6_3 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_5_4 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_pg_rca8_and_2_7 = and_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_pg_rca8_fa17_xor1 = (fa(((h_u_dadda_pg_rca8_and_3_6 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_2_7 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa2_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa17_or0 = (fa(((h_u_dadda_pg_rca8_and_3_6 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_2_7 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa2_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_fa18_xor1 = (fa(((h_u_dadda_pg_rca8_fa17_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa16_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa15_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa18_or0 = (fa(((h_u_dadda_pg_rca8_fa17_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa16_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa15_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_7_3 = and_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_pg_rca8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_pg_rca8_fa19_xor1 = (fa(((h_u_dadda_pg_rca8_fa2_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_7_3 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa19_or0 = (fa(((h_u_dadda_pg_rca8_fa2_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_7_3 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_pg_rca8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_pg_rca8_and_3_7 = and_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_pg_rca8_fa20_xor1 = (fa(((h_u_dadda_pg_rca8_and_5_5 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_4_6 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_3_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa20_or0 = (fa(((h_u_dadda_pg_rca8_and_5_5 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_4_6 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_3_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_fa21_xor1 = (fa(((h_u_dadda_pg_rca8_fa20_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa19_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa18_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa21_or0 = (fa(((h_u_dadda_pg_rca8_fa20_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa19_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa18_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_7_4 = and_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_pg_rca8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_pg_rca8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_pg_rca8_fa22_xor1 = (fa(((h_u_dadda_pg_rca8_and_7_4 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_6_5 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_5_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa22_or0 = (fa(((h_u_dadda_pg_rca8_and_7_4 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_6_5 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_5_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_7_5 = and_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_pg_rca8_fa23_xor1 = (fa(((h_u_dadda_pg_rca8_fa22_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa21_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_7_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa23_or0 = (fa(((h_u_dadda_pg_rca8_fa22_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa21_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_7_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_pg_rca8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_pg_rca8_ha6_xor0 = (ha(((h_u_dadda_pg_rca8_and_2_0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_ha6_and0 = (ha(((h_u_dadda_pg_rca8_and_2_0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_pg_rca8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_pg_rca8_fa24_xor1 = (fa(((h_u_dadda_pg_rca8_ha6_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_1_2 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa24_or0 = (fa(((h_u_dadda_pg_rca8_ha6_and0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_1_2 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_pg_rca8_fa25_xor1 = (fa(((h_u_dadda_pg_rca8_fa24_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_0_4 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa25_or0 = (fa(((h_u_dadda_pg_rca8_fa24_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_0_4 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_fa26_xor1 = (fa(((h_u_dadda_pg_rca8_fa25_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa4_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa5_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa26_or0 = (fa(((h_u_dadda_pg_rca8_fa25_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa4_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa5_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_fa27_xor1 = (fa(((h_u_dadda_pg_rca8_fa26_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa6_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa7_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa27_or0 = (fa(((h_u_dadda_pg_rca8_fa26_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa6_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa7_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_fa28_xor1 = (fa(((h_u_dadda_pg_rca8_fa27_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa9_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa10_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa28_or0 = (fa(((h_u_dadda_pg_rca8_fa27_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa9_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa10_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_fa29_xor1 = (fa(((h_u_dadda_pg_rca8_fa28_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa12_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa13_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa29_or0 = (fa(((h_u_dadda_pg_rca8_fa28_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa12_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa13_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_fa30_xor1 = (fa(((h_u_dadda_pg_rca8_fa29_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa15_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa16_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa30_or0 = (fa(((h_u_dadda_pg_rca8_fa29_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa15_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa16_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_fa31_xor1 = (fa(((h_u_dadda_pg_rca8_fa30_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa18_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa19_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa31_or0 = (fa(((h_u_dadda_pg_rca8_fa30_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa18_xor1 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa19_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_4_7 = and_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_pg_rca8_fa32_xor1 = (fa(((h_u_dadda_pg_rca8_fa31_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_4_7 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa21_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa32_or0 = (fa(((h_u_dadda_pg_rca8_fa31_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_4_7 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa21_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_pg_rca8_and_5_7 = and_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_pg_rca8_fa33_xor1 = (fa(((h_u_dadda_pg_rca8_fa32_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_6_6 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa33_or0 = (fa(((h_u_dadda_pg_rca8_fa32_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_6_6 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_7_6 = and_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_pg_rca8_fa34_xor1 = (fa(((h_u_dadda_pg_rca8_fa33_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa23_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_pg_rca8_fa34_or0 = (fa(((h_u_dadda_pg_rca8_fa33_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_fa23_or0 >> 0) & 0x01), ((h_u_dadda_pg_rca8_and_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_pg_rca8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_pg_rca8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_pg_rca8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_pg_rca8_and_6_7 = and_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_pg_rca8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_pg_rca8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_pg_rca8_u_pg_rca14_a |= ((h_u_dadda_pg_rca8_and_1_0 >> 0) & 0x01) << 0; - h_u_dadda_pg_rca8_u_pg_rca14_a |= ((h_u_dadda_pg_rca8_and_0_2 >> 0) & 0x01) << 1; - h_u_dadda_pg_rca8_u_pg_rca14_a |= ((h_u_dadda_pg_rca8_ha3_xor0 >> 0) & 0x01) << 2; - h_u_dadda_pg_rca8_u_pg_rca14_a |= ((h_u_dadda_pg_rca8_ha4_xor0 >> 0) & 0x01) << 3; - h_u_dadda_pg_rca8_u_pg_rca14_a |= ((h_u_dadda_pg_rca8_ha5_xor0 >> 0) & 0x01) << 4; - h_u_dadda_pg_rca8_u_pg_rca14_a |= ((h_u_dadda_pg_rca8_fa8_xor1 >> 0) & 0x01) << 5; - h_u_dadda_pg_rca8_u_pg_rca14_a |= ((h_u_dadda_pg_rca8_fa11_xor1 >> 0) & 0x01) << 6; - h_u_dadda_pg_rca8_u_pg_rca14_a |= ((h_u_dadda_pg_rca8_fa14_xor1 >> 0) & 0x01) << 7; - h_u_dadda_pg_rca8_u_pg_rca14_a |= ((h_u_dadda_pg_rca8_fa17_xor1 >> 0) & 0x01) << 8; - h_u_dadda_pg_rca8_u_pg_rca14_a |= ((h_u_dadda_pg_rca8_fa20_xor1 >> 0) & 0x01) << 9; - h_u_dadda_pg_rca8_u_pg_rca14_a |= ((h_u_dadda_pg_rca8_fa22_xor1 >> 0) & 0x01) << 10; - h_u_dadda_pg_rca8_u_pg_rca14_a |= ((h_u_dadda_pg_rca8_fa23_xor1 >> 0) & 0x01) << 11; - h_u_dadda_pg_rca8_u_pg_rca14_a |= ((h_u_dadda_pg_rca8_and_6_7 >> 0) & 0x01) << 12; - h_u_dadda_pg_rca8_u_pg_rca14_a |= ((h_u_dadda_pg_rca8_fa34_or0 >> 0) & 0x01) << 13; - h_u_dadda_pg_rca8_u_pg_rca14_b |= ((h_u_dadda_pg_rca8_and_0_1 >> 0) & 0x01) << 0; - h_u_dadda_pg_rca8_u_pg_rca14_b |= ((h_u_dadda_pg_rca8_ha6_xor0 >> 0) & 0x01) << 1; - h_u_dadda_pg_rca8_u_pg_rca14_b |= ((h_u_dadda_pg_rca8_fa24_xor1 >> 0) & 0x01) << 2; - h_u_dadda_pg_rca8_u_pg_rca14_b |= ((h_u_dadda_pg_rca8_fa25_xor1 >> 0) & 0x01) << 3; - h_u_dadda_pg_rca8_u_pg_rca14_b |= ((h_u_dadda_pg_rca8_fa26_xor1 >> 0) & 0x01) << 4; - h_u_dadda_pg_rca8_u_pg_rca14_b |= ((h_u_dadda_pg_rca8_fa27_xor1 >> 0) & 0x01) << 5; - h_u_dadda_pg_rca8_u_pg_rca14_b |= ((h_u_dadda_pg_rca8_fa28_xor1 >> 0) & 0x01) << 6; - h_u_dadda_pg_rca8_u_pg_rca14_b |= ((h_u_dadda_pg_rca8_fa29_xor1 >> 0) & 0x01) << 7; - h_u_dadda_pg_rca8_u_pg_rca14_b |= ((h_u_dadda_pg_rca8_fa30_xor1 >> 0) & 0x01) << 8; - h_u_dadda_pg_rca8_u_pg_rca14_b |= ((h_u_dadda_pg_rca8_fa31_xor1 >> 0) & 0x01) << 9; - h_u_dadda_pg_rca8_u_pg_rca14_b |= ((h_u_dadda_pg_rca8_fa32_xor1 >> 0) & 0x01) << 10; - h_u_dadda_pg_rca8_u_pg_rca14_b |= ((h_u_dadda_pg_rca8_fa33_xor1 >> 0) & 0x01) << 11; - h_u_dadda_pg_rca8_u_pg_rca14_b |= ((h_u_dadda_pg_rca8_fa34_xor1 >> 0) & 0x01) << 12; - h_u_dadda_pg_rca8_u_pg_rca14_b |= ((h_u_dadda_pg_rca8_and_7_7 >> 0) & 0x01) << 13; - h_u_dadda_pg_rca8_u_pg_rca14_out = u_pg_rca14(h_u_dadda_pg_rca8_u_pg_rca14_a, h_u_dadda_pg_rca8_u_pg_rca14_b); - - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_and_0_0 >> 0) & 0x01) << 0; - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_u_pg_rca14_out >> 0) & 0x01) << 1; - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_u_pg_rca14_out >> 1) & 0x01) << 2; - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_u_pg_rca14_out >> 2) & 0x01) << 3; - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_u_pg_rca14_out >> 3) & 0x01) << 4; - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_u_pg_rca14_out >> 4) & 0x01) << 5; - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_u_pg_rca14_out >> 5) & 0x01) << 6; - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_u_pg_rca14_out >> 6) & 0x01) << 7; - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_u_pg_rca14_out >> 7) & 0x01) << 8; - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_u_pg_rca14_out >> 8) & 0x01) << 9; - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_u_pg_rca14_out >> 9) & 0x01) << 10; - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_u_pg_rca14_out >> 10) & 0x01) << 11; - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_u_pg_rca14_out >> 11) & 0x01) << 12; - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_u_pg_rca14_out >> 12) & 0x01) << 13; - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_u_pg_rca14_out >> 13) & 0x01) << 14; - h_u_dadda_pg_rca8_out |= ((h_u_dadda_pg_rca8_u_pg_rca14_out >> 14) & 0x01) << 15; - return h_u_dadda_pg_rca8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == h_u_dadda_pg_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_rca4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_rca4.c deleted file mode 100644 index 5f17185..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_rca4.c +++ /dev/null @@ -1,181 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint64_t u_rca6(uint64_t a, uint64_t b){ - uint8_t u_rca6_out = 0; - uint8_t u_rca6_ha_xor0 = 0; - uint8_t u_rca6_ha_and0 = 0; - uint8_t u_rca6_fa1_xor1 = 0; - uint8_t u_rca6_fa1_or0 = 0; - uint8_t u_rca6_fa2_xor1 = 0; - uint8_t u_rca6_fa2_or0 = 0; - uint8_t u_rca6_fa3_xor1 = 0; - uint8_t u_rca6_fa3_or0 = 0; - uint8_t u_rca6_fa4_xor1 = 0; - uint8_t u_rca6_fa4_or0 = 0; - uint8_t u_rca6_fa5_xor1 = 0; - uint8_t u_rca6_fa5_or0 = 0; - - u_rca6_ha_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_ha_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa1_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca6_ha_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa1_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca6_ha_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa2_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca6_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa2_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca6_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa3_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca6_fa2_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa3_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca6_fa2_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa4_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca6_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa4_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca6_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa5_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca6_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa5_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca6_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - - u_rca6_out |= ((u_rca6_ha_xor0 >> 0) & 0x01) << 0; - u_rca6_out |= ((u_rca6_fa1_xor1 >> 0) & 0x01) << 1; - u_rca6_out |= ((u_rca6_fa2_xor1 >> 0) & 0x01) << 2; - u_rca6_out |= ((u_rca6_fa3_xor1 >> 0) & 0x01) << 3; - u_rca6_out |= ((u_rca6_fa4_xor1 >> 0) & 0x01) << 4; - u_rca6_out |= ((u_rca6_fa5_xor1 >> 0) & 0x01) << 5; - u_rca6_out |= ((u_rca6_fa5_or0 >> 0) & 0x01) << 6; - return u_rca6_out; -} - -uint64_t h_u_dadda_rca4(uint64_t a, uint64_t b){ - uint8_t h_u_dadda_rca4_out = 0; - uint8_t h_u_dadda_rca4_and_3_0 = 0; - uint8_t h_u_dadda_rca4_and_2_1 = 0; - uint8_t h_u_dadda_rca4_ha0_xor0 = 0; - uint8_t h_u_dadda_rca4_ha0_and0 = 0; - uint8_t h_u_dadda_rca4_and_3_1 = 0; - uint8_t h_u_dadda_rca4_ha1_xor0 = 0; - uint8_t h_u_dadda_rca4_ha1_and0 = 0; - uint8_t h_u_dadda_rca4_and_2_0 = 0; - uint8_t h_u_dadda_rca4_and_1_1 = 0; - uint8_t h_u_dadda_rca4_ha2_xor0 = 0; - uint8_t h_u_dadda_rca4_ha2_and0 = 0; - uint8_t h_u_dadda_rca4_and_1_2 = 0; - uint8_t h_u_dadda_rca4_and_0_3 = 0; - uint8_t h_u_dadda_rca4_fa0_xor1 = 0; - uint8_t h_u_dadda_rca4_fa0_or0 = 0; - uint8_t h_u_dadda_rca4_and_2_2 = 0; - uint8_t h_u_dadda_rca4_and_1_3 = 0; - uint8_t h_u_dadda_rca4_fa1_xor1 = 0; - uint8_t h_u_dadda_rca4_fa1_or0 = 0; - uint8_t h_u_dadda_rca4_and_3_2 = 0; - uint8_t h_u_dadda_rca4_fa2_xor1 = 0; - uint8_t h_u_dadda_rca4_fa2_or0 = 0; - uint8_t h_u_dadda_rca4_and_0_0 = 0; - uint8_t h_u_dadda_rca4_and_1_0 = 0; - uint8_t h_u_dadda_rca4_and_0_2 = 0; - uint8_t h_u_dadda_rca4_and_2_3 = 0; - uint8_t h_u_dadda_rca4_and_0_1 = 0; - uint8_t h_u_dadda_rca4_and_3_3 = 0; - uint64_t h_u_dadda_rca4_u_rca6_a = 0; - uint64_t h_u_dadda_rca4_u_rca6_b = 0; - uint64_t h_u_dadda_rca4_u_rca6_out = 0; - - h_u_dadda_rca4_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_rca4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_rca4_ha0_xor0 = (ha(((h_u_dadda_rca4_and_3_0 >> 0) & 0x01), ((h_u_dadda_rca4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca4_ha0_and0 = (ha(((h_u_dadda_rca4_and_3_0 >> 0) & 0x01), ((h_u_dadda_rca4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca4_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_rca4_ha1_xor0 = (ha(((h_u_dadda_rca4_ha0_and0 >> 0) & 0x01), ((h_u_dadda_rca4_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca4_ha1_and0 = (ha(((h_u_dadda_rca4_ha0_and0 >> 0) & 0x01), ((h_u_dadda_rca4_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_rca4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_rca4_ha2_xor0 = (ha(((h_u_dadda_rca4_and_2_0 >> 0) & 0x01), ((h_u_dadda_rca4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca4_ha2_and0 = (ha(((h_u_dadda_rca4_and_2_0 >> 0) & 0x01), ((h_u_dadda_rca4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_rca4_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_rca4_fa0_xor1 = (fa(((h_u_dadda_rca4_ha2_and0 >> 0) & 0x01), ((h_u_dadda_rca4_and_1_2 >> 0) & 0x01), ((h_u_dadda_rca4_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca4_fa0_or0 = (fa(((h_u_dadda_rca4_ha2_and0 >> 0) & 0x01), ((h_u_dadda_rca4_and_1_2 >> 0) & 0x01), ((h_u_dadda_rca4_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_rca4_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_rca4_fa1_xor1 = (fa(((h_u_dadda_rca4_fa0_or0 >> 0) & 0x01), ((h_u_dadda_rca4_and_2_2 >> 0) & 0x01), ((h_u_dadda_rca4_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca4_fa1_or0 = (fa(((h_u_dadda_rca4_fa0_or0 >> 0) & 0x01), ((h_u_dadda_rca4_and_2_2 >> 0) & 0x01), ((h_u_dadda_rca4_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca4_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_rca4_fa2_xor1 = (fa(((h_u_dadda_rca4_fa1_or0 >> 0) & 0x01), ((h_u_dadda_rca4_ha1_and0 >> 0) & 0x01), ((h_u_dadda_rca4_and_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca4_fa2_or0 = (fa(((h_u_dadda_rca4_fa1_or0 >> 0) & 0x01), ((h_u_dadda_rca4_ha1_and0 >> 0) & 0x01), ((h_u_dadda_rca4_and_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_rca4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_rca4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_rca4_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_rca4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_rca4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_rca4_u_rca6_a |= ((h_u_dadda_rca4_and_1_0 >> 0) & 0x01) << 0; - h_u_dadda_rca4_u_rca6_a |= ((h_u_dadda_rca4_and_0_2 >> 0) & 0x01) << 1; - h_u_dadda_rca4_u_rca6_a |= ((h_u_dadda_rca4_ha0_xor0 >> 0) & 0x01) << 2; - h_u_dadda_rca4_u_rca6_a |= ((h_u_dadda_rca4_ha1_xor0 >> 0) & 0x01) << 3; - h_u_dadda_rca4_u_rca6_a |= ((h_u_dadda_rca4_and_2_3 >> 0) & 0x01) << 4; - h_u_dadda_rca4_u_rca6_a |= ((h_u_dadda_rca4_fa2_or0 >> 0) & 0x01) << 5; - h_u_dadda_rca4_u_rca6_b |= ((h_u_dadda_rca4_and_0_1 >> 0) & 0x01) << 0; - h_u_dadda_rca4_u_rca6_b |= ((h_u_dadda_rca4_ha2_xor0 >> 0) & 0x01) << 1; - h_u_dadda_rca4_u_rca6_b |= ((h_u_dadda_rca4_fa0_xor1 >> 0) & 0x01) << 2; - h_u_dadda_rca4_u_rca6_b |= ((h_u_dadda_rca4_fa1_xor1 >> 0) & 0x01) << 3; - h_u_dadda_rca4_u_rca6_b |= ((h_u_dadda_rca4_fa2_xor1 >> 0) & 0x01) << 4; - h_u_dadda_rca4_u_rca6_b |= ((h_u_dadda_rca4_and_3_3 >> 0) & 0x01) << 5; - h_u_dadda_rca4_u_rca6_out = u_rca6(h_u_dadda_rca4_u_rca6_a, h_u_dadda_rca4_u_rca6_b); - - h_u_dadda_rca4_out |= ((h_u_dadda_rca4_and_0_0 >> 0) & 0x01) << 0; - h_u_dadda_rca4_out |= ((h_u_dadda_rca4_u_rca6_out >> 0) & 0x01) << 1; - h_u_dadda_rca4_out |= ((h_u_dadda_rca4_u_rca6_out >> 1) & 0x01) << 2; - h_u_dadda_rca4_out |= ((h_u_dadda_rca4_u_rca6_out >> 2) & 0x01) << 3; - h_u_dadda_rca4_out |= ((h_u_dadda_rca4_u_rca6_out >> 3) & 0x01) << 4; - h_u_dadda_rca4_out |= ((h_u_dadda_rca4_u_rca6_out >> 4) & 0x01) << 5; - h_u_dadda_rca4_out |= ((h_u_dadda_rca4_u_rca6_out >> 5) & 0x01) << 6; - h_u_dadda_rca4_out |= ((h_u_dadda_rca4_u_rca6_out >> 6) & 0x01) << 7; - return h_u_dadda_rca4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == h_u_dadda_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_rca8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_rca8.c deleted file mode 100644 index cca6449..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_dadda_rca8.c +++ /dev/null @@ -1,485 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint64_t u_rca14(uint64_t a, uint64_t b){ - uint64_t u_rca14_out = 0; - uint8_t u_rca14_ha_xor0 = 0; - uint8_t u_rca14_ha_and0 = 0; - uint8_t u_rca14_fa1_xor1 = 0; - uint8_t u_rca14_fa1_or0 = 0; - uint8_t u_rca14_fa2_xor1 = 0; - uint8_t u_rca14_fa2_or0 = 0; - uint8_t u_rca14_fa3_xor1 = 0; - uint8_t u_rca14_fa3_or0 = 0; - uint8_t u_rca14_fa4_xor1 = 0; - uint8_t u_rca14_fa4_or0 = 0; - uint8_t u_rca14_fa5_xor1 = 0; - uint8_t u_rca14_fa5_or0 = 0; - uint8_t u_rca14_fa6_xor1 = 0; - uint8_t u_rca14_fa6_or0 = 0; - uint8_t u_rca14_fa7_xor1 = 0; - uint8_t u_rca14_fa7_or0 = 0; - uint8_t u_rca14_fa8_xor1 = 0; - uint8_t u_rca14_fa8_or0 = 0; - uint8_t u_rca14_fa9_xor1 = 0; - uint8_t u_rca14_fa9_or0 = 0; - uint8_t u_rca14_fa10_xor1 = 0; - uint8_t u_rca14_fa10_or0 = 0; - uint8_t u_rca14_fa11_xor1 = 0; - uint8_t u_rca14_fa11_or0 = 0; - uint8_t u_rca14_fa12_xor1 = 0; - uint8_t u_rca14_fa12_or0 = 0; - uint8_t u_rca14_fa13_xor1 = 0; - uint8_t u_rca14_fa13_or0 = 0; - - u_rca14_ha_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_ha_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa1_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca14_ha_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa1_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca14_ha_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa2_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca14_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa2_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca14_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa3_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca14_fa2_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa3_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca14_fa2_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa4_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca14_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa4_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca14_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa5_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca14_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa5_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca14_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa6_xor1 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_rca14_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa6_or0 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_rca14_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa7_xor1 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_rca14_fa6_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa7_or0 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_rca14_fa6_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa8_xor1 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_rca14_fa7_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa8_or0 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_rca14_fa7_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa9_xor1 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_rca14_fa8_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa9_or0 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_rca14_fa8_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa10_xor1 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_rca14_fa9_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa10_or0 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_rca14_fa9_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa11_xor1 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_rca14_fa10_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa11_or0 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_rca14_fa10_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa12_xor1 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_rca14_fa11_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa12_or0 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_rca14_fa11_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa13_xor1 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_rca14_fa12_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa13_or0 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_rca14_fa12_or0 >> 0) & 0x01)) >> 1) & 0x01; - - u_rca14_out |= ((u_rca14_ha_xor0 >> 0) & 0x01) << 0; - u_rca14_out |= ((u_rca14_fa1_xor1 >> 0) & 0x01) << 1; - u_rca14_out |= ((u_rca14_fa2_xor1 >> 0) & 0x01) << 2; - u_rca14_out |= ((u_rca14_fa3_xor1 >> 0) & 0x01) << 3; - u_rca14_out |= ((u_rca14_fa4_xor1 >> 0) & 0x01) << 4; - u_rca14_out |= ((u_rca14_fa5_xor1 >> 0) & 0x01) << 5; - u_rca14_out |= ((u_rca14_fa6_xor1 >> 0) & 0x01) << 6; - u_rca14_out |= ((u_rca14_fa7_xor1 >> 0) & 0x01) << 7; - u_rca14_out |= ((u_rca14_fa8_xor1 >> 0) & 0x01) << 8; - u_rca14_out |= ((u_rca14_fa9_xor1 >> 0) & 0x01) << 9; - u_rca14_out |= ((u_rca14_fa10_xor1 >> 0) & 0x01) << 10; - u_rca14_out |= ((u_rca14_fa11_xor1 >> 0) & 0x01) << 11; - u_rca14_out |= ((u_rca14_fa12_xor1 >> 0) & 0x01) << 12; - u_rca14_out |= ((u_rca14_fa13_xor1 >> 0) & 0x01) << 13; - u_rca14_out |= ((u_rca14_fa13_or0 >> 0) & 0x01) << 14; - return u_rca14_out; -} - -uint64_t h_u_dadda_rca8(uint64_t a, uint64_t b){ - uint64_t h_u_dadda_rca8_out = 0; - uint8_t h_u_dadda_rca8_and_6_0 = 0; - uint8_t h_u_dadda_rca8_and_5_1 = 0; - uint8_t h_u_dadda_rca8_ha0_xor0 = 0; - uint8_t h_u_dadda_rca8_ha0_and0 = 0; - uint8_t h_u_dadda_rca8_and_7_0 = 0; - uint8_t h_u_dadda_rca8_and_6_1 = 0; - uint8_t h_u_dadda_rca8_fa0_xor1 = 0; - uint8_t h_u_dadda_rca8_fa0_or0 = 0; - uint8_t h_u_dadda_rca8_and_5_2 = 0; - uint8_t h_u_dadda_rca8_and_4_3 = 0; - uint8_t h_u_dadda_rca8_ha1_xor0 = 0; - uint8_t h_u_dadda_rca8_ha1_and0 = 0; - uint8_t h_u_dadda_rca8_and_7_1 = 0; - uint8_t h_u_dadda_rca8_fa1_xor1 = 0; - uint8_t h_u_dadda_rca8_fa1_or0 = 0; - uint8_t h_u_dadda_rca8_and_6_2 = 0; - uint8_t h_u_dadda_rca8_and_5_3 = 0; - uint8_t h_u_dadda_rca8_ha2_xor0 = 0; - uint8_t h_u_dadda_rca8_ha2_and0 = 0; - uint8_t h_u_dadda_rca8_and_7_2 = 0; - uint8_t h_u_dadda_rca8_fa2_xor1 = 0; - uint8_t h_u_dadda_rca8_fa2_or0 = 0; - uint8_t h_u_dadda_rca8_and_3_0 = 0; - uint8_t h_u_dadda_rca8_and_2_1 = 0; - uint8_t h_u_dadda_rca8_ha3_xor0 = 0; - uint8_t h_u_dadda_rca8_ha3_and0 = 0; - uint8_t h_u_dadda_rca8_and_4_0 = 0; - uint8_t h_u_dadda_rca8_and_3_1 = 0; - uint8_t h_u_dadda_rca8_fa3_xor1 = 0; - uint8_t h_u_dadda_rca8_fa3_or0 = 0; - uint8_t h_u_dadda_rca8_and_2_2 = 0; - uint8_t h_u_dadda_rca8_and_1_3 = 0; - uint8_t h_u_dadda_rca8_ha4_xor0 = 0; - uint8_t h_u_dadda_rca8_ha4_and0 = 0; - uint8_t h_u_dadda_rca8_and_5_0 = 0; - uint8_t h_u_dadda_rca8_fa4_xor1 = 0; - uint8_t h_u_dadda_rca8_fa4_or0 = 0; - uint8_t h_u_dadda_rca8_and_4_1 = 0; - uint8_t h_u_dadda_rca8_and_3_2 = 0; - uint8_t h_u_dadda_rca8_and_2_3 = 0; - uint8_t h_u_dadda_rca8_fa5_xor1 = 0; - uint8_t h_u_dadda_rca8_fa5_or0 = 0; - uint8_t h_u_dadda_rca8_and_1_4 = 0; - uint8_t h_u_dadda_rca8_and_0_5 = 0; - uint8_t h_u_dadda_rca8_ha5_xor0 = 0; - uint8_t h_u_dadda_rca8_ha5_and0 = 0; - uint8_t h_u_dadda_rca8_fa6_xor1 = 0; - uint8_t h_u_dadda_rca8_fa6_or0 = 0; - uint8_t h_u_dadda_rca8_and_4_2 = 0; - uint8_t h_u_dadda_rca8_and_3_3 = 0; - uint8_t h_u_dadda_rca8_and_2_4 = 0; - uint8_t h_u_dadda_rca8_fa7_xor1 = 0; - uint8_t h_u_dadda_rca8_fa7_or0 = 0; - uint8_t h_u_dadda_rca8_and_1_5 = 0; - uint8_t h_u_dadda_rca8_and_0_6 = 0; - uint8_t h_u_dadda_rca8_fa8_xor1 = 0; - uint8_t h_u_dadda_rca8_fa8_or0 = 0; - uint8_t h_u_dadda_rca8_fa9_xor1 = 0; - uint8_t h_u_dadda_rca8_fa9_or0 = 0; - uint8_t h_u_dadda_rca8_and_3_4 = 0; - uint8_t h_u_dadda_rca8_and_2_5 = 0; - uint8_t h_u_dadda_rca8_and_1_6 = 0; - uint8_t h_u_dadda_rca8_fa10_xor1 = 0; - uint8_t h_u_dadda_rca8_fa10_or0 = 0; - uint8_t h_u_dadda_rca8_and_0_7 = 0; - uint8_t h_u_dadda_rca8_fa11_xor1 = 0; - uint8_t h_u_dadda_rca8_fa11_or0 = 0; - uint8_t h_u_dadda_rca8_fa12_xor1 = 0; - uint8_t h_u_dadda_rca8_fa12_or0 = 0; - uint8_t h_u_dadda_rca8_and_4_4 = 0; - uint8_t h_u_dadda_rca8_and_3_5 = 0; - uint8_t h_u_dadda_rca8_and_2_6 = 0; - uint8_t h_u_dadda_rca8_fa13_xor1 = 0; - uint8_t h_u_dadda_rca8_fa13_or0 = 0; - uint8_t h_u_dadda_rca8_and_1_7 = 0; - uint8_t h_u_dadda_rca8_fa14_xor1 = 0; - uint8_t h_u_dadda_rca8_fa14_or0 = 0; - uint8_t h_u_dadda_rca8_fa15_xor1 = 0; - uint8_t h_u_dadda_rca8_fa15_or0 = 0; - uint8_t h_u_dadda_rca8_and_6_3 = 0; - uint8_t h_u_dadda_rca8_and_5_4 = 0; - uint8_t h_u_dadda_rca8_and_4_5 = 0; - uint8_t h_u_dadda_rca8_fa16_xor1 = 0; - uint8_t h_u_dadda_rca8_fa16_or0 = 0; - uint8_t h_u_dadda_rca8_and_3_6 = 0; - uint8_t h_u_dadda_rca8_and_2_7 = 0; - uint8_t h_u_dadda_rca8_fa17_xor1 = 0; - uint8_t h_u_dadda_rca8_fa17_or0 = 0; - uint8_t h_u_dadda_rca8_fa18_xor1 = 0; - uint8_t h_u_dadda_rca8_fa18_or0 = 0; - uint8_t h_u_dadda_rca8_and_7_3 = 0; - uint8_t h_u_dadda_rca8_and_6_4 = 0; - uint8_t h_u_dadda_rca8_fa19_xor1 = 0; - uint8_t h_u_dadda_rca8_fa19_or0 = 0; - uint8_t h_u_dadda_rca8_and_5_5 = 0; - uint8_t h_u_dadda_rca8_and_4_6 = 0; - uint8_t h_u_dadda_rca8_and_3_7 = 0; - uint8_t h_u_dadda_rca8_fa20_xor1 = 0; - uint8_t h_u_dadda_rca8_fa20_or0 = 0; - uint8_t h_u_dadda_rca8_fa21_xor1 = 0; - uint8_t h_u_dadda_rca8_fa21_or0 = 0; - uint8_t h_u_dadda_rca8_and_7_4 = 0; - uint8_t h_u_dadda_rca8_and_6_5 = 0; - uint8_t h_u_dadda_rca8_and_5_6 = 0; - uint8_t h_u_dadda_rca8_fa22_xor1 = 0; - uint8_t h_u_dadda_rca8_fa22_or0 = 0; - uint8_t h_u_dadda_rca8_and_7_5 = 0; - uint8_t h_u_dadda_rca8_fa23_xor1 = 0; - uint8_t h_u_dadda_rca8_fa23_or0 = 0; - uint8_t h_u_dadda_rca8_and_2_0 = 0; - uint8_t h_u_dadda_rca8_and_1_1 = 0; - uint8_t h_u_dadda_rca8_ha6_xor0 = 0; - uint8_t h_u_dadda_rca8_ha6_and0 = 0; - uint8_t h_u_dadda_rca8_and_1_2 = 0; - uint8_t h_u_dadda_rca8_and_0_3 = 0; - uint8_t h_u_dadda_rca8_fa24_xor1 = 0; - uint8_t h_u_dadda_rca8_fa24_or0 = 0; - uint8_t h_u_dadda_rca8_and_0_4 = 0; - uint8_t h_u_dadda_rca8_fa25_xor1 = 0; - uint8_t h_u_dadda_rca8_fa25_or0 = 0; - uint8_t h_u_dadda_rca8_fa26_xor1 = 0; - uint8_t h_u_dadda_rca8_fa26_or0 = 0; - uint8_t h_u_dadda_rca8_fa27_xor1 = 0; - uint8_t h_u_dadda_rca8_fa27_or0 = 0; - uint8_t h_u_dadda_rca8_fa28_xor1 = 0; - uint8_t h_u_dadda_rca8_fa28_or0 = 0; - uint8_t h_u_dadda_rca8_fa29_xor1 = 0; - uint8_t h_u_dadda_rca8_fa29_or0 = 0; - uint8_t h_u_dadda_rca8_fa30_xor1 = 0; - uint8_t h_u_dadda_rca8_fa30_or0 = 0; - uint8_t h_u_dadda_rca8_fa31_xor1 = 0; - uint8_t h_u_dadda_rca8_fa31_or0 = 0; - uint8_t h_u_dadda_rca8_and_4_7 = 0; - uint8_t h_u_dadda_rca8_fa32_xor1 = 0; - uint8_t h_u_dadda_rca8_fa32_or0 = 0; - uint8_t h_u_dadda_rca8_and_6_6 = 0; - uint8_t h_u_dadda_rca8_and_5_7 = 0; - uint8_t h_u_dadda_rca8_fa33_xor1 = 0; - uint8_t h_u_dadda_rca8_fa33_or0 = 0; - uint8_t h_u_dadda_rca8_and_7_6 = 0; - uint8_t h_u_dadda_rca8_fa34_xor1 = 0; - uint8_t h_u_dadda_rca8_fa34_or0 = 0; - uint8_t h_u_dadda_rca8_and_0_0 = 0; - uint8_t h_u_dadda_rca8_and_1_0 = 0; - uint8_t h_u_dadda_rca8_and_0_2 = 0; - uint8_t h_u_dadda_rca8_and_6_7 = 0; - uint8_t h_u_dadda_rca8_and_0_1 = 0; - uint8_t h_u_dadda_rca8_and_7_7 = 0; - uint64_t h_u_dadda_rca8_u_rca14_a = 0; - uint64_t h_u_dadda_rca8_u_rca14_b = 0; - uint64_t h_u_dadda_rca8_u_rca14_out = 0; - - h_u_dadda_rca8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_rca8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_rca8_ha0_xor0 = (ha(((h_u_dadda_rca8_and_6_0 >> 0) & 0x01), ((h_u_dadda_rca8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_ha0_and0 = (ha(((h_u_dadda_rca8_and_6_0 >> 0) & 0x01), ((h_u_dadda_rca8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_7_0 = and_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_rca8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_rca8_fa0_xor1 = (fa(((h_u_dadda_rca8_ha0_and0 >> 0) & 0x01), ((h_u_dadda_rca8_and_7_0 >> 0) & 0x01), ((h_u_dadda_rca8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa0_or0 = (fa(((h_u_dadda_rca8_ha0_and0 >> 0) & 0x01), ((h_u_dadda_rca8_and_7_0 >> 0) & 0x01), ((h_u_dadda_rca8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_rca8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_rca8_ha1_xor0 = (ha(((h_u_dadda_rca8_and_5_2 >> 0) & 0x01), ((h_u_dadda_rca8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_ha1_and0 = (ha(((h_u_dadda_rca8_and_5_2 >> 0) & 0x01), ((h_u_dadda_rca8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_7_1 = and_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_rca8_fa1_xor1 = (fa(((h_u_dadda_rca8_ha1_and0 >> 0) & 0x01), ((h_u_dadda_rca8_fa0_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_7_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa1_or0 = (fa(((h_u_dadda_rca8_ha1_and0 >> 0) & 0x01), ((h_u_dadda_rca8_fa0_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_7_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_rca8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_rca8_ha2_xor0 = (ha(((h_u_dadda_rca8_and_6_2 >> 0) & 0x01), ((h_u_dadda_rca8_and_5_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_ha2_and0 = (ha(((h_u_dadda_rca8_and_6_2 >> 0) & 0x01), ((h_u_dadda_rca8_and_5_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_7_2 = and_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_rca8_fa2_xor1 = (fa(((h_u_dadda_rca8_ha2_and0 >> 0) & 0x01), ((h_u_dadda_rca8_fa1_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_7_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa2_or0 = (fa(((h_u_dadda_rca8_ha2_and0 >> 0) & 0x01), ((h_u_dadda_rca8_fa1_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_7_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_rca8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_rca8_ha3_xor0 = (ha(((h_u_dadda_rca8_and_3_0 >> 0) & 0x01), ((h_u_dadda_rca8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_ha3_and0 = (ha(((h_u_dadda_rca8_and_3_0 >> 0) & 0x01), ((h_u_dadda_rca8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_rca8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_rca8_fa3_xor1 = (fa(((h_u_dadda_rca8_ha3_and0 >> 0) & 0x01), ((h_u_dadda_rca8_and_4_0 >> 0) & 0x01), ((h_u_dadda_rca8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa3_or0 = (fa(((h_u_dadda_rca8_ha3_and0 >> 0) & 0x01), ((h_u_dadda_rca8_and_4_0 >> 0) & 0x01), ((h_u_dadda_rca8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_rca8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_rca8_ha4_xor0 = (ha(((h_u_dadda_rca8_and_2_2 >> 0) & 0x01), ((h_u_dadda_rca8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_ha4_and0 = (ha(((h_u_dadda_rca8_and_2_2 >> 0) & 0x01), ((h_u_dadda_rca8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_rca8_fa4_xor1 = (fa(((h_u_dadda_rca8_ha4_and0 >> 0) & 0x01), ((h_u_dadda_rca8_fa3_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_5_0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa4_or0 = (fa(((h_u_dadda_rca8_ha4_and0 >> 0) & 0x01), ((h_u_dadda_rca8_fa3_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_5_0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_rca8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_rca8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_rca8_fa5_xor1 = (fa(((h_u_dadda_rca8_and_4_1 >> 0) & 0x01), ((h_u_dadda_rca8_and_3_2 >> 0) & 0x01), ((h_u_dadda_rca8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa5_or0 = (fa(((h_u_dadda_rca8_and_4_1 >> 0) & 0x01), ((h_u_dadda_rca8_and_3_2 >> 0) & 0x01), ((h_u_dadda_rca8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_rca8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_rca8_ha5_xor0 = (ha(((h_u_dadda_rca8_and_1_4 >> 0) & 0x01), ((h_u_dadda_rca8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_ha5_and0 = (ha(((h_u_dadda_rca8_and_1_4 >> 0) & 0x01), ((h_u_dadda_rca8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_fa6_xor1 = (fa(((h_u_dadda_rca8_ha5_and0 >> 0) & 0x01), ((h_u_dadda_rca8_fa5_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa6_or0 = (fa(((h_u_dadda_rca8_ha5_and0 >> 0) & 0x01), ((h_u_dadda_rca8_fa5_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_rca8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_rca8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_rca8_fa7_xor1 = (fa(((h_u_dadda_rca8_and_4_2 >> 0) & 0x01), ((h_u_dadda_rca8_and_3_3 >> 0) & 0x01), ((h_u_dadda_rca8_and_2_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa7_or0 = (fa(((h_u_dadda_rca8_and_4_2 >> 0) & 0x01), ((h_u_dadda_rca8_and_3_3 >> 0) & 0x01), ((h_u_dadda_rca8_and_2_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_rca8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_rca8_fa8_xor1 = (fa(((h_u_dadda_rca8_and_1_5 >> 0) & 0x01), ((h_u_dadda_rca8_and_0_6 >> 0) & 0x01), ((h_u_dadda_rca8_ha0_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa8_or0 = (fa(((h_u_dadda_rca8_and_1_5 >> 0) & 0x01), ((h_u_dadda_rca8_and_0_6 >> 0) & 0x01), ((h_u_dadda_rca8_ha0_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_fa9_xor1 = (fa(((h_u_dadda_rca8_fa8_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa7_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa6_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa9_or0 = (fa(((h_u_dadda_rca8_fa8_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa7_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa6_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_rca8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_rca8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_rca8_fa10_xor1 = (fa(((h_u_dadda_rca8_and_3_4 >> 0) & 0x01), ((h_u_dadda_rca8_and_2_5 >> 0) & 0x01), ((h_u_dadda_rca8_and_1_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa10_or0 = (fa(((h_u_dadda_rca8_and_3_4 >> 0) & 0x01), ((h_u_dadda_rca8_and_2_5 >> 0) & 0x01), ((h_u_dadda_rca8_and_1_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_0_7 = and_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_rca8_fa11_xor1 = (fa(((h_u_dadda_rca8_and_0_7 >> 0) & 0x01), ((h_u_dadda_rca8_fa0_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_ha1_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa11_or0 = (fa(((h_u_dadda_rca8_and_0_7 >> 0) & 0x01), ((h_u_dadda_rca8_fa0_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_ha1_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_fa12_xor1 = (fa(((h_u_dadda_rca8_fa11_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa10_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa9_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa12_or0 = (fa(((h_u_dadda_rca8_fa11_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa10_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa9_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_rca8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_rca8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_rca8_fa13_xor1 = (fa(((h_u_dadda_rca8_and_4_4 >> 0) & 0x01), ((h_u_dadda_rca8_and_3_5 >> 0) & 0x01), ((h_u_dadda_rca8_and_2_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa13_or0 = (fa(((h_u_dadda_rca8_and_4_4 >> 0) & 0x01), ((h_u_dadda_rca8_and_3_5 >> 0) & 0x01), ((h_u_dadda_rca8_and_2_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_1_7 = and_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_rca8_fa14_xor1 = (fa(((h_u_dadda_rca8_and_1_7 >> 0) & 0x01), ((h_u_dadda_rca8_fa1_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_ha2_xor0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa14_or0 = (fa(((h_u_dadda_rca8_and_1_7 >> 0) & 0x01), ((h_u_dadda_rca8_fa1_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_ha2_xor0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_fa15_xor1 = (fa(((h_u_dadda_rca8_fa14_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa13_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa12_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa15_or0 = (fa(((h_u_dadda_rca8_fa14_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa13_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa12_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_rca8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_rca8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_rca8_fa16_xor1 = (fa(((h_u_dadda_rca8_and_6_3 >> 0) & 0x01), ((h_u_dadda_rca8_and_5_4 >> 0) & 0x01), ((h_u_dadda_rca8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa16_or0 = (fa(((h_u_dadda_rca8_and_6_3 >> 0) & 0x01), ((h_u_dadda_rca8_and_5_4 >> 0) & 0x01), ((h_u_dadda_rca8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_rca8_and_2_7 = and_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_rca8_fa17_xor1 = (fa(((h_u_dadda_rca8_and_3_6 >> 0) & 0x01), ((h_u_dadda_rca8_and_2_7 >> 0) & 0x01), ((h_u_dadda_rca8_fa2_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa17_or0 = (fa(((h_u_dadda_rca8_and_3_6 >> 0) & 0x01), ((h_u_dadda_rca8_and_2_7 >> 0) & 0x01), ((h_u_dadda_rca8_fa2_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_fa18_xor1 = (fa(((h_u_dadda_rca8_fa17_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa16_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa15_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa18_or0 = (fa(((h_u_dadda_rca8_fa17_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa16_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa15_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_7_3 = and_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_rca8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_rca8_fa19_xor1 = (fa(((h_u_dadda_rca8_fa2_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_7_3 >> 0) & 0x01), ((h_u_dadda_rca8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa19_or0 = (fa(((h_u_dadda_rca8_fa2_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_7_3 >> 0) & 0x01), ((h_u_dadda_rca8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_rca8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_rca8_and_3_7 = and_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_rca8_fa20_xor1 = (fa(((h_u_dadda_rca8_and_5_5 >> 0) & 0x01), ((h_u_dadda_rca8_and_4_6 >> 0) & 0x01), ((h_u_dadda_rca8_and_3_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa20_or0 = (fa(((h_u_dadda_rca8_and_5_5 >> 0) & 0x01), ((h_u_dadda_rca8_and_4_6 >> 0) & 0x01), ((h_u_dadda_rca8_and_3_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_fa21_xor1 = (fa(((h_u_dadda_rca8_fa20_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa19_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa18_or0 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa21_or0 = (fa(((h_u_dadda_rca8_fa20_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa19_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa18_or0 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_7_4 = and_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_rca8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_rca8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_rca8_fa22_xor1 = (fa(((h_u_dadda_rca8_and_7_4 >> 0) & 0x01), ((h_u_dadda_rca8_and_6_5 >> 0) & 0x01), ((h_u_dadda_rca8_and_5_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa22_or0 = (fa(((h_u_dadda_rca8_and_7_4 >> 0) & 0x01), ((h_u_dadda_rca8_and_6_5 >> 0) & 0x01), ((h_u_dadda_rca8_and_5_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_7_5 = and_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_u_dadda_rca8_fa23_xor1 = (fa(((h_u_dadda_rca8_fa22_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa21_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_7_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa23_or0 = (fa(((h_u_dadda_rca8_fa22_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa21_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_7_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_rca8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_rca8_ha6_xor0 = (ha(((h_u_dadda_rca8_and_2_0 >> 0) & 0x01), ((h_u_dadda_rca8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_ha6_and0 = (ha(((h_u_dadda_rca8_and_2_0 >> 0) & 0x01), ((h_u_dadda_rca8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_rca8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_dadda_rca8_fa24_xor1 = (fa(((h_u_dadda_rca8_ha6_and0 >> 0) & 0x01), ((h_u_dadda_rca8_and_1_2 >> 0) & 0x01), ((h_u_dadda_rca8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa24_or0 = (fa(((h_u_dadda_rca8_ha6_and0 >> 0) & 0x01), ((h_u_dadda_rca8_and_1_2 >> 0) & 0x01), ((h_u_dadda_rca8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_u_dadda_rca8_fa25_xor1 = (fa(((h_u_dadda_rca8_fa24_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_0_4 >> 0) & 0x01), ((h_u_dadda_rca8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa25_or0 = (fa(((h_u_dadda_rca8_fa24_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_0_4 >> 0) & 0x01), ((h_u_dadda_rca8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_fa26_xor1 = (fa(((h_u_dadda_rca8_fa25_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa4_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_fa5_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa26_or0 = (fa(((h_u_dadda_rca8_fa25_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa4_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_fa5_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_fa27_xor1 = (fa(((h_u_dadda_rca8_fa26_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa6_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_fa7_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa27_or0 = (fa(((h_u_dadda_rca8_fa26_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa6_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_fa7_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_fa28_xor1 = (fa(((h_u_dadda_rca8_fa27_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa9_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_fa10_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa28_or0 = (fa(((h_u_dadda_rca8_fa27_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa9_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_fa10_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_fa29_xor1 = (fa(((h_u_dadda_rca8_fa28_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa12_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_fa13_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa29_or0 = (fa(((h_u_dadda_rca8_fa28_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa12_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_fa13_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_fa30_xor1 = (fa(((h_u_dadda_rca8_fa29_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa15_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_fa16_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa30_or0 = (fa(((h_u_dadda_rca8_fa29_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa15_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_fa16_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_fa31_xor1 = (fa(((h_u_dadda_rca8_fa30_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa18_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_fa19_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa31_or0 = (fa(((h_u_dadda_rca8_fa30_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa18_xor1 >> 0) & 0x01), ((h_u_dadda_rca8_fa19_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_4_7 = and_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_rca8_fa32_xor1 = (fa(((h_u_dadda_rca8_fa31_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_4_7 >> 0) & 0x01), ((h_u_dadda_rca8_fa21_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa32_or0 = (fa(((h_u_dadda_rca8_fa31_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_4_7 >> 0) & 0x01), ((h_u_dadda_rca8_fa21_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_rca8_and_5_7 = and_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_rca8_fa33_xor1 = (fa(((h_u_dadda_rca8_fa32_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_6_6 >> 0) & 0x01), ((h_u_dadda_rca8_and_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa33_or0 = (fa(((h_u_dadda_rca8_fa32_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_6_6 >> 0) & 0x01), ((h_u_dadda_rca8_and_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_7_6 = and_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_u_dadda_rca8_fa34_xor1 = (fa(((h_u_dadda_rca8_fa33_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa23_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_dadda_rca8_fa34_or0 = (fa(((h_u_dadda_rca8_fa33_or0 >> 0) & 0x01), ((h_u_dadda_rca8_fa23_or0 >> 0) & 0x01), ((h_u_dadda_rca8_and_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_dadda_rca8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_rca8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_dadda_rca8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_dadda_rca8_and_6_7 = and_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_rca8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_dadda_rca8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_u_dadda_rca8_u_rca14_a |= ((h_u_dadda_rca8_and_1_0 >> 0) & 0x01) << 0; - h_u_dadda_rca8_u_rca14_a |= ((h_u_dadda_rca8_and_0_2 >> 0) & 0x01) << 1; - h_u_dadda_rca8_u_rca14_a |= ((h_u_dadda_rca8_ha3_xor0 >> 0) & 0x01) << 2; - h_u_dadda_rca8_u_rca14_a |= ((h_u_dadda_rca8_ha4_xor0 >> 0) & 0x01) << 3; - h_u_dadda_rca8_u_rca14_a |= ((h_u_dadda_rca8_ha5_xor0 >> 0) & 0x01) << 4; - h_u_dadda_rca8_u_rca14_a |= ((h_u_dadda_rca8_fa8_xor1 >> 0) & 0x01) << 5; - h_u_dadda_rca8_u_rca14_a |= ((h_u_dadda_rca8_fa11_xor1 >> 0) & 0x01) << 6; - h_u_dadda_rca8_u_rca14_a |= ((h_u_dadda_rca8_fa14_xor1 >> 0) & 0x01) << 7; - h_u_dadda_rca8_u_rca14_a |= ((h_u_dadda_rca8_fa17_xor1 >> 0) & 0x01) << 8; - h_u_dadda_rca8_u_rca14_a |= ((h_u_dadda_rca8_fa20_xor1 >> 0) & 0x01) << 9; - h_u_dadda_rca8_u_rca14_a |= ((h_u_dadda_rca8_fa22_xor1 >> 0) & 0x01) << 10; - h_u_dadda_rca8_u_rca14_a |= ((h_u_dadda_rca8_fa23_xor1 >> 0) & 0x01) << 11; - h_u_dadda_rca8_u_rca14_a |= ((h_u_dadda_rca8_and_6_7 >> 0) & 0x01) << 12; - h_u_dadda_rca8_u_rca14_a |= ((h_u_dadda_rca8_fa34_or0 >> 0) & 0x01) << 13; - h_u_dadda_rca8_u_rca14_b |= ((h_u_dadda_rca8_and_0_1 >> 0) & 0x01) << 0; - h_u_dadda_rca8_u_rca14_b |= ((h_u_dadda_rca8_ha6_xor0 >> 0) & 0x01) << 1; - h_u_dadda_rca8_u_rca14_b |= ((h_u_dadda_rca8_fa24_xor1 >> 0) & 0x01) << 2; - h_u_dadda_rca8_u_rca14_b |= ((h_u_dadda_rca8_fa25_xor1 >> 0) & 0x01) << 3; - h_u_dadda_rca8_u_rca14_b |= ((h_u_dadda_rca8_fa26_xor1 >> 0) & 0x01) << 4; - h_u_dadda_rca8_u_rca14_b |= ((h_u_dadda_rca8_fa27_xor1 >> 0) & 0x01) << 5; - h_u_dadda_rca8_u_rca14_b |= ((h_u_dadda_rca8_fa28_xor1 >> 0) & 0x01) << 6; - h_u_dadda_rca8_u_rca14_b |= ((h_u_dadda_rca8_fa29_xor1 >> 0) & 0x01) << 7; - h_u_dadda_rca8_u_rca14_b |= ((h_u_dadda_rca8_fa30_xor1 >> 0) & 0x01) << 8; - h_u_dadda_rca8_u_rca14_b |= ((h_u_dadda_rca8_fa31_xor1 >> 0) & 0x01) << 9; - h_u_dadda_rca8_u_rca14_b |= ((h_u_dadda_rca8_fa32_xor1 >> 0) & 0x01) << 10; - h_u_dadda_rca8_u_rca14_b |= ((h_u_dadda_rca8_fa33_xor1 >> 0) & 0x01) << 11; - h_u_dadda_rca8_u_rca14_b |= ((h_u_dadda_rca8_fa34_xor1 >> 0) & 0x01) << 12; - h_u_dadda_rca8_u_rca14_b |= ((h_u_dadda_rca8_and_7_7 >> 0) & 0x01) << 13; - h_u_dadda_rca8_u_rca14_out = u_rca14(h_u_dadda_rca8_u_rca14_a, h_u_dadda_rca8_u_rca14_b); - - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_and_0_0 >> 0) & 0x01) << 0; - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_u_rca14_out >> 0) & 0x01) << 1; - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_u_rca14_out >> 1) & 0x01) << 2; - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_u_rca14_out >> 2) & 0x01) << 3; - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_u_rca14_out >> 3) & 0x01) << 4; - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_u_rca14_out >> 4) & 0x01) << 5; - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_u_rca14_out >> 5) & 0x01) << 6; - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_u_rca14_out >> 6) & 0x01) << 7; - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_u_rca14_out >> 7) & 0x01) << 8; - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_u_rca14_out >> 8) & 0x01) << 9; - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_u_rca14_out >> 9) & 0x01) << 10; - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_u_rca14_out >> 10) & 0x01) << 11; - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_u_rca14_out >> 11) & 0x01) << 12; - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_u_rca14_out >> 12) & 0x01) << 13; - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_u_rca14_out >> 13) & 0x01) << 14; - h_u_dadda_rca8_out |= ((h_u_dadda_rca8_u_rca14_out >> 14) & 0x01) << 15; - return h_u_dadda_rca8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == h_u_dadda_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cla4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cla4.c deleted file mode 100644 index 5e14c82..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cla4.c +++ /dev/null @@ -1,269 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_logic(uint8_t a, uint8_t b){ - uint8_t pg_logic_out = 0; - uint8_t pg_logic_or0 = 0; - uint8_t pg_logic_and0 = 0; - uint8_t pg_logic_xor0 = 0; - - pg_logic_or0 = or_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - pg_logic_out |= ((pg_logic_or0 >> 0) & 0x01) << 0; - pg_logic_out |= ((pg_logic_and0 >> 0) & 0x01) << 1; - pg_logic_out |= ((pg_logic_xor0 >> 0) & 0x01) << 2; - return pg_logic_out; -} - -uint64_t u_cla6(uint64_t a, uint64_t b){ - uint8_t u_cla6_out = 0; - uint8_t u_cla6_pg_logic0_or0 = 0; - uint8_t u_cla6_pg_logic0_and0 = 0; - uint8_t u_cla6_pg_logic0_xor0 = 0; - uint8_t u_cla6_pg_logic1_or0 = 0; - uint8_t u_cla6_pg_logic1_and0 = 0; - uint8_t u_cla6_pg_logic1_xor0 = 0; - uint8_t u_cla6_xor1 = 0; - uint8_t u_cla6_and0 = 0; - uint8_t u_cla6_or0 = 0; - uint8_t u_cla6_pg_logic2_or0 = 0; - uint8_t u_cla6_pg_logic2_and0 = 0; - uint8_t u_cla6_pg_logic2_xor0 = 0; - uint8_t u_cla6_xor2 = 0; - uint8_t u_cla6_and1 = 0; - uint8_t u_cla6_and2 = 0; - uint8_t u_cla6_and3 = 0; - uint8_t u_cla6_and4 = 0; - uint8_t u_cla6_or1 = 0; - uint8_t u_cla6_or2 = 0; - uint8_t u_cla6_pg_logic3_or0 = 0; - uint8_t u_cla6_pg_logic3_and0 = 0; - uint8_t u_cla6_pg_logic3_xor0 = 0; - uint8_t u_cla6_xor3 = 0; - uint8_t u_cla6_and5 = 0; - uint8_t u_cla6_and6 = 0; - uint8_t u_cla6_and7 = 0; - uint8_t u_cla6_and8 = 0; - uint8_t u_cla6_and9 = 0; - uint8_t u_cla6_and10 = 0; - uint8_t u_cla6_and11 = 0; - uint8_t u_cla6_or3 = 0; - uint8_t u_cla6_or4 = 0; - uint8_t u_cla6_or5 = 0; - uint8_t u_cla6_pg_logic4_or0 = 0; - uint8_t u_cla6_pg_logic4_and0 = 0; - uint8_t u_cla6_pg_logic4_xor0 = 0; - uint8_t u_cla6_xor4 = 0; - uint8_t u_cla6_and12 = 0; - uint8_t u_cla6_or6 = 0; - uint8_t u_cla6_pg_logic5_or0 = 0; - uint8_t u_cla6_pg_logic5_and0 = 0; - uint8_t u_cla6_pg_logic5_xor0 = 0; - uint8_t u_cla6_xor5 = 0; - uint8_t u_cla6_and13 = 0; - uint8_t u_cla6_and14 = 0; - uint8_t u_cla6_and15 = 0; - uint8_t u_cla6_or7 = 0; - uint8_t u_cla6_or8 = 0; - - u_cla6_pg_logic0_or0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic0_and0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic0_xor0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 2) & 0x01; - u_cla6_pg_logic1_or0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic1_and0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic1_xor0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 2) & 0x01; - u_cla6_xor1 = xor_gate(((u_cla6_pg_logic1_xor0 >> 0) & 0x01), ((u_cla6_pg_logic0_and0 >> 0) & 0x01)); - u_cla6_and0 = and_gate(((u_cla6_pg_logic0_and0 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_or0 = or_gate(((u_cla6_pg_logic1_and0 >> 0) & 0x01), ((u_cla6_and0 >> 0) & 0x01)); - u_cla6_pg_logic2_or0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic2_and0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic2_xor0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 2) & 0x01; - u_cla6_xor2 = xor_gate(((u_cla6_pg_logic2_xor0 >> 0) & 0x01), ((u_cla6_or0 >> 0) & 0x01)); - u_cla6_and1 = and_gate(((u_cla6_pg_logic2_or0 >> 0) & 0x01), ((u_cla6_pg_logic0_or0 >> 0) & 0x01)); - u_cla6_and2 = and_gate(((u_cla6_pg_logic0_and0 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_and3 = and_gate(((u_cla6_and2 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_and4 = and_gate(((u_cla6_pg_logic1_and0 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_or1 = or_gate(((u_cla6_and3 >> 0) & 0x01), ((u_cla6_and4 >> 0) & 0x01)); - u_cla6_or2 = or_gate(((u_cla6_pg_logic2_and0 >> 0) & 0x01), ((u_cla6_or1 >> 0) & 0x01)); - u_cla6_pg_logic3_or0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic3_and0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic3_xor0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 2) & 0x01; - u_cla6_xor3 = xor_gate(((u_cla6_pg_logic3_xor0 >> 0) & 0x01), ((u_cla6_or2 >> 0) & 0x01)); - u_cla6_and5 = and_gate(((u_cla6_pg_logic3_or0 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_and6 = and_gate(((u_cla6_pg_logic0_and0 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_and7 = and_gate(((u_cla6_pg_logic3_or0 >> 0) & 0x01), ((u_cla6_pg_logic1_or0 >> 0) & 0x01)); - u_cla6_and8 = and_gate(((u_cla6_and6 >> 0) & 0x01), ((u_cla6_and7 >> 0) & 0x01)); - u_cla6_and9 = and_gate(((u_cla6_pg_logic1_and0 >> 0) & 0x01), ((u_cla6_pg_logic3_or0 >> 0) & 0x01)); - u_cla6_and10 = and_gate(((u_cla6_and9 >> 0) & 0x01), ((u_cla6_pg_logic2_or0 >> 0) & 0x01)); - u_cla6_and11 = and_gate(((u_cla6_pg_logic2_and0 >> 0) & 0x01), ((u_cla6_pg_logic3_or0 >> 0) & 0x01)); - u_cla6_or3 = or_gate(((u_cla6_and8 >> 0) & 0x01), ((u_cla6_and11 >> 0) & 0x01)); - u_cla6_or4 = or_gate(((u_cla6_and10 >> 0) & 0x01), ((u_cla6_or3 >> 0) & 0x01)); - u_cla6_or5 = or_gate(((u_cla6_pg_logic3_and0 >> 0) & 0x01), ((u_cla6_or4 >> 0) & 0x01)); - u_cla6_pg_logic4_or0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic4_and0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic4_xor0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 2) & 0x01; - u_cla6_xor4 = xor_gate(((u_cla6_pg_logic4_xor0 >> 0) & 0x01), ((u_cla6_or5 >> 0) & 0x01)); - u_cla6_and12 = and_gate(((u_cla6_or5 >> 0) & 0x01), ((u_cla6_pg_logic4_or0 >> 0) & 0x01)); - u_cla6_or6 = or_gate(((u_cla6_pg_logic4_and0 >> 0) & 0x01), ((u_cla6_and12 >> 0) & 0x01)); - u_cla6_pg_logic5_or0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 0) & 0x01; - u_cla6_pg_logic5_and0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 1) & 0x01; - u_cla6_pg_logic5_xor0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 2) & 0x01; - u_cla6_xor5 = xor_gate(((u_cla6_pg_logic5_xor0 >> 0) & 0x01), ((u_cla6_or6 >> 0) & 0x01)); - u_cla6_and13 = and_gate(((u_cla6_or5 >> 0) & 0x01), ((u_cla6_pg_logic5_or0 >> 0) & 0x01)); - u_cla6_and14 = and_gate(((u_cla6_and13 >> 0) & 0x01), ((u_cla6_pg_logic4_or0 >> 0) & 0x01)); - u_cla6_and15 = and_gate(((u_cla6_pg_logic4_and0 >> 0) & 0x01), ((u_cla6_pg_logic5_or0 >> 0) & 0x01)); - u_cla6_or7 = or_gate(((u_cla6_and14 >> 0) & 0x01), ((u_cla6_and15 >> 0) & 0x01)); - u_cla6_or8 = or_gate(((u_cla6_pg_logic5_and0 >> 0) & 0x01), ((u_cla6_or7 >> 0) & 0x01)); - - u_cla6_out |= ((u_cla6_pg_logic0_xor0 >> 0) & 0x01) << 0; - u_cla6_out |= ((u_cla6_xor1 >> 0) & 0x01) << 1; - u_cla6_out |= ((u_cla6_xor2 >> 0) & 0x01) << 2; - u_cla6_out |= ((u_cla6_xor3 >> 0) & 0x01) << 3; - u_cla6_out |= ((u_cla6_xor4 >> 0) & 0x01) << 4; - u_cla6_out |= ((u_cla6_xor5 >> 0) & 0x01) << 5; - u_cla6_out |= ((u_cla6_or8 >> 0) & 0x01) << 6; - return u_cla6_out; -} - -uint64_t h_u_wallace_cla4(uint64_t a, uint64_t b){ - uint8_t h_u_wallace_cla4_out = 0; - uint8_t h_u_wallace_cla4_and_2_0 = 0; - uint8_t h_u_wallace_cla4_and_1_1 = 0; - uint8_t h_u_wallace_cla4_ha0_xor0 = 0; - uint8_t h_u_wallace_cla4_ha0_and0 = 0; - uint8_t h_u_wallace_cla4_and_3_0 = 0; - uint8_t h_u_wallace_cla4_and_2_1 = 0; - uint8_t h_u_wallace_cla4_fa0_xor1 = 0; - uint8_t h_u_wallace_cla4_fa0_or0 = 0; - uint8_t h_u_wallace_cla4_and_3_1 = 0; - uint8_t h_u_wallace_cla4_and_2_2 = 0; - uint8_t h_u_wallace_cla4_fa1_xor1 = 0; - uint8_t h_u_wallace_cla4_fa1_or0 = 0; - uint8_t h_u_wallace_cla4_and_1_2 = 0; - uint8_t h_u_wallace_cla4_and_0_3 = 0; - uint8_t h_u_wallace_cla4_ha1_xor0 = 0; - uint8_t h_u_wallace_cla4_ha1_and0 = 0; - uint8_t h_u_wallace_cla4_and_1_3 = 0; - uint8_t h_u_wallace_cla4_ha2_xor0 = 0; - uint8_t h_u_wallace_cla4_ha2_and0 = 0; - uint8_t h_u_wallace_cla4_and_3_2 = 0; - uint8_t h_u_wallace_cla4_fa2_xor1 = 0; - uint8_t h_u_wallace_cla4_fa2_or0 = 0; - uint8_t h_u_wallace_cla4_and_0_0 = 0; - uint8_t h_u_wallace_cla4_and_1_0 = 0; - uint8_t h_u_wallace_cla4_and_0_2 = 0; - uint8_t h_u_wallace_cla4_and_2_3 = 0; - uint8_t h_u_wallace_cla4_and_0_1 = 0; - uint8_t h_u_wallace_cla4_and_3_3 = 0; - uint64_t h_u_wallace_cla4_u_cla6_a = 0; - uint64_t h_u_wallace_cla4_u_cla6_b = 0; - uint64_t h_u_wallace_cla4_u_cla6_out = 0; - - h_u_wallace_cla4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cla4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cla4_ha0_xor0 = (ha(((h_u_wallace_cla4_and_2_0 >> 0) & 0x01), ((h_u_wallace_cla4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla4_ha0_and0 = (ha(((h_u_wallace_cla4_and_2_0 >> 0) & 0x01), ((h_u_wallace_cla4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla4_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cla4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cla4_fa0_xor1 = (fa(((h_u_wallace_cla4_ha0_and0 >> 0) & 0x01), ((h_u_wallace_cla4_and_3_0 >> 0) & 0x01), ((h_u_wallace_cla4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla4_fa0_or0 = (fa(((h_u_wallace_cla4_ha0_and0 >> 0) & 0x01), ((h_u_wallace_cla4_and_3_0 >> 0) & 0x01), ((h_u_wallace_cla4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla4_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cla4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cla4_fa1_xor1 = (fa(((h_u_wallace_cla4_fa0_or0 >> 0) & 0x01), ((h_u_wallace_cla4_and_3_1 >> 0) & 0x01), ((h_u_wallace_cla4_and_2_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla4_fa1_or0 = (fa(((h_u_wallace_cla4_fa0_or0 >> 0) & 0x01), ((h_u_wallace_cla4_and_3_1 >> 0) & 0x01), ((h_u_wallace_cla4_and_2_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cla4_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cla4_ha1_xor0 = (ha(((h_u_wallace_cla4_and_1_2 >> 0) & 0x01), ((h_u_wallace_cla4_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla4_ha1_and0 = (ha(((h_u_wallace_cla4_and_1_2 >> 0) & 0x01), ((h_u_wallace_cla4_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla4_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cla4_ha2_xor0 = (ha(((h_u_wallace_cla4_ha1_and0 >> 0) & 0x01), ((h_u_wallace_cla4_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla4_ha2_and0 = (ha(((h_u_wallace_cla4_ha1_and0 >> 0) & 0x01), ((h_u_wallace_cla4_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla4_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cla4_fa2_xor1 = (fa(((h_u_wallace_cla4_ha2_and0 >> 0) & 0x01), ((h_u_wallace_cla4_fa1_or0 >> 0) & 0x01), ((h_u_wallace_cla4_and_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla4_fa2_or0 = (fa(((h_u_wallace_cla4_ha2_and0 >> 0) & 0x01), ((h_u_wallace_cla4_fa1_or0 >> 0) & 0x01), ((h_u_wallace_cla4_and_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cla4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cla4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cla4_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cla4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cla4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cla4_u_cla6_a |= ((h_u_wallace_cla4_and_1_0 >> 0) & 0x01) << 0; - h_u_wallace_cla4_u_cla6_a |= ((h_u_wallace_cla4_and_0_2 >> 0) & 0x01) << 1; - h_u_wallace_cla4_u_cla6_a |= ((h_u_wallace_cla4_fa0_xor1 >> 0) & 0x01) << 2; - h_u_wallace_cla4_u_cla6_a |= ((h_u_wallace_cla4_fa1_xor1 >> 0) & 0x01) << 3; - h_u_wallace_cla4_u_cla6_a |= ((h_u_wallace_cla4_and_2_3 >> 0) & 0x01) << 4; - h_u_wallace_cla4_u_cla6_a |= ((h_u_wallace_cla4_fa2_or0 >> 0) & 0x01) << 5; - h_u_wallace_cla4_u_cla6_b |= ((h_u_wallace_cla4_and_0_1 >> 0) & 0x01) << 0; - h_u_wallace_cla4_u_cla6_b |= ((h_u_wallace_cla4_ha0_xor0 >> 0) & 0x01) << 1; - h_u_wallace_cla4_u_cla6_b |= ((h_u_wallace_cla4_ha1_xor0 >> 0) & 0x01) << 2; - h_u_wallace_cla4_u_cla6_b |= ((h_u_wallace_cla4_ha2_xor0 >> 0) & 0x01) << 3; - h_u_wallace_cla4_u_cla6_b |= ((h_u_wallace_cla4_fa2_xor1 >> 0) & 0x01) << 4; - h_u_wallace_cla4_u_cla6_b |= ((h_u_wallace_cla4_and_3_3 >> 0) & 0x01) << 5; - h_u_wallace_cla4_u_cla6_out = u_cla6(h_u_wallace_cla4_u_cla6_a, h_u_wallace_cla4_u_cla6_b); - - h_u_wallace_cla4_out |= ((h_u_wallace_cla4_and_0_0 >> 0) & 0x01) << 0; - h_u_wallace_cla4_out |= ((h_u_wallace_cla4_u_cla6_out >> 0) & 0x01) << 1; - h_u_wallace_cla4_out |= ((h_u_wallace_cla4_u_cla6_out >> 1) & 0x01) << 2; - h_u_wallace_cla4_out |= ((h_u_wallace_cla4_u_cla6_out >> 2) & 0x01) << 3; - h_u_wallace_cla4_out |= ((h_u_wallace_cla4_u_cla6_out >> 3) & 0x01) << 4; - h_u_wallace_cla4_out |= ((h_u_wallace_cla4_u_cla6_out >> 4) & 0x01) << 5; - h_u_wallace_cla4_out |= ((h_u_wallace_cla4_u_cla6_out >> 5) & 0x01) << 6; - h_u_wallace_cla4_out |= ((h_u_wallace_cla4_u_cla6_out >> 6) & 0x01) << 7; - return h_u_wallace_cla4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == h_u_wallace_cla4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cla8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cla8.c deleted file mode 100644 index a8e3f12..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cla8.c +++ /dev/null @@ -1,725 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_logic(uint8_t a, uint8_t b){ - uint8_t pg_logic_out = 0; - uint8_t pg_logic_or0 = 0; - uint8_t pg_logic_and0 = 0; - uint8_t pg_logic_xor0 = 0; - - pg_logic_or0 = or_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_logic_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - pg_logic_out |= ((pg_logic_or0 >> 0) & 0x01) << 0; - pg_logic_out |= ((pg_logic_and0 >> 0) & 0x01) << 1; - pg_logic_out |= ((pg_logic_xor0 >> 0) & 0x01) << 2; - return pg_logic_out; -} - -uint64_t u_cla14(uint64_t a, uint64_t b){ - uint64_t u_cla14_out = 0; - uint8_t u_cla14_pg_logic0_or0 = 0; - uint8_t u_cla14_pg_logic0_and0 = 0; - uint8_t u_cla14_pg_logic0_xor0 = 0; - uint8_t u_cla14_pg_logic1_or0 = 0; - uint8_t u_cla14_pg_logic1_and0 = 0; - uint8_t u_cla14_pg_logic1_xor0 = 0; - uint8_t u_cla14_xor1 = 0; - uint8_t u_cla14_and0 = 0; - uint8_t u_cla14_or0 = 0; - uint8_t u_cla14_pg_logic2_or0 = 0; - uint8_t u_cla14_pg_logic2_and0 = 0; - uint8_t u_cla14_pg_logic2_xor0 = 0; - uint8_t u_cla14_xor2 = 0; - uint8_t u_cla14_and1 = 0; - uint8_t u_cla14_and2 = 0; - uint8_t u_cla14_and3 = 0; - uint8_t u_cla14_and4 = 0; - uint8_t u_cla14_or1 = 0; - uint8_t u_cla14_or2 = 0; - uint8_t u_cla14_pg_logic3_or0 = 0; - uint8_t u_cla14_pg_logic3_and0 = 0; - uint8_t u_cla14_pg_logic3_xor0 = 0; - uint8_t u_cla14_xor3 = 0; - uint8_t u_cla14_and5 = 0; - uint8_t u_cla14_and6 = 0; - uint8_t u_cla14_and7 = 0; - uint8_t u_cla14_and8 = 0; - uint8_t u_cla14_and9 = 0; - uint8_t u_cla14_and10 = 0; - uint8_t u_cla14_and11 = 0; - uint8_t u_cla14_or3 = 0; - uint8_t u_cla14_or4 = 0; - uint8_t u_cla14_or5 = 0; - uint8_t u_cla14_pg_logic4_or0 = 0; - uint8_t u_cla14_pg_logic4_and0 = 0; - uint8_t u_cla14_pg_logic4_xor0 = 0; - uint8_t u_cla14_xor4 = 0; - uint8_t u_cla14_and12 = 0; - uint8_t u_cla14_or6 = 0; - uint8_t u_cla14_pg_logic5_or0 = 0; - uint8_t u_cla14_pg_logic5_and0 = 0; - uint8_t u_cla14_pg_logic5_xor0 = 0; - uint8_t u_cla14_xor5 = 0; - uint8_t u_cla14_and13 = 0; - uint8_t u_cla14_and14 = 0; - uint8_t u_cla14_and15 = 0; - uint8_t u_cla14_or7 = 0; - uint8_t u_cla14_or8 = 0; - uint8_t u_cla14_pg_logic6_or0 = 0; - uint8_t u_cla14_pg_logic6_and0 = 0; - uint8_t u_cla14_pg_logic6_xor0 = 0; - uint8_t u_cla14_xor6 = 0; - uint8_t u_cla14_and16 = 0; - uint8_t u_cla14_and17 = 0; - uint8_t u_cla14_and18 = 0; - uint8_t u_cla14_and19 = 0; - uint8_t u_cla14_and20 = 0; - uint8_t u_cla14_and21 = 0; - uint8_t u_cla14_or9 = 0; - uint8_t u_cla14_or10 = 0; - uint8_t u_cla14_or11 = 0; - uint8_t u_cla14_pg_logic7_or0 = 0; - uint8_t u_cla14_pg_logic7_and0 = 0; - uint8_t u_cla14_pg_logic7_xor0 = 0; - uint8_t u_cla14_xor7 = 0; - uint8_t u_cla14_and22 = 0; - uint8_t u_cla14_and23 = 0; - uint8_t u_cla14_and24 = 0; - uint8_t u_cla14_and25 = 0; - uint8_t u_cla14_and26 = 0; - uint8_t u_cla14_and27 = 0; - uint8_t u_cla14_and28 = 0; - uint8_t u_cla14_and29 = 0; - uint8_t u_cla14_and30 = 0; - uint8_t u_cla14_and31 = 0; - uint8_t u_cla14_or12 = 0; - uint8_t u_cla14_or13 = 0; - uint8_t u_cla14_or14 = 0; - uint8_t u_cla14_or15 = 0; - uint8_t u_cla14_pg_logic8_or0 = 0; - uint8_t u_cla14_pg_logic8_and0 = 0; - uint8_t u_cla14_pg_logic8_xor0 = 0; - uint8_t u_cla14_xor8 = 0; - uint8_t u_cla14_and32 = 0; - uint8_t u_cla14_or16 = 0; - uint8_t u_cla14_pg_logic9_or0 = 0; - uint8_t u_cla14_pg_logic9_and0 = 0; - uint8_t u_cla14_pg_logic9_xor0 = 0; - uint8_t u_cla14_xor9 = 0; - uint8_t u_cla14_and33 = 0; - uint8_t u_cla14_and34 = 0; - uint8_t u_cla14_and35 = 0; - uint8_t u_cla14_or17 = 0; - uint8_t u_cla14_or18 = 0; - uint8_t u_cla14_pg_logic10_or0 = 0; - uint8_t u_cla14_pg_logic10_and0 = 0; - uint8_t u_cla14_pg_logic10_xor0 = 0; - uint8_t u_cla14_xor10 = 0; - uint8_t u_cla14_and36 = 0; - uint8_t u_cla14_and37 = 0; - uint8_t u_cla14_and38 = 0; - uint8_t u_cla14_and39 = 0; - uint8_t u_cla14_and40 = 0; - uint8_t u_cla14_and41 = 0; - uint8_t u_cla14_or19 = 0; - uint8_t u_cla14_or20 = 0; - uint8_t u_cla14_or21 = 0; - uint8_t u_cla14_pg_logic11_or0 = 0; - uint8_t u_cla14_pg_logic11_and0 = 0; - uint8_t u_cla14_pg_logic11_xor0 = 0; - uint8_t u_cla14_xor11 = 0; - uint8_t u_cla14_and42 = 0; - uint8_t u_cla14_and43 = 0; - uint8_t u_cla14_and44 = 0; - uint8_t u_cla14_and45 = 0; - uint8_t u_cla14_and46 = 0; - uint8_t u_cla14_and47 = 0; - uint8_t u_cla14_and48 = 0; - uint8_t u_cla14_and49 = 0; - uint8_t u_cla14_and50 = 0; - uint8_t u_cla14_and51 = 0; - uint8_t u_cla14_or22 = 0; - uint8_t u_cla14_or23 = 0; - uint8_t u_cla14_or24 = 0; - uint8_t u_cla14_or25 = 0; - uint8_t u_cla14_pg_logic12_or0 = 0; - uint8_t u_cla14_pg_logic12_and0 = 0; - uint8_t u_cla14_pg_logic12_xor0 = 0; - uint8_t u_cla14_xor12 = 0; - uint8_t u_cla14_and52 = 0; - uint8_t u_cla14_or26 = 0; - uint8_t u_cla14_pg_logic13_or0 = 0; - uint8_t u_cla14_pg_logic13_and0 = 0; - uint8_t u_cla14_pg_logic13_xor0 = 0; - uint8_t u_cla14_xor13 = 0; - uint8_t u_cla14_and53 = 0; - uint8_t u_cla14_and54 = 0; - uint8_t u_cla14_and55 = 0; - uint8_t u_cla14_or27 = 0; - uint8_t u_cla14_or28 = 0; - - u_cla14_pg_logic0_or0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic0_and0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic0_xor0 = (pg_logic(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 2) & 0x01; - u_cla14_pg_logic1_or0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic1_and0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic1_xor0 = (pg_logic(((a >> 1) & 0x01), ((b >> 1) & 0x01)) >> 2) & 0x01; - u_cla14_xor1 = xor_gate(((u_cla14_pg_logic1_xor0 >> 0) & 0x01), ((u_cla14_pg_logic0_and0 >> 0) & 0x01)); - u_cla14_and0 = and_gate(((u_cla14_pg_logic0_and0 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_or0 = or_gate(((u_cla14_pg_logic1_and0 >> 0) & 0x01), ((u_cla14_and0 >> 0) & 0x01)); - u_cla14_pg_logic2_or0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic2_and0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic2_xor0 = (pg_logic(((a >> 2) & 0x01), ((b >> 2) & 0x01)) >> 2) & 0x01; - u_cla14_xor2 = xor_gate(((u_cla14_pg_logic2_xor0 >> 0) & 0x01), ((u_cla14_or0 >> 0) & 0x01)); - u_cla14_and1 = and_gate(((u_cla14_pg_logic2_or0 >> 0) & 0x01), ((u_cla14_pg_logic0_or0 >> 0) & 0x01)); - u_cla14_and2 = and_gate(((u_cla14_pg_logic0_and0 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_and3 = and_gate(((u_cla14_and2 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_and4 = and_gate(((u_cla14_pg_logic1_and0 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_or1 = or_gate(((u_cla14_and3 >> 0) & 0x01), ((u_cla14_and4 >> 0) & 0x01)); - u_cla14_or2 = or_gate(((u_cla14_pg_logic2_and0 >> 0) & 0x01), ((u_cla14_or1 >> 0) & 0x01)); - u_cla14_pg_logic3_or0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic3_and0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic3_xor0 = (pg_logic(((a >> 3) & 0x01), ((b >> 3) & 0x01)) >> 2) & 0x01; - u_cla14_xor3 = xor_gate(((u_cla14_pg_logic3_xor0 >> 0) & 0x01), ((u_cla14_or2 >> 0) & 0x01)); - u_cla14_and5 = and_gate(((u_cla14_pg_logic3_or0 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_and6 = and_gate(((u_cla14_pg_logic0_and0 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_and7 = and_gate(((u_cla14_pg_logic3_or0 >> 0) & 0x01), ((u_cla14_pg_logic1_or0 >> 0) & 0x01)); - u_cla14_and8 = and_gate(((u_cla14_and6 >> 0) & 0x01), ((u_cla14_and7 >> 0) & 0x01)); - u_cla14_and9 = and_gate(((u_cla14_pg_logic1_and0 >> 0) & 0x01), ((u_cla14_pg_logic3_or0 >> 0) & 0x01)); - u_cla14_and10 = and_gate(((u_cla14_and9 >> 0) & 0x01), ((u_cla14_pg_logic2_or0 >> 0) & 0x01)); - u_cla14_and11 = and_gate(((u_cla14_pg_logic2_and0 >> 0) & 0x01), ((u_cla14_pg_logic3_or0 >> 0) & 0x01)); - u_cla14_or3 = or_gate(((u_cla14_and8 >> 0) & 0x01), ((u_cla14_and11 >> 0) & 0x01)); - u_cla14_or4 = or_gate(((u_cla14_and10 >> 0) & 0x01), ((u_cla14_or3 >> 0) & 0x01)); - u_cla14_or5 = or_gate(((u_cla14_pg_logic3_and0 >> 0) & 0x01), ((u_cla14_or4 >> 0) & 0x01)); - u_cla14_pg_logic4_or0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic4_and0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic4_xor0 = (pg_logic(((a >> 4) & 0x01), ((b >> 4) & 0x01)) >> 2) & 0x01; - u_cla14_xor4 = xor_gate(((u_cla14_pg_logic4_xor0 >> 0) & 0x01), ((u_cla14_or5 >> 0) & 0x01)); - u_cla14_and12 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_or6 = or_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_and12 >> 0) & 0x01)); - u_cla14_pg_logic5_or0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic5_and0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic5_xor0 = (pg_logic(((a >> 5) & 0x01), ((b >> 5) & 0x01)) >> 2) & 0x01; - u_cla14_xor5 = xor_gate(((u_cla14_pg_logic5_xor0 >> 0) & 0x01), ((u_cla14_or6 >> 0) & 0x01)); - u_cla14_and13 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and14 = and_gate(((u_cla14_and13 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_and15 = and_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_or7 = or_gate(((u_cla14_and14 >> 0) & 0x01), ((u_cla14_and15 >> 0) & 0x01)); - u_cla14_or8 = or_gate(((u_cla14_pg_logic5_and0 >> 0) & 0x01), ((u_cla14_or7 >> 0) & 0x01)); - u_cla14_pg_logic6_or0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic6_and0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic6_xor0 = (pg_logic(((a >> 6) & 0x01), ((b >> 6) & 0x01)) >> 2) & 0x01; - u_cla14_xor6 = xor_gate(((u_cla14_pg_logic6_xor0 >> 0) & 0x01), ((u_cla14_or8 >> 0) & 0x01)); - u_cla14_and16 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and17 = and_gate(((u_cla14_pg_logic6_or0 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_and18 = and_gate(((u_cla14_and16 >> 0) & 0x01), ((u_cla14_and17 >> 0) & 0x01)); - u_cla14_and19 = and_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and20 = and_gate(((u_cla14_and19 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and21 = and_gate(((u_cla14_pg_logic5_and0 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_or9 = or_gate(((u_cla14_and18 >> 0) & 0x01), ((u_cla14_and20 >> 0) & 0x01)); - u_cla14_or10 = or_gate(((u_cla14_or9 >> 0) & 0x01), ((u_cla14_and21 >> 0) & 0x01)); - u_cla14_or11 = or_gate(((u_cla14_pg_logic6_and0 >> 0) & 0x01), ((u_cla14_or10 >> 0) & 0x01)); - u_cla14_pg_logic7_or0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic7_and0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic7_xor0 = (pg_logic(((a >> 7) & 0x01), ((b >> 7) & 0x01)) >> 2) & 0x01; - u_cla14_xor7 = xor_gate(((u_cla14_pg_logic7_xor0 >> 0) & 0x01), ((u_cla14_or11 >> 0) & 0x01)); - u_cla14_and22 = and_gate(((u_cla14_or5 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and23 = and_gate(((u_cla14_pg_logic7_or0 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and24 = and_gate(((u_cla14_and22 >> 0) & 0x01), ((u_cla14_and23 >> 0) & 0x01)); - u_cla14_and25 = and_gate(((u_cla14_and24 >> 0) & 0x01), ((u_cla14_pg_logic4_or0 >> 0) & 0x01)); - u_cla14_and26 = and_gate(((u_cla14_pg_logic4_and0 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and27 = and_gate(((u_cla14_pg_logic7_or0 >> 0) & 0x01), ((u_cla14_pg_logic5_or0 >> 0) & 0x01)); - u_cla14_and28 = and_gate(((u_cla14_and26 >> 0) & 0x01), ((u_cla14_and27 >> 0) & 0x01)); - u_cla14_and29 = and_gate(((u_cla14_pg_logic5_and0 >> 0) & 0x01), ((u_cla14_pg_logic7_or0 >> 0) & 0x01)); - u_cla14_and30 = and_gate(((u_cla14_and29 >> 0) & 0x01), ((u_cla14_pg_logic6_or0 >> 0) & 0x01)); - u_cla14_and31 = and_gate(((u_cla14_pg_logic6_and0 >> 0) & 0x01), ((u_cla14_pg_logic7_or0 >> 0) & 0x01)); - u_cla14_or12 = or_gate(((u_cla14_and25 >> 0) & 0x01), ((u_cla14_and30 >> 0) & 0x01)); - u_cla14_or13 = or_gate(((u_cla14_and28 >> 0) & 0x01), ((u_cla14_and31 >> 0) & 0x01)); - u_cla14_or14 = or_gate(((u_cla14_or12 >> 0) & 0x01), ((u_cla14_or13 >> 0) & 0x01)); - u_cla14_or15 = or_gate(((u_cla14_pg_logic7_and0 >> 0) & 0x01), ((u_cla14_or14 >> 0) & 0x01)); - u_cla14_pg_logic8_or0 = (pg_logic(((a >> 8) & 0x01), ((b >> 8) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic8_and0 = (pg_logic(((a >> 8) & 0x01), ((b >> 8) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic8_xor0 = (pg_logic(((a >> 8) & 0x01), ((b >> 8) & 0x01)) >> 2) & 0x01; - u_cla14_xor8 = xor_gate(((u_cla14_pg_logic8_xor0 >> 0) & 0x01), ((u_cla14_or15 >> 0) & 0x01)); - u_cla14_and32 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_or16 = or_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_and32 >> 0) & 0x01)); - u_cla14_pg_logic9_or0 = (pg_logic(((a >> 9) & 0x01), ((b >> 9) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic9_and0 = (pg_logic(((a >> 9) & 0x01), ((b >> 9) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic9_xor0 = (pg_logic(((a >> 9) & 0x01), ((b >> 9) & 0x01)) >> 2) & 0x01; - u_cla14_xor9 = xor_gate(((u_cla14_pg_logic9_xor0 >> 0) & 0x01), ((u_cla14_or16 >> 0) & 0x01)); - u_cla14_and33 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and34 = and_gate(((u_cla14_and33 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_and35 = and_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_or17 = or_gate(((u_cla14_and34 >> 0) & 0x01), ((u_cla14_and35 >> 0) & 0x01)); - u_cla14_or18 = or_gate(((u_cla14_pg_logic9_and0 >> 0) & 0x01), ((u_cla14_or17 >> 0) & 0x01)); - u_cla14_pg_logic10_or0 = (pg_logic(((a >> 10) & 0x01), ((b >> 10) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic10_and0 = (pg_logic(((a >> 10) & 0x01), ((b >> 10) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic10_xor0 = (pg_logic(((a >> 10) & 0x01), ((b >> 10) & 0x01)) >> 2) & 0x01; - u_cla14_xor10 = xor_gate(((u_cla14_pg_logic10_xor0 >> 0) & 0x01), ((u_cla14_or18 >> 0) & 0x01)); - u_cla14_and36 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and37 = and_gate(((u_cla14_pg_logic10_or0 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_and38 = and_gate(((u_cla14_and36 >> 0) & 0x01), ((u_cla14_and37 >> 0) & 0x01)); - u_cla14_and39 = and_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and40 = and_gate(((u_cla14_and39 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and41 = and_gate(((u_cla14_pg_logic9_and0 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_or19 = or_gate(((u_cla14_and38 >> 0) & 0x01), ((u_cla14_and40 >> 0) & 0x01)); - u_cla14_or20 = or_gate(((u_cla14_or19 >> 0) & 0x01), ((u_cla14_and41 >> 0) & 0x01)); - u_cla14_or21 = or_gate(((u_cla14_pg_logic10_and0 >> 0) & 0x01), ((u_cla14_or20 >> 0) & 0x01)); - u_cla14_pg_logic11_or0 = (pg_logic(((a >> 11) & 0x01), ((b >> 11) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic11_and0 = (pg_logic(((a >> 11) & 0x01), ((b >> 11) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic11_xor0 = (pg_logic(((a >> 11) & 0x01), ((b >> 11) & 0x01)) >> 2) & 0x01; - u_cla14_xor11 = xor_gate(((u_cla14_pg_logic11_xor0 >> 0) & 0x01), ((u_cla14_or21 >> 0) & 0x01)); - u_cla14_and42 = and_gate(((u_cla14_or15 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and43 = and_gate(((u_cla14_pg_logic11_or0 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and44 = and_gate(((u_cla14_and42 >> 0) & 0x01), ((u_cla14_and43 >> 0) & 0x01)); - u_cla14_and45 = and_gate(((u_cla14_and44 >> 0) & 0x01), ((u_cla14_pg_logic8_or0 >> 0) & 0x01)); - u_cla14_and46 = and_gate(((u_cla14_pg_logic8_and0 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and47 = and_gate(((u_cla14_pg_logic11_or0 >> 0) & 0x01), ((u_cla14_pg_logic9_or0 >> 0) & 0x01)); - u_cla14_and48 = and_gate(((u_cla14_and46 >> 0) & 0x01), ((u_cla14_and47 >> 0) & 0x01)); - u_cla14_and49 = and_gate(((u_cla14_pg_logic9_and0 >> 0) & 0x01), ((u_cla14_pg_logic11_or0 >> 0) & 0x01)); - u_cla14_and50 = and_gate(((u_cla14_and49 >> 0) & 0x01), ((u_cla14_pg_logic10_or0 >> 0) & 0x01)); - u_cla14_and51 = and_gate(((u_cla14_pg_logic10_and0 >> 0) & 0x01), ((u_cla14_pg_logic11_or0 >> 0) & 0x01)); - u_cla14_or22 = or_gate(((u_cla14_and45 >> 0) & 0x01), ((u_cla14_and50 >> 0) & 0x01)); - u_cla14_or23 = or_gate(((u_cla14_and48 >> 0) & 0x01), ((u_cla14_and51 >> 0) & 0x01)); - u_cla14_or24 = or_gate(((u_cla14_or22 >> 0) & 0x01), ((u_cla14_or23 >> 0) & 0x01)); - u_cla14_or25 = or_gate(((u_cla14_pg_logic11_and0 >> 0) & 0x01), ((u_cla14_or24 >> 0) & 0x01)); - u_cla14_pg_logic12_or0 = (pg_logic(((a >> 12) & 0x01), ((b >> 12) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic12_and0 = (pg_logic(((a >> 12) & 0x01), ((b >> 12) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic12_xor0 = (pg_logic(((a >> 12) & 0x01), ((b >> 12) & 0x01)) >> 2) & 0x01; - u_cla14_xor12 = xor_gate(((u_cla14_pg_logic12_xor0 >> 0) & 0x01), ((u_cla14_or25 >> 0) & 0x01)); - u_cla14_and52 = and_gate(((u_cla14_or25 >> 0) & 0x01), ((u_cla14_pg_logic12_or0 >> 0) & 0x01)); - u_cla14_or26 = or_gate(((u_cla14_pg_logic12_and0 >> 0) & 0x01), ((u_cla14_and52 >> 0) & 0x01)); - u_cla14_pg_logic13_or0 = (pg_logic(((a >> 13) & 0x01), ((b >> 13) & 0x01)) >> 0) & 0x01; - u_cla14_pg_logic13_and0 = (pg_logic(((a >> 13) & 0x01), ((b >> 13) & 0x01)) >> 1) & 0x01; - u_cla14_pg_logic13_xor0 = (pg_logic(((a >> 13) & 0x01), ((b >> 13) & 0x01)) >> 2) & 0x01; - u_cla14_xor13 = xor_gate(((u_cla14_pg_logic13_xor0 >> 0) & 0x01), ((u_cla14_or26 >> 0) & 0x01)); - u_cla14_and53 = and_gate(((u_cla14_or25 >> 0) & 0x01), ((u_cla14_pg_logic13_or0 >> 0) & 0x01)); - u_cla14_and54 = and_gate(((u_cla14_and53 >> 0) & 0x01), ((u_cla14_pg_logic12_or0 >> 0) & 0x01)); - u_cla14_and55 = and_gate(((u_cla14_pg_logic12_and0 >> 0) & 0x01), ((u_cla14_pg_logic13_or0 >> 0) & 0x01)); - u_cla14_or27 = or_gate(((u_cla14_and54 >> 0) & 0x01), ((u_cla14_and55 >> 0) & 0x01)); - u_cla14_or28 = or_gate(((u_cla14_pg_logic13_and0 >> 0) & 0x01), ((u_cla14_or27 >> 0) & 0x01)); - - u_cla14_out |= ((u_cla14_pg_logic0_xor0 >> 0) & 0x01) << 0; - u_cla14_out |= ((u_cla14_xor1 >> 0) & 0x01) << 1; - u_cla14_out |= ((u_cla14_xor2 >> 0) & 0x01) << 2; - u_cla14_out |= ((u_cla14_xor3 >> 0) & 0x01) << 3; - u_cla14_out |= ((u_cla14_xor4 >> 0) & 0x01) << 4; - u_cla14_out |= ((u_cla14_xor5 >> 0) & 0x01) << 5; - u_cla14_out |= ((u_cla14_xor6 >> 0) & 0x01) << 6; - u_cla14_out |= ((u_cla14_xor7 >> 0) & 0x01) << 7; - u_cla14_out |= ((u_cla14_xor8 >> 0) & 0x01) << 8; - u_cla14_out |= ((u_cla14_xor9 >> 0) & 0x01) << 9; - u_cla14_out |= ((u_cla14_xor10 >> 0) & 0x01) << 10; - u_cla14_out |= ((u_cla14_xor11 >> 0) & 0x01) << 11; - u_cla14_out |= ((u_cla14_xor12 >> 0) & 0x01) << 12; - u_cla14_out |= ((u_cla14_xor13 >> 0) & 0x01) << 13; - u_cla14_out |= ((u_cla14_or28 >> 0) & 0x01) << 14; - return u_cla14_out; -} - -uint64_t h_u_wallace_cla8(uint64_t a, uint64_t b){ - uint64_t h_u_wallace_cla8_out = 0; - uint8_t h_u_wallace_cla8_and_2_0 = 0; - uint8_t h_u_wallace_cla8_and_1_1 = 0; - uint8_t h_u_wallace_cla8_ha0_xor0 = 0; - uint8_t h_u_wallace_cla8_ha0_and0 = 0; - uint8_t h_u_wallace_cla8_and_3_0 = 0; - uint8_t h_u_wallace_cla8_and_2_1 = 0; - uint8_t h_u_wallace_cla8_fa0_xor1 = 0; - uint8_t h_u_wallace_cla8_fa0_or0 = 0; - uint8_t h_u_wallace_cla8_and_4_0 = 0; - uint8_t h_u_wallace_cla8_and_3_1 = 0; - uint8_t h_u_wallace_cla8_fa1_xor1 = 0; - uint8_t h_u_wallace_cla8_fa1_or0 = 0; - uint8_t h_u_wallace_cla8_and_5_0 = 0; - uint8_t h_u_wallace_cla8_and_4_1 = 0; - uint8_t h_u_wallace_cla8_fa2_xor1 = 0; - uint8_t h_u_wallace_cla8_fa2_or0 = 0; - uint8_t h_u_wallace_cla8_and_6_0 = 0; - uint8_t h_u_wallace_cla8_and_5_1 = 0; - uint8_t h_u_wallace_cla8_fa3_xor1 = 0; - uint8_t h_u_wallace_cla8_fa3_or0 = 0; - uint8_t h_u_wallace_cla8_and_7_0 = 0; - uint8_t h_u_wallace_cla8_and_6_1 = 0; - uint8_t h_u_wallace_cla8_fa4_xor1 = 0; - uint8_t h_u_wallace_cla8_fa4_or0 = 0; - uint8_t h_u_wallace_cla8_and_7_1 = 0; - uint8_t h_u_wallace_cla8_and_6_2 = 0; - uint8_t h_u_wallace_cla8_fa5_xor1 = 0; - uint8_t h_u_wallace_cla8_fa5_or0 = 0; - uint8_t h_u_wallace_cla8_and_7_2 = 0; - uint8_t h_u_wallace_cla8_and_6_3 = 0; - uint8_t h_u_wallace_cla8_fa6_xor1 = 0; - uint8_t h_u_wallace_cla8_fa6_or0 = 0; - uint8_t h_u_wallace_cla8_and_7_3 = 0; - uint8_t h_u_wallace_cla8_and_6_4 = 0; - uint8_t h_u_wallace_cla8_fa7_xor1 = 0; - uint8_t h_u_wallace_cla8_fa7_or0 = 0; - uint8_t h_u_wallace_cla8_and_7_4 = 0; - uint8_t h_u_wallace_cla8_and_6_5 = 0; - uint8_t h_u_wallace_cla8_fa8_xor1 = 0; - uint8_t h_u_wallace_cla8_fa8_or0 = 0; - uint8_t h_u_wallace_cla8_and_7_5 = 0; - uint8_t h_u_wallace_cla8_and_6_6 = 0; - uint8_t h_u_wallace_cla8_fa9_xor1 = 0; - uint8_t h_u_wallace_cla8_fa9_or0 = 0; - uint8_t h_u_wallace_cla8_and_1_2 = 0; - uint8_t h_u_wallace_cla8_and_0_3 = 0; - uint8_t h_u_wallace_cla8_ha1_xor0 = 0; - uint8_t h_u_wallace_cla8_ha1_and0 = 0; - uint8_t h_u_wallace_cla8_and_2_2 = 0; - uint8_t h_u_wallace_cla8_and_1_3 = 0; - uint8_t h_u_wallace_cla8_fa10_xor1 = 0; - uint8_t h_u_wallace_cla8_fa10_or0 = 0; - uint8_t h_u_wallace_cla8_and_3_2 = 0; - uint8_t h_u_wallace_cla8_and_2_3 = 0; - uint8_t h_u_wallace_cla8_fa11_xor1 = 0; - uint8_t h_u_wallace_cla8_fa11_or0 = 0; - uint8_t h_u_wallace_cla8_and_4_2 = 0; - uint8_t h_u_wallace_cla8_and_3_3 = 0; - uint8_t h_u_wallace_cla8_fa12_xor1 = 0; - uint8_t h_u_wallace_cla8_fa12_or0 = 0; - uint8_t h_u_wallace_cla8_and_5_2 = 0; - uint8_t h_u_wallace_cla8_and_4_3 = 0; - uint8_t h_u_wallace_cla8_fa13_xor1 = 0; - uint8_t h_u_wallace_cla8_fa13_or0 = 0; - uint8_t h_u_wallace_cla8_and_5_3 = 0; - uint8_t h_u_wallace_cla8_and_4_4 = 0; - uint8_t h_u_wallace_cla8_fa14_xor1 = 0; - uint8_t h_u_wallace_cla8_fa14_or0 = 0; - uint8_t h_u_wallace_cla8_and_5_4 = 0; - uint8_t h_u_wallace_cla8_and_4_5 = 0; - uint8_t h_u_wallace_cla8_fa15_xor1 = 0; - uint8_t h_u_wallace_cla8_fa15_or0 = 0; - uint8_t h_u_wallace_cla8_and_5_5 = 0; - uint8_t h_u_wallace_cla8_and_4_6 = 0; - uint8_t h_u_wallace_cla8_fa16_xor1 = 0; - uint8_t h_u_wallace_cla8_fa16_or0 = 0; - uint8_t h_u_wallace_cla8_and_5_6 = 0; - uint8_t h_u_wallace_cla8_and_4_7 = 0; - uint8_t h_u_wallace_cla8_fa17_xor1 = 0; - uint8_t h_u_wallace_cla8_fa17_or0 = 0; - uint8_t h_u_wallace_cla8_and_0_4 = 0; - uint8_t h_u_wallace_cla8_ha2_xor0 = 0; - uint8_t h_u_wallace_cla8_ha2_and0 = 0; - uint8_t h_u_wallace_cla8_and_1_4 = 0; - uint8_t h_u_wallace_cla8_and_0_5 = 0; - uint8_t h_u_wallace_cla8_fa18_xor1 = 0; - uint8_t h_u_wallace_cla8_fa18_or0 = 0; - uint8_t h_u_wallace_cla8_and_2_4 = 0; - uint8_t h_u_wallace_cla8_and_1_5 = 0; - uint8_t h_u_wallace_cla8_fa19_xor1 = 0; - uint8_t h_u_wallace_cla8_fa19_or0 = 0; - uint8_t h_u_wallace_cla8_and_3_4 = 0; - uint8_t h_u_wallace_cla8_and_2_5 = 0; - uint8_t h_u_wallace_cla8_fa20_xor1 = 0; - uint8_t h_u_wallace_cla8_fa20_or0 = 0; - uint8_t h_u_wallace_cla8_and_3_5 = 0; - uint8_t h_u_wallace_cla8_and_2_6 = 0; - uint8_t h_u_wallace_cla8_fa21_xor1 = 0; - uint8_t h_u_wallace_cla8_fa21_or0 = 0; - uint8_t h_u_wallace_cla8_and_3_6 = 0; - uint8_t h_u_wallace_cla8_and_2_7 = 0; - uint8_t h_u_wallace_cla8_fa22_xor1 = 0; - uint8_t h_u_wallace_cla8_fa22_or0 = 0; - uint8_t h_u_wallace_cla8_and_3_7 = 0; - uint8_t h_u_wallace_cla8_fa23_xor1 = 0; - uint8_t h_u_wallace_cla8_fa23_or0 = 0; - uint8_t h_u_wallace_cla8_ha3_xor0 = 0; - uint8_t h_u_wallace_cla8_ha3_and0 = 0; - uint8_t h_u_wallace_cla8_and_0_6 = 0; - uint8_t h_u_wallace_cla8_fa24_xor1 = 0; - uint8_t h_u_wallace_cla8_fa24_or0 = 0; - uint8_t h_u_wallace_cla8_and_1_6 = 0; - uint8_t h_u_wallace_cla8_and_0_7 = 0; - uint8_t h_u_wallace_cla8_fa25_xor1 = 0; - uint8_t h_u_wallace_cla8_fa25_or0 = 0; - uint8_t h_u_wallace_cla8_and_1_7 = 0; - uint8_t h_u_wallace_cla8_fa26_xor1 = 0; - uint8_t h_u_wallace_cla8_fa26_or0 = 0; - uint8_t h_u_wallace_cla8_fa27_xor1 = 0; - uint8_t h_u_wallace_cla8_fa27_or0 = 0; - uint8_t h_u_wallace_cla8_ha4_xor0 = 0; - uint8_t h_u_wallace_cla8_ha4_and0 = 0; - uint8_t h_u_wallace_cla8_fa28_xor1 = 0; - uint8_t h_u_wallace_cla8_fa28_or0 = 0; - uint8_t h_u_wallace_cla8_fa29_xor1 = 0; - uint8_t h_u_wallace_cla8_fa29_or0 = 0; - uint8_t h_u_wallace_cla8_ha5_xor0 = 0; - uint8_t h_u_wallace_cla8_ha5_and0 = 0; - uint8_t h_u_wallace_cla8_ha6_xor0 = 0; - uint8_t h_u_wallace_cla8_ha6_and0 = 0; - uint8_t h_u_wallace_cla8_fa30_xor1 = 0; - uint8_t h_u_wallace_cla8_fa30_or0 = 0; - uint8_t h_u_wallace_cla8_fa31_xor1 = 0; - uint8_t h_u_wallace_cla8_fa31_or0 = 0; - uint8_t h_u_wallace_cla8_fa32_xor1 = 0; - uint8_t h_u_wallace_cla8_fa32_or0 = 0; - uint8_t h_u_wallace_cla8_and_5_7 = 0; - uint8_t h_u_wallace_cla8_fa33_xor1 = 0; - uint8_t h_u_wallace_cla8_fa33_or0 = 0; - uint8_t h_u_wallace_cla8_and_7_6 = 0; - uint8_t h_u_wallace_cla8_fa34_xor1 = 0; - uint8_t h_u_wallace_cla8_fa34_or0 = 0; - uint8_t h_u_wallace_cla8_and_0_0 = 0; - uint8_t h_u_wallace_cla8_and_1_0 = 0; - uint8_t h_u_wallace_cla8_and_0_2 = 0; - uint8_t h_u_wallace_cla8_and_6_7 = 0; - uint8_t h_u_wallace_cla8_and_0_1 = 0; - uint8_t h_u_wallace_cla8_and_7_7 = 0; - uint64_t h_u_wallace_cla8_u_cla14_a = 0; - uint64_t h_u_wallace_cla8_u_cla14_b = 0; - uint64_t h_u_wallace_cla8_u_cla14_out = 0; - - h_u_wallace_cla8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cla8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cla8_ha0_xor0 = (ha(((h_u_wallace_cla8_and_2_0 >> 0) & 0x01), ((h_u_wallace_cla8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_ha0_and0 = (ha(((h_u_wallace_cla8_and_2_0 >> 0) & 0x01), ((h_u_wallace_cla8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cla8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cla8_fa0_xor1 = (fa(((h_u_wallace_cla8_ha0_and0 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_0 >> 0) & 0x01), ((h_u_wallace_cla8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa0_or0 = (fa(((h_u_wallace_cla8_ha0_and0 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_0 >> 0) & 0x01), ((h_u_wallace_cla8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cla8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cla8_fa1_xor1 = (fa(((h_u_wallace_cla8_fa0_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_0 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa1_or0 = (fa(((h_u_wallace_cla8_fa0_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_0 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cla8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cla8_fa2_xor1 = (fa(((h_u_wallace_cla8_fa1_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_0 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa2_or0 = (fa(((h_u_wallace_cla8_fa1_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_0 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cla8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cla8_fa3_xor1 = (fa(((h_u_wallace_cla8_fa2_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_6_0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa3_or0 = (fa(((h_u_wallace_cla8_fa2_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_6_0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_7_0 = and_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cla8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cla8_fa4_xor1 = (fa(((h_u_wallace_cla8_fa3_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_7_0 >> 0) & 0x01), ((h_u_wallace_cla8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa4_or0 = (fa(((h_u_wallace_cla8_fa3_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_7_0 >> 0) & 0x01), ((h_u_wallace_cla8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_7_1 = and_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cla8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cla8_fa5_xor1 = (fa(((h_u_wallace_cla8_fa4_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_7_1 >> 0) & 0x01), ((h_u_wallace_cla8_and_6_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa5_or0 = (fa(((h_u_wallace_cla8_fa4_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_7_1 >> 0) & 0x01), ((h_u_wallace_cla8_and_6_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_7_2 = and_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cla8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cla8_fa6_xor1 = (fa(((h_u_wallace_cla8_fa5_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_7_2 >> 0) & 0x01), ((h_u_wallace_cla8_and_6_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa6_or0 = (fa(((h_u_wallace_cla8_fa5_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_7_2 >> 0) & 0x01), ((h_u_wallace_cla8_and_6_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_7_3 = and_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cla8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cla8_fa7_xor1 = (fa(((h_u_wallace_cla8_fa6_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_7_3 >> 0) & 0x01), ((h_u_wallace_cla8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa7_or0 = (fa(((h_u_wallace_cla8_fa6_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_7_3 >> 0) & 0x01), ((h_u_wallace_cla8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_7_4 = and_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cla8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cla8_fa8_xor1 = (fa(((h_u_wallace_cla8_fa7_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_7_4 >> 0) & 0x01), ((h_u_wallace_cla8_and_6_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa8_or0 = (fa(((h_u_wallace_cla8_fa7_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_7_4 >> 0) & 0x01), ((h_u_wallace_cla8_and_6_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_7_5 = and_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cla8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cla8_fa9_xor1 = (fa(((h_u_wallace_cla8_fa8_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_7_5 >> 0) & 0x01), ((h_u_wallace_cla8_and_6_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa9_or0 = (fa(((h_u_wallace_cla8_fa8_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_7_5 >> 0) & 0x01), ((h_u_wallace_cla8_and_6_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cla8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cla8_ha1_xor0 = (ha(((h_u_wallace_cla8_and_1_2 >> 0) & 0x01), ((h_u_wallace_cla8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_ha1_and0 = (ha(((h_u_wallace_cla8_and_1_2 >> 0) & 0x01), ((h_u_wallace_cla8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cla8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cla8_fa10_xor1 = (fa(((h_u_wallace_cla8_ha1_and0 >> 0) & 0x01), ((h_u_wallace_cla8_and_2_2 >> 0) & 0x01), ((h_u_wallace_cla8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa10_or0 = (fa(((h_u_wallace_cla8_ha1_and0 >> 0) & 0x01), ((h_u_wallace_cla8_and_2_2 >> 0) & 0x01), ((h_u_wallace_cla8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cla8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cla8_fa11_xor1 = (fa(((h_u_wallace_cla8_fa10_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_2 >> 0) & 0x01), ((h_u_wallace_cla8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa11_or0 = (fa(((h_u_wallace_cla8_fa10_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_2 >> 0) & 0x01), ((h_u_wallace_cla8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cla8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cla8_fa12_xor1 = (fa(((h_u_wallace_cla8_fa11_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_2 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa12_or0 = (fa(((h_u_wallace_cla8_fa11_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_2 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cla8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cla8_fa13_xor1 = (fa(((h_u_wallace_cla8_fa12_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_2 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa13_or0 = (fa(((h_u_wallace_cla8_fa12_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_2 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cla8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cla8_fa14_xor1 = (fa(((h_u_wallace_cla8_fa13_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_3 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa14_or0 = (fa(((h_u_wallace_cla8_fa13_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_3 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cla8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cla8_fa15_xor1 = (fa(((h_u_wallace_cla8_fa14_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_4 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa15_or0 = (fa(((h_u_wallace_cla8_fa14_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_4 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cla8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cla8_fa16_xor1 = (fa(((h_u_wallace_cla8_fa15_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_5 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa16_or0 = (fa(((h_u_wallace_cla8_fa15_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_5 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cla8_and_4_7 = and_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cla8_fa17_xor1 = (fa(((h_u_wallace_cla8_fa16_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_6 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa17_or0 = (fa(((h_u_wallace_cla8_fa16_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_6 >> 0) & 0x01), ((h_u_wallace_cla8_and_4_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cla8_ha2_xor0 = (ha(((h_u_wallace_cla8_and_0_4 >> 0) & 0x01), ((h_u_wallace_cla8_fa1_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_ha2_and0 = (ha(((h_u_wallace_cla8_and_0_4 >> 0) & 0x01), ((h_u_wallace_cla8_fa1_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cla8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cla8_fa18_xor1 = (fa(((h_u_wallace_cla8_ha2_and0 >> 0) & 0x01), ((h_u_wallace_cla8_and_1_4 >> 0) & 0x01), ((h_u_wallace_cla8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa18_or0 = (fa(((h_u_wallace_cla8_ha2_and0 >> 0) & 0x01), ((h_u_wallace_cla8_and_1_4 >> 0) & 0x01), ((h_u_wallace_cla8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cla8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cla8_fa19_xor1 = (fa(((h_u_wallace_cla8_fa18_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_2_4 >> 0) & 0x01), ((h_u_wallace_cla8_and_1_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa19_or0 = (fa(((h_u_wallace_cla8_fa18_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_2_4 >> 0) & 0x01), ((h_u_wallace_cla8_and_1_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cla8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cla8_fa20_xor1 = (fa(((h_u_wallace_cla8_fa19_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_4 >> 0) & 0x01), ((h_u_wallace_cla8_and_2_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa20_or0 = (fa(((h_u_wallace_cla8_fa19_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_4 >> 0) & 0x01), ((h_u_wallace_cla8_and_2_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cla8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cla8_fa21_xor1 = (fa(((h_u_wallace_cla8_fa20_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_5 >> 0) & 0x01), ((h_u_wallace_cla8_and_2_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa21_or0 = (fa(((h_u_wallace_cla8_fa20_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_5 >> 0) & 0x01), ((h_u_wallace_cla8_and_2_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cla8_and_2_7 = and_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cla8_fa22_xor1 = (fa(((h_u_wallace_cla8_fa21_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_6 >> 0) & 0x01), ((h_u_wallace_cla8_and_2_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa22_or0 = (fa(((h_u_wallace_cla8_fa21_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_6 >> 0) & 0x01), ((h_u_wallace_cla8_and_2_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_3_7 = and_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cla8_fa23_xor1 = (fa(((h_u_wallace_cla8_fa22_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_7 >> 0) & 0x01), ((h_u_wallace_cla8_fa7_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa23_or0 = (fa(((h_u_wallace_cla8_fa22_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_3_7 >> 0) & 0x01), ((h_u_wallace_cla8_fa7_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_ha3_xor0 = (ha(((h_u_wallace_cla8_fa2_xor1 >> 0) & 0x01), ((h_u_wallace_cla8_fa11_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_ha3_and0 = (ha(((h_u_wallace_cla8_fa2_xor1 >> 0) & 0x01), ((h_u_wallace_cla8_fa11_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cla8_fa24_xor1 = (fa(((h_u_wallace_cla8_ha3_and0 >> 0) & 0x01), ((h_u_wallace_cla8_and_0_6 >> 0) & 0x01), ((h_u_wallace_cla8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa24_or0 = (fa(((h_u_wallace_cla8_ha3_and0 >> 0) & 0x01), ((h_u_wallace_cla8_and_0_6 >> 0) & 0x01), ((h_u_wallace_cla8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cla8_and_0_7 = and_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cla8_fa25_xor1 = (fa(((h_u_wallace_cla8_fa24_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_1_6 >> 0) & 0x01), ((h_u_wallace_cla8_and_0_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa25_or0 = (fa(((h_u_wallace_cla8_fa24_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_1_6 >> 0) & 0x01), ((h_u_wallace_cla8_and_0_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_1_7 = and_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cla8_fa26_xor1 = (fa(((h_u_wallace_cla8_fa25_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_1_7 >> 0) & 0x01), ((h_u_wallace_cla8_fa5_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa26_or0 = (fa(((h_u_wallace_cla8_fa25_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_1_7 >> 0) & 0x01), ((h_u_wallace_cla8_fa5_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_fa27_xor1 = (fa(((h_u_wallace_cla8_fa26_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa6_xor1 >> 0) & 0x01), ((h_u_wallace_cla8_fa15_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa27_or0 = (fa(((h_u_wallace_cla8_fa26_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa6_xor1 >> 0) & 0x01), ((h_u_wallace_cla8_fa15_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_ha4_xor0 = (ha(((h_u_wallace_cla8_fa12_xor1 >> 0) & 0x01), ((h_u_wallace_cla8_fa19_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_ha4_and0 = (ha(((h_u_wallace_cla8_fa12_xor1 >> 0) & 0x01), ((h_u_wallace_cla8_fa19_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_fa28_xor1 = (fa(((h_u_wallace_cla8_ha4_and0 >> 0) & 0x01), ((h_u_wallace_cla8_fa4_xor1 >> 0) & 0x01), ((h_u_wallace_cla8_fa13_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa28_or0 = (fa(((h_u_wallace_cla8_ha4_and0 >> 0) & 0x01), ((h_u_wallace_cla8_fa4_xor1 >> 0) & 0x01), ((h_u_wallace_cla8_fa13_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_fa29_xor1 = (fa(((h_u_wallace_cla8_fa28_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa14_xor1 >> 0) & 0x01), ((h_u_wallace_cla8_fa21_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa29_or0 = (fa(((h_u_wallace_cla8_fa28_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa14_xor1 >> 0) & 0x01), ((h_u_wallace_cla8_fa21_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_ha5_xor0 = (ha(((h_u_wallace_cla8_fa20_xor1 >> 0) & 0x01), ((h_u_wallace_cla8_fa25_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_ha5_and0 = (ha(((h_u_wallace_cla8_fa20_xor1 >> 0) & 0x01), ((h_u_wallace_cla8_fa25_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_ha6_xor0 = (ha(((h_u_wallace_cla8_ha5_and0 >> 0) & 0x01), ((h_u_wallace_cla8_fa26_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_ha6_and0 = (ha(((h_u_wallace_cla8_ha5_and0 >> 0) & 0x01), ((h_u_wallace_cla8_fa26_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_fa30_xor1 = (fa(((h_u_wallace_cla8_ha6_and0 >> 0) & 0x01), ((h_u_wallace_cla8_fa29_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa22_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa30_or0 = (fa(((h_u_wallace_cla8_ha6_and0 >> 0) & 0x01), ((h_u_wallace_cla8_fa29_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa22_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_fa31_xor1 = (fa(((h_u_wallace_cla8_fa30_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa27_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa16_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa31_or0 = (fa(((h_u_wallace_cla8_fa30_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa27_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa16_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_fa32_xor1 = (fa(((h_u_wallace_cla8_fa31_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa23_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa8_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa32_or0 = (fa(((h_u_wallace_cla8_fa31_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa23_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa8_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_5_7 = and_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cla8_fa33_xor1 = (fa(((h_u_wallace_cla8_fa32_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa17_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa33_or0 = (fa(((h_u_wallace_cla8_fa32_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa17_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_7_6 = and_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cla8_fa34_xor1 = (fa(((h_u_wallace_cla8_fa33_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa9_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cla8_fa34_or0 = (fa(((h_u_wallace_cla8_fa33_or0 >> 0) & 0x01), ((h_u_wallace_cla8_fa9_or0 >> 0) & 0x01), ((h_u_wallace_cla8_and_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cla8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cla8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cla8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cla8_and_6_7 = and_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cla8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cla8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cla8_u_cla14_a |= ((h_u_wallace_cla8_and_1_0 >> 0) & 0x01) << 0; - h_u_wallace_cla8_u_cla14_a |= ((h_u_wallace_cla8_and_0_2 >> 0) & 0x01) << 1; - h_u_wallace_cla8_u_cla14_a |= ((h_u_wallace_cla8_fa0_xor1 >> 0) & 0x01) << 2; - h_u_wallace_cla8_u_cla14_a |= ((h_u_wallace_cla8_fa10_xor1 >> 0) & 0x01) << 3; - h_u_wallace_cla8_u_cla14_a |= ((h_u_wallace_cla8_fa18_xor1 >> 0) & 0x01) << 4; - h_u_wallace_cla8_u_cla14_a |= ((h_u_wallace_cla8_fa24_xor1 >> 0) & 0x01) << 5; - h_u_wallace_cla8_u_cla14_a |= ((h_u_wallace_cla8_fa28_xor1 >> 0) & 0x01) << 6; - h_u_wallace_cla8_u_cla14_a |= ((h_u_wallace_cla8_fa29_xor1 >> 0) & 0x01) << 7; - h_u_wallace_cla8_u_cla14_a |= ((h_u_wallace_cla8_fa27_xor1 >> 0) & 0x01) << 8; - h_u_wallace_cla8_u_cla14_a |= ((h_u_wallace_cla8_fa23_xor1 >> 0) & 0x01) << 9; - h_u_wallace_cla8_u_cla14_a |= ((h_u_wallace_cla8_fa17_xor1 >> 0) & 0x01) << 10; - h_u_wallace_cla8_u_cla14_a |= ((h_u_wallace_cla8_fa9_xor1 >> 0) & 0x01) << 11; - h_u_wallace_cla8_u_cla14_a |= ((h_u_wallace_cla8_and_6_7 >> 0) & 0x01) << 12; - h_u_wallace_cla8_u_cla14_a |= ((h_u_wallace_cla8_fa34_or0 >> 0) & 0x01) << 13; - h_u_wallace_cla8_u_cla14_b |= ((h_u_wallace_cla8_and_0_1 >> 0) & 0x01) << 0; - h_u_wallace_cla8_u_cla14_b |= ((h_u_wallace_cla8_ha0_xor0 >> 0) & 0x01) << 1; - h_u_wallace_cla8_u_cla14_b |= ((h_u_wallace_cla8_ha1_xor0 >> 0) & 0x01) << 2; - h_u_wallace_cla8_u_cla14_b |= ((h_u_wallace_cla8_ha2_xor0 >> 0) & 0x01) << 3; - h_u_wallace_cla8_u_cla14_b |= ((h_u_wallace_cla8_ha3_xor0 >> 0) & 0x01) << 4; - h_u_wallace_cla8_u_cla14_b |= ((h_u_wallace_cla8_ha4_xor0 >> 0) & 0x01) << 5; - h_u_wallace_cla8_u_cla14_b |= ((h_u_wallace_cla8_ha5_xor0 >> 0) & 0x01) << 6; - h_u_wallace_cla8_u_cla14_b |= ((h_u_wallace_cla8_ha6_xor0 >> 0) & 0x01) << 7; - h_u_wallace_cla8_u_cla14_b |= ((h_u_wallace_cla8_fa30_xor1 >> 0) & 0x01) << 8; - h_u_wallace_cla8_u_cla14_b |= ((h_u_wallace_cla8_fa31_xor1 >> 0) & 0x01) << 9; - h_u_wallace_cla8_u_cla14_b |= ((h_u_wallace_cla8_fa32_xor1 >> 0) & 0x01) << 10; - h_u_wallace_cla8_u_cla14_b |= ((h_u_wallace_cla8_fa33_xor1 >> 0) & 0x01) << 11; - h_u_wallace_cla8_u_cla14_b |= ((h_u_wallace_cla8_fa34_xor1 >> 0) & 0x01) << 12; - h_u_wallace_cla8_u_cla14_b |= ((h_u_wallace_cla8_and_7_7 >> 0) & 0x01) << 13; - h_u_wallace_cla8_u_cla14_out = u_cla14(h_u_wallace_cla8_u_cla14_a, h_u_wallace_cla8_u_cla14_b); - - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_and_0_0 >> 0) & 0x01) << 0; - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_u_cla14_out >> 0) & 0x01) << 1; - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_u_cla14_out >> 1) & 0x01) << 2; - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_u_cla14_out >> 2) & 0x01) << 3; - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_u_cla14_out >> 3) & 0x01) << 4; - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_u_cla14_out >> 4) & 0x01) << 5; - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_u_cla14_out >> 5) & 0x01) << 6; - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_u_cla14_out >> 6) & 0x01) << 7; - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_u_cla14_out >> 7) & 0x01) << 8; - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_u_cla14_out >> 8) & 0x01) << 9; - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_u_cla14_out >> 9) & 0x01) << 10; - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_u_cla14_out >> 10) & 0x01) << 11; - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_u_cla14_out >> 11) & 0x01) << 12; - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_u_cla14_out >> 12) & 0x01) << 13; - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_u_cla14_out >> 13) & 0x01) << 14; - h_u_wallace_cla8_out |= ((h_u_wallace_cla8_u_cla14_out >> 14) & 0x01) << 15; - return h_u_wallace_cla8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == h_u_wallace_cla8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cska4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cska4.c deleted file mode 100644 index b720c71..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cska4.c +++ /dev/null @@ -1,225 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t mux2to1(uint8_t d0, uint8_t d1, uint8_t sel){ - uint8_t mux2to1_out = 0; - uint8_t mux2to1_and0 = 0; - uint8_t mux2to1_not0 = 0; - uint8_t mux2to1_and1 = 0; - uint8_t mux2to1_xor0 = 0; - - mux2to1_and0 = and_gate(((d1 >> 0) & 0x01), ((sel >> 0) & 0x01)); - mux2to1_not0 = not_gate(((sel >> 0) & 0x01)); - mux2to1_and1 = and_gate(((d0 >> 0) & 0x01), ((mux2to1_not0 >> 0) & 0x01)); - mux2to1_xor0 = xor_gate(((mux2to1_and0 >> 0) & 0x01), ((mux2to1_and1 >> 0) & 0x01)); - - mux2to1_out |= ((mux2to1_xor0 >> 0) & 0x01) << 0; - return mux2to1_out; -} - -uint64_t u_cska6(uint64_t a, uint64_t b){ - uint8_t u_cska6_out = 0; - uint8_t u_cska6_xor0 = 0; - uint8_t u_cska6_ha0_xor0 = 0; - uint8_t u_cska6_ha0_and0 = 0; - uint8_t u_cska6_xor1 = 0; - uint8_t u_cska6_fa0_xor1 = 0; - uint8_t u_cska6_fa0_or0 = 0; - uint8_t u_cska6_xor2 = 0; - uint8_t u_cska6_fa1_xor1 = 0; - uint8_t u_cska6_fa1_or0 = 0; - uint8_t u_cska6_xor3 = 0; - uint8_t u_cska6_fa2_xor1 = 0; - uint8_t u_cska6_fa2_or0 = 0; - uint8_t u_cska6_and_propagate00 = 0; - uint8_t u_cska6_and_propagate01 = 0; - uint8_t u_cska6_and_propagate02 = 0; - uint8_t u_cska6_mux2to10_and1 = 0; - uint8_t u_cska6_xor4 = 0; - uint8_t u_cska6_fa3_xor1 = 0; - uint8_t u_cska6_fa3_or0 = 0; - uint8_t u_cska6_xor5 = 0; - uint8_t u_cska6_fa4_xor1 = 0; - uint8_t u_cska6_fa4_or0 = 0; - uint8_t u_cska6_and_propagate13 = 0; - uint8_t u_cska6_mux2to11_xor0 = 0; - - u_cska6_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - u_cska6_ha0_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_ha0_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor1 = xor_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - u_cska6_fa0_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska6_ha0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa0_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska6_ha0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor2 = xor_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - u_cska6_fa1_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska6_fa0_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa1_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska6_fa0_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor3 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - u_cska6_fa2_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska6_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa2_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska6_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_and_propagate00 = and_gate(((u_cska6_xor0 >> 0) & 0x01), ((u_cska6_xor2 >> 0) & 0x01)); - u_cska6_and_propagate01 = and_gate(((u_cska6_xor1 >> 0) & 0x01), ((u_cska6_xor3 >> 0) & 0x01)); - u_cska6_and_propagate02 = and_gate(((u_cska6_and_propagate00 >> 0) & 0x01), ((u_cska6_and_propagate01 >> 0) & 0x01)); - u_cska6_mux2to10_and1 = (mux2to1(((u_cska6_fa2_or0 >> 0) & 0x01), (0x00), ((u_cska6_and_propagate02 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_xor4 = xor_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - u_cska6_fa3_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska6_mux2to10_and1 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa3_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska6_mux2to10_and1 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_xor5 = xor_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - u_cska6_fa4_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska6_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska6_fa4_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska6_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska6_and_propagate13 = and_gate(((u_cska6_xor4 >> 0) & 0x01), ((u_cska6_xor5 >> 0) & 0x01)); - u_cska6_mux2to11_xor0 = (mux2to1(((u_cska6_fa4_or0 >> 0) & 0x01), ((u_cska6_mux2to10_and1 >> 0) & 0x01), ((u_cska6_and_propagate13 >> 0) & 0x01)) >> 0) & 0x01; - - u_cska6_out |= ((u_cska6_ha0_xor0 >> 0) & 0x01) << 0; - u_cska6_out |= ((u_cska6_fa0_xor1 >> 0) & 0x01) << 1; - u_cska6_out |= ((u_cska6_fa1_xor1 >> 0) & 0x01) << 2; - u_cska6_out |= ((u_cska6_fa2_xor1 >> 0) & 0x01) << 3; - u_cska6_out |= ((u_cska6_fa3_xor1 >> 0) & 0x01) << 4; - u_cska6_out |= ((u_cska6_fa4_xor1 >> 0) & 0x01) << 5; - u_cska6_out |= ((u_cska6_mux2to11_xor0 >> 0) & 0x01) << 6; - return u_cska6_out; -} - -uint64_t h_u_wallace_cska4(uint64_t a, uint64_t b){ - uint8_t h_u_wallace_cska4_out = 0; - uint8_t h_u_wallace_cska4_and_2_0 = 0; - uint8_t h_u_wallace_cska4_and_1_1 = 0; - uint8_t h_u_wallace_cska4_ha0_xor0 = 0; - uint8_t h_u_wallace_cska4_ha0_and0 = 0; - uint8_t h_u_wallace_cska4_and_3_0 = 0; - uint8_t h_u_wallace_cska4_and_2_1 = 0; - uint8_t h_u_wallace_cska4_fa0_xor1 = 0; - uint8_t h_u_wallace_cska4_fa0_or0 = 0; - uint8_t h_u_wallace_cska4_and_3_1 = 0; - uint8_t h_u_wallace_cska4_and_2_2 = 0; - uint8_t h_u_wallace_cska4_fa1_xor1 = 0; - uint8_t h_u_wallace_cska4_fa1_or0 = 0; - uint8_t h_u_wallace_cska4_and_1_2 = 0; - uint8_t h_u_wallace_cska4_and_0_3 = 0; - uint8_t h_u_wallace_cska4_ha1_xor0 = 0; - uint8_t h_u_wallace_cska4_ha1_and0 = 0; - uint8_t h_u_wallace_cska4_and_1_3 = 0; - uint8_t h_u_wallace_cska4_ha2_xor0 = 0; - uint8_t h_u_wallace_cska4_ha2_and0 = 0; - uint8_t h_u_wallace_cska4_and_3_2 = 0; - uint8_t h_u_wallace_cska4_fa2_xor1 = 0; - uint8_t h_u_wallace_cska4_fa2_or0 = 0; - uint8_t h_u_wallace_cska4_and_0_0 = 0; - uint8_t h_u_wallace_cska4_and_1_0 = 0; - uint8_t h_u_wallace_cska4_and_0_2 = 0; - uint8_t h_u_wallace_cska4_and_2_3 = 0; - uint8_t h_u_wallace_cska4_and_0_1 = 0; - uint8_t h_u_wallace_cska4_and_3_3 = 0; - uint64_t h_u_wallace_cska4_u_cska6_a = 0; - uint64_t h_u_wallace_cska4_u_cska6_b = 0; - uint64_t h_u_wallace_cska4_u_cska6_out = 0; - - h_u_wallace_cska4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cska4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cska4_ha0_xor0 = (ha(((h_u_wallace_cska4_and_2_0 >> 0) & 0x01), ((h_u_wallace_cska4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska4_ha0_and0 = (ha(((h_u_wallace_cska4_and_2_0 >> 0) & 0x01), ((h_u_wallace_cska4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska4_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cska4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cska4_fa0_xor1 = (fa(((h_u_wallace_cska4_ha0_and0 >> 0) & 0x01), ((h_u_wallace_cska4_and_3_0 >> 0) & 0x01), ((h_u_wallace_cska4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska4_fa0_or0 = (fa(((h_u_wallace_cska4_ha0_and0 >> 0) & 0x01), ((h_u_wallace_cska4_and_3_0 >> 0) & 0x01), ((h_u_wallace_cska4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska4_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cska4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cska4_fa1_xor1 = (fa(((h_u_wallace_cska4_fa0_or0 >> 0) & 0x01), ((h_u_wallace_cska4_and_3_1 >> 0) & 0x01), ((h_u_wallace_cska4_and_2_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska4_fa1_or0 = (fa(((h_u_wallace_cska4_fa0_or0 >> 0) & 0x01), ((h_u_wallace_cska4_and_3_1 >> 0) & 0x01), ((h_u_wallace_cska4_and_2_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cska4_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cska4_ha1_xor0 = (ha(((h_u_wallace_cska4_and_1_2 >> 0) & 0x01), ((h_u_wallace_cska4_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska4_ha1_and0 = (ha(((h_u_wallace_cska4_and_1_2 >> 0) & 0x01), ((h_u_wallace_cska4_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska4_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cska4_ha2_xor0 = (ha(((h_u_wallace_cska4_ha1_and0 >> 0) & 0x01), ((h_u_wallace_cska4_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska4_ha2_and0 = (ha(((h_u_wallace_cska4_ha1_and0 >> 0) & 0x01), ((h_u_wallace_cska4_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska4_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cska4_fa2_xor1 = (fa(((h_u_wallace_cska4_ha2_and0 >> 0) & 0x01), ((h_u_wallace_cska4_fa1_or0 >> 0) & 0x01), ((h_u_wallace_cska4_and_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska4_fa2_or0 = (fa(((h_u_wallace_cska4_ha2_and0 >> 0) & 0x01), ((h_u_wallace_cska4_fa1_or0 >> 0) & 0x01), ((h_u_wallace_cska4_and_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cska4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cska4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cska4_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cska4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cska4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cska4_u_cska6_a |= ((h_u_wallace_cska4_and_1_0 >> 0) & 0x01) << 0; - h_u_wallace_cska4_u_cska6_a |= ((h_u_wallace_cska4_and_0_2 >> 0) & 0x01) << 1; - h_u_wallace_cska4_u_cska6_a |= ((h_u_wallace_cska4_fa0_xor1 >> 0) & 0x01) << 2; - h_u_wallace_cska4_u_cska6_a |= ((h_u_wallace_cska4_fa1_xor1 >> 0) & 0x01) << 3; - h_u_wallace_cska4_u_cska6_a |= ((h_u_wallace_cska4_and_2_3 >> 0) & 0x01) << 4; - h_u_wallace_cska4_u_cska6_a |= ((h_u_wallace_cska4_fa2_or0 >> 0) & 0x01) << 5; - h_u_wallace_cska4_u_cska6_b |= ((h_u_wallace_cska4_and_0_1 >> 0) & 0x01) << 0; - h_u_wallace_cska4_u_cska6_b |= ((h_u_wallace_cska4_ha0_xor0 >> 0) & 0x01) << 1; - h_u_wallace_cska4_u_cska6_b |= ((h_u_wallace_cska4_ha1_xor0 >> 0) & 0x01) << 2; - h_u_wallace_cska4_u_cska6_b |= ((h_u_wallace_cska4_ha2_xor0 >> 0) & 0x01) << 3; - h_u_wallace_cska4_u_cska6_b |= ((h_u_wallace_cska4_fa2_xor1 >> 0) & 0x01) << 4; - h_u_wallace_cska4_u_cska6_b |= ((h_u_wallace_cska4_and_3_3 >> 0) & 0x01) << 5; - h_u_wallace_cska4_u_cska6_out = u_cska6(h_u_wallace_cska4_u_cska6_a, h_u_wallace_cska4_u_cska6_b); - - h_u_wallace_cska4_out |= ((h_u_wallace_cska4_and_0_0 >> 0) & 0x01) << 0; - h_u_wallace_cska4_out |= ((h_u_wallace_cska4_u_cska6_out >> 0) & 0x01) << 1; - h_u_wallace_cska4_out |= ((h_u_wallace_cska4_u_cska6_out >> 1) & 0x01) << 2; - h_u_wallace_cska4_out |= ((h_u_wallace_cska4_u_cska6_out >> 2) & 0x01) << 3; - h_u_wallace_cska4_out |= ((h_u_wallace_cska4_u_cska6_out >> 3) & 0x01) << 4; - h_u_wallace_cska4_out |= ((h_u_wallace_cska4_u_cska6_out >> 4) & 0x01) << 5; - h_u_wallace_cska4_out |= ((h_u_wallace_cska4_u_cska6_out >> 5) & 0x01) << 6; - h_u_wallace_cska4_out |= ((h_u_wallace_cska4_u_cska6_out >> 6) & 0x01) << 7; - return h_u_wallace_cska4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == h_u_wallace_cska4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cska8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cska8.c deleted file mode 100644 index 315343f..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_cska8.c +++ /dev/null @@ -1,561 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t mux2to1(uint8_t d0, uint8_t d1, uint8_t sel){ - uint8_t mux2to1_out = 0; - uint8_t mux2to1_and0 = 0; - uint8_t mux2to1_not0 = 0; - uint8_t mux2to1_and1 = 0; - uint8_t mux2to1_xor0 = 0; - - mux2to1_and0 = and_gate(((d1 >> 0) & 0x01), ((sel >> 0) & 0x01)); - mux2to1_not0 = not_gate(((sel >> 0) & 0x01)); - mux2to1_and1 = and_gate(((d0 >> 0) & 0x01), ((mux2to1_not0 >> 0) & 0x01)); - mux2to1_xor0 = xor_gate(((mux2to1_and0 >> 0) & 0x01), ((mux2to1_and1 >> 0) & 0x01)); - - mux2to1_out |= ((mux2to1_xor0 >> 0) & 0x01) << 0; - return mux2to1_out; -} - -uint64_t u_cska14(uint64_t a, uint64_t b){ - uint64_t u_cska14_out = 0; - uint8_t u_cska14_xor0 = 0; - uint8_t u_cska14_ha0_xor0 = 0; - uint8_t u_cska14_ha0_and0 = 0; - uint8_t u_cska14_xor1 = 0; - uint8_t u_cska14_fa0_xor1 = 0; - uint8_t u_cska14_fa0_or0 = 0; - uint8_t u_cska14_xor2 = 0; - uint8_t u_cska14_fa1_xor1 = 0; - uint8_t u_cska14_fa1_or0 = 0; - uint8_t u_cska14_xor3 = 0; - uint8_t u_cska14_fa2_xor1 = 0; - uint8_t u_cska14_fa2_or0 = 0; - uint8_t u_cska14_and_propagate00 = 0; - uint8_t u_cska14_and_propagate01 = 0; - uint8_t u_cska14_and_propagate02 = 0; - uint8_t u_cska14_mux2to10_and1 = 0; - uint8_t u_cska14_xor4 = 0; - uint8_t u_cska14_fa3_xor1 = 0; - uint8_t u_cska14_fa3_or0 = 0; - uint8_t u_cska14_xor5 = 0; - uint8_t u_cska14_fa4_xor1 = 0; - uint8_t u_cska14_fa4_or0 = 0; - uint8_t u_cska14_xor6 = 0; - uint8_t u_cska14_fa5_xor1 = 0; - uint8_t u_cska14_fa5_or0 = 0; - uint8_t u_cska14_xor7 = 0; - uint8_t u_cska14_fa6_xor1 = 0; - uint8_t u_cska14_fa6_or0 = 0; - uint8_t u_cska14_and_propagate13 = 0; - uint8_t u_cska14_and_propagate14 = 0; - uint8_t u_cska14_and_propagate15 = 0; - uint8_t u_cska14_mux2to11_xor0 = 0; - uint8_t u_cska14_xor8 = 0; - uint8_t u_cska14_fa7_xor1 = 0; - uint8_t u_cska14_fa7_or0 = 0; - uint8_t u_cska14_xor9 = 0; - uint8_t u_cska14_fa8_xor1 = 0; - uint8_t u_cska14_fa8_or0 = 0; - uint8_t u_cska14_xor10 = 0; - uint8_t u_cska14_fa9_xor1 = 0; - uint8_t u_cska14_fa9_or0 = 0; - uint8_t u_cska14_xor11 = 0; - uint8_t u_cska14_fa10_xor1 = 0; - uint8_t u_cska14_fa10_or0 = 0; - uint8_t u_cska14_and_propagate26 = 0; - uint8_t u_cska14_and_propagate27 = 0; - uint8_t u_cska14_and_propagate28 = 0; - uint8_t u_cska14_mux2to12_xor0 = 0; - uint8_t u_cska14_xor12 = 0; - uint8_t u_cska14_fa11_xor1 = 0; - uint8_t u_cska14_fa11_or0 = 0; - uint8_t u_cska14_xor13 = 0; - uint8_t u_cska14_fa12_xor1 = 0; - uint8_t u_cska14_fa12_or0 = 0; - uint8_t u_cska14_and_propagate39 = 0; - uint8_t u_cska14_mux2to13_xor0 = 0; - - u_cska14_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - u_cska14_ha0_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_ha0_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor1 = xor_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - u_cska14_fa0_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska14_ha0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa0_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_cska14_ha0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor2 = xor_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - u_cska14_fa1_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska14_fa0_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa1_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_cska14_fa0_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor3 = xor_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - u_cska14_fa2_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska14_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa2_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_cska14_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate00 = and_gate(((u_cska14_xor0 >> 0) & 0x01), ((u_cska14_xor2 >> 0) & 0x01)); - u_cska14_and_propagate01 = and_gate(((u_cska14_xor1 >> 0) & 0x01), ((u_cska14_xor3 >> 0) & 0x01)); - u_cska14_and_propagate02 = and_gate(((u_cska14_and_propagate00 >> 0) & 0x01), ((u_cska14_and_propagate01 >> 0) & 0x01)); - u_cska14_mux2to10_and1 = (mux2to1(((u_cska14_fa2_or0 >> 0) & 0x01), (0x00), ((u_cska14_and_propagate02 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_xor4 = xor_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - u_cska14_fa3_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska14_mux2to10_and1 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa3_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_cska14_mux2to10_and1 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor5 = xor_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - u_cska14_fa4_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska14_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa4_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_cska14_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor6 = xor_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - u_cska14_fa5_xor1 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_cska14_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa5_or0 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_cska14_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor7 = xor_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - u_cska14_fa6_xor1 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_cska14_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa6_or0 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_cska14_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate13 = and_gate(((u_cska14_xor4 >> 0) & 0x01), ((u_cska14_xor6 >> 0) & 0x01)); - u_cska14_and_propagate14 = and_gate(((u_cska14_xor5 >> 0) & 0x01), ((u_cska14_xor7 >> 0) & 0x01)); - u_cska14_and_propagate15 = and_gate(((u_cska14_and_propagate13 >> 0) & 0x01), ((u_cska14_and_propagate14 >> 0) & 0x01)); - u_cska14_mux2to11_xor0 = (mux2to1(((u_cska14_fa6_or0 >> 0) & 0x01), ((u_cska14_mux2to10_and1 >> 0) & 0x01), ((u_cska14_and_propagate15 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_xor8 = xor_gate(((a >> 8) & 0x01), ((b >> 8) & 0x01)); - u_cska14_fa7_xor1 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_cska14_mux2to11_xor0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa7_or0 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_cska14_mux2to11_xor0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor9 = xor_gate(((a >> 9) & 0x01), ((b >> 9) & 0x01)); - u_cska14_fa8_xor1 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_cska14_fa7_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa8_or0 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_cska14_fa7_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor10 = xor_gate(((a >> 10) & 0x01), ((b >> 10) & 0x01)); - u_cska14_fa9_xor1 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_cska14_fa8_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa9_or0 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_cska14_fa8_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor11 = xor_gate(((a >> 11) & 0x01), ((b >> 11) & 0x01)); - u_cska14_fa10_xor1 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_cska14_fa9_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa10_or0 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_cska14_fa9_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate26 = and_gate(((u_cska14_xor8 >> 0) & 0x01), ((u_cska14_xor10 >> 0) & 0x01)); - u_cska14_and_propagate27 = and_gate(((u_cska14_xor9 >> 0) & 0x01), ((u_cska14_xor11 >> 0) & 0x01)); - u_cska14_and_propagate28 = and_gate(((u_cska14_and_propagate26 >> 0) & 0x01), ((u_cska14_and_propagate27 >> 0) & 0x01)); - u_cska14_mux2to12_xor0 = (mux2to1(((u_cska14_fa10_or0 >> 0) & 0x01), ((u_cska14_mux2to11_xor0 >> 0) & 0x01), ((u_cska14_and_propagate28 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_xor12 = xor_gate(((a >> 12) & 0x01), ((b >> 12) & 0x01)); - u_cska14_fa11_xor1 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_cska14_mux2to12_xor0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa11_or0 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_cska14_mux2to12_xor0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_xor13 = xor_gate(((a >> 13) & 0x01), ((b >> 13) & 0x01)); - u_cska14_fa12_xor1 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_cska14_fa11_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_cska14_fa12_or0 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_cska14_fa11_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_cska14_and_propagate39 = and_gate(((u_cska14_xor12 >> 0) & 0x01), ((u_cska14_xor13 >> 0) & 0x01)); - u_cska14_mux2to13_xor0 = (mux2to1(((u_cska14_fa12_or0 >> 0) & 0x01), ((u_cska14_mux2to12_xor0 >> 0) & 0x01), ((u_cska14_and_propagate39 >> 0) & 0x01)) >> 0) & 0x01; - - u_cska14_out |= ((u_cska14_ha0_xor0 >> 0) & 0x01) << 0; - u_cska14_out |= ((u_cska14_fa0_xor1 >> 0) & 0x01) << 1; - u_cska14_out |= ((u_cska14_fa1_xor1 >> 0) & 0x01) << 2; - u_cska14_out |= ((u_cska14_fa2_xor1 >> 0) & 0x01) << 3; - u_cska14_out |= ((u_cska14_fa3_xor1 >> 0) & 0x01) << 4; - u_cska14_out |= ((u_cska14_fa4_xor1 >> 0) & 0x01) << 5; - u_cska14_out |= ((u_cska14_fa5_xor1 >> 0) & 0x01) << 6; - u_cska14_out |= ((u_cska14_fa6_xor1 >> 0) & 0x01) << 7; - u_cska14_out |= ((u_cska14_fa7_xor1 >> 0) & 0x01) << 8; - u_cska14_out |= ((u_cska14_fa8_xor1 >> 0) & 0x01) << 9; - u_cska14_out |= ((u_cska14_fa9_xor1 >> 0) & 0x01) << 10; - u_cska14_out |= ((u_cska14_fa10_xor1 >> 0) & 0x01) << 11; - u_cska14_out |= ((u_cska14_fa11_xor1 >> 0) & 0x01) << 12; - u_cska14_out |= ((u_cska14_fa12_xor1 >> 0) & 0x01) << 13; - u_cska14_out |= ((u_cska14_mux2to13_xor0 >> 0) & 0x01) << 14; - return u_cska14_out; -} - -uint64_t h_u_wallace_cska8(uint64_t a, uint64_t b){ - uint64_t h_u_wallace_cska8_out = 0; - uint8_t h_u_wallace_cska8_and_2_0 = 0; - uint8_t h_u_wallace_cska8_and_1_1 = 0; - uint8_t h_u_wallace_cska8_ha0_xor0 = 0; - uint8_t h_u_wallace_cska8_ha0_and0 = 0; - uint8_t h_u_wallace_cska8_and_3_0 = 0; - uint8_t h_u_wallace_cska8_and_2_1 = 0; - uint8_t h_u_wallace_cska8_fa0_xor1 = 0; - uint8_t h_u_wallace_cska8_fa0_or0 = 0; - uint8_t h_u_wallace_cska8_and_4_0 = 0; - uint8_t h_u_wallace_cska8_and_3_1 = 0; - uint8_t h_u_wallace_cska8_fa1_xor1 = 0; - uint8_t h_u_wallace_cska8_fa1_or0 = 0; - uint8_t h_u_wallace_cska8_and_5_0 = 0; - uint8_t h_u_wallace_cska8_and_4_1 = 0; - uint8_t h_u_wallace_cska8_fa2_xor1 = 0; - uint8_t h_u_wallace_cska8_fa2_or0 = 0; - uint8_t h_u_wallace_cska8_and_6_0 = 0; - uint8_t h_u_wallace_cska8_and_5_1 = 0; - uint8_t h_u_wallace_cska8_fa3_xor1 = 0; - uint8_t h_u_wallace_cska8_fa3_or0 = 0; - uint8_t h_u_wallace_cska8_and_7_0 = 0; - uint8_t h_u_wallace_cska8_and_6_1 = 0; - uint8_t h_u_wallace_cska8_fa4_xor1 = 0; - uint8_t h_u_wallace_cska8_fa4_or0 = 0; - uint8_t h_u_wallace_cska8_and_7_1 = 0; - uint8_t h_u_wallace_cska8_and_6_2 = 0; - uint8_t h_u_wallace_cska8_fa5_xor1 = 0; - uint8_t h_u_wallace_cska8_fa5_or0 = 0; - uint8_t h_u_wallace_cska8_and_7_2 = 0; - uint8_t h_u_wallace_cska8_and_6_3 = 0; - uint8_t h_u_wallace_cska8_fa6_xor1 = 0; - uint8_t h_u_wallace_cska8_fa6_or0 = 0; - uint8_t h_u_wallace_cska8_and_7_3 = 0; - uint8_t h_u_wallace_cska8_and_6_4 = 0; - uint8_t h_u_wallace_cska8_fa7_xor1 = 0; - uint8_t h_u_wallace_cska8_fa7_or0 = 0; - uint8_t h_u_wallace_cska8_and_7_4 = 0; - uint8_t h_u_wallace_cska8_and_6_5 = 0; - uint8_t h_u_wallace_cska8_fa8_xor1 = 0; - uint8_t h_u_wallace_cska8_fa8_or0 = 0; - uint8_t h_u_wallace_cska8_and_7_5 = 0; - uint8_t h_u_wallace_cska8_and_6_6 = 0; - uint8_t h_u_wallace_cska8_fa9_xor1 = 0; - uint8_t h_u_wallace_cska8_fa9_or0 = 0; - uint8_t h_u_wallace_cska8_and_1_2 = 0; - uint8_t h_u_wallace_cska8_and_0_3 = 0; - uint8_t h_u_wallace_cska8_ha1_xor0 = 0; - uint8_t h_u_wallace_cska8_ha1_and0 = 0; - uint8_t h_u_wallace_cska8_and_2_2 = 0; - uint8_t h_u_wallace_cska8_and_1_3 = 0; - uint8_t h_u_wallace_cska8_fa10_xor1 = 0; - uint8_t h_u_wallace_cska8_fa10_or0 = 0; - uint8_t h_u_wallace_cska8_and_3_2 = 0; - uint8_t h_u_wallace_cska8_and_2_3 = 0; - uint8_t h_u_wallace_cska8_fa11_xor1 = 0; - uint8_t h_u_wallace_cska8_fa11_or0 = 0; - uint8_t h_u_wallace_cska8_and_4_2 = 0; - uint8_t h_u_wallace_cska8_and_3_3 = 0; - uint8_t h_u_wallace_cska8_fa12_xor1 = 0; - uint8_t h_u_wallace_cska8_fa12_or0 = 0; - uint8_t h_u_wallace_cska8_and_5_2 = 0; - uint8_t h_u_wallace_cska8_and_4_3 = 0; - uint8_t h_u_wallace_cska8_fa13_xor1 = 0; - uint8_t h_u_wallace_cska8_fa13_or0 = 0; - uint8_t h_u_wallace_cska8_and_5_3 = 0; - uint8_t h_u_wallace_cska8_and_4_4 = 0; - uint8_t h_u_wallace_cska8_fa14_xor1 = 0; - uint8_t h_u_wallace_cska8_fa14_or0 = 0; - uint8_t h_u_wallace_cska8_and_5_4 = 0; - uint8_t h_u_wallace_cska8_and_4_5 = 0; - uint8_t h_u_wallace_cska8_fa15_xor1 = 0; - uint8_t h_u_wallace_cska8_fa15_or0 = 0; - uint8_t h_u_wallace_cska8_and_5_5 = 0; - uint8_t h_u_wallace_cska8_and_4_6 = 0; - uint8_t h_u_wallace_cska8_fa16_xor1 = 0; - uint8_t h_u_wallace_cska8_fa16_or0 = 0; - uint8_t h_u_wallace_cska8_and_5_6 = 0; - uint8_t h_u_wallace_cska8_and_4_7 = 0; - uint8_t h_u_wallace_cska8_fa17_xor1 = 0; - uint8_t h_u_wallace_cska8_fa17_or0 = 0; - uint8_t h_u_wallace_cska8_and_0_4 = 0; - uint8_t h_u_wallace_cska8_ha2_xor0 = 0; - uint8_t h_u_wallace_cska8_ha2_and0 = 0; - uint8_t h_u_wallace_cska8_and_1_4 = 0; - uint8_t h_u_wallace_cska8_and_0_5 = 0; - uint8_t h_u_wallace_cska8_fa18_xor1 = 0; - uint8_t h_u_wallace_cska8_fa18_or0 = 0; - uint8_t h_u_wallace_cska8_and_2_4 = 0; - uint8_t h_u_wallace_cska8_and_1_5 = 0; - uint8_t h_u_wallace_cska8_fa19_xor1 = 0; - uint8_t h_u_wallace_cska8_fa19_or0 = 0; - uint8_t h_u_wallace_cska8_and_3_4 = 0; - uint8_t h_u_wallace_cska8_and_2_5 = 0; - uint8_t h_u_wallace_cska8_fa20_xor1 = 0; - uint8_t h_u_wallace_cska8_fa20_or0 = 0; - uint8_t h_u_wallace_cska8_and_3_5 = 0; - uint8_t h_u_wallace_cska8_and_2_6 = 0; - uint8_t h_u_wallace_cska8_fa21_xor1 = 0; - uint8_t h_u_wallace_cska8_fa21_or0 = 0; - uint8_t h_u_wallace_cska8_and_3_6 = 0; - uint8_t h_u_wallace_cska8_and_2_7 = 0; - uint8_t h_u_wallace_cska8_fa22_xor1 = 0; - uint8_t h_u_wallace_cska8_fa22_or0 = 0; - uint8_t h_u_wallace_cska8_and_3_7 = 0; - uint8_t h_u_wallace_cska8_fa23_xor1 = 0; - uint8_t h_u_wallace_cska8_fa23_or0 = 0; - uint8_t h_u_wallace_cska8_ha3_xor0 = 0; - uint8_t h_u_wallace_cska8_ha3_and0 = 0; - uint8_t h_u_wallace_cska8_and_0_6 = 0; - uint8_t h_u_wallace_cska8_fa24_xor1 = 0; - uint8_t h_u_wallace_cska8_fa24_or0 = 0; - uint8_t h_u_wallace_cska8_and_1_6 = 0; - uint8_t h_u_wallace_cska8_and_0_7 = 0; - uint8_t h_u_wallace_cska8_fa25_xor1 = 0; - uint8_t h_u_wallace_cska8_fa25_or0 = 0; - uint8_t h_u_wallace_cska8_and_1_7 = 0; - uint8_t h_u_wallace_cska8_fa26_xor1 = 0; - uint8_t h_u_wallace_cska8_fa26_or0 = 0; - uint8_t h_u_wallace_cska8_fa27_xor1 = 0; - uint8_t h_u_wallace_cska8_fa27_or0 = 0; - uint8_t h_u_wallace_cska8_ha4_xor0 = 0; - uint8_t h_u_wallace_cska8_ha4_and0 = 0; - uint8_t h_u_wallace_cska8_fa28_xor1 = 0; - uint8_t h_u_wallace_cska8_fa28_or0 = 0; - uint8_t h_u_wallace_cska8_fa29_xor1 = 0; - uint8_t h_u_wallace_cska8_fa29_or0 = 0; - uint8_t h_u_wallace_cska8_ha5_xor0 = 0; - uint8_t h_u_wallace_cska8_ha5_and0 = 0; - uint8_t h_u_wallace_cska8_ha6_xor0 = 0; - uint8_t h_u_wallace_cska8_ha6_and0 = 0; - uint8_t h_u_wallace_cska8_fa30_xor1 = 0; - uint8_t h_u_wallace_cska8_fa30_or0 = 0; - uint8_t h_u_wallace_cska8_fa31_xor1 = 0; - uint8_t h_u_wallace_cska8_fa31_or0 = 0; - uint8_t h_u_wallace_cska8_fa32_xor1 = 0; - uint8_t h_u_wallace_cska8_fa32_or0 = 0; - uint8_t h_u_wallace_cska8_and_5_7 = 0; - uint8_t h_u_wallace_cska8_fa33_xor1 = 0; - uint8_t h_u_wallace_cska8_fa33_or0 = 0; - uint8_t h_u_wallace_cska8_and_7_6 = 0; - uint8_t h_u_wallace_cska8_fa34_xor1 = 0; - uint8_t h_u_wallace_cska8_fa34_or0 = 0; - uint8_t h_u_wallace_cska8_and_0_0 = 0; - uint8_t h_u_wallace_cska8_and_1_0 = 0; - uint8_t h_u_wallace_cska8_and_0_2 = 0; - uint8_t h_u_wallace_cska8_and_6_7 = 0; - uint8_t h_u_wallace_cska8_and_0_1 = 0; - uint8_t h_u_wallace_cska8_and_7_7 = 0; - uint64_t h_u_wallace_cska8_u_cska14_a = 0; - uint64_t h_u_wallace_cska8_u_cska14_b = 0; - uint64_t h_u_wallace_cska8_u_cska14_out = 0; - - h_u_wallace_cska8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cska8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cska8_ha0_xor0 = (ha(((h_u_wallace_cska8_and_2_0 >> 0) & 0x01), ((h_u_wallace_cska8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_ha0_and0 = (ha(((h_u_wallace_cska8_and_2_0 >> 0) & 0x01), ((h_u_wallace_cska8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cska8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cska8_fa0_xor1 = (fa(((h_u_wallace_cska8_ha0_and0 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_0 >> 0) & 0x01), ((h_u_wallace_cska8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa0_or0 = (fa(((h_u_wallace_cska8_ha0_and0 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_0 >> 0) & 0x01), ((h_u_wallace_cska8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cska8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cska8_fa1_xor1 = (fa(((h_u_wallace_cska8_fa0_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_0 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa1_or0 = (fa(((h_u_wallace_cska8_fa0_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_0 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cska8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cska8_fa2_xor1 = (fa(((h_u_wallace_cska8_fa1_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_0 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa2_or0 = (fa(((h_u_wallace_cska8_fa1_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_0 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cska8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cska8_fa3_xor1 = (fa(((h_u_wallace_cska8_fa2_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_6_0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa3_or0 = (fa(((h_u_wallace_cska8_fa2_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_6_0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_7_0 = and_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cska8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cska8_fa4_xor1 = (fa(((h_u_wallace_cska8_fa3_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_7_0 >> 0) & 0x01), ((h_u_wallace_cska8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa4_or0 = (fa(((h_u_wallace_cska8_fa3_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_7_0 >> 0) & 0x01), ((h_u_wallace_cska8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_7_1 = and_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cska8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cska8_fa5_xor1 = (fa(((h_u_wallace_cska8_fa4_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_7_1 >> 0) & 0x01), ((h_u_wallace_cska8_and_6_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa5_or0 = (fa(((h_u_wallace_cska8_fa4_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_7_1 >> 0) & 0x01), ((h_u_wallace_cska8_and_6_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_7_2 = and_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cska8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cska8_fa6_xor1 = (fa(((h_u_wallace_cska8_fa5_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_7_2 >> 0) & 0x01), ((h_u_wallace_cska8_and_6_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa6_or0 = (fa(((h_u_wallace_cska8_fa5_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_7_2 >> 0) & 0x01), ((h_u_wallace_cska8_and_6_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_7_3 = and_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cska8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cska8_fa7_xor1 = (fa(((h_u_wallace_cska8_fa6_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_7_3 >> 0) & 0x01), ((h_u_wallace_cska8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa7_or0 = (fa(((h_u_wallace_cska8_fa6_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_7_3 >> 0) & 0x01), ((h_u_wallace_cska8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_7_4 = and_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cska8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cska8_fa8_xor1 = (fa(((h_u_wallace_cska8_fa7_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_7_4 >> 0) & 0x01), ((h_u_wallace_cska8_and_6_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa8_or0 = (fa(((h_u_wallace_cska8_fa7_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_7_4 >> 0) & 0x01), ((h_u_wallace_cska8_and_6_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_7_5 = and_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cska8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cska8_fa9_xor1 = (fa(((h_u_wallace_cska8_fa8_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_7_5 >> 0) & 0x01), ((h_u_wallace_cska8_and_6_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa9_or0 = (fa(((h_u_wallace_cska8_fa8_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_7_5 >> 0) & 0x01), ((h_u_wallace_cska8_and_6_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cska8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cska8_ha1_xor0 = (ha(((h_u_wallace_cska8_and_1_2 >> 0) & 0x01), ((h_u_wallace_cska8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_ha1_and0 = (ha(((h_u_wallace_cska8_and_1_2 >> 0) & 0x01), ((h_u_wallace_cska8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cska8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cska8_fa10_xor1 = (fa(((h_u_wallace_cska8_ha1_and0 >> 0) & 0x01), ((h_u_wallace_cska8_and_2_2 >> 0) & 0x01), ((h_u_wallace_cska8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa10_or0 = (fa(((h_u_wallace_cska8_ha1_and0 >> 0) & 0x01), ((h_u_wallace_cska8_and_2_2 >> 0) & 0x01), ((h_u_wallace_cska8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cska8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cska8_fa11_xor1 = (fa(((h_u_wallace_cska8_fa10_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_2 >> 0) & 0x01), ((h_u_wallace_cska8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa11_or0 = (fa(((h_u_wallace_cska8_fa10_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_2 >> 0) & 0x01), ((h_u_wallace_cska8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cska8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cska8_fa12_xor1 = (fa(((h_u_wallace_cska8_fa11_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_2 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa12_or0 = (fa(((h_u_wallace_cska8_fa11_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_2 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cska8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cska8_fa13_xor1 = (fa(((h_u_wallace_cska8_fa12_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_2 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa13_or0 = (fa(((h_u_wallace_cska8_fa12_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_2 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_cska8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cska8_fa14_xor1 = (fa(((h_u_wallace_cska8_fa13_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_3 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa14_or0 = (fa(((h_u_wallace_cska8_fa13_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_3 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cska8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cska8_fa15_xor1 = (fa(((h_u_wallace_cska8_fa14_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_4 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa15_or0 = (fa(((h_u_wallace_cska8_fa14_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_4 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cska8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cska8_fa16_xor1 = (fa(((h_u_wallace_cska8_fa15_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_5 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa16_or0 = (fa(((h_u_wallace_cska8_fa15_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_5 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cska8_and_4_7 = and_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cska8_fa17_xor1 = (fa(((h_u_wallace_cska8_fa16_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_6 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa17_or0 = (fa(((h_u_wallace_cska8_fa16_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_6 >> 0) & 0x01), ((h_u_wallace_cska8_and_4_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cska8_ha2_xor0 = (ha(((h_u_wallace_cska8_and_0_4 >> 0) & 0x01), ((h_u_wallace_cska8_fa1_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_ha2_and0 = (ha(((h_u_wallace_cska8_and_0_4 >> 0) & 0x01), ((h_u_wallace_cska8_fa1_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cska8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cska8_fa18_xor1 = (fa(((h_u_wallace_cska8_ha2_and0 >> 0) & 0x01), ((h_u_wallace_cska8_and_1_4 >> 0) & 0x01), ((h_u_wallace_cska8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa18_or0 = (fa(((h_u_wallace_cska8_ha2_and0 >> 0) & 0x01), ((h_u_wallace_cska8_and_1_4 >> 0) & 0x01), ((h_u_wallace_cska8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cska8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cska8_fa19_xor1 = (fa(((h_u_wallace_cska8_fa18_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_2_4 >> 0) & 0x01), ((h_u_wallace_cska8_and_1_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa19_or0 = (fa(((h_u_wallace_cska8_fa18_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_2_4 >> 0) & 0x01), ((h_u_wallace_cska8_and_1_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_cska8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cska8_fa20_xor1 = (fa(((h_u_wallace_cska8_fa19_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_4 >> 0) & 0x01), ((h_u_wallace_cska8_and_2_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa20_or0 = (fa(((h_u_wallace_cska8_fa19_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_4 >> 0) & 0x01), ((h_u_wallace_cska8_and_2_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_cska8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cska8_fa21_xor1 = (fa(((h_u_wallace_cska8_fa20_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_5 >> 0) & 0x01), ((h_u_wallace_cska8_and_2_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa21_or0 = (fa(((h_u_wallace_cska8_fa20_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_5 >> 0) & 0x01), ((h_u_wallace_cska8_and_2_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cska8_and_2_7 = and_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cska8_fa22_xor1 = (fa(((h_u_wallace_cska8_fa21_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_6 >> 0) & 0x01), ((h_u_wallace_cska8_and_2_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa22_or0 = (fa(((h_u_wallace_cska8_fa21_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_6 >> 0) & 0x01), ((h_u_wallace_cska8_and_2_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_3_7 = and_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cska8_fa23_xor1 = (fa(((h_u_wallace_cska8_fa22_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_7 >> 0) & 0x01), ((h_u_wallace_cska8_fa7_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa23_or0 = (fa(((h_u_wallace_cska8_fa22_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_3_7 >> 0) & 0x01), ((h_u_wallace_cska8_fa7_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_ha3_xor0 = (ha(((h_u_wallace_cska8_fa2_xor1 >> 0) & 0x01), ((h_u_wallace_cska8_fa11_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_ha3_and0 = (ha(((h_u_wallace_cska8_fa2_xor1 >> 0) & 0x01), ((h_u_wallace_cska8_fa11_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cska8_fa24_xor1 = (fa(((h_u_wallace_cska8_ha3_and0 >> 0) & 0x01), ((h_u_wallace_cska8_and_0_6 >> 0) & 0x01), ((h_u_wallace_cska8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa24_or0 = (fa(((h_u_wallace_cska8_ha3_and0 >> 0) & 0x01), ((h_u_wallace_cska8_and_0_6 >> 0) & 0x01), ((h_u_wallace_cska8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cska8_and_0_7 = and_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cska8_fa25_xor1 = (fa(((h_u_wallace_cska8_fa24_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_1_6 >> 0) & 0x01), ((h_u_wallace_cska8_and_0_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa25_or0 = (fa(((h_u_wallace_cska8_fa24_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_1_6 >> 0) & 0x01), ((h_u_wallace_cska8_and_0_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_1_7 = and_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cska8_fa26_xor1 = (fa(((h_u_wallace_cska8_fa25_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_1_7 >> 0) & 0x01), ((h_u_wallace_cska8_fa5_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa26_or0 = (fa(((h_u_wallace_cska8_fa25_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_1_7 >> 0) & 0x01), ((h_u_wallace_cska8_fa5_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_fa27_xor1 = (fa(((h_u_wallace_cska8_fa26_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa6_xor1 >> 0) & 0x01), ((h_u_wallace_cska8_fa15_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa27_or0 = (fa(((h_u_wallace_cska8_fa26_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa6_xor1 >> 0) & 0x01), ((h_u_wallace_cska8_fa15_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_ha4_xor0 = (ha(((h_u_wallace_cska8_fa12_xor1 >> 0) & 0x01), ((h_u_wallace_cska8_fa19_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_ha4_and0 = (ha(((h_u_wallace_cska8_fa12_xor1 >> 0) & 0x01), ((h_u_wallace_cska8_fa19_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_fa28_xor1 = (fa(((h_u_wallace_cska8_ha4_and0 >> 0) & 0x01), ((h_u_wallace_cska8_fa4_xor1 >> 0) & 0x01), ((h_u_wallace_cska8_fa13_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa28_or0 = (fa(((h_u_wallace_cska8_ha4_and0 >> 0) & 0x01), ((h_u_wallace_cska8_fa4_xor1 >> 0) & 0x01), ((h_u_wallace_cska8_fa13_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_fa29_xor1 = (fa(((h_u_wallace_cska8_fa28_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa14_xor1 >> 0) & 0x01), ((h_u_wallace_cska8_fa21_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa29_or0 = (fa(((h_u_wallace_cska8_fa28_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa14_xor1 >> 0) & 0x01), ((h_u_wallace_cska8_fa21_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_ha5_xor0 = (ha(((h_u_wallace_cska8_fa20_xor1 >> 0) & 0x01), ((h_u_wallace_cska8_fa25_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_ha5_and0 = (ha(((h_u_wallace_cska8_fa20_xor1 >> 0) & 0x01), ((h_u_wallace_cska8_fa25_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_ha6_xor0 = (ha(((h_u_wallace_cska8_ha5_and0 >> 0) & 0x01), ((h_u_wallace_cska8_fa26_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_ha6_and0 = (ha(((h_u_wallace_cska8_ha5_and0 >> 0) & 0x01), ((h_u_wallace_cska8_fa26_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_fa30_xor1 = (fa(((h_u_wallace_cska8_ha6_and0 >> 0) & 0x01), ((h_u_wallace_cska8_fa29_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa22_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa30_or0 = (fa(((h_u_wallace_cska8_ha6_and0 >> 0) & 0x01), ((h_u_wallace_cska8_fa29_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa22_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_fa31_xor1 = (fa(((h_u_wallace_cska8_fa30_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa27_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa16_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa31_or0 = (fa(((h_u_wallace_cska8_fa30_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa27_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa16_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_fa32_xor1 = (fa(((h_u_wallace_cska8_fa31_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa23_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa8_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa32_or0 = (fa(((h_u_wallace_cska8_fa31_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa23_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa8_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_5_7 = and_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cska8_fa33_xor1 = (fa(((h_u_wallace_cska8_fa32_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa17_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa33_or0 = (fa(((h_u_wallace_cska8_fa32_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa17_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_7_6 = and_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_cska8_fa34_xor1 = (fa(((h_u_wallace_cska8_fa33_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa9_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_cska8_fa34_or0 = (fa(((h_u_wallace_cska8_fa33_or0 >> 0) & 0x01), ((h_u_wallace_cska8_fa9_or0 >> 0) & 0x01), ((h_u_wallace_cska8_and_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_cska8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cska8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_cska8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_cska8_and_6_7 = and_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cska8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_cska8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_cska8_u_cska14_a |= ((h_u_wallace_cska8_and_1_0 >> 0) & 0x01) << 0; - h_u_wallace_cska8_u_cska14_a |= ((h_u_wallace_cska8_and_0_2 >> 0) & 0x01) << 1; - h_u_wallace_cska8_u_cska14_a |= ((h_u_wallace_cska8_fa0_xor1 >> 0) & 0x01) << 2; - h_u_wallace_cska8_u_cska14_a |= ((h_u_wallace_cska8_fa10_xor1 >> 0) & 0x01) << 3; - h_u_wallace_cska8_u_cska14_a |= ((h_u_wallace_cska8_fa18_xor1 >> 0) & 0x01) << 4; - h_u_wallace_cska8_u_cska14_a |= ((h_u_wallace_cska8_fa24_xor1 >> 0) & 0x01) << 5; - h_u_wallace_cska8_u_cska14_a |= ((h_u_wallace_cska8_fa28_xor1 >> 0) & 0x01) << 6; - h_u_wallace_cska8_u_cska14_a |= ((h_u_wallace_cska8_fa29_xor1 >> 0) & 0x01) << 7; - h_u_wallace_cska8_u_cska14_a |= ((h_u_wallace_cska8_fa27_xor1 >> 0) & 0x01) << 8; - h_u_wallace_cska8_u_cska14_a |= ((h_u_wallace_cska8_fa23_xor1 >> 0) & 0x01) << 9; - h_u_wallace_cska8_u_cska14_a |= ((h_u_wallace_cska8_fa17_xor1 >> 0) & 0x01) << 10; - h_u_wallace_cska8_u_cska14_a |= ((h_u_wallace_cska8_fa9_xor1 >> 0) & 0x01) << 11; - h_u_wallace_cska8_u_cska14_a |= ((h_u_wallace_cska8_and_6_7 >> 0) & 0x01) << 12; - h_u_wallace_cska8_u_cska14_a |= ((h_u_wallace_cska8_fa34_or0 >> 0) & 0x01) << 13; - h_u_wallace_cska8_u_cska14_b |= ((h_u_wallace_cska8_and_0_1 >> 0) & 0x01) << 0; - h_u_wallace_cska8_u_cska14_b |= ((h_u_wallace_cska8_ha0_xor0 >> 0) & 0x01) << 1; - h_u_wallace_cska8_u_cska14_b |= ((h_u_wallace_cska8_ha1_xor0 >> 0) & 0x01) << 2; - h_u_wallace_cska8_u_cska14_b |= ((h_u_wallace_cska8_ha2_xor0 >> 0) & 0x01) << 3; - h_u_wallace_cska8_u_cska14_b |= ((h_u_wallace_cska8_ha3_xor0 >> 0) & 0x01) << 4; - h_u_wallace_cska8_u_cska14_b |= ((h_u_wallace_cska8_ha4_xor0 >> 0) & 0x01) << 5; - h_u_wallace_cska8_u_cska14_b |= ((h_u_wallace_cska8_ha5_xor0 >> 0) & 0x01) << 6; - h_u_wallace_cska8_u_cska14_b |= ((h_u_wallace_cska8_ha6_xor0 >> 0) & 0x01) << 7; - h_u_wallace_cska8_u_cska14_b |= ((h_u_wallace_cska8_fa30_xor1 >> 0) & 0x01) << 8; - h_u_wallace_cska8_u_cska14_b |= ((h_u_wallace_cska8_fa31_xor1 >> 0) & 0x01) << 9; - h_u_wallace_cska8_u_cska14_b |= ((h_u_wallace_cska8_fa32_xor1 >> 0) & 0x01) << 10; - h_u_wallace_cska8_u_cska14_b |= ((h_u_wallace_cska8_fa33_xor1 >> 0) & 0x01) << 11; - h_u_wallace_cska8_u_cska14_b |= ((h_u_wallace_cska8_fa34_xor1 >> 0) & 0x01) << 12; - h_u_wallace_cska8_u_cska14_b |= ((h_u_wallace_cska8_and_7_7 >> 0) & 0x01) << 13; - h_u_wallace_cska8_u_cska14_out = u_cska14(h_u_wallace_cska8_u_cska14_a, h_u_wallace_cska8_u_cska14_b); - - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_and_0_0 >> 0) & 0x01) << 0; - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_u_cska14_out >> 0) & 0x01) << 1; - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_u_cska14_out >> 1) & 0x01) << 2; - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_u_cska14_out >> 2) & 0x01) << 3; - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_u_cska14_out >> 3) & 0x01) << 4; - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_u_cska14_out >> 4) & 0x01) << 5; - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_u_cska14_out >> 5) & 0x01) << 6; - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_u_cska14_out >> 6) & 0x01) << 7; - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_u_cska14_out >> 7) & 0x01) << 8; - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_u_cska14_out >> 8) & 0x01) << 9; - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_u_cska14_out >> 9) & 0x01) << 10; - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_u_cska14_out >> 10) & 0x01) << 11; - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_u_cska14_out >> 11) & 0x01) << 12; - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_u_cska14_out >> 12) & 0x01) << 13; - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_u_cska14_out >> 13) & 0x01) << 14; - h_u_wallace_cska8_out |= ((h_u_wallace_cska8_u_cska14_out >> 14) & 0x01) << 15; - return h_u_wallace_cska8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == h_u_wallace_cska8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_pg_rca4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_pg_rca4.c deleted file mode 100644 index 0a4477d..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_pg_rca4.c +++ /dev/null @@ -1,227 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t pg_fa_out = 0; - uint8_t pg_fa_xor0 = 0; - uint8_t pg_fa_and0 = 0; - uint8_t pg_fa_xor1 = 0; - - pg_fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_xor1 = xor_gate(((pg_fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - - pg_fa_out |= ((pg_fa_xor0 >> 0) & 0x01) << 0; - pg_fa_out |= ((pg_fa_and0 >> 0) & 0x01) << 1; - pg_fa_out |= ((pg_fa_xor1 >> 0) & 0x01) << 2; - return pg_fa_out; -} - -uint64_t u_pg_rca6(uint64_t a, uint64_t b){ - uint8_t u_pg_rca6_out = 0; - uint8_t u_pg_rca6_pg_fa0_xor0 = 0; - uint8_t u_pg_rca6_pg_fa0_and0 = 0; - uint8_t u_pg_rca6_pg_fa1_xor0 = 0; - uint8_t u_pg_rca6_pg_fa1_and0 = 0; - uint8_t u_pg_rca6_pg_fa1_xor1 = 0; - uint8_t u_pg_rca6_and1 = 0; - uint8_t u_pg_rca6_or1 = 0; - uint8_t u_pg_rca6_pg_fa2_xor0 = 0; - uint8_t u_pg_rca6_pg_fa2_and0 = 0; - uint8_t u_pg_rca6_pg_fa2_xor1 = 0; - uint8_t u_pg_rca6_and2 = 0; - uint8_t u_pg_rca6_or2 = 0; - uint8_t u_pg_rca6_pg_fa3_xor0 = 0; - uint8_t u_pg_rca6_pg_fa3_and0 = 0; - uint8_t u_pg_rca6_pg_fa3_xor1 = 0; - uint8_t u_pg_rca6_and3 = 0; - uint8_t u_pg_rca6_or3 = 0; - uint8_t u_pg_rca6_pg_fa4_xor0 = 0; - uint8_t u_pg_rca6_pg_fa4_and0 = 0; - uint8_t u_pg_rca6_pg_fa4_xor1 = 0; - uint8_t u_pg_rca6_and4 = 0; - uint8_t u_pg_rca6_or4 = 0; - uint8_t u_pg_rca6_pg_fa5_xor0 = 0; - uint8_t u_pg_rca6_pg_fa5_and0 = 0; - uint8_t u_pg_rca6_pg_fa5_xor1 = 0; - uint8_t u_pg_rca6_and5 = 0; - uint8_t u_pg_rca6_or5 = 0; - - u_pg_rca6_pg_fa0_xor0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - u_pg_rca6_pg_fa0_and0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - u_pg_rca6_pg_fa1_xor0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa1_and0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa1_xor1 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and1 = and_gate(((u_pg_rca6_pg_fa0_and0 >> 0) & 0x01), ((u_pg_rca6_pg_fa1_xor0 >> 0) & 0x01)); - u_pg_rca6_or1 = or_gate(((u_pg_rca6_and1 >> 0) & 0x01), ((u_pg_rca6_pg_fa1_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa2_xor0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca6_or1 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa2_and0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca6_or1 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa2_xor1 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca6_or1 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and2 = and_gate(((u_pg_rca6_or1 >> 0) & 0x01), ((u_pg_rca6_pg_fa2_xor0 >> 0) & 0x01)); - u_pg_rca6_or2 = or_gate(((u_pg_rca6_and2 >> 0) & 0x01), ((u_pg_rca6_pg_fa2_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa3_xor0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca6_or2 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa3_and0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca6_or2 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa3_xor1 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca6_or2 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and3 = and_gate(((u_pg_rca6_or2 >> 0) & 0x01), ((u_pg_rca6_pg_fa3_xor0 >> 0) & 0x01)); - u_pg_rca6_or3 = or_gate(((u_pg_rca6_and3 >> 0) & 0x01), ((u_pg_rca6_pg_fa3_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa4_xor0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca6_or3 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa4_and0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca6_or3 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa4_xor1 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca6_or3 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and4 = and_gate(((u_pg_rca6_or3 >> 0) & 0x01), ((u_pg_rca6_pg_fa4_xor0 >> 0) & 0x01)); - u_pg_rca6_or4 = or_gate(((u_pg_rca6_and4 >> 0) & 0x01), ((u_pg_rca6_pg_fa4_and0 >> 0) & 0x01)); - u_pg_rca6_pg_fa5_xor0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca6_or4 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca6_pg_fa5_and0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca6_or4 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca6_pg_fa5_xor1 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca6_or4 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca6_and5 = and_gate(((u_pg_rca6_or4 >> 0) & 0x01), ((u_pg_rca6_pg_fa5_xor0 >> 0) & 0x01)); - u_pg_rca6_or5 = or_gate(((u_pg_rca6_and5 >> 0) & 0x01), ((u_pg_rca6_pg_fa5_and0 >> 0) & 0x01)); - - u_pg_rca6_out |= ((u_pg_rca6_pg_fa0_xor0 >> 0) & 0x01) << 0; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa1_xor1 >> 0) & 0x01) << 1; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa2_xor1 >> 0) & 0x01) << 2; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa3_xor1 >> 0) & 0x01) << 3; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa4_xor1 >> 0) & 0x01) << 4; - u_pg_rca6_out |= ((u_pg_rca6_pg_fa5_xor1 >> 0) & 0x01) << 5; - u_pg_rca6_out |= ((u_pg_rca6_or5 >> 0) & 0x01) << 6; - return u_pg_rca6_out; -} - -uint64_t h_u_wallace_pg_rca4(uint64_t a, uint64_t b){ - uint8_t h_u_wallace_pg_rca4_out = 0; - uint8_t h_u_wallace_pg_rca4_and_2_0 = 0; - uint8_t h_u_wallace_pg_rca4_and_1_1 = 0; - uint8_t h_u_wallace_pg_rca4_ha0_xor0 = 0; - uint8_t h_u_wallace_pg_rca4_ha0_and0 = 0; - uint8_t h_u_wallace_pg_rca4_and_3_0 = 0; - uint8_t h_u_wallace_pg_rca4_and_2_1 = 0; - uint8_t h_u_wallace_pg_rca4_fa0_xor1 = 0; - uint8_t h_u_wallace_pg_rca4_fa0_or0 = 0; - uint8_t h_u_wallace_pg_rca4_and_3_1 = 0; - uint8_t h_u_wallace_pg_rca4_and_2_2 = 0; - uint8_t h_u_wallace_pg_rca4_fa1_xor1 = 0; - uint8_t h_u_wallace_pg_rca4_fa1_or0 = 0; - uint8_t h_u_wallace_pg_rca4_and_1_2 = 0; - uint8_t h_u_wallace_pg_rca4_and_0_3 = 0; - uint8_t h_u_wallace_pg_rca4_ha1_xor0 = 0; - uint8_t h_u_wallace_pg_rca4_ha1_and0 = 0; - uint8_t h_u_wallace_pg_rca4_and_1_3 = 0; - uint8_t h_u_wallace_pg_rca4_ha2_xor0 = 0; - uint8_t h_u_wallace_pg_rca4_ha2_and0 = 0; - uint8_t h_u_wallace_pg_rca4_and_3_2 = 0; - uint8_t h_u_wallace_pg_rca4_fa2_xor1 = 0; - uint8_t h_u_wallace_pg_rca4_fa2_or0 = 0; - uint8_t h_u_wallace_pg_rca4_and_0_0 = 0; - uint8_t h_u_wallace_pg_rca4_and_1_0 = 0; - uint8_t h_u_wallace_pg_rca4_and_0_2 = 0; - uint8_t h_u_wallace_pg_rca4_and_2_3 = 0; - uint8_t h_u_wallace_pg_rca4_and_0_1 = 0; - uint8_t h_u_wallace_pg_rca4_and_3_3 = 0; - uint64_t h_u_wallace_pg_rca4_u_pg_rca6_a = 0; - uint64_t h_u_wallace_pg_rca4_u_pg_rca6_b = 0; - uint64_t h_u_wallace_pg_rca4_u_pg_rca6_out = 0; - - h_u_wallace_pg_rca4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_pg_rca4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_pg_rca4_ha0_xor0 = (ha(((h_u_wallace_pg_rca4_and_2_0 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca4_ha0_and0 = (ha(((h_u_wallace_pg_rca4_and_2_0 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca4_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_pg_rca4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_pg_rca4_fa0_xor1 = (fa(((h_u_wallace_pg_rca4_ha0_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_3_0 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca4_fa0_or0 = (fa(((h_u_wallace_pg_rca4_ha0_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_3_0 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca4_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_pg_rca4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_pg_rca4_fa1_xor1 = (fa(((h_u_wallace_pg_rca4_fa0_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_3_1 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_2_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca4_fa1_or0 = (fa(((h_u_wallace_pg_rca4_fa0_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_3_1 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_2_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_pg_rca4_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_pg_rca4_ha1_xor0 = (ha(((h_u_wallace_pg_rca4_and_1_2 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca4_ha1_and0 = (ha(((h_u_wallace_pg_rca4_and_1_2 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca4_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_pg_rca4_ha2_xor0 = (ha(((h_u_wallace_pg_rca4_ha1_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca4_ha2_and0 = (ha(((h_u_wallace_pg_rca4_ha1_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca4_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_pg_rca4_fa2_xor1 = (fa(((h_u_wallace_pg_rca4_ha2_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca4_fa1_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca4_fa2_or0 = (fa(((h_u_wallace_pg_rca4_ha2_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca4_fa1_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca4_and_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_pg_rca4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_pg_rca4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_pg_rca4_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_pg_rca4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_pg_rca4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_pg_rca4_u_pg_rca6_a |= ((h_u_wallace_pg_rca4_and_1_0 >> 0) & 0x01) << 0; - h_u_wallace_pg_rca4_u_pg_rca6_a |= ((h_u_wallace_pg_rca4_and_0_2 >> 0) & 0x01) << 1; - h_u_wallace_pg_rca4_u_pg_rca6_a |= ((h_u_wallace_pg_rca4_fa0_xor1 >> 0) & 0x01) << 2; - h_u_wallace_pg_rca4_u_pg_rca6_a |= ((h_u_wallace_pg_rca4_fa1_xor1 >> 0) & 0x01) << 3; - h_u_wallace_pg_rca4_u_pg_rca6_a |= ((h_u_wallace_pg_rca4_and_2_3 >> 0) & 0x01) << 4; - h_u_wallace_pg_rca4_u_pg_rca6_a |= ((h_u_wallace_pg_rca4_fa2_or0 >> 0) & 0x01) << 5; - h_u_wallace_pg_rca4_u_pg_rca6_b |= ((h_u_wallace_pg_rca4_and_0_1 >> 0) & 0x01) << 0; - h_u_wallace_pg_rca4_u_pg_rca6_b |= ((h_u_wallace_pg_rca4_ha0_xor0 >> 0) & 0x01) << 1; - h_u_wallace_pg_rca4_u_pg_rca6_b |= ((h_u_wallace_pg_rca4_ha1_xor0 >> 0) & 0x01) << 2; - h_u_wallace_pg_rca4_u_pg_rca6_b |= ((h_u_wallace_pg_rca4_ha2_xor0 >> 0) & 0x01) << 3; - h_u_wallace_pg_rca4_u_pg_rca6_b |= ((h_u_wallace_pg_rca4_fa2_xor1 >> 0) & 0x01) << 4; - h_u_wallace_pg_rca4_u_pg_rca6_b |= ((h_u_wallace_pg_rca4_and_3_3 >> 0) & 0x01) << 5; - h_u_wallace_pg_rca4_u_pg_rca6_out = u_pg_rca6(h_u_wallace_pg_rca4_u_pg_rca6_a, h_u_wallace_pg_rca4_u_pg_rca6_b); - - h_u_wallace_pg_rca4_out |= ((h_u_wallace_pg_rca4_and_0_0 >> 0) & 0x01) << 0; - h_u_wallace_pg_rca4_out |= ((h_u_wallace_pg_rca4_u_pg_rca6_out >> 0) & 0x01) << 1; - h_u_wallace_pg_rca4_out |= ((h_u_wallace_pg_rca4_u_pg_rca6_out >> 1) & 0x01) << 2; - h_u_wallace_pg_rca4_out |= ((h_u_wallace_pg_rca4_u_pg_rca6_out >> 2) & 0x01) << 3; - h_u_wallace_pg_rca4_out |= ((h_u_wallace_pg_rca4_u_pg_rca6_out >> 3) & 0x01) << 4; - h_u_wallace_pg_rca4_out |= ((h_u_wallace_pg_rca4_u_pg_rca6_out >> 4) & 0x01) << 5; - h_u_wallace_pg_rca4_out |= ((h_u_wallace_pg_rca4_u_pg_rca6_out >> 5) & 0x01) << 6; - h_u_wallace_pg_rca4_out |= ((h_u_wallace_pg_rca4_u_pg_rca6_out >> 6) & 0x01) << 7; - return h_u_wallace_pg_rca4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == h_u_wallace_pg_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_pg_rca8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_pg_rca8.c deleted file mode 100644 index 2b0e428..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_pg_rca8.c +++ /dev/null @@ -1,579 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint8_t pg_fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t pg_fa_out = 0; - uint8_t pg_fa_xor0 = 0; - uint8_t pg_fa_and0 = 0; - uint8_t pg_fa_xor1 = 0; - - pg_fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - pg_fa_xor1 = xor_gate(((pg_fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - - pg_fa_out |= ((pg_fa_xor0 >> 0) & 0x01) << 0; - pg_fa_out |= ((pg_fa_and0 >> 0) & 0x01) << 1; - pg_fa_out |= ((pg_fa_xor1 >> 0) & 0x01) << 2; - return pg_fa_out; -} - -uint64_t u_pg_rca14(uint64_t a, uint64_t b){ - uint64_t u_pg_rca14_out = 0; - uint8_t u_pg_rca14_pg_fa0_xor0 = 0; - uint8_t u_pg_rca14_pg_fa0_and0 = 0; - uint8_t u_pg_rca14_pg_fa1_xor0 = 0; - uint8_t u_pg_rca14_pg_fa1_and0 = 0; - uint8_t u_pg_rca14_pg_fa1_xor1 = 0; - uint8_t u_pg_rca14_and1 = 0; - uint8_t u_pg_rca14_or1 = 0; - uint8_t u_pg_rca14_pg_fa2_xor0 = 0; - uint8_t u_pg_rca14_pg_fa2_and0 = 0; - uint8_t u_pg_rca14_pg_fa2_xor1 = 0; - uint8_t u_pg_rca14_and2 = 0; - uint8_t u_pg_rca14_or2 = 0; - uint8_t u_pg_rca14_pg_fa3_xor0 = 0; - uint8_t u_pg_rca14_pg_fa3_and0 = 0; - uint8_t u_pg_rca14_pg_fa3_xor1 = 0; - uint8_t u_pg_rca14_and3 = 0; - uint8_t u_pg_rca14_or3 = 0; - uint8_t u_pg_rca14_pg_fa4_xor0 = 0; - uint8_t u_pg_rca14_pg_fa4_and0 = 0; - uint8_t u_pg_rca14_pg_fa4_xor1 = 0; - uint8_t u_pg_rca14_and4 = 0; - uint8_t u_pg_rca14_or4 = 0; - uint8_t u_pg_rca14_pg_fa5_xor0 = 0; - uint8_t u_pg_rca14_pg_fa5_and0 = 0; - uint8_t u_pg_rca14_pg_fa5_xor1 = 0; - uint8_t u_pg_rca14_and5 = 0; - uint8_t u_pg_rca14_or5 = 0; - uint8_t u_pg_rca14_pg_fa6_xor0 = 0; - uint8_t u_pg_rca14_pg_fa6_and0 = 0; - uint8_t u_pg_rca14_pg_fa6_xor1 = 0; - uint8_t u_pg_rca14_and6 = 0; - uint8_t u_pg_rca14_or6 = 0; - uint8_t u_pg_rca14_pg_fa7_xor0 = 0; - uint8_t u_pg_rca14_pg_fa7_and0 = 0; - uint8_t u_pg_rca14_pg_fa7_xor1 = 0; - uint8_t u_pg_rca14_and7 = 0; - uint8_t u_pg_rca14_or7 = 0; - uint8_t u_pg_rca14_pg_fa8_xor0 = 0; - uint8_t u_pg_rca14_pg_fa8_and0 = 0; - uint8_t u_pg_rca14_pg_fa8_xor1 = 0; - uint8_t u_pg_rca14_and8 = 0; - uint8_t u_pg_rca14_or8 = 0; - uint8_t u_pg_rca14_pg_fa9_xor0 = 0; - uint8_t u_pg_rca14_pg_fa9_and0 = 0; - uint8_t u_pg_rca14_pg_fa9_xor1 = 0; - uint8_t u_pg_rca14_and9 = 0; - uint8_t u_pg_rca14_or9 = 0; - uint8_t u_pg_rca14_pg_fa10_xor0 = 0; - uint8_t u_pg_rca14_pg_fa10_and0 = 0; - uint8_t u_pg_rca14_pg_fa10_xor1 = 0; - uint8_t u_pg_rca14_and10 = 0; - uint8_t u_pg_rca14_or10 = 0; - uint8_t u_pg_rca14_pg_fa11_xor0 = 0; - uint8_t u_pg_rca14_pg_fa11_and0 = 0; - uint8_t u_pg_rca14_pg_fa11_xor1 = 0; - uint8_t u_pg_rca14_and11 = 0; - uint8_t u_pg_rca14_or11 = 0; - uint8_t u_pg_rca14_pg_fa12_xor0 = 0; - uint8_t u_pg_rca14_pg_fa12_and0 = 0; - uint8_t u_pg_rca14_pg_fa12_xor1 = 0; - uint8_t u_pg_rca14_and12 = 0; - uint8_t u_pg_rca14_or12 = 0; - uint8_t u_pg_rca14_pg_fa13_xor0 = 0; - uint8_t u_pg_rca14_pg_fa13_and0 = 0; - uint8_t u_pg_rca14_pg_fa13_xor1 = 0; - uint8_t u_pg_rca14_and13 = 0; - uint8_t u_pg_rca14_or13 = 0; - - u_pg_rca14_pg_fa0_xor0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 0) & 0x01; - u_pg_rca14_pg_fa0_and0 = (pg_fa(((a >> 0) & 0x01), ((b >> 0) & 0x01), (0x00)) >> 1) & 0x01; - u_pg_rca14_pg_fa1_xor0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa1_and0 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa1_xor1 = (pg_fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and1 = and_gate(((u_pg_rca14_pg_fa0_and0 >> 0) & 0x01), ((u_pg_rca14_pg_fa1_xor0 >> 0) & 0x01)); - u_pg_rca14_or1 = or_gate(((u_pg_rca14_and1 >> 0) & 0x01), ((u_pg_rca14_pg_fa1_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa2_xor0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca14_or1 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa2_and0 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca14_or1 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa2_xor1 = (pg_fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_pg_rca14_or1 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and2 = and_gate(((u_pg_rca14_or1 >> 0) & 0x01), ((u_pg_rca14_pg_fa2_xor0 >> 0) & 0x01)); - u_pg_rca14_or2 = or_gate(((u_pg_rca14_and2 >> 0) & 0x01), ((u_pg_rca14_pg_fa2_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa3_xor0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca14_or2 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa3_and0 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca14_or2 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa3_xor1 = (pg_fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_pg_rca14_or2 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and3 = and_gate(((u_pg_rca14_or2 >> 0) & 0x01), ((u_pg_rca14_pg_fa3_xor0 >> 0) & 0x01)); - u_pg_rca14_or3 = or_gate(((u_pg_rca14_and3 >> 0) & 0x01), ((u_pg_rca14_pg_fa3_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa4_xor0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca14_or3 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa4_and0 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca14_or3 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa4_xor1 = (pg_fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_pg_rca14_or3 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and4 = and_gate(((u_pg_rca14_or3 >> 0) & 0x01), ((u_pg_rca14_pg_fa4_xor0 >> 0) & 0x01)); - u_pg_rca14_or4 = or_gate(((u_pg_rca14_and4 >> 0) & 0x01), ((u_pg_rca14_pg_fa4_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa5_xor0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca14_or4 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa5_and0 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca14_or4 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa5_xor1 = (pg_fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_pg_rca14_or4 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and5 = and_gate(((u_pg_rca14_or4 >> 0) & 0x01), ((u_pg_rca14_pg_fa5_xor0 >> 0) & 0x01)); - u_pg_rca14_or5 = or_gate(((u_pg_rca14_and5 >> 0) & 0x01), ((u_pg_rca14_pg_fa5_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa6_xor0 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_pg_rca14_or5 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa6_and0 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_pg_rca14_or5 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa6_xor1 = (pg_fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_pg_rca14_or5 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and6 = and_gate(((u_pg_rca14_or5 >> 0) & 0x01), ((u_pg_rca14_pg_fa6_xor0 >> 0) & 0x01)); - u_pg_rca14_or6 = or_gate(((u_pg_rca14_and6 >> 0) & 0x01), ((u_pg_rca14_pg_fa6_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa7_xor0 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_pg_rca14_or6 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa7_and0 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_pg_rca14_or6 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa7_xor1 = (pg_fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_pg_rca14_or6 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and7 = and_gate(((u_pg_rca14_or6 >> 0) & 0x01), ((u_pg_rca14_pg_fa7_xor0 >> 0) & 0x01)); - u_pg_rca14_or7 = or_gate(((u_pg_rca14_and7 >> 0) & 0x01), ((u_pg_rca14_pg_fa7_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa8_xor0 = (pg_fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_pg_rca14_or7 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa8_and0 = (pg_fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_pg_rca14_or7 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa8_xor1 = (pg_fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_pg_rca14_or7 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and8 = and_gate(((u_pg_rca14_or7 >> 0) & 0x01), ((u_pg_rca14_pg_fa8_xor0 >> 0) & 0x01)); - u_pg_rca14_or8 = or_gate(((u_pg_rca14_and8 >> 0) & 0x01), ((u_pg_rca14_pg_fa8_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa9_xor0 = (pg_fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_pg_rca14_or8 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa9_and0 = (pg_fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_pg_rca14_or8 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa9_xor1 = (pg_fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_pg_rca14_or8 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and9 = and_gate(((u_pg_rca14_or8 >> 0) & 0x01), ((u_pg_rca14_pg_fa9_xor0 >> 0) & 0x01)); - u_pg_rca14_or9 = or_gate(((u_pg_rca14_and9 >> 0) & 0x01), ((u_pg_rca14_pg_fa9_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa10_xor0 = (pg_fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_pg_rca14_or9 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa10_and0 = (pg_fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_pg_rca14_or9 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa10_xor1 = (pg_fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_pg_rca14_or9 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and10 = and_gate(((u_pg_rca14_or9 >> 0) & 0x01), ((u_pg_rca14_pg_fa10_xor0 >> 0) & 0x01)); - u_pg_rca14_or10 = or_gate(((u_pg_rca14_and10 >> 0) & 0x01), ((u_pg_rca14_pg_fa10_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa11_xor0 = (pg_fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_pg_rca14_or10 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa11_and0 = (pg_fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_pg_rca14_or10 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa11_xor1 = (pg_fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_pg_rca14_or10 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and11 = and_gate(((u_pg_rca14_or10 >> 0) & 0x01), ((u_pg_rca14_pg_fa11_xor0 >> 0) & 0x01)); - u_pg_rca14_or11 = or_gate(((u_pg_rca14_and11 >> 0) & 0x01), ((u_pg_rca14_pg_fa11_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa12_xor0 = (pg_fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_pg_rca14_or11 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa12_and0 = (pg_fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_pg_rca14_or11 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa12_xor1 = (pg_fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_pg_rca14_or11 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and12 = and_gate(((u_pg_rca14_or11 >> 0) & 0x01), ((u_pg_rca14_pg_fa12_xor0 >> 0) & 0x01)); - u_pg_rca14_or12 = or_gate(((u_pg_rca14_and12 >> 0) & 0x01), ((u_pg_rca14_pg_fa12_and0 >> 0) & 0x01)); - u_pg_rca14_pg_fa13_xor0 = (pg_fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_pg_rca14_or12 >> 0) & 0x01)) >> 0) & 0x01; - u_pg_rca14_pg_fa13_and0 = (pg_fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_pg_rca14_or12 >> 0) & 0x01)) >> 1) & 0x01; - u_pg_rca14_pg_fa13_xor1 = (pg_fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_pg_rca14_or12 >> 0) & 0x01)) >> 2) & 0x01; - u_pg_rca14_and13 = and_gate(((u_pg_rca14_or12 >> 0) & 0x01), ((u_pg_rca14_pg_fa13_xor0 >> 0) & 0x01)); - u_pg_rca14_or13 = or_gate(((u_pg_rca14_and13 >> 0) & 0x01), ((u_pg_rca14_pg_fa13_and0 >> 0) & 0x01)); - - u_pg_rca14_out |= ((u_pg_rca14_pg_fa0_xor0 >> 0) & 0x01) << 0; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa1_xor1 >> 0) & 0x01) << 1; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa2_xor1 >> 0) & 0x01) << 2; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa3_xor1 >> 0) & 0x01) << 3; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa4_xor1 >> 0) & 0x01) << 4; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa5_xor1 >> 0) & 0x01) << 5; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa6_xor1 >> 0) & 0x01) << 6; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa7_xor1 >> 0) & 0x01) << 7; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa8_xor1 >> 0) & 0x01) << 8; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa9_xor1 >> 0) & 0x01) << 9; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa10_xor1 >> 0) & 0x01) << 10; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa11_xor1 >> 0) & 0x01) << 11; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa12_xor1 >> 0) & 0x01) << 12; - u_pg_rca14_out |= ((u_pg_rca14_pg_fa13_xor1 >> 0) & 0x01) << 13; - u_pg_rca14_out |= ((u_pg_rca14_or13 >> 0) & 0x01) << 14; - return u_pg_rca14_out; -} - -uint64_t h_u_wallace_pg_rca8(uint64_t a, uint64_t b){ - uint64_t h_u_wallace_pg_rca8_out = 0; - uint8_t h_u_wallace_pg_rca8_and_2_0 = 0; - uint8_t h_u_wallace_pg_rca8_and_1_1 = 0; - uint8_t h_u_wallace_pg_rca8_ha0_xor0 = 0; - uint8_t h_u_wallace_pg_rca8_ha0_and0 = 0; - uint8_t h_u_wallace_pg_rca8_and_3_0 = 0; - uint8_t h_u_wallace_pg_rca8_and_2_1 = 0; - uint8_t h_u_wallace_pg_rca8_fa0_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa0_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_4_0 = 0; - uint8_t h_u_wallace_pg_rca8_and_3_1 = 0; - uint8_t h_u_wallace_pg_rca8_fa1_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa1_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_5_0 = 0; - uint8_t h_u_wallace_pg_rca8_and_4_1 = 0; - uint8_t h_u_wallace_pg_rca8_fa2_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa2_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_6_0 = 0; - uint8_t h_u_wallace_pg_rca8_and_5_1 = 0; - uint8_t h_u_wallace_pg_rca8_fa3_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa3_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_7_0 = 0; - uint8_t h_u_wallace_pg_rca8_and_6_1 = 0; - uint8_t h_u_wallace_pg_rca8_fa4_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa4_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_7_1 = 0; - uint8_t h_u_wallace_pg_rca8_and_6_2 = 0; - uint8_t h_u_wallace_pg_rca8_fa5_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa5_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_7_2 = 0; - uint8_t h_u_wallace_pg_rca8_and_6_3 = 0; - uint8_t h_u_wallace_pg_rca8_fa6_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa6_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_7_3 = 0; - uint8_t h_u_wallace_pg_rca8_and_6_4 = 0; - uint8_t h_u_wallace_pg_rca8_fa7_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa7_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_7_4 = 0; - uint8_t h_u_wallace_pg_rca8_and_6_5 = 0; - uint8_t h_u_wallace_pg_rca8_fa8_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa8_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_7_5 = 0; - uint8_t h_u_wallace_pg_rca8_and_6_6 = 0; - uint8_t h_u_wallace_pg_rca8_fa9_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa9_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_1_2 = 0; - uint8_t h_u_wallace_pg_rca8_and_0_3 = 0; - uint8_t h_u_wallace_pg_rca8_ha1_xor0 = 0; - uint8_t h_u_wallace_pg_rca8_ha1_and0 = 0; - uint8_t h_u_wallace_pg_rca8_and_2_2 = 0; - uint8_t h_u_wallace_pg_rca8_and_1_3 = 0; - uint8_t h_u_wallace_pg_rca8_fa10_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa10_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_3_2 = 0; - uint8_t h_u_wallace_pg_rca8_and_2_3 = 0; - uint8_t h_u_wallace_pg_rca8_fa11_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa11_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_4_2 = 0; - uint8_t h_u_wallace_pg_rca8_and_3_3 = 0; - uint8_t h_u_wallace_pg_rca8_fa12_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa12_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_5_2 = 0; - uint8_t h_u_wallace_pg_rca8_and_4_3 = 0; - uint8_t h_u_wallace_pg_rca8_fa13_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa13_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_5_3 = 0; - uint8_t h_u_wallace_pg_rca8_and_4_4 = 0; - uint8_t h_u_wallace_pg_rca8_fa14_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa14_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_5_4 = 0; - uint8_t h_u_wallace_pg_rca8_and_4_5 = 0; - uint8_t h_u_wallace_pg_rca8_fa15_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa15_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_5_5 = 0; - uint8_t h_u_wallace_pg_rca8_and_4_6 = 0; - uint8_t h_u_wallace_pg_rca8_fa16_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa16_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_5_6 = 0; - uint8_t h_u_wallace_pg_rca8_and_4_7 = 0; - uint8_t h_u_wallace_pg_rca8_fa17_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa17_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_0_4 = 0; - uint8_t h_u_wallace_pg_rca8_ha2_xor0 = 0; - uint8_t h_u_wallace_pg_rca8_ha2_and0 = 0; - uint8_t h_u_wallace_pg_rca8_and_1_4 = 0; - uint8_t h_u_wallace_pg_rca8_and_0_5 = 0; - uint8_t h_u_wallace_pg_rca8_fa18_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa18_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_2_4 = 0; - uint8_t h_u_wallace_pg_rca8_and_1_5 = 0; - uint8_t h_u_wallace_pg_rca8_fa19_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa19_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_3_4 = 0; - uint8_t h_u_wallace_pg_rca8_and_2_5 = 0; - uint8_t h_u_wallace_pg_rca8_fa20_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa20_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_3_5 = 0; - uint8_t h_u_wallace_pg_rca8_and_2_6 = 0; - uint8_t h_u_wallace_pg_rca8_fa21_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa21_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_3_6 = 0; - uint8_t h_u_wallace_pg_rca8_and_2_7 = 0; - uint8_t h_u_wallace_pg_rca8_fa22_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa22_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_3_7 = 0; - uint8_t h_u_wallace_pg_rca8_fa23_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa23_or0 = 0; - uint8_t h_u_wallace_pg_rca8_ha3_xor0 = 0; - uint8_t h_u_wallace_pg_rca8_ha3_and0 = 0; - uint8_t h_u_wallace_pg_rca8_and_0_6 = 0; - uint8_t h_u_wallace_pg_rca8_fa24_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa24_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_1_6 = 0; - uint8_t h_u_wallace_pg_rca8_and_0_7 = 0; - uint8_t h_u_wallace_pg_rca8_fa25_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa25_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_1_7 = 0; - uint8_t h_u_wallace_pg_rca8_fa26_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa26_or0 = 0; - uint8_t h_u_wallace_pg_rca8_fa27_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa27_or0 = 0; - uint8_t h_u_wallace_pg_rca8_ha4_xor0 = 0; - uint8_t h_u_wallace_pg_rca8_ha4_and0 = 0; - uint8_t h_u_wallace_pg_rca8_fa28_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa28_or0 = 0; - uint8_t h_u_wallace_pg_rca8_fa29_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa29_or0 = 0; - uint8_t h_u_wallace_pg_rca8_ha5_xor0 = 0; - uint8_t h_u_wallace_pg_rca8_ha5_and0 = 0; - uint8_t h_u_wallace_pg_rca8_ha6_xor0 = 0; - uint8_t h_u_wallace_pg_rca8_ha6_and0 = 0; - uint8_t h_u_wallace_pg_rca8_fa30_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa30_or0 = 0; - uint8_t h_u_wallace_pg_rca8_fa31_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa31_or0 = 0; - uint8_t h_u_wallace_pg_rca8_fa32_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa32_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_5_7 = 0; - uint8_t h_u_wallace_pg_rca8_fa33_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa33_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_7_6 = 0; - uint8_t h_u_wallace_pg_rca8_fa34_xor1 = 0; - uint8_t h_u_wallace_pg_rca8_fa34_or0 = 0; - uint8_t h_u_wallace_pg_rca8_and_0_0 = 0; - uint8_t h_u_wallace_pg_rca8_and_1_0 = 0; - uint8_t h_u_wallace_pg_rca8_and_0_2 = 0; - uint8_t h_u_wallace_pg_rca8_and_6_7 = 0; - uint8_t h_u_wallace_pg_rca8_and_0_1 = 0; - uint8_t h_u_wallace_pg_rca8_and_7_7 = 0; - uint64_t h_u_wallace_pg_rca8_u_pg_rca14_a = 0; - uint64_t h_u_wallace_pg_rca8_u_pg_rca14_b = 0; - uint64_t h_u_wallace_pg_rca8_u_pg_rca14_out = 0; - - h_u_wallace_pg_rca8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_pg_rca8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_pg_rca8_ha0_xor0 = (ha(((h_u_wallace_pg_rca8_and_2_0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_ha0_and0 = (ha(((h_u_wallace_pg_rca8_and_2_0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_pg_rca8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_pg_rca8_fa0_xor1 = (fa(((h_u_wallace_pg_rca8_ha0_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa0_or0 = (fa(((h_u_wallace_pg_rca8_ha0_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_pg_rca8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_pg_rca8_fa1_xor1 = (fa(((h_u_wallace_pg_rca8_fa0_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa1_or0 = (fa(((h_u_wallace_pg_rca8_fa0_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_pg_rca8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_pg_rca8_fa2_xor1 = (fa(((h_u_wallace_pg_rca8_fa1_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa2_or0 = (fa(((h_u_wallace_pg_rca8_fa1_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_pg_rca8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_pg_rca8_fa3_xor1 = (fa(((h_u_wallace_pg_rca8_fa2_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_6_0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa3_or0 = (fa(((h_u_wallace_pg_rca8_fa2_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_6_0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_7_0 = and_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_pg_rca8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_pg_rca8_fa4_xor1 = (fa(((h_u_wallace_pg_rca8_fa3_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_7_0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa4_or0 = (fa(((h_u_wallace_pg_rca8_fa3_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_7_0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_7_1 = and_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_pg_rca8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_pg_rca8_fa5_xor1 = (fa(((h_u_wallace_pg_rca8_fa4_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_7_1 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_6_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa5_or0 = (fa(((h_u_wallace_pg_rca8_fa4_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_7_1 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_6_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_7_2 = and_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_pg_rca8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_pg_rca8_fa6_xor1 = (fa(((h_u_wallace_pg_rca8_fa5_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_7_2 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_6_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa6_or0 = (fa(((h_u_wallace_pg_rca8_fa5_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_7_2 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_6_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_7_3 = and_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_pg_rca8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_pg_rca8_fa7_xor1 = (fa(((h_u_wallace_pg_rca8_fa6_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_7_3 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa7_or0 = (fa(((h_u_wallace_pg_rca8_fa6_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_7_3 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_7_4 = and_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_pg_rca8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_pg_rca8_fa8_xor1 = (fa(((h_u_wallace_pg_rca8_fa7_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_7_4 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_6_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa8_or0 = (fa(((h_u_wallace_pg_rca8_fa7_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_7_4 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_6_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_7_5 = and_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_pg_rca8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_pg_rca8_fa9_xor1 = (fa(((h_u_wallace_pg_rca8_fa8_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_7_5 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_6_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa9_or0 = (fa(((h_u_wallace_pg_rca8_fa8_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_7_5 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_6_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_pg_rca8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_pg_rca8_ha1_xor0 = (ha(((h_u_wallace_pg_rca8_and_1_2 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_ha1_and0 = (ha(((h_u_wallace_pg_rca8_and_1_2 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_pg_rca8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_pg_rca8_fa10_xor1 = (fa(((h_u_wallace_pg_rca8_ha1_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_2_2 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa10_or0 = (fa(((h_u_wallace_pg_rca8_ha1_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_2_2 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_pg_rca8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_pg_rca8_fa11_xor1 = (fa(((h_u_wallace_pg_rca8_fa10_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_2 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa11_or0 = (fa(((h_u_wallace_pg_rca8_fa10_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_2 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_pg_rca8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_pg_rca8_fa12_xor1 = (fa(((h_u_wallace_pg_rca8_fa11_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_2 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa12_or0 = (fa(((h_u_wallace_pg_rca8_fa11_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_2 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_pg_rca8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_pg_rca8_fa13_xor1 = (fa(((h_u_wallace_pg_rca8_fa12_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_2 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa13_or0 = (fa(((h_u_wallace_pg_rca8_fa12_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_2 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_pg_rca8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_pg_rca8_fa14_xor1 = (fa(((h_u_wallace_pg_rca8_fa13_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_3 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa14_or0 = (fa(((h_u_wallace_pg_rca8_fa13_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_3 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_pg_rca8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_pg_rca8_fa15_xor1 = (fa(((h_u_wallace_pg_rca8_fa14_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_4 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa15_or0 = (fa(((h_u_wallace_pg_rca8_fa14_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_4 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_pg_rca8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_pg_rca8_fa16_xor1 = (fa(((h_u_wallace_pg_rca8_fa15_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_5 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa16_or0 = (fa(((h_u_wallace_pg_rca8_fa15_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_5 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_pg_rca8_and_4_7 = and_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_pg_rca8_fa17_xor1 = (fa(((h_u_wallace_pg_rca8_fa16_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_6 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa17_or0 = (fa(((h_u_wallace_pg_rca8_fa16_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_6 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_4_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_pg_rca8_ha2_xor0 = (ha(((h_u_wallace_pg_rca8_and_0_4 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa1_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_ha2_and0 = (ha(((h_u_wallace_pg_rca8_and_0_4 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa1_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_pg_rca8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_pg_rca8_fa18_xor1 = (fa(((h_u_wallace_pg_rca8_ha2_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_1_4 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa18_or0 = (fa(((h_u_wallace_pg_rca8_ha2_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_1_4 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_pg_rca8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_pg_rca8_fa19_xor1 = (fa(((h_u_wallace_pg_rca8_fa18_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_2_4 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_1_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa19_or0 = (fa(((h_u_wallace_pg_rca8_fa18_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_2_4 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_1_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_pg_rca8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_pg_rca8_fa20_xor1 = (fa(((h_u_wallace_pg_rca8_fa19_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_4 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_2_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa20_or0 = (fa(((h_u_wallace_pg_rca8_fa19_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_4 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_2_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_pg_rca8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_pg_rca8_fa21_xor1 = (fa(((h_u_wallace_pg_rca8_fa20_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_5 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_2_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa21_or0 = (fa(((h_u_wallace_pg_rca8_fa20_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_5 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_2_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_pg_rca8_and_2_7 = and_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_pg_rca8_fa22_xor1 = (fa(((h_u_wallace_pg_rca8_fa21_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_6 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_2_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa22_or0 = (fa(((h_u_wallace_pg_rca8_fa21_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_6 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_2_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_3_7 = and_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_pg_rca8_fa23_xor1 = (fa(((h_u_wallace_pg_rca8_fa22_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_7 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa7_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa23_or0 = (fa(((h_u_wallace_pg_rca8_fa22_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_3_7 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa7_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_ha3_xor0 = (ha(((h_u_wallace_pg_rca8_fa2_xor1 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa11_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_ha3_and0 = (ha(((h_u_wallace_pg_rca8_fa2_xor1 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa11_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_pg_rca8_fa24_xor1 = (fa(((h_u_wallace_pg_rca8_ha3_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_0_6 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa24_or0 = (fa(((h_u_wallace_pg_rca8_ha3_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_0_6 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_pg_rca8_and_0_7 = and_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_pg_rca8_fa25_xor1 = (fa(((h_u_wallace_pg_rca8_fa24_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_1_6 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_0_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa25_or0 = (fa(((h_u_wallace_pg_rca8_fa24_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_1_6 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_0_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_1_7 = and_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_pg_rca8_fa26_xor1 = (fa(((h_u_wallace_pg_rca8_fa25_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_1_7 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa5_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa26_or0 = (fa(((h_u_wallace_pg_rca8_fa25_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_1_7 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa5_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_fa27_xor1 = (fa(((h_u_wallace_pg_rca8_fa26_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa6_xor1 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa15_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa27_or0 = (fa(((h_u_wallace_pg_rca8_fa26_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa6_xor1 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa15_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_ha4_xor0 = (ha(((h_u_wallace_pg_rca8_fa12_xor1 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa19_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_ha4_and0 = (ha(((h_u_wallace_pg_rca8_fa12_xor1 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa19_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_fa28_xor1 = (fa(((h_u_wallace_pg_rca8_ha4_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa4_xor1 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa13_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa28_or0 = (fa(((h_u_wallace_pg_rca8_ha4_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa4_xor1 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa13_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_fa29_xor1 = (fa(((h_u_wallace_pg_rca8_fa28_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa14_xor1 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa21_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa29_or0 = (fa(((h_u_wallace_pg_rca8_fa28_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa14_xor1 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa21_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_ha5_xor0 = (ha(((h_u_wallace_pg_rca8_fa20_xor1 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa25_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_ha5_and0 = (ha(((h_u_wallace_pg_rca8_fa20_xor1 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa25_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_ha6_xor0 = (ha(((h_u_wallace_pg_rca8_ha5_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa26_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_ha6_and0 = (ha(((h_u_wallace_pg_rca8_ha5_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa26_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_fa30_xor1 = (fa(((h_u_wallace_pg_rca8_ha6_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa29_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa22_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa30_or0 = (fa(((h_u_wallace_pg_rca8_ha6_and0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa29_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa22_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_fa31_xor1 = (fa(((h_u_wallace_pg_rca8_fa30_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa27_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa16_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa31_or0 = (fa(((h_u_wallace_pg_rca8_fa30_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa27_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa16_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_fa32_xor1 = (fa(((h_u_wallace_pg_rca8_fa31_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa23_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa8_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa32_or0 = (fa(((h_u_wallace_pg_rca8_fa31_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa23_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa8_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_5_7 = and_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_pg_rca8_fa33_xor1 = (fa(((h_u_wallace_pg_rca8_fa32_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa17_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa33_or0 = (fa(((h_u_wallace_pg_rca8_fa32_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa17_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_7_6 = and_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_pg_rca8_fa34_xor1 = (fa(((h_u_wallace_pg_rca8_fa33_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa9_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_pg_rca8_fa34_or0 = (fa(((h_u_wallace_pg_rca8_fa33_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_fa9_or0 >> 0) & 0x01), ((h_u_wallace_pg_rca8_and_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_pg_rca8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_pg_rca8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_pg_rca8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_pg_rca8_and_6_7 = and_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_pg_rca8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_pg_rca8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_pg_rca8_u_pg_rca14_a |= ((h_u_wallace_pg_rca8_and_1_0 >> 0) & 0x01) << 0; - h_u_wallace_pg_rca8_u_pg_rca14_a |= ((h_u_wallace_pg_rca8_and_0_2 >> 0) & 0x01) << 1; - h_u_wallace_pg_rca8_u_pg_rca14_a |= ((h_u_wallace_pg_rca8_fa0_xor1 >> 0) & 0x01) << 2; - h_u_wallace_pg_rca8_u_pg_rca14_a |= ((h_u_wallace_pg_rca8_fa10_xor1 >> 0) & 0x01) << 3; - h_u_wallace_pg_rca8_u_pg_rca14_a |= ((h_u_wallace_pg_rca8_fa18_xor1 >> 0) & 0x01) << 4; - h_u_wallace_pg_rca8_u_pg_rca14_a |= ((h_u_wallace_pg_rca8_fa24_xor1 >> 0) & 0x01) << 5; - h_u_wallace_pg_rca8_u_pg_rca14_a |= ((h_u_wallace_pg_rca8_fa28_xor1 >> 0) & 0x01) << 6; - h_u_wallace_pg_rca8_u_pg_rca14_a |= ((h_u_wallace_pg_rca8_fa29_xor1 >> 0) & 0x01) << 7; - h_u_wallace_pg_rca8_u_pg_rca14_a |= ((h_u_wallace_pg_rca8_fa27_xor1 >> 0) & 0x01) << 8; - h_u_wallace_pg_rca8_u_pg_rca14_a |= ((h_u_wallace_pg_rca8_fa23_xor1 >> 0) & 0x01) << 9; - h_u_wallace_pg_rca8_u_pg_rca14_a |= ((h_u_wallace_pg_rca8_fa17_xor1 >> 0) & 0x01) << 10; - h_u_wallace_pg_rca8_u_pg_rca14_a |= ((h_u_wallace_pg_rca8_fa9_xor1 >> 0) & 0x01) << 11; - h_u_wallace_pg_rca8_u_pg_rca14_a |= ((h_u_wallace_pg_rca8_and_6_7 >> 0) & 0x01) << 12; - h_u_wallace_pg_rca8_u_pg_rca14_a |= ((h_u_wallace_pg_rca8_fa34_or0 >> 0) & 0x01) << 13; - h_u_wallace_pg_rca8_u_pg_rca14_b |= ((h_u_wallace_pg_rca8_and_0_1 >> 0) & 0x01) << 0; - h_u_wallace_pg_rca8_u_pg_rca14_b |= ((h_u_wallace_pg_rca8_ha0_xor0 >> 0) & 0x01) << 1; - h_u_wallace_pg_rca8_u_pg_rca14_b |= ((h_u_wallace_pg_rca8_ha1_xor0 >> 0) & 0x01) << 2; - h_u_wallace_pg_rca8_u_pg_rca14_b |= ((h_u_wallace_pg_rca8_ha2_xor0 >> 0) & 0x01) << 3; - h_u_wallace_pg_rca8_u_pg_rca14_b |= ((h_u_wallace_pg_rca8_ha3_xor0 >> 0) & 0x01) << 4; - h_u_wallace_pg_rca8_u_pg_rca14_b |= ((h_u_wallace_pg_rca8_ha4_xor0 >> 0) & 0x01) << 5; - h_u_wallace_pg_rca8_u_pg_rca14_b |= ((h_u_wallace_pg_rca8_ha5_xor0 >> 0) & 0x01) << 6; - h_u_wallace_pg_rca8_u_pg_rca14_b |= ((h_u_wallace_pg_rca8_ha6_xor0 >> 0) & 0x01) << 7; - h_u_wallace_pg_rca8_u_pg_rca14_b |= ((h_u_wallace_pg_rca8_fa30_xor1 >> 0) & 0x01) << 8; - h_u_wallace_pg_rca8_u_pg_rca14_b |= ((h_u_wallace_pg_rca8_fa31_xor1 >> 0) & 0x01) << 9; - h_u_wallace_pg_rca8_u_pg_rca14_b |= ((h_u_wallace_pg_rca8_fa32_xor1 >> 0) & 0x01) << 10; - h_u_wallace_pg_rca8_u_pg_rca14_b |= ((h_u_wallace_pg_rca8_fa33_xor1 >> 0) & 0x01) << 11; - h_u_wallace_pg_rca8_u_pg_rca14_b |= ((h_u_wallace_pg_rca8_fa34_xor1 >> 0) & 0x01) << 12; - h_u_wallace_pg_rca8_u_pg_rca14_b |= ((h_u_wallace_pg_rca8_and_7_7 >> 0) & 0x01) << 13; - h_u_wallace_pg_rca8_u_pg_rca14_out = u_pg_rca14(h_u_wallace_pg_rca8_u_pg_rca14_a, h_u_wallace_pg_rca8_u_pg_rca14_b); - - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_and_0_0 >> 0) & 0x01) << 0; - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_u_pg_rca14_out >> 0) & 0x01) << 1; - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_u_pg_rca14_out >> 1) & 0x01) << 2; - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_u_pg_rca14_out >> 2) & 0x01) << 3; - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_u_pg_rca14_out >> 3) & 0x01) << 4; - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_u_pg_rca14_out >> 4) & 0x01) << 5; - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_u_pg_rca14_out >> 5) & 0x01) << 6; - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_u_pg_rca14_out >> 6) & 0x01) << 7; - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_u_pg_rca14_out >> 7) & 0x01) << 8; - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_u_pg_rca14_out >> 8) & 0x01) << 9; - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_u_pg_rca14_out >> 9) & 0x01) << 10; - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_u_pg_rca14_out >> 10) & 0x01) << 11; - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_u_pg_rca14_out >> 11) & 0x01) << 12; - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_u_pg_rca14_out >> 12) & 0x01) << 13; - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_u_pg_rca14_out >> 13) & 0x01) << 14; - h_u_wallace_pg_rca8_out |= ((h_u_wallace_pg_rca8_u_pg_rca14_out >> 14) & 0x01) << 15; - return h_u_wallace_pg_rca8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == h_u_wallace_pg_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_rca4.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_rca4.c deleted file mode 100644 index 1dac646..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_rca4.c +++ /dev/null @@ -1,181 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint64_t u_rca6(uint64_t a, uint64_t b){ - uint8_t u_rca6_out = 0; - uint8_t u_rca6_ha_xor0 = 0; - uint8_t u_rca6_ha_and0 = 0; - uint8_t u_rca6_fa1_xor1 = 0; - uint8_t u_rca6_fa1_or0 = 0; - uint8_t u_rca6_fa2_xor1 = 0; - uint8_t u_rca6_fa2_or0 = 0; - uint8_t u_rca6_fa3_xor1 = 0; - uint8_t u_rca6_fa3_or0 = 0; - uint8_t u_rca6_fa4_xor1 = 0; - uint8_t u_rca6_fa4_or0 = 0; - uint8_t u_rca6_fa5_xor1 = 0; - uint8_t u_rca6_fa5_or0 = 0; - - u_rca6_ha_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_ha_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa1_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca6_ha_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa1_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca6_ha_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa2_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca6_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa2_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca6_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa3_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca6_fa2_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa3_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca6_fa2_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa4_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca6_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa4_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca6_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca6_fa5_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca6_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca6_fa5_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca6_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - - u_rca6_out |= ((u_rca6_ha_xor0 >> 0) & 0x01) << 0; - u_rca6_out |= ((u_rca6_fa1_xor1 >> 0) & 0x01) << 1; - u_rca6_out |= ((u_rca6_fa2_xor1 >> 0) & 0x01) << 2; - u_rca6_out |= ((u_rca6_fa3_xor1 >> 0) & 0x01) << 3; - u_rca6_out |= ((u_rca6_fa4_xor1 >> 0) & 0x01) << 4; - u_rca6_out |= ((u_rca6_fa5_xor1 >> 0) & 0x01) << 5; - u_rca6_out |= ((u_rca6_fa5_or0 >> 0) & 0x01) << 6; - return u_rca6_out; -} - -uint64_t h_u_wallace_rca4(uint64_t a, uint64_t b){ - uint8_t h_u_wallace_rca4_out = 0; - uint8_t h_u_wallace_rca4_and_2_0 = 0; - uint8_t h_u_wallace_rca4_and_1_1 = 0; - uint8_t h_u_wallace_rca4_ha0_xor0 = 0; - uint8_t h_u_wallace_rca4_ha0_and0 = 0; - uint8_t h_u_wallace_rca4_and_3_0 = 0; - uint8_t h_u_wallace_rca4_and_2_1 = 0; - uint8_t h_u_wallace_rca4_fa0_xor1 = 0; - uint8_t h_u_wallace_rca4_fa0_or0 = 0; - uint8_t h_u_wallace_rca4_and_3_1 = 0; - uint8_t h_u_wallace_rca4_and_2_2 = 0; - uint8_t h_u_wallace_rca4_fa1_xor1 = 0; - uint8_t h_u_wallace_rca4_fa1_or0 = 0; - uint8_t h_u_wallace_rca4_and_1_2 = 0; - uint8_t h_u_wallace_rca4_and_0_3 = 0; - uint8_t h_u_wallace_rca4_ha1_xor0 = 0; - uint8_t h_u_wallace_rca4_ha1_and0 = 0; - uint8_t h_u_wallace_rca4_and_1_3 = 0; - uint8_t h_u_wallace_rca4_ha2_xor0 = 0; - uint8_t h_u_wallace_rca4_ha2_and0 = 0; - uint8_t h_u_wallace_rca4_and_3_2 = 0; - uint8_t h_u_wallace_rca4_fa2_xor1 = 0; - uint8_t h_u_wallace_rca4_fa2_or0 = 0; - uint8_t h_u_wallace_rca4_and_0_0 = 0; - uint8_t h_u_wallace_rca4_and_1_0 = 0; - uint8_t h_u_wallace_rca4_and_0_2 = 0; - uint8_t h_u_wallace_rca4_and_2_3 = 0; - uint8_t h_u_wallace_rca4_and_0_1 = 0; - uint8_t h_u_wallace_rca4_and_3_3 = 0; - uint64_t h_u_wallace_rca4_u_rca6_a = 0; - uint64_t h_u_wallace_rca4_u_rca6_b = 0; - uint64_t h_u_wallace_rca4_u_rca6_out = 0; - - h_u_wallace_rca4_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_rca4_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_rca4_ha0_xor0 = (ha(((h_u_wallace_rca4_and_2_0 >> 0) & 0x01), ((h_u_wallace_rca4_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca4_ha0_and0 = (ha(((h_u_wallace_rca4_and_2_0 >> 0) & 0x01), ((h_u_wallace_rca4_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca4_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_rca4_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_rca4_fa0_xor1 = (fa(((h_u_wallace_rca4_ha0_and0 >> 0) & 0x01), ((h_u_wallace_rca4_and_3_0 >> 0) & 0x01), ((h_u_wallace_rca4_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca4_fa0_or0 = (fa(((h_u_wallace_rca4_ha0_and0 >> 0) & 0x01), ((h_u_wallace_rca4_and_3_0 >> 0) & 0x01), ((h_u_wallace_rca4_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca4_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_rca4_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_rca4_fa1_xor1 = (fa(((h_u_wallace_rca4_fa0_or0 >> 0) & 0x01), ((h_u_wallace_rca4_and_3_1 >> 0) & 0x01), ((h_u_wallace_rca4_and_2_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca4_fa1_or0 = (fa(((h_u_wallace_rca4_fa0_or0 >> 0) & 0x01), ((h_u_wallace_rca4_and_3_1 >> 0) & 0x01), ((h_u_wallace_rca4_and_2_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca4_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_rca4_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_rca4_ha1_xor0 = (ha(((h_u_wallace_rca4_and_1_2 >> 0) & 0x01), ((h_u_wallace_rca4_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca4_ha1_and0 = (ha(((h_u_wallace_rca4_and_1_2 >> 0) & 0x01), ((h_u_wallace_rca4_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca4_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_rca4_ha2_xor0 = (ha(((h_u_wallace_rca4_ha1_and0 >> 0) & 0x01), ((h_u_wallace_rca4_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca4_ha2_and0 = (ha(((h_u_wallace_rca4_ha1_and0 >> 0) & 0x01), ((h_u_wallace_rca4_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca4_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_rca4_fa2_xor1 = (fa(((h_u_wallace_rca4_ha2_and0 >> 0) & 0x01), ((h_u_wallace_rca4_fa1_or0 >> 0) & 0x01), ((h_u_wallace_rca4_and_3_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca4_fa2_or0 = (fa(((h_u_wallace_rca4_ha2_and0 >> 0) & 0x01), ((h_u_wallace_rca4_fa1_or0 >> 0) & 0x01), ((h_u_wallace_rca4_and_3_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca4_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_rca4_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_rca4_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_rca4_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_rca4_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_rca4_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_rca4_u_rca6_a |= ((h_u_wallace_rca4_and_1_0 >> 0) & 0x01) << 0; - h_u_wallace_rca4_u_rca6_a |= ((h_u_wallace_rca4_and_0_2 >> 0) & 0x01) << 1; - h_u_wallace_rca4_u_rca6_a |= ((h_u_wallace_rca4_fa0_xor1 >> 0) & 0x01) << 2; - h_u_wallace_rca4_u_rca6_a |= ((h_u_wallace_rca4_fa1_xor1 >> 0) & 0x01) << 3; - h_u_wallace_rca4_u_rca6_a |= ((h_u_wallace_rca4_and_2_3 >> 0) & 0x01) << 4; - h_u_wallace_rca4_u_rca6_a |= ((h_u_wallace_rca4_fa2_or0 >> 0) & 0x01) << 5; - h_u_wallace_rca4_u_rca6_b |= ((h_u_wallace_rca4_and_0_1 >> 0) & 0x01) << 0; - h_u_wallace_rca4_u_rca6_b |= ((h_u_wallace_rca4_ha0_xor0 >> 0) & 0x01) << 1; - h_u_wallace_rca4_u_rca6_b |= ((h_u_wallace_rca4_ha1_xor0 >> 0) & 0x01) << 2; - h_u_wallace_rca4_u_rca6_b |= ((h_u_wallace_rca4_ha2_xor0 >> 0) & 0x01) << 3; - h_u_wallace_rca4_u_rca6_b |= ((h_u_wallace_rca4_fa2_xor1 >> 0) & 0x01) << 4; - h_u_wallace_rca4_u_rca6_b |= ((h_u_wallace_rca4_and_3_3 >> 0) & 0x01) << 5; - h_u_wallace_rca4_u_rca6_out = u_rca6(h_u_wallace_rca4_u_rca6_a, h_u_wallace_rca4_u_rca6_b); - - h_u_wallace_rca4_out |= ((h_u_wallace_rca4_and_0_0 >> 0) & 0x01) << 0; - h_u_wallace_rca4_out |= ((h_u_wallace_rca4_u_rca6_out >> 0) & 0x01) << 1; - h_u_wallace_rca4_out |= ((h_u_wallace_rca4_u_rca6_out >> 1) & 0x01) << 2; - h_u_wallace_rca4_out |= ((h_u_wallace_rca4_u_rca6_out >> 2) & 0x01) << 3; - h_u_wallace_rca4_out |= ((h_u_wallace_rca4_u_rca6_out >> 3) & 0x01) << 4; - h_u_wallace_rca4_out |= ((h_u_wallace_rca4_u_rca6_out >> 4) & 0x01) << 5; - h_u_wallace_rca4_out |= ((h_u_wallace_rca4_u_rca6_out >> 5) & 0x01) << 6; - h_u_wallace_rca4_out |= ((h_u_wallace_rca4_u_rca6_out >> 6) & 0x01) << 7; - return h_u_wallace_rca4_out; -} - -#include -int main(){ - for (int i = 0; i < 16; i++){ - for (int j = 0; j < 16; j++){ - assert((i * j) == h_u_wallace_rca4(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_rca8.c b/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_rca8.c deleted file mode 100644 index 535ac42..0000000 --- a/c_circuits_simulation_tests/c_circuits/hierarchical/multipliers/h_u_wallace_rca8.c +++ /dev/null @@ -1,485 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -uint8_t ha(uint8_t a, uint8_t b){ - uint8_t ha_out = 0; - uint8_t ha_xor0 = 0; - uint8_t ha_and0 = 0; - - ha_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - ha_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - - ha_out |= ((ha_xor0 >> 0) & 0x01) << 0; - ha_out |= ((ha_and0 >> 0) & 0x01) << 1; - return ha_out; -} - -uint8_t fa(uint8_t a, uint8_t b, uint8_t cin){ - uint8_t fa_out = 0; - uint8_t fa_xor0 = 0; - uint8_t fa_and0 = 0; - uint8_t fa_xor1 = 0; - uint8_t fa_and1 = 0; - uint8_t fa_or0 = 0; - - fa_xor0 = xor_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_and0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - fa_xor1 = xor_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_and1 = and_gate(((fa_xor0 >> 0) & 0x01), ((cin >> 0) & 0x01)); - fa_or0 = or_gate(((fa_and0 >> 0) & 0x01), ((fa_and1 >> 0) & 0x01)); - - fa_out |= ((fa_xor1 >> 0) & 0x01) << 0; - fa_out |= ((fa_or0 >> 0) & 0x01) << 1; - return fa_out; -} - -uint64_t u_rca14(uint64_t a, uint64_t b){ - uint64_t u_rca14_out = 0; - uint8_t u_rca14_ha_xor0 = 0; - uint8_t u_rca14_ha_and0 = 0; - uint8_t u_rca14_fa1_xor1 = 0; - uint8_t u_rca14_fa1_or0 = 0; - uint8_t u_rca14_fa2_xor1 = 0; - uint8_t u_rca14_fa2_or0 = 0; - uint8_t u_rca14_fa3_xor1 = 0; - uint8_t u_rca14_fa3_or0 = 0; - uint8_t u_rca14_fa4_xor1 = 0; - uint8_t u_rca14_fa4_or0 = 0; - uint8_t u_rca14_fa5_xor1 = 0; - uint8_t u_rca14_fa5_or0 = 0; - uint8_t u_rca14_fa6_xor1 = 0; - uint8_t u_rca14_fa6_or0 = 0; - uint8_t u_rca14_fa7_xor1 = 0; - uint8_t u_rca14_fa7_or0 = 0; - uint8_t u_rca14_fa8_xor1 = 0; - uint8_t u_rca14_fa8_or0 = 0; - uint8_t u_rca14_fa9_xor1 = 0; - uint8_t u_rca14_fa9_or0 = 0; - uint8_t u_rca14_fa10_xor1 = 0; - uint8_t u_rca14_fa10_or0 = 0; - uint8_t u_rca14_fa11_xor1 = 0; - uint8_t u_rca14_fa11_or0 = 0; - uint8_t u_rca14_fa12_xor1 = 0; - uint8_t u_rca14_fa12_or0 = 0; - uint8_t u_rca14_fa13_xor1 = 0; - uint8_t u_rca14_fa13_or0 = 0; - - u_rca14_ha_xor0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_ha_and0 = (ha(((a >> 0) & 0x01), ((b >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa1_xor1 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca14_ha_and0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa1_or0 = (fa(((a >> 1) & 0x01), ((b >> 1) & 0x01), ((u_rca14_ha_and0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa2_xor1 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca14_fa1_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa2_or0 = (fa(((a >> 2) & 0x01), ((b >> 2) & 0x01), ((u_rca14_fa1_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa3_xor1 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca14_fa2_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa3_or0 = (fa(((a >> 3) & 0x01), ((b >> 3) & 0x01), ((u_rca14_fa2_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa4_xor1 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca14_fa3_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa4_or0 = (fa(((a >> 4) & 0x01), ((b >> 4) & 0x01), ((u_rca14_fa3_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa5_xor1 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca14_fa4_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa5_or0 = (fa(((a >> 5) & 0x01), ((b >> 5) & 0x01), ((u_rca14_fa4_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa6_xor1 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_rca14_fa5_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa6_or0 = (fa(((a >> 6) & 0x01), ((b >> 6) & 0x01), ((u_rca14_fa5_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa7_xor1 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_rca14_fa6_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa7_or0 = (fa(((a >> 7) & 0x01), ((b >> 7) & 0x01), ((u_rca14_fa6_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa8_xor1 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_rca14_fa7_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa8_or0 = (fa(((a >> 8) & 0x01), ((b >> 8) & 0x01), ((u_rca14_fa7_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa9_xor1 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_rca14_fa8_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa9_or0 = (fa(((a >> 9) & 0x01), ((b >> 9) & 0x01), ((u_rca14_fa8_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa10_xor1 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_rca14_fa9_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa10_or0 = (fa(((a >> 10) & 0x01), ((b >> 10) & 0x01), ((u_rca14_fa9_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa11_xor1 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_rca14_fa10_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa11_or0 = (fa(((a >> 11) & 0x01), ((b >> 11) & 0x01), ((u_rca14_fa10_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa12_xor1 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_rca14_fa11_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa12_or0 = (fa(((a >> 12) & 0x01), ((b >> 12) & 0x01), ((u_rca14_fa11_or0 >> 0) & 0x01)) >> 1) & 0x01; - u_rca14_fa13_xor1 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_rca14_fa12_or0 >> 0) & 0x01)) >> 0) & 0x01; - u_rca14_fa13_or0 = (fa(((a >> 13) & 0x01), ((b >> 13) & 0x01), ((u_rca14_fa12_or0 >> 0) & 0x01)) >> 1) & 0x01; - - u_rca14_out |= ((u_rca14_ha_xor0 >> 0) & 0x01) << 0; - u_rca14_out |= ((u_rca14_fa1_xor1 >> 0) & 0x01) << 1; - u_rca14_out |= ((u_rca14_fa2_xor1 >> 0) & 0x01) << 2; - u_rca14_out |= ((u_rca14_fa3_xor1 >> 0) & 0x01) << 3; - u_rca14_out |= ((u_rca14_fa4_xor1 >> 0) & 0x01) << 4; - u_rca14_out |= ((u_rca14_fa5_xor1 >> 0) & 0x01) << 5; - u_rca14_out |= ((u_rca14_fa6_xor1 >> 0) & 0x01) << 6; - u_rca14_out |= ((u_rca14_fa7_xor1 >> 0) & 0x01) << 7; - u_rca14_out |= ((u_rca14_fa8_xor1 >> 0) & 0x01) << 8; - u_rca14_out |= ((u_rca14_fa9_xor1 >> 0) & 0x01) << 9; - u_rca14_out |= ((u_rca14_fa10_xor1 >> 0) & 0x01) << 10; - u_rca14_out |= ((u_rca14_fa11_xor1 >> 0) & 0x01) << 11; - u_rca14_out |= ((u_rca14_fa12_xor1 >> 0) & 0x01) << 12; - u_rca14_out |= ((u_rca14_fa13_xor1 >> 0) & 0x01) << 13; - u_rca14_out |= ((u_rca14_fa13_or0 >> 0) & 0x01) << 14; - return u_rca14_out; -} - -uint64_t h_u_wallace_rca8(uint64_t a, uint64_t b){ - uint64_t h_u_wallace_rca8_out = 0; - uint8_t h_u_wallace_rca8_and_2_0 = 0; - uint8_t h_u_wallace_rca8_and_1_1 = 0; - uint8_t h_u_wallace_rca8_ha0_xor0 = 0; - uint8_t h_u_wallace_rca8_ha0_and0 = 0; - uint8_t h_u_wallace_rca8_and_3_0 = 0; - uint8_t h_u_wallace_rca8_and_2_1 = 0; - uint8_t h_u_wallace_rca8_fa0_xor1 = 0; - uint8_t h_u_wallace_rca8_fa0_or0 = 0; - uint8_t h_u_wallace_rca8_and_4_0 = 0; - uint8_t h_u_wallace_rca8_and_3_1 = 0; - uint8_t h_u_wallace_rca8_fa1_xor1 = 0; - uint8_t h_u_wallace_rca8_fa1_or0 = 0; - uint8_t h_u_wallace_rca8_and_5_0 = 0; - uint8_t h_u_wallace_rca8_and_4_1 = 0; - uint8_t h_u_wallace_rca8_fa2_xor1 = 0; - uint8_t h_u_wallace_rca8_fa2_or0 = 0; - uint8_t h_u_wallace_rca8_and_6_0 = 0; - uint8_t h_u_wallace_rca8_and_5_1 = 0; - uint8_t h_u_wallace_rca8_fa3_xor1 = 0; - uint8_t h_u_wallace_rca8_fa3_or0 = 0; - uint8_t h_u_wallace_rca8_and_7_0 = 0; - uint8_t h_u_wallace_rca8_and_6_1 = 0; - uint8_t h_u_wallace_rca8_fa4_xor1 = 0; - uint8_t h_u_wallace_rca8_fa4_or0 = 0; - uint8_t h_u_wallace_rca8_and_7_1 = 0; - uint8_t h_u_wallace_rca8_and_6_2 = 0; - uint8_t h_u_wallace_rca8_fa5_xor1 = 0; - uint8_t h_u_wallace_rca8_fa5_or0 = 0; - uint8_t h_u_wallace_rca8_and_7_2 = 0; - uint8_t h_u_wallace_rca8_and_6_3 = 0; - uint8_t h_u_wallace_rca8_fa6_xor1 = 0; - uint8_t h_u_wallace_rca8_fa6_or0 = 0; - uint8_t h_u_wallace_rca8_and_7_3 = 0; - uint8_t h_u_wallace_rca8_and_6_4 = 0; - uint8_t h_u_wallace_rca8_fa7_xor1 = 0; - uint8_t h_u_wallace_rca8_fa7_or0 = 0; - uint8_t h_u_wallace_rca8_and_7_4 = 0; - uint8_t h_u_wallace_rca8_and_6_5 = 0; - uint8_t h_u_wallace_rca8_fa8_xor1 = 0; - uint8_t h_u_wallace_rca8_fa8_or0 = 0; - uint8_t h_u_wallace_rca8_and_7_5 = 0; - uint8_t h_u_wallace_rca8_and_6_6 = 0; - uint8_t h_u_wallace_rca8_fa9_xor1 = 0; - uint8_t h_u_wallace_rca8_fa9_or0 = 0; - uint8_t h_u_wallace_rca8_and_1_2 = 0; - uint8_t h_u_wallace_rca8_and_0_3 = 0; - uint8_t h_u_wallace_rca8_ha1_xor0 = 0; - uint8_t h_u_wallace_rca8_ha1_and0 = 0; - uint8_t h_u_wallace_rca8_and_2_2 = 0; - uint8_t h_u_wallace_rca8_and_1_3 = 0; - uint8_t h_u_wallace_rca8_fa10_xor1 = 0; - uint8_t h_u_wallace_rca8_fa10_or0 = 0; - uint8_t h_u_wallace_rca8_and_3_2 = 0; - uint8_t h_u_wallace_rca8_and_2_3 = 0; - uint8_t h_u_wallace_rca8_fa11_xor1 = 0; - uint8_t h_u_wallace_rca8_fa11_or0 = 0; - uint8_t h_u_wallace_rca8_and_4_2 = 0; - uint8_t h_u_wallace_rca8_and_3_3 = 0; - uint8_t h_u_wallace_rca8_fa12_xor1 = 0; - uint8_t h_u_wallace_rca8_fa12_or0 = 0; - uint8_t h_u_wallace_rca8_and_5_2 = 0; - uint8_t h_u_wallace_rca8_and_4_3 = 0; - uint8_t h_u_wallace_rca8_fa13_xor1 = 0; - uint8_t h_u_wallace_rca8_fa13_or0 = 0; - uint8_t h_u_wallace_rca8_and_5_3 = 0; - uint8_t h_u_wallace_rca8_and_4_4 = 0; - uint8_t h_u_wallace_rca8_fa14_xor1 = 0; - uint8_t h_u_wallace_rca8_fa14_or0 = 0; - uint8_t h_u_wallace_rca8_and_5_4 = 0; - uint8_t h_u_wallace_rca8_and_4_5 = 0; - uint8_t h_u_wallace_rca8_fa15_xor1 = 0; - uint8_t h_u_wallace_rca8_fa15_or0 = 0; - uint8_t h_u_wallace_rca8_and_5_5 = 0; - uint8_t h_u_wallace_rca8_and_4_6 = 0; - uint8_t h_u_wallace_rca8_fa16_xor1 = 0; - uint8_t h_u_wallace_rca8_fa16_or0 = 0; - uint8_t h_u_wallace_rca8_and_5_6 = 0; - uint8_t h_u_wallace_rca8_and_4_7 = 0; - uint8_t h_u_wallace_rca8_fa17_xor1 = 0; - uint8_t h_u_wallace_rca8_fa17_or0 = 0; - uint8_t h_u_wallace_rca8_and_0_4 = 0; - uint8_t h_u_wallace_rca8_ha2_xor0 = 0; - uint8_t h_u_wallace_rca8_ha2_and0 = 0; - uint8_t h_u_wallace_rca8_and_1_4 = 0; - uint8_t h_u_wallace_rca8_and_0_5 = 0; - uint8_t h_u_wallace_rca8_fa18_xor1 = 0; - uint8_t h_u_wallace_rca8_fa18_or0 = 0; - uint8_t h_u_wallace_rca8_and_2_4 = 0; - uint8_t h_u_wallace_rca8_and_1_5 = 0; - uint8_t h_u_wallace_rca8_fa19_xor1 = 0; - uint8_t h_u_wallace_rca8_fa19_or0 = 0; - uint8_t h_u_wallace_rca8_and_3_4 = 0; - uint8_t h_u_wallace_rca8_and_2_5 = 0; - uint8_t h_u_wallace_rca8_fa20_xor1 = 0; - uint8_t h_u_wallace_rca8_fa20_or0 = 0; - uint8_t h_u_wallace_rca8_and_3_5 = 0; - uint8_t h_u_wallace_rca8_and_2_6 = 0; - uint8_t h_u_wallace_rca8_fa21_xor1 = 0; - uint8_t h_u_wallace_rca8_fa21_or0 = 0; - uint8_t h_u_wallace_rca8_and_3_6 = 0; - uint8_t h_u_wallace_rca8_and_2_7 = 0; - uint8_t h_u_wallace_rca8_fa22_xor1 = 0; - uint8_t h_u_wallace_rca8_fa22_or0 = 0; - uint8_t h_u_wallace_rca8_and_3_7 = 0; - uint8_t h_u_wallace_rca8_fa23_xor1 = 0; - uint8_t h_u_wallace_rca8_fa23_or0 = 0; - uint8_t h_u_wallace_rca8_ha3_xor0 = 0; - uint8_t h_u_wallace_rca8_ha3_and0 = 0; - uint8_t h_u_wallace_rca8_and_0_6 = 0; - uint8_t h_u_wallace_rca8_fa24_xor1 = 0; - uint8_t h_u_wallace_rca8_fa24_or0 = 0; - uint8_t h_u_wallace_rca8_and_1_6 = 0; - uint8_t h_u_wallace_rca8_and_0_7 = 0; - uint8_t h_u_wallace_rca8_fa25_xor1 = 0; - uint8_t h_u_wallace_rca8_fa25_or0 = 0; - uint8_t h_u_wallace_rca8_and_1_7 = 0; - uint8_t h_u_wallace_rca8_fa26_xor1 = 0; - uint8_t h_u_wallace_rca8_fa26_or0 = 0; - uint8_t h_u_wallace_rca8_fa27_xor1 = 0; - uint8_t h_u_wallace_rca8_fa27_or0 = 0; - uint8_t h_u_wallace_rca8_ha4_xor0 = 0; - uint8_t h_u_wallace_rca8_ha4_and0 = 0; - uint8_t h_u_wallace_rca8_fa28_xor1 = 0; - uint8_t h_u_wallace_rca8_fa28_or0 = 0; - uint8_t h_u_wallace_rca8_fa29_xor1 = 0; - uint8_t h_u_wallace_rca8_fa29_or0 = 0; - uint8_t h_u_wallace_rca8_ha5_xor0 = 0; - uint8_t h_u_wallace_rca8_ha5_and0 = 0; - uint8_t h_u_wallace_rca8_ha6_xor0 = 0; - uint8_t h_u_wallace_rca8_ha6_and0 = 0; - uint8_t h_u_wallace_rca8_fa30_xor1 = 0; - uint8_t h_u_wallace_rca8_fa30_or0 = 0; - uint8_t h_u_wallace_rca8_fa31_xor1 = 0; - uint8_t h_u_wallace_rca8_fa31_or0 = 0; - uint8_t h_u_wallace_rca8_fa32_xor1 = 0; - uint8_t h_u_wallace_rca8_fa32_or0 = 0; - uint8_t h_u_wallace_rca8_and_5_7 = 0; - uint8_t h_u_wallace_rca8_fa33_xor1 = 0; - uint8_t h_u_wallace_rca8_fa33_or0 = 0; - uint8_t h_u_wallace_rca8_and_7_6 = 0; - uint8_t h_u_wallace_rca8_fa34_xor1 = 0; - uint8_t h_u_wallace_rca8_fa34_or0 = 0; - uint8_t h_u_wallace_rca8_and_0_0 = 0; - uint8_t h_u_wallace_rca8_and_1_0 = 0; - uint8_t h_u_wallace_rca8_and_0_2 = 0; - uint8_t h_u_wallace_rca8_and_6_7 = 0; - uint8_t h_u_wallace_rca8_and_0_1 = 0; - uint8_t h_u_wallace_rca8_and_7_7 = 0; - uint64_t h_u_wallace_rca8_u_rca14_a = 0; - uint64_t h_u_wallace_rca8_u_rca14_b = 0; - uint64_t h_u_wallace_rca8_u_rca14_out = 0; - - h_u_wallace_rca8_and_2_0 = and_gate(((a >> 2) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_rca8_and_1_1 = and_gate(((a >> 1) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_rca8_ha0_xor0 = (ha(((h_u_wallace_rca8_and_2_0 >> 0) & 0x01), ((h_u_wallace_rca8_and_1_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_ha0_and0 = (ha(((h_u_wallace_rca8_and_2_0 >> 0) & 0x01), ((h_u_wallace_rca8_and_1_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_3_0 = and_gate(((a >> 3) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_rca8_and_2_1 = and_gate(((a >> 2) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_rca8_fa0_xor1 = (fa(((h_u_wallace_rca8_ha0_and0 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_0 >> 0) & 0x01), ((h_u_wallace_rca8_and_2_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa0_or0 = (fa(((h_u_wallace_rca8_ha0_and0 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_0 >> 0) & 0x01), ((h_u_wallace_rca8_and_2_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_4_0 = and_gate(((a >> 4) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_rca8_and_3_1 = and_gate(((a >> 3) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_rca8_fa1_xor1 = (fa(((h_u_wallace_rca8_fa0_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_0 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa1_or0 = (fa(((h_u_wallace_rca8_fa0_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_0 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_5_0 = and_gate(((a >> 5) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_rca8_and_4_1 = and_gate(((a >> 4) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_rca8_fa2_xor1 = (fa(((h_u_wallace_rca8_fa1_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_0 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa2_or0 = (fa(((h_u_wallace_rca8_fa1_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_0 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_6_0 = and_gate(((a >> 6) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_rca8_and_5_1 = and_gate(((a >> 5) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_rca8_fa3_xor1 = (fa(((h_u_wallace_rca8_fa2_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_6_0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa3_or0 = (fa(((h_u_wallace_rca8_fa2_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_6_0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_7_0 = and_gate(((a >> 7) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_rca8_and_6_1 = and_gate(((a >> 6) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_rca8_fa4_xor1 = (fa(((h_u_wallace_rca8_fa3_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_7_0 >> 0) & 0x01), ((h_u_wallace_rca8_and_6_1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa4_or0 = (fa(((h_u_wallace_rca8_fa3_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_7_0 >> 0) & 0x01), ((h_u_wallace_rca8_and_6_1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_7_1 = and_gate(((a >> 7) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_rca8_and_6_2 = and_gate(((a >> 6) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_rca8_fa5_xor1 = (fa(((h_u_wallace_rca8_fa4_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_7_1 >> 0) & 0x01), ((h_u_wallace_rca8_and_6_2 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa5_or0 = (fa(((h_u_wallace_rca8_fa4_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_7_1 >> 0) & 0x01), ((h_u_wallace_rca8_and_6_2 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_7_2 = and_gate(((a >> 7) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_rca8_and_6_3 = and_gate(((a >> 6) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_rca8_fa6_xor1 = (fa(((h_u_wallace_rca8_fa5_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_7_2 >> 0) & 0x01), ((h_u_wallace_rca8_and_6_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa6_or0 = (fa(((h_u_wallace_rca8_fa5_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_7_2 >> 0) & 0x01), ((h_u_wallace_rca8_and_6_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_7_3 = and_gate(((a >> 7) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_rca8_and_6_4 = and_gate(((a >> 6) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_rca8_fa7_xor1 = (fa(((h_u_wallace_rca8_fa6_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_7_3 >> 0) & 0x01), ((h_u_wallace_rca8_and_6_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa7_or0 = (fa(((h_u_wallace_rca8_fa6_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_7_3 >> 0) & 0x01), ((h_u_wallace_rca8_and_6_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_7_4 = and_gate(((a >> 7) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_rca8_and_6_5 = and_gate(((a >> 6) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_rca8_fa8_xor1 = (fa(((h_u_wallace_rca8_fa7_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_7_4 >> 0) & 0x01), ((h_u_wallace_rca8_and_6_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa8_or0 = (fa(((h_u_wallace_rca8_fa7_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_7_4 >> 0) & 0x01), ((h_u_wallace_rca8_and_6_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_7_5 = and_gate(((a >> 7) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_rca8_and_6_6 = and_gate(((a >> 6) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_rca8_fa9_xor1 = (fa(((h_u_wallace_rca8_fa8_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_7_5 >> 0) & 0x01), ((h_u_wallace_rca8_and_6_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa9_or0 = (fa(((h_u_wallace_rca8_fa8_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_7_5 >> 0) & 0x01), ((h_u_wallace_rca8_and_6_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_1_2 = and_gate(((a >> 1) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_rca8_and_0_3 = and_gate(((a >> 0) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_rca8_ha1_xor0 = (ha(((h_u_wallace_rca8_and_1_2 >> 0) & 0x01), ((h_u_wallace_rca8_and_0_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_ha1_and0 = (ha(((h_u_wallace_rca8_and_1_2 >> 0) & 0x01), ((h_u_wallace_rca8_and_0_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_2_2 = and_gate(((a >> 2) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_rca8_and_1_3 = and_gate(((a >> 1) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_rca8_fa10_xor1 = (fa(((h_u_wallace_rca8_ha1_and0 >> 0) & 0x01), ((h_u_wallace_rca8_and_2_2 >> 0) & 0x01), ((h_u_wallace_rca8_and_1_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa10_or0 = (fa(((h_u_wallace_rca8_ha1_and0 >> 0) & 0x01), ((h_u_wallace_rca8_and_2_2 >> 0) & 0x01), ((h_u_wallace_rca8_and_1_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_3_2 = and_gate(((a >> 3) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_rca8_and_2_3 = and_gate(((a >> 2) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_rca8_fa11_xor1 = (fa(((h_u_wallace_rca8_fa10_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_2 >> 0) & 0x01), ((h_u_wallace_rca8_and_2_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa11_or0 = (fa(((h_u_wallace_rca8_fa10_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_2 >> 0) & 0x01), ((h_u_wallace_rca8_and_2_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_4_2 = and_gate(((a >> 4) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_rca8_and_3_3 = and_gate(((a >> 3) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_rca8_fa12_xor1 = (fa(((h_u_wallace_rca8_fa11_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_2 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa12_or0 = (fa(((h_u_wallace_rca8_fa11_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_2 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_5_2 = and_gate(((a >> 5) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_rca8_and_4_3 = and_gate(((a >> 4) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_rca8_fa13_xor1 = (fa(((h_u_wallace_rca8_fa12_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_2 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_3 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa13_or0 = (fa(((h_u_wallace_rca8_fa12_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_2 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_3 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_5_3 = and_gate(((a >> 5) & 0x01), ((b >> 3) & 0x01)); - h_u_wallace_rca8_and_4_4 = and_gate(((a >> 4) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_rca8_fa14_xor1 = (fa(((h_u_wallace_rca8_fa13_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_3 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_4 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa14_or0 = (fa(((h_u_wallace_rca8_fa13_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_3 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_4 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_5_4 = and_gate(((a >> 5) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_rca8_and_4_5 = and_gate(((a >> 4) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_rca8_fa15_xor1 = (fa(((h_u_wallace_rca8_fa14_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_4 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa15_or0 = (fa(((h_u_wallace_rca8_fa14_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_4 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_5_5 = and_gate(((a >> 5) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_rca8_and_4_6 = and_gate(((a >> 4) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_rca8_fa16_xor1 = (fa(((h_u_wallace_rca8_fa15_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_5 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa16_or0 = (fa(((h_u_wallace_rca8_fa15_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_5 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_5_6 = and_gate(((a >> 5) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_rca8_and_4_7 = and_gate(((a >> 4) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_rca8_fa17_xor1 = (fa(((h_u_wallace_rca8_fa16_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_6 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa17_or0 = (fa(((h_u_wallace_rca8_fa16_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_6 >> 0) & 0x01), ((h_u_wallace_rca8_and_4_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_0_4 = and_gate(((a >> 0) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_rca8_ha2_xor0 = (ha(((h_u_wallace_rca8_and_0_4 >> 0) & 0x01), ((h_u_wallace_rca8_fa1_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_ha2_and0 = (ha(((h_u_wallace_rca8_and_0_4 >> 0) & 0x01), ((h_u_wallace_rca8_fa1_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_1_4 = and_gate(((a >> 1) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_rca8_and_0_5 = and_gate(((a >> 0) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_rca8_fa18_xor1 = (fa(((h_u_wallace_rca8_ha2_and0 >> 0) & 0x01), ((h_u_wallace_rca8_and_1_4 >> 0) & 0x01), ((h_u_wallace_rca8_and_0_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa18_or0 = (fa(((h_u_wallace_rca8_ha2_and0 >> 0) & 0x01), ((h_u_wallace_rca8_and_1_4 >> 0) & 0x01), ((h_u_wallace_rca8_and_0_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_2_4 = and_gate(((a >> 2) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_rca8_and_1_5 = and_gate(((a >> 1) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_rca8_fa19_xor1 = (fa(((h_u_wallace_rca8_fa18_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_2_4 >> 0) & 0x01), ((h_u_wallace_rca8_and_1_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa19_or0 = (fa(((h_u_wallace_rca8_fa18_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_2_4 >> 0) & 0x01), ((h_u_wallace_rca8_and_1_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_3_4 = and_gate(((a >> 3) & 0x01), ((b >> 4) & 0x01)); - h_u_wallace_rca8_and_2_5 = and_gate(((a >> 2) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_rca8_fa20_xor1 = (fa(((h_u_wallace_rca8_fa19_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_4 >> 0) & 0x01), ((h_u_wallace_rca8_and_2_5 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa20_or0 = (fa(((h_u_wallace_rca8_fa19_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_4 >> 0) & 0x01), ((h_u_wallace_rca8_and_2_5 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_3_5 = and_gate(((a >> 3) & 0x01), ((b >> 5) & 0x01)); - h_u_wallace_rca8_and_2_6 = and_gate(((a >> 2) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_rca8_fa21_xor1 = (fa(((h_u_wallace_rca8_fa20_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_5 >> 0) & 0x01), ((h_u_wallace_rca8_and_2_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa21_or0 = (fa(((h_u_wallace_rca8_fa20_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_5 >> 0) & 0x01), ((h_u_wallace_rca8_and_2_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_3_6 = and_gate(((a >> 3) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_rca8_and_2_7 = and_gate(((a >> 2) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_rca8_fa22_xor1 = (fa(((h_u_wallace_rca8_fa21_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_6 >> 0) & 0x01), ((h_u_wallace_rca8_and_2_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa22_or0 = (fa(((h_u_wallace_rca8_fa21_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_6 >> 0) & 0x01), ((h_u_wallace_rca8_and_2_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_3_7 = and_gate(((a >> 3) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_rca8_fa23_xor1 = (fa(((h_u_wallace_rca8_fa22_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_7 >> 0) & 0x01), ((h_u_wallace_rca8_fa7_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa23_or0 = (fa(((h_u_wallace_rca8_fa22_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_3_7 >> 0) & 0x01), ((h_u_wallace_rca8_fa7_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_ha3_xor0 = (ha(((h_u_wallace_rca8_fa2_xor1 >> 0) & 0x01), ((h_u_wallace_rca8_fa11_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_ha3_and0 = (ha(((h_u_wallace_rca8_fa2_xor1 >> 0) & 0x01), ((h_u_wallace_rca8_fa11_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_0_6 = and_gate(((a >> 0) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_rca8_fa24_xor1 = (fa(((h_u_wallace_rca8_ha3_and0 >> 0) & 0x01), ((h_u_wallace_rca8_and_0_6 >> 0) & 0x01), ((h_u_wallace_rca8_fa3_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa24_or0 = (fa(((h_u_wallace_rca8_ha3_and0 >> 0) & 0x01), ((h_u_wallace_rca8_and_0_6 >> 0) & 0x01), ((h_u_wallace_rca8_fa3_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_1_6 = and_gate(((a >> 1) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_rca8_and_0_7 = and_gate(((a >> 0) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_rca8_fa25_xor1 = (fa(((h_u_wallace_rca8_fa24_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_1_6 >> 0) & 0x01), ((h_u_wallace_rca8_and_0_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa25_or0 = (fa(((h_u_wallace_rca8_fa24_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_1_6 >> 0) & 0x01), ((h_u_wallace_rca8_and_0_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_1_7 = and_gate(((a >> 1) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_rca8_fa26_xor1 = (fa(((h_u_wallace_rca8_fa25_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_1_7 >> 0) & 0x01), ((h_u_wallace_rca8_fa5_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa26_or0 = (fa(((h_u_wallace_rca8_fa25_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_1_7 >> 0) & 0x01), ((h_u_wallace_rca8_fa5_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_fa27_xor1 = (fa(((h_u_wallace_rca8_fa26_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa6_xor1 >> 0) & 0x01), ((h_u_wallace_rca8_fa15_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa27_or0 = (fa(((h_u_wallace_rca8_fa26_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa6_xor1 >> 0) & 0x01), ((h_u_wallace_rca8_fa15_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_ha4_xor0 = (ha(((h_u_wallace_rca8_fa12_xor1 >> 0) & 0x01), ((h_u_wallace_rca8_fa19_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_ha4_and0 = (ha(((h_u_wallace_rca8_fa12_xor1 >> 0) & 0x01), ((h_u_wallace_rca8_fa19_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_fa28_xor1 = (fa(((h_u_wallace_rca8_ha4_and0 >> 0) & 0x01), ((h_u_wallace_rca8_fa4_xor1 >> 0) & 0x01), ((h_u_wallace_rca8_fa13_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa28_or0 = (fa(((h_u_wallace_rca8_ha4_and0 >> 0) & 0x01), ((h_u_wallace_rca8_fa4_xor1 >> 0) & 0x01), ((h_u_wallace_rca8_fa13_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_fa29_xor1 = (fa(((h_u_wallace_rca8_fa28_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa14_xor1 >> 0) & 0x01), ((h_u_wallace_rca8_fa21_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa29_or0 = (fa(((h_u_wallace_rca8_fa28_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa14_xor1 >> 0) & 0x01), ((h_u_wallace_rca8_fa21_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_ha5_xor0 = (ha(((h_u_wallace_rca8_fa20_xor1 >> 0) & 0x01), ((h_u_wallace_rca8_fa25_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_ha5_and0 = (ha(((h_u_wallace_rca8_fa20_xor1 >> 0) & 0x01), ((h_u_wallace_rca8_fa25_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_ha6_xor0 = (ha(((h_u_wallace_rca8_ha5_and0 >> 0) & 0x01), ((h_u_wallace_rca8_fa26_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_ha6_and0 = (ha(((h_u_wallace_rca8_ha5_and0 >> 0) & 0x01), ((h_u_wallace_rca8_fa26_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_fa30_xor1 = (fa(((h_u_wallace_rca8_ha6_and0 >> 0) & 0x01), ((h_u_wallace_rca8_fa29_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa22_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa30_or0 = (fa(((h_u_wallace_rca8_ha6_and0 >> 0) & 0x01), ((h_u_wallace_rca8_fa29_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa22_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_fa31_xor1 = (fa(((h_u_wallace_rca8_fa30_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa27_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa16_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa31_or0 = (fa(((h_u_wallace_rca8_fa30_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa27_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa16_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_fa32_xor1 = (fa(((h_u_wallace_rca8_fa31_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa23_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa8_xor1 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa32_or0 = (fa(((h_u_wallace_rca8_fa31_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa23_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa8_xor1 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_5_7 = and_gate(((a >> 5) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_rca8_fa33_xor1 = (fa(((h_u_wallace_rca8_fa32_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa17_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_7 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa33_or0 = (fa(((h_u_wallace_rca8_fa32_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa17_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_5_7 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_7_6 = and_gate(((a >> 7) & 0x01), ((b >> 6) & 0x01)); - h_u_wallace_rca8_fa34_xor1 = (fa(((h_u_wallace_rca8_fa33_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa9_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_7_6 >> 0) & 0x01)) >> 0) & 0x01; - h_u_wallace_rca8_fa34_or0 = (fa(((h_u_wallace_rca8_fa33_or0 >> 0) & 0x01), ((h_u_wallace_rca8_fa9_or0 >> 0) & 0x01), ((h_u_wallace_rca8_and_7_6 >> 0) & 0x01)) >> 1) & 0x01; - h_u_wallace_rca8_and_0_0 = and_gate(((a >> 0) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_rca8_and_1_0 = and_gate(((a >> 1) & 0x01), ((b >> 0) & 0x01)); - h_u_wallace_rca8_and_0_2 = and_gate(((a >> 0) & 0x01), ((b >> 2) & 0x01)); - h_u_wallace_rca8_and_6_7 = and_gate(((a >> 6) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_rca8_and_0_1 = and_gate(((a >> 0) & 0x01), ((b >> 1) & 0x01)); - h_u_wallace_rca8_and_7_7 = and_gate(((a >> 7) & 0x01), ((b >> 7) & 0x01)); - h_u_wallace_rca8_u_rca14_a |= ((h_u_wallace_rca8_and_1_0 >> 0) & 0x01) << 0; - h_u_wallace_rca8_u_rca14_a |= ((h_u_wallace_rca8_and_0_2 >> 0) & 0x01) << 1; - h_u_wallace_rca8_u_rca14_a |= ((h_u_wallace_rca8_fa0_xor1 >> 0) & 0x01) << 2; - h_u_wallace_rca8_u_rca14_a |= ((h_u_wallace_rca8_fa10_xor1 >> 0) & 0x01) << 3; - h_u_wallace_rca8_u_rca14_a |= ((h_u_wallace_rca8_fa18_xor1 >> 0) & 0x01) << 4; - h_u_wallace_rca8_u_rca14_a |= ((h_u_wallace_rca8_fa24_xor1 >> 0) & 0x01) << 5; - h_u_wallace_rca8_u_rca14_a |= ((h_u_wallace_rca8_fa28_xor1 >> 0) & 0x01) << 6; - h_u_wallace_rca8_u_rca14_a |= ((h_u_wallace_rca8_fa29_xor1 >> 0) & 0x01) << 7; - h_u_wallace_rca8_u_rca14_a |= ((h_u_wallace_rca8_fa27_xor1 >> 0) & 0x01) << 8; - h_u_wallace_rca8_u_rca14_a |= ((h_u_wallace_rca8_fa23_xor1 >> 0) & 0x01) << 9; - h_u_wallace_rca8_u_rca14_a |= ((h_u_wallace_rca8_fa17_xor1 >> 0) & 0x01) << 10; - h_u_wallace_rca8_u_rca14_a |= ((h_u_wallace_rca8_fa9_xor1 >> 0) & 0x01) << 11; - h_u_wallace_rca8_u_rca14_a |= ((h_u_wallace_rca8_and_6_7 >> 0) & 0x01) << 12; - h_u_wallace_rca8_u_rca14_a |= ((h_u_wallace_rca8_fa34_or0 >> 0) & 0x01) << 13; - h_u_wallace_rca8_u_rca14_b |= ((h_u_wallace_rca8_and_0_1 >> 0) & 0x01) << 0; - h_u_wallace_rca8_u_rca14_b |= ((h_u_wallace_rca8_ha0_xor0 >> 0) & 0x01) << 1; - h_u_wallace_rca8_u_rca14_b |= ((h_u_wallace_rca8_ha1_xor0 >> 0) & 0x01) << 2; - h_u_wallace_rca8_u_rca14_b |= ((h_u_wallace_rca8_ha2_xor0 >> 0) & 0x01) << 3; - h_u_wallace_rca8_u_rca14_b |= ((h_u_wallace_rca8_ha3_xor0 >> 0) & 0x01) << 4; - h_u_wallace_rca8_u_rca14_b |= ((h_u_wallace_rca8_ha4_xor0 >> 0) & 0x01) << 5; - h_u_wallace_rca8_u_rca14_b |= ((h_u_wallace_rca8_ha5_xor0 >> 0) & 0x01) << 6; - h_u_wallace_rca8_u_rca14_b |= ((h_u_wallace_rca8_ha6_xor0 >> 0) & 0x01) << 7; - h_u_wallace_rca8_u_rca14_b |= ((h_u_wallace_rca8_fa30_xor1 >> 0) & 0x01) << 8; - h_u_wallace_rca8_u_rca14_b |= ((h_u_wallace_rca8_fa31_xor1 >> 0) & 0x01) << 9; - h_u_wallace_rca8_u_rca14_b |= ((h_u_wallace_rca8_fa32_xor1 >> 0) & 0x01) << 10; - h_u_wallace_rca8_u_rca14_b |= ((h_u_wallace_rca8_fa33_xor1 >> 0) & 0x01) << 11; - h_u_wallace_rca8_u_rca14_b |= ((h_u_wallace_rca8_fa34_xor1 >> 0) & 0x01) << 12; - h_u_wallace_rca8_u_rca14_b |= ((h_u_wallace_rca8_and_7_7 >> 0) & 0x01) << 13; - h_u_wallace_rca8_u_rca14_out = u_rca14(h_u_wallace_rca8_u_rca14_a, h_u_wallace_rca8_u_rca14_b); - - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_and_0_0 >> 0) & 0x01) << 0; - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_u_rca14_out >> 0) & 0x01) << 1; - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_u_rca14_out >> 1) & 0x01) << 2; - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_u_rca14_out >> 2) & 0x01) << 3; - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_u_rca14_out >> 3) & 0x01) << 4; - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_u_rca14_out >> 4) & 0x01) << 5; - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_u_rca14_out >> 5) & 0x01) << 6; - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_u_rca14_out >> 6) & 0x01) << 7; - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_u_rca14_out >> 7) & 0x01) << 8; - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_u_rca14_out >> 8) & 0x01) << 9; - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_u_rca14_out >> 9) & 0x01) << 10; - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_u_rca14_out >> 10) & 0x01) << 11; - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_u_rca14_out >> 11) & 0x01) << 12; - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_u_rca14_out >> 12) & 0x01) << 13; - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_u_rca14_out >> 13) & 0x01) << 14; - h_u_wallace_rca8_out |= ((h_u_wallace_rca8_u_rca14_out >> 14) & 0x01) << 15; - return h_u_wallace_rca8_out; -} - -#include -int main(){ - for (int i = 0; i < 256; i++){ - for (int j = 0; j < 256; j++){ - assert((i * j) == h_u_wallace_rca8(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/logic_gates/and_gate.c b/c_circuits_simulation_tests/c_circuits/logic_gates/and_gate.c deleted file mode 100644 index 7a5d28f..0000000 --- a/c_circuits_simulation_tests/c_circuits/logic_gates/and_gate.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include - -uint8_t and_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) & ((b >> 0) & 0x01); -} - -#include -int main(){ - for (int i = 0; i < 2; i++){ - for (int j = 0; j < 2; j++){ - assert((i & j) == and_gate(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/logic_gates/nand_gate.c b/c_circuits_simulation_tests/c_circuits/logic_gates/nand_gate.c deleted file mode 100644 index 2a62b03..0000000 --- a/c_circuits_simulation_tests/c_circuits/logic_gates/nand_gate.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include - -uint8_t nand_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) & ((b >> 0) & 0x01)) & 0x01; -} - -#include -int main(){ - for (int i = 0; i < 2; i++){ - for (int j = 0; j < 2; j++){ - assert(!(i & j) == nand_gate(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/logic_gates/nor_gate.c b/c_circuits_simulation_tests/c_circuits/logic_gates/nor_gate.c deleted file mode 100644 index 7e4da05..0000000 --- a/c_circuits_simulation_tests/c_circuits/logic_gates/nor_gate.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include - -uint8_t nor_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) | ((b >> 0) & 0x01)) & 0x01; -} - -#include -int main(){ - for (int i = 0; i < 2; i++){ - for (int j = 0; j < 2; j++){ - assert(!(i | j) == nor_gate(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/logic_gates/not_gate.c b/c_circuits_simulation_tests/c_circuits/logic_gates/not_gate.c deleted file mode 100644 index 2d24794..0000000 --- a/c_circuits_simulation_tests/c_circuits/logic_gates/not_gate.c +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include - -uint8_t not_gate(uint8_t a){ - return ~(((a >> 0) & 0x01)) & 0x01; -} - -#include -int main(){ - for (int i = 0; i < 2; i++){ - assert(!(i) == not_gate(i)); - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/logic_gates/or_gate.c b/c_circuits_simulation_tests/c_circuits/logic_gates/or_gate.c deleted file mode 100644 index 4c4e3d0..0000000 --- a/c_circuits_simulation_tests/c_circuits/logic_gates/or_gate.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include - -uint8_t or_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) | ((b >> 0) & 0x01); -} - -#include -int main(){ - for (int i = 0; i < 2; i++){ - for (int j = 0; j < 2; j++){ - assert((i | j) == or_gate(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/logic_gates/xnor_gate.c b/c_circuits_simulation_tests/c_circuits/logic_gates/xnor_gate.c deleted file mode 100644 index 4999723..0000000 --- a/c_circuits_simulation_tests/c_circuits/logic_gates/xnor_gate.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include - -uint8_t xnor_gate(uint8_t a, uint8_t b){ - return ~(((a >> 0) & 0x01) ^ ((b >> 0) & 0x01)) & 0x01; -} - -#include -int main(){ - for (int i = 0; i < 2; i++){ - for (int j = 0; j < 2; j++){ - assert(!(i ^ j) == xnor_gate(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_circuits/logic_gates/xor_gate.c b/c_circuits_simulation_tests/c_circuits/logic_gates/xor_gate.c deleted file mode 100644 index 4d22615..0000000 --- a/c_circuits_simulation_tests/c_circuits/logic_gates/xor_gate.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include - -uint8_t xor_gate(uint8_t a, uint8_t b){ - return ((a >> 0) & 0x01) ^ ((b >> 0) & 0x01); -} - -#include -int main(){ - for (int i = 0; i < 2; i++){ - for (int j = 0; j < 2; j++){ - assert((i ^ j) == xor_gate(i,j)); - } - } - return 0; -} \ No newline at end of file diff --git a/c_circuits_simulation_tests/c_tests.sh b/c_circuits_simulation_tests/c_tests.sh deleted file mode 100644 index 05a86d3..0000000 --- a/c_circuits_simulation_tests/c_tests.sh +++ /dev/null @@ -1,1719 +0,0 @@ -#!/bin/bash - -# Colors -# set thanks to: https://linux.101hacks.com/ps1-examples/prompt-color-using-tput/ -REDCOLOR="$(tput setaf 1)" -GREENCOLOR="$(tput setaf 2)" -BLUECOLOR="$(tput setaf 4)" -NOCOLOR="$(tput sgr0)" - -# Compiler options -C=g++ -CFLAGS="-std=c++11 -pedantic -g" -LG_PATH="c_circuits/logic_gates/" -FLAT_ADD_PATH="c_circuits/flat/adders/" -FLAT_MUL_PATH="c_circuits/flat/multipliers/" -FLAT_DIV_PATH="c_circuits/flat/dividers/" -HIER_ADD_PATH="c_circuits/hierarchical/adders/" -HIER_MUL_PATH="c_circuits/hierarchical/multipliers/" -HIER_DIV_PATH="c_circuits/hierarchical/dividers/" - -## FLATTENED C CODE CIRCUITS ## -# Logic gates -AND_G="./and_gate 2>/dev/null" -NAND_G="./nand_gate 2>/dev/null" -OR_G="./or_gate 2>/dev/null" -NOR_G="./nor_gate 2>/dev/null" -XOR_G="./xor_gate 2>/dev/null" -XNOR_G="./xnor_gate 2>/dev/null" -NOT_G="./not_gate 2>/dev/null" - -# Adders # -# 1-bit -F_HA="./f_ha 2>/dev/null" -F_FA="./f_fa 2>/dev/null" - -H_HA="./h_ha 2>/dev/null" -H_FA="./h_fa 2>/dev/null" - -# Unsigned -F_U_RCA4="./f_u_rca4 2>/dev/null" -F_U_RCA8="./f_u_rca8 2>/dev/null" -F_U_PG_RCA4="./f_u_pg_rca4 2>/dev/null" -F_U_PG_RCA8="./f_u_pg_rca8 2>/dev/null" -F_U_CLA4="./f_u_cla4 2>/dev/null" -F_U_CLA8="./f_u_cla8 2>/dev/null" -F_U_CSKA4="./f_u_cska4 2>/dev/null" -F_U_CSKA8="./f_u_cska8 2>/dev/null" - -H_U_RCA4="./h_u_rca4 2>/dev/null" -H_U_RCA8="./h_u_rca8 2>/dev/null" -H_U_PG_RCA4="./h_u_pg_rca4 2>/dev/null" -H_U_PG_RCA8="./h_u_pg_rca8 2>/dev/null" -H_U_CLA4="./h_u_cla4 2>/dev/null" -H_U_CLA8="./h_u_cla8 2>/dev/null" -H_U_CSKA4="./h_u_cska4 2>/dev/null" -H_U_CSKA8="./h_u_cska8 2>/dev/null" - -# Signed -F_S_RCA4="./f_s_rca4 2>/dev/null" -F_S_RCA8="./f_s_rca8 2>/dev/null" -F_S_PG_RCA4="./f_s_pg_rca4 2>/dev/null" -F_S_PG_RCA8="./f_s_pg_rca8 2>/dev/null" -F_S_CLA4="./f_s_cla4 2>/dev/null" -F_S_CLA8="./f_s_cla8 2>/dev/null" -F_S_CSKA4="./f_s_cska4 2>/dev/null" -F_S_CSKA8="./f_s_cska8 2>/dev/null" - -H_S_RCA4="./h_s_rca4 2>/dev/null" -H_S_RCA8="./h_s_rca8 2>/dev/null" -H_S_PG_RCA4="./h_s_pg_rca4 2>/dev/null" -H_S_PG_RCA8="./h_s_pg_rca8 2>/dev/null" -H_S_CLA4="./h_s_cla4 2>/dev/null" -H_S_CLA8="./h_s_cla8 2>/dev/null" -H_S_CSKA4="./h_s_cska4 2>/dev/null" -H_S_CSKA8="./h_s_cska8 2>/dev/null" - -# Multipliers # -# Unsigned -F_U_ARRMUL4="./f_u_arrmul4 2>/dev/null" -F_U_ARRMUL8="./f_u_arrmul8 2>/dev/null" - -F_U_DADDA_RCA4="./f_u_dadda_rca4 2>/dev/null" -F_U_DADDA_RCA8="./f_u_dadda_rca8 2>/dev/null" -F_U_DADDA_PG_RCA4="./f_u_dadda_pg_rca4 2>/dev/null" -F_U_DADDA_PG_RCA8="./f_u_dadda_pg_rca8 2>/dev/null" -F_U_DADDA_CSKA4="./f_u_dadda_cska4 2>/dev/null" -F_U_DADDA_CSKA8="./f_u_dadda_cska8 2>/dev/null" -F_U_DADDA_CLA4="./f_u_dadda_cla4 2>/dev/null" -F_U_DADDA_CLA8="./f_u_dadda_cla8 2>/dev/null" - -F_U_WALLACE_RCA4="./f_u_wallace_rca4 2>/dev/null" -F_U_WALLACE_RCA8="./f_u_wallace_rca8 2>/dev/null" -F_U_WALLACE_PG_RCA4="./f_u_wallace_pg_rca4 2>/dev/null" -F_U_WALLACE_PG_RCA8="./f_u_wallace_pg_rca8 2>/dev/null" -F_U_WALLACE_CSKA4="./f_u_wallace_cska4 2>/dev/null" -F_U_WALLACE_CSKA8="./f_u_wallace_cska8 2>/dev/null" -F_U_WALLACE_CLA4="./f_u_wallace_cla4 2>/dev/null" -F_U_WALLACE_CLA8="./f_u_wallace_cla8 2>/dev/null" - - -H_U_ARRMUL4="./h_u_arrmul4 2>/dev/null" -H_U_ARRMUL8="./h_u_arrmul8 2>/dev/null" - -H_U_DADDA_RCA4="./h_u_dadda_rca4 2>/dev/null" -H_U_DADDA_RCA8="./h_u_dadda_rca8 2>/dev/null" -H_U_DADDA_PG_RCA4="./h_u_dadda_pg_rca4 2>/dev/null" -H_U_DADDA_PG_RCA8="./h_u_dadda_pg_rca8 2>/dev/null" -H_U_DADDA_CSKA4="./h_u_dadda_cska4 2>/dev/null" -H_U_DADDA_CSKA8="./h_u_dadda_cska8 2>/dev/null" -H_U_DADDA_CLA4="./h_u_dadda_cla4 2>/dev/null" -H_U_DADDA_CLA8="./h_u_dadda_cla8 2>/dev/null" - -H_U_WALLACE_RCA4="./h_u_wallace_rca4 2>/dev/null" -H_U_WALLACE_RCA8="./h_u_wallace_rca8 2>/dev/null" -H_U_WALLACE_PG_RCA4="./h_u_wallace_pg_rca4 2>/dev/null" -H_U_WALLACE_PG_RCA8="./h_u_wallace_pg_rca8 2>/dev/null" -H_U_WALLACE_CSKA4="./h_u_wallace_cska4 2>/dev/null" -H_U_WALLACE_CSKA8="./h_u_wallace_cska8 2>/dev/null" -H_U_WALLACE_CLA4="./h_u_wallace_cla4 2>/dev/null" -H_U_WALLACE_CLA8="./h_u_wallace_cla8 2>/dev/null" - - -# Signed -F_S_ARRMUL4="./f_s_arrmul4 2>/dev/null" -F_S_ARRMUL8="./f_s_arrmul8 2>/dev/null" - -F_S_DADDA_RCA4="./f_s_dadda_rca4 2>/dev/null" -F_S_DADDA_RCA8="./f_s_dadda_rca8 2>/dev/null" -F_S_DADDA_PG_RCA4="./f_s_dadda_pg_rca4 2>/dev/null" -F_S_DADDA_PG_RCA8="./f_s_dadda_pg_rca8 2>/dev/null" -F_S_DADDA_CSKA4="./f_s_dadda_cska4 2>/dev/null" -F_S_DADDA_CSKA8="./f_s_dadda_cska8 2>/dev/null" -F_S_DADDA_CLA4="./f_s_dadda_cla4 2>/dev/null" -F_S_DADDA_CLA8="./f_s_dadda_cla8 2>/dev/null" - -F_S_WALLACE_RCA4="./f_s_wallace_rca4 2>/dev/null" -F_S_WALLACE_RCA8="./f_s_wallace_rca8 2>/dev/null" -F_S_WALLACE_PG_RCA4="./f_s_wallace_pg_rca4 2>/dev/null" -F_S_WALLACE_PG_RCA8="./f_s_wallace_pg_rca8 2>/dev/null" -F_S_WALLACE_CSKA4="./f_s_wallace_cska4 2>/dev/null" -F_S_WALLACE_CSKA8="./f_s_wallace_cska8 2>/dev/null" -F_S_WALLACE_CLA4="./f_s_wallace_cla4 2>/dev/null" -F_S_WALLACE_CLA8="./f_s_wallace_cla8 2>/dev/null" - - -H_S_ARRMUL4="./h_s_arrmul4 2>/dev/null" -H_S_ARRMUL8="./h_s_arrmul8 2>/dev/null" - -H_S_DADDA_RCA4="./h_s_dadda_rca4 2>/dev/null" -H_S_DADDA_RCA8="./h_s_dadda_rca8 2>/dev/null" -H_S_DADDA_PG_RCA4="./h_s_dadda_pg_rca4 2>/dev/null" -H_S_DADDA_PG_RCA8="./h_s_dadda_pg_rca8 2>/dev/null" -H_S_DADDA_CSKA4="./h_s_dadda_cska4 2>/dev/null" -H_S_DADDA_CSKA8="./h_s_dadda_cska8 2>/dev/null" -H_S_DADDA_CLA4="./h_s_dadda_cla4 2>/dev/null" -H_S_DADDA_CLA8="./h_s_dadda_cla8 2>/dev/null" - -H_S_WALLACE_RCA4="./h_s_wallace_rca4 2>/dev/null" -H_S_WALLACE_RCA8="./h_s_wallace_rca8 2>/dev/null" -H_S_WALLACE_PG_RCA4="./h_s_wallace_pg_rca4 2>/dev/null" -H_S_WALLACE_PG_RCA8="./h_s_wallace_pg_rca8 2>/dev/null" -H_S_WALLACE_CSKA4="./h_s_wallace_cska4 2>/dev/null" -H_S_WALLACE_CSKA8="./h_s_wallace_cska8 2>/dev/null" -H_S_WALLACE_CLA4="./h_s_wallace_cla4 2>/dev/null" -H_S_WALLACE_CLA8="./h_s_wallace_cla8 2>/dev/null" - -# Dividers # -F_ARRDIV4="./f_arrdiv4 2>/dev/null" -F_ARRDIV8="./f_arrdiv8 2>/dev/null" - -H_ARRDIV4="./h_arrdiv4 2>/dev/null" -H_ARRDIV8="./h_arrdiv8 2>/dev/null" - - -### TESTING ### -echo "${BLUECOLOR}TESTING C CODE CIRCUITS GENERATED USING arithmetic_circuits_generator.py" -echo "––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––" -TEST_NUM=0 - -echo "" -echo "${GREENCOLOR}–––––––––––––––" -echo " FLAT CIRCUITS" -echo "–––––––––––––––" -echo "" - -################# -## LOGIC GATES ## -################# -echo "${BLUECOLOR}LOGIC GATES TESTS${NOCOLOR}" - -# AND -${C} ${CFLAGS} ${LG_PATH}and_gate.c -o and_gate -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: and_gate.c" -eval "$AND_G" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm and_gate - -# NAND -${C} ${CFLAGS} ${LG_PATH}nand_gate.c -o nand_gate -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: nand_gate.c" -eval "$NAND_G" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm nand_gate - -# OR -${C} ${CFLAGS} ${LG_PATH}or_gate.c -o or_gate -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: or_gate.c" -eval "$OR_G" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm or_gate - -# NOR -${C} ${CFLAGS} ${LG_PATH}nor_gate.c -o nor_gate -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: nor_gate.c" -eval "$NOR_G" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm nor_gate - -# XOR -${C} ${CFLAGS} ${LG_PATH}xor_gate.c -o xor_gate -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: xor_gate.c" -eval "$XOR_G" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm xor_gate - -# XNOR -${C} ${CFLAGS} ${LG_PATH}xnor_gate.c -o xnor_gate -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: xnor_gate.c" -eval "$XNOR_G" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm xnor_gate - -# NOT -${C} ${CFLAGS} ${LG_PATH}not_gate.c -o not_gate -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: not_gate.c" -eval "$NOT_G" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm not_gate - -##################### -## UNSIGNED ADDERS ## -##################### -echo "" -echo "${BLUECOLOR}UNSIGNED ADDERS TESTS${NOCOLOR}" - -## FLAT 1-BIT ADDERS ## -####################### - -# HALF ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_ha.c -o f_ha -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_ha.c" -eval "$F_HA" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_ha - -# FULL ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_fa.c -o f_fa -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_fa.c" -eval "$F_FA" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_fa - -## FLAT UNSIGNED ADDERS ## -########################## - -# 4-BIT RIPPLE CARRY ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_u_rca4.c -o f_u_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_rca4.c" -eval "$F_U_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_rca4 - -# 8-BIT RIPPLE CARRY ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_u_rca8.c -o f_u_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_rca8.c" -eval "$F_U_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_rca8 - -# 4-BIT PG RIPPLE CARRY ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_u_pg_rca4.c -o f_u_pg_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_pg_rca4.c" -eval "$F_U_PG_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_pg_rca4 - -# 8-BIT PG RIPPLE CARRY ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_u_pg_rca8.c -o f_u_pg_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_pg_rca8.c" -eval "$F_U_PG_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_pg_rca8 - -# 4-BIT CARRY-LOOKAHEAD ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_u_cla4.c -o f_u_cla4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_cla4.c" -eval "$F_U_CLA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_cla4 - -# 8-BIT CARRY-LOOKAHEAD ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_u_cla8.c -o f_u_cla8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_cla8.c" -eval "$F_U_CLA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_cla8 - -# 4-BIT CARRY SKIP ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_u_cska4.c -o f_u_cska4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_cska4.c" -eval "$F_U_CSKA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_cska4 - -# 8-BIT CARRY SKIP ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_u_cska8.c -o f_u_cska8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_cska8.c" -eval "$F_U_CSKA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_cska8 - -echo "" -echo "${BLUECOLOR}SIGNED ADDERS TESTS${NOCOLOR}" - -## FLAT SIGNED ADDERS ## -######################## - -# 4-BIT RIPPLE CARRY ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_s_rca4.c -o f_s_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_rca4.c" -eval "$F_S_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_rca4 - -# 8-BIT RIPPLE CARRY ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_s_rca8.c -o f_s_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_rca8.c" -eval "$F_S_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_rca8 - -# 4-BIT PG RIPPLE CARRY ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_s_pg_rca4.c -o f_s_pg_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_pg_rca4.c" -eval "$F_S_PG_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_pg_rca4 - -# 8-BIT PG RIPPLE CARRY ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_s_pg_rca8.c -o f_s_pg_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_pg_rca8.c" -eval "$F_S_PG_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_pg_rca8 - -# 4-BIT CARRY-LOOKAHEAD ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_s_cla4.c -o f_s_cla4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_cla4.c" -eval "$F_S_CLA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_cla4 - -# 8-BIT CARRY-LOOKAHEAD ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_s_cla8.c -o f_s_cla8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_cla8.c" -eval "$F_S_CLA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_cla8 - -# 4-BIT CARRY SKIP ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_s_cska4.c -o f_s_cska4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_cska4.c" -eval "$F_S_CSKA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_cska4 - -# 8-BIT CARRY SKIP ADDER -${C} ${CFLAGS} ${FLAT_ADD_PATH}f_s_cska8.c -o f_s_cska8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_cska8.c" -eval "$F_S_CSKA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_cska8 - -########################## -## UNSIGNED MULTIPLIERS ## -########################## -echo "" -echo "${BLUECOLOR}UNSIGNED MULTIPLIERS TESTS${NOCOLOR}" - -## FLAT UNSIGNED MULTIPLIERS ## -############################### - -# 4-BIT ARRAY MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_arrmul4.c -o f_u_arrmul4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_arrmul4.c" -eval "$F_U_ARRMUL4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_arrmul4 - -# 8-BIT ARRAY MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_arrmul8.c -o f_u_arrmul8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_arrmul8.c" -eval "$F_U_ARRMUL8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_arrmul8 - -# 4-BIT DADDA-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_dadda_rca4.c -o f_u_dadda_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_dadda_rca4.c" -eval "$F_U_DADDA_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_dadda_rca4 - -# 8-BIT DADDA-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_dadda_rca8.c -o f_u_dadda_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_dadda_rca8.c" -eval "$F_U_DADDA_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_dadda_rca8 - -# 4-BIT DADDA-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_dadda_pg_rca4.c -o f_u_dadda_pg_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_dadda_pg_rca4.c" -eval "$F_U_DADDA_PG_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_dadda_pg_rca4 - -# 8-BIT DADDA-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_dadda_pg_rca8.c -o f_u_dadda_pg_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_dadda_pg_rca8.c" -eval "$F_U_DADDA_PG_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_dadda_pg_rca8 - -# 4-BIT DADDA-CLA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_dadda_cla4.c -o f_u_dadda_cla4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_dadda_cla4.c" -eval "$F_U_DADDA_CLA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_dadda_cla4 - -# 8-BIT DADDA-CLA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_dadda_cla8.c -o f_u_dadda_cla8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_dadda_cla8.c" -eval "$F_U_DADDA_CLA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_dadda_cla8 - -# 4-BIT DADDA-CSKA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_dadda_cska4.c -o f_u_dadda_cska4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_dadda_cska4.c" -eval "$F_U_DADDA_CSKA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_dadda_cska4 - -# 8-BIT DADDA-CSKA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_dadda_cska8.c -o f_u_dadda_cska8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_dadda_cska8.c" -eval "$F_U_DADDA_CSKA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_dadda_cska8 - -# 4-BIT WALLACE-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_wallace_rca4.c -o f_u_wallace_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_wallace_rca4.c" -eval "$F_U_WALLACE_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_wallace_rca4 - -# 8-BIT WALLACE-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_wallace_rca8.c -o f_u_wallace_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_wallace_rca8.c" -eval "$F_U_WALLACE_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_wallace_rca8 - -# 4-BIT WALLACE-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_wallace_pg_rca4.c -o f_u_wallace_pg_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_wallace_pg_rca4.c" -eval "$F_U_WALLACE_PG_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_wallace_pg_rca4 - -# 8-BIT WALLACE-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_wallace_pg_rca8.c -o f_u_wallace_pg_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_wallace_pg_rca8.c" -eval "$F_U_WALLACE_PG_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_wallace_pg_rca8 - -# 4-BIT WALLACE-CLA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_wallace_cla4.c -o f_u_wallace_cla4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_wallace_cla4.c" -eval "$F_U_WALLACE_CLA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_wallace_cla4 - -# 8-BIT WALLACE-CLA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_wallace_cla8.c -o f_u_wallace_cla8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_wallace_cla8.c" -eval "$F_U_WALLACE_CLA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_wallace_cla8 - -# 4-BIT WALLACE-CSKA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_wallace_cska4.c -o f_u_wallace_cska4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_wallace_cska4.c" -eval "$F_U_WALLACE_CSKA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_wallace_cska4 - -# 8-BIT WALLACE-CSKA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_u_wallace_cska8.c -o f_u_wallace_cska8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_u_wallace_cska8.c" -eval "$F_U_WALLACE_CSKA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_u_wallace_cska8 - -######################## -## SIGNED MULTIPLIERS ## -######################## -echo "" -echo "${BLUECOLOR}SIGNED MULTIPLIERS TESTS${NOCOLOR}" - -## FLAT SIGNED MULTIPLIERS ## -############################### - -# 4-BIT ARRAY MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_arrmul4.c -o f_s_arrmul4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_arrmul4.c" -eval "$F_S_ARRMUL4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_arrmul4 - -# 8-BIT ARRAY MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_arrmul8.c -o f_s_arrmul8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_arrmul8.c" -eval "$F_S_ARRMUL8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_arrmul8 - -# 4-BIT DADDA-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_dadda_rca4.c -o f_s_dadda_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_dadda_rca4.c" -eval "$F_S_DADDA_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_dadda_rca4 - -# 8-BIT DADDA-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_dadda_rca8.c -o f_s_dadda_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_dadda_rca8.c" -eval "$F_S_DADDA_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_dadda_rca8 - -# 4-BIT DADDA-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_dadda_pg_rca4.c -o f_s_dadda_pg_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_dadda_pg_rca4.c" -eval "$F_S_DADDA_PG_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_dadda_pg_rca4 - -# 8-BIT DADDA-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_dadda_pg_rca8.c -o f_s_dadda_pg_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_dadda_pg_rca8.c" -eval "$F_S_DADDA_PG_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_dadda_pg_rca8 - -# 4-BIT DADDA-CLA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_dadda_cla4.c -o f_s_dadda_cla4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_dadda_cla4.c" -eval "$F_S_DADDA_CLA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_dadda_cla4 - -# 8-BIT DADDA-CLA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_dadda_cla8.c -o f_s_dadda_cla8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_dadda_cla8.c" -eval "$F_S_DADDA_CLA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_dadda_cla8 - -# 4-BIT DADDA-CSKA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_dadda_cska4.c -o f_s_dadda_cska4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_dadda_cska4.c" -eval "$F_S_DADDA_CSKA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_dadda_cska4 - -# 8-BIT DADDA-CSKA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_dadda_cska8.c -o f_s_dadda_cska8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_dadda_cska8.c" -eval "$F_S_DADDA_CSKA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_dadda_cska8 - -# 4-BIT WALLACE-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_wallace_rca4.c -o f_s_wallace_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_wallace_rca4.c" -eval "$F_S_WALLACE_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_wallace_rca4 - -# 8-BIT WALLACE-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_wallace_rca8.c -o f_s_wallace_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_wallace_rca8.c" -eval "$F_S_WALLACE_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_wallace_rca8 - -# 4-BIT WALLACE-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_wallace_pg_rca4.c -o f_s_wallace_pg_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_wallace_pg_rca4.c" -eval "$F_S_WALLACE_PG_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_wallace_pg_rca4 - -# 8-BIT WALLACE-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_wallace_pg_rca8.c -o f_s_wallace_pg_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_wallace_pg_rca8.c" -eval "$F_S_WALLACE_PG_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_wallace_pg_rca8 - -# 4-BIT WALLACE-CLA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_wallace_cla4.c -o f_s_wallace_cla4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_wallace_cla4.c" -eval "$F_S_WALLACE_CLA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_wallace_cla4 - -# 8-BIT WALLACE-CLA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_wallace_cla8.c -o f_s_wallace_cla8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_wallace_cla8.c" -eval "$F_S_WALLACE_CLA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_wallace_cla8 - -# 4-BIT WALLACE-CSKA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_wallace_cska4.c -o f_s_wallace_cska4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_wallace_cska4.c" -eval "$F_S_WALLACE_CSKA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_wallace_cska4 - -# 8-BIT WALLACE-CSKA MULTIPLIER -${C} ${CFLAGS} ${FLAT_MUL_PATH}f_s_wallace_cska8.c -o f_s_wallace_cska8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_s_wallace_cska8.c" -eval "$F_S_WALLACE_CSKA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_s_wallace_cska8 - - -####################### -## UNSIGNED DIVIDERS ## -####################### -echo "" -echo "${BLUECOLOR}UNSIGNED DIVIDERS TESTS${NOCOLOR}" - -## FLAT UNSIGNED DIVIDERS ## -############################ - -# 4-BIT ARRAY DIVIDER -${C} ${CFLAGS} ${FLAT_DIV_PATH}f_arrdiv4.c -o f_arrdiv4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_arrdiv4.c" -eval "$F_ARRDIV4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_arrdiv4 - -# 8-BIT ARRAY DIVIDER -${C} ${CFLAGS} ${FLAT_DIV_PATH}f_arrdiv8.c -o f_arrdiv8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: f_arrdiv8.c" -eval "$F_ARRDIV8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm f_arrdiv8 - - -echo "" -echo "${GREENCOLOR}–––––––––––––––––––––––" -echo " HIERARCHICAL CIRCUITS" -echo "–––––––––––––––––––––––" -echo "" - - -##################### -## UNSIGNED ADDERS ## -##################### -echo "" -echo "${BLUECOLOR}UNSIGNED ADDERS TESTS${NOCOLOR}" - -## HIERARCHICAL 1-BIT ADDERS ## -############################### - -# HALF ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_ha.c -o h_ha -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_ha.c" -eval "$H_HA" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_ha - -# FULL ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_fa.c -o h_fa -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_fa.c" -eval "$H_FA" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_fa - -## HIERARCHICAL UNSIGNED ADDERS ## -################################## - -# 4-BIT RIPPLE CARRY ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_u_rca4.c -o h_u_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_rca4.c" -eval "$H_U_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_rca4 - -# 8-BIT RIPPLE CARRY ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_u_rca8.c -o h_u_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_rca8.c" -eval "$H_U_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_rca8 - -# 4-BIT PG RIPPLE CARRY ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_u_pg_rca4.c -o h_u_pg_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_pg_rca4.c" -eval "$H_U_PG_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_pg_rca4 - -# 8-BIT PG RIPPLE CARRY ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_u_pg_rca8.c -o h_u_pg_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_pg_rca8.c" -eval "$H_U_PG_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_pg_rca8 - -# 4-BIT CARRY-LOOKAHEAD ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_u_cla4.c -o h_u_cla4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_cla4.c" -eval "$H_U_CLA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_cla4 - -# 8-BIT CARRY-LOOKAHEAD ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_u_cla8.c -o h_u_cla8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_cla8.c" -eval "$H_U_CLA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_cla8 - -# 4-BIT CARRY SKIP ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_u_cska4.c -o h_u_cska4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_cska4.c" -eval "$H_U_CSKA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_cska4 - -# 8-BIT CARRY SKIP ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_u_cska8.c -o h_u_cska8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_cska8.c" -eval "$H_U_CSKA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_cska8 - -################### -## SIGNED ADDERS ## -################### -echo "" -echo "${BLUECOLOR}SIGNED ADDERS TESTS${NOCOLOR}" - -## HIERARCHICAL SIGNED ADDERS ## -################################ - -# 4-BIT RIPPLE CARRY ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_s_rca4.c -o h_s_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_rca4.c" -eval "$H_S_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_rca4 - -# 8-BIT RIPPLE CARRY ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_s_rca8.c -o h_s_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_rca8.c" -eval "$H_S_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_rca8 - -# 4-BIT PG RIPPLE CARRY ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_s_pg_rca4.c -o h_s_pg_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_pg_rca4.c" -eval "$H_S_PG_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_pg_rca4 - -# 8-BIT PG RIPPLE CARRY ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_s_pg_rca8.c -o h_s_pg_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_pg_rca8.c" -eval "$H_S_PG_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_pg_rca8 - -# 4-BIT CARRY-LOOKAHEAD ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_s_cla4.c -o h_s_cla4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_cla4.c" -eval "$H_S_CLA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_cla4 - -# 8-BIT CARRY-LOOKAHEAD ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_s_cla8.c -o h_s_cla8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_cla8.c" -eval "$H_S_CLA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_cla8 - -# 4-BIT CARRY SKIP ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_s_cska4.c -o h_s_cska4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_cska4.c" -eval "$H_S_CSKA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_cska4 - -# 8-BIT CARRY SKIP ADDER -${C} ${CFLAGS} ${HIER_ADD_PATH}h_s_cska8.c -o h_s_cska8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_cska8.c" -eval "$H_S_CSKA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_cska8 - -########################## -## UNSIGNED MULTIPLIERS ## -########################## -echo "" -echo "${BLUECOLOR}UNSIGNED MULTIPLIERS TESTS${NOCOLOR}" - -## HIERARCHICAL UNSIGNED MULTIPLIERS ## -####################################### - -# 4-BIT ARRAY MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_arrmul4.c -o h_u_arrmul4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_arrmul4.c" -eval "$H_U_ARRMUL4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_arrmul4 - -# 8-BIT ARRAY MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_arrmul8.c -o h_u_arrmul8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_arrmul8.c" -eval "$H_U_ARRMUL8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_arrmul8 - -# 4-BIT DADDA-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_dadda_rca4.c -o h_u_dadda_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_dadda_rca4.c" -eval "$H_U_DADDA_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_dadda_rca4 - -# 8-BIT DADDA-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_dadda_rca8.c -o h_u_dadda_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_dadda_rca8.c" -eval "$H_U_DADDA_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_dadda_rca8 - -# 4-BIT DADDA-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_dadda_pg_rca4.c -o h_u_dadda_pg_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_dadda_pg_rca4.c" -eval "$H_U_DADDA_PG_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_dadda_pg_rca4 - -# 8-BIT DADDA-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_dadda_pg_rca8.c -o h_u_dadda_pg_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_dadda_pg_rca8.c" -eval "$H_U_DADDA_PG_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_dadda_pg_rca8 - -# 4-BIT DADDA-CLA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_dadda_cla4.c -o h_u_dadda_cla4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_dadda_cla4.c" -eval "$H_U_DADDA_CLA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_dadda_cla4 - -# 8-BIT DADDA-CLA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_dadda_cla8.c -o h_u_dadda_cla8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_dadda_cla8.c" -eval "$H_U_DADDA_CLA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_dadda_cla8 - -# 4-BIT DADDA-CSKA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_dadda_cska4.c -o h_u_dadda_cska4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_dadda_cska4.c" -eval "$H_U_DADDA_CSKA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_dadda_cska4 - -# 8-BIT DADDA-CSKA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_dadda_cska8.c -o h_u_dadda_cska8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_dadda_cska8.c" -eval "$H_U_DADDA_CSKA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_dadda_cska8 - -# 4-BIT WALLACE-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_wallace_rca4.c -o h_u_wallace_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_wallace_rca4.c" -eval "$H_U_WALLACE_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_wallace_rca4 - -# 8-BIT WALLACE-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_wallace_rca8.c -o h_u_wallace_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_wallace_rca8.c" -eval "$H_U_WALLACE_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_wallace_rca8 - -# 4-BIT WALLACE-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_wallace_pg_rca4.c -o h_u_wallace_pg_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_wallace_pg_rca4.c" -eval "$H_U_WALLACE_PG_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_wallace_pg_rca4 - -# 8-BIT WALLACE-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_wallace_pg_rca8.c -o h_u_wallace_pg_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_wallace_pg_rca8.c" -eval "$H_U_WALLACE_PG_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_wallace_pg_rca8 - -# 4-BIT WALLACE-CLA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_wallace_cla4.c -o h_u_wallace_cla4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_wallace_cla4.c" -eval "$H_U_WALLACE_CLA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_wallace_cla4 - -# 8-BIT WALLACE-CLA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_wallace_cla8.c -o h_u_wallace_cla8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_wallace_cla8.c" -eval "$H_U_WALLACE_CLA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_wallace_cla8 - -# 4-BIT WALLACE-CSKA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_wallace_cska4.c -o h_u_wallace_cska4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_wallace_cska4.c" -eval "$H_U_WALLACE_CSKA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_wallace_cska4 - -# 8-BIT WALLACE-CSKA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_u_wallace_cska8.c -o h_u_wallace_cska8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_u_wallace_cska8.c" -eval "$H_U_WALLACE_CSKA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_u_wallace_cska8 - -######################## -## SIGNED MULTIPLIERS ## -######################## -echo "" -echo "${BLUECOLOR}SIGNED MULTIPLIERS TESTS${NOCOLOR}" - -## HIERARCHICAL SIGNED MULTIPLIERS ## -##################################### - -# 4-BIT ARRAY MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_arrmul4.c -o h_s_arrmul4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_arrmul4.c" -eval "$H_S_ARRMUL4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_arrmul4 - -# 8-BIT ARRAY MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_arrmul8.c -o h_s_arrmul8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_arrmul8.c" -eval "$H_S_ARRMUL8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_arrmul8 - -# 4-BIT DADDA-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_dadda_rca4.c -o h_s_dadda_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_dadda_rca4.c" -eval "$H_S_DADDA_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_dadda_rca4 - -# 8-BIT DADDA-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_dadda_rca8.c -o h_s_dadda_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_dadda_rca8.c" -eval "$H_S_DADDA_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_dadda_rca8 - -# 4-BIT DADDA-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_dadda_pg_rca4.c -o h_s_dadda_pg_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_dadda_pg_rca4.c" -eval "$H_S_DADDA_PG_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_dadda_pg_rca4 - -# 8-BIT DADDA-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_dadda_pg_rca8.c -o h_s_dadda_pg_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_dadda_pg_rca8.c" -eval "$H_S_DADDA_PG_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_dadda_pg_rca8 - -# 4-BIT DADDA-CLA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_dadda_cla4.c -o h_s_dadda_cla4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_dadda_cla4.c" -eval "$H_S_DADDA_CLA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_dadda_cla4 - -# 8-BIT DADDA-CLA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_dadda_cla8.c -o h_s_dadda_cla8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_dadda_cla8.c" -eval "$H_S_DADDA_CLA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_dadda_cla8 - -# 4-BIT DADDA-CSKA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_dadda_cska4.c -o h_s_dadda_cska4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_dadda_cska4.c" -eval "$H_S_DADDA_CSKA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_dadda_cska4 - -# 8-BIT DADDA-CSKA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_dadda_cska8.c -o h_s_dadda_cska8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_dadda_cska8.c" -eval "$H_S_DADDA_CSKA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_dadda_cska8 - -# 4-BIT WALLACE-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_wallace_rca4.c -o h_s_wallace_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_wallace_rca4.c" -eval "$H_S_WALLACE_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_wallace_rca4 - -# 8-BIT WALLACE-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_wallace_rca8.c -o h_s_wallace_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_wallace_rca8.c" -eval "$H_S_WALLACE_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_wallace_rca8 - -# 4-BIT WALLACE-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_wallace_pg_rca4.c -o h_s_wallace_pg_rca4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_wallace_pg_rca4.c" -eval "$H_S_WALLACE_PG_RCA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_wallace_pg_rca4 - -# 8-BIT WALLACE-PG-RCA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_wallace_pg_rca8.c -o h_s_wallace_pg_rca8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_wallace_pg_rca8.c" -eval "$H_S_WALLACE_PG_RCA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_wallace_pg_rca8 - -# 4-BIT WALLACE-CLA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_wallace_cla4.c -o h_s_wallace_cla4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_wallace_cla4.c" -eval "$H_S_WALLACE_CLA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_wallace_cla4 - -# 8-BIT WALLACE-CLA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_wallace_cla8.c -o h_s_wallace_cla8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_wallace_cla8.c" -eval "$H_S_WALLACE_CLA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_wallace_cla8 - -# 4-BIT WALLACE-CSKA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_wallace_cska4.c -o h_s_wallace_cska4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_wallace_cska4.c" -eval "$H_S_WALLACE_CSKA4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_wallace_cska4 - -# 8-BIT WALLACE-CSKA MULTIPLIER -${C} ${CFLAGS} ${HIER_MUL_PATH}h_s_wallace_cska8.c -o h_s_wallace_cska8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_s_wallace_cska8.c" -eval "$H_S_WALLACE_CSKA8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_s_wallace_cska8 - -####################### -## UNSIGNED DIVIDERS ## -####################### -echo "" -echo "${BLUECOLOR}UNSIGNED DIVIDER TESTS${NOCOLOR}" - -## HIERARCHICAL UNSIGNED DIVIDERS ## -#################################### - -# 4-BIT ARRAY DIVIDER -${C} ${CFLAGS} ${HIER_DIV_PATH}h_arrdiv4.c -o h_arrdiv4 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_arrdiv4.c" -eval "$H_ARRDIV4" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_arrdiv4 - -# 8-BIT ARRAY DIVIDER -${C} ${CFLAGS} ${HIER_DIV_PATH}h_arrdiv8.c -o h_arrdiv8 -TEST_NUM=$((TEST_NUM+1)) -echo "TEST_$TEST_NUM: h_arrdiv8.c" -eval "$H_ARRDIV8" -if [ "$?" -eq 0 ] ; then - echo "${GREENCOLOR}PASSED${NOCOLOR}" -else - echo "${REDCOLOR}FAILED${NOCOLOR}" -fi -rm h_arrdiv8 \ No newline at end of file diff --git a/generate_axmuls.py b/generate_axmuls.py index f8345fe..6346bc2 100644 --- a/generate_axmuls.py +++ b/generate_axmuls.py @@ -24,19 +24,21 @@ from ariths_gen.pdk import * import os from itertools import product + def open_file_with_folder(filename, mode): d = os.path.dirname(filename) if d: - os.makedirs(d, exist_ok = True) + os.makedirs(d, exist_ok=True) return open(filename, mode) + if __name__ == "__main__": # Optional use HA and FA technology from pdk45 library - #set_pdk45_library() - + # set_pdk45_library() + # 8-bit unsigned BAMs root_path = "test_circuits/ax" - + adders = {UnsignedCarryLookaheadAdder: "cla", UnsignedPGRippleCarryAdder: "pg_rca", UnsignedRippleCarryAdder: "rca", UnsignedCarrySkipAdder: "cska"} i = 0 @@ -44,12 +46,12 @@ if __name__ == "__main__": # v <= (8-1) + (8-2) for v in range(h, 13): i += 1 - N=8 + N = 8 a = Bus(prefix="a", N=N) b = Bus(prefix="b", N=N) - + for bam in [UnsignedBrokenArrayMultiplier, UnsignedBrokenCarrySaveMultiplier]: - if bam == UnsignedBrokenCarrySaveMultiplier: + if bam == UnsignedBrokenCarrySaveMultiplier: for add_type in adders.keys(): flat_bam = bam(a, b, name=f"f_u_csabam{N}_{adders[add_type]}_h{h}_v{v}", horizontal_cut=h, vertical_cut=v, unsigned_adder_class_name=add_type) hier_bam = bam(a, b, name=f"h_u_csabam{N}_{adders[add_type]}_h{h}_v{v}", horizontal_cut=h, vertical_cut=v, unsigned_adder_class_name=add_type) @@ -61,24 +63,24 @@ if __name__ == "__main__": else: flat_bam = bam(a, b, name=f"f_u_arrbam{N}_h{h}_v{v}", horizontal_cut=h, vertical_cut=v) hier_bam = bam(a, b, name=f"h_u_arrbam{N}_h{h}_v{v}", horizontal_cut=h, vertical_cut=v) - + flat_bam.get_c_code_flat(open_file_with_folder(os.path.join(root_path, f"BAM/C/flat/f_u_arrbam{N}_h{h}_v{v}.c"), "w")) flat_bam.get_v_code_flat(open_file_with_folder(os.path.join(root_path, f"BAM/Verilog/flat/f_u_arrbam{N}_h{h}_v{v}.v"), "w")) hier_bam.get_c_code_hier(open_file_with_folder(os.path.join(root_path, f"BAM/C/hier/h_u_arrbam{N}_h{h}_v{v}.c"), "w")) hier_bam.get_v_code_hier(open_file_with_folder(os.path.join(root_path, f"BAM/Verilog/hier/h_u_arrbam{N}_h{h}_v{v}.v"), "w")) - - # 8-bit unsigned TMs + + # 8-bit unsigned TMs for i in range(0, 8): - N=8 + N = 8 a = Bus(prefix="a", N=N) b = Bus(prefix="b", N=N) - + for tm in [UnsignedTruncatedArrayMultiplier, UnsignedTruncatedCarrySaveMultiplier]: if tm == UnsignedTruncatedCarrySaveMultiplier: for add_type in adders.keys(): flat_tm = tm(a, b, name=f"f_u_csatm{N}_{adders[add_type]}_k{i}", truncation_cut=i, unsigned_adder_class_name=add_type) hier_tm = tm(a, b, name=f"h_u_csatm{N}_{adders[add_type]}_k{i}", truncation_cut=i, unsigned_adder_class_name=add_type) - + flat_tm.get_c_code_flat(open_file_with_folder(os.path.join(root_path, f"TM/C/flat/f_u_csatm{N}_{adders[add_type]}_k{i}.c"), "w")) flat_tm.get_v_code_flat(open_file_with_folder(os.path.join(root_path, f"TM/Verilog/flat/f_u_csatm{N}_{adders[add_type]}_k{i}.v"), "w")) hier_tm.get_c_code_hier(open_file_with_folder(os.path.join(root_path, f"TM/C/hier/h_u_csatm{N}_{adders[add_type]}_k{i}.c"), "w")) @@ -86,7 +88,7 @@ if __name__ == "__main__": else: flat_tm = tm(a, b, name=f"f_u_arrtm{N}_k{i}", truncation_cut=i) hier_tm = tm(a, b, name=f"h_u_arrtm{N}_k{i}", truncation_cut=i) - + flat_tm.get_c_code_flat(open_file_with_folder(os.path.join(root_path, f"TM/C/flat/f_u_arrtm{N}_k{i}.c"), "w")) flat_tm.get_v_code_flat(open_file_with_folder(os.path.join(root_path, f"TM/Verilog/flat/f_u_arrtm{N}_k{i}.v"), "w")) hier_tm.get_c_code_hier(open_file_with_folder(os.path.join(root_path, f"TM/C/hier/h_u_arrtm{N}_k{i}.c"), "w")) diff --git a/generate_mac.py b/generate_mac.py index db17c72..68afed3 100644 --- a/generate_mac.py +++ b/generate_mac.py @@ -6,6 +6,7 @@ from ariths_gen.multi_bit_circuits.adders import UnsignedRippleCarryAdder from ariths_gen.multi_bit_circuits.multipliers import UnsignedArrayMultiplier, UnsignedDaddaMultiplier import os + class MAC(GeneralCircuit): def __init__(self, a: Bus, b: Bus, r: Bus, prefix: str = "", name: str = "mac", **kwargs): super().__init__(prefix=prefix, name=name, out_N=2*a.N+1, inputs=[a, b, r], **kwargs) @@ -16,6 +17,7 @@ class MAC(GeneralCircuit): self.add = self.add_component(UnsignedRippleCarryAdder(a=r, b=self.mul.out, prefix=self.prefix, name=f"u_rca{r.N}", inner_component=True)) self.out.connect_bus(connecting_bus=self.add.out) + # usage if __name__ == "__main__": os.makedirs("test_circuits/mac", exist_ok=True) diff --git a/generate_test.py b/generate_test.py index 6fc733a..b8b5a0f 100644 --- a/generate_test.py +++ b/generate_test.py @@ -34,6 +34,24 @@ from ariths_gen.multi_bit_circuits.adders import ( SignedRippleCarryAdder, UnsignedCarrySkipAdder, SignedCarrySkipAdder, + UnsignedKoggeStoneAdder, + SignedKoggeStoneAdder, + UnsignedBrentKungAdder, + SignedBrentKungAdder, + UnsignedSklanskyAdder, + SignedSklanskyAdder, + UnsignedHanCarlsonAdder, + SignedHanCarlsonAdder, + UnsignedLadnerFischerAdder, + SignedLadnerFischerAdder, + UnsignedKnowlesAdder, + SignedKnowlesAdder, + UnsignedCarrySelectAdder, + SignedCarrySelectAdder, + UnsignedConditionalSumAdder, + SignedConditionalSumAdder, + UnsignedCarryIncrementAdder, + SignedCarryIncrementAdder ) from ariths_gen.multi_bit_circuits.multipliers import ( @@ -100,22 +118,103 @@ if __name__ == "__main__": circuit = SignedPGRippleCarryAdder(a, b, name=name) export_circuit(circuit, name) + # COSA + name = f"u_cosa{N}" + circuit = UnsignedConditionalSumAdder(a, b, name=name) + export_circuit(circuit, name) + + name = f"s_cosa{N}" + circuit = SignedConditionalSumAdder(a, b, name=name) + export_circuit(circuit, name) + # CSKA with 4 bit CSKA blocks (default) name = f"u_cska{N}" - circuit = UnsignedCarrySkipAdder(a, b, name=name) + circuit = UnsignedCarrySkipAdder(a, b, name=name, bypass_block_size=4) export_circuit(circuit, name) name = f"s_cska{N}" - circuit = SignedCarrySkipAdder(a, b, name=name) + circuit = SignedCarrySkipAdder(a, b, name=name, bypass_block_size=4) export_circuit(circuit, name) # CLA with 4 bit CLA blocks (default) name = f"u_cla{N}" - circuit = UnsignedCarryLookaheadAdder(a, b, name=name) + circuit = UnsignedCarryLookaheadAdder(a, b, name=name, cla_block_size=4) export_circuit(circuit, name) name = f"s_cla{N}" - circuit = SignedCarryLookaheadAdder(a, b, name=name) + circuit = SignedCarryLookaheadAdder(a, b, name=name, cla_block_size=4) + export_circuit(circuit, name) + + # CIA with 4 bit CIA blocks (default) + name = f"u_cia{N}" + circuit = UnsignedCarryIncrementAdder(a, b, name=name, increment_block_size=4) + export_circuit(circuit, name) + + name = f"s_cia{N}" + circuit = SignedCarryIncrementAdder(a, b, name=name, increment_block_size=4) + export_circuit(circuit, name) + + # CSLA with 4 bit CIA blocks (default) + name = f"u_csla{N}" + circuit = UnsignedCarrySelectAdder(a, b, name=name, select_block_size=4) + export_circuit(circuit, name) + + name = f"s_csla{N}" + circuit = SignedCarrySelectAdder(a, b, name=name, select_block_size=4) + export_circuit(circuit, name) + + # KSA + name = f"u_ksa{N}" + circuit = UnsignedKoggeStoneAdder(a, b, name=name) + export_circuit(circuit, name) + + name = f"s_ksa{N}" + circuit = SignedKoggeStoneAdder(a, b, name=name) + export_circuit(circuit, name) + + # BKA + name = f"u_bka{N}" + circuit = UnsignedBrentKungAdder(a, b, name=name) + export_circuit(circuit, name) + + name = f"s_bka{N}" + circuit = SignedBrentKungAdder(a, b, name=name) + export_circuit(circuit, name) + + # SA + name = f"u_sa{N}" + circuit = UnsignedSklanskyAdder(a, b, name=name) + export_circuit(circuit, name) + + name = f"s_sa{N}" + circuit = SignedSklanskyAdder(a, b, name=name) + export_circuit(circuit, name) + + # HCA with config set to 1 (default) + name = f"u_hca{N}" + circuit = UnsignedHanCarlsonAdder(a, b, name=name, config_choice=1) + export_circuit(circuit, name) + + name = f"s_hca{N}" + circuit = SignedHanCarlsonAdder(a, b, name=name, config_choice=1) + export_circuit(circuit, name) + + # KA with config set to 1 (default) + name = f"u_ka{N}" + circuit = UnsignedKnowlesAdder(a, b, name=name, config_choice=1) + export_circuit(circuit, name) + + name = f"s_ka{N}" + circuit = SignedKnowlesAdder(a, b, name=name, config_choice=1) + export_circuit(circuit, name) + + # LFA with config set to 1 (default) + name = f"u_lfa{N}" + circuit = UnsignedLadnerFischerAdder(a, b, name=name, config_choice=1) + export_circuit(circuit, name) + + name = f"s_lfa{N}" + circuit = SignedLadnerFischerAdder(a, b, name=name, config_choice=1) export_circuit(circuit, name) """ MULTIPLIERS """ @@ -128,7 +227,7 @@ if __name__ == "__main__": circuit = SignedArrayMultiplier(a, b, name=name) export_circuit(circuit, name) - # Csamul (Braun multiplier) + # Csamul (Braun multiplier) – the ppa adders are also configurable as above if desirable name = f"u_csamul_cla{N}" circuit = UnsignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarryLookaheadAdder) export_circuit(circuit, name) @@ -161,7 +260,79 @@ if __name__ == "__main__": circuit = SignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarrySkipAdder) export_circuit(circuit, name) - # Wallace implemented with interconnected HAs/FAs + name = f"u_csamul_cosa{N}" + circuit = UnsignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedConditionalSumAdder) + export_circuit(circuit, name) + + name = f"s_csamul_cosa{N}" + circuit = SignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedConditionalSumAdder) + export_circuit(circuit, name) + + name = f"u_csamul_cia{N}" + circuit = UnsignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarryIncrementAdder) + export_circuit(circuit, name) + + name = f"s_csamul_cia{N}" + circuit = SignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarryIncrementAdder) + export_circuit(circuit, name) + + name = f"u_csamul_csla{N}" + circuit = UnsignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarrySelectAdder) + export_circuit(circuit, name) + + name = f"s_csamul_csla{N}" + circuit = SignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarrySelectAdder) + export_circuit(circuit, name) + + name = f"u_csamul_ksa{N}" + circuit = UnsignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedKoggeStoneAdder) + export_circuit(circuit, name) + + name = f"s_csamul_ksa{N}" + circuit = SignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedKoggeStoneAdder) + export_circuit(circuit, name) + + name = f"u_csamul_bka{N}" + circuit = UnsignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedBrentKungAdder) + export_circuit(circuit, name) + + name = f"s_csamul_bka{N}" + circuit = SignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedBrentKungAdder) + export_circuit(circuit, name) + + name = f"u_csamul_sa{N}" + circuit = UnsignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedSklanskyAdder) + export_circuit(circuit, name) + + name = f"s_csamul_sa{N}" + circuit = SignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedSklanskyAdder) + export_circuit(circuit, name) + + name = f"u_csamul_hca{N}" + circuit = UnsignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedHanCarlsonAdder) + export_circuit(circuit, name) + + name = f"s_csamul_hca{N}" + circuit = SignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedHanCarlsonAdder) + export_circuit(circuit, name) + + name = f"u_csamul_ka{N}" + circuit = UnsignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedKnowlesAdder) + export_circuit(circuit, name) + + name = f"s_csamul_ka{N}" + circuit = SignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedKnowlesAdder) + export_circuit(circuit, name) + + name = f"u_csamul_lfa{N}" + circuit = UnsignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedLadnerFischerAdder) + export_circuit(circuit, name) + + name = f"s_csamul_lfa{N}" + circuit = SignedCarrySaveMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedLadnerFischerAdder) + export_circuit(circuit, name) + + # Wallace implemented with interconnected HAs/FAs – the ppa adders are also configurable as above if desirable name = f"u_wallace_cla{N}" circuit = UnsignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedCarryLookaheadAdder) export_circuit(circuit, name) @@ -194,7 +365,79 @@ if __name__ == "__main__": circuit = SignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedCarrySkipAdder) export_circuit(circuit, name) - # Wallace implemented with interconnected CSAs (default choice) + name = f"u_wallace_cosa{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedConditionalSumAdder) + export_circuit(circuit, name) + + name = f"s_wallace_cosa{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedConditionalSumAdder) + export_circuit(circuit, name) + + name = f"u_wallace_cia{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedCarryIncrementAdder) + export_circuit(circuit, name) + + name = f"s_wallace_cia{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedCarryIncrementAdder) + export_circuit(circuit, name) + + name = f"u_wallace_csla{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedCarrySelectAdder) + export_circuit(circuit, name) + + name = f"s_wallace_csla{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedCarrySelectAdder) + export_circuit(circuit, name) + + name = f"u_wallace_ksa{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedKoggeStoneAdder) + export_circuit(circuit, name) + + name = f"s_wallace_ksa{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedKoggeStoneAdder) + export_circuit(circuit, name) + + name = f"u_wallace_bka{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedBrentKungAdder) + export_circuit(circuit, name) + + name = f"s_wallace_bka{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedBrentKungAdder) + export_circuit(circuit, name) + + name = f"u_wallace_sa{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedSklanskyAdder) + export_circuit(circuit, name) + + name = f"s_wallace_sa{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedSklanskyAdder) + export_circuit(circuit, name) + + name = f"u_wallace_hca{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedHanCarlsonAdder) + export_circuit(circuit, name) + + name = f"s_wallace_hca{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedHanCarlsonAdder) + export_circuit(circuit, name) + + name = f"u_wallace_ka{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedKnowlesAdder) + export_circuit(circuit, name) + + name = f"s_wallace_ka{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedKnowlesAdder) + export_circuit(circuit, name) + + name = f"u_wallace_lfa{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedLadnerFischerAdder) + export_circuit(circuit, name) + + name = f"s_wallace_lfa{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, use_csa=False, unsigned_adder_class_name=UnsignedLadnerFischerAdder) + export_circuit(circuit, name) + + # Wallace implemented with interconnected CSAs (default choice) – the ppa adders are also configurable as above if desirable name = f"u_CSAwallace_cla{N}" circuit = UnsignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarryLookaheadAdder) export_circuit(circuit, name) @@ -227,7 +470,79 @@ if __name__ == "__main__": circuit = SignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarrySkipAdder) export_circuit(circuit, name) - # Dadda with interconnected HAs/FAs + name = f"u_CSAwallace_cosa{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedConditionalSumAdder) + export_circuit(circuit, name) + + name = f"s_CSAwallace_cosa{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedConditionalSumAdder) + export_circuit(circuit, name) + + name = f"u_CSAwallace_cia{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarryIncrementAdder) + export_circuit(circuit, name) + + name = f"s_CSAwallace_cia{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarryIncrementAdder) + export_circuit(circuit, name) + + name = f"u_CSAwallace_csla{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarrySelectAdder) + export_circuit(circuit, name) + + name = f"s_CSAwallace_csla{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarrySelectAdder) + export_circuit(circuit, name) + + name = f"u_CSAwallace_ksa{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedKoggeStoneAdder) + export_circuit(circuit, name) + + name = f"s_CSAwallace_ksa{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedKoggeStoneAdder) + export_circuit(circuit, name) + + name = f"u_CSAwallace_bka{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedBrentKungAdder) + export_circuit(circuit, name) + + name = f"s_CSAwallace_bka{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedBrentKungAdder) + export_circuit(circuit, name) + + name = f"u_CSAwallace_sa{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedSklanskyAdder) + export_circuit(circuit, name) + + name = f"s_CSAwallace_sa{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedSklanskyAdder) + export_circuit(circuit, name) + + name = f"u_CSAwallace_hca{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedHanCarlsonAdder) + export_circuit(circuit, name) + + name = f"s_CSAwallace_hca{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedHanCarlsonAdder) + export_circuit(circuit, name) + + name = f"u_CSAwallace_ka{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedKnowlesAdder) + export_circuit(circuit, name) + + name = f"s_CSAwallace_ka{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedKnowlesAdder) + export_circuit(circuit, name) + + name = f"u_CSAwallace_lfa{N}" + circuit = UnsignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedLadnerFischerAdder) + export_circuit(circuit, name) + + name = f"s_CSAwallace_lfa{N}" + circuit = SignedWallaceMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedLadnerFischerAdder) + export_circuit(circuit, name) + + # Dadda with interconnected HAs/FAs – the ppa adders are also configurable as above if desirable name = f"u_dadda_cla{N}" circuit = UnsignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarryLookaheadAdder) export_circuit(circuit, name) @@ -260,6 +575,78 @@ if __name__ == "__main__": circuit = SignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarrySkipAdder) export_circuit(circuit, name) + name = f"u_dadda_cosa{N}" + circuit = UnsignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedConditionalSumAdder) + export_circuit(circuit, name) + + name = f"s_dadda_cosa{N}" + circuit = SignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedConditionalSumAdder) + export_circuit(circuit, name) + + name = f"u_dadda_cia{N}" + circuit = UnsignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarryIncrementAdder) + export_circuit(circuit, name) + + name = f"s_dadda_cia{N}" + circuit = SignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarryIncrementAdder) + export_circuit(circuit, name) + + name = f"u_dadda_csla{N}" + circuit = UnsignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarrySelectAdder) + export_circuit(circuit, name) + + name = f"s_dadda_csla{N}" + circuit = SignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedCarrySelectAdder) + export_circuit(circuit, name) + + name = f"u_dadda_ksa{N}" + circuit = UnsignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedKoggeStoneAdder) + export_circuit(circuit, name) + + name = f"s_dadda_ksa{N}" + circuit = SignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedKoggeStoneAdder) + export_circuit(circuit, name) + + name = f"u_dadda_bka{N}" + circuit = UnsignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedBrentKungAdder) + export_circuit(circuit, name) + + name = f"s_dadda_bka{N}" + circuit = SignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedBrentKungAdder) + export_circuit(circuit, name) + + name = f"u_dadda_sa{N}" + circuit = UnsignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedSklanskyAdder) + export_circuit(circuit, name) + + name = f"s_dadda_sa{N}" + circuit = SignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedSklanskyAdder) + export_circuit(circuit, name) + + name = f"u_dadda_hca{N}" + circuit = UnsignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedHanCarlsonAdder) + export_circuit(circuit, name) + + name = f"s_dadda_hca{N}" + circuit = SignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedHanCarlsonAdder) + export_circuit(circuit, name) + + name = f"u_dadda_ka{N}" + circuit = UnsignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedKnowlesAdder) + export_circuit(circuit, name) + + name = f"s_dadda_ka{N}" + circuit = SignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedKnowlesAdder) + export_circuit(circuit, name) + + name = f"u_dadda_lfa{N}" + circuit = UnsignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedLadnerFischerAdder) + export_circuit(circuit, name) + + name = f"s_dadda_lfa{N}" + circuit = SignedDaddaMultiplier(a, b, name=name, unsigned_adder_class_name=UnsignedLadnerFischerAdder) + export_circuit(circuit, name) + """ DIVIDERS """ # Arrdiv name = f"arrdiv{N}" diff --git a/tests/test_all.py b/tests/test_all.py index 7c0fd81..75a9f7a 100644 --- a/tests/test_all.py +++ b/tests/test_all.py @@ -16,6 +16,24 @@ from ariths_gen.multi_bit_circuits.adders import ( SignedRippleCarryAdder, UnsignedCarrySkipAdder, SignedCarrySkipAdder, + UnsignedKoggeStoneAdder, + SignedKoggeStoneAdder, + UnsignedBrentKungAdder, + SignedBrentKungAdder, + UnsignedSklanskyAdder, + SignedSklanskyAdder, + UnsignedHanCarlsonAdder, + SignedHanCarlsonAdder, + UnsignedLadnerFischerAdder, + SignedLadnerFischerAdder, + UnsignedKnowlesAdder, + SignedKnowlesAdder, + UnsignedCarrySelectAdder, + SignedCarrySelectAdder, + UnsignedConditionalSumAdder, + SignedConditionalSumAdder, + UnsignedCarryIncrementAdder, + SignedCarryIncrementAdder ) from ariths_gen.multi_bit_circuits.multipliers import ( @@ -46,9 +64,10 @@ from ariths_gen.one_bit_circuits.logic_gates import ( NotGate ) import numpy as np +import math -def test_unsigned_approxmul(values = False): +def test_unsigned_approxmul(values=False): """ Test unsigned approximate multipliers """ N = 7 a = Bus(N=N, prefix="a") @@ -56,21 +75,21 @@ def test_unsigned_approxmul(values = False): av = np.arange(2**N) bv = av.reshape(-1, 1) expected = av * bv - - for c in [UnsignedBrokenArrayMultiplier, UnsignedBrokenCarrySaveMultiplier, UnsignedTruncatedArrayMultiplier, UnsignedTruncatedCarrySaveMultiplier]: + + for c in [UnsignedBrokenArrayMultiplier, UnsignedBrokenCarrySaveMultiplier, UnsignedTruncatedArrayMultiplier, UnsignedTruncatedCarrySaveMultiplier]: if c == UnsignedTruncatedArrayMultiplier or c == UnsignedTruncatedCarrySaveMultiplier: mul = c(a=a, b=b, truncation_cut=2) elif c == UnsignedBrokenArrayMultiplier or c == UnsignedBrokenCarrySaveMultiplier: mul = c(a=a, b=b, horizontal_cut=1, vertical_cut=2) r = mul(av, bv) - + # WCE – worst case error; used for approximate multiplier error measurement WCE = np.amax(abs(np.subtract(r, expected))) - + # WCRE – worst case relative error; used for approximate multiplier error measurement np.seterr(divide='ignore', invalid='ignore') WCRE = np.max(np.nan_to_num(abs(np.subtract(r, expected)) / expected)) - + if isinstance(mul, UnsignedTruncatedArrayMultiplier) or isinstance(mul, UnsignedTruncatedCarrySaveMultiplier): # WCE_TM(n,k) = (2^k - 1) * (2^(n+1) - 2^k - 1) expected_WCE = (2 ** mul.truncation_cut - 1) * (2 ** (mul.a.N+1) - 2 ** mul.truncation_cut - 1) @@ -85,6 +104,7 @@ def test_unsigned_approxmul(values = False): if values is True: np.testing.assert_array_equal(expected, r) + def test_unsigned_mul(): """ Test unsigned multipliers """ N = 7 @@ -94,16 +114,59 @@ def test_unsigned_mul(): bv = av.reshape(-1, 1) expected = av * bv - for c in [UnsignedDaddaMultiplier, UnsignedArrayMultiplier, UnsignedCarrySaveMultiplier, UnsignedWallaceMultiplier]: + # No configurability + for c in [UnsignedArrayMultiplier]: mul = c(a, b) assert mul(0, 0) == 0 r = mul(av, bv) np.testing.assert_array_equal(expected, r) - # For array wallace tree implementation - mul = UnsignedWallaceMultiplier(a, b, use_csa=False) - assert mul(0, 0) == 0 - r = mul(av, bv) - np.testing.assert_array_equal(expected, r) + + # Configurable PPA + for c in [UnsignedDaddaMultiplier, UnsignedCarrySaveMultiplier, UnsignedWallaceMultiplier]: + # Non configurable multi-bit adders + for ppa in [UnsignedPGRippleCarryAdder, UnsignedRippleCarryAdder, UnsignedConditionalSumAdder, UnsignedKoggeStoneAdder, UnsignedBrentKungAdder, UnsignedSklanskyAdder]: + # Test first the array wallace tree implementation (using more HAs/FAs than CSA implementation) + if c == UnsignedWallaceMultiplier: + mul = c(a, b, unsigned_adder_class_name=ppa, use_csa=False) + assert mul(0, 0) == 0 + r = mul(av, bv) + np.testing.assert_array_equal(expected, r) + + mul = c(a, b, unsigned_adder_class_name=ppa) + assert mul(0, 0) == 0 + r = mul(av, bv) + np.testing.assert_array_equal(expected, r) + + # Multi-bit adders with configurable (uniform) logic blocks for parallel prefix computation (the ppa will use the block_size argument it recognizes, others are ignored) + for ppa in [UnsignedCarryLookaheadAdder, UnsignedCarrySkipAdder, UnsignedCarrySelectAdder, UnsignedCarryIncrementAdder]: + for i in range(1, N+1): + # Test first the array wallace tree implementation (using more HAs/FAs than CSA implementation) + if c == UnsignedWallaceMultiplier: + mul = c(a, b, unsigned_adder_class_name=ppa, use_csa=False, cla_block_size=i, bypass_block_size=i, select_block_size=i, increment_block_size=i) + assert mul(0, 0) == 0 + r = mul(av, bv) + np.testing.assert_array_equal(expected, r) + + mul = c(a, b, unsigned_adder_class_name=ppa, cla_block_size=i, bypass_block_size=i, select_block_size=i, increment_block_size=i) + assert mul(0, 0) == 0 + r = mul(av, bv) + np.testing.assert_array_equal(expected, r) + + # Multi-bit tree adders with configurable structure based on input bit width (NOTE for showcase here, the second config would be applicable from bit width 9 onward; not tested here for the sake of saving deployment testing time) + for adder in [UnsignedHanCarlsonAdder, UnsignedKnowlesAdder, UnsignedLadnerFischerAdder]: + for i in range(1, N+1): + # Test first the array wallace tree implementation (using more HAs/FAs than CSA implementation) + if c == UnsignedWallaceMultiplier: + mul = c(a, b, unsigned_adder_class_name=ppa, use_csa=False, config_choice=1) + assert mul(0, 0) == 0 + r = mul(av, bv) + np.testing.assert_array_equal(expected, r) + + mul = c(a, b, unsigned_adder_class_name=ppa, config_choice=1) + assert mul(0, 0) == 0 + r = mul(av, bv) + np.testing.assert_array_equal(expected, r) + def test_signed_mul(): """ Test signed multipliers """ @@ -114,45 +177,120 @@ def test_signed_mul(): bv = av.reshape(-1, 1) expected = av * bv - for c in [SignedDaddaMultiplier, SignedArrayMultiplier, SignedWallaceMultiplier, SignedCarrySaveMultiplier]: + # No configurability + for c in [SignedArrayMultiplier]: mul = c(a, b) - r = mul(av, bv) assert mul(0, 0) == 0 + r = mul(av, bv) np.testing.assert_array_equal(expected, r) - # For array wallace tree implementation - mul = SignedWallaceMultiplier(a, b, use_csa=False) - r = mul(av, bv) - assert mul(0, 0) == 0 - np.testing.assert_array_equal(expected, r) + + # Configurable PPA + for c in [SignedDaddaMultiplier, SignedCarrySaveMultiplier, SignedWallaceMultiplier]: + # Non configurable multi-bit adders + for ppa in [UnsignedPGRippleCarryAdder, UnsignedRippleCarryAdder, UnsignedConditionalSumAdder, UnsignedKoggeStoneAdder, UnsignedBrentKungAdder, UnsignedSklanskyAdder]: + # Test first the array wallace tree implementation (using more HAs/FAs than CSA implementation) + if c == UnsignedWallaceMultiplier: + mul = c(a, b, unsigned_adder_class_name=ppa, use_csa=False) + assert mul(0, 0) == 0 + r = mul(av, bv) + np.testing.assert_array_equal(expected, r) + + mul = c(a, b, unsigned_adder_class_name=ppa) + assert mul(0, 0) == 0 + r = mul(av, bv) + np.testing.assert_array_equal(expected, r) + + # Multi-bit adders with configurable (uniform) logic blocks for parallel prefix computation (the ppa will use the block_size argument it recognizes, others are ignored) + for ppa in [UnsignedCarryLookaheadAdder, UnsignedCarrySkipAdder, UnsignedCarrySelectAdder, UnsignedCarryIncrementAdder]: + for bs in range(1, N+1): + # Test first the array wallace tree implementation (using more HAs/FAs than CSA implementation) + if c == UnsignedWallaceMultiplier: + mul = c(a, b, unsigned_adder_class_name=ppa, use_csa=False, cla_block_size=bs, bypass_block_size=bs, select_block_size=bs, increment_block_size=bs) + assert mul(0, 0) == 0 + r = mul(av, bv) + np.testing.assert_array_equal(expected, r) + + mul = c(a, b, unsigned_adder_class_name=ppa, cla_block_size=bs, bypass_block_size=bs, select_block_size=bs, increment_block_size=bs) + assert mul(0, 0) == 0 + r = mul(av, bv) + np.testing.assert_array_equal(expected, r) + + # Multi-bit tree adders with configurable structure based on input bit width (NOTE for showcase here, the second config would be applicable from bit width 9 onward; not tested here for the sake of saving deployment testing time) + for adder in [UnsignedHanCarlsonAdder, UnsignedKnowlesAdder, UnsignedLadnerFischerAdder]: + for i in range(1, N+1): + # Test first the array wallace tree implementation (using more HAs/FAs than CSA implementation) + if c == UnsignedWallaceMultiplier: + mul = c(a, b, unsigned_adder_class_name=ppa, use_csa=False, config_choice=1) + assert mul(0, 0) == 0 + r = mul(av, bv) + np.testing.assert_array_equal(expected, r) + + mul = c(a, b, unsigned_adder_class_name=ppa, config_choice=1) + assert mul(0, 0) == 0 + r = mul(av, bv) + np.testing.assert_array_equal(expected, r) + def test_unsigned_add(): """ Test unsigned adders """ - N = 7 + N = 9 a = Bus(N=N, prefix="a") b = Bus(N=N, prefix="b") av = np.arange(2**N) bv = av.reshape(-1, 1) expected = av + bv - for c in [UnsignedCarryLookaheadAdder, UnsignedPGRippleCarryAdder, UnsignedRippleCarryAdder, UnsignedCarrySkipAdder]: - mul = c(a, b) - r = mul(av, bv) + # Non configurable multi-bit adders + for c in [UnsignedPGRippleCarryAdder, UnsignedRippleCarryAdder, UnsignedConditionalSumAdder, UnsignedKoggeStoneAdder, UnsignedBrentKungAdder, UnsignedSklanskyAdder]: + add = c(a, b) + r = add(av, bv) np.testing.assert_array_equal(expected, r) + # Multi-bit adders with configurable (uniform) logic blocks for parallel prefix computation (the adder will use the block_size argument it recognizes, others are ignored) + for c in [UnsignedCarryLookaheadAdder, UnsignedCarrySkipAdder, UnsignedCarrySelectAdder, UnsignedCarryIncrementAdder]: + for bs in range(1, N+1): + add = c(a, b, cla_block_size=bs, bypass_block_size=bs, select_block_size=bs, increment_block_size=bs) + r = add(av, bv) + np.testing.assert_array_equal(expected, r) + + # Multi-bit tree adders with configurable structure based on input bit width (2 configs tested here for the 9-bitwidth input) + for c in [UnsignedHanCarlsonAdder, UnsignedKnowlesAdder, UnsignedLadnerFischerAdder]: + for config in range(1, (math.ceil(math.log(N, 2))-2)+1): + add = c(a, b, config_choice=config) + r = add(av, bv) + np.testing.assert_array_equal(expected, r) + + def test_signed_add(): """ Test signed adders """ - N = 7 + N = 9 a = Bus(N=N, prefix="a") b = Bus(N=N, prefix="b") av = np.arange(-(2**(N-1)), 2**(N-1)) bv = av.reshape(-1, 1) expected = av + bv - for c in [SignedCarryLookaheadAdder, SignedPGRippleCarryAdder, SignedRippleCarryAdder, SignedCarrySkipAdder]: - mul = c(a, b) - r = mul(av, bv) + # Non configurable multi-bit adders + for c in [SignedPGRippleCarryAdder, SignedRippleCarryAdder, SignedConditionalSumAdder, SignedKoggeStoneAdder, SignedBrentKungAdder, SignedSklanskyAdder]: + add = c(a, b) + r = add(av, bv) np.testing.assert_array_equal(expected, r) + # Multi-bit adders with configurable (uniform) logic blocks for parallel prefix computation (the adder will use the block_size argument it recognizes, others are ignored) + for c in [SignedCarryLookaheadAdder, SignedCarrySkipAdder, SignedCarrySelectAdder, SignedCarryIncrementAdder]: + for bs in range(1, N+1): + add = c(a, b, cla_block_size=bs, bypass_block_size=bs, select_block_size=bs, increment_block_size=bs) + r = add(av, bv) + np.testing.assert_array_equal(expected, r) + + # Multi-bit tree adders with configurable structure based on input bit width (2 configs tested here for the 9-bitwidth input) + for c in [SignedHanCarlsonAdder, SignedKnowlesAdder, SignedLadnerFischerAdder]: + for config in range(1, (math.ceil(math.log(N, 2))-2)+1): + add = c(a, b, config_choice=config) + r = add(av, bv) + np.testing.assert_array_equal(expected, r) + + def test_mac(): class MAC(GeneralCircuit): def __init__(self, a: Bus, b: Bus, r: Bus, prefix: str = "", name: str = "mac", **kwargs): @@ -175,10 +313,11 @@ def test_mac(): expected = (av * bv) + cv np.testing.assert_array_equal(r, expected) + def test_direct(): class err_circuit(GeneralCircuit): def __init__(self, prefix: str = "", name: str = "adder", inner_component: bool = True, a: Bus = Bus(), b: Bus = Bus()): - super().__init__(prefix = prefix, name=name, out_N = (a.N + 1), inner_component=inner_component, inputs = [a, b]) + super().__init__(prefix=prefix, name=name, out_N=(a.N + 1), inner_component=inner_component, inputs=[a, b]) self.N = 1 self.prefix = prefix self.a = Bus(prefix=a.prefix, wires_list=a.bus) @@ -187,19 +326,18 @@ def test_direct(): a_0 = self.a[0] b_0 = self.b.get_wire(0) - + or_1 = OrGate(a_0, b_0, prefix=self.prefix+"_or"+str(self.get_instance_num(cls=OrGate)), parent_component=self) self.add_component(or_1) self.out.connect(0, a_0) self.out.connect(1, or_1.out) - av = np.arange(0, 4).reshape(1, -1) bv = np.arange(0, 4).reshape(-1, 1) - example = err_circuit(prefix = "err_circuit", a = Bus("a", 2) , b = Bus("b", 2)) + example = err_circuit(prefix="err_circuit", a=Bus("a", 2), b=Bus("b", 2)) r = example(av, bv) - expected = np.array([[0, 3, 0, 3], [2, 3 ,2, 3], [0, 3, 0, 3], [2, 3, 2, 3]]) + expected = np.array([[0, 3, 0, 3], [2, 3, 2, 3], [0, 3, 0, 3], [2, 3, 2, 3]]) np.testing.assert_equal(r, expected) - print(r) \ No newline at end of file + print(r) diff --git a/tests/test_cgp.py b/tests/test_cgp.py index 59876ff..26f66e4 100644 --- a/tests/test_cgp.py +++ b/tests/test_cgp.py @@ -16,6 +16,24 @@ from ariths_gen.multi_bit_circuits.adders import ( SignedRippleCarryAdder, UnsignedCarrySkipAdder, SignedCarrySkipAdder, + UnsignedKoggeStoneAdder, + SignedKoggeStoneAdder, + UnsignedBrentKungAdder, + SignedBrentKungAdder, + UnsignedSklanskyAdder, + SignedSklanskyAdder, + UnsignedHanCarlsonAdder, + SignedHanCarlsonAdder, + UnsignedLadnerFischerAdder, + SignedLadnerFischerAdder, + UnsignedKnowlesAdder, + SignedKnowlesAdder, + UnsignedCarrySelectAdder, + SignedCarrySelectAdder, + UnsignedConditionalSumAdder, + SignedConditionalSumAdder, + UnsignedCarryIncrementAdder, + SignedCarryIncrementAdder ) from ariths_gen.multi_bit_circuits.multipliers import ( @@ -40,8 +58,10 @@ from ariths_gen.multi_bit_circuits.approximate_multipliers import ( from ariths_gen.core.cgp_circuit import UnsignedCGPCircuit, SignedCGPCircuit import numpy as np +import math from io import StringIO + def test_cgp_unsigned_add(): """ Test unsigned adders """ N = 7 @@ -51,27 +71,64 @@ def test_cgp_unsigned_add(): bv = av.reshape(-1, 1) expected = av + bv - for c in [UnsignedCarryLookaheadAdder, UnsignedPGRippleCarryAdder, UnsignedRippleCarryAdder, UnsignedCarrySkipAdder]: + # Non configurable multi-bit adders + for c in [UnsignedPGRippleCarryAdder, UnsignedRippleCarryAdder, UnsignedConditionalSumAdder, UnsignedKoggeStoneAdder, UnsignedBrentKungAdder, UnsignedSklanskyAdder]: add = c(a, b) code = StringIO() add.get_cgp_code_flat(code) cgp_code = code.getvalue() print(cgp_code) - - add2 = UnsignedCGPCircuit(cgp_code, [N, N]) + add2 = UnsignedCGPCircuit(cgp_code, [N, N]) o = StringIO() add2.get_v_code_flat(o) print(o.getvalue()) r = add2(av, bv) - - assert add(0, 0) == 0 assert add2(0, 0) == 0 - np.testing.assert_array_equal(expected, r) + # Multi-bit adders with configurable (uniform) logic blocks for parallel prefix computation (the adder will use the block_size argument it recognizes, others are ignored) + for c in [UnsignedCarryLookaheadAdder, UnsignedCarrySkipAdder, UnsignedCarrySelectAdder, UnsignedCarryIncrementAdder]: + for bs in range(1, N+1): + add = c(a, b, cla_block_size=bs, bypass_block_size=bs, select_block_size=bs, increment_block_size=bs) + r = add(av, bv) + code = StringIO() + add.get_cgp_code_flat(code) + cgp_code = code.getvalue() + print(cgp_code) + + add2 = UnsignedCGPCircuit(cgp_code, [N, N]) + o = StringIO() + add2.get_v_code_flat(o) + print(o.getvalue()) + + r = add2(av, bv) + assert add(0, 0) == 0 + assert add2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + + # Multi-bit tree adders with configurable structure based on input bit width (2 configs tested here for the 9-bitwidth input) + for c in [UnsignedHanCarlsonAdder, UnsignedKnowlesAdder, UnsignedLadnerFischerAdder]: + for config in range(1, (math.ceil(math.log(N, 2))-2)+1): + add = c(a, b, config_choice=config) + r = add(av, bv) + code = StringIO() + add.get_cgp_code_flat(code) + cgp_code = code.getvalue() + print(cgp_code) + + add2 = UnsignedCGPCircuit(cgp_code, [N, N]) + o = StringIO() + add2.get_v_code_flat(o) + print(o.getvalue()) + + r = add2(av, bv) + assert add(0, 0) == 0 + assert add2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + def test_cgp_signed_add(): """ Test signed adders """ @@ -82,22 +139,65 @@ def test_cgp_signed_add(): bv = av.reshape(-1, 1) expected = av + bv - for c in [SignedCarryLookaheadAdder, SignedPGRippleCarryAdder, SignedRippleCarryAdder, SignedCarrySkipAdder]: + # Non configurable multi-bit adders + for c in [SignedPGRippleCarryAdder, SignedRippleCarryAdder, SignedConditionalSumAdder, SignedKoggeStoneAdder, SignedBrentKungAdder, SignedSklanskyAdder]: add = c(a, b) - + r = add(av, bv) code = StringIO() add.get_cgp_code_flat(code) cgp_code = code.getvalue() print(cgp_code) add2 = SignedCGPCircuit(cgp_code, [N, N]) - r = add2(av, bv) + o = StringIO() + add2.get_v_code_flat(o) + print(o.getvalue()) + r = add2(av, bv) assert add(0, 0) == 0 assert add2(0, 0) == 0 - np.testing.assert_array_equal(expected, r) + # Multi-bit adders with configurable (uniform) logic blocks for parallel prefix computation (the adder will use the block_size argument it recognizes, others are ignored) + for c in [SignedCarryLookaheadAdder, SignedCarrySkipAdder, SignedCarrySelectAdder, SignedCarryIncrementAdder]: + for bs in range(1, N+1): + add = c(a, b, cla_block_size=bs, bypass_block_size=bs, select_block_size=bs, increment_block_size=bs) + r = add(av, bv) + code = StringIO() + add.get_cgp_code_flat(code) + cgp_code = code.getvalue() + print(cgp_code) + + add2 = SignedCGPCircuit(cgp_code, [N, N]) + o = StringIO() + add2.get_v_code_flat(o) + print(o.getvalue()) + + r = add2(av, bv) + assert add(0, 0) == 0 + assert add2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + + # Multi-bit tree adders with configurable structure based on input bit width (2 configs tested here for the 9-bitwidth input) + for c in [SignedHanCarlsonAdder, SignedKnowlesAdder, SignedLadnerFischerAdder]: + for config in range(1, (math.ceil(math.log(N, 2))-2)+1): + add = c(a, b, config_choice=config) + r = add(av, bv) + code = StringIO() + add.get_cgp_code_flat(code) + cgp_code = code.getvalue() + print(cgp_code) + + add2 = SignedCGPCircuit(cgp_code, [N, N]) + o = StringIO() + add2.get_v_code_flat(o) + print(o.getvalue()) + + r = add2(av, bv) + assert add(0, 0) == 0 + assert add2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + def test_unsigned_mul(): """ Test unsigned multipliers """ @@ -108,7 +208,8 @@ def test_unsigned_mul(): bv = av.reshape(-1, 1) expected = av * bv - for c in [UnsignedDaddaMultiplier, UnsignedArrayMultiplier, UnsignedCarrySaveMultiplier, UnsignedWallaceMultiplier]: + # No configurability + for c in [UnsignedArrayMultiplier]: mul = c(a, b) code = StringIO() mul.get_cgp_code_flat(code) @@ -117,8 +218,99 @@ def test_unsigned_mul(): mul2 = UnsignedCGPCircuit(cgp_code, [N, N]) r = mul2(av, bv) + assert mul(0, 0) == 0 + assert mul2(0, 0) == 0 np.testing.assert_array_equal(expected, r) + # Configurable PPA + for c in [UnsignedDaddaMultiplier, UnsignedCarrySaveMultiplier, UnsignedWallaceMultiplier]: + # Non configurable multi-bit adders + for ppa in [UnsignedPGRippleCarryAdder, UnsignedRippleCarryAdder, UnsignedConditionalSumAdder, UnsignedKoggeStoneAdder, UnsignedBrentKungAdder, UnsignedSklanskyAdder]: + # Test first the array wallace tree implementation (using more HAs/FAs than CSA implementation) + if c == UnsignedWallaceMultiplier: + mul = c(a, b, unsigned_adder_class_name=ppa, use_csa=False) + code = StringIO() + mul.get_cgp_code_flat(code) + cgp_code = code.getvalue() + + mul2 = UnsignedCGPCircuit(cgp_code, [N, N]) + r = mul2(av, bv) + + assert mul(0, 0) == 0 + assert mul2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + + mul = c(a, b, unsigned_adder_class_name=ppa) + code = StringIO() + mul.get_cgp_code_flat(code) + cgp_code = code.getvalue() + + mul2 = UnsignedCGPCircuit(cgp_code, [N, N]) + r = mul2(av, bv) + + assert mul(0, 0) == 0 + assert mul2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + + # Multi-bit adders with configurable (uniform) logic blocks for parallel prefix computation (the ppa will use the block_size argument it recognizes, others are ignored) + for ppa in [UnsignedCarryLookaheadAdder, UnsignedCarrySkipAdder, UnsignedCarrySelectAdder, UnsignedCarryIncrementAdder]: + for i in range(1, N+1): + # Test first the array wallace tree implementation (using more HAs/FAs than CSA implementation) + if c == UnsignedWallaceMultiplier: + mul = c(a, b, unsigned_adder_class_name=ppa, use_csa=False, cla_block_size=i, bypass_block_size=i, select_block_size=i, increment_block_size=i) + code = StringIO() + mul.get_cgp_code_flat(code) + cgp_code = code.getvalue() + + mul2 = UnsignedCGPCircuit(cgp_code, [N, N]) + r = mul2(av, bv) + + assert mul(0, 0) == 0 + assert mul2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + + mul = c(a, b, unsigned_adder_class_name=ppa, cla_block_size=i, bypass_block_size=i, select_block_size=i, increment_block_size=i) + code = StringIO() + mul.get_cgp_code_flat(code) + cgp_code = code.getvalue() + + mul2 = UnsignedCGPCircuit(cgp_code, [N, N]) + r = mul2(av, bv) + + assert mul(0, 0) == 0 + assert mul2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + + # Multi-bit tree adders with configurable structure based on input bit width (NOTE for showcase here, the second config would be applicable from bit width 9 onward; not tested here for the sake of saving deployment testing time) + for adder in [UnsignedHanCarlsonAdder, UnsignedKnowlesAdder, UnsignedLadnerFischerAdder]: + for i in range(1, N+1): + # Test first the array wallace tree implementation (using more HAs/FAs than CSA implementation) + if c == UnsignedWallaceMultiplier: + mul = c(a, b, unsigned_adder_class_name=ppa, use_csa=False, config_choice=1) + code = StringIO() + mul.get_cgp_code_flat(code) + cgp_code = code.getvalue() + + mul2 = UnsignedCGPCircuit(cgp_code, [N, N]) + r = mul2(av, bv) + + assert mul(0, 0) == 0 + assert mul2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + + mul = c(a, b, unsigned_adder_class_name=ppa, config_choice=1) + code = StringIO() + mul.get_cgp_code_flat(code) + cgp_code = code.getvalue() + + mul2 = UnsignedCGPCircuit(cgp_code, [N, N]) + r = mul2(av, bv) + + assert mul(0, 0) == 0 + assert mul2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + + def test_signed_mul(): """ Test signed multipliers """ N = 7 @@ -128,7 +320,8 @@ def test_signed_mul(): bv = av.reshape(-1, 1) expected = av * bv - for c in [SignedDaddaMultiplier, SignedArrayMultiplier, SignedWallaceMultiplier, SignedCarrySaveMultiplier]: + # No configurability + for c in [SignedArrayMultiplier]: mul = c(a, b) code = StringIO() mul.get_cgp_code_flat(code) @@ -137,11 +330,102 @@ def test_signed_mul(): mul2 = SignedCGPCircuit(cgp_code, [N, N]) r = mul2(av, bv) + assert mul(0, 0) == 0 + assert mul2(0, 0) == 0 np.testing.assert_array_equal(expected, r) + # Configurable PPA + for c in [SignedDaddaMultiplier, SignedCarrySaveMultiplier, SignedWallaceMultiplier]: + # Non configurable multi-bit adders + for ppa in [UnsignedPGRippleCarryAdder, UnsignedRippleCarryAdder, UnsignedConditionalSumAdder, UnsignedKoggeStoneAdder, UnsignedBrentKungAdder, UnsignedSklanskyAdder]: + # Test first the array wallace tree implementation (using more HAs/FAs than CSA implementation) + if c == UnsignedWallaceMultiplier: + mul = c(a, b, unsigned_adder_class_name=ppa, use_csa=False) + code = StringIO() + mul.get_cgp_code_flat(code) + cgp_code = code.getvalue() + + mul2 = SignedCGPCircuit(cgp_code, [N, N]) + r = mul2(av, bv) + + assert mul(0, 0) == 0 + assert mul2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + + mul = c(a, b, unsigned_adder_class_name=ppa) + code = StringIO() + mul.get_cgp_code_flat(code) + cgp_code = code.getvalue() + + mul2 = SignedCGPCircuit(cgp_code, [N, N]) + r = mul2(av, bv) + + assert mul(0, 0) == 0 + assert mul2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + + # Multi-bit adders with configurable (uniform) logic blocks for parallel prefix computation (the ppa will use the block_size argument it recognizes, others are ignored) + for ppa in [UnsignedCarryLookaheadAdder, UnsignedCarrySkipAdder, UnsignedCarrySelectAdder, UnsignedCarryIncrementAdder]: + for bs in range(1, N+1): + # Test first the array wallace tree implementation (using more HAs/FAs than CSA implementation) + if c == UnsignedWallaceMultiplier: + mul = c(a, b, unsigned_adder_class_name=ppa, use_csa=False, cla_block_size=bs, bypass_block_size=bs, select_block_size=bs, increment_block_size=bs) + code = StringIO() + mul.get_cgp_code_flat(code) + cgp_code = code.getvalue() + + mul2 = SignedCGPCircuit(cgp_code, [N, N]) + r = mul2(av, bv) + + assert mul(0, 0) == 0 + assert mul2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + + mul = c(a, b, unsigned_adder_class_name=ppa, cla_block_size=bs, bypass_block_size=bs, select_block_size=bs, increment_block_size=bs) + code = StringIO() + mul.get_cgp_code_flat(code) + cgp_code = code.getvalue() + + mul2 = SignedCGPCircuit(cgp_code, [N, N]) + r = mul2(av, bv) + + assert mul(0, 0) == 0 + assert mul2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + + # Multi-bit tree adders with configurable structure based on input bit width (NOTE for showcase here, the second config would be applicable from bit width 9 onward; not tested here for the sake of saving deployment testing time) + for ppa in [UnsignedHanCarlsonAdder, UnsignedKnowlesAdder, UnsignedLadnerFischerAdder]: + for i in range(1, N+1): + # Test first the array wallace tree implementation (using more HAs/FAs than CSA implementation) + if c == UnsignedWallaceMultiplier: + mul = c(a, b, unsigned_adder_class_name=ppa, use_csa=False, config_choice=1) + code = StringIO() + mul.get_cgp_code_flat(code) + cgp_code = code.getvalue() + + mul2 = SignedCGPCircuit(cgp_code, [N, N]) + r = mul2(av, bv) + + assert mul(0, 0) == 0 + assert mul2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + + mul = c(a, b, unsigned_adder_class_name=ppa, config_choice=1) + code = StringIO() + mul.get_cgp_code_flat(code) + cgp_code = code.getvalue() + + mul2 = SignedCGPCircuit(cgp_code, [N, N]) + r = mul2(av, bv) + + assert mul(0, 0) == 0 + assert mul2(0, 0) == 0 + np.testing.assert_array_equal(expected, r) + + def test_cgp_variant1(): # one input is connected to the output (first bit) cgp = "{16,9,37,1,2,1,0}([18]15,12,1)([19]7,7,4)([20]3,12,5)([21]17,3,0)([22]8,14,3)([23]15,3,6)([24]14,0,2)([25]9,9,5)([26]17,13,1)([27]12,13,0)([28]7,16,8)([29]12,11,0)([30]5,13,3)([31]5,13,2)([32]30,12,5)([33]30,29,2)([34]31,33,3)([35]6,14,4)([36]6,14,2)([37]35,34,4)([38]35,34,2)([39]36,38,3)([40]7,15,4)([41]7,15,2)([42]40,39,4)([43]40,39,2)([44]41,43,3)([45]8,16,4)([46]8,16,2)([47]45,44,4)([48]45,44,2)([49]46,48,3)([50]9,17,4)([51]9,17,2)([52]50,49,4)([53]50,49,2)([54]51,53,3)(11,40,33,32,37,42,47,52,54)" c = UnsignedCGPCircuit(cgp, [8, 8], name="cgp_circuit") - assert c(0, 0) == 8 # TypeError: 'int' object is not subscriptable \ No newline at end of file + assert c(0, 0) == 8 # TypeError: 'int' object is not subscriptable diff --git a/tests/test_circuits.sh b/tests/test_circuits.sh index 5d1d91a..e6a5af7 100755 --- a/tests/test_circuits.sh +++ b/tests/test_circuits.sh @@ -27,11 +27,30 @@ test_circuit "adder_signed" "s_rca8" test_circuit "adder_signed" "s_pg_rca8" test_circuit "adder_signed" "s_cska8" test_circuit "adder_signed" "s_cla8" +test_circuit "adder_signed" "s_cosa8" +test_circuit "adder_signed" "s_csla8" +test_circuit "adder_signed" "s_cia8" +test_circuit "adder_signed" "s_ksa8" +test_circuit "adder_signed" "s_bka8" +test_circuit "adder_signed" "s_sa8" +test_circuit "adder_signed" "s_hca8" +test_circuit "adder_signed" "s_ka8" +test_circuit "adder_signed" "s_lfa8" + test_circuit "adder_unsigned" "u_rca8" test_circuit "adder_unsigned" "u_pg_rca8" test_circuit "adder_unsigned" "u_cska8" test_circuit "adder_unsigned" "u_cla8" +test_circuit "adder_unsigned" "u_cosa8" +test_circuit "adder_unsigned" "u_csla8" +test_circuit "adder_unsigned" "u_cia8" +test_circuit "adder_unsigned" "u_ksa8" +test_circuit "adder_unsigned" "u_bka8" +test_circuit "adder_unsigned" "u_sa8" +test_circuit "adder_unsigned" "u_hca8" +test_circuit "adder_unsigned" "u_ka8" +test_circuit "adder_unsigned" "u_lfa8" test_circuit "multiplier_signed" "s_arrmul8" @@ -39,18 +58,54 @@ test_circuit "multiplier_signed" "s_csamul_cla8" test_circuit "multiplier_signed" "s_csamul_rca8" test_circuit "multiplier_signed" "s_csamul_pg_rca8" test_circuit "multiplier_signed" "s_csamul_cska8" +test_circuit "multiplier_signed" "s_csamul_cosa8" +test_circuit "multiplier_signed" "s_csamul_csla8" +test_circuit "multiplier_signed" "s_csamul_cia8" +test_circuit "multiplier_signed" "s_csamul_ksa8" +test_circuit "multiplier_signed" "s_csamul_bka8" +test_circuit "multiplier_signed" "s_csamul_sa8" +test_circuit "multiplier_signed" "s_csamul_hca8" +test_circuit "multiplier_signed" "s_csamul_ka8" +test_circuit "multiplier_signed" "s_csamul_lfa8" test_circuit "multiplier_signed" "s_wallace_cla8" test_circuit "multiplier_signed" "s_wallace_rca8" test_circuit "multiplier_signed" "s_wallace_pg_rca8" test_circuit "multiplier_signed" "s_wallace_cska8" +test_circuit "multiplier_signed" "s_wallace_cosa8" +test_circuit "multiplier_signed" "s_wallace_csla8" +test_circuit "multiplier_signed" "s_wallace_cia8" +test_circuit "multiplier_signed" "s_wallace_ksa8" +test_circuit "multiplier_signed" "s_wallace_bka8" +test_circuit "multiplier_signed" "s_wallace_sa8" +test_circuit "multiplier_signed" "s_wallace_hca8" +test_circuit "multiplier_signed" "s_wallace_ka8" +test_circuit "multiplier_signed" "s_wallace_lfa8" test_circuit "multiplier_signed" "s_CSAwallace_cla8" test_circuit "multiplier_signed" "s_CSAwallace_rca8" test_circuit "multiplier_signed" "s_CSAwallace_pg_rca8" test_circuit "multiplier_signed" "s_CSAwallace_cska8" +test_circuit "multiplier_signed" "s_CSAwallace_cosa8" +test_circuit "multiplier_signed" "s_CSAwallace_csla8" +test_circuit "multiplier_signed" "s_CSAwallace_cia8" +test_circuit "multiplier_signed" "s_CSAwallace_ksa8" +test_circuit "multiplier_signed" "s_CSAwallace_bka8" +test_circuit "multiplier_signed" "s_CSAwallace_sa8" +test_circuit "multiplier_signed" "s_CSAwallace_hca8" +test_circuit "multiplier_signed" "s_CSAwallace_ka8" +test_circuit "multiplier_signed" "s_CSAwallace_lfa8" test_circuit "multiplier_signed" "s_dadda_cla8" test_circuit "multiplier_signed" "s_dadda_rca8" test_circuit "multiplier_signed" "s_dadda_pg_rca8" test_circuit "multiplier_signed" "s_dadda_cska8" +test_circuit "multiplier_signed" "s_dadda_cosa8" +test_circuit "multiplier_signed" "s_dadda_csla8" +test_circuit "multiplier_signed" "s_dadda_cia8" +test_circuit "multiplier_signed" "s_dadda_ksa8" +test_circuit "multiplier_signed" "s_dadda_bka8" +test_circuit "multiplier_signed" "s_dadda_sa8" +test_circuit "multiplier_signed" "s_dadda_hca8" +test_circuit "multiplier_signed" "s_dadda_ka8" +test_circuit "multiplier_signed" "s_dadda_lfa8" test_circuit "multiplier_unsigned" "u_arrmul8" @@ -58,18 +113,54 @@ test_circuit "multiplier_unsigned" "u_csamul_cla8" test_circuit "multiplier_unsigned" "u_csamul_rca8" test_circuit "multiplier_unsigned" "u_csamul_pg_rca8" test_circuit "multiplier_unsigned" "u_csamul_cska8" +test_circuit "multiplier_unsigned" "u_csamul_cosa8" +test_circuit "multiplier_unsigned" "u_csamul_csla8" +test_circuit "multiplier_unsigned" "u_csamul_cia8" +test_circuit "multiplier_unsigned" "u_csamul_ksa8" +test_circuit "multiplier_unsigned" "u_csamul_bka8" +test_circuit "multiplier_unsigned" "u_csamul_sa8" +test_circuit "multiplier_unsigned" "u_csamul_hca8" +test_circuit "multiplier_unsigned" "u_csamul_ka8" +test_circuit "multiplier_unsigned" "u_csamul_lfa8" test_circuit "multiplier_unsigned" "u_wallace_cla8" test_circuit "multiplier_unsigned" "u_wallace_rca8" test_circuit "multiplier_unsigned" "u_wallace_pg_rca8" -test_circuit "multiplier_unsigned" "u_wallace_cska8" +test_circuit "multiplier_unsigned" "u_wallace_cska8" +test_circuit "multiplier_unsigned" "u_wallace_cosa8" +test_circuit "multiplier_unsigned" "u_wallace_csla8" +test_circuit "multiplier_unsigned" "u_wallace_cia8" +test_circuit "multiplier_unsigned" "u_wallace_ksa8" +test_circuit "multiplier_unsigned" "u_wallace_bka8" +test_circuit "multiplier_unsigned" "u_wallace_sa8" +test_circuit "multiplier_unsigned" "u_wallace_hca8" +test_circuit "multiplier_unsigned" "u_wallace_ka8" +test_circuit "multiplier_unsigned" "u_wallace_lfa8" test_circuit "multiplier_unsigned" "u_CSAwallace_cla8" test_circuit "multiplier_unsigned" "u_CSAwallace_rca8" test_circuit "multiplier_unsigned" "u_CSAwallace_pg_rca8" test_circuit "multiplier_unsigned" "u_CSAwallace_cska8" +test_circuit "multiplier_unsigned" "u_CSAwallace_cosa8" +test_circuit "multiplier_unsigned" "u_CSAwallace_csla8" +test_circuit "multiplier_unsigned" "u_CSAwallace_cia8" +test_circuit "multiplier_unsigned" "u_CSAwallace_ksa8" +test_circuit "multiplier_unsigned" "u_CSAwallace_bka8" +test_circuit "multiplier_unsigned" "u_CSAwallace_sa8" +test_circuit "multiplier_unsigned" "u_CSAwallace_hca8" +test_circuit "multiplier_unsigned" "u_CSAwallace_ka8" +test_circuit "multiplier_unsigned" "u_CSAwallace_lfa8" test_circuit "multiplier_unsigned" "u_dadda_cla8" test_circuit "multiplier_unsigned" "u_dadda_rca8" test_circuit "multiplier_unsigned" "u_dadda_pg_rca8" test_circuit "multiplier_unsigned" "u_dadda_cska8" +test_circuit "multiplier_unsigned" "u_dadda_cosa8" +test_circuit "multiplier_unsigned" "u_dadda_csla8" +test_circuit "multiplier_unsigned" "u_dadda_cia8" +test_circuit "multiplier_unsigned" "u_dadda_ksa8" +test_circuit "multiplier_unsigned" "u_dadda_bka8" +test_circuit "multiplier_unsigned" "u_dadda_sa8" +test_circuit "multiplier_unsigned" "u_dadda_hca8" +test_circuit "multiplier_unsigned" "u_dadda_ka8" +test_circuit "multiplier_unsigned" "u_dadda_lfa8" @@ -86,42 +177,131 @@ fi # exporting s_pg_rca8 # exporting s_cska8 # exporting s_cla8 +# exporting s_cosa8 +# exporting s_csla8 +# exporting s_cia8 +# exporting s_ksa8 +# exporting s_bka8 +# exporting s_sa8 +# exporting s_hca8 +# exporting s_ka8 +# exporting s_lfa8 # exporting s_arrmul8 -# exporting s_csamul_cla8 -# exporting s_csamul_rca8 -# exporting s_csamul_pg_rca8 -# exporting s_csamul_cska8 -# exporting s_wallace_cla8 -# exporting s_wallace_rca8 -# exporting s_wallace_pg_rca8 -# exporting s_wallace_cska8 -# exporting s_CSAwallace_cla8 -# exporting s_CSAwallace_rca8 -# exporting s_CSAwallace_pg_rca8 -# exporting s_CSAwallace_cska8 -# exporting s_dadda_cla8 -# exporting s_dadda_rca8 -# exporting s_dadda_pg_rca8 -# exporting s_dadda_cska8 +# exporting s_csamul_cla8" +# exporting s_csamul_rca8" +# exporting s_csamul_pg_rca8" +# exporting s_csamul_cska8" +# exporting s_csamul_cosa8" +# exporting s_csamul_csla8" +# exporting s_csamul_cia8" +# exporting s_csamul_ksa8" +# exporting s_csamul_bka8" +# exporting s_csamul_sa8" +# exporting s_csamul_hca8" +# exporting s_csamul_ka8" +# exporting s_csamul_lfa8" +# exporting s_wallace_cla8" +# exporting s_wallace_rca8" +# exporting s_wallace_pg_rca8" +# exporting s_wallace_cska8" +# exporting s_wallace_cosa8" +# exporting s_wallace_csla8" +# exporting s_wallace_cia8" +# exporting s_wallace_ksa8" +# exporting s_wallace_bka8" +# exporting s_wallace_sa8" +# exporting s_wallace_hca8" +# exporting s_wallace_ka8" +# exporting s_wallace_lfa8 +# exporting s_CSAwallace_cla8" +# exporting s_CSAwallace_rca8" +# exporting s_CSAwallace_pg_rca8" +# exporting s_CSAwallace_cska8" +# exporting s_CSAwallace_cosa8" +# exporting s_CSAwallace_csla8" +# exporting s_CSAwallace_cia8" +# exporting s_CSAwallace_ksa8" +# exporting s_CSAwallace_bka8" +# exporting s_CSAwallace_sa8" +# exporting s_CSAwallace_hca8" +# exporting s_CSAwallace_ka8" +# exporting s_CSAwallace_lfa8 +# exporting s_dadda_cla8" +# exporting s_dadda_rca8" +# exporting s_dadda_pg_rca8" +# exporting s_dadda_cska8" +# exporting s_dadda_cosa8" +# exporting s_dadda_csla8" +# exporting s_dadda_cia8" +# exporting s_dadda_ksa8" +# exporting s_dadda_bka8" +# exporting s_dadda_sa8" +# exporting s_dadda_hca8" +# exporting s_dadda_ka8" +# exporting s_dadda_lfa8 # exporting u_rca8 # exporting u_pg_rca8 # exporting u_cska8 # exporting u_cla8 +# exporting u_cosa8 +# exporting u_csla8 +# exporting u_cia8 +# exporting u_ksa8 +# exporting u_bka8 +# exporting u_sa8 +# exporting u_hca8 +# exporting u_ka8 +# exporting u_lfa8 # exporting u_arrmul8 -# exporting u_csamul_cla8 -# exporting u_csamul_rca8 -# exporting u_csamul_pg_rca8 -# exporting u_csamul_cska8 -# exporting u_wallace_cla8 -# exporting u_wallace_rca8 -# exporting u_wallace_pg_rca8 -# exporting u_wallace_cska8 -# exporting u_CSAwallace_pg_rca8 -# exporting u_CSAwallace_rca8 -# exporting u_CSAwallace_cla8 -# exporting u_CSAwallace_cska8 -# exporting u_dadda_cla8 -# exporting u_dadda_rca8 -# exporting u_dadda_pg_rca8 -# exporting u_dadda_cska8 -# exporting arrdiv8 +# exporting u_csamul_cla8" +# exporting u_csamul_rca8" +# exporting u_csamul_pg_rca8" +# exporting u_csamul_cska8" +# exporting u_csamul_cosa8" +# exporting u_csamul_csla8" +# exporting u_csamul_cia8" +# exporting u_csamul_ksa8" +# exporting u_csamul_bka8" +# exporting u_csamul_sa8" +# exporting u_csamul_hca8" +# exporting u_csamul_ka8" +# exporting u_csamul_lfa8" +# exporting u_wallace_cla8" +# exporting u_wallace_rca8" +# exporting u_wallace_pg_rca8" +# exporting u_wallace_cska8" +# exporting u_wallace_cosa8" +# exporting u_wallace_csla8" +# exporting u_wallace_cia8" +# exporting u_wallace_ksa8" +# exporting u_wallace_bka8" +# exporting u_wallace_sa8" +# exporting u_wallace_hca8" +# exporting u_wallace_ka8" +# exporting u_wallace_lfa8 +# exporting u_CSAwallace_cla8" +# exporting u_CSAwallace_rca8" +# exporting u_CSAwallace_pg_rca8" +# exporting u_CSAwallace_cska8" +# exporting u_CSAwallace_cosa8" +# exporting u_CSAwallace_csla8" +# exporting u_CSAwallace_cia8" +# exporting u_CSAwallace_ksa8" +# exporting u_CSAwallace_bka8" +# exporting u_CSAwallace_sa8" +# exporting u_CSAwallace_hca8" +# exporting u_CSAwallace_ka8" +# exporting u_CSAwallace_lfa8 +# exporting u_dadda_cla8" +# exporting u_dadda_rca8" +# exporting u_dadda_pg_rca8" +# exporting u_dadda_cska8" +# exporting u_dadda_cosa8" +# exporting u_dadda_csla8" +# exporting u_dadda_cia8" +# exporting u_dadda_ksa8" +# exporting u_dadda_bka8" +# exporting u_dadda_sa8" +# exporting u_dadda_hca8" +# exporting u_dadda_ka8" +# exporting u_dadda_lfa8 diff --git a/tests/test_circuits_cgp.sh b/tests/test_circuits_cgp.sh index a4dcf03..f291e75 100755 --- a/tests/test_circuits_cgp.sh +++ b/tests/test_circuits_cgp.sh @@ -16,7 +16,6 @@ test_circuit () { fi python3 ../chr2c.py $s ../test_circuits/cgp_circuits/$mode/$circuit.cgp > tmp.c - g++ -std=c++11 -pedantic -g -std=c++11 -pedantic -DCNAME="circuit8" $type.c tmp.c -o tmp.exe if ./tmp.exe ; then echo -e "[\e[32mok\e[0m]" @@ -32,11 +31,30 @@ test_circuit "adder_signed" "s_rca8" test_circuit "adder_signed" "s_pg_rca8" test_circuit "adder_signed" "s_cska8" test_circuit "adder_signed" "s_cla8" +test_circuit "adder_signed" "s_cosa8" +test_circuit "adder_signed" "s_csla8" +test_circuit "adder_signed" "s_cia8" +test_circuit "adder_signed" "s_ksa8" +test_circuit "adder_signed" "s_bka8" +test_circuit "adder_signed" "s_sa8" +test_circuit "adder_signed" "s_hca8" +test_circuit "adder_signed" "s_ka8" +test_circuit "adder_signed" "s_lfa8" + test_circuit "adder_unsigned" "u_rca8" test_circuit "adder_unsigned" "u_pg_rca8" test_circuit "adder_unsigned" "u_cska8" test_circuit "adder_unsigned" "u_cla8" +test_circuit "adder_unsigned" "u_cosa8" +test_circuit "adder_unsigned" "u_csla8" +test_circuit "adder_unsigned" "u_cia8" +test_circuit "adder_unsigned" "u_ksa8" +test_circuit "adder_unsigned" "u_bka8" +test_circuit "adder_unsigned" "u_sa8" +test_circuit "adder_unsigned" "u_hca8" +test_circuit "adder_unsigned" "u_ka8" +test_circuit "adder_unsigned" "u_lfa8" test_circuit "multiplier_signed" "s_arrmul8" @@ -44,18 +62,54 @@ test_circuit "multiplier_signed" "s_csamul_cla8" test_circuit "multiplier_signed" "s_csamul_rca8" test_circuit "multiplier_signed" "s_csamul_pg_rca8" test_circuit "multiplier_signed" "s_csamul_cska8" +test_circuit "multiplier_signed" "s_csamul_cosa8" +test_circuit "multiplier_signed" "s_csamul_csla8" +test_circuit "multiplier_signed" "s_csamul_cia8" +test_circuit "multiplier_signed" "s_csamul_ksa8" +test_circuit "multiplier_signed" "s_csamul_bka8" +test_circuit "multiplier_signed" "s_csamul_sa8" +test_circuit "multiplier_signed" "s_csamul_hca8" +test_circuit "multiplier_signed" "s_csamul_ka8" +test_circuit "multiplier_signed" "s_csamul_lfa8" test_circuit "multiplier_signed" "s_wallace_cla8" test_circuit "multiplier_signed" "s_wallace_rca8" test_circuit "multiplier_signed" "s_wallace_pg_rca8" test_circuit "multiplier_signed" "s_wallace_cska8" +test_circuit "multiplier_signed" "s_wallace_cosa8" +test_circuit "multiplier_signed" "s_wallace_csla8" +test_circuit "multiplier_signed" "s_wallace_cia8" +test_circuit "multiplier_signed" "s_wallace_ksa8" +test_circuit "multiplier_signed" "s_wallace_bka8" +test_circuit "multiplier_signed" "s_wallace_sa8" +test_circuit "multiplier_signed" "s_wallace_hca8" +test_circuit "multiplier_signed" "s_wallace_ka8" +test_circuit "multiplier_signed" "s_wallace_lfa8" test_circuit "multiplier_signed" "s_CSAwallace_cla8" test_circuit "multiplier_signed" "s_CSAwallace_rca8" test_circuit "multiplier_signed" "s_CSAwallace_pg_rca8" test_circuit "multiplier_signed" "s_CSAwallace_cska8" +test_circuit "multiplier_signed" "s_CSAwallace_cosa8" +test_circuit "multiplier_signed" "s_CSAwallace_csla8" +test_circuit "multiplier_signed" "s_CSAwallace_cia8" +test_circuit "multiplier_signed" "s_CSAwallace_ksa8" +test_circuit "multiplier_signed" "s_CSAwallace_bka8" +test_circuit "multiplier_signed" "s_CSAwallace_sa8" +test_circuit "multiplier_signed" "s_CSAwallace_hca8" +test_circuit "multiplier_signed" "s_CSAwallace_ka8" +test_circuit "multiplier_signed" "s_CSAwallace_lfa8" test_circuit "multiplier_signed" "s_dadda_cla8" test_circuit "multiplier_signed" "s_dadda_rca8" test_circuit "multiplier_signed" "s_dadda_pg_rca8" test_circuit "multiplier_signed" "s_dadda_cska8" +test_circuit "multiplier_signed" "s_dadda_cosa8" +test_circuit "multiplier_signed" "s_dadda_csla8" +test_circuit "multiplier_signed" "s_dadda_cia8" +test_circuit "multiplier_signed" "s_dadda_ksa8" +test_circuit "multiplier_signed" "s_dadda_bka8" +test_circuit "multiplier_signed" "s_dadda_sa8" +test_circuit "multiplier_signed" "s_dadda_hca8" +test_circuit "multiplier_signed" "s_dadda_ka8" +test_circuit "multiplier_signed" "s_dadda_lfa8" test_circuit "multiplier_unsigned" "u_arrmul8" @@ -63,19 +117,54 @@ test_circuit "multiplier_unsigned" "u_csamul_cla8" test_circuit "multiplier_unsigned" "u_csamul_rca8" test_circuit "multiplier_unsigned" "u_csamul_pg_rca8" test_circuit "multiplier_unsigned" "u_csamul_cska8" +test_circuit "multiplier_unsigned" "u_csamul_cosa8" +test_circuit "multiplier_unsigned" "u_csamul_csla8" +test_circuit "multiplier_unsigned" "u_csamul_cia8" +test_circuit "multiplier_unsigned" "u_csamul_ksa8" +test_circuit "multiplier_unsigned" "u_csamul_bka8" +test_circuit "multiplier_unsigned" "u_csamul_sa8" +test_circuit "multiplier_unsigned" "u_csamul_hca8" +test_circuit "multiplier_unsigned" "u_csamul_ka8" +test_circuit "multiplier_unsigned" "u_csamul_lfa8" test_circuit "multiplier_unsigned" "u_wallace_cla8" test_circuit "multiplier_unsigned" "u_wallace_rca8" test_circuit "multiplier_unsigned" "u_wallace_pg_rca8" -test_circuit "multiplier_unsigned" "u_wallace_cska8" +test_circuit "multiplier_unsigned" "u_wallace_cska8" +test_circuit "multiplier_unsigned" "u_wallace_cosa8" +test_circuit "multiplier_unsigned" "u_wallace_csla8" +test_circuit "multiplier_unsigned" "u_wallace_cia8" +test_circuit "multiplier_unsigned" "u_wallace_ksa8" +test_circuit "multiplier_unsigned" "u_wallace_bka8" +test_circuit "multiplier_unsigned" "u_wallace_sa8" +test_circuit "multiplier_unsigned" "u_wallace_hca8" +test_circuit "multiplier_unsigned" "u_wallace_ka8" +test_circuit "multiplier_unsigned" "u_wallace_lfa8" test_circuit "multiplier_unsigned" "u_CSAwallace_cla8" test_circuit "multiplier_unsigned" "u_CSAwallace_rca8" test_circuit "multiplier_unsigned" "u_CSAwallace_pg_rca8" test_circuit "multiplier_unsigned" "u_CSAwallace_cska8" +test_circuit "multiplier_unsigned" "u_CSAwallace_cosa8" +test_circuit "multiplier_unsigned" "u_CSAwallace_csla8" +test_circuit "multiplier_unsigned" "u_CSAwallace_cia8" +test_circuit "multiplier_unsigned" "u_CSAwallace_ksa8" +test_circuit "multiplier_unsigned" "u_CSAwallace_bka8" +test_circuit "multiplier_unsigned" "u_CSAwallace_sa8" +test_circuit "multiplier_unsigned" "u_CSAwallace_hca8" +test_circuit "multiplier_unsigned" "u_CSAwallace_ka8" +test_circuit "multiplier_unsigned" "u_CSAwallace_lfa8" test_circuit "multiplier_unsigned" "u_dadda_cla8" test_circuit "multiplier_unsigned" "u_dadda_rca8" test_circuit "multiplier_unsigned" "u_dadda_pg_rca8" test_circuit "multiplier_unsigned" "u_dadda_cska8" - +test_circuit "multiplier_unsigned" "u_dadda_cosa8" +test_circuit "multiplier_unsigned" "u_dadda_csla8" +test_circuit "multiplier_unsigned" "u_dadda_cia8" +test_circuit "multiplier_unsigned" "u_dadda_ksa8" +test_circuit "multiplier_unsigned" "u_dadda_bka8" +test_circuit "multiplier_unsigned" "u_dadda_sa8" +test_circuit "multiplier_unsigned" "u_dadda_hca8" +test_circuit "multiplier_unsigned" "u_dadda_ka8" +test_circuit "multiplier_unsigned" "u_dadda_lfa8" if [ $valid -eq 1 ]; then @@ -91,42 +180,131 @@ fi # exporting s_pg_rca8 # exporting s_cska8 # exporting s_cla8 +# exporting s_cosa8 +# exporting s_csla8 +# exporting s_cia8 +# exporting s_ksa8 +# exporting s_bka8 +# exporting s_sa8 +# exporting s_hca8 +# exporting s_ka8 +# exporting s_lfa8 # exporting s_arrmul8 -# exporting s_csamul_cla8 -# exporting s_csamul_rca8 -# exporting s_csamul_pg_rca8 -# exporting s_csamul_cska8 -# exporting s_wallace_cla8 -# exporting s_wallace_rca8 -# exporting s_wallace_pg_rca8 -# exporting s_wallace_cska8 -# exporting s_CSAwallace_cla8 -# exporting s_CSAwallace_rca8 -# exporting s_CSAwallace_pg_rca8 -# exporting s_CSAwallace_cska8 -# exporting s_dadda_cla8 -# exporting s_dadda_rca8 -# exporting s_dadda_pg_rca8 -# exporting s_dadda_cska8 +# exporting s_csamul_cla8" +# exporting s_csamul_rca8" +# exporting s_csamul_pg_rca8" +# exporting s_csamul_cska8" +# exporting s_csamul_cosa8" +# exporting s_csamul_csla8" +# exporting s_csamul_cia8" +# exporting s_csamul_ksa8" +# exporting s_csamul_bka8" +# exporting s_csamul_sa8" +# exporting s_csamul_hca8" +# exporting s_csamul_ka8" +# exporting s_csamul_lfa8" +# exporting s_wallace_cla8" +# exporting s_wallace_rca8" +# exporting s_wallace_pg_rca8" +# exporting s_wallace_cska8" +# exporting s_wallace_cosa8" +# exporting s_wallace_csla8" +# exporting s_wallace_cia8" +# exporting s_wallace_ksa8" +# exporting s_wallace_bka8" +# exporting s_wallace_sa8" +# exporting s_wallace_hca8" +# exporting s_wallace_ka8" +# exporting s_wallace_lfa8 +# exporting s_CSAwallace_cla8" +# exporting s_CSAwallace_rca8" +# exporting s_CSAwallace_pg_rca8" +# exporting s_CSAwallace_cska8" +# exporting s_CSAwallace_cosa8" +# exporting s_CSAwallace_csla8" +# exporting s_CSAwallace_cia8" +# exporting s_CSAwallace_ksa8" +# exporting s_CSAwallace_bka8" +# exporting s_CSAwallace_sa8" +# exporting s_CSAwallace_hca8" +# exporting s_CSAwallace_ka8" +# exporting s_CSAwallace_lfa8 +# exporting s_dadda_cla8" +# exporting s_dadda_rca8" +# exporting s_dadda_pg_rca8" +# exporting s_dadda_cska8" +# exporting s_dadda_cosa8" +# exporting s_dadda_csla8" +# exporting s_dadda_cia8" +# exporting s_dadda_ksa8" +# exporting s_dadda_bka8" +# exporting s_dadda_sa8" +# exporting s_dadda_hca8" +# exporting s_dadda_ka8" +# exporting s_dadda_lfa8 # exporting u_rca8 # exporting u_pg_rca8 # exporting u_cska8 # exporting u_cla8 +# exporting u_cosa8 +# exporting u_csla8 +# exporting u_cia8 +# exporting u_ksa8 +# exporting u_bka8 +# exporting u_sa8 +# exporting u_hca8 +# exporting u_ka8 +# exporting u_lfa8 # exporting u_arrmul8 -# exporting u_csamul_cla8 -# exporting u_csamul_rca8 -# exporting u_csamul_pg_rca8 -# exporting u_csamul_cska8 -# exporting u_wallace_cla8 -# exporting u_wallace_rca8 -# exporting u_wallace_pg_rca8 -# exporting u_wallace_cska8 -# exporting u_CSAwallace_pg_rca8 -# exporting u_CSAwallace_rca8 -# exporting u_CSAwallace_cla8 -# exporting u_CSAwallace_cska8 -# exporting u_dadda_cla8 -# exporting u_dadda_rca8 -# exporting u_dadda_pg_rca8 -# exporting u_dadda_cska8 -# exporting arrdiv8 +# exporting u_csamul_cla8" +# exporting u_csamul_rca8" +# exporting u_csamul_pg_rca8" +# exporting u_csamul_cska8" +# exporting u_csamul_cosa8" +# exporting u_csamul_csla8" +# exporting u_csamul_cia8" +# exporting u_csamul_ksa8" +# exporting u_csamul_bka8" +# exporting u_csamul_sa8" +# exporting u_csamul_hca8" +# exporting u_csamul_ka8" +# exporting u_csamul_lfa8" +# exporting u_wallace_cla8" +# exporting u_wallace_rca8" +# exporting u_wallace_pg_rca8" +# exporting u_wallace_cska8" +# exporting u_wallace_cosa8" +# exporting u_wallace_csla8" +# exporting u_wallace_cia8" +# exporting u_wallace_ksa8" +# exporting u_wallace_bka8" +# exporting u_wallace_sa8" +# exporting u_wallace_hca8" +# exporting u_wallace_ka8" +# exporting u_wallace_lfa8 +# exporting u_CSAwallace_cla8" +# exporting u_CSAwallace_rca8" +# exporting u_CSAwallace_pg_rca8" +# exporting u_CSAwallace_cska8" +# exporting u_CSAwallace_cosa8" +# exporting u_CSAwallace_csla8" +# exporting u_CSAwallace_cia8" +# exporting u_CSAwallace_ksa8" +# exporting u_CSAwallace_bka8" +# exporting u_CSAwallace_sa8" +# exporting u_CSAwallace_hca8" +# exporting u_CSAwallace_ka8" +# exporting u_CSAwallace_lfa8 +# exporting u_dadda_cla8" +# exporting u_dadda_rca8" +# exporting u_dadda_pg_rca8" +# exporting u_dadda_cska8" +# exporting u_dadda_cosa8" +# exporting u_dadda_csla8" +# exporting u_dadda_cia8" +# exporting u_dadda_ksa8" +# exporting u_dadda_bka8" +# exporting u_dadda_sa8" +# exporting u_dadda_hca8" +# exporting u_dadda_ka8" +# exporting u_dadda_lfa8 diff --git a/tests/test_circuits_verilog.sh b/tests/test_circuits_verilog.sh index 3f72298..948e8ec 100644 --- a/tests/test_circuits_verilog.sh +++ b/tests/test_circuits_verilog.sh @@ -40,11 +40,30 @@ test_circuit "adder_signed" "s_rca8" test_circuit "adder_signed" "s_pg_rca8" test_circuit "adder_signed" "s_cska8" test_circuit "adder_signed" "s_cla8" +test_circuit "adder_signed" "s_cosa8" +test_circuit "adder_signed" "s_csla8" +test_circuit "adder_signed" "s_cia8" +test_circuit "adder_signed" "s_ksa8" +test_circuit "adder_signed" "s_bka8" +test_circuit "adder_signed" "s_sa8" +test_circuit "adder_signed" "s_hca8" +test_circuit "adder_signed" "s_ka8" +test_circuit "adder_signed" "s_lfa8" + test_circuit "adder_unsigned" "u_rca8" test_circuit "adder_unsigned" "u_pg_rca8" test_circuit "adder_unsigned" "u_cska8" test_circuit "adder_unsigned" "u_cla8" +test_circuit "adder_unsigned" "u_cosa8" +test_circuit "adder_unsigned" "u_csla8" +test_circuit "adder_unsigned" "u_cia8" +test_circuit "adder_unsigned" "u_ksa8" +test_circuit "adder_unsigned" "u_bka8" +test_circuit "adder_unsigned" "u_sa8" +test_circuit "adder_unsigned" "u_hca8" +test_circuit "adder_unsigned" "u_ka8" +test_circuit "adder_unsigned" "u_lfa8" test_circuit "multiplier_signed" "s_arrmul8" @@ -52,18 +71,54 @@ test_circuit "multiplier_signed" "s_csamul_cla8" test_circuit "multiplier_signed" "s_csamul_rca8" test_circuit "multiplier_signed" "s_csamul_pg_rca8" test_circuit "multiplier_signed" "s_csamul_cska8" +test_circuit "multiplier_signed" "s_csamul_cosa8" +test_circuit "multiplier_signed" "s_csamul_csla8" +test_circuit "multiplier_signed" "s_csamul_cia8" +test_circuit "multiplier_signed" "s_csamul_ksa8" +test_circuit "multiplier_signed" "s_csamul_bka8" +test_circuit "multiplier_signed" "s_csamul_sa8" +test_circuit "multiplier_signed" "s_csamul_hca8" +test_circuit "multiplier_signed" "s_csamul_ka8" +test_circuit "multiplier_signed" "s_csamul_lfa8" test_circuit "multiplier_signed" "s_wallace_cla8" test_circuit "multiplier_signed" "s_wallace_rca8" test_circuit "multiplier_signed" "s_wallace_pg_rca8" test_circuit "multiplier_signed" "s_wallace_cska8" +test_circuit "multiplier_signed" "s_wallace_cosa8" +test_circuit "multiplier_signed" "s_wallace_csla8" +test_circuit "multiplier_signed" "s_wallace_cia8" +test_circuit "multiplier_signed" "s_wallace_ksa8" +test_circuit "multiplier_signed" "s_wallace_bka8" +test_circuit "multiplier_signed" "s_wallace_sa8" +test_circuit "multiplier_signed" "s_wallace_hca8" +test_circuit "multiplier_signed" "s_wallace_ka8" +test_circuit "multiplier_signed" "s_wallace_lfa8" test_circuit "multiplier_signed" "s_CSAwallace_cla8" test_circuit "multiplier_signed" "s_CSAwallace_rca8" test_circuit "multiplier_signed" "s_CSAwallace_pg_rca8" test_circuit "multiplier_signed" "s_CSAwallace_cska8" +test_circuit "multiplier_signed" "s_CSAwallace_cosa8" +test_circuit "multiplier_signed" "s_CSAwallace_csla8" +test_circuit "multiplier_signed" "s_CSAwallace_cia8" +test_circuit "multiplier_signed" "s_CSAwallace_ksa8" +test_circuit "multiplier_signed" "s_CSAwallace_bka8" +test_circuit "multiplier_signed" "s_CSAwallace_sa8" +test_circuit "multiplier_signed" "s_CSAwallace_hca8" +test_circuit "multiplier_signed" "s_CSAwallace_ka8" +test_circuit "multiplier_signed" "s_CSAwallace_lfa8" test_circuit "multiplier_signed" "s_dadda_cla8" test_circuit "multiplier_signed" "s_dadda_rca8" test_circuit "multiplier_signed" "s_dadda_pg_rca8" test_circuit "multiplier_signed" "s_dadda_cska8" +test_circuit "multiplier_signed" "s_dadda_cosa8" +test_circuit "multiplier_signed" "s_dadda_csla8" +test_circuit "multiplier_signed" "s_dadda_cia8" +test_circuit "multiplier_signed" "s_dadda_ksa8" +test_circuit "multiplier_signed" "s_dadda_bka8" +test_circuit "multiplier_signed" "s_dadda_sa8" +test_circuit "multiplier_signed" "s_dadda_hca8" +test_circuit "multiplier_signed" "s_dadda_ka8" +test_circuit "multiplier_signed" "s_dadda_lfa8" test_circuit "multiplier_unsigned" "u_arrmul8" @@ -71,18 +126,54 @@ test_circuit "multiplier_unsigned" "u_csamul_cla8" test_circuit "multiplier_unsigned" "u_csamul_rca8" test_circuit "multiplier_unsigned" "u_csamul_pg_rca8" test_circuit "multiplier_unsigned" "u_csamul_cska8" +test_circuit "multiplier_unsigned" "u_csamul_cosa8" +test_circuit "multiplier_unsigned" "u_csamul_csla8" +test_circuit "multiplier_unsigned" "u_csamul_cia8" +test_circuit "multiplier_unsigned" "u_csamul_ksa8" +test_circuit "multiplier_unsigned" "u_csamul_bka8" +test_circuit "multiplier_unsigned" "u_csamul_sa8" +test_circuit "multiplier_unsigned" "u_csamul_hca8" +test_circuit "multiplier_unsigned" "u_csamul_ka8" +test_circuit "multiplier_unsigned" "u_csamul_lfa8" test_circuit "multiplier_unsigned" "u_wallace_cla8" test_circuit "multiplier_unsigned" "u_wallace_rca8" test_circuit "multiplier_unsigned" "u_wallace_pg_rca8" -test_circuit "multiplier_unsigned" "u_wallace_cska8" +test_circuit "multiplier_unsigned" "u_wallace_cska8" +test_circuit "multiplier_unsigned" "u_wallace_cosa8" +test_circuit "multiplier_unsigned" "u_wallace_csla8" +test_circuit "multiplier_unsigned" "u_wallace_cia8" +test_circuit "multiplier_unsigned" "u_wallace_ksa8" +test_circuit "multiplier_unsigned" "u_wallace_bka8" +test_circuit "multiplier_unsigned" "u_wallace_sa8" +test_circuit "multiplier_unsigned" "u_wallace_hca8" +test_circuit "multiplier_unsigned" "u_wallace_ka8" +test_circuit "multiplier_unsigned" "u_wallace_lfa8" test_circuit "multiplier_unsigned" "u_CSAwallace_cla8" test_circuit "multiplier_unsigned" "u_CSAwallace_rca8" test_circuit "multiplier_unsigned" "u_CSAwallace_pg_rca8" test_circuit "multiplier_unsigned" "u_CSAwallace_cska8" +test_circuit "multiplier_unsigned" "u_CSAwallace_cosa8" +test_circuit "multiplier_unsigned" "u_CSAwallace_csla8" +test_circuit "multiplier_unsigned" "u_CSAwallace_cia8" +test_circuit "multiplier_unsigned" "u_CSAwallace_ksa8" +test_circuit "multiplier_unsigned" "u_CSAwallace_bka8" +test_circuit "multiplier_unsigned" "u_CSAwallace_sa8" +test_circuit "multiplier_unsigned" "u_CSAwallace_hca8" +test_circuit "multiplier_unsigned" "u_CSAwallace_ka8" +test_circuit "multiplier_unsigned" "u_CSAwallace_lfa8" test_circuit "multiplier_unsigned" "u_dadda_cla8" test_circuit "multiplier_unsigned" "u_dadda_rca8" test_circuit "multiplier_unsigned" "u_dadda_pg_rca8" test_circuit "multiplier_unsigned" "u_dadda_cska8" +test_circuit "multiplier_unsigned" "u_dadda_cosa8" +test_circuit "multiplier_unsigned" "u_dadda_csla8" +test_circuit "multiplier_unsigned" "u_dadda_cia8" +test_circuit "multiplier_unsigned" "u_dadda_ksa8" +test_circuit "multiplier_unsigned" "u_dadda_bka8" +test_circuit "multiplier_unsigned" "u_dadda_sa8" +test_circuit "multiplier_unsigned" "u_dadda_hca8" +test_circuit "multiplier_unsigned" "u_dadda_ka8" +test_circuit "multiplier_unsigned" "u_dadda_lfa8"