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

Subversion Repositories theia_gpu

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

Show entire file | Details | Blame | View Log

Rev 213 Rev 230
Line 27... Line 27...
input wire                               Reset,
input wire                               Reset,
input wire                               iEnable,
input wire                               iEnable,
input wire [`INSTRUCTION_ADDR_WIDTH-1:0] iInstructionMem_WriteAddress,
input wire [`INSTRUCTION_ADDR_WIDTH-1:0] iInstructionMem_WriteAddress,
input wire                               iInstructionMem_WriteEnable,
input wire                               iInstructionMem_WriteEnable,
input wire [`INSTRUCTION_WIDTH-1:0]      iInstructionMem_WriteData,
input wire [`INSTRUCTION_WIDTH-1:0]      iInstructionMem_WriteData,
 
//OMEM
output wire [`DATA_ROW_WIDTH-1:0]        oOMEMWriteAddress,
output wire [`DATA_ROW_WIDTH-1:0]        oOMEMWriteAddress,
output wire [`DATA_ROW_WIDTH-1:0]        oOMEMWriteData,
output wire [`DATA_ROW_WIDTH-1:0]        oOMEMWriteData,
output wire                              oOMEMWriteEnable
output wire                              oOMEMWriteEnable,
 
//TMEM
 
output wire [`DATA_ROW_WIDTH-1:0]      oTMEMReadAddress,
 
input wire [`DATA_ROW_WIDTH-1:0]       iTMEMReadData,
 
input wire                             iTMEMDataAvailable,
 
output wire                            oTMEMDataRequest
);
);
 
 
wire [`INSTRUCTION_ADDR_WIDTH -1:0]                  wII_2_IM_IP0;
wire [`INSTRUCTION_ADDR_WIDTH -1:0]                  wII_2_IM_IP0;
wire [`INSTRUCTION_ADDR_WIDTH -1:0]                  wII_2_IM_IP1;
wire [`INSTRUCTION_ADDR_WIDTH -1:0]                  wII_2_IM_IP1;
wire [`INSTRUCTION_WIDTH-1:0]                        wIM_2_II_Instruction0;
wire [`INSTRUCTION_WIDTH-1:0]                        wIM_2_II_Instruction0;
Line 42... Line 47...
wire [`DATA_ADDRESS_WIDTH-1:0]                       wII_2_RF_Addr0;
wire [`DATA_ADDRESS_WIDTH-1:0]                       wII_2_RF_Addr0;
wire [`DATA_ADDRESS_WIDTH-1:0]                       wII_2_RF_Addr1;
wire [`DATA_ADDRESS_WIDTH-1:0]                       wII_2_RF_Addr1;
wire [`DATA_ROW_WIDTH-1:0]                           wRF_2_II_Data0;
wire [`DATA_ROW_WIDTH-1:0]                           wRF_2_II_Data0;
wire [`DATA_ROW_WIDTH-1:0]                           wRF_2_II_Data1;
wire [`DATA_ROW_WIDTH-1:0]                           wRF_2_II_Data1;
wire [`NUMBER_OF_RSVR_STATIONS-1:0]                  wRS_2_II_Busy;
wire [`NUMBER_OF_RSVR_STATIONS-1:0]                  wRS_2_II_Busy;
wire [`ISSUE_PACKET_SIZE-1:0]                        wIssueBus,wModIssue;
wire [`ISSUE_PACKET_SIZE-1:0]                        wIssueBus;
 
wire [`MOD_ISSUE_PACKET_SIZE-1:0]                    wModIssue;
wire [`NUMBER_OF_RSVR_STATIONS-1:0]                  wStationCommitRequest;
wire [`NUMBER_OF_RSVR_STATIONS-1:0]                  wStationCommitRequest;
wire [`NUMBER_OF_RSVR_STATIONS-1:0]                  wStationCommitGrant;
wire [`NUMBER_OF_RSVR_STATIONS-1:0]                  wStationCommitGrant;
wire [`COMMIT_PACKET_SIZE-1:0]                       wCommitBus;
wire [`COMMIT_PACKET_SIZE-1:0]                       wCommitBus;
wire [`MOD_COMMIT_PACKET_SIZE-1:0]                   wModCommitBus;
wire [`MOD_COMMIT_PACKET_SIZE-1:0]                   wModCommitBus;
wire [`COMMIT_PACKET_SIZE-1:0]                       wCommitData_Adder0;
wire [`COMMIT_PACKET_SIZE-1:0]                       wCommitData_Adder0;
Line 326... Line 332...
   .iCommitBus(          wModCommitBus            ),
   .iCommitBus(          wModCommitBus            ),
        .oCommitData(         wCommitData_IO           ),
        .oCommitData(         wCommitData_IO           ),
        .oCommitResquest(     wStationCommitRequest[6] ),
        .oCommitResquest(     wStationCommitRequest[6] ),
        .iCommitGranted(      wStationCommitGrant[6]   ),
        .iCommitGranted(      wStationCommitGrant[6]   ),
        .oBusy(               wRS_2_II_Busy[6]         ),
        .oBusy(               wRS_2_II_Busy[6]         ),
 
        //OMEM
        .oOMEMWriteAddress(   oOMEMWriteAddress        ),
        .oOMEMWriteAddress(   oOMEMWriteAddress        ),
   .oOMEMWriteData(      oOMEMWriteData           ),
   .oOMEMWriteData(      oOMEMWriteData           ),
   .oOMEMWriteEnable(    oOMEMWriteEnable         )
   .oOMEMWriteEnable(    oOMEMWriteEnable         ),
 
        //TMEM
 
        .oTMEMReadAddress(    oTMEMReadAddress         ),
 
   .iTMEMReadData(       iTMEMReadData            ),
 
   .iTMEMDataAvailable(  iTMEMDataAvailable       ),
 
   .oTMEMDataRequest(    oTMEMDataRequest         )
 
 
);
);
 
 
ROUND_ROBIN_7_ENTRIES ARB
ROUND_ROBIN_7_ENTRIES ARB
//ROUND_ROBIN_6_ENTRIES ARB
//ROUND_ROBIN_6_ENTRIES ARB
Line 354... Line 366...
.oGrant5(    wStationCommitGrant[5]   ),
.oGrant5(    wStationCommitGrant[5]   ),
.oGrant6(    wStationCommitGrant[6]   )
.oGrant6(    wStationCommitGrant[6]   )
 
 
);
);
 
 
 
wire [5:0] wBusSelector_Tmp;
wire[3:0] wBusSelector;
wire[2:0] wBusSelector;
DECODER_ONEHOT_2_BINARY DECODER
DECODER_ONEHOT_2_BINARY DECODER
(
(
.iIn( wStationCommitGrant ),
.iIn( wStationCommitGrant ),
.oOut( wBusSelector        )
.oOut(  wBusSelector_Tmp    )
);
);
 
assign wBusSelector = wBusSelector_Tmp[3:0];
 
 
 
MUXFULLPARALELL_3SEL_GENERIC # (`COMMIT_PACKET_SIZE ) MUX               //TODO I need one more entry for the IO
MUXFULLPARALELL_3SEL_GENERIC # (`COMMIT_PACKET_SIZE ) MUX
 
 (
 (
 .Sel(wBusSelector),
 .Sel(wBusSelector),
 .I1(`COMMIT_PACKET_SIZE'b0),
 .I1(`COMMIT_PACKET_SIZE'b0),
 .I2(wCommitData_Adder0),
 .I2(wCommitData_Adder0),
 .I3(wCommitData_Adder1),
 .I3(wCommitData_Adder1),
 .I4(wCommitData_Div),
 .I4(wCommitData_Div),
 .I5(wCommitData_Mul),
 .I5(wCommitData_Mul),
 .I6(wCommitData_Sqrt),
 .I6(wCommitData_Sqrt),
 .I7(wCommitData_Logic),
 .I7(wCommitData_Logic),
 
 .I8(wCommitData_IO        ),
 .O1(wCommitBus)
 .O1(wCommitBus)
 );
 );
 
 
 
 
endmodule
endmodule

powered by: WebSVN 2.1.0

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