forked from Github_Repos/cvw
		
	Replaced dtim with rom-based IROM in IFU. Moved cache control signals out of DTIM and IROM
This commit is contained in:
		
							parent
							
								
									fe3147806d
								
							
						
					
					
						commit
						a3828420c0
					
				@ -185,12 +185,12 @@ module ifu (
 | 
			
		||||
  assign InstrRawF = AllInstrRawF[31:0];
 | 
			
		||||
 | 
			
		||||
  if (`IROM) begin : irom // *** fix up dtim taking PA_BITS rather than XLEN, *** IEUAdr is a bad name.  Probably use a ROM rather than DTIM
 | 
			
		||||
    dtim irom(.clk, .reset, .CPUBusy, .LSURWM(2'b10), .IEUAdrM({{(`XLEN-32){1'b0}}, PCPF[31:0]}), .IEUAdrE(PCNextFSpill),
 | 
			
		||||
              .TrapM(1'b0), .WriteDataM(), .ByteMaskM('0),
 | 
			
		||||
              .ReadDataWordM({{(`XLEN-32){1'b0}}, FinalInstrRawF}), .BusStall, .LSUBusWrite(), .LSUBusRead(IFUBusRead),
 | 
			
		||||
              .BusCommittedM(), .DCacheStallM(ICacheStallF), .Cacheable(CacheableF),
 | 
			
		||||
              .DCacheCommittedM(), .DCacheMiss(ICacheMiss), .DCacheAccess(ICacheAccess));
 | 
			
		||||
    irom irom(.clk, .reset, .LSURWM(2'b10), .IEUAdrE(PCNextFSpill),
 | 
			
		||||
              .TrapM(1'b0), 
 | 
			
		||||
              .ReadDataWordM({{(`XLEN-32){1'b0}}, FinalInstrRawF}));
 | 
			
		||||
 
 | 
			
		||||
    assign {BusStall, IFUBusRead} = '0;   
 | 
			
		||||
    assign {ICacheStallF, ICacheMiss, ICacheAccess} = '0;
 | 
			
		||||
  end 
 | 
			
		||||
  if (`IBUS) begin : bus
 | 
			
		||||
    localparam integer   WORDSPERLINE = `ICACHE ? `ICACHE_LINELENINBITS/`XLEN : 1;
 | 
			
		||||
 | 
			
		||||
@ -31,23 +31,13 @@
 | 
			
		||||
 | 
			
		||||
module dtim(
 | 
			
		||||
  input logic               clk, reset,
 | 
			
		||||
  input logic               CPUBusy,
 | 
			
		||||
  input logic [1:0]         LSURWM,
 | 
			
		||||
  input logic [`XLEN-1:0]   IEUAdrM,
 | 
			
		||||
  input logic [`XLEN-1:0]   IEUAdrE,
 | 
			
		||||
  input logic               TrapM, 
 | 
			
		||||
  input logic [`LLEN-1:0]   WriteDataM,
 | 
			
		||||
  input logic [`LLEN/8-1:0] ByteMaskM,
 | 
			
		||||
  input logic               Cacheable,
 | 
			
		||||
  output logic [`LLEN-1:0]  ReadDataWordM,
 | 
			
		||||
  output logic              BusStall,
 | 
			
		||||
  output logic              LSUBusWrite,
 | 
			
		||||
  output logic              LSUBusRead,
 | 
			
		||||
  output logic              BusCommittedM,
 | 
			
		||||
  output logic              DCacheStallM,
 | 
			
		||||
  output logic              DCacheCommittedM,
 | 
			
		||||
  output logic              DCacheMiss,
 | 
			
		||||
  output logic              DCacheAccess
 | 
			
		||||
  output logic [`LLEN-1:0]  ReadDataWordM
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
  logic we;
 | 
			
		||||
@ -60,12 +50,5 @@ module dtim(
 | 
			
		||||
 | 
			
		||||
  bram1p1rw #(`LLEN/8, 8, ADDR_WDITH) 
 | 
			
		||||
    ram(.clk, .we, .bwe(ByteMaskM), .addr(IEUAdrE[ADDR_WDITH+OFFSET-1:OFFSET]), .dout(ReadDataWordM), .din(WriteDataM));
 | 
			
		||||
 | 
			
		||||
  // since we have a local memory the bus connections are all disabled.
 | 
			
		||||
  // There are no peripherals supported.
 | 
			
		||||
  assign {BusStall, LSUBusWrite, LSUBusRead, BusCommittedM} = '0;   
 | 
			
		||||
  assign {DCacheStallM, DCacheCommittedM} = '0;
 | 
			
		||||
  assign {DCacheMiss, DCacheAccess} = '0;
 | 
			
		||||
 | 
			
		||||
endmodule  
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
@ -200,10 +200,15 @@ module lsu (
 | 
			
		||||
  // use the same UNCORE_RAM_BASE addresss for both the DTIM and any RAM in the Uncore.
 | 
			
		||||
 | 
			
		||||
  if (`DMEM) begin : dtim
 | 
			
		||||
    dtim dtim(.clk, .reset, .CPUBusy, .LSURWM, .IEUAdrM, .IEUAdrE, .TrapM, .WriteDataM(LSUWriteDataM), //*** fix the dtim FinalWriteData
 | 
			
		||||
              .ReadDataWordM(ReadDataWordM[`XLEN-1:0]), .BusStall, .LSUBusWrite,.LSUBusRead, .BusCommittedM,
 | 
			
		||||
              .DCacheStallM, .DCacheCommittedM, .ByteMaskM(ByteMaskM[`XLEN/8-1:0]), .Cacheable(CacheableM),
 | 
			
		||||
              .DCacheMiss, .DCacheAccess);
 | 
			
		||||
    dtim dtim(.clk, .reset, .LSURWM, .IEUAdrE, .TrapM, .WriteDataM(LSUWriteDataM), //*** fix the dtim FinalWriteData - is this done already?
 | 
			
		||||
              .ReadDataWordM(ReadDataWordM[`XLEN-1:0]), .ByteMaskM(ByteMaskM[`XLEN/8-1:0]), .Cacheable(CacheableM));
 | 
			
		||||
 | 
			
		||||
    // since we have a local memory the bus connections are all disabled.
 | 
			
		||||
    // There are no peripherals supported.
 | 
			
		||||
    // *** this will have to change to support TIM and bus (DH 8/25/22)
 | 
			
		||||
    assign {BusStall, LSUBusWrite, LSUBusRead, BusCommittedM} = '0;   
 | 
			
		||||
    assign {DCacheStallM, DCacheCommittedM} = '0;
 | 
			
		||||
    assign {DCacheMiss, DCacheAccess} = '0;
 | 
			
		||||
  end 
 | 
			
		||||
  if (`DBUS) begin : bus  
 | 
			
		||||
    localparam integer   WORDSPERLINE = `DCACHE ? `DCACHE_LINELENINBITS/`XLEN : 1;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user