diff options
| author | jackkoenig | 2016-04-27 00:29:05 -0700 |
|---|---|---|
| committer | jackkoenig | 2016-05-24 09:46:40 -0700 |
| commit | b9bf7ad196a203526977c0e299b60948be6b29c6 (patch) | |
| tree | 3612671ee7ed057c2a56b098438723afebfa06d1 /src | |
| parent | 44e079a0510f14abf6191b08f3082bd194d9fa60 (diff) | |
Remove nested AND in creation of readwrite ports for mems.
Fixes #147
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/scala/firrtl/Emitter.scala | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main/scala/firrtl/Emitter.scala b/src/main/scala/firrtl/Emitter.scala index 5414053a..17cb9d50 100644 --- a/src/main/scala/firrtl/Emitter.scala +++ b/src/main/scala/firrtl/Emitter.scala @@ -554,7 +554,13 @@ class VerilogEmitter extends Emitter { val rmem_port = WSubAccess(mem,raddrx,s.data_type,UNKNOWNGENDER) assign(rdata,rmem_port) val wmem_port = WSubAccess(mem,waddrx,s.data_type,UNKNOWNGENDER) - update(wmem_port,datax,clk,AND(AND(enx,maskx),wmode)) + + val tempName = namespace.newTemp + val tempExp = AND(enx,maskx) + declare("wire", tempName, tpe(tempExp)) + val tempWRef = wref(tempName, tpe(tempExp)) + assign(tempWRef, tempExp) + update(wmem_port,datax,clk,AND(tempWRef,wmode)) } } case (s:Begin) => s map (build_streams) |
