diff options
| author | Angie | 2017-02-22 20:03:27 -0800 |
|---|---|---|
| committer | Adam Izraelevitz | 2017-02-23 14:55:00 -0800 |
| commit | 1f9fd2f9b9e9a0117b0dd65524c9dcb767c02778 (patch) | |
| tree | b4ef1d8fdadd89e942e321cf4495a127cb9bfe59 /src/main/scala/firrtl/passes/memlib/InferReadWrite.scala | |
| parent | 1d652352b752502dd6d130aeb85981df214d7021 (diff) | |
move more general utils out of memutils, mov WIR helpers to WIR.scala and update uses
Diffstat (limited to 'src/main/scala/firrtl/passes/memlib/InferReadWrite.scala')
| -rw-r--r-- | src/main/scala/firrtl/passes/memlib/InferReadWrite.scala | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/main/scala/firrtl/passes/memlib/InferReadWrite.scala b/src/main/scala/firrtl/passes/memlib/InferReadWrite.scala index 2501ba04..554c1f0d 100644 --- a/src/main/scala/firrtl/passes/memlib/InferReadWrite.scala +++ b/src/main/scala/firrtl/passes/memlib/InferReadWrite.scala @@ -101,24 +101,24 @@ object InferReadWritePass extends Pass { val rclk = getOrigin(connects)(memPortField(mem, r, "clk")) if (weq(wclk, rclk) && (wp exists (a => rp exists (b => checkComplement(a, b))))) { val rw = namespace newName "rw" - val rwExp = createSubField(createRef(mem.name), rw) + val rwExp = WSubField(WRef(mem.name), rw) readwriters += rw readers += r writers += w repl(memPortField(mem, r, "clk")) = EmptyExpression repl(memPortField(mem, r, "en")) = EmptyExpression repl(memPortField(mem, r, "addr")) = EmptyExpression - repl(memPortField(mem, r, "data")) = createSubField(rwExp, "rdata") + repl(memPortField(mem, r, "data")) = WSubField(rwExp, "rdata") repl(memPortField(mem, w, "clk")) = EmptyExpression - repl(memPortField(mem, w, "en")) = createSubField(rwExp, "wmode") + repl(memPortField(mem, w, "en")) = WSubField(rwExp, "wmode") repl(memPortField(mem, w, "addr")) = EmptyExpression - repl(memPortField(mem, w, "data")) = createSubField(rwExp, "wdata") - repl(memPortField(mem, w, "mask")) = createSubField(rwExp, "wmask") - stmts += Connect(NoInfo, createSubField(rwExp, "clk"), wclk) - stmts += Connect(NoInfo, createSubField(rwExp, "en"), + repl(memPortField(mem, w, "data")) = WSubField(rwExp, "wdata") + repl(memPortField(mem, w, "mask")) = WSubField(rwExp, "wmask") + stmts += Connect(NoInfo, WSubField(rwExp, "clk"), wclk) + stmts += Connect(NoInfo, WSubField(rwExp, "en"), DoPrim(Or, Seq(connects(memPortField(mem, r, "en")), connects(memPortField(mem, w, "en"))), Nil, BoolType)) - stmts += Connect(NoInfo, createSubField(rwExp, "addr"), + stmts += Connect(NoInfo, WSubField(rwExp, "addr"), Mux(connects(memPortField(mem, w, "en")), connects(memPortField(mem, w, "addr")), connects(memPortField(mem, r, "addr")), UnknownType)) |
