OpenCores
URL https://opencores.org/ocsvn/theia_gpu/theia_gpu/trunk

Subversion Repositories theia_gpu

[/] [theia_gpu/] [branches/] [beta_2.0/] [rtl/] [FlowDumper.v] - Diff between revs 213 and 229

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 213 Rev 229
Line 20... Line 20...
 
 
***********************************************************************************/
***********************************************************************************/
//`define VP2_TOP( core ) `THEIA_TOP.\VPX[ core ].VP
//`define VP2_TOP( core ) `THEIA_TOP.\VPX[ core ].VP
`define MAX_OMEM_DUMP_SIZE 32
`define MAX_OMEM_DUMP_SIZE 32
`define MAX_RF_MEM_DUMP_SIZE 128
`define MAX_RF_MEM_DUMP_SIZE 128
 
 
 
//`define DEBUG_TO_STDOUT 1
 
 
 
`ifdef DEBUG_TO_STDOUT
 
        `define DWRITE $write(
 
`else
 
        `define DWRITE $fwrite(VP_LOG,
 
`endif
module VectorProcessor_Dumper # (parameter CVPID = 2);
module VectorProcessor_Dumper # (parameter CVPID = 2);
 
 
 
 
integer RESULT_FILE,VP_LOG,OMEM_LOG,VP_REG_LOG,i;
integer RESULT_FILE,VP_LOG,OMEM_LOG,VP_REG_LOG,i;
reg [255:1] VPLogFileName,OMEMLogFileName,RegLogFileName;
reg [255:1] VPLogFileName,OMEMLogFileName,RegLogFileName;
Line 83... Line 91...
        if (`VP_TOP.EXE.II0.rIssueNow && `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_RSID_RNG] != 0)
        if (`VP_TOP.EXE.II0.rIssueNow && `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_RSID_RNG] != 0)
        begin
        begin
 
 
 
 
                //Issue state dump
                //Issue state dump
                $fwrite(VP_LOG,"\n%dns VP[%d] IP %d    ISSUE ",$time,`VP_TOP.iVPID-1,`VP_TOP.EXE.II0.oIP0-1);
                `DWRITE"\n%dns VP[%d] IP %d    ISSUE ",$time,`VP_TOP.iVPID-1,`VP_TOP.EXE.II0.oIP0-1);
 
 
                //Issue instruction undecoded
                //Issue instruction undecoded
                $fwrite(VP_LOG," (%h) \t",`VP_TOP.EXE.II0.iInstruction0);
                `DWRITE" (%h) \t",`VP_TOP.EXE.II0.iInstruction0);
 
 
                if (`VP_TOP.EXE.II0.iInstruction0[`INST_BRANCH_BIT])
                if (`VP_TOP.EXE.II0.iInstruction0[`INST_BRANCH_BIT])
                        $fwrite(VP_LOG," BRANCH ");
                        `DWRITE" BRANCH ");
 
 
                case ( `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_RSID_RNG] )
                case ( `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_RSID_RNG] )
                        `RS_ADD0: $fwrite(VP_LOG," ADD_0 ");
                        `RS_ADD0: `DWRITE" ADD_0 ");
                        `RS_ADD1: $fwrite(VP_LOG," ADD_1 ");
                        `RS_ADD1: `DWRITE" ADD_1 ");
                        `RS_DIV: $fwrite(VP_LOG," DIV ");
                        `RS_DIV: `DWRITE" DIV ");
                        `RS_MUL: $fwrite(VP_LOG," MUL ");
                        `RS_MUL: `DWRITE" MUL ");
                        `RS_SQRT: $fwrite(VP_LOG," SQRT ");
                        `RS_SQRT: `DWRITE" SQRT ");
                        `RS_LOGIC:
                        `RS_LOGIC:
                        begin
                        begin
                        $fwrite(VP_LOG," LOGIC( ");
                        `DWRITE" LOGIC( ");
                        case (`VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SCALE_RNG])
                        case (`VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SCALE_RNG])
                        0: $fwrite(VP_LOG,"AND");
                        0: `DWRITE"AND");
                        1: $fwrite(VP_LOG,"OR");
                        1: `DWRITE"OR");
                        2: $fwrite(VP_LOG,"NOT");
                        2: `DWRITE"NOT");
                        3: $fwrite(VP_LOG,"SHL");
                        3: `DWRITE"SHL");
                        4: $fwrite(VP_LOG,"SHR");
                        4: `DWRITE"SHR");
                        default:
                        default:
                          $fwrite(VP_LOG,"UNKNOWN");
                          `DWRITE"UNKNOWN");
                        endcase
                        endcase
                        $fwrite(VP_LOG,")  ");
                        `DWRITE")  ");
                        end
                        end
                        `RS_IO:$fwrite(VP_LOG," IO ");
                        `RS_IO:`DWRITE" IO ");
                        default:
                        default:
                        $fwrite(VP_LOG," %b ",`VP_TOP.EXE.II0.oIssueBcast[`ISSUE_RSID_RNG]);
                        `DWRITE" %b ",`VP_TOP.EXE.II0.oIssueBcast[`ISSUE_RSID_RNG]);
                endcase
                endcase
 
 
                if ( `VP_TOP.EXE.II0.iInstruction0[`INST_IMM] == 0)
                if ( `VP_TOP.EXE.II0.iInstruction0[`INST_IMM] == 0)
                begin
                begin
                        if (`VP_TOP.EXE.II0.iInstruction0[`INST_DEST_ZERO])
                        if (`VP_TOP.EXE.II0.iInstruction0[`INST_DEST_ZERO])
                                $fwrite(VP_LOG, "R[%d + %d]", `VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                                `DWRITE "R[%d + %d]", `VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                        else
                        else
                                $fwrite(VP_LOG, "R[%d]", `VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG]);
                                `DWRITE "R[%d]", `VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG]);
                end
                end
                else
                else
                begin
                begin
 
 
                                case (`VP_TOP.EXE.II0.iInstruction0[`INST_ADDRMODE_RNG])
                                case (`VP_TOP.EXE.II0.iInstruction0[`INST_ADDRMODE_RNG])
                                3'b000: $fwrite(VP_LOG,"R[%d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG]);
                                3'b000: `DWRITE"R[%d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG]);
                                3'b001: $fwrite(VP_LOG,"R[%d + %d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                                3'b001: `DWRITE"R[%d + %d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                                3'b010: $fwrite(VP_LOG,"R[%d + %d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                                3'b010: `DWRITE"R[%d + %d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                                3'b011: $fwrite(VP_LOG,"R[%d + %d + %d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset,`VP_TOP.EXE.II0.wSource1_Temp[`X_RNG]);
                                3'b011: `DWRITE"R[%d + %d + %d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset,`VP_TOP.EXE.II0.wSource1_Temp[`X_RNG]);
                                3'b100: $fwrite(VP_LOG,"R[%d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG]);
                                3'b100: `DWRITE"R[%d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG]);
                                3'b101: $fwrite(VP_LOG,"R[%d + %d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                                3'b101: `DWRITE"R[%d + %d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                                3'b110: $fwrite(VP_LOG,"R[%d + %d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                                3'b110: `DWRITE"R[%d + %d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                                3'b111: $fwrite(VP_LOG,"R[%d + %d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                                3'b111: `DWRITE"R[%d + %d]",`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                                endcase
                                endcase
                end
                end
 
 
                case ( `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_WE_RNG] )
                case ( `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_WE_RNG] )
                        3'b000: $fwrite(VP_LOG,".nowrite ");
                        3'b000: `DWRITE".nowrite ");
                        3'b001: $fwrite(VP_LOG,".z ");
                        3'b001: `DWRITE".z ");
                        3'b010: $fwrite(VP_LOG,".y ");
                        3'b010: `DWRITE".y ");
                        3'b100: $fwrite(VP_LOG,".x ");
                        3'b100: `DWRITE".x ");
                        3'b111: $fwrite(VP_LOG,".xyz ");
                        3'b111: `DWRITE".xyz ");
                        default:
                        default:
                        $fwrite(VP_LOG," %b ",`VP_TOP.EXE.II0.oIssueBcast[`ISSUE_WE_RNG]);
                        `DWRITE" %b ",`VP_TOP.EXE.II0.oIssueBcast[`ISSUE_WE_RNG]);
                endcase
                endcase
 
 
                if (`VP_TOP.EXE.II0.iInstruction0[`INST_IMM])
                if (`VP_TOP.EXE.II0.iInstruction0[`INST_IMM])
                        /*if (`VP_TOP.EXE.II0.iInstruction0[`INST_SRC0_DISPLACED] && `VP_TOP.EXE.II0.iInstruction0[`INST_SRC1_DISPLACED])
                        /*if (`VP_TOP.EXE.II0.iInstruction0[`INST_SRC0_DISPLACED] && `VP_TOP.EXE.II0.iInstruction0[`INST_SRC1_DISPLACED])
                                $fwrite(VP_LOG, "R[%d] 0 ",`VP_TOP.EXE.II0.oSourceAddress0);
                                `DWRITE "R[%d] 0 ",`VP_TOP.EXE.II0.oSourceAddress0);
                        else
                        else
                                $fwrite(VP_LOG, "I(%h)",`VP_TOP.EXE.II0.iInstruction0[`INST_IMM_RNG]);*/
                                `DWRITE "I(%h)",`VP_TOP.EXE.II0.iInstruction0[`INST_IMM_RNG]);*/
                                case (`VP_TOP.EXE.II0.iInstruction0[`INST_ADDRMODE_RNG])
                                case (`VP_TOP.EXE.II0.iInstruction0[`INST_ADDRMODE_RNG])
                                3'b000: $fwrite(VP_LOG,"I(%h) R[%d]",`VP_TOP.EXE.II0.iInstruction0[`INST_IMM_RNG], `VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG]);
                                3'b000: `DWRITE"I(%h) R[%d]",`VP_TOP.EXE.II0.iInstruction0[`INST_IMM_RNG], `VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG]);
                                3'b001: $fwrite(VP_LOG,"**!!I(%h) R[%d + %d] ",`VP_TOP.EXE.II0.iInstruction0[`INST_IMM_RNG],`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                                3'b001: `DWRITE"**!!I(%h) R[%d + %d] ",`VP_TOP.EXE.II0.iInstruction0[`INST_IMM_RNG],`VP_TOP.EXE.II0.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                                3'b010: $fwrite(VP_LOG,"R[%d+%d] R[%d+%d+%d]",`VP_TOP.EXE.II0.oSourceAddress1,`VP_TOP.EXE.II0.iFrameOffset,`VP_TOP.EXE.II0.oSourceAddress0,`VP_TOP.EXE.II0.iFrameOffset,`VP_TOP.EXE.II0.iIndexRegister);
                                3'b010: `DWRITE"R[%d+%d] R[%d+%d+%d]",`VP_TOP.EXE.II0.oSourceAddress1,`VP_TOP.EXE.II0.iFrameOffset,`VP_TOP.EXE.II0.oSourceAddress0,`VP_TOP.EXE.II0.iFrameOffset,`VP_TOP.EXE.II0.iIndexRegister);
                                3'b011: $fwrite(VP_LOG,"0 R[%d + %d]",`VP_TOP.EXE.II0.oSourceAddress0,`VP_TOP.EXE.II0.iFrameOffset);
                                3'b011: `DWRITE"0 R[%d + %d]",`VP_TOP.EXE.II0.oSourceAddress0,`VP_TOP.EXE.II0.iFrameOffset);
                                3'b100: $fwrite(VP_LOG,"I(%h) 0",`VP_TOP.EXE.II0.iInstruction0[`INST_IMM_RNG]);
                                3'b100: `DWRITE"I(%h) 0",`VP_TOP.EXE.II0.iInstruction0[`INST_IMM_RNG]);
                                3'b101: $fwrite(VP_LOG,"I(%h) 0",`VP_TOP.EXE.II0.iInstruction0[`INST_IMM_RNG]);
                                3'b101: `DWRITE"I(%h) 0",`VP_TOP.EXE.II0.iInstruction0[`INST_IMM_RNG]);
                                3'b110: $fwrite(VP_LOG,"R[%d + %d + %d] 0", `VP_TOP.EXE.II0.oSourceAddress1,`VP_TOP.EXE.II0.iFrameOffset,`VP_TOP.EXE.II0.iIndexRegister);
                                3'b110: `DWRITE"R[%d + %d + %d] 0", `VP_TOP.EXE.II0.oSourceAddress1,`VP_TOP.EXE.II0.iFrameOffset,`VP_TOP.EXE.II0.iIndexRegister);
                                3'b111: $fwrite(VP_LOG,"R[%d + %d + %d] R[%d + %d]",`VP_TOP.EXE.II0.iInstruction0[`INST_SCR1_ADDR_RNG],`VP_TOP.EXE.II0.iFrameOffset,`VP_TOP.EXE.II0.iIndexRegister,`VP_TOP.EXE.II0.oSourceAddress0,`VP_TOP.EXE.II0.iFrameOffset);
                                3'b111: `DWRITE"R[%d + %d + %d] R[%d + %d]",`VP_TOP.EXE.II0.iInstruction0[`INST_SCR1_ADDR_RNG],`VP_TOP.EXE.II0.iFrameOffset,`VP_TOP.EXE.II0.iIndexRegister,`VP_TOP.EXE.II0.oSourceAddress0,`VP_TOP.EXE.II0.iFrameOffset);
                                endcase
                                endcase
                else
                else
                begin
                begin
                        if (`VP_TOP.EXE.II0.iInstruction0[`INST_SRC1_DISPLACED] == 0)
                        if (`VP_TOP.EXE.II0.iInstruction0[`INST_SRC1_DISPLACED] == 0)
                                $fwrite(VP_LOG, "R[%d] ",`VP_TOP.EXE.II0.oSourceAddress1);
                                `DWRITE "R[%d] ",`VP_TOP.EXE.II0.oSourceAddress1);
                        else
                        else
                                $fwrite(VP_LOG, "R[%d + %d] ",  `VP_TOP.EXE.II0.iInstruction0[`INST_SCR1_ADDR_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                                `DWRITE "R[%d + %d] ",  `VP_TOP.EXE.II0.iInstruction0[`INST_SCR1_ADDR_RNG],`VP_TOP.EXE.II0.iFrameOffset);
 
 
                        if (`VP_TOP.EXE.II0.iInstruction0[`INST_SRC0_DISPLACED] == 0)
                        if (`VP_TOP.EXE.II0.iInstruction0[`INST_SRC0_DISPLACED] == 0)
                                $fwrite(VP_LOG, "R[%d] ",`VP_TOP.EXE.II0.oSourceAddress0);
                                `DWRITE "R[%d] ",`VP_TOP.EXE.II0.oSourceAddress0);
                        else
                        else
                                $fwrite(VP_LOG, "R[%d + %d] ",  `VP_TOP.EXE.II0.iInstruction0[`INST_SRC0_ADDR_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                                `DWRITE "R[%d + %d] ",  `VP_TOP.EXE.II0.iInstruction0[`INST_SRC0_ADDR_RNG],`VP_TOP.EXE.II0.iFrameOffset);
                end
                end
 
 
                $fwrite(VP_LOG,"\t\t\t\t");
                `DWRITE"\t\t\t\t");
                case ( `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SRC1RS_RNG] )
                case ( `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SRC1RS_RNG] )
                        `RS_ADD0: $fwrite(VP_LOG," ADD_0 ");
                        `RS_ADD0: `DWRITE" ADD_0 ");
                        `RS_ADD1: $fwrite(VP_LOG," ADD_1 ");
                        `RS_ADD1: `DWRITE" ADD_1 ");
                        `RS_DIV: $fwrite(VP_LOG," DIV ");
                        `RS_DIV: `DWRITE" DIV ");
                        `RS_MUL: $fwrite(VP_LOG," MUL ");
                        `RS_MUL: `DWRITE" MUL ");
                        `RS_SQRT: $fwrite(VP_LOG," SQRT ");
                        `RS_SQRT: `DWRITE" SQRT ");
                        `RS_IO: $fwrite(VP_LOG," IO ");
                        `RS_IO: `DWRITE" IO ");
                        default:
                        default:
                        $fwrite(VP_LOG," %b ",`VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SRC1RS_RNG]);
                        `DWRITE" %b ",`VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SRC1RS_RNG]);
                endcase
                endcase
                $fwrite(VP_LOG," | ");
                `DWRITE" | ");
 
 
                case ( `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SRC0RS_RNG] )
                case ( `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SRC0RS_RNG] )
                        `RS_ADD0: $fwrite(VP_LOG," ADD_0 ");
                        `RS_ADD0: `DWRITE" ADD_0 ");
                        `RS_ADD1: $fwrite(VP_LOG," ADD_1 ");
                        `RS_ADD1: `DWRITE" ADD_1 ");
                        `RS_DIV: $fwrite(VP_LOG," DIV ");
                        `RS_DIV: `DWRITE" DIV ");
                        `RS_MUL: $fwrite(VP_LOG," MUL ");
                        `RS_MUL: `DWRITE" MUL ");
                        `RS_SQRT: $fwrite(VP_LOG," SQRT ");
                        `RS_SQRT: `DWRITE" SQRT ");
                        `RS_IO: $fwrite(VP_LOG," IO ");
                        `RS_IO: `DWRITE" IO ");
                        default:
                        default:
                        $fwrite(VP_LOG," %b ",`VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SRC0RS_RNG]);
                        `DWRITE" %b ",`VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SRC0RS_RNG]);
                endcase
                endcase
                $fwrite(VP_LOG," | ");
                `DWRITE" | ");
 
 
                $fwrite(VP_LOG," %h.%b | %h.%b s(%b)|  -> ",
                `DWRITE" %h.%b | %h.%b s(%b)|  -> ",
                `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SRC1_DATA_RNG],
                `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SRC1_DATA_RNG],
                `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SWZZ1_RNG],
                `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SWZZ1_RNG],
                `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SRC0_DATA_RNG],
                `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SRC0_DATA_RNG],
                `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SWZZ0_RNG],
                `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SWZZ0_RNG],
                `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SCALE_RNG]);
                `VP_TOP.EXE.II0.oIssueBcast[`ISSUE_SCALE_RNG]);
 
 
                $fwrite(VP_LOG," %h | %h",
                `DWRITE" %h | %h",
                `VP_TOP.EXE.wModIssue[`MOD_ISSUE_SRC1_DATA_RNG],
                `VP_TOP.EXE.wModIssue[`MOD_ISSUE_SRC1_DATA_RNG],
                `VP_TOP.EXE.wModIssue[`MOD_ISSUE_SRC0_DATA_RNG]
                `VP_TOP.EXE.wModIssue[`MOD_ISSUE_SRC0_DATA_RNG]
                );
                );
        end
        end
 
 
Line 232... Line 240...
        if (`VP_TOP.EXE.II1.rIssueNow && `VP_TOP.EXE.II1.oIssueBcast[`ISSUE_RSID_RNG] != 0)
        if (`VP_TOP.EXE.II1.rIssueNow && `VP_TOP.EXE.II1.oIssueBcast[`ISSUE_RSID_RNG] != 0)
        begin
        begin
 
 
 
 
                //Issue state dump
                //Issue state dump
                $fwrite(VP_LOG,"\n THREAD 1 %dns IP %d    ISSUE ",$time,`VP_TOP.EXE.II1.oIP0-1);
                `DWRITE"\n THREAD 1 %dns IP %d    ISSUE ",$time,`VP_TOP.EXE.II1.oIP0-1);
 
 
                //Issue instruction undecoded
                //Issue instruction undecoded
                $fwrite(VP_LOG," (%h) \t",`VP_TOP.EXE.II1.iInstruction0);
                `DWRITE" (%h) \t",`VP_TOP.EXE.II1.iInstruction0);
 
 
                if (`VP_TOP.EXE.II1.iInstruction0[`INST_BRANCH_BIT])
                if (`VP_TOP.EXE.II1.iInstruction0[`INST_BRANCH_BIT])
                        $fwrite(VP_LOG," BRANCH ");
                        `DWRITE" BRANCH ");
 
 
                case ( `VP_TOP.EXE.II1.oIssueBcast[`ISSUE_RSID_RNG] )
                case ( `VP_TOP.EXE.II1.oIssueBcast[`ISSUE_RSID_RNG] )
                        `RS_ADD0: $fwrite(VP_LOG," ADD_0 ");
                        `RS_ADD0: `DWRITE" ADD_0 ");
                        `RS_ADD1: $fwrite(VP_LOG," ADD_1 ");
                        `RS_ADD1: `DWRITE" ADD_1 ");
                        `RS_DIV: $fwrite(VP_LOG," DIV ");
                        `RS_DIV: `DWRITE" DIV ");
                        `RS_MUL: $fwrite(VP_LOG," MUL ");
                        `RS_MUL: `DWRITE" MUL ");
                        `RS_SQRT: $fwrite(VP_LOG," SQRT ");
                        `RS_SQRT: `DWRITE" SQRT ");
                        default:
                        default:
                        $fwrite(VP_LOG," %b ",`VP_TOP.EXE.II1.oIssueBcast[`ISSUE_RSID_RNG]);
                        `DWRITE" %b ",`VP_TOP.EXE.II1.oIssueBcast[`ISSUE_RSID_RNG]);
                endcase
                endcase
 
 
                if ( `VP_TOP.EXE.II1.iInstruction0[`INST_IMM] == 0)
                if ( `VP_TOP.EXE.II1.iInstruction0[`INST_IMM] == 0)
                begin
                begin
                        if (`VP_TOP.EXE.II1.iInstruction0[`INST_DEST_ZERO])
                        if (`VP_TOP.EXE.II1.iInstruction0[`INST_DEST_ZERO])
                                $fwrite(VP_LOG, "R[%d + %d]", `VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.iFrameOffset);
                                `DWRITE "R[%d + %d]", `VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.iFrameOffset);
                        else
                        else
                                $fwrite(VP_LOG, "R[%d]", `VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG]);
                                `DWRITE "R[%d]", `VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG]);
                end
                end
                else
                else
                begin
                begin
 
 
                                case (`VP_TOP.EXE.II1.iInstruction0[`INST_ADDRMODE_RNG])
                                case (`VP_TOP.EXE.II1.iInstruction0[`INST_ADDRMODE_RNG])
                                3'b000: $fwrite(VP_LOG,"R[%d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG]);
                                3'b000: `DWRITE"R[%d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG]);
                                3'b001: $fwrite(VP_LOG,"R[%d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.iFrameOffset);
                                3'b001: `DWRITE"R[%d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.iFrameOffset);
                                3'b010: $fwrite(VP_LOG,"R[%d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.iFrameOffset);
                                3'b010: `DWRITE"R[%d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.iFrameOffset);
                                3'b011: $fwrite(VP_LOG,"R[%d + %d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.iFrameOffset,`VP_TOP.EXE.II1.wSource1_Temp[`X_RNG]);
                                3'b011: `DWRITE"R[%d + %d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.iFrameOffset,`VP_TOP.EXE.II1.wSource1_Temp[`X_RNG]);
                                3'b100: $fwrite(VP_LOG,"R[%d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG]);
                                3'b100: `DWRITE"R[%d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG]);
                                3'b101: $fwrite(VP_LOG,"R[%d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.iFrameOffset);
                                3'b101: `DWRITE"R[%d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.iFrameOffset);
                                3'b110: $fwrite(VP_LOG,"R[%d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.iFrameOffset);
                                3'b110: `DWRITE"R[%d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.iFrameOffset);
                                3'b111: $fwrite(VP_LOG,"R[%d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.iFrameOffset);
                                3'b111: `DWRITE"R[%d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.iFrameOffset);
                                endcase
                                endcase
                end
                end
 
 
                case ( `VP_TOP.EXE.II1.oIssueBcast[`ISSUE_WE_RNG] )
                case ( `VP_TOP.EXE.II1.oIssueBcast[`ISSUE_WE_RNG] )
                        3'b000: $fwrite(VP_LOG,".nowrite ");
                        3'b000: `DWRITE".nowrite ");
                        3'b001: $fwrite(VP_LOG,".z ");
                        3'b001: `DWRITE".z ");
                        3'b010: $fwrite(VP_LOG,".y ");
                        3'b010: `DWRITE".y ");
                        3'b100: $fwrite(VP_LOG,".x ");
                        3'b100: `DWRITE".x ");
                        3'b111: $fwrite(VP_LOG,".xyz ");
                        3'b111: `DWRITE".xyz ");
                        default:
                        default:
                        $fwrite(VP_LOG," %b ",`VP_TOP.EXE.II1.oIssueBcast[`ISSUE_WE_RNG]);
                        `DWRITE" %b ",`VP_TOP.EXE.II1.oIssueBcast[`ISSUE_WE_RNG]);
                endcase
                endcase
 
 
                if (`VP_TOP.EXE.II1.iInstruction0[`INST_IMM])
                if (`VP_TOP.EXE.II1.iInstruction0[`INST_IMM])
                        /*if (`VP_TOP.EXE.II1.iInstruction0[`INST_SRC0_DISPLACED] && `VP_TOP.EXE.II1.iInstruction0[`INST_SRC1_DISPLACED])
                        /*if (`VP_TOP.EXE.II1.iInstruction0[`INST_SRC0_DISPLACED] && `VP_TOP.EXE.II1.iInstruction0[`INST_SRC1_DISPLACED])
                                $fwrite(VP_LOG, "R[%d] 0 ",`VP_TOP.EXE.II1.oSourceAddress0);
                                `DWRITE "R[%d] 0 ",`VP_TOP.EXE.II1.oSourceAddress0);
                        else
                        else
                                $fwrite(VP_LOG, "I(%h)",`VP_TOP.EXE.II1.iInstruction0[`INST_IMM_RNG]);*/
                                `DWRITE "I(%h)",`VP_TOP.EXE.II1.iInstruction0[`INST_IMM_RNG]);*/
                                case (`VP_TOP.EXE.II1.iInstruction0[`INST_ADDRMODE_RNG])
                                case (`VP_TOP.EXE.II1.iInstruction0[`INST_ADDRMODE_RNG])
                                3'b000: $fwrite(VP_LOG,"I(%h) R[%d]",`VP_TOP.EXE.II1.iInstruction0[`INST_IMM_RNG], `VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG]);
                                3'b000: `DWRITE"I(%h) R[%d]",`VP_TOP.EXE.II1.iInstruction0[`INST_IMM_RNG], `VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG]);
                                3'b001: $fwrite(VP_LOG,"I(%h) R[%d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.oSourceAddress0,`VP_TOP.EXE.II1.iFrameOffset);
                                3'b001: `DWRITE"I(%h) R[%d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_DST_RNG],`VP_TOP.EXE.II1.oSourceAddress0,`VP_TOP.EXE.II1.iFrameOffset);
                                3'b010: $fwrite(VP_LOG,"R[%d+%d] R[%d+%d+%d]",`VP_TOP.EXE.II1.oSourceAddress1,`VP_TOP.EXE.II1.iFrameOffset,`VP_TOP.EXE.II1.oSourceAddress0,`VP_TOP.EXE.II1.iFrameOffset,`VP_TOP.EXE.II1.iIndexRegister);
                                3'b010: `DWRITE"R[%d+%d] R[%d+%d+%d]",`VP_TOP.EXE.II1.oSourceAddress1,`VP_TOP.EXE.II1.iFrameOffset,`VP_TOP.EXE.II1.oSourceAddress0,`VP_TOP.EXE.II1.iFrameOffset,`VP_TOP.EXE.II1.iIndexRegister);
                                3'b011: $fwrite(VP_LOG,"0 R[%d + %d]",`VP_TOP.EXE.II1.oSourceAddress0,`VP_TOP.EXE.II1.iFrameOffset);
                                3'b011: `DWRITE"0 R[%d + %d]",`VP_TOP.EXE.II1.oSourceAddress0,`VP_TOP.EXE.II1.iFrameOffset);
                                3'b100: $fwrite(VP_LOG,"I(%h) 0",`VP_TOP.EXE.II1.iInstruction0[`INST_IMM_RNG]);
                                3'b100: `DWRITE"I(%h) 0",`VP_TOP.EXE.II1.iInstruction0[`INST_IMM_RNG]);
                                3'b101: $fwrite(VP_LOG,"I(%h) 0",`VP_TOP.EXE.II1.iInstruction0[`INST_IMM_RNG]);
                                3'b101: `DWRITE"I(%h) 0",`VP_TOP.EXE.II1.iInstruction0[`INST_IMM_RNG]);
                                3'b110: $fwrite(VP_LOG,"R[%d + %d + %d] 0", `VP_TOP.EXE.II1.oSourceAddress1,`VP_TOP.EXE.II1.iFrameOffset,`VP_TOP.EXE.II1.iIndexRegister);
                                3'b110: `DWRITE"R[%d + %d + %d] 0", `VP_TOP.EXE.II1.oSourceAddress1,`VP_TOP.EXE.II1.iFrameOffset,`VP_TOP.EXE.II1.iIndexRegister);
                                3'b111: $fwrite(VP_LOG,"R[%d + %d + %d] R[%d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_SCR1_ADDR_RNG],`VP_TOP.EXE.II1.iFrameOffset,`VP_TOP.EXE.II1.iIndexRegister,`VP_TOP.EXE.II1.oSourceAddress0,`VP_TOP.EXE.II1.iFrameOffset);
                                3'b111: `DWRITE"R[%d + %d + %d] R[%d + %d]",`VP_TOP.EXE.II1.iInstruction0[`INST_SCR1_ADDR_RNG],`VP_TOP.EXE.II1.iFrameOffset,`VP_TOP.EXE.II1.iIndexRegister,`VP_TOP.EXE.II1.oSourceAddress0,`VP_TOP.EXE.II1.iFrameOffset);
                                endcase
                                endcase
                else
                else
                begin
                begin
                        if (`VP_TOP.EXE.II1.iInstruction0[`INST_SRC1_DISPLACED] == 0)
                        if (`VP_TOP.EXE.II1.iInstruction0[`INST_SRC1_DISPLACED] == 0)
                                $fwrite(VP_LOG, "R[%d] ",`VP_TOP.EXE.II1.oSourceAddress1);
                                `DWRITE "R[%d] ",`VP_TOP.EXE.II1.oSourceAddress1);
                        else
                        else
                                $fwrite(VP_LOG, "R[%d + %d] ",  `VP_TOP.EXE.II1.iInstruction0[`INST_SCR1_ADDR_RNG],`VP_TOP.EXE.II1.iFrameOffset);
                                `DWRITE "R[%d + %d] ",  `VP_TOP.EXE.II1.iInstruction0[`INST_SCR1_ADDR_RNG],`VP_TOP.EXE.II1.iFrameOffset);
 
 
                        if (`VP_TOP.EXE.II1.iInstruction0[`INST_SRC0_DISPLACED] == 0)
                        if (`VP_TOP.EXE.II1.iInstruction0[`INST_SRC0_DISPLACED] == 0)
                                $fwrite(VP_LOG, "R[%d] ",`VP_TOP.EXE.II1.oSourceAddress0);
                                `DWRITE "R[%d] ",`VP_TOP.EXE.II1.oSourceAddress0);
                        else
                        else
                                $fwrite(VP_LOG, "R[%d + %d] ",  `VP_TOP.EXE.II1.iInstruction0[`INST_SRC0_ADDR_RNG],`VP_TOP.EXE.II1.iFrameOffset);
                                `DWRITE "R[%d + %d] ",  `VP_TOP.EXE.II1.iInstruction0[`INST_SRC0_ADDR_RNG],`VP_TOP.EXE.II1.iFrameOffset);
                end
                end
 
 
                $fwrite(VP_LOG,"\t\t\t\t");
                `DWRITE"\t\t\t\t");
                case ( `VP_TOP.EXE.II1.oIssueBcast[`ISSUE_SRC1RS_RNG] )
                case ( `VP_TOP.EXE.II1.oIssueBcast[`ISSUE_SRC1RS_RNG] )
                        `RS_ADD0: $fwrite(VP_LOG," ADD_0 ");
                        `RS_ADD0: `DWRITE" ADD_0 ");
                        `RS_ADD1: $fwrite(VP_LOG," ADD_1 ");
                        `RS_ADD1: `DWRITE" ADD_1 ");
                        `RS_DIV: $fwrite(VP_LOG," DIV ");
                        `RS_DIV: `DWRITE" DIV ");
                        `RS_MUL: $fwrite(VP_LOG," MUL ");
                        `RS_MUL: `DWRITE" MUL ");
                        `RS_SQRT: $fwrite(VP_LOG," SQRT ");
                        `RS_SQRT: `DWRITE" SQRT ");
                        `RS_IO: $fwrite(VP_LOG," IO ");
                        `RS_IO: `DWRITE" IO ");
                        default:
                        default:
                        $fwrite(VP_LOG," %b ",`VP_TOP.EXE.II1.oIssueBcast[`ISSUE_SRC1RS_RNG]);
                        `DWRITE" %b ",`VP_TOP.EXE.II1.oIssueBcast[`ISSUE_SRC1RS_RNG]);
                endcase
                endcase
                $fwrite(VP_LOG," | ");
                `DWRITE" | ");
 
 
                case ( `VP_TOP.EXE.II1.oIssueBcast[`ISSUE_SRC0RS_RNG] )
                case ( `VP_TOP.EXE.II1.oIssueBcast[`ISSUE_SRC0RS_RNG] )
                        `RS_ADD0: $fwrite(VP_LOG," ADD_0 ");
                        `RS_ADD0: `DWRITE" ADD_0 ");
                        `RS_ADD1: $fwrite(VP_LOG," ADD_1 ");
                        `RS_ADD1: `DWRITE" ADD_1 ");
                        `RS_DIV: $fwrite(VP_LOG," DIV ");
                        `RS_DIV: `DWRITE" DIV ");
                        `RS_MUL: $fwrite(VP_LOG," MUL ");
                        `RS_MUL: `DWRITE" MUL ");
                        `RS_SQRT: $fwrite(VP_LOG," SQRT ");
                        `RS_SQRT: `DWRITE" SQRT ");
                        `RS_IO: $fwrite(VP_LOG," IO ");
                        `RS_IO: `DWRITE" IO ");
                        default:
                        default:
                        $fwrite(VP_LOG," %b ",`VP_TOP.EXE.II1.oIssueBcast[`ISSUE_SRC0RS_RNG]);
                        `DWRITE" %b ",`VP_TOP.EXE.II1.oIssueBcast[`ISSUE_SRC0RS_RNG]);
                endcase
                endcase
                $fwrite(VP_LOG," | ");
                `DWRITE" | ");
 
 
                $fwrite(VP_LOG," %h | %h",
                `DWRITE" %h | %h",
                `VP_TOP.EXE.wModIssue[`MOD_ISSUE_SRC1_DATA_RNG],
                `VP_TOP.EXE.wModIssue[`MOD_ISSUE_SRC1_DATA_RNG],
                `VP_TOP.EXE.wModIssue[`MOD_ISSUE_SRC0_DATA_RNG]
                `VP_TOP.EXE.wModIssue[`MOD_ISSUE_SRC0_DATA_RNG]
                );
                );
        end
        end
 
 
Line 351... Line 359...
////////////////////////// DUMP EXE UNITS!
////////////////////////// DUMP EXE UNITS!
 
 
if (`VP_TOP.EXE.II0.wCommitFromPendingStation)
if (`VP_TOP.EXE.II0.wCommitFromPendingStation)
begin
begin
        if ( `VP_TOP.EXE.II0.wBranchTaken)
        if ( `VP_TOP.EXE.II0.wBranchTaken)
                $fwrite(VP_LOG,"\nTHREAD 0: BRANCH TAKEN ");
                `DWRITE"\nTHREAD 0: BRANCH TAKEN ");
 
 
end
end
 
 
if (`VP_TOP.EXE.II1.wCommitFromPendingStation)
if (`VP_TOP.EXE.II1.wCommitFromPendingStation)
begin
begin
        if ( `VP_TOP.EXE.II1.wBranchTaken)
        if ( `VP_TOP.EXE.II1.wBranchTaken)
 
 
                $fwrite(VP_LOG,"\nTHREAD 1: BRANCH TAKEN ");
                `DWRITE"\nTHREAD 1: BRANCH TAKEN ");
 
 
end
end
//-----------------------------------------------------------------             
//-----------------------------------------------------------------             
if (`VP_TOP.EXE.LOGIC_STA.RS.iCommitGranted)
if (`VP_TOP.EXE.LOGIC_STA.RS.iCommitGranted)
begin
begin
$fwrite(VP_LOG,"\n%dns VP[%d]\t COMMIT LOGIC( ",$time,`VP_TOP.iVPID-1);
`DWRITE"\n%dns VP[%d]\t COMMIT LOGIC( ",$time,`VP_TOP.iVPID-1);
 
 
                        case (`VP_TOP.EXE.LOGIC_STA.wResultSelector)
                        case (`VP_TOP.EXE.LOGIC_STA.wResultSelector)
                        0: $fwrite(VP_LOG,"AND");
                        0: `DWRITE"AND");
                        1: $fwrite(VP_LOG,"OR");
                        1: `DWRITE"OR");
                        2: $fwrite(VP_LOG,"NOT");
                        2: `DWRITE"NOT");
                        3: $fwrite(VP_LOG,"SHL");
                        3: `DWRITE"SHL");
                        4: $fwrite(VP_LOG,"SHR");
                        4: `DWRITE"SHR");
                        default:
                        default:
                          $fwrite(VP_LOG,"UNKNOWN");
                          `DWRITE"UNKNOWN");
                        endcase
                        endcase
                        $fwrite(VP_LOG,")  ");
                        `DWRITE")  ");
         $fwrite(VP_LOG," R[%d]",`VP_TOP.EXE.LOGIC_STA.oCommitData[`COMMIT_DST_RNG]);
         `DWRITE" R[%d]",`VP_TOP.EXE.LOGIC_STA.oCommitData[`COMMIT_DST_RNG]);
 
 
        case ( `VP_TOP.EXE.LOGIC_STA.oCommitData[`COMMIT_WE_RNG] )
        case ( `VP_TOP.EXE.LOGIC_STA.oCommitData[`COMMIT_WE_RNG] )
                        3'b000: $fwrite(VP_LOG,".nowrite ");
                        3'b000: `DWRITE".nowrite ");
                        3'b001: $fwrite(VP_LOG,".z ");
                        3'b001: `DWRITE".z ");
                        3'b010: $fwrite(VP_LOG,".y ");
                        3'b010: `DWRITE".y ");
                        3'b100: $fwrite(VP_LOG,".x ");
                        3'b100: `DWRITE".x ");
                        3'b111: $fwrite(VP_LOG,".xyz ");
                        3'b111: `DWRITE".xyz ");
                        default:
                        default:
                        $fwrite(VP_LOG," %b ",`VP_TOP.EXE.LOGIC_STA.oCommitData[`COMMIT_WE_RNG]);
                        `DWRITE" %b ",`VP_TOP.EXE.LOGIC_STA.oCommitData[`COMMIT_WE_RNG]);
                endcase
                endcase
        $fwrite(VP_LOG," %h %h %h\n",`VP_TOP.EXE.LOGIC_STA.oCommitData[`COMMIT_X_RNG],`VP_TOP.EXE.LOGIC_STA.oCommitData[`COMMIT_Y_RNG],`VP_TOP.EXE.LOGIC_STA.oCommitData[`COMMIT_Z_RNG]);
        `DWRITE" %h %h %h\n",`VP_TOP.EXE.LOGIC_STA.oCommitData[`COMMIT_X_RNG],`VP_TOP.EXE.LOGIC_STA.oCommitData[`COMMIT_Y_RNG],`VP_TOP.EXE.LOGIC_STA.oCommitData[`COMMIT_Z_RNG]);
end
end
//-----------------------------------------------------------------             
//-----------------------------------------------------------------             
if (`VP_TOP.EXE.ADD_STA0.RS.iCommitGranted)
if (`VP_TOP.EXE.ADD_STA0.RS.iCommitGranted)
begin
begin
        $fwrite(VP_LOG,"\n%dns\t VP[%d] COMMIT ADD_0 R[%d]",$time,`VP_TOP.iVPID-1,`VP_TOP.EXE.ADD_STA0.oCommitData[`COMMIT_DST_RNG]);
        `DWRITE"\n%dns\t VP[%d] COMMIT ADD_0 R[%d]",$time,`VP_TOP.iVPID-1,`VP_TOP.EXE.ADD_STA0.oCommitData[`COMMIT_DST_RNG]);
 
 
        case ( `VP_TOP.EXE.ADD_STA0.oCommitData[`COMMIT_WE_RNG] )
        case ( `VP_TOP.EXE.ADD_STA0.oCommitData[`COMMIT_WE_RNG] )
                        3'b000: $fwrite(VP_LOG,".nowrite ");
                        3'b000: `DWRITE".nowrite ");
                        3'b001: $fwrite(VP_LOG,".z ");
                        3'b001: `DWRITE".z ");
                        3'b010: $fwrite(VP_LOG,".y ");
                        3'b010: `DWRITE".y ");
                        3'b100: $fwrite(VP_LOG,".x ");
                        3'b100: `DWRITE".x ");
                        3'b111: $fwrite(VP_LOG,".xyz ");
                        3'b111: `DWRITE".xyz ");
                        default:
                        default:
                        $fwrite(VP_LOG," %b ",`VP_TOP.EXE.ADD_STA0.oCommitData[`COMMIT_WE_RNG]);
                        `DWRITE" %b ",`VP_TOP.EXE.ADD_STA0.oCommitData[`COMMIT_WE_RNG]);
                endcase
                endcase
        $fwrite(VP_LOG," %h %h %h\n",`VP_TOP.EXE.ADD_STA0.oCommitData[`COMMIT_X_RNG],`VP_TOP.EXE.ADD_STA0.oCommitData[`COMMIT_Y_RNG],`VP_TOP.EXE.ADD_STA0.oCommitData[`COMMIT_Z_RNG]);
        `DWRITE" %h %h %h\n",`VP_TOP.EXE.ADD_STA0.oCommitData[`COMMIT_X_RNG],`VP_TOP.EXE.ADD_STA0.oCommitData[`COMMIT_Y_RNG],`VP_TOP.EXE.ADD_STA0.oCommitData[`COMMIT_Z_RNG]);
end
end
//-----------------------------------------------------------------             
//-----------------------------------------------------------------             
if (`VP_TOP.EXE.ADD_STA1.RS.iCommitGranted)
if (`VP_TOP.EXE.ADD_STA1.RS.iCommitGranted)
begin
begin
        $fwrite(VP_LOG,"\n%dns\t VP[%d] COMMIT ADD_1 R[%d]",$time,`VP_TOP.iVPID-1,`VP_TOP.EXE.ADD_STA1.oCommitData[`COMMIT_DST_RNG]);
        `DWRITE"\n%dns\t VP[%d] COMMIT ADD_1 R[%d]",$time,`VP_TOP.iVPID-1,`VP_TOP.EXE.ADD_STA1.oCommitData[`COMMIT_DST_RNG]);
 
 
        case ( `VP_TOP.EXE.ADD_STA1.oCommitData[`COMMIT_WE_RNG] )
        case ( `VP_TOP.EXE.ADD_STA1.oCommitData[`COMMIT_WE_RNG] )
                        3'b000: $fwrite(VP_LOG,".nowrite ");
                        3'b000: `DWRITE".nowrite ");
                        3'b001: $fwrite(VP_LOG,".z ");
                        3'b001: `DWRITE".z ");
                        3'b010: $fwrite(VP_LOG,".y ");
                        3'b010: `DWRITE".y ");
                        3'b100: $fwrite(VP_LOG,".x ");
                        3'b100: `DWRITE".x ");
                        3'b111: $fwrite(VP_LOG,".xyz ");
                        3'b111: `DWRITE".xyz ");
                        default:
                        default:
                        $fwrite(VP_LOG," %b ",`VP_TOP.EXE.ADD_STA1.oCommitData[`COMMIT_WE_RNG]);
                        `DWRITE" %b ",`VP_TOP.EXE.ADD_STA1.oCommitData[`COMMIT_WE_RNG]);
                endcase
                endcase
        $fwrite(VP_LOG," %h %h %h\n",`VP_TOP.EXE.ADD_STA1.oCommitData[`COMMIT_X_RNG],`VP_TOP.EXE.ADD_STA1.oCommitData[`COMMIT_Y_RNG],`VP_TOP.EXE.ADD_STA1.oCommitData[`COMMIT_Z_RNG]);
        `DWRITE" %h %h %h\n",`VP_TOP.EXE.ADD_STA1.oCommitData[`COMMIT_X_RNG],`VP_TOP.EXE.ADD_STA1.oCommitData[`COMMIT_Y_RNG],`VP_TOP.EXE.ADD_STA1.oCommitData[`COMMIT_Z_RNG]);
end
end
//-----------------------------------------------------------------             
//-----------------------------------------------------------------             
if (`VP_TOP.EXE.DIV_STA.RS.iCommitGranted)
if (`VP_TOP.EXE.DIV_STA.RS.iCommitGranted)
begin
begin
        $fwrite(VP_LOG,"\n%dns\t VP[%d] COMMIT DIV R[%d]",$time,`VP_TOP.iVPID-1,`VP_TOP.EXE.DIV_STA.oCommitData[`COMMIT_DST_RNG]);
        `DWRITE"\n%dns\t VP[%d] COMMIT DIV R[%d]",$time,`VP_TOP.iVPID-1,`VP_TOP.EXE.DIV_STA.oCommitData[`COMMIT_DST_RNG]);
 
 
        case ( `VP_TOP.EXE.DIV_STA.oCommitData[`COMMIT_WE_RNG] )
        case ( `VP_TOP.EXE.DIV_STA.oCommitData[`COMMIT_WE_RNG] )
                        3'b000: $fwrite(VP_LOG,".nowrite ");
                        3'b000: `DWRITE".nowrite ");
                        3'b001: $fwrite(VP_LOG,".z ");
                        3'b001: `DWRITE".z ");
                        3'b010: $fwrite(VP_LOG,".y ");
                        3'b010: `DWRITE".y ");
                        3'b100: $fwrite(VP_LOG,".x ");
                        3'b100: `DWRITE".x ");
                        3'b111: $fwrite(VP_LOG,".xyz ");
                        3'b111: `DWRITE".xyz ");
                        default:
                        default:
                        $fwrite(VP_LOG," %b ",`VP_TOP.EXE.DIV_STA.oCommitData[`COMMIT_WE_RNG]);
                        `DWRITE" %b ",`VP_TOP.EXE.DIV_STA.oCommitData[`COMMIT_WE_RNG]);
                endcase
                endcase
        $fwrite(VP_LOG," %h %h %h\n",`VP_TOP.EXE.DIV_STA.oCommitData[`COMMIT_X_RNG],`VP_TOP.EXE.DIV_STA.oCommitData[`COMMIT_Y_RNG],`VP_TOP.EXE.DIV_STA.oCommitData[`COMMIT_Z_RNG]);
        `DWRITE" %h %h %h\n",`VP_TOP.EXE.DIV_STA.oCommitData[`COMMIT_X_RNG],`VP_TOP.EXE.DIV_STA.oCommitData[`COMMIT_Y_RNG],`VP_TOP.EXE.DIV_STA.oCommitData[`COMMIT_Z_RNG]);
end
end
//-----------------------------------------------------------------             
//-----------------------------------------------------------------             
if (`VP_TOP.EXE.MUL_STA.RS.iCommitGranted)
if (`VP_TOP.EXE.MUL_STA.RS.iCommitGranted)
begin
begin
        $fwrite(VP_LOG,"\n%dns\t VP[%d] COMMIT MUL R[%d]",$time,`VP_TOP.iVPID-1, `VP_TOP.EXE.MUL_STA.oCommitData[`COMMIT_DST_RNG]);
        `DWRITE"\n%dns\t VP[%d] COMMIT MUL R[%d]",$time,`VP_TOP.iVPID-1, `VP_TOP.EXE.MUL_STA.oCommitData[`COMMIT_DST_RNG]);
 
 
        case ( `VP_TOP.EXE.MUL_STA.oCommitData[`COMMIT_WE_RNG] )
        case ( `VP_TOP.EXE.MUL_STA.oCommitData[`COMMIT_WE_RNG] )
                        3'b000: $fwrite(VP_LOG,".nowrite ");
                        3'b000: `DWRITE".nowrite ");
                        3'b001: $fwrite(VP_LOG,".z ");
                        3'b001: `DWRITE".z ");
                        3'b010: $fwrite(VP_LOG,".y ");
                        3'b010: `DWRITE".y ");
                        3'b100: $fwrite(VP_LOG,".x ");
                        3'b100: `DWRITE".x ");
                        3'b111: $fwrite(VP_LOG,".xyz ");
                        3'b111: `DWRITE".xyz ");
                        default:
                        default:
                        $fwrite(VP_LOG," %b ",`VP_TOP.EXE.MUL_STA.oCommitData[`COMMIT_WE_RNG]);
                        `DWRITE" %b ",`VP_TOP.EXE.MUL_STA.oCommitData[`COMMIT_WE_RNG]);
                endcase
                endcase
        $fwrite(VP_LOG," %h %h %h\n",`VP_TOP.EXE.MUL_STA.oCommitData[`COMMIT_X_RNG],`VP_TOP.EXE.MUL_STA.oCommitData[`COMMIT_Y_RNG],`VP_TOP.EXE.MUL_STA.oCommitData[`COMMIT_Z_RNG]);
        `DWRITE" %h %h %h\n",`VP_TOP.EXE.MUL_STA.oCommitData[`COMMIT_X_RNG],`VP_TOP.EXE.MUL_STA.oCommitData[`COMMIT_Y_RNG],`VP_TOP.EXE.MUL_STA.oCommitData[`COMMIT_Z_RNG]);
end
end
//-----------------------------------------------------------------             
//-----------------------------------------------------------------             
if (`VP_TOP.EXE.SQRT_STA.RS.iCommitGranted)
if (`VP_TOP.EXE.SQRT_STA.RS.iCommitGranted)
begin
begin
        $fwrite(VP_LOG,"\n%dns\t VP[%d] COMMIT SQRT R[%d]",$time,`VP_TOP.iVPID-1,`VP_TOP.EXE.SQRT_STA.oCommitData[`COMMIT_DST_RNG]);
        `DWRITE"\n%dns\t VP[%d] COMMIT SQRT R[%d]",$time,`VP_TOP.iVPID-1,`VP_TOP.EXE.SQRT_STA.oCommitData[`COMMIT_DST_RNG]);
 
 
        case ( `VP_TOP.EXE.SQRT_STA.oCommitData[`COMMIT_WE_RNG] )
        case ( `VP_TOP.EXE.SQRT_STA.oCommitData[`COMMIT_WE_RNG] )
                        3'b000: $fwrite(VP_LOG,".nowrite ");
                        3'b000: `DWRITE".nowrite ");
                        3'b001: $fwrite(VP_LOG,".z ");
                        3'b001: `DWRITE".z ");
                        3'b010: $fwrite(VP_LOG,".y ");
                        3'b010: `DWRITE".y ");
                        3'b100: $fwrite(VP_LOG,".x ");
                        3'b100: `DWRITE".x ");
                        3'b111: $fwrite(VP_LOG,".xyz ");
                        3'b111: `DWRITE".xyz ");
                        default:
                        default:
                        $fwrite(VP_LOG," %b ",`VP_TOP.EXE.SQRT_STA.oCommitData[`COMMIT_WE_RNG]);
                        `DWRITE" %b ",`VP_TOP.EXE.SQRT_STA.oCommitData[`COMMIT_WE_RNG]);
                endcase
                endcase
        $fwrite(VP_LOG," %h %h %h \n",`VP_TOP.EXE.SQRT_STA.oCommitData[`COMMIT_X_RNG],`VP_TOP.EXE.SQRT_STA.oCommitData[`COMMIT_Y_RNG], `VP_TOP.EXE.SQRT_STA.oCommitData[`COMMIT_Z_RNG]);
        `DWRITE" %h %h %h \n",`VP_TOP.EXE.SQRT_STA.oCommitData[`COMMIT_X_RNG],`VP_TOP.EXE.SQRT_STA.oCommitData[`COMMIT_Y_RNG], `VP_TOP.EXE.SQRT_STA.oCommitData[`COMMIT_Z_RNG]);
end
end
//-----------------------------------------------------------------             
//-----------------------------------------------------------------             
 
 
end //always
end //always
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.