-- MEG program for Control PLA for Square Root ALU INPUTS: INIT HIBIT OP1 OP2 OP3; OUTPUTS: LDACC ENIN ENADD ENAND ENOR ENNOT ENTMP CLRTMP LDCOMPARE LD4 LD3 LD2 LD1 LD0 ERROR; -- Macros processed by the C preprocessor -- Return to the start state when INIT is asserted reset on INIT to Start; -- Start of state descriptions Start : case (OP1 OP2 OP3 HIBIT) 0 0 0 ? => Start(ENIN LDACC); 0 0 1 ? => Start(ENADD LDACC); 0 1 0 ? => Start(ENAND LDACC); 0 1 1 ? => Start(ENOR LDACC); 1 0 0 ? => Start(ENNOT LDACC); 1 1 1 0 => StartSQRT(CLRTMP LD4 LD3 LD2 LD1 LD0); 1 1 1 1 => Start(ERROR); endcase => ANY; StartSQRT : GOTO start4(LD4); start4 : GOTO finish4(LD4 LDCOMPARE); finish4 : GOTO start3(LD3); start3 : GOTO finish3(LD3 LDCOMPARE); finish3 : GOTO start2(LD2); start2 : GOTO finish2(LD2 LDCOMPARE); finish2 : GOTO start1(LD1); start1 : GOTO finish1(LD1 LDCOMPARE); finish1 : GOTO start0(LD0); start0 : GOTO finish0(LD0 LDCOMPARE); finish0 : GOTO Start(ENTMP LDACC);