Skip to content

Commit bfd06f8

Browse files
committed
core: add FSM support (and example)
1 parent 2ca58e4 commit bfd06f8

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

example_designs/targets/simple.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,19 @@ def __init__(self, platform):
5959
self.cpu_or_bridge.wishbone
6060
]
6161

62+
# fsm group
63+
fsm = FSM(reset_state="STATE1")
64+
self.submodules += fsm
65+
fsm.act("STATE1",
66+
NextState("STATE2")
67+
)
68+
fsm.act("STATE2",
69+
NextState("STATE1")
70+
)
71+
analyzer_groups[2] = [
72+
fsm
73+
]
74+
6275
# analyzer
6376
self.submodules.analyzer = LiteScopeAnalyzer(analyzer_groups, 512)
6477

litescope/core.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,10 @@ def format_groups(self, groups):
274274
for s in signals:
275275
if isinstance(s, Record):
276276
split_signals.extend(s.flatten())
277+
elif isinstance(s, FSM):
278+
s.do_finalize()
279+
s.finalized = True
280+
split_signals.append(s.state)
277281
else:
278282
split_signals.append(s)
279283
new_groups[n] = split_signals

0 commit comments

Comments
 (0)