Skip to content

Commit 136c76b

Browse files
authored
Revert "remove DefRegInit, change DefReg API with option definition. (#1944)"
This reverts commit ed894c6.
1 parent e14bcb1 commit 136c76b

File tree

5 files changed

+9
-7
lines changed

5 files changed

+9
-7
lines changed

core/src/main/scala/chisel3/Reg.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ object Reg {
4242
val clock = Node(Builder.forcedClock)
4343

4444
reg.bind(RegBinding(Builder.forcedUserModule, Builder.currentWhen()))
45-
pushCommand(DefReg(sourceInfo, reg, clock, None))
45+
pushCommand(DefReg(sourceInfo, reg, clock))
4646
reg
4747
}
4848

@@ -176,7 +176,7 @@ object RegInit {
176176

177177
reg.bind(RegBinding(Builder.forcedUserModule, Builder.currentWhen()))
178178
requireIsHardware(init, "reg initializer")
179-
pushCommand(DefReg(sourceInfo, reg, clock.ref, Some(RegInitIR(reset.ref, init.ref))))
179+
pushCommand(DefRegInit(sourceInfo, reg, clock.ref, reset.ref, init.ref))
180180
reg
181181
}
182182

core/src/main/scala/chisel3/internal/firrtl/Converter.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,10 @@ private[chisel3] object Converter {
117117
Some(fir.DefNode(convert(e.sourceInfo), e.name, expr))
118118
case e @ DefWire(info, id) =>
119119
Some(fir.DefWire(convert(info), e.name, extractType(id, info)))
120-
case e @ DefReg(info, id, clock, None) =>
120+
case e @ DefReg(info, id, clock) =>
121121
Some(fir.DefRegister(convert(info), e.name, extractType(id, info), convert(clock, ctx, info),
122122
firrtl.Utils.zero, convert(getRef(id, info), ctx, info)))
123-
case e @ DefReg(info, id, clock, Some(RegInitIR(reset, init))) =>
123+
case e @ DefRegInit(info, id, clock, reset, init) =>
124124
Some(fir.DefRegister(convert(info), e.name, extractType(id, info), convert(clock, ctx, info),
125125
convert(reset, ctx, info), convert(init, ctx, info)))
126126
case e @ DefMemory(info, id, t, size) =>

core/src/main/scala/chisel3/internal/firrtl/IR.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -758,8 +758,8 @@ abstract class Definition extends Command {
758758
case class DefPrim[T <: Data](sourceInfo: SourceInfo, id: T, op: PrimOp, args: Arg*) extends Definition
759759
case class DefInvalid(sourceInfo: SourceInfo, arg: Arg) extends Command
760760
case class DefWire(sourceInfo: SourceInfo, id: Data) extends Definition
761-
case class RegInitIR(reset: Arg, init: Arg)
762-
case class DefReg(sourceInfo: SourceInfo, id: Data, clock: Arg, regInit: Option[RegInitIR]) extends Definition
761+
case class DefReg(sourceInfo: SourceInfo, id: Data, clock: Arg) extends Definition
762+
case class DefRegInit(sourceInfo: SourceInfo, id: Data, clock: Arg, reset: Arg, init: Arg) extends Definition
763763
case class DefMemory(sourceInfo: SourceInfo, id: HasId, t: Data, size: BigInt) extends Definition
764764
case class DefSeqMemory(sourceInfo: SourceInfo, id: HasId, t: Data, size: BigInt, readUnderWrite: fir.ReadUnderWrite.Value) extends Definition
765765
case class DefMemPort[T <: Data](sourceInfo: SourceInfo, id: T, source: Node, dir: MemPortDirection, index: Arg, clock: Arg) extends Definition

src/main/scala/chisel3/aop/Select.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ object Select {
101101
check(module)
102102
module._component.get.asInstanceOf[DefModule].commands.collect {
103103
case r: DefReg => r.id
104+
case r: DefRegInit => r.id
104105
}
105106
}
106107

src/main/scala/chisel3/internal/firrtl/Emitter.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ private class Emitter(circuit: Circuit) {
6666
val firrtlLine = e match {
6767
case e: DefPrim[_] => s"node ${e.name} = ${e.op.name}(${e.args.map(_.fullName(ctx)).mkString(", ")})"
6868
case e: DefWire => s"wire ${e.name} : ${emitType(e.id)}"
69-
case e: DefReg => s"reg ${e.name} : ${emitType(e.id)}, ${e.clock.fullName(ctx)}${ if (e.regInit.isDefined) "with : (reset => (${e.reset.fullName(ctx)}, ${e.init.fullName(ctx)}))" else ""}"
69+
case e: DefReg => s"reg ${e.name} : ${emitType(e.id)}, ${e.clock.fullName(ctx)}"
70+
case e: DefRegInit => s"reg ${e.name} : ${emitType(e.id)}, ${e.clock.fullName(ctx)} with : (reset => (${e.reset.fullName(ctx)}, ${e.init.fullName(ctx)}))"
7071
case e: DefMemory => s"cmem ${e.name} : ${emitType(e.t)}[${e.size}]"
7172
case e: DefSeqMemory => s"smem ${e.name} : ${emitType(e.t)}[${e.size}], ${e.readUnderWrite}"
7273
case e: DefMemPort[_] => s"${e.dir} mport ${e.name} = ${e.source.fullName(ctx)}[${e.index.fullName(ctx)}], ${e.clock.fullName(ctx)}"

0 commit comments

Comments
 (0)