fhdl/verilog: fix case value sort
authorSebastien Bourdeauducq <sb@m-labs.hk>
Thu, 17 Sep 2015 00:03:48 +0000 (08:03 +0800)
committerSebastien Bourdeauducq <sb@m-labs.hk>
Thu, 17 Sep 2015 00:03:48 +0000 (08:03 +0800)
migen/fhdl/verilog.py

index 8a2b8b46cb11dc3bf03f05987043931854dc73f6..009c7e1ff0b22e2ab747067fbaa847464f67eaf9 100644 (file)
@@ -141,7 +141,8 @@ def _printnode(ns, at, level, node):
     elif isinstance(node, Case):
         if node.cases:
             r = "\t"*level + "case (" + _printexpr(ns, node.test)[0] + ")\n"
-            css = sorted([(k, v) for (k, v) in node.cases.items() if isinstance(k, Constant)], key=itemgetter(0))
+            css = [(k, v) for k, v in node.cases.items() if isinstance(k, Constant)]
+            css = sorted(css, key=lambda x: x[0].value)
             for choice, statements in css:
                 r += "\t"*(level + 1) + _printexpr(ns, choice)[0] + ": begin\n"
                 r += _printnode(ns, at, level + 2, statements)