mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	more progress.
This commit is contained in:
		
							parent
							
								
									2d6a6c6e44
								
							
						
					
					
						commit
						96793d15c0
					
				@ -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/RdD
 | 
				
			||||||
add wave -noupdate -group {Decode Stage} /testbench/dut/core/ieu/dp/Rs1D
 | 
					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 {Decode Stage} /testbench/dut/core/ieu/dp/Rs2D
 | 
				
			||||||
add wave -noupdate -group {Execution Stage} /testbench/dut/core/ifu/PCE
 | 
					add wave -noupdate -expand -group {Execution Stage} /testbench/dut/core/ifu/PCE
 | 
				
			||||||
add wave -noupdate -group {Execution Stage} /testbench/dut/core/ifu/InstrE
 | 
					add wave -noupdate -expand -group {Execution Stage} /testbench/dut/core/ifu/InstrE
 | 
				
			||||||
add wave -noupdate -group {Execution Stage} /testbench/InstrEName
 | 
					add wave -noupdate -expand -group {Execution Stage} /testbench/InstrEName
 | 
				
			||||||
add wave -noupdate -group {Execution Stage} /testbench/dut/core/ieu/c/InstrValidE
 | 
					add wave -noupdate -expand -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/FunctionName/FunctionName/FunctionName
 | 
				
			||||||
add wave -noupdate -expand -group {Memory Stage} /testbench/dut/core/PCM
 | 
					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/dut/core/InstrM
 | 
				
			||||||
add wave -noupdate -expand -group {Memory Stage} /testbench/InstrMName
 | 
					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/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/SrcAE
 | 
				
			||||||
add wave -noupdate -group {alu execution stage} /testbench/dut/core/ieu/dp/SrcBE
 | 
					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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -group AHB /testbench/dut/core/ebu/ebu/HTRANS
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/Threshold
 | 
					add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/Threshold
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HBURST
 | 
					add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HBURST
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HBURSTD
 | 
					add wave -noupdate -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -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 -expand -group AHB /testbench/dut/core/ebu/ebu/NextBusState
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HCLK
 | 
					add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HCLK
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HRESETn
 | 
					add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HRESETn
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HREADY
 | 
					add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HREADY
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HRESP
 | 
					add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HRESP
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HADDR
 | 
					add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HADDR
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HWDATA
 | 
					add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HWDATA
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HWRITE
 | 
					add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HWRITE
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HSIZE
 | 
					add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HSIZE
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HBURST
 | 
					add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HBURST
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HPROT
 | 
					add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HPROT
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HTRANS
 | 
					add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HTRANS
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HMASTLOCK
 | 
					add wave -noupdate -expand -group AHB /testbench/dut/core/ebu/ebu/HMASTLOCK
 | 
				
			||||||
add wave -noupdate -group AHB /testbench/dut/core/ebu/ebu/HADDRD
 | 
					add wave -noupdate -expand -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 /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 -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/SelHPTW
 | 
				
			||||||
add wave -noupdate -expand -group lsu /testbench/dut/core/lsu/InterlockStall
 | 
					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 /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/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/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/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/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 -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/MCR
 | 
				
			||||||
add wave -noupdate -group uart -expand -group Registers /testbench/dut/uncore/uncore/uart/uart/u/MSR
 | 
					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/HTRANS
 | 
				
			||||||
add wave -noupdate -group {ifu } /testbench/dut/core/ifu/bus/icache/cachedp/AHBBuscachefsm/CacheBusAck
 | 
					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/ifu/bus/icache/cachedp/AHBBuscachefsm/WordCountFlag
 | 
				
			||||||
 | 
					add wave -noupdate /testbench/dut/core/lsu/ByteMaskM
 | 
				
			||||||
TreeUpdate [SetDefaultTree]
 | 
					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
 | 
					quietly wave cursor active 1
 | 
				
			||||||
configure wave -namecolwidth 250
 | 
					configure wave -namecolwidth 250
 | 
				
			||||||
configure wave -valuecolwidth 314
 | 
					configure wave -valuecolwidth 314
 | 
				
			||||||
@ -561,4 +566,4 @@ configure wave -griddelta 40
 | 
				
			|||||||
configure wave -timeline 0
 | 
					configure wave -timeline 0
 | 
				
			||||||
configure wave -timelineunits ns
 | 
					configure wave -timelineunits ns
 | 
				
			||||||
update
 | 
					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                WordCountFlag;
 | 
				
			||||||
  logic [2:0]          LocalBurstType;
 | 
					  logic [2:0]          LocalBurstType;
 | 
				
			||||||
  logic                CntReset;
 | 
					  logic                CntReset;
 | 
				
			||||||
  
 | 
					  logic [1:0]          RWDelay, CacheRWDelay;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  assign CntReset = BusNextState == STATE_READY;
 | 
					  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 WordCountFlag = (WordCountDelayed == WordCountThreshold[LOGWPL-1:0] ); // Detect when we are waiting on the final access.
 | 
				
			||||||
  assign WordCntEn = (BusNextState == STATE_CACHE_ACCESS & HREADY) |
 | 
					  assign WordCntEn = (BusNextState == STATE_CACHE_ACCESS & HREADY) |
 | 
				
			||||||
                     (BusNextState == STATE_READY & |CacheRW & 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)
 | 
					  always_ff @(posedge HCLK)
 | 
				
			||||||
    if (~HRESETn)    BusCurrState <= #1 STATE_READY;
 | 
					    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]
 | 
					  assign HWRITE = (BusCurrState == STATE_READY & (RW[0] | CacheRW[0])) |  // *** might not be necessary, maybe just RW[0]
 | 
				
			||||||
                  (BusCurrState == STATE_CACHE_ACCESS & CacheRW[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.
 | 
					  assign HBURST = (|CacheRW) ? LocalBurstType : 3'b0; // Don't want to use burst when doing an Uncached Access.
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  always_comb begin
 | 
					  always_comb begin
 | 
				
			||||||
@ -154,7 +158,7 @@ module AHBBuscachefsm #(parameter integer   WordCountThreshold,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  assign CacheBusAck = (BusCurrState == STATE_CACHE_ACCESS & HREADY & WordCountFlag);
 | 
					  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_CAPTURE & RW[0]) |
 | 
				
			||||||
                           (BusCurrState == STATE_CACHE_ACCESS & CacheRW[0]);
 | 
					                           (BusCurrState == STATE_CACHE_ACCESS & CacheRW[0]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -276,7 +276,12 @@ module lsu (
 | 
				
			|||||||
        .s(SelUncachedAdr), .y(LSUHWDATA_noDELAY));
 | 
					        .s(SelUncachedAdr), .y(LSUHWDATA_noDELAY));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      flop #(`XLEN) wdreg(clk, LSUHWDATA_noDELAY, LSUHWDATA); // delay HWDATA by 1 cycle per spec; *** assumes AHBW = XLEN
 | 
					      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
 | 
					    end else begin : passthrough // just needs a register to hold the value from the bus
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user