mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	more progress.
This commit is contained in:
		
							parent
							
								
									fab3a2b791
								
							
						
					
					
						commit
						8b9f30c91a
					
				@ -50,11 +50,11 @@ add wave -noupdate -group {Decode Stage} /testbench/dut/core/ieu/c/RegWriteD
 | 
			
		||||
add wave -noupdate -group {Decode Stage} /testbench/dut/core/ieu/dp/RdD
 | 
			
		||||
add wave -noupdate -group {Decode Stage} /testbench/dut/core/ieu/dp/Rs1D
 | 
			
		||||
add wave -noupdate -group {Decode Stage} /testbench/dut/core/ieu/dp/Rs2D
 | 
			
		||||
add wave -noupdate -group {Execution Stage} /testbench/dut/core/ifu/PCE
 | 
			
		||||
add wave -noupdate -group {Execution Stage} /testbench/dut/core/ifu/InstrE
 | 
			
		||||
add wave -noupdate -group {Execution Stage} /testbench/InstrEName
 | 
			
		||||
add wave -noupdate -group {Execution Stage} /testbench/dut/core/ieu/c/InstrValidE
 | 
			
		||||
add wave -noupdate -group {Execution Stage} /testbench/FunctionName/FunctionName/FunctionName
 | 
			
		||||
add wave -noupdate -expand -group {Execution Stage} /testbench/dut/core/ifu/PCE
 | 
			
		||||
add wave -noupdate -expand -group {Execution Stage} /testbench/dut/core/ifu/InstrE
 | 
			
		||||
add wave -noupdate -expand -group {Execution Stage} /testbench/InstrEName
 | 
			
		||||
add wave -noupdate -expand -group {Execution Stage} /testbench/dut/core/ieu/c/InstrValidE
 | 
			
		||||
add wave -noupdate -expand -group {Execution Stage} /testbench/FunctionName/FunctionName/FunctionName
 | 
			
		||||
add wave -noupdate -expand -group {Memory Stage} /testbench/dut/core/PCM
 | 
			
		||||
add wave -noupdate -expand -group {Memory Stage} /testbench/dut/core/InstrM
 | 
			
		||||
add wave -noupdate -expand -group {Memory Stage} /testbench/InstrMName
 | 
			
		||||
@ -169,48 +169,48 @@ add wave -noupdate -group Forward -color Thistle /testbench/dut/core/ieu/fw/Load
 | 
			
		||||
add wave -noupdate -group {alu execution stage} /testbench/dut/core/ieu/dp/ALUResultE
 | 
			
		||||
add wave -noupdate -group {alu execution stage} /testbench/dut/core/ieu/dp/SrcAE
 | 
			
		||||
add wave -noupdate -group {alu execution stage} /testbench/dut/core/ieu/dp/SrcBE
 | 
			
		||||
add wave -noupdate -group AHB -expand -group multimanager -color Gold /testbench/dut/core/ebu/ebu/BusState
 | 
			
		||||
add wave -noupdate -group AHB -expand -group multimanager /testbench/dut/core/ebu/ebu/both
 | 
			
		||||
add wave -noupdate -group AHB -expand -group multimanager /testbench/dut/core/ebu/ebu/save
 | 
			
		||||
add wave -noupdate -group AHB -expand -group multimanager /testbench/dut/core/ebu/ebu/restore
 | 
			
		||||
add wave -noupdate -group AHB -expand -group multimanager /testbench/dut/core/ebu/ebu/dis
 | 
			
		||||
add wave -noupdate -group AHB -expand -group multimanager /testbench/dut/core/ebu/ebu/sel
 | 
			
		||||
add wave -noupdate -group AHB -expand -group multimanager /testbench/dut/core/ebu/ebu/IFUActive
 | 
			
		||||
add wave -noupdate -group AHB -expand -group multimanager /testbench/dut/core/ebu/ebu/LSUActive
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HTRANS
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/Threshold
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HBURST
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HBURSTD
 | 
			
		||||
add wave -noupdate -group AHB -expand -group IFU /testbench/dut/core/ebu/ebu/IFUHTRANS
 | 
			
		||||
add wave -noupdate -group AHB -expand -group IFU /testbench/dut/core/ebu/ebu/IFUHADDR
 | 
			
		||||
add wave -noupdate -group AHB -expand -group IFU /testbench/dut/core/ebu/ebu/IFUHBURST
 | 
			
		||||
add wave -noupdate -group AHB -expand -group IFU /testbench/dut/core/ebu/ebu/IFUHREADY
 | 
			
		||||
add wave -noupdate -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUReq
 | 
			
		||||
add wave -noupdate -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHTRANS
 | 
			
		||||
add wave -noupdate -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHSIZE
 | 
			
		||||
add wave -noupdate -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHBURST
 | 
			
		||||
add wave -noupdate -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHADDR
 | 
			
		||||
add wave -noupdate -group AHB -expand -group LSU /testbench/dut/core/HRDATA
 | 
			
		||||
add wave -noupdate -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHWRITE
 | 
			
		||||
add wave -noupdate -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHWSTRB
 | 
			
		||||
add wave -noupdate -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHWDATA
 | 
			
		||||
add wave -noupdate -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHREADY
 | 
			
		||||
add wave -noupdate -group AHB -expand -group LSU -color Pink /testbench/dut/core/lsu/LSUHREADY
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/NextBusState
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HCLK
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HRESETn
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HREADY
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HRESP
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HADDR
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HWDATA
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HWRITE
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HSIZE
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HBURST
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HPROT
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HTRANS
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HMASTLOCK
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HADDRD
 | 
			
		||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HSIZED
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group multimanager -color Gold /testbench/dut/core/ebu/ebu/BusState
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group multimanager /testbench/dut/core/ebu/ebu/both
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group multimanager /testbench/dut/core/ebu/ebu/save
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group multimanager /testbench/dut/core/ebu/ebu/restore
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group multimanager /testbench/dut/core/ebu/ebu/dis
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group multimanager /testbench/dut/core/ebu/ebu/sel
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group multimanager /testbench/dut/core/ebu/ebu/IFUActive
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group multimanager /testbench/dut/core/ebu/ebu/LSUActive
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HTRANS
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/Threshold
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HBURST
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HBURSTD
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group IFU /testbench/dut/core/ebu/ebu/IFUHTRANS
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group IFU /testbench/dut/core/ebu/ebu/IFUHADDR
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group IFU /testbench/dut/core/ebu/ebu/IFUHBURST
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group IFU /testbench/dut/core/ebu/ebu/IFUHREADY
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUReq
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHTRANS
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHSIZE
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHBURST
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHADDR
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group LSU /testbench/dut/core/HRDATA
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHWRITE
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHWSTRB
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHWDATA
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group LSU /testbench/dut/core/ebu/ebu/LSUHREADY
 | 
			
		||||
add wave -noupdate -expand -group AHB -expand -group LSU -color Pink /testbench/dut/core/lsu/LSUHREADY
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/NextBusState
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HCLK
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HRESETn
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HREADY
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HRESP
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HADDR
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HWDATA
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HWRITE
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HSIZE
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HBURST
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HPROT
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HTRANS
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HMASTLOCK
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HADDRD
 | 
			
		||||
add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HSIZED
 | 
			
		||||
add wave -noupdate -expand -group lsu -color Gold /testbench/dut/core/lsu/VIRTMEM_SUPPORTED/lsuvirtmem/interlockfsm/InterlockCurrState
 | 
			
		||||
add wave -noupdate -expand -group lsu /testbench/dut/core/lsu/SelHPTW
 | 
			
		||||
add wave -noupdate -expand -group lsu /testbench/dut/core/lsu/InterlockStall
 | 
			
		||||
@ -404,8 +404,12 @@ add wave -noupdate -expand -group CLINT /testbench/dut/uncore/uncore/clint/clint
 | 
			
		||||
add wave -noupdate -expand -group CLINT /testbench/dut/uncore/uncore/clint/clint/MTIMECMP
 | 
			
		||||
add wave -noupdate -expand -group CLINT -expand -group {clint bus} /testbench/dut/uncore/uncore/clint/clint/PSEL
 | 
			
		||||
add wave -noupdate -expand -group CLINT -expand -group {clint bus} /testbench/dut/uncore/uncore/clint/clint/PADDR
 | 
			
		||||
add wave -noupdate -expand -group CLINT -expand -group {clint bus} /testbench/dut/uncore/uncore/clint/clint/PWDATA
 | 
			
		||||
add wave -noupdate -expand -group CLINT -expand -group {clint bus} /testbench/dut/uncore/uncore/clint/clint/PSTRB
 | 
			
		||||
add wave -noupdate -expand -group CLINT -expand -group {clint bus} /testbench/dut/uncore/uncore/clint/clint/PWRITE
 | 
			
		||||
add wave -noupdate -expand -group CLINT -expand -group {clint bus} /testbench/dut/uncore/uncore/clint/clint/PENABLE
 | 
			
		||||
add wave -noupdate -expand -group CLINT -expand -group {clint bus} /testbench/dut/uncore/uncore/clint/clint/PRDATA
 | 
			
		||||
add wave -noupdate -expand -group CLINT -expand -group {clint bus} /testbench/dut/uncore/uncore/clint/clint/PREADY
 | 
			
		||||
add wave -noupdate -group uart -expand -group Registers -expand /testbench/dut/uncore/uncore/uart/uart/u/LSR
 | 
			
		||||
add wave -noupdate -group uart -expand -group Registers /testbench/dut/uncore/uncore/uart/uart/u/MCR
 | 
			
		||||
add wave -noupdate -group uart -expand -group Registers /testbench/dut/uncore/uncore/uart/uart/u/MSR
 | 
			
		||||
@ -544,8 +548,9 @@ add wave -noupdate -group {ifu } /testbench/dut/core/ifu/bus/icache/cachedp/HSIZ
 | 
			
		||||
add wave -noupdate -group {ifu } /testbench/dut/core/ifu/bus/icache/cachedp/HTRANS
 | 
			
		||||
add wave -noupdate -group {ifu } /testbench/dut/core/ifu/bus/icache/cachedp/AHBBuscachefsm/CacheBusAck
 | 
			
		||||
add wave -noupdate /testbench/dut/core/ifu/bus/icache/cachedp/AHBBuscachefsm/WordCountFlag
 | 
			
		||||
add wave -noupdate /testbench/dut/core/lsu/ByteMaskM
 | 
			
		||||
TreeUpdate [SetDefaultTree]
 | 
			
		||||
WaveRestoreCursors {{Cursor 2} {34777 ns} 0} {{Cursor 3} {334914 ns} 1} {{Cursor 4} {335206 ns} 1}
 | 
			
		||||
WaveRestoreCursors {{Cursor 2} {34315 ns} 0} {{Cursor 3} {34791 ns} 1} {{Cursor 4} {335206 ns} 1}
 | 
			
		||||
quietly wave cursor active 1
 | 
			
		||||
configure wave -namecolwidth 250
 | 
			
		||||
configure wave -valuecolwidth 314
 | 
			
		||||
@ -561,4 +566,4 @@ configure wave -griddelta 40
 | 
			
		||||
configure wave -timeline 0
 | 
			
		||||
configure wave -timelineunits ns
 | 
			
		||||
update
 | 
			
		||||
WaveRestoreZoom {34617 ns} {34937 ns}
 | 
			
		||||
WaveRestoreZoom {34151 ns} {34471 ns}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								pipelined/src/cache/AHBBuscachefsm.sv
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								pipelined/src/cache/AHBBuscachefsm.sv
									
									
									
									
										vendored
									
									
								
							@ -75,7 +75,7 @@ module AHBBuscachefsm #(parameter integer   WordCountThreshold,
 | 
			
		||||
  logic                WordCountFlag;
 | 
			
		||||
  logic [2:0]          LocalBurstType;
 | 
			
		||||
  logic                CntReset;
 | 
			
		||||
  
 | 
			
		||||
  logic [1:0]          RWDelay, CacheRWDelay;
 | 
			
		||||
  
 | 
			
		||||
  assign CntReset = BusNextState == STATE_READY;
 | 
			
		||||
  
 | 
			
		||||
@ -99,7 +99,11 @@ module AHBBuscachefsm #(parameter integer   WordCountThreshold,
 | 
			
		||||
  assign WordCountFlag = (WordCountDelayed == WordCountThreshold[LOGWPL-1:0] ); // Detect when we are waiting on the final access.
 | 
			
		||||
  assign WordCntEn = (BusNextState == STATE_CACHE_ACCESS & HREADY) |
 | 
			
		||||
                     (BusNextState == STATE_READY & |CacheRW & HREADY);
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  // replace with fsm with two more states.
 | 
			
		||||
  flopenr #(2) RWReg(HCLK, ~HRESETn, 1'b1, RW, RWDelay);
 | 
			
		||||
  flopenr #(2) CacheRWReg(HCLK, ~HRESETn, 1'b1, CacheRW, CacheRWDelay);  
 | 
			
		||||
                     
 | 
			
		||||
 | 
			
		||||
  always_ff @(posedge HCLK)
 | 
			
		||||
    if (~HRESETn)    BusCurrState <= #1 STATE_READY;
 | 
			
		||||
@ -135,7 +139,7 @@ module AHBBuscachefsm #(parameter integer   WordCountThreshold,
 | 
			
		||||
 | 
			
		||||
  assign HWRITE = (BusCurrState == STATE_READY & (RW[0] | CacheRW[0])) |  // *** might not be necessary, maybe just RW[0]
 | 
			
		||||
                  (BusCurrState == STATE_CACHE_ACCESS & CacheRW[0]);
 | 
			
		||||
  assign CaptureEn = BusCurrState == STATE_CAPTURE | (BusCurrState == STATE_CACHE_ACCESS & HREADY);
 | 
			
		||||
  assign CaptureEn = (BusCurrState == STATE_CAPTURE & RWDelay[1]) | (BusCurrState == STATE_CACHE_ACCESS & HREADY & CacheRWDelay[1]);
 | 
			
		||||
  assign HBURST = (|CacheRW) ? LocalBurstType : 3'b0; // Don't want to use burst when doing an Uncached Access.
 | 
			
		||||
  
 | 
			
		||||
  always_comb begin
 | 
			
		||||
@ -154,7 +158,7 @@ module AHBBuscachefsm #(parameter integer   WordCountThreshold,
 | 
			
		||||
 | 
			
		||||
  assign CacheBusAck = (BusCurrState == STATE_CACHE_ACCESS & HREADY & WordCountFlag);
 | 
			
		||||
 | 
			
		||||
  assign SelBusWord = (BusCurrState == STATE_READY & RW[0]) |
 | 
			
		||||
  assign SelBusWord = (BusCurrState == STATE_READY & (RW[0] | CacheRW[0])) |
 | 
			
		||||
						   (BusCurrState == STATE_CAPTURE & RW[0]) |
 | 
			
		||||
                           (BusCurrState == STATE_CACHE_ACCESS & CacheRW[0]);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -276,7 +276,12 @@ module lsu (
 | 
			
		||||
        .s(SelUncachedAdr), .y(LSUHWDATA_noDELAY));
 | 
			
		||||
 | 
			
		||||
      flop #(`XLEN) wdreg(clk, LSUHWDATA_noDELAY, LSUHWDATA); // delay HWDATA by 1 cycle per spec; *** assumes AHBW = XLEN
 | 
			
		||||
      flop #(`XLEN/8) HWSTRBReg(clk, ByteMaskM[`XLEN/8-1:0], LSUHWSTRB);
 | 
			
		||||
 | 
			
		||||
      // *** bummer need a second byte mask for bus as it is XLEN rather than LLEN.
 | 
			
		||||
      logic [`XLEN/8-1:0]  BusByteMaskM;
 | 
			
		||||
      swbytemask #(`XLEN) busswbytemask(.Size(LSUFunct3M), .Adr(LSUPAdrM[$clog2(`XLEN/8)-1:0]), .ByteMask(BusByteMaskM));
 | 
			
		||||
      
 | 
			
		||||
      flop #(`XLEN/8) HWSTRBReg(clk, BusByteMaskM[`XLEN/8-1:0], LSUHWSTRB);
 | 
			
		||||
      
 | 
			
		||||
 | 
			
		||||
    end else begin : passthrough // just needs a register to hold the value from the bus
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user