|  | `include "./logic_macro.sim.v" | 
|  | `include "./c_frag_modes.sim.v" | 
|  | `include "./q_frag_modes.sim.v" | 
|  | `include "./f_frag.sim.v" | 
|  |  | 
|  | (* FASM_FEATURES="LOGIC.LOGIC.Ipwr_gates.J_pwr_st" *) | 
|  | (* MODES="MACRO;FRAGS" *) | 
|  | module LOGIC (QST, QDS, TBS, TAB, TSL, TA1, TA2, TB1, TB2, BAB, BSL, BA1, BA2, BB1, BB2, QDI, QEN, QCK, QRT, F1, F2, FS, TZ, CZ, QZ, FZ, FAKE_CONST); | 
|  | input wire QST; | 
|  | input wire QDS; | 
|  | input wire TBS; | 
|  | input wire TAB; | 
|  | input wire TSL; | 
|  | input wire TA1; | 
|  | input wire TA2; | 
|  | input wire TB1; | 
|  | input wire TB2; | 
|  | input wire BAB; | 
|  | input wire BSL; | 
|  | input wire BA1; | 
|  | input wire BA2; | 
|  | input wire BB1; | 
|  | input wire BB2; | 
|  | input wire QDI; | 
|  | input wire QEN; | 
|  | input wire QCK; | 
|  | input wire QRT; | 
|  | input wire F1; | 
|  | input wire F2; | 
|  | input wire FS; | 
|  | output wire TZ; | 
|  | output wire CZ; | 
|  | output wire QZ; | 
|  | output wire FZ; | 
|  |  | 
|  | // This is a synthetic pin that can be connected to the global const | 
|  | // network bypassing the switchbox. | 
|  | input wire FAKE_CONST; | 
|  |  | 
|  | parameter MODE = "MACRO"; | 
|  |  | 
|  | // LOGIC macro | 
|  | generate if (MODE == "MACRO") begin | 
|  |  | 
|  | (* FASM_PREFIX="LOGIC.LOGIC" *) | 
|  | LOGIC_MACRO logic_macro ( | 
|  | .TBS(TBS), | 
|  | .TAB(TAB), | 
|  | .TSL(TSL), | 
|  | .TA1(TA1), | 
|  | .TA2(TA2), | 
|  | .TB1(TB1), | 
|  | .TB2(TB2), | 
|  | .BAB(BAB), | 
|  | .BSL(BSL), | 
|  | .BA1(BA1), | 
|  | .BA2(BA2), | 
|  | .BB1(BB1), | 
|  | .BB2(BB2), | 
|  | .TZ (TZ), | 
|  | .CZ (CZ), | 
|  |  | 
|  | .QCK(QCK), | 
|  | .QST(QST), | 
|  | .QRT(QRT), | 
|  | .QEN(QEN), | 
|  | .QDI(QDI), | 
|  | .QDS(QDS), | 
|  | .QZ (QZ), | 
|  |  | 
|  | .F1 (F1), | 
|  | .F2 (F2), | 
|  | .FS (FS), | 
|  | .FZ (FZ) | 
|  | ); | 
|  |  | 
|  | // LOGIC split into fragments | 
|  | end else if (MODE == "FRAGS") begin | 
|  |  | 
|  | // The C-Frag (with modes) | 
|  | (* FASM_PREFIX="LOGIC.LOGIC" *) | 
|  | C_FRAG_MODES c_frag_modes ( | 
|  | .TBS(TBS), | 
|  | .TAB(TAB), | 
|  | .TSL(TSL), | 
|  | .TA1(TA1), | 
|  | .TA2(TA2), | 
|  | .TB1(TB1), | 
|  | .TB2(TB2), | 
|  | .BAB(BAB), | 
|  | .BSL(BSL), | 
|  | .BA1(BA1), | 
|  | .BA2(BA2), | 
|  | .BB1(BB1), | 
|  | .BB2(BB2), | 
|  | .TZ (TZ), | 
|  | .CZ (CZ) | 
|  | ); | 
|  |  | 
|  | // The Q-Frag (with modes) | 
|  | (* FASM_PREFIX="LOGIC.LOGIC" *) | 
|  | Q_FRAG_MODES q_frag_modes ( | 
|  | .QCK(QCK), | 
|  | .QST(QST), | 
|  | .QRT(QRT), | 
|  | .QEN(QEN), | 
|  | .QDI(QDI), | 
|  | .QDS(QDS), | 
|  | .CZI(CZ), | 
|  | .QZ (QZ), | 
|  |  | 
|  | .FAKE_CONST (FAKE_CONST) | 
|  | ); | 
|  |  | 
|  | // The F-Frag | 
|  | F_FRAG f_frag ( | 
|  | .F1 (F1), | 
|  | .F2 (F2), | 
|  | .FS (FS), | 
|  | .FZ (FZ) | 
|  | ); | 
|  |  | 
|  | end endgenerate | 
|  |  | 
|  | endmodule |