//  C:\XILINX\BIN\CONTROLUNIT\CONSTATE.v
//  Verilog created by Xilinx's StateCAD 5.1i
//  Fri Oct 31 19:58:22 2003

//  This Verilog code (for use with Xilinx XST) was generated using: 
//  one-hot state assignment with boolean code format.
//  Minimization is enabled,  implied else is enabled, 
//  and outputs are speed optimized.

`timescale 1s/1s

module constate(CLK,FUNCT0,FUNCT1,FUNCT2,FUNCT3,INTERRUPT,OPCODE0,OPCODE1,
	OPCODE2,OPCODE3,RESET,ZCValue,ALUOp0,ALUOp1,ALUOp2,EPCWRITE,INTWRITE,IRWRITE,
	MEMWRITE,Mux0,Mux1b0,Mux1b1,Mux1b2,Mux2,Mux3b0,Mux3b1,Mux5,Mux6b0,Mux6b1,
	Mux6b2,Mux7b0,Mux7b1,Mux7b2,Mux8b0,Mux8b1,Mux9,Mux10,OUTWRITE,PCWRITE,
	REGWRITE,SPECIALWRITE);

	input CLK;
	input FUNCT0,FUNCT1,FUNCT2,FUNCT3,INTERRUPT,OPCODE0,OPCODE1,OPCODE2,OPCODE3,
		RESET,ZCValue;
	output ALUOp0,ALUOp1,ALUOp2,EPCWRITE,INTWRITE,IRWRITE,MEMWRITE,Mux0,Mux1b0,
		Mux1b1,Mux1b2,Mux2,Mux3b0,Mux3b1,Mux5,Mux6b0,Mux6b1,Mux6b2,Mux7b0,Mux7b1,
		Mux7b2,Mux8b0,Mux8b1,Mux9,Mux10,OUTWRITE,PCWRITE,REGWRITE,SPECIALWRITE;
	reg BP_ALUOp0,next_BP_ALUOp0,BP_ALUOp1,next_BP_ALUOp1,BP_ALUOp2,
		next_BP_ALUOp2,BP_EPCWRITE,next_BP_EPCWRITE,BP_INTWRITE,next_BP_INTWRITE,
		BP_IRWRITE,next_BP_IRWRITE,BP_MEMWRITE,next_BP_MEMWRITE,BP_Mux0,next_BP_Mux0,
		BP_Mux1b0,next_BP_Mux1b0,BP_Mux1b1,next_BP_Mux1b1,BP_Mux1b2,next_BP_Mux1b2,
		BP_Mux2,next_BP_Mux2,BP_Mux3b0,next_BP_Mux3b0,BP_Mux3b1,next_BP_Mux3b1,
		BP_Mux5,next_BP_Mux5,BP_Mux6b0,next_BP_Mux6b0,BP_Mux6b1,next_BP_Mux6b1,
		BP_Mux6b2,next_BP_Mux6b2,BP_Mux7b0,next_BP_Mux7b0,BP_Mux7b1,next_BP_Mux7b1,
		BP_Mux7b2,next_BP_Mux7b2,BP_Mux8b0,next_BP_Mux8b0,BP_Mux8b1,next_BP_Mux8b1,
		BP_Mux9,next_BP_Mux9,BP_Mux10,next_BP_Mux10,BP_OUTWRITE,next_BP_OUTWRITE,
		BP_PCWRITE,next_BP_PCWRITE,BP_REGWRITE,next_BP_REGWRITE,BP_SPECIALWRITE,
		next_BP_SPECIALWRITE;
	reg ALUOp0,ALUOp1,ALUOp2,EPCWRITE,INTWRITE,IRWRITE,MEMWRITE,Mux0,Mux1b0,
		Mux1b1,Mux1b2,Mux2,Mux3b0,Mux3b1,Mux5,Mux6b0,Mux6b1,Mux6b2,Mux7b0,Mux7b1,
		Mux7b2,Mux8b0,Mux8b1,Mux9,Mux10,OUTWRITE,PCWRITE,REGWRITE,SPECIALWRITE;
	reg add3,next_add3,add4,next_add4,and3,next_and3,and4,next_and4,b3,next_b3,
		b4,next_b4,INT_STATE,next_INT_STATE,inv3,next_inv3,inv4,next_inv4,jal3,
		next_jal3,jr3,next_jr3,lds3,next_lds3,lli3,next_lli3,lli4,next_lli4,lui3,
		next_lui3,lw3,next_lw3,lw4,next_lw4,or3,next_or3,or4,next_or4,seq3,next_seq3,
		seq4a,next_seq4a,seq4b,next_seq4b,sll3,next_sll3,slt3,next_slt3,slt4,
		next_slt4,spc3,next_spc3,STATE0,next_STATE0,STATE1,next_STATE1,sub3,next_sub3
		,sub4,next_sub4,sw3,next_sw3;

	always @(posedge CLK or posedge RESET)
	begin
		if ( RESET ) begin
			add3 = 0;
			add4 = 0;
			and3 = 0;
			and4 = 0;
			b3 = 0;
			b4 = 0;
			INT_STATE = 0;
			inv3 = 0;
			inv4 = 0;
			jal3 = 0;
			jr3 = 0;
			lds3 = 0;
			lli3 = 0;
			lli4 = 0;
			lui3 = 0;
			lw3 = 0;
			lw4 = 0;
			or3 = 0;
			or4 = 0;
			seq3 = 0;
			seq4a = 0;
			seq4b = 0;
			sll3 = 0;
			slt3 = 0;
			slt4 = 0;
			spc3 = 0;
			STATE0 = 1;
			STATE1 = 0;
			sub3 = 0;
			sub4 = 0;
			sw3 = 0;
			BP_ALUOp0 = 0;
			BP_ALUOp1 = 0;
			BP_ALUOp2 = 0;
			BP_EPCWRITE = 0;
			BP_INTWRITE = 0;
			BP_MEMWRITE = 0;
			BP_Mux0 = 0;
			BP_Mux1b1 = 0;
			BP_Mux1b2 = 0;
			BP_Mux2 = 0;
			BP_Mux3b0 = 0;
			BP_Mux3b1 = 0;
			BP_Mux5 = 0;
			BP_Mux6b0 = 0;
			BP_Mux6b1 = 0;
			BP_Mux7b0 = 0;
			BP_Mux7b1 = 0;
			BP_Mux7b2 = 0;
			BP_Mux8b0 = 0;
			BP_Mux8b1 = 0;
			BP_Mux9 = 0;
			BP_Mux10 = 0;
			BP_OUTWRITE = 0;
			BP_REGWRITE = 0;
			BP_SPECIALWRITE = 0;
			BP_IRWRITE = 1;
			BP_Mux1b0 = 1;
			BP_Mux6b2 = 1;
			BP_PCWRITE = 1;
		end else
		begin
			add3 = next_add3;
			add4 = next_add4;
			and3 = next_and3;
			and4 = next_and4;
			b3 = next_b3;
			b4 = next_b4;
			INT_STATE = next_INT_STATE;
			inv3 = next_inv3;
			inv4 = next_inv4;
			jal3 = next_jal3;
			jr3 = next_jr3;
			lds3 = next_lds3;
			lli3 = next_lli3;
			lli4 = next_lli4;
			lui3 = next_lui3;
			lw3 = next_lw3;
			lw4 = next_lw4;
			or3 = next_or3;
			or4 = next_or4;
			seq3 = next_seq3;
			seq4a = next_seq4a;
			seq4b = next_seq4b;
			sll3 = next_sll3;
			slt3 = next_slt3;
			slt4 = next_slt4;
			spc3 = next_spc3;
			STATE0 = next_STATE0;
			STATE1 = next_STATE1;
			sub3 = next_sub3;
			sub4 = next_sub4;
			sw3 = next_sw3;
			BP_ALUOp0 = next_BP_ALUOp0;
			BP_ALUOp1 = next_BP_ALUOp1;
			BP_ALUOp2 = next_BP_ALUOp2;
			BP_EPCWRITE = next_BP_EPCWRITE;
			BP_INTWRITE = next_BP_INTWRITE;
			BP_IRWRITE = next_BP_IRWRITE;
			BP_MEMWRITE = next_BP_MEMWRITE;
			BP_Mux0 = next_BP_Mux0;
			BP_Mux1b0 = next_BP_Mux1b0;
			BP_Mux1b1 = next_BP_Mux1b1;
			BP_Mux1b2 = next_BP_Mux1b2;
			BP_Mux2 = next_BP_Mux2;
			BP_Mux3b0 = next_BP_Mux3b0;
			BP_Mux3b1 = next_BP_Mux3b1;
			BP_Mux5 = next_BP_Mux5;
			BP_Mux6b0 = next_BP_Mux6b0;
			BP_Mux6b1 = next_BP_Mux6b1;
			BP_Mux6b2 = next_BP_Mux6b2;
			BP_Mux7b0 = next_BP_Mux7b0;
			BP_Mux7b1 = next_BP_Mux7b1;
			BP_Mux7b2 = next_BP_Mux7b2;
			BP_Mux8b0 = next_BP_Mux8b0;
			BP_Mux8b1 = next_BP_Mux8b1;
			BP_Mux9 = next_BP_Mux9;
			BP_Mux10 = next_BP_Mux10;
			BP_OUTWRITE = next_BP_OUTWRITE;
			BP_PCWRITE = next_BP_PCWRITE;
			BP_REGWRITE = next_BP_REGWRITE;
			BP_SPECIALWRITE = next_BP_SPECIALWRITE;
		end
	end

	always @ (add3 or add4 or and3 or and4 or b3 or b4 or BP_ALUOp0 or BP_ALUOp1
		 or BP_ALUOp2 or BP_EPCWRITE or BP_INTWRITE or BP_IRWRITE or BP_MEMWRITE or 
		BP_Mux0 or BP_Mux1b0 or BP_Mux1b1 or BP_Mux1b2 or BP_Mux2 or BP_Mux3b0 or 
		BP_Mux3b1 or BP_Mux5 or BP_Mux6b0 or BP_Mux6b1 or BP_Mux6b2 or BP_Mux7b0 or 
		BP_Mux7b1 or BP_Mux7b2 or BP_Mux8b0 or BP_Mux8b1 or BP_Mux9 or BP_Mux10 or 
		BP_OUTWRITE or BP_PCWRITE or BP_REGWRITE or BP_SPECIALWRITE or FUNCT0 or 
		FUNCT1 or FUNCT2 or FUNCT3 or INT_STATE or INTERRUPT or inv3 or inv4 or jal3 
		or jr3 or lds3 or lli3 or lli4 or lui3 or lw3 or lw4 or OPCODE0 or OPCODE1 or
		 OPCODE2 or OPCODE3 or or3 or or4 or seq3 or seq4a or seq4b or sll3 or slt3 
		or slt4 or spc3 or STATE0 or STATE1 or sub3 or sub4 or sw3 or ZCValue)
	begin

		if ( ~OPCODE0 & ~OPCODE1 & ~OPCODE2 & OPCODE3 & STATE1 ) next_add3=1;
		else next_add3=0;

		if ( add3 ) next_add4=1;
		else next_add4=0;

		if ( ~OPCODE0 & ~OPCODE1 & OPCODE2 & OPCODE3 & STATE1 ) next_and3=1;
		else next_and3=0;

		if ( and3 ) next_and4=1;
		else next_and4=0;

		if ( OPCODE0 & ~OPCODE1 & OPCODE2 & ~OPCODE3 & STATE1 ) next_b3=1;
		else next_b3=0;

		if ( ZCValue & b3 ) next_b4=1;
		else next_b4=0;

		if ( INTERRUPT & STATE0 ) next_INT_STATE=1;
		else next_INT_STATE=0;

		if ( OPCODE0 & OPCODE1 & OPCODE2 & OPCODE3 & ~FUNCT0 & FUNCT1 & ~FUNCT2 & 
			~FUNCT3 & STATE1 ) next_inv3=1;
		else next_inv3=0;

		if ( inv3 ) next_inv4=1;
		else next_inv4=0;

		if ( ~OPCODE0 & OPCODE1 & ~OPCODE2 & OPCODE3 & STATE1 ) next_jal3=1;
		else next_jal3=0;

		if ( ~OPCODE0 & OPCODE1 & OPCODE2 & ~OPCODE3 & STATE1 ) next_jr3=1;
		else next_jr3=0;

		if ( OPCODE0 & OPCODE1 & OPCODE2 & OPCODE3 & ~FUNCT0 & ~FUNCT1 & FUNCT2 & 
			~FUNCT3 & STATE1 ) next_lds3=1;
		else next_lds3=0;

		if ( OPCODE0 & ~OPCODE1 & ~OPCODE2 & OPCODE3 & STATE1 ) next_lli3=1;
		else next_lli3=0;

		if ( lli3 ) next_lli4=1;
		else next_lli4=0;

		if ( OPCODE0 & ~OPCODE1 & ~OPCODE2 & ~OPCODE3 & STATE1 ) next_lui3=1;
		else next_lui3=0;

		if ( OPCODE0 & OPCODE1 & OPCODE2 & OPCODE3 & ~FUNCT0 & ~FUNCT1 & ~FUNCT2 & 
			~FUNCT3 & STATE1 ) next_lw3=1;
		else next_lw3=0;

		if ( lw3 ) next_lw4=1;
		else next_lw4=0;

		if ( OPCODE0 & OPCODE1 & ~OPCODE2 & OPCODE3 & STATE1 ) next_or3=1;
		else next_or3=0;

		if ( or3 ) next_or4=1;
		else next_or4=0;

		if ( OPCODE0 & OPCODE1 & ~OPCODE2 & ~OPCODE3 & STATE1 ) next_seq3=1;
		else next_seq3=0;

		if ( ~ZCValue & seq3 ) next_seq4a=1;
		else next_seq4a=0;

		if ( ZCValue & seq3 ) next_seq4b=1;
		else next_seq4b=0;

		if ( ~OPCODE0 & OPCODE1 & ~OPCODE2 & ~OPCODE3 & STATE1 ) next_sll3=1;
		else next_sll3=0;

		if ( OPCODE0 & ~OPCODE1 & OPCODE2 & OPCODE3 & STATE1 ) next_slt3=1;
		else next_slt3=0;

		if ( slt3 ) next_slt4=1;
		else next_slt4=0;

		if ( OPCODE0 & OPCODE1 & OPCODE2 & OPCODE3 & ~FUNCT0 & ~FUNCT1 & FUNCT2 & 
			FUNCT3 & STATE1 ) next_spc3=1;
		else next_spc3=0;

		if ( add4 | and4 | ~ZCValue & b3 | b4 | INT_STATE | inv4 | jal3 | jr3 | 
			lds3 | lli4 | lui3 | lw4 | or4 | seq4a | seq4b | sll3 | slt4 | spc3 | sub4 | 
			sw3 ) next_STATE0=1;
		else next_STATE0=0;

		if ( ~INTERRUPT & STATE0 | OPCODE2 & OPCODE1 & FUNCT1 & FUNCT3 & OPCODE3 & 
			STATE1 | OPCODE2 & OPCODE1 & FUNCT2 & OPCODE3 & FUNCT1 & STATE1 | OPCODE2 & 
			OPCODE1 & FUNCT1 & FUNCT3 & OPCODE0 & STATE1 | OPCODE2 & OPCODE1 & FUNCT2 & 
			OPCODE0 & FUNCT1 & STATE1 | OPCODE2 & OPCODE1 & FUNCT0 & OPCODE3 & STATE1 | 
			OPCODE2 & OPCODE1 & FUNCT0 & OPCODE0 & STATE1 | ~OPCODE3 & OPCODE2 & OPCODE0 
			& OPCODE1 & STATE1 | ~OPCODE0 & OPCODE1 & OPCODE2 & OPCODE3 & STATE1 | 
			~OPCODE3 & ~OPCODE0 & ~OPCODE1 & ~OPCODE2 & STATE1 ) next_STATE1=1;
		else next_STATE1=0;

		if ( ~OPCODE0 & ~OPCODE1 & OPCODE2 & ~OPCODE3 & STATE1 ) next_sub3=1;
		else next_sub3=0;

		if ( sub3 ) next_sub4=1;
		else next_sub4=0;

		if ( OPCODE0 & OPCODE1 & OPCODE2 & OPCODE3 & ~FUNCT0 & ~FUNCT1 & ~FUNCT2 & 
			FUNCT3 & STATE1 ) next_sw3=1;
		else next_sw3=0;


		if ( BP_ALUOp0 & add3 | BP_ALUOp0 & and3 | BP_ALUOp0 & ZCValue & b3 | 
			OPCODE0 & OPCODE1 & OPCODE2 & OPCODE3 & ~FUNCT0 & FUNCT1 & ~FUNCT2 & ~FUNCT3 
			& STATE1 | BP_ALUOp0 & inv3 | BP_ALUOp0 & lli3 | BP_ALUOp0 & lw3 | BP_ALUOp0 
			& or3 | BP_ALUOp0 & seq3 | BP_ALUOp0 & slt3 | BP_ALUOp0 & STATE0 | BP_ALUOp0 
			& ~OPCODE1 & ~OPCODE2 & ~OPCODE3 & STATE1 | BP_ALUOp0 & ~OPCODE0 & ~OPCODE2 &
			 ~OPCODE3 & STATE1 | BP_ALUOp0 & ~OPCODE0 & OPCODE1 & OPCODE3 & STATE1 | 
			BP_ALUOp0 & OPCODE1 & OPCODE2 & STATE1 | BP_ALUOp0 & sub3 ) next_BP_ALUOp0=1;
		else next_BP_ALUOp0=0;

		if ( BP_ALUOp1 & add3 | ~OPCODE0 & ~OPCODE1 & OPCODE2 & OPCODE3 & STATE1 | 
			BP_ALUOp1 & and3 | BP_ALUOp1 & ZCValue & b3 | BP_ALUOp1 & inv3 | BP_ALUOp1 & 
			lli3 | BP_ALUOp1 & lw3 | OPCODE0 & ~OPCODE2 & OPCODE3 & STATE1 | BP_ALUOp1 & 
			or3 | BP_ALUOp1 & seq3 | BP_ALUOp1 & slt3 | BP_ALUOp1 & STATE0 | BP_ALUOp1 & 
			~OPCODE3 & ~OPCODE1 & ~OPCODE2 & STATE1 | BP_ALUOp1 & ~OPCODE0 & OPCODE2 & 
			OPCODE3 & STATE1 | BP_ALUOp1 & ~OPCODE3 & OPCODE2 & OPCODE1 & STATE1 | 
			BP_ALUOp1 & OPCODE2 & OPCODE1 & FUNCT0 & STATE1 | BP_ALUOp1 & OPCODE2 & 
			OPCODE1 & FUNCT2 & FUNCT1 & STATE1 | BP_ALUOp1 & OPCODE2 & OPCODE1 & FUNCT1 &
			 FUNCT3 & STATE1 | BP_ALUOp1 & OPCODE0 & ~OPCODE1 & ~OPCODE2 & STATE1 | 
			BP_ALUOp1 & ~OPCODE0 & ~OPCODE2 & ~OPCODE3 & STATE1 | BP_ALUOp1 & OPCODE1 & 
			~OPCODE2 & OPCODE3 & STATE1 | BP_ALUOp1 & ~OPCODE0 & OPCODE1 & OPCODE2 & 
			STATE1 | BP_ALUOp1 & OPCODE0 & OPCODE1 & OPCODE3 & ~FUNCT0 & ~FUNCT1 & STATE1
			 | BP_ALUOp1 & sub3 ) next_BP_ALUOp1=1;
		else next_BP_ALUOp1=0;

		if ( BP_ALUOp2 & add3 | BP_ALUOp2 & and3 | BP_ALUOp2 & ZCValue & b3 | 
			BP_ALUOp2 & inv3 | BP_ALUOp2 & lli3 | BP_ALUOp2 & lw3 | OPCODE0 & ~OPCODE2 & 
			OPCODE3 & STATE1 | BP_ALUOp2 & or3 | OPCODE0 & OPCODE1 & ~OPCODE2 & STATE1 | 
			BP_ALUOp2 & seq3 | OPCODE0 & ~OPCODE1 & OPCODE3 & STATE1 | BP_ALUOp2 & slt3 |
			 BP_ALUOp2 & STATE0 | BP_ALUOp2 & ~OPCODE3 & OPCODE1 & STATE1 | BP_ALUOp2 & 
			OPCODE1 & FUNCT0 & STATE1 | BP_ALUOp2 & OPCODE1 & FUNCT2 & FUNCT1 & STATE1 | 
			BP_ALUOp2 & OPCODE1 & FUNCT1 & FUNCT3 & STATE1 | BP_ALUOp2 & OPCODE0 & 
			~OPCODE2 & STATE1 | BP_ALUOp2 & ~OPCODE2 & ~OPCODE3 & STATE1 | BP_ALUOp2 & 
			OPCODE1 & ~OPCODE2 & STATE1 | BP_ALUOp2 & ~OPCODE0 & OPCODE1 & STATE1 | 
			BP_ALUOp2 & OPCODE0 & OPCODE3 & ~FUNCT0 & ~FUNCT1 & STATE1 | ~OPCODE0 & 
			~OPCODE1 & OPCODE2 & ~OPCODE3 & STATE1 | BP_ALUOp2 & sub3 ) next_BP_ALUOp2=1;
		else next_BP_ALUOp2=0;

		if ( BP_EPCWRITE & add3 | BP_EPCWRITE & and3 | BP_EPCWRITE & ZCValue & b3 |
			 INTERRUPT & STATE0 | BP_EPCWRITE & inv3 | BP_EPCWRITE & lli3 | BP_EPCWRITE &
			 lw3 | BP_EPCWRITE & or3 | BP_EPCWRITE & seq3 | BP_EPCWRITE & slt3 | 
			BP_EPCWRITE & STATE0 | BP_EPCWRITE & OPCODE1 & FUNCT0 & STATE1 | BP_EPCWRITE 
			& OPCODE1 & FUNCT2 & FUNCT1 & STATE1 | BP_EPCWRITE & OPCODE1 & FUNCT1 & 
			FUNCT3 & STATE1 | BP_EPCWRITE & ~OPCODE1 & OPCODE2 & OPCODE3 & STATE1 | 
			BP_EPCWRITE & ~OPCODE0 & OPCODE2 & OPCODE3 & STATE1 | BP_EPCWRITE & OPCODE0 &
			 ~OPCODE2 & STATE1 | BP_EPCWRITE & ~OPCODE0 & ~OPCODE1 & STATE1 | BP_EPCWRITE
			 & OPCODE1 & ~OPCODE2 & STATE1 | BP_EPCWRITE & OPCODE1 & ~OPCODE3 & STATE1 | 
			BP_EPCWRITE & OPCODE0 & ~OPCODE3 & STATE1 | BP_EPCWRITE & OPCODE0 & OPCODE1 &
			 STATE1 | BP_EPCWRITE & sub3 ) next_BP_EPCWRITE=1;
		else next_BP_EPCWRITE=0;

		if ( BP_INTWRITE & add3 | BP_INTWRITE & and3 | BP_INTWRITE & ZCValue & b3 |
			 BP_INTWRITE & inv3 | BP_INTWRITE & lli3 | BP_INTWRITE & lw3 | BP_INTWRITE & 
			or3 | BP_INTWRITE & seq3 | BP_INTWRITE & slt3 | BP_INTWRITE & STATE0 | 
			BP_INTWRITE & OPCODE1 & FUNCT0 & STATE1 | BP_INTWRITE & OPCODE1 & FUNCT2 & 
			FUNCT1 & STATE1 | BP_INTWRITE & OPCODE1 & FUNCT1 & FUNCT3 & STATE1 | 
			BP_INTWRITE & ~OPCODE1 & OPCODE2 & OPCODE3 & STATE1 | BP_INTWRITE & ~OPCODE0 
			& OPCODE2 & OPCODE3 & STATE1 | BP_INTWRITE & OPCODE0 & ~OPCODE2 & STATE1 | 
			BP_INTWRITE & ~OPCODE0 & ~OPCODE1 & STATE1 | BP_INTWRITE & OPCODE1 & ~OPCODE2
			 & STATE1 | BP_INTWRITE & OPCODE1 & ~OPCODE3 & STATE1 | BP_INTWRITE & OPCODE0
			 & ~OPCODE3 & STATE1 | BP_INTWRITE & OPCODE0 & OPCODE1 & STATE1 | BP_INTWRITE
			 & sub3 ) next_BP_INTWRITE=1;
		else next_BP_INTWRITE=0;

		if ( BP_IRWRITE & add3 | BP_IRWRITE & and3 | BP_IRWRITE & b3 | BP_IRWRITE &
			 inv3 | BP_IRWRITE & lli3 | BP_IRWRITE & lw3 | BP_IRWRITE & or3 | BP_IRWRITE 
			& seq3 | BP_IRWRITE & slt3 | add4 | and4 | ~ZCValue & b3 | b4 | INT_STATE | 
			inv4 | jal3 | jr3 | lds3 | lli4 | lui3 | lw4 | or4 | seq4a | seq4b | sll3 | 
			slt4 | spc3 | sub4 | sw3 | BP_IRWRITE & INTERRUPT & STATE0 | BP_IRWRITE & 
			~OPCODE1 & OPCODE3 & STATE1 | BP_IRWRITE & OPCODE0 & ~OPCODE2 & STATE1 | 
			BP_IRWRITE & OPCODE0 & OPCODE3 & ~FUNCT0 & ~FUNCT2 & ~FUNCT3 & STATE1 | 
			BP_IRWRITE & OPCODE1 & ~OPCODE2 & STATE1 | BP_IRWRITE & ~OPCODE1 & OPCODE2 & 
			STATE1 | BP_IRWRITE & ~OPCODE2 & OPCODE3 & STATE1 | BP_IRWRITE & ~OPCODE0 & 
			OPCODE1 & ~OPCODE3 & STATE1 | BP_IRWRITE & OPCODE0 & ~OPCODE1 & STATE1 | 
			BP_IRWRITE & OPCODE0 & OPCODE3 & ~FUNCT0 & ~FUNCT1 & STATE1 | BP_IRWRITE & 
			sub3 ) next_BP_IRWRITE=1;
		else next_BP_IRWRITE=0;

		if ( BP_MEMWRITE & add3 | BP_MEMWRITE & and3 | BP_MEMWRITE & ZCValue & b3 |
			 BP_MEMWRITE & inv3 | BP_MEMWRITE & lli3 | BP_MEMWRITE & lw3 | BP_MEMWRITE & 
			or3 | BP_MEMWRITE & seq3 | BP_MEMWRITE & slt3 | BP_MEMWRITE & STATE0 | 
			BP_MEMWRITE & OPCODE1 & FUNCT0 & STATE1 | BP_MEMWRITE & OPCODE1 & FUNCT2 & 
			FUNCT1 & STATE1 | BP_MEMWRITE & OPCODE1 & FUNCT1 & FUNCT3 & STATE1 | 
			BP_MEMWRITE & ~OPCODE1 & OPCODE2 & OPCODE3 & STATE1 | BP_MEMWRITE & ~OPCODE0 
			& OPCODE2 & OPCODE3 & STATE1 | BP_MEMWRITE & OPCODE0 & ~OPCODE2 & STATE1 | 
			BP_MEMWRITE & OPCODE0 & OPCODE1 & FUNCT1 & STATE1 | BP_MEMWRITE & ~OPCODE0 & 
			~OPCODE1 & STATE1 | BP_MEMWRITE & OPCODE1 & ~OPCODE2 & STATE1 | BP_MEMWRITE &
			 OPCODE1 & ~OPCODE3 & STATE1 | BP_MEMWRITE & OPCODE0 & ~OPCODE3 & STATE1 | 
			BP_MEMWRITE & OPCODE0 & OPCODE1 & FUNCT2 & STATE1 | BP_MEMWRITE & OPCODE0 & 
			OPCODE1 & ~FUNCT3 & STATE1 | BP_MEMWRITE & sub3 | OPCODE0 & OPCODE1 & OPCODE2
			 & OPCODE3 & ~FUNCT0 & ~FUNCT1 & ~FUNCT2 & FUNCT3 & STATE1 ) 
			next_BP_MEMWRITE=1;
		else next_BP_MEMWRITE=0;

		if ( BP_Mux0 & add3 | BP_Mux0 & and3 | BP_Mux0 & ZCValue & b3 | BP_Mux0 & 
			inv3 | BP_Mux0 & lli3 | BP_Mux0 & lw3 | BP_Mux0 & or3 | BP_Mux0 & seq3 | 
			BP_Mux0 & slt3 | OPCODE0 & OPCODE1 & OPCODE2 & OPCODE3 & ~FUNCT0 & ~FUNCT1 & 
			FUNCT2 & FUNCT3 & STATE1 | BP_Mux0 & ~INTERRUPT & STATE0 | BP_Mux0 & OPCODE1 
			& FUNCT0 & STATE1 | BP_Mux0 & OPCODE1 & FUNCT2 & FUNCT1 & STATE1 | BP_Mux0 & 
			OPCODE1 & FUNCT1 & FUNCT3 & STATE1 | BP_Mux0 & ~OPCODE1 & OPCODE2 & OPCODE3 &
			 STATE1 | BP_Mux0 & ~OPCODE0 & OPCODE2 & OPCODE3 & STATE1 | BP_Mux0 & OPCODE0
			 & ~OPCODE2 & STATE1 | BP_Mux0 & ~OPCODE0 & ~OPCODE1 & STATE1 | BP_Mux0 & 
			OPCODE1 & ~OPCODE2 & STATE1 | BP_Mux0 & OPCODE1 & ~OPCODE3 & STATE1 | BP_Mux0
			 & OPCODE0 & ~OPCODE3 & STATE1 | BP_Mux0 & OPCODE0 & OPCODE1 & STATE1 | 
			BP_Mux0 & sub3 ) next_BP_Mux0=1;
		else next_BP_Mux0=0;

		if ( BP_Mux1b0 & add3 | BP_Mux1b0 & and3 | BP_Mux1b0 & b3 | INTERRUPT & 
			STATE0 | BP_Mux1b0 & inv3 | BP_Mux1b0 & lli3 | BP_Mux1b0 & lw3 | BP_Mux1b0 & 
			or3 | BP_Mux1b0 & seq3 | BP_Mux1b0 & slt3 | add4 | and4 | ~ZCValue & b3 | b4 
			| INT_STATE | inv4 | jal3 | jr3 | lds3 | lli4 | lui3 | lw4 | or4 | seq4a | 
			seq4b | sll3 | slt4 | spc3 | sub4 | sw3 | BP_Mux1b0 & STATE0 | BP_Mux1b0 & 
			~OPCODE1 & ~OPCODE2 & ~OPCODE3 & STATE1 | BP_Mux1b0 & ~OPCODE0 & ~OPCODE2 & 
			~OPCODE3 & STATE1 | BP_Mux1b0 & ~OPCODE0 & OPCODE1 & OPCODE3 & STATE1 | 
			BP_Mux1b0 & OPCODE1 & OPCODE2 & STATE1 | BP_Mux1b0 & sub3 ) next_BP_Mux1b0=1;
		else next_BP_Mux1b0=0;

		if ( BP_Mux1b1 & add3 | BP_Mux1b1 & and3 | OPCODE0 & ~OPCODE1 & OPCODE2 & 
			~OPCODE3 & STATE1 | BP_Mux1b1 & ZCValue & b3 | BP_Mux1b1 & inv3 | OPCODE0 & 
			~OPCODE1 & ~OPCODE2 & OPCODE3 & STATE1 | BP_Mux1b1 & lli3 | BP_Mux1b1 & lw3 |
			 BP_Mux1b1 & or3 | BP_Mux1b1 & seq3 | BP_Mux1b1 & slt3 | BP_Mux1b1 & 
			~INTERRUPT & STATE0 | BP_Mux1b1 & ~OPCODE3 & ~OPCODE1 & ~OPCODE2 & STATE1 | 
			BP_Mux1b1 & ~OPCODE3 & OPCODE2 & OPCODE0 & STATE1 | BP_Mux1b1 & OPCODE2 & 
			OPCODE1 & FUNCT0 & STATE1 | BP_Mux1b1 & OPCODE2 & OPCODE1 & FUNCT1 & STATE1 |
			 BP_Mux1b1 & OPCODE0 & ~OPCODE1 & ~OPCODE3 & STATE1 | BP_Mux1b1 & OPCODE1 & 
			OPCODE2 & ~FUNCT2 & STATE1 | BP_Mux1b1 & ~OPCODE0 & ~OPCODE2 & ~OPCODE3 & 
			STATE1 | BP_Mux1b1 & ~OPCODE0 & OPCODE1 & OPCODE3 & STATE1 | BP_Mux1b1 & 
			OPCODE1 & OPCODE2 & ~OPCODE3 & STATE1 | BP_Mux1b1 & OPCODE0 & OPCODE1 & 
			OPCODE2 & STATE1 | BP_Mux1b1 & sub3 ) next_BP_Mux1b1=1;
		else next_BP_Mux1b1=0;

		if ( BP_Mux1b2 & add3 | BP_Mux1b2 & and3 | OPCODE0 & ~OPCODE1 & OPCODE2 & 
			~OPCODE3 & STATE1 | BP_Mux1b2 & ZCValue & b3 | BP_Mux1b2 & inv3 | BP_Mux1b2 &
			 lli3 | BP_Mux1b2 & lw3 | BP_Mux1b2 & or3 | BP_Mux1b2 & seq3 | BP_Mux1b2 & 
			slt3 | BP_Mux1b2 & ~INTERRUPT & STATE0 | BP_Mux1b2 & ~OPCODE3 & ~OPCODE1 & 
			~OPCODE2 & STATE1 | BP_Mux1b2 & ~OPCODE3 & OPCODE2 & OPCODE0 & STATE1 | 
			BP_Mux1b2 & OPCODE2 & OPCODE1 & FUNCT0 & STATE1 | BP_Mux1b2 & OPCODE2 & 
			OPCODE1 & FUNCT1 & STATE1 | BP_Mux1b2 & OPCODE0 & ~OPCODE1 & ~OPCODE3 & 
			STATE1 | BP_Mux1b2 & OPCODE1 & OPCODE2 & ~FUNCT2 & STATE1 | BP_Mux1b2 & 
			~OPCODE0 & ~OPCODE2 & ~OPCODE3 & STATE1 | BP_Mux1b2 & ~OPCODE0 & OPCODE1 & 
			OPCODE3 & STATE1 | BP_Mux1b2 & OPCODE1 & OPCODE2 & ~OPCODE3 & STATE1 | 
			BP_Mux1b2 & OPCODE0 & OPCODE1 & OPCODE2 & STATE1 | BP_Mux1b2 & sub3 ) 
			next_BP_Mux1b2=1;
		else next_BP_Mux1b2=0;

		if ( BP_Mux2 & add3 | BP_Mux2 & and3 | BP_Mux2 & ZCValue & b3 | OPCODE0 & 
			OPCODE3 & ~FUNCT0 & FUNCT1 & ~FUNCT2 & ~FUNCT3 & STATE1 | BP_Mux2 & inv3 | 
			BP_Mux2 & lli3 | BP_Mux2 & lw3 | OPCODE0 & ~OPCODE2 & OPCODE3 & STATE1 | 
			BP_Mux2 & or3 | OPCODE0 & OPCODE1 & ~OPCODE2 & STATE1 | BP_Mux2 & seq3 | 
			~OPCODE1 & OPCODE3 & STATE1 | BP_Mux2 & slt3 | BP_Mux2 & ~INTERRUPT & STATE0 
			| BP_Mux2 & OPCODE1 & STATE1 | BP_Mux2 & ~OPCODE2 & STATE1 | BP_Mux2 & 
			OPCODE3 & STATE1 | ~OPCODE0 & ~OPCODE1 & OPCODE2 & STATE1 | BP_Mux2 & sub3 ) 
			next_BP_Mux2=1;
		else next_BP_Mux2=0;

		if ( BP_Mux3b0 & add3 | BP_Mux3b0 & and3 | BP_Mux3b0 & ZCValue & b3 | 
			BP_Mux3b0 & inv3 | BP_Mux3b0 & lli3 | BP_Mux3b0 & lw3 | BP_Mux3b0 & or3 | 
			BP_Mux3b0 & seq3 | slt3 | BP_Mux3b0 & STATE0 | BP_Mux3b0 & OPCODE2 & OPCODE1 
			& FUNCT0 & STATE1 | BP_Mux3b0 & OPCODE2 & OPCODE1 & FUNCT2 & FUNCT1 & STATE1 
			| BP_Mux3b0 & OPCODE2 & OPCODE1 & FUNCT1 & FUNCT3 & STATE1 | BP_Mux3b0 & 
			~OPCODE1 & OPCODE2 & OPCODE3 & STATE1 | BP_Mux3b0 & ~OPCODE0 & OPCODE2 & 
			OPCODE3 & STATE1 | BP_Mux3b0 & OPCODE0 & ~OPCODE2 & OPCODE3 & STATE1 | 
			BP_Mux3b0 & ~OPCODE0 & ~OPCODE1 & STATE1 | BP_Mux3b0 & OPCODE1 & ~OPCODE2 & 
			OPCODE3 & STATE1 | BP_Mux3b0 & OPCODE1 & OPCODE2 & ~OPCODE3 & STATE1 | 
			BP_Mux3b0 & OPCODE0 & OPCODE1 & STATE1 | BP_Mux3b0 & sub3 ) next_BP_Mux3b0=1;
		else next_BP_Mux3b0=0;

		if ( BP_Mux3b1 & add3 | BP_Mux3b1 & and3 | BP_Mux3b1 & ZCValue & b3 | 
			BP_Mux3b1 & inv3 | BP_Mux3b1 & lli3 | BP_Mux3b1 & lw3 | BP_Mux3b1 & or3 | 
			BP_Mux3b1 & seq3 | ~OPCODE0 & OPCODE1 & ~OPCODE2 & ~OPCODE3 & STATE1 | 
			BP_Mux3b1 & STATE0 | BP_Mux3b1 & OPCODE1 & FUNCT0 & STATE1 | BP_Mux3b1 & 
			OPCODE1 & FUNCT2 & FUNCT1 & STATE1 | BP_Mux3b1 & OPCODE1 & FUNCT1 & FUNCT3 & 
			STATE1 | BP_Mux3b1 & ~OPCODE1 & OPCODE3 & STATE1 | BP_Mux3b1 & ~OPCODE0 & 
			OPCODE3 & STATE1 | BP_Mux3b1 & ~OPCODE0 & ~OPCODE2 & STATE1 | BP_Mux3b1 & 
			~OPCODE2 & OPCODE3 & STATE1 | BP_Mux3b1 & OPCODE0 & OPCODE1 & ~FUNCT2 & 
			STATE1 | BP_Mux3b1 & OPCODE0 & OPCODE1 & FUNCT1 & STATE1 | BP_Mux3b1 & 
			~OPCODE0 & ~OPCODE1 & STATE1 | BP_Mux3b1 & OPCODE1 & ~OPCODE2 & STATE1 | 
			BP_Mux3b1 & OPCODE1 & ~OPCODE3 & STATE1 | BP_Mux3b1 & OPCODE3 & FUNCT2 & 
			STATE1 | BP_Mux3b1 & sub3 ) next_BP_Mux3b1=1;
		else next_BP_Mux3b1=0;

		if ( BP_Mux5 & add3 | BP_Mux5 & and3 | BP_Mux5 & ZCValue & b3 | BP_Mux5 & 
			inv3 | BP_Mux5 & lli3 | BP_Mux5 & lw3 | BP_Mux5 & or3 | BP_Mux5 & seq3 | 
			BP_Mux5 & slt3 | BP_Mux5 & STATE0 | BP_Mux5 & OPCODE1 & FUNCT0 & STATE1 | 
			BP_Mux5 & OPCODE1 & FUNCT2 & FUNCT1 & STATE1 | BP_Mux5 & OPCODE1 & FUNCT1 & 
			FUNCT3 & STATE1 | BP_Mux5 & ~OPCODE1 & OPCODE2 & OPCODE3 & STATE1 | BP_Mux5 &
			 ~OPCODE0 & OPCODE2 & OPCODE3 & STATE1 | BP_Mux5 & OPCODE0 & ~OPCODE2 & 
			STATE1 | BP_Mux5 & OPCODE0 & OPCODE1 & FUNCT1 & STATE1 | BP_Mux5 & ~OPCODE0 &
			 ~OPCODE1 & STATE1 | BP_Mux5 & OPCODE1 & ~OPCODE2 & STATE1 | BP_Mux5 & 
			OPCODE1 & ~OPCODE3 & STATE1 | BP_Mux5 & OPCODE0 & ~OPCODE3 & STATE1 | BP_Mux5
			 & OPCODE0 & OPCODE1 & FUNCT2 & STATE1 | BP_Mux5 & OPCODE0 & OPCODE1 & 
			~FUNCT3 & STATE1 | BP_Mux5 & sub3 | OPCODE0 & OPCODE1 & OPCODE2 & OPCODE3 & 
			~FUNCT0 & ~FUNCT1 & ~FUNCT2 & FUNCT3 & STATE1 ) next_BP_Mux5=1;
		else next_BP_Mux5=0;

		if ( BP_Mux6b0 & add3 | BP_Mux6b0 & and3 | ZCValue & b3 | BP_Mux6b0 & inv3 
			| BP_Mux6b0 & lli3 | BP_Mux6b0 & lw3 | BP_Mux6b0 & or3 | BP_Mux6b0 & seq3 | 
			BP_Mux6b0 & slt3 | BP_Mux6b0 & ~INTERRUPT & STATE0 | BP_Mux6b0 & OPCODE2 & 
			FUNCT0 & OPCODE3 & STATE1 | BP_Mux6b0 & OPCODE2 & FUNCT2 & OPCODE3 & FUNCT1 &
			 STATE1 | BP_Mux6b0 & OPCODE2 & FUNCT1 & FUNCT3 & OPCODE3 & STATE1 | 
			BP_Mux6b0 & ~OPCODE1 & OPCODE2 & OPCODE3 & STATE1 | BP_Mux6b0 & ~OPCODE0 & 
			OPCODE2 & OPCODE3 & STATE1 | BP_Mux6b0 & OPCODE0 & ~OPCODE2 & STATE1 | 
			BP_Mux6b0 & OPCODE1 & ~OPCODE2 & ~OPCODE3 & STATE1 | BP_Mux6b0 & ~OPCODE0 & 
			~OPCODE1 & STATE1 | BP_Mux6b0 & OPCODE0 & ~OPCODE3 & STATE1 | BP_Mux6b0 & 
			OPCODE0 & OPCODE1 & STATE1 | BP_Mux6b0 & sub3 ) next_BP_Mux6b0=1;
		else next_BP_Mux6b0=0;

		if ( BP_Mux6b1 & add3 | BP_Mux6b1 & and3 | INTERRUPT & STATE0 | BP_Mux6b1 &
			 inv3 | ~OPCODE0 & OPCODE1 & ~OPCODE2 & OPCODE3 & STATE1 | BP_Mux6b1 & lli3 |
			 BP_Mux6b1 & lw3 | BP_Mux6b1 & or3 | BP_Mux6b1 & seq3 | BP_Mux6b1 & slt3 | 
			BP_Mux6b1 & STATE0 | BP_Mux6b1 & FUNCT0 & OPCODE3 & STATE1 | BP_Mux6b1 & 
			FUNCT2 & OPCODE3 & FUNCT1 & STATE1 | BP_Mux6b1 & FUNCT1 & FUNCT3 & OPCODE3 & 
			STATE1 | BP_Mux6b1 & OPCODE0 & OPCODE1 & ~OPCODE3 & STATE1 | BP_Mux6b1 & 
			~OPCODE1 & OPCODE3 & STATE1 | BP_Mux6b1 & ~OPCODE0 & OPCODE3 & STATE1 | 
			BP_Mux6b1 & ~OPCODE2 & OPCODE3 & STATE1 | BP_Mux6b1 & ~OPCODE1 & ~OPCODE2 & 
			STATE1 | BP_Mux6b1 & ~OPCODE0 & ~OPCODE2 & STATE1 | BP_Mux6b1 & ~OPCODE0 & 
			~OPCODE1 & STATE1 | BP_Mux6b1 & OPCODE0 & OPCODE2 & ~OPCODE3 & STATE1 | 
			BP_Mux6b1 & OPCODE0 & OPCODE1 & OPCODE2 & STATE1 | BP_Mux6b1 & sub3 ) 
			next_BP_Mux6b1=1;
		else next_BP_Mux6b1=0;

		if ( BP_Mux6b2 & add3 | BP_Mux6b2 & and3 | BP_Mux6b2 & inv3 | ~OPCODE0 & 
			OPCODE1 & ~OPCODE2 & OPCODE3 & STATE1 | BP_Mux6b2 & lli3 | BP_Mux6b2 & lw3 | 
			BP_Mux6b2 & or3 | BP_Mux6b2 & seq3 | BP_Mux6b2 & slt3 | add4 | and4 | 
			~ZCValue & b3 | b4 | INT_STATE | inv4 | jal3 | jr3 | lds3 | lli4 | lui3 | lw4
			 | or4 | seq4a | seq4b | sll3 | slt4 | spc3 | sub4 | sw3 | BP_Mux6b2 & 
			~INTERRUPT & STATE0 | BP_Mux6b2 & FUNCT0 & OPCODE3 & STATE1 | BP_Mux6b2 & 
			FUNCT2 & OPCODE3 & FUNCT1 & STATE1 | BP_Mux6b2 & FUNCT1 & FUNCT3 & OPCODE3 & 
			STATE1 | BP_Mux6b2 & OPCODE0 & OPCODE1 & ~OPCODE3 & STATE1 | BP_Mux6b2 & 
			~OPCODE1 & OPCODE3 & STATE1 | BP_Mux6b2 & ~OPCODE0 & OPCODE3 & STATE1 | 
			BP_Mux6b2 & ~OPCODE2 & OPCODE3 & STATE1 | BP_Mux6b2 & ~OPCODE1 & ~OPCODE2 & 
			STATE1 | BP_Mux6b2 & ~OPCODE0 & ~OPCODE2 & STATE1 | BP_Mux6b2 & ~OPCODE0 & 
			~OPCODE1 & STATE1 | BP_Mux6b2 & OPCODE0 & OPCODE2 & ~OPCODE3 & STATE1 | 
			BP_Mux6b2 & OPCODE0 & OPCODE1 & OPCODE2 & STATE1 | BP_Mux6b2 & sub3 ) 
			next_BP_Mux6b2=1;
		else next_BP_Mux6b2=0;

		if ( BP_Mux7b0 & ZCValue & b3 | OPCODE0 & ~OPCODE1 & ~OPCODE2 & ~OPCODE3 & 
			STATE1 | ~OPCODE0 & OPCODE1 & ~OPCODE2 & STATE1 | slt3 | BP_Mux7b0 & STATE0 |
			 BP_Mux7b0 & FUNCT0 & STATE1 | BP_Mux7b0 & ~OPCODE1 & STATE1 | BP_Mux7b0 & 
			~OPCODE2 & STATE1 | BP_Mux7b0 & ~FUNCT2 & STATE1 | BP_Mux7b0 & FUNCT1 & 
			STATE1 | BP_Mux7b0 & ~OPCODE0 & STATE1 | BP_Mux7b0 & ~OPCODE3 & STATE1 | 
			BP_Mux7b0 & FUNCT3 & STATE1 ) next_BP_Mux7b0=1;
		else next_BP_Mux7b0=0;

		if ( BP_Mux7b1 & ZCValue & b3 | ~OPCODE0 & OPCODE1 & ~OPCODE2 & OPCODE3 & 
			STATE1 | OPCODE0 & OPCODE1 & OPCODE2 & OPCODE3 & ~FUNCT0 & ~FUNCT1 & FUNCT2 &
			 ~FUNCT3 & STATE1 | OPCODE0 & ~OPCODE1 & ~OPCODE2 & ~OPCODE3 & STATE1 | 
			~ZCValue & seq3 | BP_Mux7b1 & STATE0 | BP_Mux7b1 & OPCODE3 & STATE1 | 
			BP_Mux7b1 & ~OPCODE1 & STATE1 | BP_Mux7b1 & OPCODE2 & STATE1 | BP_Mux7b1 & 
			OPCODE0 & STATE1 ) next_BP_Mux7b1=1;
		else next_BP_Mux7b1=0;

		if ( BP_Mux7b2 & ZCValue & b3 | OPCODE0 & OPCODE1 & OPCODE2 & OPCODE3 & 
			~FUNCT0 & ~FUNCT1 & FUNCT2 & ~FUNCT3 & STATE1 | ZCValue & seq3 | ~OPCODE0 & 
			OPCODE1 & ~OPCODE2 & STATE1 | BP_Mux7b2 & STATE0 | BP_Mux7b2 & OPCODE3 & 
			STATE1 | BP_Mux7b2 & ~OPCODE0 & STATE1 | BP_Mux7b2 & OPCODE2 & STATE1 | 
			BP_Mux7b2 & OPCODE1 & STATE1 ) next_BP_Mux7b2=1;
		else next_BP_Mux7b2=0;

		if ( add3 | and3 | BP_Mux8b0 & ZCValue & b3 | or3 | seq3 | slt3 | BP_Mux8b0
			 & INTERRUPT & STATE0 | BP_Mux8b0 & OPCODE0 & OPCODE1 & ~OPCODE2 & STATE1 | 
			BP_Mux8b0 & ~OPCODE0 & ~OPCODE1 & OPCODE3 & STATE1 | BP_Mux8b0 & OPCODE0 & 
			~OPCODE2 & OPCODE3 & STATE1 | BP_Mux8b0 & OPCODE0 & OPCODE1 & OPCODE3 & 
			~FUNCT0 & ~FUNCT2 & ~FUNCT3 & STATE1 | BP_Mux8b0 & ~OPCODE0 & OPCODE2 & 
			~OPCODE3 & STATE1 | BP_Mux8b0 & ~OPCODE1 & OPCODE2 & STATE1 | BP_Mux8b0 & 
			OPCODE0 & OPCODE1 & OPCODE3 & ~FUNCT0 & ~FUNCT1 & STATE1 | sub3 ) 
			next_BP_Mux8b0=1;
		else next_BP_Mux8b0=0;

		if ( BP_Mux8b1 & ZCValue & b3 | inv3 | lli3 | lw3 | ~OPCODE0 & ~OPCODE2 & 
			~OPCODE3 & STATE1 | BP_Mux8b1 & STATE0 | ~INTERRUPT & STATE0 | OPCODE2 & 
			OPCODE1 & FUNCT1 & FUNCT3 & OPCODE3 & STATE1 | OPCODE2 & OPCODE1 & FUNCT2 & 
			OPCODE3 & FUNCT1 & STATE1 | OPCODE2 & OPCODE1 & FUNCT1 & FUNCT3 & OPCODE0 & 
			STATE1 | OPCODE2 & OPCODE1 & FUNCT2 & OPCODE0 & FUNCT1 & STATE1 | OPCODE2 & 
			OPCODE1 & FUNCT0 & OPCODE3 & STATE1 | OPCODE2 & OPCODE1 & FUNCT0 & OPCODE0 & 
			STATE1 | ~OPCODE3 & OPCODE2 & OPCODE0 & OPCODE1 & STATE1 | ~OPCODE0 & OPCODE1
			 & OPCODE2 & OPCODE3 & STATE1 | ~OPCODE3 & ~OPCODE1 & ~OPCODE2 & STATE1 | 
			BP_Mux8b1 & ~OPCODE1 & STATE1 | BP_Mux8b1 & OPCODE2 & STATE1 | BP_Mux8b1 & 
			OPCODE0 & STATE1 | BP_Mux8b1 & ~OPCODE3 & STATE1 ) next_BP_Mux8b1=1;
		else next_BP_Mux8b1=0;

		if ( BP_Mux9 & add3 | BP_Mux9 & and3 | BP_Mux9 & ZCValue & b3 | BP_Mux9 & 
			inv3 | BP_Mux9 & lli3 | OPCODE0 & OPCODE1 & OPCODE2 & OPCODE3 & ~FUNCT0 & 
			~FUNCT1 & ~FUNCT2 & ~FUNCT3 & STATE1 | BP_Mux9 & lw3 | BP_Mux9 & or3 | 
			BP_Mux9 & seq3 | BP_Mux9 & slt3 | BP_Mux9 & STATE0 | BP_Mux9 & OPCODE1 & 
			FUNCT0 & STATE1 | BP_Mux9 & OPCODE1 & FUNCT2 & FUNCT1 & STATE1 | BP_Mux9 & 
			OPCODE1 & FUNCT1 & FUNCT3 & STATE1 | BP_Mux9 & ~OPCODE0 & OPCODE3 & STATE1 | 
			BP_Mux9 & OPCODE0 & OPCODE1 & ~FUNCT1 & ~FUNCT2 & STATE1 | BP_Mux9 & ~OPCODE2
			 & STATE1 | BP_Mux9 & OPCODE1 & ~OPCODE3 & STATE1 | BP_Mux9 & OPCODE0 & 
			OPCODE1 & FUNCT2 & FUNCT3 & STATE1 | BP_Mux9 & OPCODE0 & OPCODE1 & ~FUNCT1 & 
			~FUNCT3 & STATE1 | BP_Mux9 & sub3 ) next_BP_Mux9=1;
		else next_BP_Mux9=0;

		if ( BP_Mux10 & add3 | BP_Mux10 & and3 | OPCODE0 & ~OPCODE1 & OPCODE2 & 
			~OPCODE3 & STATE1 | BP_Mux10 & ZCValue & b3 | BP_Mux10 & inv3 | BP_Mux10 & 
			lli3 | BP_Mux10 & lw3 | BP_Mux10 & or3 | BP_Mux10 & seq3 | BP_Mux10 & slt3 | 
			BP_Mux10 & STATE0 | BP_Mux10 & STATE1 | BP_Mux10 & sub3 ) next_BP_Mux10=1;
		else next_BP_Mux10=0;

		if ( BP_OUTWRITE & add3 | BP_OUTWRITE & and3 | BP_OUTWRITE & ZCValue & b3 |
			 BP_OUTWRITE & inv3 | BP_OUTWRITE & lli3 | BP_OUTWRITE & lw3 | BP_OUTWRITE & 
			or3 | BP_OUTWRITE & seq3 | BP_OUTWRITE & slt3 | BP_OUTWRITE & STATE0 | 
			BP_OUTWRITE & OPCODE1 & FUNCT0 & STATE1 | BP_OUTWRITE & OPCODE1 & FUNCT2 & 
			FUNCT1 & STATE1 | BP_OUTWRITE & OPCODE1 & FUNCT1 & FUNCT3 & STATE1 | 
			BP_OUTWRITE & ~OPCODE1 & OPCODE2 & OPCODE3 & STATE1 | BP_OUTWRITE & ~OPCODE0 
			& OPCODE2 & OPCODE3 & STATE1 | BP_OUTWRITE & OPCODE0 & ~OPCODE2 & STATE1 | 
			BP_OUTWRITE & ~OPCODE0 & ~OPCODE1 & STATE1 | BP_OUTWRITE & OPCODE1 & ~OPCODE2
			 & STATE1 | BP_OUTWRITE & OPCODE1 & ~OPCODE3 & STATE1 | BP_OUTWRITE & OPCODE0
			 & ~OPCODE3 & STATE1 | BP_OUTWRITE & OPCODE0 & OPCODE1 & STATE1 | BP_OUTWRITE
			 & sub3 ) next_BP_OUTWRITE=1;
		else next_BP_OUTWRITE=0;

		if ( BP_PCWRITE & add3 | BP_PCWRITE & and3 | INTERRUPT & STATE0 | 
			BP_PCWRITE & inv3 | ~OPCODE0 & OPCODE1 & ~OPCODE2 & OPCODE3 & STATE1 | 
			~OPCODE0 & OPCODE1 & OPCODE2 & ~OPCODE3 & STATE1 | BP_PCWRITE & lli3 | 
			BP_PCWRITE & lw3 | BP_PCWRITE & or3 | BP_PCWRITE & seq3 | BP_PCWRITE & slt3 |
			 add4 | and4 | b3 | b4 | INT_STATE | inv4 | jal3 | jr3 | lds3 | lli4 | lui3 |
			 lw4 | or4 | seq4a | seq4b | sll3 | slt4 | spc3 | sub4 | sw3 | BP_PCWRITE & 
			~OPCODE1 & OPCODE3 & STATE1 | BP_PCWRITE & ~OPCODE2 & OPCODE3 & STATE1 | 
			BP_PCWRITE & OPCODE0 & ~OPCODE2 & STATE1 | BP_PCWRITE & OPCODE0 & OPCODE3 & 
			~FUNCT0 & ~FUNCT2 & ~FUNCT3 & STATE1 | BP_PCWRITE & OPCODE1 & ~OPCODE2 & 
			STATE1 | BP_PCWRITE & ~OPCODE0 & OPCODE2 & ~OPCODE3 & STATE1 | BP_PCWRITE & 
			OPCODE0 & ~OPCODE1 & STATE1 | BP_PCWRITE & OPCODE0 & OPCODE3 & ~FUNCT0 & 
			~FUNCT1 & STATE1 | BP_PCWRITE & sub3 ) next_BP_PCWRITE=1;
		else next_BP_PCWRITE=0;

		if ( add3 | and3 | BP_REGWRITE & ZCValue & b3 | inv3 | OPCODE0 & OPCODE1 & 
			OPCODE2 & OPCODE3 & ~FUNCT0 & ~FUNCT1 & FUNCT2 & ~FUNCT3 & STATE1 | lli3 | 
			OPCODE0 & ~OPCODE1 & ~OPCODE2 & ~OPCODE3 & STATE1 | lw3 | or3 | seq3 | 
			~OPCODE0 & OPCODE1 & ~OPCODE2 & STATE1 | slt3 | BP_REGWRITE & STATE0 | 
			BP_REGWRITE & STATE1 | sub3 ) next_BP_REGWRITE=1;
		else next_BP_REGWRITE=0;

		if ( BP_SPECIALWRITE & add3 | BP_SPECIALWRITE & and3 | BP_SPECIALWRITE & 
			ZCValue & b3 | BP_SPECIALWRITE & inv3 | BP_SPECIALWRITE & lli3 | 
			BP_SPECIALWRITE & lw3 | BP_SPECIALWRITE & or3 | BP_SPECIALWRITE & seq3 | 
			BP_SPECIALWRITE & slt3 | OPCODE0 & OPCODE1 & OPCODE2 & OPCODE3 & ~FUNCT0 & 
			~FUNCT1 & FUNCT2 & FUNCT3 & STATE1 | BP_SPECIALWRITE & STATE0 | 
			BP_SPECIALWRITE & OPCODE1 & FUNCT0 & STATE1 | BP_SPECIALWRITE & OPCODE1 & 
			FUNCT2 & FUNCT1 & STATE1 | BP_SPECIALWRITE & OPCODE1 & FUNCT1 & FUNCT3 & 
			STATE1 | BP_SPECIALWRITE & ~OPCODE1 & OPCODE2 & OPCODE3 & STATE1 | 
			BP_SPECIALWRITE & ~OPCODE0 & OPCODE2 & OPCODE3 & STATE1 | BP_SPECIALWRITE & 
			OPCODE0 & ~OPCODE2 & STATE1 | BP_SPECIALWRITE & ~OPCODE0 & ~OPCODE1 & STATE1 
			| BP_SPECIALWRITE & OPCODE1 & ~OPCODE2 & STATE1 | BP_SPECIALWRITE & OPCODE1 &
			 ~OPCODE3 & STATE1 | BP_SPECIALWRITE & OPCODE0 & ~OPCODE3 & STATE1 | 
			BP_SPECIALWRITE & OPCODE0 & OPCODE1 & STATE1 | BP_SPECIALWRITE & sub3 ) 
			next_BP_SPECIALWRITE=1;
		else next_BP_SPECIALWRITE=0;
	end

	always @(BP_ALUOp0)
	begin
		if ( BP_ALUOp0 )  ALUOp0=1;
		else ALUOp0=0;
	end

	always @(BP_ALUOp1)
	begin
		if ( BP_ALUOp1 )  ALUOp1=1;
		else ALUOp1=0;
	end

	always @(BP_ALUOp2)
	begin
		if ( BP_ALUOp2 )  ALUOp2=1;
		else ALUOp2=0;
	end

	always @(BP_EPCWRITE)
	begin
		if ( BP_EPCWRITE )  EPCWRITE=1;
		else EPCWRITE=0;
	end

	always @(BP_INTWRITE)
	begin
		if ( BP_INTWRITE )  INTWRITE=1;
		else INTWRITE=0;
	end

	always @(BP_IRWRITE)
	begin
		if ( BP_IRWRITE )  IRWRITE=1;
		else IRWRITE=0;
	end

	always @(BP_MEMWRITE)
	begin
		if ( BP_MEMWRITE )  MEMWRITE=1;
		else MEMWRITE=0;
	end

	always @(BP_Mux0)
	begin
		if ( BP_Mux0 )  Mux0=1;
		else Mux0=0;
	end

	always @(BP_Mux1b0)
	begin
		if ( BP_Mux1b0 )  Mux1b0=1;
		else Mux1b0=0;
	end

	always @(BP_Mux1b1)
	begin
		if ( BP_Mux1b1 )  Mux1b1=1;
		else Mux1b1=0;
	end

	always @(BP_Mux1b2)
	begin
		if ( BP_Mux1b2 )  Mux1b2=1;
		else Mux1b2=0;
	end

	always @(BP_Mux2)
	begin
		if ( BP_Mux2 )  Mux2=1;
		else Mux2=0;
	end

	always @(BP_Mux3b0)
	begin
		if ( BP_Mux3b0 )  Mux3b0=1;
		else Mux3b0=0;
	end

	always @(BP_Mux3b1)
	begin
		if ( BP_Mux3b1 )  Mux3b1=1;
		else Mux3b1=0;
	end

	always @(BP_Mux5)
	begin
		if ( BP_Mux5 )  Mux5=1;
		else Mux5=0;
	end

	always @(BP_Mux6b0)
	begin
		if ( BP_Mux6b0 )  Mux6b0=1;
		else Mux6b0=0;
	end

	always @(BP_Mux6b1)
	begin
		if ( BP_Mux6b1 )  Mux6b1=1;
		else Mux6b1=0;
	end

	always @(BP_Mux6b2)
	begin
		if ( BP_Mux6b2 )  Mux6b2=1;
		else Mux6b2=0;
	end

	always @(BP_Mux7b0)
	begin
		if ( BP_Mux7b0 )  Mux7b0=1;
		else Mux7b0=0;
	end

	always @(BP_Mux7b1)
	begin
		if ( BP_Mux7b1 )  Mux7b1=1;
		else Mux7b1=0;
	end

	always @(BP_Mux7b2)
	begin
		if ( BP_Mux7b2 )  Mux7b2=1;
		else Mux7b2=0;
	end

	always @(BP_Mux8b0)
	begin
		if ( BP_Mux8b0 )  Mux8b0=1;
		else Mux8b0=0;
	end

	always @(BP_Mux8b1)
	begin
		if ( BP_Mux8b1 )  Mux8b1=1;
		else Mux8b1=0;
	end

	always @(BP_Mux9)
	begin
		if ( BP_Mux9 )  Mux9=1;
		else Mux9=0;
	end

	always @(BP_Mux10)
	begin
		if ( BP_Mux10 )  Mux10=1;
		else Mux10=0;
	end

	always @(BP_OUTWRITE)
	begin
		if ( BP_OUTWRITE )  OUTWRITE=1;
		else OUTWRITE=0;
	end

	always @(BP_PCWRITE)
	begin
		if ( BP_PCWRITE )  PCWRITE=1;
		else PCWRITE=0;
	end

	always @(BP_REGWRITE)
	begin
		if ( BP_REGWRITE )  REGWRITE=1;
		else REGWRITE=0;
	end

	always @(BP_SPECIALWRITE)
	begin
		if ( BP_SPECIALWRITE )  SPECIALWRITE=1;
		else SPECIALWRITE=0;
	end
endmodule
