Chart
Implementieren von Steuerlogik mit endlicher Zustandsmaschine

Bibliotheken:
Stateflow
Beschreibung
Der Chart-Block stellt eine Zustandsmaschine grafisch dar. In einem Stateflow®-Diagramm bilden Zustände und Übergänge die Grundbausteine eines sequentiellen modalen Logiksystems. Zustände entsprechen Betriebsmodi und Übergänge stellen den Übergang des Systems von einem Betriebsmodi zu einem anderen dar. Weitere Informationen finden Sie unter Model a Finite State Machine.
Zum Implementieren einer Steuerlogik können Stateflow-Diagramme MATLAB® oder C als Aktionssprache verwenden. Weitere Informationen finden Sie unter Unterschiede zwischen MATLAB und C als Aktionssprache-Syntax.
Beispiele
Vereinfachen von Stateflow-Diagrammen durch Integration aktiver Zustände
Dieses Beispiel zeigt, wie aktive Zustandsdaten die Gestaltung einiger Stateflow®-Diagramme vereinfachen können, da Sie keine Daten pflegen müssen, die in hohem Maße mit der Diagrammhierarchie korrelieren. Wenn Sie aktive Zustandsdaten aktivieren, meldet Stateflow die Aktivität des Zustands über einen Ausgabeport an Simulink® oder als lokale Daten in Ihrem Diagramm. Dieses Beispiel zeigt, wie das Design eines Stateflow-Diagramms durch das Hinzufügen von aktiven Zustandsausgangsdaten vereinfacht werden kann. Weitere Informationen finden Sie unter Monitor State Activity Through Active State Data.
Model a Fitness Tracker
Implement a fitness tracker by using temporal logic and messages.
Ports
Eingang
Wenn Sie Eingangsdaten im Stateflow-Diagramm mithilfe des Fensterbereichs Symbols erstellen, erstellt Stateflow einen entsprechenden Eingangsport am Chart-Block.
Datentypen: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| string
Ausgang
Wenn Sie Ausgangsdaten im Stateflow-Diagramm mithilfe des Fensterbereichs Symbols erstellen, erstellt Stateflow einen entsprechenden Ausgangsport bei dem Chart-Block.
Datentypen: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| string
Parameter
Verwenden Sie Property Inspector, um Blockparameter interaktiv zu bearbeiten. Wählen Sie in der Simulink®-Werkzeugleiste auf der Registerkarte Simulation aus der Galerie Prepare Property Inspector aus.
Hinweis
Diagramme weisen zudem Subsystem (Simulink)-Blockparameter auf, auf die Sie über Rechtsklick auf das Diagramm und Klick auf Block Parameters (Subsystem) zugreifen können. Eine Änderung dieser Parameter wird jedoch nicht empfohlen.
Methoden zur Aktualisierung oder zum Aufwecken von Stateflow-Diagrammen, festgelegt als Inherited
, Discrete
oder Continuous
.
Inherited
Der Eingang vom Simulink-Modell legt fest, wann das Diagramm während einer Simulation aufgeweckt wird.
Wenn Sie Eingangsereignisse für das Diagramm definieren, löst das Signal vom mit dem Auslöser-Port verbundenen Simulink-Block das Diagramm aus. Das Simulink-Signal kann
Rising
,Falling
oderEither
(ansteigend oder fallend) sein oder als Antwort auf einenFunction Call
übermittelt werden. Weitere Informationen finden Sie unter Aktivieren eines Stateflow-Diagramms durch Absenden von Eingangsereignissen.Wenn Sie keine Eingangsereignisse definieren, erbt das Stateflow-Diagramm implizit Auslöser vom Simulink-Modell. Diese impliziten Ereignisse sind die diskreten oder kontinuierlichen Abtastzeiten der Simulink-Signale, die Eingänge für das Diagramm bereitstellen. Wenn Sie Dateneingänge definieren, wird das Diagramm mit der Rate des schnellsten Dateneingangs aufgeweckt. Wenn Sie keine Dateneingänge für das Diagramm definieren, wird das Diagramm wie vom Ausführungsverhalten des übergeordneten Subsystems festgelegt aufgeweckt.
Discrete
Das Stateflow-Diagramm wird aufgeweckt, wenn das Simulink-Modell in regelmäßigen Zeitabständen, die Sie in der Diagrammeigenschaft Sample Time festlegen, ein implizites Ereignis generiert. Andere Blöcke im Simulink-Modell können andere Abtastzeiten aufweisen.
Continuous
Das Stateflow-Diagramm aktualisiert seinen Zustand nur bei größeren Zeitschritten und berechnet Ausgänge und lokale kontinuierliche Variablen bei größeren und kleineren Zeitschritten. Das Diagramm kann Nullübergänge registrieren, was es Simulink-Modellen erlaubt, Stateflow-Diagramme abzutasten, wenn eine Zustandsänderung auftritt. Das Stateflow-Diagramm berechnet Ableitungen der lokalen kontinuierlichen Variablen. Weitere Informationen finden Sie unter Continuous-Time Modeling in Stateflow.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | ChartUpdate |
Werte: | "INHERITED" (Standardeinstellung) | "CONTINUOUS" | "DISCRETE" |
Legen Sie das Zeitintervall fest, nach dem das Diagramm während der Simulation aufgeweckt wird. Der Standardwert gibt an, dass das Diagramm die Abtastzeit von Simulink erbt. Weitere Informationen zum Festlegen der Abtastzeit finden Sie unter Festlegen der Abtastzeit (Simulink).
Verwenden Sie nicht den Parameter Sample Time der Subsystem-Blockparameter. Verwenden Sie stattdessen den Property Inspector.
Abhängigkeiten
Um diesen Parameter zu aktivieren, setzen Sie Update Method auf Discrete
.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | SampleTime |
Werte: | "-1" (Standardeinstellung) | string scalar | character vector |
Datentypen: | string | char |
Legt fest, ob die Nullübergangs-Detektion bei Zustandsübergängen im Diagramm aktiviert werden soll. Weitere Informationen finden Sie unter Continuous-Time Modeling in Stateflow.
Abhängigkeiten
Um diesen Parameter zu aktivieren, setzen Sie Update Method auf Continuous
.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | EnableZeroCrossings |
Werte: | true or 1 (Standardeinstellung) | false or 0 |
Datentypen: | logical |
Legt fest, ob Bit-Operationen in Zustands- und Übergangsaktionen im Diagramm verwendet werden sollen, angegeben als numerische oder logische 1 (wahr) oder 0 (falsch).
Abhängigkeiten
Um diesen Parameter zu aktivieren, setzen Sie Action Language auf C
.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | EnableBitOps |
Werte: | false or 0 (Standardeinstellung) | true or 1 |
Datentypen: | logical |
Legt fest, ob ein Datenausgangs-Port für den aktiven Zustand des Diagramms erstellt werden soll. Weitere Informationen finden Sie unter Monitor State Activity Through Active State Data.
Abhängigkeiten
Um diesen Parameter zu aktivieren, erstellen Sie einen Stateflow-Zustand, eine Zustandsübergangstabelle oder ein atomares Unterdiagramm.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | HasOutputData |
Werte: | false or 0 (Standardeinstellung) | true or 1 |
Datentypen: | logical |
Überwachungsmodus für die Ausgabedaten aktiver Zustände. Weitere Informationen finden Sie unter Monitor State Activity Through Active State Data.
Abhängigkeiten
Um diesen Parameter zu aktivieren, aktivieren Sie Create output for monitoring.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | OutputMonitoringMode |
Werte: | "ChildActivity" (Standardeinstellung) | "LeafStateActivity" |
Name des Datenobjekts des aktiven Zustands für die Zustandsübergangstabelle.
Abhängigkeiten
Um diesen Parameter zu aktivieren, aktivieren Sie Create output for monitoring.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | OutputPortName |
Werte: | "ChartMode" (Standardeinstellung) | string scalar | character vector |
Datentypen: | string | char |
Name des Datenobjekts des aktiven Zustands für die Zustandsübergangstabelle.
Abhängigkeiten
Um diesen Parameter zu aktivieren, aktivieren Sie Create output for monitoring.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | EnumTypeName |
Werte: | "ChartModeType" (Standardeinstellung) | string scalar | character vector |
Datentypen: | string | char |
Ob der Aufzählungsdatentyp für die aktive Zustandsdatenausgabe manuell definiert werden soll. Weitere Informationen finden Sie unter Define State Activity Enumeration Type.
Abhängigkeiten
Um diesen Parameter zu aktivieren, aktivieren Sie Create output for monitoring.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | DoNotAutogenerateEnum |
Werte: | false or 0 (Standardeinstellung) | true or 1 |
Datentypen: | logical |
Erweitert
Legt fest, ob die Zustandskonfiguration des Diagramms zum Zeitpunkt 0 statt bei dem ersten Eingangsereignis initialisiert werden soll. Weitere Informationen finden Sie unter Execution of a Chart at Initialization.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | ExecuteAtInitialization |
Werte: | false or 0 (Standardeinstellung) | true or 1 |
Datentypen: | logical |
Legt fest, ob die Daten um Diagramm bei einem Ganzzahl-Überlauf gesättigt werden. Wenn Sie diesen Parameter deaktivieren, werden die Daten im Diagramm bei einem Ganzzahl-Überlauf umgebrochen. Weitere Informationen finden Sie unter Handle Integer and Enumeration Overflow for Chart Data.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | SaturateOnIntegerOverflow |
Werte: | true or 1 (Standardeinstellung) | false or 0 |
Datentypen: | logical |
Legt fest, ob die Ausgangsdaten jedes Mal, wenn das Diagramm geweckt wird, initialisiert werden sollen.
Wenn Sie diesen Parameter auswählen, setzt das Diagramm seine Ausgangswerte bei jedem Aufwecken des Diagramms zurück, nicht nur zum Zeitpunkt 0. Das Diagramm setzt die Ausgangswerte zurück, wenn ein Funktionsaufruf, ein Kantenauslöser oder ein Takt das Diagramm auslöst. Wenn Sie einen anfänglichen Wert für ein Ausgangs-Datenobjekt festlegen, wird der Ausgang auf diesen Wert zurückgesetzt. Andernfalls wird der Ausgang auf null zurückgesetzt. Wählen Sie diesen Parameter aus, um:
Sicherzustellen, dass alle Ausgänge bei jeder Ausführung der Tabelle definiert sind.
Ein Zwischenspeichern der Ausgänge zu vermeiden, d. h. zu verhindern, dass Ausgänge Werte annehmen, die in vorherigen Ausführungen berechnet wurden.
Bei allen Diagrammausgängen einen sinnvollen anfänglichen Wert bereitzustellen.
Weitere Informationen finden Sie unter Initial value.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | InitializeOutput |
Werte: | true or 1 (Standardeinstellung) | false or 0 |
Datentypen: | logical |
Legt fest, ob das Diagramm Daten variabler Größe unterstützt. Weitere Informationen finden Sie unter Declare Variable-Size Data in Stateflow Charts.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | SupportVariableSizing |
Werte: | true or 1 (Standardeinstellung) | false or 0 |
Datentypen: | logical |
Legt fest, ob Funktionen auf Diagrammebene zu anderen Blöcken im Simulink-Modell exportiert werden sollen. Weitere Informationen finden Sie unter Export Stateflow Functions for Reuse.
Abhängigkeiten
Um diesen Parameter zu aktivieren, fügen Sie Ihrem Diagramm eine Funktion hinzu.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | ExportChartFunctions |
Werte: | false or 0 (Standardeinstellung) | true or 1 |
Datentypen: | logical |
Legt fest, ob aus dem Diagramm exportierte Funktionen im Simulink-Modell global sichtbar sein sollen. Ist diese Eigenschaft aktiviert, können Blöcke im gesamten Modell aus dem Diagramm exportierte Funktionen aufrufen, ohne dass eine qualifizierte Notation benötigt wird.
Abhängigkeiten
Um diesen Parameter zu aktivieren, aktivieren Sie Export chart level functions.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | AllowGlobalAccessToExportedFunctions |
Werte: | false or 0 (Standardeinstellung) | true or 1 |
Datentypen: | logical |
Legt fest, ob Super-Step-Semantik für das Diagramm aktiviert werden soll. Wählen Sie diesen Parameter aus, um es dem Diagramm zu ermöglichen, bei jedem Zeitschritt mehrere Übergänge zu akzeptieren, bis ein stabiler Zustand erreicht wird. Diese Option ist nicht verfügbar, wenn Sie die Diagrammeigenschaft Update method auf Continuous
setzen. Weitere Informationen finden Sie unter Super Step Semantics.
Abhängigkeiten
Um diesen Parameter zu aktivieren, setzen Sie Update Method auf Discrete
.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | EnableNonTerminalStates |
Werte: | false or 0 (Standardeinstellung) | true or 1 |
Datentypen: | logical |
Die maximale Anzahl Übergänge, die in einem Super-Step durchgeführt werden können. Weitere Informationen finden Sie unter Super Step Semantics.
Abhängigkeiten
Um diesen Parameter zu aktivieren, aktivieren Sie Enable super step semantics.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | NonTerminalMaxCounts |
Werte: | 1000 (Standardeinstellung) | positive integer |
Datentypen: | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 |
Aktion, die Stateflow durchführen soll, wenn Super-Step die maximale Anzahl Übergänge in einem Super-Step überschreitet. Weitere Informationen finden Sie unter Super Step Semantics.
Abhängigkeiten
Um diesen Parameter zu aktivieren, aktivieren Sie Enable super step semantics.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | NonTerminalUnstableBehavior |
Werte: | "Proceed" (Standardeinstellung) | "Throw Error" |
Seit R2022b
Ob das Diagramm nicht-skalare Daten mit einer Längendimension 1 als feste Größe behandelt. Wenn Sie diesen Parameter auswählen, behandelt das Diagramm nicht-skalare Daten, die mindestens eine Längendimension 1 haben, als feste Größe, unabhängig davon, ob Sie die Dateneigenschaft Variable size aktivieren. Wenn Sie diesen Parameter deaktivieren, behandelt das Diagramm nicht-skalare Daten mit aktivierter Eigenschaft Variable size als variable Größe.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | TreatDimensionOfLengthOneAsFixedSize |
Werte: | true or 1 (Standardeinstellung) | false or 0 |
Datentypen: | logical |
Legen Sie fest, welche Blockvarianten Stateflow während der Simulation und Codegenerierung analysieren soll. Auf Grundlage der von Ihnen ausgewählten Optionen ermittelt Stateflow, ob der generierte Code nur die aktive Auswahl oder sowohl aktive als auch inaktive Auswahlen enthalten muss.
update diagram analyze all choices
— Wenn Sie diese Option auswählen, analysiert Stateflow sowohl aktive als auch inaktive Auswahlen auf Inkompatibilitäten bei den Signalattributen und generiert Code nur für die aktive Auswahl.code compile
— Wenn Sie diese Option auswählen, analysiert Stateflow sowohl die aktiven als auch inaktiven Auswahlen von Varianten-Übergängen und generiert Code sowohl für die aktiven als auch inaktiven Auswahlen. Die Auswahlen sind in die bedingten C Präprozessor-Ausdrücke #if und #endif eingeschlossen, die bedingt kompiliert werden, wenn Sie den generierten Code kompilieren.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | VariantActivationTime |
Werte: | "update diagram analyze all choices" (Standardeinstellung) | "code compile" |
Aktionssprache, die zur Programmierung des Diagramms verwendet werden soll, angegeben als MATLAB
oder C
. Weitere Informationen finden Sie unter Unterschiede zwischen MATLAB und C als Aktionssprache-Syntax.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | ActionLanguage |
Werte: | "MATLAB" (Standardeinstellung) | "C" |
Von dem Diagramm implementierte Zustandsmaschinen-Semantik, festgelegt als Classic
, Mealy
oder Moore
. Weitere Informationen finden Sie unter Überblick über Mealy- und Moore-Automaten.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | StateMachineType |
Werte: | "Classic" (Standardeinstellung) | "Mealy" | "Moore" |
Festkomma-Eigenschaften
Geerbte Simulink-Signale, die als Fixed-Point Designer™ fi
-Objekte behandelt werden sollen, festgelegt als einer dieser Werte:
Fixed-point
— Das Diagramm behandelt alle Festkomma-Eingänge alsfi
-Objekte.Fixed-point & Integer
— Das Diagramm behandelt alle Festkomma- und Ganzzahl-Eingänge alsfi
-Objekte.
Abhängigkeiten
Um diesen Parameter zu aktivieren, setzen Sie Action Language auf MATLAB
.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | TreatAsFi |
Werte: | "Fixed-point" (Standardeinstellung) | "Fixed-point & Integer" |
fimath
-Standardeigenschaften des Diagramms, festgelegt als einer dieser Werte:
Same as MATLAB
— Das Diagramm verwendet dieselbenfimath
-Objekteigenschaften wie das aktuellefimath
-Standardobjekt. Das Textfeld wird abgedunkelt und zeigt das aktuelle globalefimath
-Objekt schreibgeschützt an.Specify other
— Legen Sie Ihr eigenesfimath
-Objekt im Textfeld mithilfe einer von zwei Methoden fest:Erstellen Sie das
fimath
-Objekt innerhalb des Textfelds.Erstellen Sie das
fimath
-Objekt im MATLAB- oder Modell-Workspace und geben Sie den Variablennamen in das Textfeld ein. Wenn Sie diese Option verwenden und planen, Ihr Modell mit anderen Personen zu teilen, legen Sie die Variable im Modell-Workspace fest.
Weitere Informationen finden Sie unter fimath Object Construction (Fixed-Point Designer).
Abhängigkeiten
Um diesen Parameter zu aktivieren, setzen Sie Action Language auf MATLAB
.
Programmatische Verwendung
Um den Diagramm-Parameterwert programmatisch festzulegen, greifen Sie auf das Stateflow.Chart
-Objekt des Diagramms zu und ändern Sie die Objekteigenschaft mithilfe der Punktschreibweise.
Parameter: | EmlDefaultFimath |
Werte: | "Same as MATLAB Default" (Standardeinstellung) | "Other:UserSpecified" |
Erweiterte Fähigkeiten
C/C++ Codegenerierung
Generieren von C und C++ Code mit Simulink® Coder™.
HDL Coder™ bietet zusätzliche Konfigurationsoptionen, die sich auf die HDL-Implementierung und die synthetisierte Logik auswirken.
Dieser Block verfügt über eine Standard-HDL-Architektur.
Zum Erzeugen eines Ausgangsports im HDL-Code, der den aktiven Zustand anzeigt, wählen Sie im Fenster „Properties“ des Diagramms Create output for monitoring. Die Ausgabe ist ein Aufzählungsdatentyp. Siehe Vereinfachen von Stateflow-Diagrammen durch Integration aktiver Zustände.
Mit der Blockeigenschaft OutputPipeline (HDL Coder) können Sie ein Ausgaberegister einfügen, das die Diagrammausgabe um einen Simulationszyklus verzögert.
ClockDrivenOutput | Aktiviert taktgesteuerte Ausgänge, um zu verhindern, dass kombinatorische Logik den Ausgang steuert, und um eine sofortige Aktualisierung des Ausgangs zu ermöglichen, wenn sich das Taktsignal und der Zustand ändern. Der Standardwert ist |
ConstMultiplierOptimization | Kanonische vorzeichenbehaftete Ziffer (CSD) oder faktorisierte CSD-Optimierung. Der Standardwert ist |
ConstrainedOutputPipeline | Anzahl der Register, die an den Ausgängen platziert werden sollen, indem vorhandene Verzögerungen innerhalb Ihres Entwurfs verschoben werden. Beim verteilten Pipelining werden diese Register nicht umverteilt. Der Standardwert ist |
DistributedPipelining | Pipeline-Registerverteilung oder Register-Retiming. Der Standardwert ist |
GuardIndexVariables | Legt fest, ob Array-Indizes aus bedingten Ausdrücken extrahiert werden sollen. Wenn Sie bestimmte Optimierungen wie RAM-Zuordnung, Schleifen-Streaming, Teilen usw. aktivieren, werden Ausdrücke aus den Array-Indizes verschoben. Für den Ausdruck wird eine temporäre Variable erstellt, was während der Simulation zu einem Fehler „Index Out of Bounds“ führen kann. Der Standardwert ist |
InputPipeline | Anzahl der Eingangs-Pipelinestufen, die in den generierten Code einzufügen sind. Verteiltes Pipelining und eingeschränktes Ausgangs-Pipelining können diese Register verschieben. Der Standardwert ist |
InstantiateFunctions | Eine VHDL® |
LoopOptimization | Schleifen entrollen, in Streams ausführen oder nicht optimieren. Der Standardwert ist |
MapPersistentVarsToRAM | Persistente Arrays im RAM abbilden. Der Standardwert ist |
OutputPipeline | Anzahl der Ausgangs-Pipelinestufen, die in den generierten Code einzufügen sind. Verteiltes Pipelining und eingeschränktes Ausgangs-Pipelining können diese Register verschieben. Der Standardwert ist |
ResetType | Unterdrücken der Erzeugung von Reset-Logik. Der Standardwert ist |
SharingFactor | Anzahl der funktional gleichwertigen Ressourcen, die einer einzelnen geteilten Ressource zugeordnet werden sollen. Der Standardwert ist 0. Siehe auch Resource Sharing (HDL Coder). |
Der Block wirkt an diesen HDL-Optimierungen mit, um Geschwindigkeit und Fläche zu optimieren.
Optimierung von Geschwindigkeit und Fläche
Optimierung | Beschreibung |
---|---|
Distributed Pipelining (HDL Coder) | Distributed Pipelining oder Register-Retiming ist eine Geschwindigkeitsoptimierung, die bestehende Verzögerungen in einem Entwurf verschiebt, um den kritischen Pfad zu reduzieren, wobei das Funktionsverhalten bewahrt wird. |
Resource Sharing (HDL Coder) | Resource Sharing ist eine Flächenoptimierung, bei der HDL Coder mehrere funktional äquivalente Ressourcen identifiziert und durch eine einzige Ressource ersetzt. |
Understand Delay Balancing in HDL Coder (HDL Coder) | Wenn Optimierungen oder Block-Implementierungsoptionen Verzögerungen entlang dem kritischen Pfad in einem Modell erzeugen, erkennt Delay Balancing das Entstehen neuer Verzögerungen entlang einem Pfad und fügt daraufhin entsprechende Verzögerungen in den anderen Pfaden ein. |
Clock-Rate Pipelining (HDL Coder) | Clock-Rate Pipelining ist ein Optimierungs-Framework in HDL Coder, das es anderen Geschwindigkeits- und Flächenoptimierungen erlaubt, Latenzzeit mit der Taktfrequenz hinzuzufügen. |
Adaptive Pipelining (HDL Coder) | Adaptive Pipelining ist eine Optimierung, die Muster oder Kombinationen von Blöcken mit Registern erstellt, die die erzielbare Taktfrequenz verbessern und die Flächennutzung auf der FPGA-Platine reduziert, indem Pipeline-Register den Blöcken Ihres Entwurfs hinzugefügt werden. |
Critical Path Estimation (Schätzung des kritischen Pfads) (HDL Coder) | Verwenden Sie Critical Path Estimation, um den wahrscheinlichsten kritischen Pfad in Ihrem Entwurf schnell zu identifizieren. Diese Schätzung des kritischen Pfades beschleunigt den iterativen Prozess zum Auffinden des kritischen Pfades. Mehr über die bei der Schätzung des kritischen Pfads charakterisierten Blöcke erfahren Sie unter Characterized Blocks (HDL Coder). |
Dieser Block unterstützt die Codegenerierung für komplexe Signale.
Weitere Informationen zu den Einschränkungen bei der Verwendung von Diagrammen finden Sie unter Introduction to Stateflow HDL Code Generation (HDL Coder).
Wenn Sie Optimierungen anwenden, unterliegt der Block den folgenden Beschränkungen:
Ein Stateflow-Diagramm, dessen Eigenschaft State Machine Type auf
Moore
gesetzt ist, unterstützt keine HDL-Optimierungen.HDL-Optimierungen werden bei Stateflow-Diagrammen mit Trigger-Ports nicht unterstützt.
UseExternalDefinition | Unterdrückt die Blockdefinition in generiertem Code. Der Standardwert ist |
Festkommakonvertierung
Entwerfen und Simulieren von Festkommasystemen mit Fixed-Point Designer™.
Versionsverlauf
Eingeführt vor R2006aIn einer zukünftigen Version wird die Eigenschaft User-specified state/transition execution order entfernt. Diese Eigenschaft gilt nur für Diagramme, die C als Aktionssprache verwenden.
Wenn Sie diese Eigenschaft aktivieren, führen Diagramme Übergänge und parallele Zustände in der Reihenfolge der Erstellung aus. Zudem können Sie die Ausführungsreihenfolge manuell festlegen.
Wenn Sie diese Eigenschaft deaktivieren, führen Diagramme Übergänge und parallele Zustände gemäß einer von der physischen Position definierten, impliziten Reihenfolge aus.
Übergänge werden folgendermaßen ausgeführt:
Die Hierarchieebene des übergeordneten Elements jedes Übergangs.
Die Kennzeichnungen des Übergangs in dieser Reihenfolge:
Kennzeichnungen mit Ereignissen und Bedingungen.
Kennzeichnungen mit Ereignissen.
Kennzeichnungen mit Bedingungen.
Keine Kennzeichnung.
Die Winkelposition der Übergangsquelle. Der Übergang mit der niedrigsten Position auf der Uhr hat die höchste Priorität. Ein Übergang auf Position 2 Uhr hat beispielsweise eine höhere Priorität als ein Übergang auf Position 4 Uhr. Ein Übergang auf Position 12 Uhr hat die niedrigste Priorität.
Parallele Zustände werden folgendermaßen ausgeführt:
Von oben nach unten.
Von links nach rechts.
Um sicherzustellen, dass Ihre Diagramme mit impliziter Reihenfolge kompatibel bleiben, aktivieren Sie die Eigenschaft User-specified state/transition execution order.
Um ein Diagramm in eine Zustandsübergangstabelle umzuwandeln, verwenden Sie die Funktion convertToSTT
.
Mit der neuen Eigenschaft Treat dimensions of length 1 as fixed size können Sie angeben, wie Diagramme nicht-skalare Daten behandeln, wenn mindestens eine Längendimension 1 hat. Vor R2023a wurden in Diagrammen nicht-skalare Daten mit mindestens einer Längendimension 1 als feste Größe behandelt, unabhängig davon, ob Sie die Dateneigenschaft Variable size aktiviert hatten.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Website auswählen
Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .
Sie können auch eine Website aus der folgenden Liste auswählen:
So erhalten Sie die bestmögliche Leistung auf der Website
Wählen Sie für die bestmögliche Website-Leistung die Website für China (auf Chinesisch oder Englisch). Andere landesspezifische Websites von MathWorks sind für Besuche von Ihrem Standort aus nicht optimiert.
Amerika
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)