reg [7:0] STATE; // Current State
//------------------------------------------------------------------//
// State Transition
//------------------------------------------------------------------//
always @( posedge RST or posedge CLK )
begin
if ( RST==1 ) STATE=`V0;
else
case ( STATE )
`HALTING : if( RST==1 ) STATE=`V0;
`V0 : if( RST==0 ) STATE= ...... ;
`V1 : if( ACK==1 ) STATE= ...... ;
`V2 : STATE= ...... ;
`F1 : STATE= ...... ;
`F2 : if( ACK==1 ) STATE= ...... ;
`F3 : STATE= ...... ;
`DEC :
begin
case ( `OP_4 ) // 4 bit オペコードの命令デコード
`IR_LDD : STATE=`LDD_1;
......
default :
case ( `OP_6 ) // 6 bit オペコードの命令デコード
`IR_ADD : if( `OP_M==`IMM ) STATE=`BIOP_IMM_1; else
if( `OP_M==`IDX ) STATE=`BIOP_IDX_1; else
STATE=`F1; // 未定義命令
......
......
......
default : STATE=`F1; // 未定義命令
endcase
endcase
end
//
// LD Direct
//
`LDD_1 : STATE=`LDD_2;
`LDD_2 : if( ACK==1 ) STATE=`LDD_3;
`LDD_3 : STATE=`F1;
......
......
......
endcase
end
My mail address is
kuga@cs.kumamoto-u.ac.jp .
Last modified on