Skip to content

Instantly share code, notes, and snippets.

@phire
Last active January 20, 2018 03:06
Show Gist options
  • Save phire/85b00de7f1f8c67509dbe4c3c3e7d4ff to your computer and use it in GitHub Desktop.
Save phire/85b00de7f1f8c67509dbe4c3c3e7d4ff to your computer and use it in GitHub Desktop.
output of prototype HDL to c++ compiler
#include <array>
struct state {
bool NMI_edge;
bool NMI_1;
unsigned char cond_code;
bool plp;
bool php;
bool clc;
bool sec;
bool cld;
bool sed;
bool cli;
bool sei;
bool clv;
bool bit_ins;
unsigned char op;
bool rotate;
bool shift_right;
bool compare;
bool shift;
bool adc_bcd;
bool adc_sbc;
bool inc;
bool load_only;
bool write_back;
bool store;
bool index_y;
unsigned char src_reg;
unsigned char dst_reg;
bool load_reg;
bool res;
unsigned char state;
unsigned char DIHOLD;
unsigned char IRHOLD;
bool IRHOLD_valid;
bool V;
bool D;
bool I;
bool N;
bool Z;
bool C;
bool backwards;
unsigned char memwrAXYScpuv53327_ADDR;
unsigned char memwrAXYScpuv53327_DATA;
unsigned char memwrAXYScpuv53327_EN;
bool adj_bcd;
unsigned char ABL;
unsigned char ABH;
unsigned short PC;
bool CO;
bool AN;
unsigned char ALUOUT;
bool HC;
bool ALUAI7;
bool ALUBI7;
std::array<unsigned char, 4> AXYS;
};
void on_clock(state &before, state &after, bool clk, bool reset, unsigned char DI, bool IRQ, bool NMI, bool RDY, unsigned short &AB, unsigned char &DO, bool &WE) {
bool procmux713_CTRL = ((((before.state == 0x2e) | ((before.state == 0x23) << 1)) | ((before.state == 0x24) << 2)) != 0);
bool autortlilcc1698Or1202 = ((((before.state == 0x2f) | ((before.state == 0x12) << 1)) != 0) | procmux713_CTRL);
bool procmux717_CTRL = ((((((before.state == 0x22) | ((before.state == 0x25) << 1)) | ((before.state == 0x2a) << 2)) | ((before.state == 0x8) << 3)) | ((before.state == 0x1a) << 4)) != 0);
unsigned char DIMUX = (RDY ? DI : before.DIHOLD);
unsigned short autosplicecc140get_spliced_signal1574 = (before.ALUOUT | (DIMUX << 8));
unsigned short autosplicecc140get_spliced_signal1570 = (before.ALUOUT | (before.ABH << 8));
bool procmux666_CTRL = ((((((((((((before.state == 0x22) | ((before.state == 0x1f) << 1)) | ((before.state == 0x1c) << 2)) | ((before.state == 0x25) << 3)) | ((before.state == 0x28) << 4)) | ((before.state == 0x2a) << 5)) | ((before.state == 0x2c) << 6)) | ((before.state == 0xb) << 7)) | ((before.state == 0x8) << 8)) | ((before.state == 0x1e) << 9)) | ((before.state == 0x1a) << 10)) != 0);
unsigned char regsel = (((before.state == 0xc) | procmux666_CTRL) ? (procmux666_CTRL ? 0x1 : before.dst_reg) : ((((((before.state == 0x30) | ((before.state == 0x2) << 1)) | ((before.state == 0xe) << 2)) | ((before.state == 0x13) << 3)) != 0) ? ((before.index_y ? 0x1 : 0x0) | (0x1 << 1)) : before.src_reg));
unsigned char regfile = before.AXYS[regsel];
unsigned short autosplicecc140get_spliced_signal1562 = (before.ABL | (before.ABH << 8));
AB = ((((((((((((((((before.state == 0x31) | ((before.state == 0xf) << 1)) | ((before.state == 0x10) << 2)) | ((before.state == 0x13) << 3)) | ((before.state == 0x1f) << 4)) | ((before.state == 0x1b) << 5)) | ((before.state == 0x26) << 6)) | ((before.state == 0x28) << 7)) | ((before.state == 0x2b) << 8)) | ((before.state == 0x2c) << 9)) | ((before.state == 0x9) << 10)) | ((before.state == 0xa) << 11)) | (autortlilcc1698Or1202 << 12)) | ((before.state == 0x27) << 13)) != 0) ? (autortlilcc1698Or1202 ? (procmux713_CTRL ? autosplicecc140get_spliced_signal1562 : (DIMUX | (0x0 << 8))) : (((((((before.state == 0x31) | ((before.state == 0xf) << 1)) | ((before.state == 0x10) << 2)) | ((before.state == 0x13) << 3)) != 0) ? (before.ALUOUT | (0x0 << 8)) : (before.ALUOUT | (0x1 << 8))) | (0x0 << 9))) : (((before.state == 0x6) | procmux717_CTRL) ? (procmux717_CTRL ? (regfile | (0x1 << 8)) : autosplicecc140get_spliced_signal1570) : (((((before.state == 0x4) | ((before.state == 0x15) << 1)) | ((before.state == 0x7) << 2)) != 0) ? (before.ABL | (before.ALUOUT << 8)) : (((((((((before.state == 0x1) | ((before.state == 0x3) << 1)) | ((before.state == 0x11) << 2)) | ((before.state == 0x14) << 3)) | ((before.state == 0x29) << 4)) | ((before.state == 0x17) << 5)) | ((before.state == 0x19) << 6)) != 0) ? autosplicecc140get_spliced_signal1574 : before.PC))));
unsigned char P = ((((((before.C | (before.Z << 1)) | (before.I << 2)) | (before.D << 3)) | (0x3 << 4)) | (before.V << 6)) | (before.N << 7));
DO = ((((((before.state == 0x22) | ((before.state == 0x1b) << 1)) | ((before.state == 0x9) << 2)) | ((before.state == 0xa) << 3)) != 0) ? ((before.state == 0xa) ? ((IRQ | before.NMI_edge) ? (P & 0xef) : P) : ((before.state == 0x22) ? (before.php ? P : before.ALUOUT) : (before.PC & 0xff))) : ((((before.state == 0x8) | ((before.state == 0x1a) << 1)) != 0) ? (before.PC >> 8) : ((before.state == 0x2e) ? before.ALUOUT : regfile)));
WE = ((((((((before.state == 0x2f) | ((before.state == 0x31) << 1)) | ((before.state == 0x1) << 2)) | ((before.state == 0x4) << 3)) | ((before.state == 0x11) << 4)) | ((before.state == 0x15) << 5)) != 0) ? before.store : (((((((((before.state == 0x22) | ((before.state == 0x1b) << 1)) | ((before.state == 0x9) << 2)) | ((before.state == 0xa) << 3)) | ((before.state == 0x8) << 4)) | ((before.state == 0x2e) << 5)) | ((before.state == 0x1a) << 6)) != 0) ? 0x1 : 0x0));
bool ALUBCD = (before.adc_bcd & (before.state == 0xd));
bool orcpuv29832_Y = ((IRQ & ~before.I) | before.NMI_edge);
unsigned char IR = (orcpuv29832_Y ? 0x0 : (before.IRHOLD_valid ? before.IRHOLD : DIMUX));
unsigned char autosplicecc140get_spliced_signal1780 = ((IR & 0x1f) | ((IR >> 7) << 5));
unsigned char autosplicecc140get_spliced_signal1698 = ((IR & 0xf) | ((IR >> 7) << 4));
bool autoopt_reducecc132opt_mux842 = ((((autosplicecc140get_spliced_signal1780 == 0x18) | ((autosplicecc140get_spliced_signal1698 == 0x18) << 1)) | (((IR & 0xf) == 0xa) << 2)) != 0);
bool autoopt_reducecc132opt_mux850 = (((before.state == 0x19) | ((before.state == 0xb) << 1)) != 0);
bool autoopt_reducecc132opt_mux854 = ((((((before.state == 0x11) | ((before.state == 0x15) << 1)) | ((before.state == 0x1d) << 2)) | ((before.state == 0x2d) << 3)) | ((before.state == 0x2e) << 4)) != 0);
bool autortlilcc1698Or1002 = ((before.state == 0xf) | (before.state == 0x10));
bool autortlilcc1698Or1036 = (((((IR & 0x1f) == 0x19) | ((((IR >> 2) & 0x7) == 0x7) << 1)) != 0) | autoopt_reducecc132opt_mux842);
bool autortlilcc1698Or1046 = ((((((IR == 0x2c) | ((autosplicecc140get_spliced_signal1780 == 0x2c) << 1)) | (((IR & 0x1f) == 0xd) << 2)) | (((IR & 0x1f) == 0xe) << 3)) != 0) | ((IR & 0x1f) == 0x10));
unsigned char autosplicecc140get_spliced_signal1756 = ((IR & 0x3f) | ((IR >> 7) << 6));
bool autortlilcc1698Or1058 = ((autosplicecc140get_spliced_signal1756 == 0x8) | (autosplicecc140get_spliced_signal1756 == 0x28));
bool autortlilcc1698Or866 = ((before.cond_code == 0x6) | (before.cond_code == 0x7));
bool autortlilcc1698Or930 = ((before.state == 0xa) | autoopt_reducecc132opt_mux850);
bool autortlilcc1698Or940 = (((((((((before.state == 0x22) | ((before.state == 0x20) << 1)) | ((before.state == 0x29) << 2)) | ((before.state == 0x7) << 3)) | ((before.state == 0x17) << 4)) | ((before.state == 0x24) << 5)) | ((before.state == 0xd) << 6)) != 0) | (before.state == 0x18));
bool autortlilcc1698Or952 = ((before.state == 0x2c) | autoopt_reducecc132opt_mux854);
bool autortlilcc1698Or962 = ((before.state == 0x27) | (before.state == 0x28));
bool autortlilcc1698Or978 = ((before.state == 0x1a) | (before.state == 0x1b));
bool autortlilcc1698Or988 = ((before.state == 0x23) | (before.state == 0x21));
bool CI = (((((((((((((before.state == 0xf) | ((before.state == 0x12) << 1)) | ((before.state == 0x25) << 2)) | ((before.state == 0x26) << 3)) | ((before.state == 0x2a) << 4)) | ((before.state == 0x2b) << 5)) | ((before.state == 0x1e) << 6)) | ((before.state == 0x27) << 7)) | ((before.state == 0x23) << 8)) | ((before.state == 0x24) << 9)) | ((before.state == 0xd) << 10)) != 0) ? ((((((((((before.state == 0xf) | ((before.state == 0x12) << 1)) | ((before.state == 0x25) << 2)) | ((before.state == 0x26) << 3)) | ((before.state == 0x2a) << 4)) | ((before.state == 0x2b) << 5)) | ((before.state == 0x1e) << 6)) | ((before.state == 0x27) << 7)) != 0) ? 0x1 : ((before.state == 0xd) ? (before.rotate ? before.C : (before.compare ? 0x1 : ((before.shift | before.load_only) ? 0x0 : before.C))) : (before.rotate ? before.C : (before.shift ? 0x0 : before.inc)))) : (((((before.state == 0x3) | ((before.state == 0x14) << 1)) | ((before.state == 0x6) << 2)) != 0) ? before.CO : 0x0));
bool procmux636_CTRL = (((before.state == 0x1) | ((before.state == 0xc) << 1)) != 0);
unsigned char BI = (((before.state == 0x5) | procmux636_CTRL) ? (before.PC & 0xff) : ((((((((((((((((((((before.state == 0xf) | ((before.state == 0x22) << 1)) | ((before.state == 0x1b) << 2)) | ((before.state == 0x1c) << 3)) | ((before.state == 0x25) << 4)) | ((before.state == 0x26) << 5)) | ((before.state == 0x2a) << 6)) | ((before.state == 0x2b) << 7)) | ((before.state == 0x6) << 8)) | ((before.state == 0x9) << 9)) | ((before.state == 0xa) << 10)) | ((before.state == 0x8) << 11)) | ((before.state == 0x21) << 12)) | ((before.state == 0x1e) << 13)) | ((before.state == 0x27) << 14)) | ((before.state == 0x23) << 15)) | ((before.state == 0x24) << 16)) | ((before.state == 0x1a) << 17)) != 0) ? 0x0 : DIMUX));
bool procmux648_CTRL = (((before.state == 0x5) | ((before.state == 0x23) << 1)) != 0);
unsigned char ALUAI = ((((((before.state == 0x1) | ((before.state == 0x6) << 1)) | ((before.state == 0xc) << 2)) | ((before.state == 0xd) << 3)) != 0) ? ((before.state == 0xd) ? (before.load_only ? 0x0 : regfile) : before.ABH) : ((((((((((((((((before.state == 0x30) | ((before.state == 0x2) << 1)) | ((before.state == 0xe) << 2)) | ((before.state == 0x13) << 3)) | ((before.state == 0x22) << 4)) | ((before.state == 0x1c) << 5)) | ((before.state == 0x25) << 6)) | ((before.state == 0x2a) << 7)) | ((before.state == 0x8) << 8)) | ((before.state == 0x21) << 9)) | ((before.state == 0x1e) << 10)) | ((before.state == 0x24) << 11)) | ((before.state == 0x1a) << 12)) != 0) | procmux648_CTRL) ? (procmux648_CTRL ? DIMUX : regfile) : (((((((((before.state == 0xf) | ((before.state == 0x1b) << 1)) | ((before.state == 0x26) << 2)) | ((before.state == 0x2b) << 3)) | ((before.state == 0x9) << 4)) | ((before.state == 0xa) << 5)) | ((before.state == 0x27) << 6)) != 0) ? before.ALUOUT : 0x0)));
bool procmux659_CTRL = (((((((before.state == 0x22) | ((before.state == 0x1b) << 1)) | ((before.state == 0x9) << 2)) | ((before.state == 0xa) << 3)) | ((before.state == 0x8) << 4)) | ((before.state == 0x1a) << 5)) != 0);
unsigned char alu_op = ((procmux636_CTRL | procmux659_CTRL) ? ((procmux659_CTRL ? 0x7 : 0x0) | (0x0 << 3)) : (((((before.state == 0x23) | ((before.state == 0x24) << 1)) | ((before.state == 0xd) << 2)) != 0) ? before.op : (((before.state == 0x6) ? (before.backwards ? 0x7 : 0x3) : 0x3) | (0x0 << 3))));
unsigned char autosplicecc140get_spliced_signal1960 = ((before.CO | (before.adc_bcd << 1)) | (before.adj_bcd << 2));
bool procmux683_CMP = ~before.adj_bcd;
unsigned char ADJH = ((autosplicecc140get_spliced_signal1960 == 0x7) ? 0x6 : ((((procmux683_CMP | ((autosplicecc140get_spliced_signal1960 == 0x5) << 1)) | ((autosplicecc140get_spliced_signal1960 == 0x6) << 2)) != 0) ? 0x0 : 0xa));
unsigned char autosplicecc140get_spliced_signal1964 = ((before.HC | (before.adc_bcd << 1)) | (before.adj_bcd << 2));
unsigned char ADJL = ((autosplicecc140get_spliced_signal1964 == 0x7) ? 0x6 : (((((autosplicecc140get_spliced_signal1964 == 0x5) | ((autosplicecc140get_spliced_signal1964 == 0x6) << 1)) | (procmux683_CMP << 2)) != 0) ? 0x0 : 0xa));
bool write_register = ((((((((before.state == 0x1f) | ((before.state == 0x1c) << 1)) | ((before.state == 0x28) << 2)) | ((before.state == 0x2c) << 3)) | ((before.state == 0xb) << 4)) | ((before.state == 0x1a) << 5)) != 0) ? 0x1 : ((before.state == 0xc) ? (before.load_reg & ~before.plp) : 0x0));
bool procmux463_CMP = ~before.state;
bool PC_inc = ((((((((((((procmux463_CMP | ((before.state == 0x2) << 1)) | ((before.state == 0x29) << 2)) | ((before.state == 0x2d) << 3)) | ((before.state == 0x5) << 4)) | ((before.state == 0x7) << 5)) | ((before.state == 0x17) << 6)) | ((before.state == 0x19) << 7)) | ((before.state == 0xb) << 8)) | ((before.state == 0xd) << 9)) != 0) | (before.state == 0x6)) ? ((before.state == 0x6) ? ~(before.CO ^ before.backwards) : 0x1) : ((before.state == 0xc) ? (orcpuv29832_Y ? 0x0 : 0x1) : 0x0));
unsigned short PC_temp = (((((before.state == 0x6) | ((before.state == 0x7) << 1)) | ((before.state == 0xa) << 2)) != 0) ? ((before.state == 0xa) ? ((before.res ? 0x4 : (before.NMI_edge ? 0x2 : 0x6)) | (0x1fff << 3)) : ((before.state == 0x7) ? ((before.PC & 0xff) | (before.ALUOUT << 8)) : autosplicecc140get_spliced_signal1570)) : (((((((before.state == 0x1d) | ((before.state == 0x29) << 1)) | ((before.state == 0x2d) << 2)) | ((before.state == 0x17) << 3)) | ((before.state == 0x19) << 4)) != 0) ? autosplicecc140get_spliced_signal1574 : ((before.state == 0xc) ? (orcpuv29832_Y ? autosplicecc140get_spliced_signal1562 : before.PC) : before.PC)));
bool alu_shift_right = ((((before.state == 0xd) | (before.state == 0x24)) | (before.state == 0x23)) ? before.shift_right : 0x0);
unsigned short ALUtemp_logic = (alu_shift_right ? (((ALUAI >> 1) | (CI << 7)) | ((ALUAI & 0x1) << 8)) : ((((alu_op & 0x3) == 0x2) | ((alu_op & 0x3) == 0x3)) ? (((alu_op & 0x3) == 0x3) ? (ALUAI | (0x0 << 8)) : ((ALUAI ^ BI) | (0x0 << 8))) : (((alu_op & 0x3) == 0x1) ? ((ALUAI & BI) | (0x0 << 8)) : ((ALUAI | BI) | (0x0 << 8)))));
unsigned char ALUtemp_BI = ((((alu_op >> 2) == 0x2) | ((alu_op >> 2) == 0x3)) ? (((alu_op >> 2) == 0x3) ? 0x0 : (ALUtemp_logic & 0xff)) : (((alu_op >> 2) == 0x1) ? ~BI : BI));
bool cond_true = (((((before.cond_code == 0x4) | ((before.cond_code == 0x5) << 1)) | (autortlilcc1698Or866 << 2)) != 0) ? (autortlilcc1698Or866 ? ((before.cond_code == 0x7) ? before.Z : ~before.Z) : ((before.cond_code == 0x5) ? before.C : ~before.C)) : (((before.cond_code == 0x2) | (before.cond_code == 0x3)) ? ((before.cond_code == 0x3) ? before.V : ~before.V) : ((before.cond_code == 0x1) ? before.N : ~before.N)));
unsigned char autosplicecc140get_spliced_signal1642 = ((IR & 0x3) | ((IR >> 5) << 2));
unsigned char autosplicecc140get_spliced_signal1646 = ((IR & 0x3) | ((IR >> 6) << 2));
unsigned char autosplicecc140get_spliced_signal1660 = ((IR & 0x7) | ((IR >> 5) << 3));
unsigned char autosplicecc140get_spliced_signal1664 = ((IR & 0x7) | ((IR >> 4) << 3));
unsigned char autosplicecc140get_spliced_signal1694 = ((IR & 0x1f) | ((IR >> 6) << 5));
unsigned char autosplicecc140get_spliced_signal1736 = ((IR & 0x3) | ((IR >> 4) << 2));
bool logic_andcpuv1083199_Y = (((before.state == 0xc) | (before.state == 0x8)) & RDY);
bool logic_andcpuv1010179_Y = ((before.state == 0xc) & RDY);
bool logic_andcpuv41553_Y = ((((((before.state != 0x21) & (before.state != 0x22)) & RDY) & (before.state != 0x1e)) & (before.state != 0x1f)) & (before.state != 0x20));
bool logic_andcpuv786129_Y = ((before.state == 0xd) & before.bit_ins);
bool logic_orcpuv843146_Y = ((before.state == 0x1e) | (before.state == 0x21));
bool orcpuv772119_Y = ((before.load_reg & (regsel != 0x1)) | before.compare);
bool orcpuv903160_Y = (before.CO | before.store);
bool procmux390_CTRL = (((((autosplicecc140get_spliced_signal1756 == 0x48) | ((autosplicecc140get_spliced_signal1756 == 0x48) << 1)) | ((autosplicecc140get_spliced_signal1756 == 0x48) << 2)) | ((autosplicecc140get_spliced_signal1756 == 0x48) << 3)) != 0);
bool procmux398_CTRL = ((((autosplicecc140get_spliced_signal1664 == 0x50) | ((autosplicecc140get_spliced_signal1664 == 0x50) << 1)) | ((autosplicecc140get_spliced_signal1756 == 0x48) << 2)) != 0);
bool ALUadder_CI = ((alu_shift_right | ((alu_op >> 2) == 0x3)) ? 0x0 : CI);
unsigned char ALUtemp_l = (((ALUtemp_logic & 0xf) + (ALUtemp_BI & 0xf)) + ALUadder_CI);
bool ALUHC9 = (ALUBCD & (((ALUtemp_l >> 1) & 0x7) >= 0x5));
bool ALUtemp_HC = ((ALUtemp_l >> 4) | ALUHC9);
unsigned char ALUtemp_h = (((ALUtemp_logic >> 4) + (ALUtemp_BI >> 4)) + ALUtemp_HC);
bool ALUCO9 = (ALUBCD & (((ALUtemp_h >> 1) & 0x7) >= 0x5));
bool AZ = ~(((((((((before.ALUOUT >> 7) | (((before.ALUOUT >> 6) & 0x1) << 1)) | (((before.ALUOUT >> 5) & 0x1) << 2)) | (((before.ALUOUT >> 4) & 0x1) << 3)) | (((before.ALUOUT >> 3) & 0x1) << 4)) | (((before.ALUOUT >> 2) & 0x1) << 5)) | (((before.ALUOUT >> 1) & 0x1) << 6)) | ((before.ALUOUT & 0x1) << 7)) != 0);
bool AV = (((before.ALUAI7 ^ before.ALUBI7) ^ before.CO) ^ before.AN);
after.NMI_edge = ((before.NMI_edge & (before.state == 0xb)) ? 0x0 : ((NMI & ~before.NMI_1) ? 0x1 : before.NMI_edge));
after.NMI_1 = NMI;
after.cond_code = (RDY ? (IR >> 5) : before.cond_code);
after.plp = (logic_andcpuv1010179_Y ? (IR == 0x28) : before.plp);
after.php = (logic_andcpuv1010179_Y ? (IR == 0x8) : before.php);
after.clc = (logic_andcpuv1010179_Y ? (IR == 0x18) : before.clc);
after.sec = (logic_andcpuv1010179_Y ? (IR == 0x38) : before.sec);
after.cld = (logic_andcpuv1010179_Y ? (IR == 0xd8) : before.cld);
after.sed = (logic_andcpuv1010179_Y ? (IR == 0xf8) : before.sed);
after.cli = (logic_andcpuv1010179_Y ? (IR == 0x58) : before.cli);
after.sei = (logic_andcpuv1010179_Y ? (IR == 0x78) : before.sei);
after.clv = (logic_andcpuv1010179_Y ? (IR == 0xb8) : before.clv);
after.bit_ins = (logic_andcpuv1010179_Y ? ((autosplicecc140get_spliced_signal1664 == 0x14) ? 0x1 : 0x0) : before.bit_ins);
after.op = (logic_andcpuv1010179_Y ? (((((((((((autosplicecc140get_spliced_signal1646 == 0x6) | ((IR == 0xca) << 1)) | ((IR == 0xca) << 2)) | ((IR == 0xca) << 3)) | ((IR == 0xca) << 4)) | ((IR == 0xca) << 5)) | ((IR == 0xca) << 6)) | ((autosplicecc140get_spliced_signal1646 == 0x1) << 7)) | ((autosplicecc140get_spliced_signal1646 == 0x1) << 8)) != 0) ? ((((autosplicecc140get_spliced_signal1646 == 0x1) | ((autosplicecc140get_spliced_signal1646 == 0x1) << 1)) != 0) ? (((IR >> 5) & 0x3) | (0x3 << 2)) : ((((((((IR == 0xca) | ((IR == 0xca) << 1)) | ((IR == 0xca) << 2)) | ((IR == 0xca) << 3)) | ((IR == 0xca) << 4)) | ((IR == 0xca) << 5)) != 0) ? 0x7 : 0xf)) : ((autosplicecc140get_spliced_signal1664 == 0x14) ? 0xd : ((autosplicecc140get_spliced_signal1646 == 0x2) ? 0xb : 0x3))) : before.op);
after.rotate = (logic_andcpuv1010179_Y ? (((((((IR & 0x7) | (((IR >> 5) & 0x1) << 3)) | ((IR >> 7) << 4)) == 0xe) | (((((IR & 0x7) | (((IR >> 5) & 0x1) << 3)) | ((IR >> 7) << 4)) == 0xe) << 1)) != 0) ? 0x1 : 0x0) : before.rotate);
after.shift_right = (logic_andcpuv1010179_Y ? ((autosplicecc140get_spliced_signal1646 == 0x6) ? 0x1 : 0x0) : before.shift_right);
after.compare = (logic_andcpuv1010179_Y ? (((((autosplicecc140get_spliced_signal1642 == 0x19) | ((IR == 0xca) << 1)) | ((IR == 0xca) << 2)) != 0) ? 0x1 : 0x0) : before.compare);
after.shift = (logic_andcpuv1010179_Y ? ((((((IR & 0x7) | ((IR >> 7) << 3)) == 0x6) | ((((IR & 0x7) | ((IR >> 7) << 3)) == 0x6) << 1)) != 0) ? 0x1 : 0x0) : before.shift);
after.adc_bcd = (logic_andcpuv1083199_Y ? ((autosplicecc140get_spliced_signal1642 == 0xd) ? before.D : 0x0) : before.adc_bcd);
after.adc_sbc = (logic_andcpuv1083199_Y ? ((((IR & 0x3) | (((IR >> 5) & 0x3) << 2)) == 0xd) ? 0x1 : 0x0) : before.adc_sbc);
after.inc = (logic_andcpuv1010179_Y ? ((((autosplicecc140get_spliced_signal1694 == 0x68) | ((autosplicecc140get_spliced_signal1694 == 0x68) << 1)) != 0) ? 0x1 : 0x0) : before.inc);
after.load_only = (logic_andcpuv1010179_Y ? (((IR >> 5) == 0x5) ? 0x1 : 0x0) : before.load_only);
after.write_back = (logic_andcpuv1010179_Y ? ((((((IR & 0x7) | ((IR >> 6) << 3)) == 0x1e) | ((((IR & 0x7) | ((IR >> 7) << 3)) == 0x6) << 1)) != 0) ? 0x1 : 0x0) : before.write_back);
after.store = (logic_andcpuv1010179_Y ? ((((autosplicecc140get_spliced_signal1642 == 0x11) | ((autosplicecc140get_spliced_signal1642 == 0x11) << 1)) != 0) ? 0x1 : 0x0) : before.store);
after.index_y = (logic_andcpuv1010179_Y ? ((((((IR & 0x1f) == 0x11) | (((IR & 0x1f) == 0x11) << 1)) | (((IR & 0x1f) == 0x11) << 2)) != 0) ? 0x1 : 0x0) : before.index_y);
after.src_reg = (logic_andcpuv1010179_Y ? (((((((IR == 0xca) | ((autosplicecc140get_spliced_signal1736 == 0x38) << 1)) | ((autosplicecc140get_spliced_signal1736 == 0x38) << 2)) | ((autosplicecc140get_spliced_signal1736 == 0x38) << 3)) != 0) | procmux390_CTRL) ? ((procmux390_CTRL ? 0x1 : 0x0) | (0x1 << 1)) : (((IR == 0xba) ? 0x1 : 0x0) | (0x0 << 1))) : before.src_reg);
after.dst_reg = (logic_andcpuv1010179_Y ? (((((autosplicecc140get_spliced_signal1756 == 0x8) | ((autosplicecc140get_spliced_signal1756 == 0x8) << 1)) != 0) | procmux398_CTRL) ? (procmux398_CTRL ? 0x3 : 0x1) : (((((autosplicecc140get_spliced_signal1642 == 0x16) | ((autosplicecc140get_spliced_signal1642 == 0x16) << 1)) | ((IR == 0xca) << 2)) != 0) ? 0x2 : 0x0)) : before.dst_reg);
after.load_reg = (logic_andcpuv1010179_Y ? ((((((((((((IR & 0x1f) == 0x8) | (((IR & 0x1f) == 0x8) << 1)) | (((IR & 0x1f) == 0x8) << 2)) | (((IR & 0x1f) == 0x8) << 3)) | (((IR & 0x1f) == 0x8) << 4)) | (((IR & 0x1f) == 0x8) << 5)) | (((IR & 0x1f) == 0x8) << 6)) | ((IR == 0xba) << 7)) | ((IR == 0xca) << 8)) != 0) ? 0x1 : 0x0) : before.load_reg);
after.res = (reset ? 0x1 : ((before.state == 0xc) ? 0x0 : before.res));
after.state = (reset ? 0x8 : (RDY ? (((((((((((((((autortlilcc1698Or930 | (autortlilcc1698Or940 << 1)) | (autortlilcc1698Or952 << 2)) | (autortlilcc1698Or962 << 3)) | ((before.state == 0x1c) << 4)) | ((before.state == 0x25) << 5)) | ((before.state == 0x26) << 6)) | ((before.state == 0x2a) << 7)) | ((before.state == 0x2b) << 8)) | ((before.state == 0x5) << 9)) | ((before.state == 0x6) << 10)) | ((before.state == 0x16) << 11)) | ((before.state == 0x9) << 12)) | ((before.state == 0x8) << 13)) != 0) ? ((((((((autortlilcc1698Or930 | (autortlilcc1698Or940 << 1)) | ((before.state == 0x5) << 2)) | ((before.state == 0x6) << 3)) | ((before.state == 0x16) << 4)) | ((before.state == 0x9) << 5)) | ((before.state == 0x8) << 6)) != 0) ? ((((autortlilcc1698Or930 | ((before.state == 0x9) << 1)) | ((before.state == 0x8) << 2)) != 0) ? (autortlilcc1698Or930 ? ((autoopt_reducecc132opt_mux850 ? 0x16 : 0xb) | (0x0 << 5)) : (((before.state == 0x9) ? 0x2 : 0x1) | (0x2 << 2))) : (autortlilcc1698Or940 ? (((before.state == 0x18) ? 0x19 : 0xc) | (0x0 << 5)) : ((before.state == 0x16) ? 0x17 : (((before.state == 0x6) ? ((before.CO ^ before.backwards) ? 0x7 : 0xc) : (cond_true ? 0x6 : 0xc)) | (0x0 << 4))))) : ((((autortlilcc1698Or952 | ((before.state == 0x2a) << 1)) | ((before.state == 0x2b) << 2)) != 0) ? (autortlilcc1698Or952 ? (autoopt_reducecc132opt_mux854 ? 0xd : 0x2d) : (((before.state == 0x2b) ? 0x4 : 0x3) | (0x5 << 3))) : (autortlilcc1698Or962 ? (((before.state == 0x28) ? 0x1 : 0x0) | (0x14 << 1)) : ((before.state == 0x26) ? 0x27 : ((before.state == 0x25) ? 0x26 : 0x1d))))) : ((((((((autortlilcc1698Or978 | (autortlilcc1698Or988 << 1)) | ((before.state == 0x12) << 2)) | ((before.state == 0x13) << 3)) | ((before.state == 0x14) << 4)) | ((before.state == 0x1f) << 5)) | ((before.state == 0x1e) << 6)) != 0) ? ((((autortlilcc1698Or978 | ((before.state == 0x1f) << 1)) | ((before.state == 0x1e) << 2)) != 0) ? (autortlilcc1698Or978 ? (((before.state == 0x1b) ? 0x4 : 0x3) | (0x3 << 3)) : ((before.state == 0x1f) ? 0x20 : 0x1f)) : (autortlilcc1698Or988 ? (((before.state == 0x21) ? 0x2 : 0xe) | (0x2 << 4)) : ((before.state == 0x14) ? ((orcpuv903160_Y ? 0x15 : 0xd) | (0x0 << 5)) : (((before.state == 0x13) ? 0x4 : 0x3) | (0x2 << 3))))) : ((((((((autortlilcc1698Or1002 | ((before.state == 0x2f) << 1)) | ((before.state == 0x31) << 2)) | ((before.state == 0x1) << 3)) | ((before.state == 0x3) << 4)) | ((before.state == 0x4) << 5)) | ((before.state == 0xe) << 6)) != 0) ? (autortlilcc1698Or1002 ? (((before.state == 0x10) ? 0x1 : 0x0) | (0x8 << 1)) : ((before.state == 0xe) ? 0xf : ((((((before.state == 0x2f) | ((before.state == 0x31) << 1)) | ((before.state == 0x1) << 2)) | ((before.state == 0x4) << 3)) != 0) ? (before.write_back ? 0x23 : 0xd) : (((orcpuv903160_Y | before.write_back) ? 0x4 : 0xd) | (0x0 << 4))))) : ((procmux463_CMP | (before.state == 0x2)) ? (((before.state == 0x2) ? 0x3 : 0x1) | (0x0 << 2)) : ((before.state == 0x30) ? 0x31 : ((before.state == 0xc) ? (((((((((autortlilcc1698Or1036 | (autortlilcc1698Or1046 << 1)) | (((((IR & 0x1) | (((IR >> 2) & 0x7) << 1)) | ((IR >> 7) << 4)) == 0x10) << 2)) | (((IR & 0x1f) == 0x1) << 3)) | ((((IR >> 2) & 0x7) == 0x1) << 4)) | (((IR & 0x1f) == 0x9) << 5)) | ((((IR >> 2) & 0x7) == 0x5) << 6)) | (((IR & 0x1f) == 0x11) << 7)) != 0) ? ((((autortlilcc1698Or1036 | ((((IR >> 2) & 0x7) == 0x5) << 1)) | (((IR & 0x1f) == 0x11) << 2)) != 0) ? (autortlilcc1698Or1036 ? (autoopt_reducecc132opt_mux842 ? 0x24 : 0x2) : ((((IR >> 2) & 0x7) == 0x5) ? 0x30 : 0x12)) : (autortlilcc1698Or1046 ? ((((IR & 0x1f) == 0x10) ? 0x5 : 0x0) | (0x0 << 3)) : (((((((IR & 0x1) | (((IR >> 2) & 0x7) << 1)) | ((IR >> 7) << 4)) == 0x10) | (((IR & 0x1f) == 0x9) << 1)) != 0) ? 0xd : ((((IR >> 2) & 0x7) == 0x1) ? 0x2f : 0xe)))) : (((((IR == 0x60) | ((IR == 0x6c) << 1)) | (autortlilcc1698Or1058 << 2)) != 0) ? (autortlilcc1698Or1058 ? ((autosplicecc140get_spliced_signal1756 == 0x28) ? 0x1e : 0x21) : ((IR == 0x6c) ? 0x18 : 0x2a)) : (((IR == 0x40) | (IR == 0x4c)) ? ((IR == 0x4c) ? 0x16 : 0x25) : ((IR == 0x20) ? 0x1a : (~IR ? 0x8 : before.state))))) : before.state)))))) : before.state));
after.DIHOLD = DIMUX;
after.IRHOLD = (reset ? before.IRHOLD : (RDY ? (logic_orcpuv843146_Y ? DIMUX : before.IRHOLD) : before.IRHOLD));
after.IRHOLD_valid = (reset ? 0x0 : (RDY ? (logic_orcpuv843146_Y ? 0x1 : ((before.state == 0xc) ? 0x0 : before.IRHOLD_valid)) : before.IRHOLD_valid));
after.V = ((before.state == 0x27) ? ((DIMUX >> 6) & 0x1) : ((before.state == 0xc) ? (before.plp ? ((before.ALUOUT >> 6) & 0x1) : (before.clv ? 0x0 : (before.adc_sbc ? AV : before.V))) : (logic_andcpuv786129_Y ? ((DIMUX >> 6) & 0x1) : before.V)));
after.D = ((before.state == 0x27) ? ((DIMUX >> 3) & 0x1) : ((before.state == 0xc) ? (before.plp ? ((before.ALUOUT >> 3) & 0x1) : (before.cld ? 0x0 : (before.sed ? 0x1 : before.D))) : before.D));
after.I = ((before.state == 0xb) ? 0x1 : ((before.state == 0x27) ? ((DIMUX >> 2) & 0x1) : ((before.state == 0x24) ? (before.cli ? 0x0 : (before.sei ? 0x1 : before.I)) : ((before.state == 0xc) ? (before.plp ? ((before.ALUOUT >> 2) & 0x1) : before.I) : before.I))));
after.N = ((before.state == 0x2e) ? before.AN : ((before.state == 0x27) ? (DIMUX >> 7) : ((before.state == 0xc) ? (before.plp ? (before.ALUOUT >> 7) : (orcpuv772119_Y ? before.AN : before.N)) : (logic_andcpuv786129_Y ? (DIMUX >> 7) : before.N))));
after.Z = ((before.state == 0x2e) ? AZ : ((before.state == 0x27) ? ((DIMUX >> 1) & 0x1) : ((before.state == 0xc) ? (before.plp ? ((before.ALUOUT >> 1) & 0x1) : ((orcpuv772119_Y | before.bit_ins) ? AZ : before.Z)) : before.Z)));
after.C = ((before.shift & (before.state == 0x2e)) ? before.CO : ((before.state == 0x27) ? (DIMUX & 0x1) : ((~before.write_back & (before.state == 0xc)) ? (((before.adc_sbc | before.shift) | before.compare) ? before.CO : (before.plp ? (before.ALUOUT & 0x1) : (before.clc ? 0x0 : (before.sec ? 0x1 : before.C)))) : before.C)));
after.backwards = (RDY ? (DIMUX >> 7) : before.backwards);
after.memwrAXYScpuv53327_ADDR = regsel;
after.memwrAXYScpuv53327_DATA = ((before.state == 0x1a) ? DIMUX : (((before.ALUOUT & 0xf) + ADJL) | (((before.ALUOUT >> 4) + ADJH) << 4)));
after.memwrAXYScpuv53327_EN = (((((((((write_register & RDY) ? 0x1 : 0x0) | (((write_register & RDY) ? 0x1 : 0x0) << 1)) | (((write_register & RDY) ? 0x1 : 0x0) << 2)) | (((write_register & RDY) ? 0x1 : 0x0) << 3)) | (((write_register & RDY) ? 0x1 : 0x0) << 4)) | (((write_register & RDY) ? 0x1 : 0x0) << 5)) | (((write_register & RDY) ? 0x1 : 0x0) << 6)) | (((write_register & RDY) ? 0x1 : 0x0) << 7));
after.adj_bcd = (before.adc_sbc & before.D);
after.ABL = (logic_andcpuv41553_Y ? (AB & 0xff) : before.ABL);
after.ABH = (logic_andcpuv41553_Y ? (AB >> 8) : before.ABH);
after.PC = (RDY ? (PC_temp + PC_inc) : before.PC);
after.CO = (RDY ? ((ALUtemp_h >> 4) | ALUCO9) : before.CO);
after.AN = (RDY ? ((ALUtemp_h >> 3) & 0x1) : before.AN);
after.ALUOUT = (RDY ? ((ALUtemp_l & 0xf) | ((ALUtemp_h & 0xf) << 4)) : before.ALUOUT);
after.HC = (RDY ? ALUtemp_HC : before.HC);
after.ALUAI7 = (RDY ? (ALUAI >> 7) : before.ALUAI7);
after.ALUBI7 = (RDY ? (ALUtemp_BI >> 7) : before.ALUBI7);
after.AXYS = before.AXYS;
if (before.memwrAXYScpuv53327_EN != 0)
after.AXYS[before.memwrAXYScpuv53327_ADDR] = before.memwrAXYScpuv53327_DATA;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment