Dies Aliquanti

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PICを作ろう ,Wレジスタ ~昼休みにまったり進めるプロジェクト

今日は、ワークレジスタです。ワークレジスタは、File Register Operations系の命令の場合は、dフィールドが0の場合に更新、後は、リテラル系の命令のうち、ワークレジスタが対象の場合に更新され,それ以外では値はそのままなので、ソースコードはこんな感じでしょう。
これで、ALUとワークレジスタができたので、演算系の命令も試して見れるようになりました。次回は、ALUとワークレジスタに加え、またプログラムをちょこっと動かしてみることにします。
----
 本日の御託
暑いので、コーラを買って、職場の冷蔵庫に入れようとしたら、「なめこおろし」があった。どういう、会社だ...

//
//  Work register
//  (c)2007 BakaOyaji
//  $Id$
//
`include "pic_instructions.h"
`include "pic_def.h"

module w_reg(
    clk_i, full_reset_i,
    reg_o, reg_i,
    instruction_i        // prefetched instruction from instruction reg.
) ;
input clk_i, full_reset_i ;
output [7:0] reg_o ;
input [7:0] reg_i ;
input [(`Instruction_Len-1):0] instruction_i  ;

reg [7:0] w ;

    assign reg_o = w ;

    always@( posedge clk_i) begin
        if( full_reset_i == 1'b1 ) begin
            w <= 8'b0000_0000 ;
        end
        else begin
            casex( instruction_i)
                // Byte oriented File Register Operations
                `INST_ADDWF , `INST_ANDWF , `INST_COMF  ,
                `INST_DECF   , `INST_DECFSZ , `INST_INCF   ,
                `INST_INCFSZ , `INST_IORWF  , `INST_MOVF   ,
                `INST_RLF   , `INST_RRF   , `INST_SUBWF , 
                `INST_SWAPF  , `INST_XORWF  :        begin
                    if( instruction_i[7] == 1'b0 ) begin
                        w <= reg_i ;
                    end //if
                end
                // Literal and control Operations and CLRW
                `INST_ADDLW ,  `INST_ANDLW , `INST_IORLW ,
                `INST_MOVLW , `INST_RETLW , `INST_SUBLW ,
                `INST_XORLW , `INST_CLRW  : begin
                    w <= reg_i ;
                end
                default :
                    ;   // hold, nothing to do
            endcase // casex
        end // else
    end // always
endmodule // w_reg
// EOF w_reg.v



コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://diesaliquanti.blog.fc2.com/tb.php/362-b1146912
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

まとめ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。