rocket: do not require FIFO order for memory-like regions
This commit is contained in:
		@@ -61,7 +61,7 @@ trait HasRocketTiles extends CoreplexRISCVPlatform {
 | 
			
		||||
      case SynchronousCrossing(params) => {
 | 
			
		||||
        val wrapper = LazyModule(new SyncRocketTile(c, i)(pWithExtra))
 | 
			
		||||
        val buffer = LazyModule(new TLBuffer(params))
 | 
			
		||||
        val fixer = LazyModule(new TLFIFOFixer)
 | 
			
		||||
        val fixer = LazyModule(new TLFIFOFixer(TLFIFOFixer.allUncacheable))
 | 
			
		||||
        buffer.node :=* wrapper.masterNode
 | 
			
		||||
        fixer.node :=* buffer.node
 | 
			
		||||
        tile_splitter.node :=* fixer.node
 | 
			
		||||
@@ -79,7 +79,7 @@ trait HasRocketTiles extends CoreplexRISCVPlatform {
 | 
			
		||||
        val wrapper = LazyModule(new AsyncRocketTile(c, i)(pWithExtra))
 | 
			
		||||
        val sink = LazyModule(new TLAsyncCrossingSink(depth, sync))
 | 
			
		||||
        val source = LazyModule(new TLAsyncCrossingSource(sync))
 | 
			
		||||
        val fixer = LazyModule(new TLFIFOFixer)
 | 
			
		||||
        val fixer = LazyModule(new TLFIFOFixer(TLFIFOFixer.allUncacheable))
 | 
			
		||||
        sink.node :=* wrapper.masterNode
 | 
			
		||||
        fixer.node :=* sink.node
 | 
			
		||||
        tile_splitter.node :=* fixer.node
 | 
			
		||||
@@ -99,7 +99,7 @@ trait HasRocketTiles extends CoreplexRISCVPlatform {
 | 
			
		||||
        val wrapper = LazyModule(new RationalRocketTile(c, i)(pWithExtra))
 | 
			
		||||
        val sink = LazyModule(new TLRationalCrossingSink(direction))
 | 
			
		||||
        val source = LazyModule(new TLRationalCrossingSource)
 | 
			
		||||
        val fixer = LazyModule(new TLFIFOFixer)
 | 
			
		||||
        val fixer = LazyModule(new TLFIFOFixer(TLFIFOFixer.allUncacheable))
 | 
			
		||||
        sink.node :=* wrapper.masterNode
 | 
			
		||||
        fixer.node :=* sink.node
 | 
			
		||||
        tile_splitter.node :=* fixer.node
 | 
			
		||||
 
 | 
			
		||||
@@ -183,8 +183,10 @@ class HellaCacheModule(outer: HellaCache) extends LazyModuleImp(outer)
 | 
			
		||||
  val io = new HellaCacheBundle(outer)
 | 
			
		||||
  val tl_out = io.mem(0)
 | 
			
		||||
 | 
			
		||||
  // IOMSHRs must be FIFO
 | 
			
		||||
  edge.manager.requireFifo()
 | 
			
		||||
  // IOMSHRs must be FIFO for all regions with effects
 | 
			
		||||
  edge.manager.managers.foreach { m =>
 | 
			
		||||
    require (m.fifoId == Some(0) || !TLFIFOFixer.allUncacheable(m))
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
object HellaCache {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user