デコーダの記述


先の例で示したように、デコーダの記述は状態遷移の際にデコードのステート に当たる部分でも記述することが可能です。しかし、場合によっては組合せ回 路として別途記述した方が良い場合もあります。以下ように分岐するかしない かを決定する制御信号である BRANCH や 命令レジスタから 8ビットの値を読 出す際に上位8ビットの値を全て0にするか1にするかを決定する制御信号で あるSIGNなどがその例です。

  reg       BRANCH;	// Branch TRUE for decode
  reg       SIGN;	// Sign Extention mode for decode

//------------------------------------------------------------------//
// BRANCH flag & SIGN flag are made from IR and FR
//------------------------------------------------------------------//


  always @( IR or FR )
    begin
      BRANCH <= 1'bx;
      SIGN   <= 1'bx;
      case ( `OP_4 )
      `IR_JP   : BRANCH<=1;
      `IR_JPS  : BRANCH<=FR[3];
      `IR_JPZ  : BRANCH<= ...
      `IR_JPV  : BRANCH<= ...
      `IR_JPC  : BRANCH<= ...
      default :
        case ( `OP_6 )
	`IR_ADD  : SIGN<=IR[7];
	`IR_SUB  : ...
	`IR_OR   : if ( `OP_M==`IMM ) SIGN<=0;    else SIGN<=IR[7];
	`IR_EOR  : ...
	`IR_AND  : ...
	`IR_LD   : ...
	`IR_ST   : ...
        endcase
      endcase
    end

考え方
次は、 制御信号生成の記述 についてみていきます。


| CAD Home |