diff options
| author | Donggyu Kim | 2016-10-23 19:20:33 -0700 |
|---|---|---|
| committer | Donggyu Kim | 2016-10-23 19:20:33 -0700 |
| commit | aea7e1e754a3ebdb5b7e84c3ae1d35b16e547823 (patch) | |
| tree | 3c58fb89dec1cb93ccbc2f9404d757950a61d948 /chiselFrontend | |
| parent | bbc676b68a79ab2307d346c482d75b72f7ec5d4d (diff) | |
create SeqMems' read ports inside when statement
this helps firrtl to infer read enable signals
Diffstat (limited to 'chiselFrontend')
| -rw-r--r-- | chiselFrontend/src/main/scala/chisel3/core/Mem.scala | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/chiselFrontend/src/main/scala/chisel3/core/Mem.scala b/chiselFrontend/src/main/scala/chisel3/core/Mem.scala index 9cd5a4d8..a43b19fe 100644 --- a/chiselFrontend/src/main/scala/chisel3/core/Mem.scala +++ b/chiselFrontend/src/main/scala/chisel3/core/Mem.scala @@ -147,7 +147,11 @@ sealed class SeqMem[T <: Data](t: T, n: Int) extends MemBase[T](t, n) { def read(addr: UInt, enable: Bool): T = { implicit val sourceInfo = UnlocatableSourceInfo val a = Wire(UInt()) - when (enable) { a := addr } - read(a) + var port: Option[T] = None + when (enable) { + a := addr + port = Some(read(a)) + } + port.get } } |
