blob: c6c970619d37abdd5739c2a2b312b670c47b985a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package vexriscv.plugin
import vexriscv._
import spinal.core._
import spinal.lib._
class SingleInstructionLimiterPlugin() extends Plugin[VexRiscv] {
override def build(pipeline: VexRiscv): Unit = {
import pipeline._
import pipeline.config._
val fetcher = pipeline.service(classOf[IBusFetcher])
when(fetcher.incoming() || List(decode,execute,memory,writeBack).map(_.arbitration.isValid).orR) {
fetcher.haltIt()
}
}
}
|