Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
43b0fdf
Abstractify Cluster API to support custom cluster types
hansungk Mar 2, 2024
056e62a
Add cluster-local bus (CLBUS)
hansungk Mar 3, 2024
0dc13d7
fix seip connection when tile does not use supervisor
richardyrh Mar 27, 2024
20ce83b
Don't connect NullIntSource to tileCeaseXbarNode of Cluster
hansungk Apr 5, 2024
8c8b3f5
Merge branch 'dev' of https://github.com/chipsalliance/rocket-chip in…
richardyrh Apr 20, 2024
cf65449
Merge branch 'dev' of https://github.com/chipsalliance/rocket-chip in…
richardyrh May 16, 2024
c6fa6b9
[cluster] Add missing clock group connection for clbus
hansungk Jun 11, 2024
cd35968
Merge commit 'ea9979b1'
hansungk Jun 27, 2024
c7aabd2
Merge pull request #3712 from chipsalliance/master
jerryz123 Jan 30, 2025
e84843f
Merge branch 'master' of https://github.com/chipsalliance/rocket-chip…
richardyrh Feb 1, 2025
5b1ff5a
Merge branch 'upstream-master'
richardyrh Feb 1, 2025
4687b06
move clbus to radiance
richardyrh Feb 8, 2025
47d6527
Merge pull request #3714 from richardyrh/master
jerryz123 Feb 9, 2025
7a2647d
Fix filtering tiles with supervisor for seipNodes
hansungk Feb 19, 2025
ac5192c
Merge pull request #3718 from hansungk/master
jerryz123 Feb 19, 2025
2b9901e
Remove most `ChiselAnnotation`s
tymcauley Mar 7, 2025
9fcd186
Merge pull request #3723 from tymcauley/remove-most-chisel-annos
jerryz123 Mar 7, 2025
d56099d
Bump Chisel to 6.7.0
tymcauley Mar 9, 2025
5d76b41
Use new Chisel annotations API
tymcauley Mar 9, 2025
a54937e
Merge pull request #3724 from tymcauley/new-chisel-anno-api
jerryz123 Mar 10, 2025
911f6d6
Fix circuitIdentity in Xbars
Tang-Haojin Mar 11, 2025
0ea2deb
Merge pull request #3725 from Tang-Haojin/fix-circuitIdentity
jerryz123 Mar 12, 2025
de3f593
Support multiple ROMs
jerryz123 Nov 13, 2024
337f2ab
Support resource-file ROMs
jerryz123 Mar 13, 2025
b108de3
Resolve no-implicit-clock error with AXI4 monitors
tymcauley Mar 17, 2025
1a8dae9
Merge pull request #3728 from tymcauley/fix-axi4-monitors
jerryz123 Mar 18, 2025
0fb0574
Merge pull request #3699 from chipsalliance/multi-rom
jerryz123 Mar 19, 2025
5fa8f87
Add chain/chainNode methods to AXI4Buffer
tymcauley Mar 21, 2025
c9289f5
Merge pull request #3731 from tymcauley/axi4-buffer-chain
jerryz123 Mar 21, 2025
6357077
fix(SRAM.scala): change x_sel_1 RegNext to Reg(Bool())
Chelsea819 Mar 26, 2025
c9a3244
Require EarlyVectorDecode to check vill internally
jerryz123 Mar 30, 2025
4dcd1a9
Merge pull request #3733 from Chelsea819/master
jerryz123 Mar 31, 2025
728a1be
Merge pull request #3735 from chipsalliance/vill
jerryz123 Apr 3, 2025
ad72be5
ADD: branch predictor mode MMIOs
iansseijelly Apr 14, 2025
bb6bc91
RM: unused bundle
iansseijelly Apr 14, 2025
6342f0f
Merge pull request #3739 from iansseijelly/tacit-bp-pr
jerryz123 Apr 15, 2025
f4cd96c
Update GitHub actions
tymcauley Apr 16, 2025
53f1dfd
Merge pull request #3741 from tymcauley/update-github-actions
jerryz123 Apr 17, 2025
c014c61
Use Connectable coercion operator to drive diplomatic monitors
tymcauley Apr 16, 2025
c357a0f
Merge pull request #3740 from tymcauley/connectable-monitors
jerryz123 Apr 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions .github/workflows/mill-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,17 @@ jobs:
matrix:
config: [DefaultConfig, DefaultBufferlessConfig, DefaultRV32Config, TinyConfig, DefaultFP16Config, DefaultBConfig, DefaultRV32BConfig]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: 'true'

- uses: cachix/install-nix-action@v19
- uses: cachix/install-nix-action@v31
with:
install_url: https://releases.nixos.org/nix/nix-2.13.3/install
nix_path: nixpkgs=channel:nixos-unstable

- name: Coursier Cache
uses: coursier/cache-action@v5
uses: coursier/cache-action@v6

- name: run riscv-tests
run: |
Expand All @@ -50,17 +50,17 @@ jobs:
matrix:
config: [DefaultSmallConfig, DualBankConfig, DualChannelConfig, DualChannelDualBankConfig, RoccExampleConfig, Edge128BitConfig, Edge32BitConfig, QuadChannelBenchmarkConfig, EightChannelConfig, DualCoreConfig, MemPortOnlyConfig, MMIOPortOnlyConfig, CloneTileConfig, HypervisorConfig]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: 'true'

- uses: cachix/install-nix-action@v19
- uses: cachix/install-nix-action@v31
with:
install_url: https://releases.nixos.org/nix/nix-2.13.3/install
nix_path: nixpkgs=channel:nixos-unstable

- name: Coursier Cache
uses: coursier/cache-action@v5
uses: coursier/cache-action@v6

- name: compile emulator
run: |
Expand All @@ -74,12 +74,12 @@ jobs:
matrix:
config: ["DefaultRV32Config,32,RV32IMACZicsr_Zifencei", "DefaultConfig,64,RV64IMACZicsr_Zifencei"]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: 'true'

- name: install nix
uses: cachix/install-nix-action@v19
uses: cachix/install-nix-action@v31
with:
install_url: https://releases.nixos.org/nix/nix-2.13.3/install
nix_path: nixpkgs=channel:nixos-unstable
Expand All @@ -98,12 +98,12 @@ jobs:
matrix:
config: ["freechips.rocketchip.system.WithJtagDTMSystem_freechips.rocketchip.system.DefaultConfig", "freechips.rocketchip.system.WithJtagDTMSystem_freechips.rocketchip.system.DefaultRV32Config", "freechips.rocketchip.system.WithJtagDTMSystem_freechips.rocketchip.system.WithDebugSBASystem_freechips.rocketchip.system.DefaultConfig", "freechips.rocketchip.system.WithJtagDTMSystem_freechips.rocketchip.system.WithDebugSBASystem_freechips.rocketchip.system.DefaultRV32Config"]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: 'true'

- name: install nix
uses: cachix/install-nix-action@v19
uses: cachix/install-nix-action@v31
with:
install_url: https://releases.nixos.org/nix/nix-2.13.3/install
nix_path: nixpkgs=channel:nixos-unstable
Expand Down
2 changes: 1 addition & 1 deletion build.sc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ object v {
val scala = "2.13.12"
// the first version in this Map is the mainly supported version which will be used to run tests
val chiselCrossVersions = Map(
"5.1.0" -> (ivy"org.chipsalliance::chisel:5.1.0", ivy"org.chipsalliance:::chisel-plugin:5.1.0"),
"6.7.0" -> (ivy"org.chipsalliance::chisel:6.7.0", ivy"org.chipsalliance:::chisel-plugin:6.7.0"),
// build from project from source
"source" -> (ivy"org.chipsalliance::chisel:99", ivy"org.chipsalliance:::chisel-plugin:99"),
)
Expand Down
4 changes: 2 additions & 2 deletions src/main/scala/amba/ahb/Nodes.scala
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ object AHBImpSlave extends SimpleNodeImp[AHBMasterPortParameters, AHBSlavePortPa
override def monitor(bundle: AHBSlaveBundle, edge: AHBEdgeParameters): Unit = {
edge.params.lift(AHBSlaveMonitorBuilder).foreach { builder =>
val monitor = Module(builder(AHBSlaveMonitorArgs(edge)))
monitor.io.in := bundle
monitor.io.in :#= bundle
}
}

Expand All @@ -44,7 +44,7 @@ object AHBImpMaster extends SimpleNodeImp[AHBMasterPortParameters, AHBSlavePortP
override def monitor(bundle: AHBMasterBundle, edge: AHBEdgeParameters): Unit = {
edge.params.lift(AHBMasterMonitorBuilder).foreach { builder =>
val monitor = Module(builder(AHBMasterMonitorArgs(edge)))
monitor.io.in := bundle
monitor.io.in :#= bundle
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/amba/ahb/Xbar.scala
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class AHBFanout()(implicit p: Parameters) extends LazyModule {
requestKeys = seq.flatMap(_.requestKeys).distinct,
responseFields = BundleField.union(seq.flatMap(_.responseFields))) }
){
override def circuitIdentity = outputs == 1 && inputs == 1
override def circuitIdentity = outputs.size == 1 && inputs.size == 1
}

lazy val module = new Impl
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/amba/apb/Nodes.scala
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ object APBImp extends SimpleNodeImp[APBMasterPortParameters, APBSlavePortParamet
override def monitor(bundle: APBBundle, edge: APBEdgeParameters): Unit = {
edge.params.lift(APBMonitorBuilder).foreach { builder =>
val monitor = Module(builder(APBMonitorArgs(edge)))
monitor.io.in := bundle
monitor.io.in :#= bundle
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/amba/apb/Xbar.scala
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class APBFanout()(implicit p: Parameters) extends LazyModule {
requestKeys = seq.flatMap(_.requestKeys).distinct,
responseFields = BundleField.union(seq.flatMap(_.responseFields))) }
){
override def circuitIdentity = outputs == 1 && inputs == 1
override def circuitIdentity = outputs.size == 1 && inputs.size == 1
}

lazy val module = new Impl
Expand Down
12 changes: 12 additions & 0 deletions src/main/scala/amba/axi4/Buffer.scala
Original file line number Diff line number Diff line change
Expand Up @@ -68,4 +68,16 @@ object AXI4Buffer
val axi4buf = LazyModule(new AXI4Buffer(aw, w, b, ar, r))
axi4buf.node
}

def chain(depth: Int, name: Option[String] = None)(implicit p: Parameters): Seq[AXI4Node] = {
val buffers = Seq.fill(depth) { LazyModule(new AXI4Buffer()) }
name.foreach { n => buffers.zipWithIndex.foreach { case (b, i) => b.suggestName(s"${n}_${i}") } }
buffers.map(_.node)
}

def chainNode(depth: Int, name: Option[String] = None)(implicit p: Parameters): AXI4Node = {
chain(depth, name)
.reduceLeftOption(_ :*=* _)
.getOrElse(AXI4NameNode("no_buffer"))
}
}
2 changes: 1 addition & 1 deletion src/main/scala/amba/axi4/Nodes.scala
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ object AXI4Imp extends SimpleNodeImp[AXI4MasterPortParameters, AXI4SlavePortPara
override def monitor(bundle: AXI4Bundle, edge: AXI4EdgeParameters): Unit = {
edge.params.lift(AXI4MonitorBuilder).foreach { builder =>
val monitor = Module(builder(AXI4MonitorArgs(edge)))
monitor.io.in := bundle
monitor.io.in :#= bundle
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/main/scala/amba/axi4/SRAM.scala
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ class AXI4RAM(
val w_full = RegInit(false.B)
val w_id = Reg(UInt())
val w_echo = Reg(BundleMap(in.params.echoFields))
val r_sel1 = RegNext(r_sel0)
val w_sel1 = RegNext(w_sel0)
val r_sel1 = Reg(Bool())
val w_sel1 = Reg(Bool())

when (in. b.fire) { w_full := false.B }
when (in.aw.fire) { w_full := true.B }
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/amba/axi4/Xbar.scala
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class AXI4Xbar(
)
}
){
override def circuitIdentity = outputs == 1 && inputs == 1
override def circuitIdentity = outputs.size == 1 && inputs.size == 1
}

lazy val module = new Impl
Expand Down
3 changes: 1 addition & 2 deletions src/main/scala/devices/debug/Debug.scala
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import freechips.rocketchip.regmapper.{RegField, RegFieldAccessType, RegFieldDes
import freechips.rocketchip.rocket.{CSRs, Instructions}
import freechips.rocketchip.tile.MaxHartIdBits
import freechips.rocketchip.tilelink.{TLAsyncCrossingSink, TLAsyncCrossingSource, TLBuffer, TLRegisterNode, TLXbar}
import freechips.rocketchip.util.{Annotated, AsyncBundle, AsyncQueueParams, AsyncResetSynchronizerShiftReg, FromAsyncBundle, ParameterizedBundle, ResetSynchronizerShiftReg, ToAsyncBundle}
import freechips.rocketchip.util.{AsyncBundle, AsyncQueueParams, AsyncResetSynchronizerShiftReg, FromAsyncBundle, ParameterizedBundle, ResetSynchronizerShiftReg, ToAsyncBundle}

import freechips.rocketchip.util.SeqBoolBitwiseOps
import freechips.rocketchip.util.SeqToAugmentedSeq
Expand Down Expand Up @@ -789,7 +789,6 @@ class TLDebugModuleInner(device: Device, getNComponents: () => Int, beatBytes: I
lazy val module = new Impl
class Impl extends LazyModuleImp(this){
val nComponents = getNComponents()
Annotated.params(this, cfg)
val supportHartArray = cfg.supportHartArray & (nComponents > 1)
val nExtTriggers = cfg.nExtTriggers
val nHaltGroups = if ((nComponents > 1) | (nExtTriggers > 0)) cfg.nHaltGroups
Expand Down
46 changes: 32 additions & 14 deletions src/main/scala/devices/tilelink/BootROM.scala
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import freechips.rocketchip.diplomacy.{AddressSet, RegionType, TransferSizes}
import freechips.rocketchip.resources.{Resource, SimpleDevice}
import freechips.rocketchip.subsystem._
import freechips.rocketchip.tilelink.{TLFragmenter, TLManagerNode, TLSlaveParameters, TLSlavePortParameters}
import freechips.rocketchip.util.{FileName, SystemFileName, ResourceFileName}

import java.nio.ByteBuffer
import java.nio.file.{Files, Paths}
Expand All @@ -22,7 +23,11 @@ case class BootROMParams(
address: BigInt = 0x10000,
size: Int = 0x10000,
hang: BigInt = 0x10040, // The hang parameter is used as the power-on reset vector
contentFileName: String)
driveResetVector: Boolean = true,
appendDTB: Boolean = true,
name: String = "bootrom",
contentFileName: FileName = SystemFileName("./bootrom/bootrom.img")
)

class TLROM(val base: BigInt, val size: Int, contentsDelayed: => Seq[Byte], executable: Boolean = true, beatBytes: Int = 4,
resources: Seq[Resource] = new SimpleDevice("rom", Seq("sifive,rom0")).reg("mem"))(implicit p: Parameters) extends LazyModule
Expand Down Expand Up @@ -63,7 +68,7 @@ class TLROM(val base: BigInt, val size: Int, contentsDelayed: => Seq[Byte], exec
}
}

case class BootROMLocated(loc: HierarchicalLocation) extends Field[Option[BootROMParams]](None)
case class BootROMLocated(loc: HierarchicalLocation) extends Field[Seq[BootROMParams]](Nil)

object BootROM {
/** BootROM.attach not only instantiates a TLROM and attaches it to the tilelink interconnect
Expand All @@ -73,27 +78,40 @@ object BootROM {
def attach(params: BootROMParams, subsystem: BaseSubsystem with HasHierarchicalElements with HasTileInputConstants, where: TLBusWrapperLocation)
(implicit p: Parameters): TLROM = {
val tlbus = subsystem.locateTLBusWrapper(where)
val bootROMDomainWrapper = tlbus.generateSynchronousDomain("BootROM").suggestName("bootrom_domain")
val bootROMDomainWrapper = tlbus.generateSynchronousDomain(params.name).suggestName(s"${params.name}_domain")

val bootROMResetVectorSourceNode = BundleBridgeSource[UInt]()
lazy val contents = {
val romdata = Files.readAllBytes(Paths.get(params.contentFileName))
val rom = ByteBuffer.wrap(romdata)
rom.array() ++ subsystem.dtb.contents
val rom = params.contentFileName match {
case SystemFileName(fileName) => {
val romdata = Files.readAllBytes(Paths.get(fileName))
ByteBuffer.wrap(romdata).array()
}
case ResourceFileName(fileName) => {
val file = os.resource / os.RelPath(fileName.dropWhile(_ == '/'))
os.read.bytes(file)
}
}

lazy val contents = if (params.appendDTB) {
rom ++ subsystem.dtb.contents
} else {
rom
}

val bootrom = bootROMDomainWrapper {
LazyModule(new TLROM(params.address, params.size, contents, true, tlbus.beatBytes))
}

bootrom.node := tlbus.coupleTo("bootrom"){ TLFragmenter(tlbus, Some("BootROM")) := _ }
bootrom.node := tlbus.coupleTo(params.name){ TLFragmenter(tlbus, Some(params.name)) := _ }
// Drive the `subsystem` reset vector to the `hang` address of this Boot ROM.
subsystem.tileResetVectorNexusNode := bootROMResetVectorSourceNode
InModuleBody {
val reset_vector_source = bootROMResetVectorSourceNode.bundle
require(reset_vector_source.getWidth >= params.hang.bitLength,
s"BootROM defined with a reset vector (${params.hang})too large for physical address space (${reset_vector_source.getWidth})")
bootROMResetVectorSourceNode.bundle := params.hang.U
if (params.driveResetVector) {
subsystem.tileResetVectorNexusNode := bootROMResetVectorSourceNode
InModuleBody {
val reset_vector_source = bootROMResetVectorSourceNode.bundle
require(reset_vector_source.getWidth >= params.hang.bitLength,
s"BootROM defined with a reset vector (${params.hang})too large for physical address space (${reset_vector_source.getWidth})")
bootROMResetVectorSourceNode.bundle := params.hang.U
}
}
bootrom
}
Expand Down
2 changes: 0 additions & 2 deletions src/main/scala/devices/tilelink/CLINT.scala
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import freechips.rocketchip.interrupts.{IntNexusNode, IntSinkParameters, IntSink
import freechips.rocketchip.regmapper.{RegField, RegFieldDesc, RegFieldGroup}
import freechips.rocketchip.subsystem.{BaseSubsystem, CBUS, TLBusWrapperLocation}
import freechips.rocketchip.tilelink.{TLFragmenter, TLRegisterNode}
import freechips.rocketchip.util.Annotated

object CLINTConsts
{
Expand Down Expand Up @@ -63,7 +62,6 @@ class CLINT(params: CLINTParams, beatBytes: Int)(implicit p: Parameters) extends

lazy val module = new Impl
class Impl extends LazyModuleImp(this) {
Annotated.params(this, params)
require (intnode.edges.in.size == 0, "CLINT only produces interrupts; it does not accept them")

val io = IO(new Bundle {
Expand Down
4 changes: 1 addition & 3 deletions src/main/scala/devices/tilelink/Plic.scala
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import freechips.rocketchip.interrupts.{IntNexusNode, IntSinkParameters, IntSink
import freechips.rocketchip.regmapper.{RegField, RegFieldDesc, RegFieldRdAction, RegFieldWrType, RegReadFn, RegWriteFn}
import freechips.rocketchip.subsystem.{BaseSubsystem, CBUS, TLBusWrapperLocation}
import freechips.rocketchip.tilelink.{TLFragmenter, TLRegisterNode}
import freechips.rocketchip.util.{Annotated, MuxT, property}
import freechips.rocketchip.util.{MuxT, property}

import scala.math.min

Expand Down Expand Up @@ -130,8 +130,6 @@ class TLPLIC(params: PLICParams, beatBytes: Int)(implicit p: Parameters) extends

lazy val module = new Impl
class Impl extends LazyModuleImp(this) {
Annotated.params(this, params)

val (io_devices, edgesIn) = intnode.in.unzip
val (io_harts, _) = intnode.out.unzip

Expand Down
4 changes: 2 additions & 2 deletions src/main/scala/interrupts/Xbar.scala
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class IntXbar()(implicit p: Parameters) extends LazyModule
}.flatten)
})
{
override def circuitIdentity = outputs == 1 && inputs == 1
override def circuitIdentity = outputs.size == 1 && inputs.size == 1
}

lazy val module = new Impl
Expand All @@ -36,7 +36,7 @@ class IntSyncXbar()(implicit p: Parameters) extends LazyModule
}.flatten)
})
{
override def circuitIdentity = outputs == 1 && inputs == 1
override def circuitIdentity = outputs.size == 1 && inputs.size == 1
}

lazy val module = new Impl
Expand Down
6 changes: 2 additions & 4 deletions src/main/scala/rocket/BTB.scala
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,7 @@ trait HasBtbParameters extends HasCoreParameters { this: InstanceId =>
val nPages = (btbParams.nPages + 1) / 2 * 2 // control logic assumes 2 divides pages
}

abstract class BtbModule(implicit val p: Parameters) extends Module with HasBtbParameters {
Annotated.params(this, btbParams)
}
abstract class BtbModule(implicit val p: Parameters) extends Module with HasBtbParameters

abstract class BtbBundle(implicit val p: Parameters) extends Bundle with HasBtbParameters

Expand Down Expand Up @@ -301,7 +299,7 @@ class BTB(implicit p: Parameters) extends BtbModule {
}

if (btbParams.bhtParams.nonEmpty) {
val bht = new BHT(Annotated.params(this, btbParams.bhtParams.get))
val bht = new BHT(btbParams.bhtParams.get)
val isBranch = (idxHit & cfiType.map(_ === CFIType.branch).asUInt).orR
val res = bht.get(io.req.bits.addr)
when (io.bht_advance.valid) {
Expand Down
4 changes: 1 addition & 3 deletions src/main/scala/rocket/DCache.scala
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,7 @@ import freechips.rocketchip.util.SeqBoolBitwiseOps

// TODO: delete this trait once deduplication is smart enough to avoid globally inlining matching circuits
trait InlineInstance { self: chisel3.experimental.BaseModule =>
chisel3.experimental.annotate(
new chisel3.experimental.ChiselAnnotation {
def toFirrtl: firrtl.annotations.Annotation = firrtl.passes.InlineAnnotation(self.toNamed) } )
chisel3.experimental.annotate(self)(Seq(firrtl.passes.InlineAnnotation(self.toNamed)))
}

class DCacheErrors(implicit p: Parameters) extends L1HellaCacheBundle()(p)
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/rocket/Multiplier.scala
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ class MulDiv(cfg: MulDivParams, width: Int, nXpr: Int = 32) extends Module {
io.req.ready := state === s_ready
}

class PipelinedMultiplier(width: Int, latency: Int, nXpr: Int = 32) extends Module with ShouldBeRetimed {
class PipelinedMultiplier(width: Int, latency: Int, nXpr: Int = 32) extends Module {
val io = IO(new Bundle {
val req = Flipped(Valid(new MultiplierReq(width, log2Ceil(nXpr))))
val resp = Valid(new MultiplierResp(width, log2Ceil(nXpr)))
Expand Down
5 changes: 2 additions & 3 deletions src/main/scala/rocket/RocketCore.scala
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ class Rocket(tile: RocketTile)(implicit p: Parameters) extends CoreModule()(p)
v_decode.io.vconfig := csr.io.vector.get.vconfig
id_ctrl.vec := v_decode.io.vector
when (v_decode.io.legal) {
id_ctrl.legal := !csr.io.vector.get.vconfig.vtype.vill
id_ctrl.legal := true.B
id_ctrl.fp := v_decode.io.fp
id_ctrl.rocc := false.B
id_ctrl.branch := false.B
Expand Down Expand Up @@ -389,8 +389,7 @@ class Rocket(tile: RocketTile)(implicit p: Parameters) extends CoreModule()(p)
(id_ctrl.mul || id_ctrl.div) && !csr.io.status.isa('m'-'a') ||
id_ctrl.amo && !csr.io.status.isa('a'-'a') ||
id_ctrl.fp && (csr.io.decode(0).fp_illegal || (io.fpu.illegal_rm && !id_ctrl.vec)) ||
id_set_vconfig && csr.io.decode(0).vector_illegal ||
id_ctrl.vec && (csr.io.decode(0).vector_illegal || csr.io.vector.map(_.vconfig.vtype.vill).getOrElse(false.B)) ||
(id_ctrl.vec || id_set_vconfig) && csr.io.decode(0).vector_illegal ||
id_ctrl.dp && !csr.io.status.isa('d'-'a') ||
ibuf.io.inst(0).bits.rvc && !csr.io.status.isa('c'-'a') ||
id_raddr2_illegal && id_ctrl.rxs2 ||
Expand Down
Loading
Loading