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

Subversion Repositories theia_gpu

[/] [theia_gpu/] [tags/] [latest_stable/] [rtl/] [GPU/] [CORES/] [IO/] [Module_TMemInterface.v] - Diff between revs 106 and 150

Only display areas with differences | Details | Blame | View Log

Rev 106 Rev 150
`timescale 1ns / 1ps
`timescale 1ns / 1ps
`include "aDefinitions.v"
`include "aDefinitions.v"
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
module Module_TMemInterface
module Module_TMemInterface
(
(
input wire Clock,
input wire Clock,
input wire Reset,
input wire Reset,
input wire iEnable,
input wire iEnable,
input wire [`DATA_ROW_WIDTH-1:0]     iAddress,
input wire [`DATA_ROW_WIDTH-1:0]     iAddress,
output wire [`DATA_ROW_WIDTH-1:0]    oData,
output wire [`DATA_ROW_WIDTH-1:0]    oData,
output wire oDone,
output wire oDone,
 
 
input wire                                                 ACK_I,
input wire                                                 ACK_I,
input wire                    GNT_I,
input wire                    GNT_I,
input wire [`WB_WIDTH-1:0 ]      DAT_I,
input wire [`WB_WIDTH-1:0 ]      DAT_I,
 
 
//WB Output Signals
//WB Output Signals
output wire [`WB_WIDTH-1:0 ] ADR_O,
output wire [`WB_WIDTH-1:0 ] ADR_O,
output wire                                  WE_O,
output wire                                  WE_O,
output wire                                  STB_O,
output wire                                  STB_O,
output wire                                  CYC_O
output wire                                  CYC_O
 
 
 
 
);
);
 
 
wire [3:0] wCurrentWord;
wire [3:0] wCurrentWord;
wire wDone;
wire wDone;
assign oDone = wDone & iEnable;
assign oDone = wDone & iEnable;
 
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( 1 ) FFD_DONE
FFD_POSEDGE_SYNCRONOUS_RESET # ( 1 ) FFD_DONE
(
(
        .Clock(Clock),
        .Clock(Clock),
        .Reset(Reset),
        .Reset(Reset),
        .Enable( 1'b1 ),
        .Enable( 1'b1 ),
        .D(wCurrentWord[3]),
        .D(wCurrentWord[3]),
        .Q(wDone)
        .Q(wDone)
);
);
 
 
 
 
//wire wShiftNow;
//wire wShiftNow;
assign WE_O = 1'b0;     //we only read
assign WE_O = 1'b0;     //we only read
assign CYC_O = iEnable;
assign CYC_O = iEnable;
 
 
 
 
 
 
wire[2:0] wLatchNow;
wire[2:0] wLatchNow;
FFD_POSEDGE_SYNCRONOUS_RESET # ( 3 ) FFD_LATHCNOW
FFD_POSEDGE_SYNCRONOUS_RESET # ( 3 ) FFD_LATHCNOW
(
(
        .Clock(Clock),
        .Clock(Clock),
        .Reset(Reset),
        .Reset(Reset),
        .Enable( 1'b1 ),
        .Enable( 1'b1 ),
        .D(wCurrentWord[2:0]),
        .D(wCurrentWord[2:0]),
        .Q(wLatchNow)
        .Q(wLatchNow)
);
);
 
 
 
 
 
 
SHIFTLEFT_POSEDGE #(4) SHL
SHIFTLEFT_POSEDGE #(4) SHL
(
(
  .Clock(Clock),
  .Clock(Clock),
  .Enable(iEnable & GNT_I),//wShiftNow),                        
  .Enable(iEnable & GNT_I),//wShiftNow),                        
  .Reset(Reset | ~iEnable ),
  .Reset(Reset | ~iEnable ),
  .Initial(4'b1),
  .Initial(4'b1),
  .O(wCurrentWord)
  .O(wCurrentWord)
 
 
);
);
 
 
MUXFULLPARALELL_3SEL_WALKINGONE # ( `WB_WIDTH ) MUX1
MUXFULLPARALELL_3SEL_WALKINGONE # ( `WB_WIDTH ) MUX1
 (
 (
        .Sel( wCurrentWord[2:0] ),
        .Sel( wCurrentWord[2:0] ),
        .I3(iAddress[31:0]),
        .I3(iAddress[31:0]),
        .I2(iAddress[63:32]),
        .I2(iAddress[63:32]),
        .I1(iAddress[95:64]),
        .I1(iAddress[95:64]),
        .O1( ADR_O )
        .O1( ADR_O )
 );
 );
 
 
 
 
 
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) FFDX
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) FFDX
(
(
        .Clock(Clock),
        .Clock(Clock),
        .Reset(Reset),
        .Reset(Reset),
        .Enable( wLatchNow[0] & GNT_I),
        .Enable( wLatchNow[0] & GNT_I),
        .D(DAT_I),
        .D(DAT_I),
        .Q(oData[95:64])
        .Q(oData[95:64])
);
);
 
 
 
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) FFDY
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) FFDY
(
(
        .Clock(Clock),
        .Clock(Clock),
        .Reset(Reset),
        .Reset(Reset),
        .Enable( wLatchNow[1] & GNT_I),
        .Enable( wLatchNow[1] & GNT_I),
        .D(DAT_I),
        .D(DAT_I),
        .Q(oData[63:32])
        .Q(oData[63:32])
);
);
 
 
 
 
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) FFDZ
FFD_POSEDGE_SYNCRONOUS_RESET # ( `WIDTH ) FFDZ
(
(
        .Clock(Clock),
        .Clock(Clock),
        .Reset( Reset ),
        .Reset( Reset ),
        .Enable( wLatchNow[2] & GNT_I),
        .Enable( wLatchNow[2] & GNT_I),
        .D(DAT_I),
        .D(DAT_I),
        .Q(oData[31:0])
        .Q(oData[31:0])
);
);
 
 
endmodule
endmodule
 
 

powered by: WebSVN 2.1.0

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