How do you generate a registered output from Stateflow?

If I have an output from a Stateflow diagram; in the generated HDL code the output is assigned from the next state decision logic (combinatorial) _next signal and not from the clocked process, _reg signal. As best practice is to have all outputs from a module being registered a unit delay is added to the output external to the stateflow. However when the generated code is synthesised this register is identified as an equivalent register to the equivalent _reg signal and removed, generating a warning.
How do I generate an output from stateflow that is sourced from the _reg signal as opposed to the the _next signal so that I do not need to put unit delays external to the stateflow diagram?

답변 (2개)

Michael Felger
Michael Felger 2019년 10월 15일

0 개 추천

I have exactly the same question!

댓글 수: 1

Hi Michael, the solution I have employed is that when creating my Stateflow diagrams I have two super states with the execution order set as parallel (and). I then use the priority 1 super state to contain purely assignments from internal registers to outputs - having these as priority 1 means that assignments are generated at the top of the code (i.e. no variables). Superstate 2 is then used to comprise the stateflow diagram required to model the behaviour you require.
Hop this helps.

댓글을 달려면 로그인하십시오.

Michael Felger
Michael Felger 2023년 5월 26일

0 개 추천

Update: starting with R2022b, the ClockDrivenOutput parameter for stateflow is available for Moore charts.
With this, registered output is generated.

카테고리

도움말 센터File Exchange에서 Stateflow에 대해 자세히 알아보기

제품

릴리스

R2018a

질문:

2019년 1월 16일

답변:

2023년 5월 26일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by