diff options
| author | Richard Lin | 2017-03-08 17:38:14 -0800 |
|---|---|---|
| committer | GitHub | 2017-03-08 17:38:14 -0800 |
| commit | a290d77ef3e88b200ab61cd41fcd1a1138321b66 (patch) | |
| tree | 3cbabf2a20dc34f9d60a585834f532070bcd5235 /src/main/scala/chisel3/package.scala | |
| parent | 09e95c484e145e2a1b2f0a1aacf549c7354a1eca (diff) | |
Deprecate old Reg with nulls constructor (#455)
Diffstat (limited to 'src/main/scala/chisel3/package.scala')
| -rw-r--r-- | src/main/scala/chisel3/package.scala | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/src/main/scala/chisel3/package.scala b/src/main/scala/chisel3/package.scala index 0ccdfc29..191b636e 100644 --- a/src/main/scala/chisel3/package.scala +++ b/src/main/scala/chisel3/package.scala @@ -155,7 +155,45 @@ package object chisel3 { // scalastyle:ignore package.object.name val printf = chisel3.core.printf - val Reg = chisel3.core.Reg + val RegNext = chisel3.core.RegNext + val RegInit = chisel3.core.RegInit + object Reg { + import chisel3.core.{Binding, CompileOptions} + import chisel3.internal.sourceinfo.SourceInfo + import chisel3.internal.throwException + + // Passthrough for chisel3.core.Reg + // TODO: make val Reg = chisel3.core.Reg once we eliminate the legacy Reg constructor + def apply[T <: Data](t: T)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): T = + chisel3.core.Reg(t) + + @deprecated("Use Reg(t), RegNext(next, [init]) or RegInit([t], init) instead", "chisel3") + def apply[T <: Data](t: T = null, next: T = null, init: T = null) + (implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): T = { + if (t ne null) { + val reg = if (init ne null) { + RegInit(t, init) + } else { + chisel3.core.Reg(t) + } + if (next ne null) { + Binding.checkSynthesizable(next, s"'next' ($next)") // TODO: move into connect? + reg := next + } + reg + } else if (next ne null) { + if (init ne null) { + RegNext(next, init) + } else { + RegNext(next) + } + } else if (init ne null) { + RegInit(init) + } else { + throwException("cannot infer type") + } + } + } val when = chisel3.core.when type WhenContext = chisel3.core.WhenContext |
