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

Subversion Repositories theia_gpu

[/] [theia_gpu/] [tags/] [latest_stable/] [rtl/] [GPU/] [CORES/] [EXE/] [Module_ExecutionFSM.v] - Diff between revs 63 and 72

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

Rev 63 Rev 72
Line 97... Line 97...
`endif
`endif
 
 
 
 
assign RAMBus = ( oRAMWriteEnable ) ? {iALUResultX,iALUResultY,iALUResultZ} : `DATA_ROW_WIDTH'bz;
assign RAMBus = ( oRAMWriteEnable ) ? {iALUResultX,iALUResultY,iALUResultZ} : `DATA_ROW_WIDTH'bz;
 
 
 
assign oALUChannelX1 = iSource1[95:64];
 
assign oALUChannelY1 = iSource1[63:32];
 
assign oALUChannelZ1 = iSource1[31:0];
 
 
 
assign oALUChannelX2 = iSource0[95:64];
 
assign oALUChannelY2 = iSource0[63:32];
 
assign oALUChannelZ2 = iSource0[31:0];
 
 
 
/*
FF32_POSEDGE_SYNCRONOUS_RESET SourceX1
FF32_POSEDGE_SYNCRONOUS_RESET SourceX1
(
(
        .Clock( wLatchNow ),
        .Clock( wLatchNow ),
        .Clear( Reset ),
        .Clear( Reset ),
        .D( iSource1[95:64] ),
        .D( iSource1[95:64] ),
        .Q( oALUChannelX1 )
        .Q( oALUChannelX1 )
);
);
 
 
FF32_POSEDGE_SYNCRONOUS_RESET SourceY1
FF32_POSEDGE_SYNCRONOUS_RESET SourceY1
(
(
        .Clock( wLatchNow ),
        .Clock( wLatchNow ),
        .Clear( Reset ),
        .Clear( Reset ),
        .D( iSource1[63:32] ),
        .D( iSource1[63:32] ),
        .Q( oALUChannelY1 )
        .Q( oALUChannelY1 )
);
);
 
 
FF32_POSEDGE_SYNCRONOUS_RESET SourceZ1
FF32_POSEDGE_SYNCRONOUS_RESET SourceZ1
(
(
        .Clock( wLatchNow ),
        .Clock( wLatchNow ),
        .Clear( Reset ),
        .Clear( Reset ),
        .D( iSource1[31:0] ),
        .D( iSource1[31:0] ),
        .Q( oALUChannelZ1 )
        .Q( oALUChannelZ1 )
);
);
 
*/
 
/*
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) SourceX1
 
(
 
        .Clock( Clock ),//wLatchNow ),
 
        .Reset( Reset),
 
        .Enable( wLatchNow ),//1'b1 ),
 
        .D( iSource1[95:64] ),
 
        .Q(oALUChannelX1)
 
);
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) SourceY1
 
(
 
        .Clock( Clock ),//wLatchNow ),
 
        .Reset( Reset),
 
        .Enable( wLatchNow ),//1'b1 ),
 
        .D( iSource1[63:32] ),
 
        .Q(oALUChannelY1)
 
);
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) SourceZ1
 
(
 
        .Clock( Clock ),//wLatchNow ),
 
        .Reset( Reset),
 
        .Enable( wLatchNow ),//1'b1 ),
 
        .D( iSource1[31:0] ),
 
        .Q(oALUChannelZ1)
 
);
 
*/
 
/*
FF32_POSEDGE_SYNCRONOUS_RESET SourceX2
FF32_POSEDGE_SYNCRONOUS_RESET SourceX2
(
(
        .Clock( wLatchNow ),
        .Clock( wLatchNow ),
        .Clear( Reset ),
        .Clear( Reset ),
        .D( iSource0[95:64] ),
        .D( iSource0[95:64] ),
        .Q( oALUChannelX2 )
        .Q( oALUChannelX2 )
);
);
 
 
FF32_POSEDGE_SYNCRONOUS_RESET SourceY2
FF32_POSEDGE_SYNCRONOUS_RESET SourceY2
(
(
        .Clock( wLatchNow ),
        .Clock( wLatchNow ),
        .Clear( Reset ),
        .Clear( Reset ),
        .D( iSource0[63:32] ),
        .D( iSource0[63:32] ),
        .Q( oALUChannelY2 )
        .Q( oALUChannelY2 )
);
);
 
 
FF32_POSEDGE_SYNCRONOUS_RESET SourceZ2
FF32_POSEDGE_SYNCRONOUS_RESET SourceZ2
(
(
        .Clock( wLatchNow ),
        .Clock( wLatchNow ),
        .Clear( Reset ),
        .Clear( Reset ),
        .D( iSource0[31:0] ),
        .D( iSource0[31:0] ),
        .Q( oALUChannelZ2 )
        .Q( oALUChannelZ2 )
);
);
 
*/
 
/*
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) SourceX2
 
(
 
        .Clock( Clock ),//wLatchNow ),
 
        .Reset( Reset),
 
        .Enable( wLatchNow ),//1'b1 ),
 
        .D( iSource0[95:64] ),
 
        .Q(oALUChannelX2)
 
);
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) SourceY2
 
(
 
        .Clock( Clock ),//wLatchNow ),
 
        .Reset( Reset),
 
        .Enable( wLatchNow ),//1'b1 ),
 
        .D( iSource0[63:32] ),
 
        .Q(oALUChannelY2)
 
);
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) SourceZ2
 
(
 
        .Clock( Clock ),//wLatchNow ),
 
        .Reset( Reset),
 
        .Enable( wLatchNow ),//1'b1 ),
 
        .D( iSource0[31:0] ),
 
        .Q(oALUChannelZ2)
 
);
 
*/
//Finally one more latch to store 
//Finally one more latch to store 
//the iOperation and the destination
//the iOperation and the destination
 
 
 
 
 
assign oALUOperation = iOperation;
 
//assign oRAMWriteAddress = iDestination;
/*
/*
FF6_POSEDGE_SYNCRONOUS_RESET FFOperation
FF_OPCODE_POSEDGE_SYNCRONOUS_RESET FFOperation
(
(
        .Clock( wLatchNow ),
        .Clock( wLatchNow ),
        .Clear( Reset ),
        .Clear( Reset ),
        .D( iOperation  ),
        .D( iOperation  ),
        .Q( oALUOperation )
        .Q( oALUOperation )
 
 
);
);
*/
 
 
 
FF_OPCODE_POSEDGE_SYNCRONOUS_RESET FFOperation
 
(
 
        .Clock( wLatchNow ),
 
        .Clear( Reset ),
 
        .D( iOperation  ),
 
        .Q( oALUOperation )
 
 
 
);
 
 
 
 
 
FF16_POSEDGE_SYNCRONOUS_RESET PSRegDestination
FF16_POSEDGE_SYNCRONOUS_RESET PSRegDestination
 
(
 
        .Clock( wLatchNow  ),
 
        .Clear( Reset ),
 
        .D( iDestination  ),
 
        .Q( oRAMWriteAddress )
 
 
 
);
 
*/
 
/*
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `INSTRUCTION_OP_LENGTH ) FFOperation
 
(
 
        .Clock( Clock ),//wLatchNow ),
 
        .Reset( Reset),
 
        .Enable( wLatchNow ),//1'b1 ),
 
        .D( iOperation ),
 
        .Q(oALUOperation)
 
);
 
*/
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `DATA_ADDRESS_WIDTH ) PSRegDestination
(
(
        .Clock( wLatchNow  ),
        .Clock( Clock ),//wLatchNow ),
        .Clear( Reset ),
        .Reset( Reset),
 
        .Enable( wLatchNow ),//1'b1 ),
        .D( iDestination  ),
        .D( iDestination  ),
        .Q( oRAMWriteAddress )
        .Q( oRAMWriteAddress )
 
 
);
);
 
 
//Data forwarding
//Data forwarding
assign oLastDestination = oRAMWriteAddress;
assign oLastDestination = oRAMWriteAddress;
 
 
reg [7:0] CurrentState;
reg [7:0] CurrentState;
reg [7:0] NextState;
reg [7:0] NextState;
Line 301... Line 375...
 
 
`endif //Ucode dump
`endif //Ucode dump
 
 
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
`ifdef DEBUG
`ifdef DEBUG
 
wire [`WIDTH-1:0] wALUChannelX1,wALUChannelY1,wALUChannelZ1;
 
wire [`WIDTH-1:0] wALUChannelX2,wALUChannelY2,wALUChannelZ2;
 
 
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) SourceX1
 
(
 
        .Clock( Clock ),
 
        .Reset( Reset),
 
        .Enable( wLatchNow ),
 
        .D( iSource1[95:64] ),
 
        .Q(wALUChannelX1)
 
);
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) SourceY1
 
(
 
        .Clock( Clock ),
 
        .Reset( Reset),
 
        .Enable( wLatchNow ),
 
        .D( iSource1[63:32] ),
 
        .Q(wALUChannelY1)
 
);
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) SourceZ1
 
(
 
        .Clock( Clock ),
 
        .Reset( Reset),
 
        .Enable( wLatchNow ),
 
        .D( iSource1[31:0] ),
 
        .Q(wALUChannelZ1)
 
);
 
 
 
 
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) SourceX2
 
(
 
        .Clock( Clock ),
 
        .Reset( Reset),
 
        .Enable( wLatchNow ),
 
        .D( iSource0[95:64] ),
 
        .Q(wALUChannelX2)
 
);
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) SourceY2
 
(
 
        .Clock( Clock ),
 
        .Reset( Reset),
 
        .Enable( wLatchNow ),
 
        .D( iSource0[63:32] ),
 
        .Q(wALUChannelY2)
 
);
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) SourceZ2
 
(
 
        .Clock( Clock ),
 
        .Reset( Reset),
 
        .Enable( wLatchNow ),
 
        .D( iSource0[31:0] ),
 
        .Q(wALUChannelZ2)
 
);
 
 
 
 
        always @ (posedge iDecodeDone)
        always @ (posedge iDecodeDone)
        begin
        begin
                `LOGME"IP:%d", iDebug_CurrentIP);
                `LOGME"IP:%d", iDebug_CurrentIP);
        end
        end
 
 
Line 380... Line 509...
                                        end
                                        end
                                        endcase
                                        endcase
 
 
                                        `LOGME"\t %h [ %h %h %h ][ %h %h %h ] = ",
                                        `LOGME"\t %h [ %h %h %h ][ %h %h %h ] = ",
                                        oRAMWriteAddress,
                                        oRAMWriteAddress,
                                        oALUChannelX1,oALUChannelY1,oALUChannelZ1,
                                        wALUChannelX1,wALUChannelY1,wALUChannelZ1,
                                        oALUChannelX2,oALUChannelY2,oALUChannelZ2
                                        wALUChannelX2,wALUChannelY2,wALUChannelZ2
 
 
                                        );
                                        );
 
 
                                        if (oALUOperation == `RETURN)
                                        if (oALUOperation == `RETURN)
                                                `LOGME"\n\n\n");
                                                `LOGME"\n\n\n");

powered by: WebSVN 2.1.0

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