@@ -73,25 +73,35 @@ def mkTop():
7373 m .Instance (mkBram ('my_' ), 'inst_bram' , params , ports )
7474
7575 fsm = lib .FSM (m , 'fsm' )
76- m .Always (Posedge (clk ))(
77- If (rst )(
78- bramif .addr (0 ), bramif .datain (0 ), bramif .write (0 ), fsm .next (0 )
79- ).Else (
80- fsm ( bramif .addr (0 ), bramif .datain (0 ), bramif .write (0 ), fsm .next () ),
81- fsm ( bramif .datain (bramif .datain + 4 ), fsm .next () ),
82- fsm ( bramif .write (0 ), fsm .next () ),
76+ init = fsm .get_index ()
77+ fsmbody = []
78+ fsmbody .append (
79+ fsm ( bramif .addr (0 ), bramif .datain (0 ), bramif .write (0 ), fsm .next () ))
80+ first = fsm .get_index ()
81+ fsmbody .append (
82+ fsm ( bramif .datain (bramif .datain + 4 ), fsm .next () ))
83+ fsmbody .append (
84+ fsm ( bramif .write (0 ), fsm .next () ))
85+ fsmbody .append (
8386 fsm (
8487 If (bramif .addr == 128 )(
85- bramif .addr (0 ), fsm .next ( 0 )
88+ bramif .addr (0 ), fsm .goto ( init )
8689 ).Else (
87- bramif .addr (bramif .addr + 1 ), fsm .next (1 )
88- ))
89- ))
90+ bramif .addr (bramif .addr + 1 ), fsm .goto (first )
91+ )))
92+
93+ m .Always (Posedge (clk ))(
94+ If (rst )(
95+ bramif .addr (0 ), bramif .datain (0 ), bramif .write (0 ), fsm .init ()
96+ ).Else (
97+ * fsmbody
98+ ))
9099
91100 return m
92101
93102#-------------------------------------------------------------------------------
94- top = mkTop ()
95- # top.to_verilog('tmp.v')
96- verilog = top .to_verilog ()
97- print (verilog )
103+ if __name__ == '__main__' :
104+ top = mkTop ()
105+ # top.to_verilog(filename='tmp.v')
106+ verilog = top .to_verilog ()
107+ print (verilog )
0 commit comments