forked from Github_Repos/cvw
		
	renamed FLoad2 to FStore2
This commit is contained in:
		
							parent
							
								
									cd53ae67d9
								
							
						
					
					
						commit
						ca4fe08fd9
					
				
							
								
								
									
										4
									
								
								pipelined/src/cache/cache.sv
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								pipelined/src/cache/cache.sv
									
									
									
									
										vendored
									
									
								
							@ -43,7 +43,7 @@ module cache #(parameter LINELEN,  NUMLINES,  NUMWAYS, LOGWPL, WORDLEN, MUXINTER
 | 
			
		||||
  input logic [`PA_BITS-1:0]  PAdr, // physical address
 | 
			
		||||
  input logic [(`XLEN-1)/8:0] ByteMask,
 | 
			
		||||
  input logic [WORDLEN-1:0]     FinalWriteData,
 | 
			
		||||
  input logic                        FLoad2,
 | 
			
		||||
  input logic                        FStore2,
 | 
			
		||||
  output logic                CacheCommitted,
 | 
			
		||||
  output logic                CacheStall,
 | 
			
		||||
   // to performance counters to cpu
 | 
			
		||||
@ -121,7 +121,7 @@ module cache #(parameter LINELEN,  NUMLINES,  NUMWAYS, LOGWPL, WORDLEN, MUXINTER
 | 
			
		||||
 | 
			
		||||
  // Array of cache ways, along with victim, hit, dirty, and read merging logic
 | 
			
		||||
  cacheway #(NUMLINES, LINELEN, TAGLEN, OFFSETLEN, SETLEN) 
 | 
			
		||||
    CacheWays[NUMWAYS-1:0](.clk, .reset, .RAdr, .PAdr, .CacheWriteData, .ByteMask, .FLoad2,
 | 
			
		||||
    CacheWays[NUMWAYS-1:0](.clk, .reset, .RAdr, .PAdr, .CacheWriteData, .ByteMask, .FStore2,
 | 
			
		||||
    .SetValidWay, .ClearValidWay, .SetDirtyWay, .ClearDirtyWay, .SelEvict, .VictimWay,
 | 
			
		||||
    .FlushWay, .SelFlush, .ReadDataLineWay, .HitWay, .VictimDirtyWay, .VictimTagWay, 
 | 
			
		||||
    .Invalidate(InvalidateCacheM));
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								pipelined/src/cache/cacheway.sv
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								pipelined/src/cache/cacheway.sv
									
									
									
									
										vendored
									
									
								
							@ -38,7 +38,7 @@ module cacheway #(parameter NUMLINES=512, parameter LINELEN = 256, TAGLEN = 26,
 | 
			
		||||
  input logic [$clog2(NUMLINES)-1:0] RAdr,
 | 
			
		||||
  input logic [`PA_BITS-1:0]         PAdr,
 | 
			
		||||
  input logic [LINELEN-1:0]          CacheWriteData,
 | 
			
		||||
  input logic                        FLoad2,
 | 
			
		||||
  input logic                        FStore2,
 | 
			
		||||
  input logic                        SetValidWay,
 | 
			
		||||
  input logic                        ClearValidWay,
 | 
			
		||||
  input logic                        SetDirtyWay,
 | 
			
		||||
@ -79,7 +79,7 @@ module cacheway #(parameter NUMLINES=512, parameter LINELEN = 256, TAGLEN = 26,
 | 
			
		||||
    logic [2**LOGWPL-1:0] MemPAdrDecodedtmp;
 | 
			
		||||
    onehotdecoder #(LOGWPL) adrdec(
 | 
			
		||||
      .bin(PAdr[LOGWPL+LOGXLENBYTES-1:LOGXLENBYTES]), .decoded(MemPAdrDecodedtmp));
 | 
			
		||||
    assign MemPAdrDecoded = MemPAdrDecodedtmp|{MemPAdrDecodedtmp[2**LOGWPL-2:0]&{2**LOGWPL-1{FLoad2}}, 1'b0};
 | 
			
		||||
    assign MemPAdrDecoded = MemPAdrDecodedtmp|{MemPAdrDecodedtmp[2**LOGWPL-2:0]&{2**LOGWPL-1{FStore2}}, 1'b0};
 | 
			
		||||
  end else
 | 
			
		||||
    onehotdecoder #(LOGWPL) adrdec(
 | 
			
		||||
      .bin(PAdr[LOGWPL+LOGXLENBYTES-1:LOGXLENBYTES]), .decoded(MemPAdrDecoded));
 | 
			
		||||
 | 
			
		||||
@ -42,7 +42,7 @@ module fpu (
 | 
			
		||||
  input logic [1:0]        STATUS_FS, // Is floating-point enabled?
 | 
			
		||||
  output logic 		   FRegWriteM, // FP register write enable
 | 
			
		||||
  output logic 		   FpLoadStoreM, // Fp load instruction?
 | 
			
		||||
  output logic              FLoad2,
 | 
			
		||||
  output logic              FStore2,
 | 
			
		||||
  output logic 		   FStallD, // Stall the decode stage
 | 
			
		||||
  output logic 		   FWriteIntE, // integer register write enables
 | 
			
		||||
  output logic [`XLEN-1:0] FWriteDataE, // Data to be written to memory
 | 
			
		||||
@ -298,8 +298,8 @@ module fpu (
 | 
			
		||||
      assign FWriteDataE = FSrcYE[`XLEN-1:0]; 
 | 
			
		||||
   end else begin
 | 
			
		||||
      logic [`FLEN-1:0] FWriteDataE;
 | 
			
		||||
      if(`FMTBITS == 2) assign FLoad2 = FmtM == `FMT;
 | 
			
		||||
      else assign FLoad2 = FmtM;
 | 
			
		||||
      if(`FMTBITS == 2) assign FStore2 = FmtM == `FMT;
 | 
			
		||||
      else assign FStore2 = FmtM;
 | 
			
		||||
 | 
			
		||||
      if (`FPSIZES==1) assign FWriteDataE = FSrcYE;
 | 
			
		||||
      else if (`FPSIZES==2) assign FWriteDataE = FmtE ? FSrcYE : {2{FSrcYE[`LEN1-1:0]}};
 | 
			
		||||
 | 
			
		||||
@ -226,7 +226,7 @@ module ifu (
 | 
			
		||||
      icache(.clk, .reset, .CPUBusy, .IgnoreRequestTLB(ITLBMissF), .TrapM(TrapM), .IgnoreRequestTrapM('0),
 | 
			
		||||
             .CacheBusWriteData(ICacheBusWriteData), .CacheBusAck(ICacheBusAck),
 | 
			
		||||
             .CacheBusAdr(ICacheBusAdr), .CacheStall(ICacheStallF), 
 | 
			
		||||
             .CacheFetchLine(ICacheFetchLine), .FLoad2(),
 | 
			
		||||
             .CacheFetchLine(ICacheFetchLine), .FStore2(),
 | 
			
		||||
             .CacheWriteLine(), .ReadDataWord(FinalInstrRawF),
 | 
			
		||||
             .Cacheable(CacheableF),
 | 
			
		||||
             .CacheMiss(ICacheMiss), .CacheAccess(ICacheAccess),
 | 
			
		||||
 | 
			
		||||
@ -58,7 +58,7 @@ module lsu (
 | 
			
		||||
   input logic              sfencevmaM,
 | 
			
		||||
   // fpu
 | 
			
		||||
   input logic [`FLEN-1:0]  FWriteDataM,
 | 
			
		||||
   input logic              FLoad2,
 | 
			
		||||
   input logic              FStore2,
 | 
			
		||||
   input logic              FpLoadStoreM,
 | 
			
		||||
   // faults
 | 
			
		||||
   output logic             LoadPageFaultM, StoreAmoPageFaultM,
 | 
			
		||||
@ -236,14 +236,14 @@ module lsu (
 | 
			
		||||
    
 | 
			
		||||
    if(CACHE_ENABLED) begin : dcache
 | 
			
		||||
      if (`LLEN>`FLEN)
 | 
			
		||||
        mux2 #(`LLEN) datamux({(`LLEN-`XLEN)'(0), IEUWriteDataM}, FWriteDataM, FpLoadStoreM, FinalWriteDataM);
 | 
			
		||||
        mux2 #(`LLEN) datamux({{`LLEN-`XLEN{1'b0}}, IEUWriteDataM}, FWriteDataM, FpLoadStoreM, FinalWriteDataM);
 | 
			
		||||
      else
 | 
			
		||||
        assign FinalWriteDataM[`XLEN-1:0] = IEUWriteDataM;
 | 
			
		||||
        assign FinalWriteDataM = {{`LLEN-`XLEN{1'b0}}, IEUWriteDataM};
 | 
			
		||||
      cache #(.LINELEN(`DCACHE_LINELENINBITS), .NUMLINES(`DCACHE_WAYSIZEINBYTES*8/LINELEN),
 | 
			
		||||
              .NUMWAYS(`DCACHE_NUMWAYS), .LOGWPL(LOGWPL), .WORDLEN(`LLEN), .MUXINTERVAL(`XLEN), .DCACHE(1)) dcache(
 | 
			
		||||
        .clk, .reset, .CPUBusy, .LSUBusWriteCrit, .RW(LSURWM), .Atomic(LSUAtomicM),
 | 
			
		||||
        .FlushCache(FlushDCacheM), .NextAdr(LSUAdrE), .PAdr(LSUPAdrM), 
 | 
			
		||||
        .ByteMask(ByteMaskM), .WordCount, .FLoad2,
 | 
			
		||||
        .ByteMask(ByteMaskM), .WordCount, .FStore2,
 | 
			
		||||
        .FinalWriteData(FinalWriteDataM), .Cacheable(CacheableM),
 | 
			
		||||
        .CacheStall(DCacheStallM), .CacheMiss(DCacheMiss), .CacheAccess(DCacheAccess),
 | 
			
		||||
        .IgnoreRequestTLB, .IgnoreRequestTrapM, .TrapM(1'b0), .CacheCommitted(DCacheCommittedM), 
 | 
			
		||||
 | 
			
		||||
@ -93,7 +93,7 @@ module wallypipelinedcore (
 | 
			
		||||
  logic             FStallD;
 | 
			
		||||
  logic             FWriteIntE;
 | 
			
		||||
  logic [`XLEN-1:0]         FWriteDataE;
 | 
			
		||||
  logic                     FLoad2;
 | 
			
		||||
  logic                     FStore2;
 | 
			
		||||
  logic [`FLEN-1:0]         FWriteDataM;
 | 
			
		||||
  logic [`XLEN-1:0]         FIntResM;  
 | 
			
		||||
  logic [`XLEN-1:0]         FCvtIntResW;  
 | 
			
		||||
@ -259,7 +259,7 @@ module wallypipelinedcore (
 | 
			
		||||
  .CommittedM, .DCacheMiss, .DCacheAccess,
 | 
			
		||||
  .SquashSCW,            
 | 
			
		||||
  .FpLoadStoreM,
 | 
			
		||||
  .FWriteDataM, .FLoad2,
 | 
			
		||||
  .FWriteDataM, .FStore2,
 | 
			
		||||
  //.DataMisalignedM(DataMisalignedM),
 | 
			
		||||
  .IEUAdrE, .IEUAdrM, .WriteDataE,
 | 
			
		||||
  .ReadDataW, .FlushDCacheM,
 | 
			
		||||
@ -400,7 +400,7 @@ module wallypipelinedcore (
 | 
			
		||||
         .STATUS_FS, // is floating-point enabled?
 | 
			
		||||
         .FRegWriteM, // FP register write enable
 | 
			
		||||
         .FpLoadStoreM,
 | 
			
		||||
         .FLoad2,
 | 
			
		||||
         .FStore2,
 | 
			
		||||
         .FStallD, // Stall the decode stage
 | 
			
		||||
         .FWriteIntE, // integer register write enable
 | 
			
		||||
         .FWriteDataE, // Data to be written to memory
 | 
			
		||||
 | 
			
		||||
@ -34,7 +34,7 @@
 | 
			
		||||
string tvpaths[] = '{
 | 
			
		||||
    "../../addins/imperas-riscv-tests/work/",
 | 
			
		||||
    "../../tests/riscof/work/riscv-arch-test/",
 | 
			
		||||
    "../../tests/riscof/work/wally-riscv-arch-test/", //"../../tests/wally-riscv-arch-test/work/", //
 | 
			
		||||
    "../../tests/wally-riscv-arch-test/work/", //"../../tests/riscof/work/wally-riscv-arch-test/", //
 | 
			
		||||
    "../../tests/imperas-riscv-tests/work/",
 | 
			
		||||
    "../../benchmarks/coremark/work/",
 | 
			
		||||
    "../../addins/embench-iot/"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user