Translate put_z verilog case into nmigen
authorAleksandar Kostovic <alexandar.kostovic@gmail.com>
Thu, 14 Feb 2019 14:37:57 +0000 (15:37 +0100)
committerAleksandar Kostovic <alexandar.kostovic@gmail.com>
Thu, 14 Feb 2019 14:37:57 +0000 (15:37 +0100)
src/add/nmigen_add_experiment.py

index 24e87428e559177cdb1727d8fa7a5ed44d013daf..a69b77b202e1bbcca50eb0da536820f9272ee43c 100644 (file)
@@ -330,17 +330,16 @@ class FPADD:
             # ******
             # put_z stage
 
-            """
-              put_z:
-              begin
-                s_out_z_stb <= 1;
-                s_out_z <= z;
-                if (s_out_z_stb && out_z_ack) begin
-                  s_out_z_stb <= 0;
-                  state <= get_a;
-                end
-              end
-            """
+            with m.State("put_z"):
+              m.next = "get_a"
+              m.d.sync += [
+                  s_out_z_stb.eq(1),
+                  s_out_z.eq(z)
+              ]
+              with m.If(s_out_z_stb & out_z_ack):
+                  m.d.sync += [
+                  s_out_z_stb.eq(0)
+                  ]
 
         return m