Interrupts: Less Pessimistic Synchronization (#714)
* interrupts: Less pessimistic synchronization for the different interrupt types. There are some issues with the interrupt number assignments. * interrupts: Allow an option to NOT synchronize all the external interrupts coming into PLIC * interrupts: ExampleRocketChipTop uses PeripheryAsyncExtInterrupts. Realized 'abstract' doesn't do what I thought in Scala. * interrupts: use consistent async/periph/core ordering * interrupts: Properly condition on 0 External interrupts * interrupts: CLINT is also synchronous to periph clock
This commit is contained in:
@ -46,12 +46,15 @@ trait HasExternalInterruptsModule {
|
||||
|
||||
// go from flat diplomatic Interrupts to bundled TileInterrupts
|
||||
def decodeCoreInterrupts(core: TileInterrupts) {
|
||||
val core_ips = Seq(
|
||||
core.debug,
|
||||
val async_ips = Seq(core.debug)
|
||||
val periph_ips = Seq(
|
||||
core.msip,
|
||||
core.mtip,
|
||||
core.meip,
|
||||
core.seip.getOrElse(Wire(Bool()))) ++ core.lip
|
||||
core_ips.zip(io.interrupts(0)).foreach { case(c, i) => c := i }
|
||||
core.seip.getOrElse(Wire(Bool())))
|
||||
|
||||
val core_ips = core.lip
|
||||
|
||||
(async_ips ++ periph_ips ++ core_ips).zip(io.interrupts(0)).foreach { case(c, i) => c := i }
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user