aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/proto/FromProto.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/firrtl/proto/FromProto.scala')
-rw-r--r--src/main/scala/firrtl/proto/FromProto.scala11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/main/scala/firrtl/proto/FromProto.scala b/src/main/scala/firrtl/proto/FromProto.scala
index 22c90316..ef2ee5bd 100644
--- a/src/main/scala/firrtl/proto/FromProto.scala
+++ b/src/main/scala/firrtl/proto/FromProto.scala
@@ -8,6 +8,7 @@ import java.io.{File, FileInputStream, InputStream}
import collection.JavaConverters._
import FirrtlProtos._
import com.google.protobuf.CodedInputStream
+import Firrtl.Statement.ReadUnderWrite
object FromProto {
@@ -133,6 +134,12 @@ object FromProto {
ir.Conditionally(convert(info), convert(when.getPredicate), conseq, alt)
}
+ def convert(ruw: ReadUnderWrite): ir.ReadUnderWrite.Value = ruw match {
+ case ReadUnderWrite.UNDEFINED => ir.ReadUnderWrite.Undefined
+ case ReadUnderWrite.OLD => ir.ReadUnderWrite.Old
+ case ReadUnderWrite.NEW => ir.ReadUnderWrite.New
+ }
+
def convert(dt: Firrtl.Statement.CMemory.TypeAndDepth): (ir.Type, BigInt) =
(convert(dt.getDataType), convert(dt.getDepth))
@@ -145,7 +152,7 @@ object FromProto {
case TYPE_AND_DEPTH_FIELD_NUMBER =>
convert(cmem.getTypeAndDepth)
}
- CDefMemory(convert(info), cmem.getId, tpe, depth, cmem.getSyncRead)
+ CDefMemory(convert(info), cmem.getId, tpe, depth, cmem.getSyncRead, convert(cmem.getReadUnderWrite))
}
import Firrtl.Statement.MemoryPort.Direction._
@@ -181,7 +188,7 @@ object FromProto {
case BIGINT_DEPTH_FIELD_NUMBER => convert(mem.getBigintDepth)
}
ir.DefMemory(convert(info), mem.getId, dtype, depth, mem.getWriteLatency, mem.getReadLatency,
- rs, ws, rws, None)
+ rs, ws, rws, convert(mem.getReadUnderWrite))
}
def convert(attach: Firrtl.Statement.Attach, info: Firrtl.SourceInfo): ir.Attach = {