diff options
| -rw-r--r-- | backends/smt2/smtio.py | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/backends/smt2/smtio.py b/backends/smt2/smtio.py index 4e5359795..5bc43acae 100644 --- a/backends/smt2/smtio.py +++ b/backends/smt2/smtio.py @@ -913,6 +913,12 @@ class MkVcd:          if path not in self.clocks:              print("b%s %s" % (bits, self.nets[path][0]), file=self.f) +    def escape_name(self, name): +        name = re.sub(r"\[([a-zA-Z_][0-9a-zA-Z_]*)\]", r".\1", name) +        if re.match("[\[\]]", name) and name[0] != "\\": +            name = "\\" + name +        return name +      def set_time(self, t):          assert t >= self.t          if t != self.t: @@ -929,9 +935,9 @@ class MkVcd:                          scope.append(path[len(scope)-1])                      key, width = self.nets[path]                      if path in self.clocks and self.clocks[path][1] == "event": -                        print("$var event 1 %s %s $end" % (key, path[-1]), file=self.f) +                        print("$var event 1 %s %s $end" % (key, self.escape_name(path[-1])), file=self.f)                      else: -                        print("$var wire %d %s %s $end" % (width, key, path[-1]), file=self.f) +                        print("$var wire %d %s %s $end" % (width, key, self.escape_name(path[-1])), file=self.f)                  for i in range(len(scope)):                      print("$upscope $end", file=self.f)                  print("$enddefinitions $end", file=self.f)  | 
