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