mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Formating.
This commit is contained in:
		
							parent
							
								
									d1ad6b464d
								
							
						
					
					
						commit
						32589a5efc
					
				@ -30,7 +30,7 @@
 | 
			
		||||
 | 
			
		||||
`include "wally-config.vh"
 | 
			
		||||
 | 
			
		||||
module ahbcacheinterface #(parameter BEATSPERLINE, LINELEN, LOGWPL, LLENPOVERAHBW) (
 | 
			
		||||
module ahbcacheinterface #(parameter BEATSPERLINE, LINELEN, AHBWLOGBWPL, LLENPOVERAHBW) (
 | 
			
		||||
  input  logic                 HCLK, HRESETn,
 | 
			
		||||
  // bus interface controls
 | 
			
		||||
  input logic                 HREADY,                  // AHB peripheral ready
 | 
			
		||||
@ -52,7 +52,7 @@ module ahbcacheinterface #(parameter BEATSPERLINE, LINELEN, LOGWPL, LLENPOVERAHB
 | 
			
		||||
  input logic [1:0]           CacheBusRW,              // Cache bus operation, 01: writeback, 10: fetch
 | 
			
		||||
  output logic                CacheBusAck,             // Handshack to $ indicating bus transaction completed
 | 
			
		||||
  output logic [LINELEN-1:0]  FetchBuffer,             // Register to hold beats of cache line as the arrive from bus
 | 
			
		||||
  output logic [LOGWPL-1:0]   BeatCount,               // Beat position within the cache line in the Address Phase
 | 
			
		||||
  output logic [AHBWLOGBWPL-1:0]   BeatCount,               // Beat position within the cache line in the Address Phase
 | 
			
		||||
  output logic                SelBusBeat,              // Tells the cache to select the word from ReadData or WriteData from BeatCount rather than PAdr
 | 
			
		||||
 | 
			
		||||
  // uncached interface 
 | 
			
		||||
@ -70,7 +70,7 @@ module ahbcacheinterface #(parameter BEATSPERLINE, LINELEN, LOGWPL, LLENPOVERAHB
 | 
			
		||||
 | 
			
		||||
  localparam integer           BeatCountThreshold = BEATSPERLINE - 1;  // Largest beat index
 | 
			
		||||
  logic [`PA_BITS-1:0]         LocalHADDR;                             // Address after selecting between cached and uncached operation
 | 
			
		||||
  logic [LOGWPL-1:0]           BeatCountDelayed;                       // Beat within the cache line in the second (Data) cache stage
 | 
			
		||||
  logic [AHBWLOGBWPL-1:0]           BeatCountDelayed;                       // Beat within the cache line in the second (Data) cache stage
 | 
			
		||||
  logic                        CaptureEn;                              // Enable updating the Fetch buffer with valid data from HRDATA
 | 
			
		||||
  logic [`AHBW/8-1:0] 		   BusByteMaskM;                           // Byte enables within a word.  For cache request all 1s
 | 
			
		||||
  logic [`AHBW-1:0]            PreHWDATA;                              // AHB Address phase write data
 | 
			
		||||
@ -86,7 +86,7 @@ module ahbcacheinterface #(parameter BEATSPERLINE, LINELEN, LOGWPL, LLENPOVERAHB
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  mux2 #(`PA_BITS) localadrmux(PAdr, CacheBusAdr, Cacheable, LocalHADDR);
 | 
			
		||||
  assign HADDR = ({{`PA_BITS-LOGWPL{1'b0}}, BeatCount} << $clog2(`AHBW/8)) + LocalHADDR;
 | 
			
		||||
  assign HADDR = ({{`PA_BITS-AHBWLOGBWPL{1'b0}}, BeatCount} << $clog2(`AHBW/8)) + LocalHADDR;
 | 
			
		||||
 | 
			
		||||
  mux2 #(3) sizemux(.d0(Funct3), .d1(`AHBW == 32 ? 3'b010 : 3'b011), .s(Cacheable), .y(HSIZE));
 | 
			
		||||
 | 
			
		||||
@ -111,7 +111,7 @@ module ahbcacheinterface #(parameter BEATSPERLINE, LINELEN, LOGWPL, LLENPOVERAHB
 | 
			
		||||
  
 | 
			
		||||
  flopen #(`AHBW/8) HWSTRBReg(HCLK, HREADY, BusByteMaskM[`AHBW/8-1:0], HWSTRB);
 | 
			
		||||
  
 | 
			
		||||
  buscachefsm #(BeatCountThreshold, LOGWPL) AHBBuscachefsm(
 | 
			
		||||
  buscachefsm #(BeatCountThreshold, AHBWLOGBWPL) AHBBuscachefsm(
 | 
			
		||||
    .HCLK, .HRESETn, .Flush, .BusRW, .Stall, .BusCommitted, .BusStall, .CaptureEn, .SelBusBeat,
 | 
			
		||||
    .CacheBusRW, .CacheBusAck, .BeatCount, .BeatCountDelayed,
 | 
			
		||||
	  .HREADY, .HTRANS, .HWRITE, .HBURST);
 | 
			
		||||
 | 
			
		||||
@ -28,7 +28,7 @@
 | 
			
		||||
`define BURST_EN 1
 | 
			
		||||
 | 
			
		||||
// HCLK and clk must be the same clock!
 | 
			
		||||
module buscachefsm #(parameter integer BeatCountThreshold, LOGWPL) (
 | 
			
		||||
module buscachefsm #(parameter integer BeatCountThreshold, AHBWLOGBWPL) (
 | 
			
		||||
  input  logic              HCLK,
 | 
			
		||||
  input  logic              HRESETn,
 | 
			
		||||
 | 
			
		||||
@ -47,8 +47,8 @@ module buscachefsm #(parameter integer BeatCountThreshold, LOGWPL) (
 | 
			
		||||
  output logic              CacheBusAck,        // Handshack to $ indicating bus transaction completed
 | 
			
		||||
  
 | 
			
		||||
  // lsu interface
 | 
			
		||||
  output logic [LOGWPL-1:0] BeatCount,          // Beat position within the cache line in the Address Phase
 | 
			
		||||
  output logic [LOGWPL-1:0] BeatCountDelayed,   // Beat within the cache line in the second (Data) cache stage
 | 
			
		||||
  output logic [AHBWLOGBWPL-1:0] BeatCount,          // Beat position within the cache line in the Address Phase
 | 
			
		||||
  output logic [AHBWLOGBWPL-1:0] BeatCountDelayed,   // Beat within the cache line in the second (Data) cache stage
 | 
			
		||||
  output logic              SelBusBeat,         // Tells the cache to select the word from ReadData or WriteData from BeatCount rather than PAdr
 | 
			
		||||
 | 
			
		||||
  // BUS interface
 | 
			
		||||
@ -63,7 +63,7 @@ module buscachefsm #(parameter integer BeatCountThreshold, LOGWPL) (
 | 
			
		||||
 | 
			
		||||
  (* mark_debug = "true" *) busstatetype CurrState, NextState;
 | 
			
		||||
 | 
			
		||||
  logic [LOGWPL-1:0] NextBeatCount;
 | 
			
		||||
  logic [AHBWLOGBWPL-1:0] NextBeatCount;
 | 
			
		||||
  logic              FinalBeatCount;
 | 
			
		||||
  logic [2:0]        LocalBurstType;
 | 
			
		||||
  logic              BeatCntEn;
 | 
			
		||||
@ -98,11 +98,11 @@ module buscachefsm #(parameter integer BeatCountThreshold, LOGWPL) (
 | 
			
		||||
 | 
			
		||||
  // IEU, LSU, and IFU controls
 | 
			
		||||
  // Used to store data from data phase of AHB.
 | 
			
		||||
  flopenr #(LOGWPL) BeatCountReg(HCLK, ~HRESETn | BeatCntReset, BeatCntEn, NextBeatCount, BeatCount);  
 | 
			
		||||
  flopenr #(LOGWPL) BeatCountDelayedReg(HCLK, ~HRESETn | BeatCntReset, BeatCntEn, BeatCount, BeatCountDelayed);
 | 
			
		||||
  flopenr #(AHBWLOGBWPL) BeatCountReg(HCLK, ~HRESETn | BeatCntReset, BeatCntEn, NextBeatCount, BeatCount);  
 | 
			
		||||
  flopenr #(AHBWLOGBWPL) BeatCountDelayedReg(HCLK, ~HRESETn | BeatCntReset, BeatCntEn, BeatCount, BeatCountDelayed);
 | 
			
		||||
  assign NextBeatCount = BeatCount + 1'b1;
 | 
			
		||||
 | 
			
		||||
  assign FinalBeatCount = BeatCountDelayed == BeatCountThreshold[LOGWPL-1:0];
 | 
			
		||||
  assign FinalBeatCount = BeatCountDelayed == BeatCountThreshold[AHBWLOGBWPL-1:0];
 | 
			
		||||
  assign BeatCntEn = ((NextState == CACHE_WRITEBACK | NextState == CACHE_FETCH) & HREADY & ~Flush) |
 | 
			
		||||
                     (NextState == ADR_PHASE & |CacheBusRW & HREADY);
 | 
			
		||||
  assign BeatCntReset = NextState == ADR_PHASE;
 | 
			
		||||
 | 
			
		||||
@ -237,12 +237,14 @@ module lsu (
 | 
			
		||||
  end else begin
 | 
			
		||||
  end
 | 
			
		||||
  if (`BUS) begin : bus              
 | 
			
		||||
    localparam integer   LLENWORDSPERLINE = `DCACHE ? `DCACHE_LINELENINBITS/`LLEN : 1; // Number of LLEN words in cacheline
 | 
			
		||||
    localparam integer   LLENLOGBWPL = `DCACHE ? $clog2(LLENWORDSPERLINE) : 1;         // Log2 of ^
 | 
			
		||||
    localparam integer   BEATSPERLINE = `DCACHE ? `DCACHE_LINELENINBITS/`AHBW : 1;     // Number of AHBW words (beats) in cacheline
 | 
			
		||||
    localparam integer   AHBWLOGBWPL = `DCACHE ? $clog2(BEATSPERLINE) : 1;             // Log2 of ^
 | 
			
		||||
    if(`DCACHE) begin : dcache
 | 
			
		||||
      localparam integer   LINELEN = `DCACHE ? `DCACHE_LINELENINBITS : `XLEN;          // Number of bytes in cacheline
 | 
			
		||||
      localparam integer   LLENWORDSPERLINE = `DCACHE_LINELENINBITS/`LLEN;             // Number of LLEN words in cacheline
 | 
			
		||||
      localparam integer   LLENLOGBWPL = $clog2(LLENWORDSPERLINE);                     // Log2 of ^
 | 
			
		||||
      localparam integer   BEATSPERLINE = `DCACHE_LINELENINBITS/`AHBW;                 // Number of AHBW words (beats) in cacheline
 | 
			
		||||
      localparam integer   AHBWLOGBWPL = $clog2(BEATSPERLINE);                         // Log2 of ^
 | 
			
		||||
      localparam integer   LINELEN = `DCACHE_LINELENINBITS;                            // Number of bytes in cacheline
 | 
			
		||||
      localparam integer   LLENPOVERAHBW = `LLEN / `AHBW;                              // Number of AHB beats in a LLEN word. AHBW cannot be larger than LLEN. (implementation limitation)
 | 
			
		||||
 | 
			
		||||
      logic [LINELEN-1:0]  FetchBuffer;                                                // Temporary buffer to hold partially fetched cacheline
 | 
			
		||||
      logic [`PA_BITS-1:0] DCacheBusAdr;                                               // Cacheline address to fetch or writeback.
 | 
			
		||||
      logic [AHBWLOGBWPL-1:0]  BeatCount;                                              // Position within a cacheline.  ahbcacheinterface to cache
 | 
			
		||||
@ -250,7 +252,6 @@ module lsu (
 | 
			
		||||
      logic                SelBusBeat;                                                 // ahbcacheinterface selects postion in cacheline with BeatCount
 | 
			
		||||
      logic [1:0] 		   CacheBusRW;                                                 // Cache sends request to ahbcacheinterface
 | 
			
		||||
	  logic [1:0] 		   BusRW;                                                      // Uncached bus memory access
 | 
			
		||||
      localparam integer   LLENPOVERAHBW = `LLEN / `AHBW;                              // Number of AHB beats in a LLEN word. AHBW cannot be larger than LLEN. (implementation limitation)
 | 
			
		||||
      logic                CacheableOrFlushCacheM;                                     // Memory address is cacheable or operation is a cache flush
 | 
			
		||||
      logic [1:0] 		   CacheRWM;                                                   // Cache read (10), write (01), AMO (11)
 | 
			
		||||
	  logic [1:0] 		   CacheAtomicM;                                               // Cache AMO
 | 
			
		||||
@ -272,7 +273,7 @@ module lsu (
 | 
			
		||||
        .FetchBuffer, .CacheBusRW, 
 | 
			
		||||
        .CacheBusAck(DCacheBusAck), .InvalidateCache(1'b0));
 | 
			
		||||
 | 
			
		||||
      ahbcacheinterface #(.BEATSPERLINE(BEATSPERLINE), .LINELEN(LINELEN), .LOGWPL(AHBWLOGBWPL), .LLENPOVERAHBW(LLENPOVERAHBW)) ahbcacheinterface(
 | 
			
		||||
      ahbcacheinterface #(.BEATSPERLINE(BEATSPERLINE), .LINELEN(LINELEN), .AHBWLOGBWPL(AHBWLOGBWPL), .LLENPOVERAHBW(LLENPOVERAHBW)) ahbcacheinterface(
 | 
			
		||||
        .HCLK(clk), .HRESETn(~reset), .Flush(FlushW),
 | 
			
		||||
        .HRDATA, .HWDATA(LSUHWDATA), .HWSTRB(LSUHWSTRB),
 | 
			
		||||
        .HSIZE(LSUHSIZE), .HBURST(LSUHBURST), .HTRANS(LSUHTRANS), .HWRITE(LSUHWRITE), .HREADY(LSUHREADY),
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user