Chart
Implementare la logica di controllo con macchina a stato finito
Librerie:
Stateflow
Descrizione
Il blocco Chart rappresenta graficamente una macchina a stato finito. In un grafico Stateflow®, gli stati e le transizioni costituiscono i blocchi di costruzione di base di un sistema logico modale sequenziale. Gli stati corrispondono alle modalità operative mentre le transizioni rappresentano il passaggio del sistema da una modalità operativa a un'altra. Per ulteriori informazioni, vedere Model a Finite State Machine.
Per implementare la logica di controllo, i grafici Stateflow possono utilizzare il linguaggio di azione di MATLAB® o il linguaggio di azione C. Per ulteriori informazioni, vedere Differences Between MATLAB and C as Action Language Syntax.
Esempi
Simplify Stateflow Charts by Incorporating Active State Output
Simplify the design of a Stateflow chart by adding active state output data. For more information, see Monitor State Activity Through Active State Data.
Model a Fitness Tracker
Implement a fitness tracker by using temporal logic and messages.
Porte
Input
Quando si creano i dati di input nel grafico Stateflow utilizzando il riquadro Symbols, Stateflow crea una porta di input corrispondente sul blocco Chart.
Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string
Output
Quando si creano i dati di output nel grafico Stateflow utilizzando il riquadro Symbols, Stateflow crea una porta di output corrispondente sul blocco Chart.
Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string
Parametri
Per modificare i parametri del blocco in modo interattivo, utilizzare il Property Inspector. Dalla barra degli strumenti di Simulink®, nella scheda Simulation, nella galleria Prepare, selezionare Property Inspector.
Nota
I grafici dispongono inoltre di parametri del blocco Subsystem (Simulink) a cui è possibile accedere facendo clic con il tasto destro del mouse sul grafico e selezionando Block Parameters (Subsystem). Tuttavia, l'aggiornamento di questi parametri non è consigliato.
Metodo per aggiornare o attivare un grafico Stateflow, specificato come Inherited, Discrete o Continuous.
InheritedL'input dal modello di Simulink determina il momento in cui il grafico si attiva durante una simulazione.
Se si definiscono degli eventi di input per il grafico, il segnale proveniente dal blocco Simulink collegato alla porta di attivazione determina l'avvio del grafico. Il segnale di Simulink può essere
Rising,FallingoEither(ascendente e discendente) oppure una risposta aFunction Call. Per ulteriori informazioni, vedere Activate a Stateflow Chart by Sending Input Events.Se non si definiscono gli eventi input, il grafico Stateflow eredita implicitamente i trigger dal modello di Simulink. Questi eventi impliciti sono i tempi di campionamento discreti o continui dei segnali di Simulink che forniscono gli input al grafico. Se si definiscono gli input dei dati, il grafico si attiva alla velocità di input dei dati più rapida. Se non si definisce alcun input dei dati per il grafico, lo stesso si attiva in base al comportamento di esecuzione del sottosistema genitore.
DiscreteIl grafico Stateflow si attiva quando il modello di Simulink genera un evento implicito a intervalli di tempo regolari specificati nelle proprietà del grafico Tempo di campionamento. Altri blocchi nel modello di Simulink possono avere tempi di campionamento diversi.
ContinuousIl grafico Stateflow aggiorna il proprio stato solo durante i passi temporali principali e calcola gli output e le variabili continue locali durante i passi temporali principali e secondari. Il grafico può registrare gli zero-crossing, consentendo in questo modo ai modelli di Simulink di campionare i grafici Stateflow ogni volta che si verificano cambiamenti di stato. Il grafico Stateflow calcola le derivate per le variabili continue locali. Per ulteriori informazioni, vedere Continuous-Time Modeling in Stateflow.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | ChartUpdate |
| Valori: | "INHERITED" (predefinito) | "CONTINUOUS" | "DISCRETE" |
Specificare l'intervallo di tempo in cui il grafico si attiva durante la simulazione. Il valore predefinito indica che il grafico eredita il tempo di campionamento da Simulink. Per ulteriori informazioni sulla definizione del tempo di campionamento, vedere Specifica del tempo di campionamento (Simulink).
Non utilizzare il parametro Tempo di campionamento nei parametri del blocco Subsystem. Utilizzare invece il Property Inspector.
Dipendenze
Per abilitare questo parametro, impostare Update method (Metodo di aggiornamento) su Discrete.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | SampleTime |
| Valori: | "-1" (predefinito) | string scalar | character vector |
| Tipi di dati: | string | char |
Abilitare o meno il rilevamento dello zero-crossing sulle transizioni di stato nel grafico. Per ulteriori informazioni, vedere Continuous-Time Modeling in Stateflow.
Dipendenze
Per abilitare questo parametro, impostare Update method (Metodo di aggiornamento) su Continuous.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | EnableZeroCrossings |
| Valori: | true or 1 (predefinito) | false or 0 |
| Tipi di dati: | logical |
Utilizzare o meno operazioni su bit nelle azioni di stato e transizione nel grafico, specificate come valore numerico o logico 1 (vero) o 0 (falso).
Dipendenze
Per abilitare questo parametro, impostare Action language (Linguaggio di azione) su C.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | EnableBitOps |
| Valori: | false or 0 (predefinito) | true or 1 |
| Tipi di dati: | logical |
Creare o meno una porta di output dei dati per il grafico attivo. Per ulteriori informazioni, vedere Monitor State Activity Through Active State Data.
Dipendenze
Per abilitare questo parametro, creare uno stato Stateflow, una tabella di transizione di stato o un grafico atomico secondario.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | HasOutputData |
| Valori: | false or 0 (predefinito) | true or 1 |
| Tipi di dati: | logical |
Modalità di monitoraggio dei dati dell'output dello stato attivo. Per ulteriori informazioni, vedere Monitor State Activity Through Active State Data.
Dipendenze
Per abilitare questo parametro, selezionare Create output for monitoring (Generazione di output per il monitoraggio).
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | OutputMonitoringMode |
| Valori: | "ChildActivity" (predefinito) | "LeafStateActivity" |
Nome dell'oggetto dati dello stato attivo per la tabella di transizione dello stato.
Dipendenze
Per abilitare questo parametro, selezionare Create output for monitoring (Generazione di output per il monitoraggio).
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | OutputPortName |
| Valori: | "ChartMode" (predefinito) | string scalar | character vector |
| Tipi di dati: | string | char |
Nome dell'oggetto dati dello stato attivo per la tabella di transizione dello stato.
Dipendenze
Per abilitare questo parametro, selezionare Create output for monitoring (Generazione di output per il monitoraggio).
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | EnumTypeName |
| Valori: | "ChartModeType" (predefinito) | string scalar | character vector |
| Tipi di dati: | string | char |
Definire manualmente o meno il tipo di dato enumerato per l'output dei dati dello stato attivo. Per ulteriori informazioni, vedere Define State Activity Enumeration Type.
Dipendenze
Per abilitare questo parametro, selezionare Create output for monitoring (Generazione di output per il monitoraggio).
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | DoNotAutogenerateEnum |
| Valori: | false or 0 (predefinito) | true or 1 |
| Tipi di dati: | logical |
Avanzato
Inizializzare o meno la configurazione dello stato del grafico al tempo zero anziché al primo evento di input. Per ulteriori informazioni, vedere Execution of a Chart at Initialization.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | ExecuteAtInitialization |
| Valori: | false or 0 (predefinito) | true or 1 |
| Tipi di dati: | logical |
Se i dati nel grafico saturano o meno in caso di overflow dell'intero. Se si deseleziona questo parametro, i dati nel grafico si avvolgono sull'overflow dell'intero. Per ulteriori informazioni, vedere Handle Integer and Enumeration Overflow for Chart Data.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | SaturateOnIntegerOverflow |
| Valori: | true or 1 (predefinito) | false or 0 |
| Tipi di dati: | logical |
Inizializzare o meno i dati di output ogni volta che il grafico si attiva.
Quando si seleziona questo parametro, il grafico azzera i propri valori di output ogni volta che si attiva, non solo al tempo 0. Il grafico azzera i valori di output ogni volta che viene attivato da una chiamata di funzione, un trigger del fronte o da impulsi di clock. Se si imposta un valore iniziale per un oggetto dati di output, l'output si reimposta su tale valore. In caso contrario, l'output si reimposta su zero. Selezionare questo parametro per:
Assicurare che tutti gli output siano definiti ad ogni esecuzione del grafico.
Impedire il mantenimento degli output, ossia impedire che vengano mantenuti i valori degli output calcolati nelle esecuzioni precedenti.
Fornire a tutti gli output del grafico un valore iniziale significativo.
Per ulteriori informazioni, vedere Initial value.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | InitializeOutput |
| Valori: | true or 1 (predefinito) | false or 0 |
| Tipi di dati: | logical |
Se il grafico supporta o meno dati di dimensioni variabili. Per ulteriori informazioni, vedere Declare Variable-Size Data in Stateflow Charts.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | SupportVariableSizing |
| Valori: | true or 1 (predefinito) | false or 0 |
| Tipi di dati: | logical |
Esportare o meno le funzioni a livello di grafico in altri blocchi del modello di Simulink. Per ulteriori informazioni, vedere Export Stateflow Functions for Reuse.
Dipendenze
Per abilitare questo parametro, aggiungere una funzione al grafico.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | ExportChartFunctions |
| Valori: | false or 0 (predefinito) | true or 1 |
| Tipi di dati: | logical |
Se le funzioni esportate dal grafico sono visibili globalmente o meno nel modello di Simulink. Quando questa proprietà è abilitata, i blocchi in tutto il modello possono richiamare funzioni esportate dal grafico senza utilizzare la notazione qualificata.
Dipendenze
Per abilitare questo parametro, selezionare Export chart level functions (Esporta funzioni a livello di grafico).
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | AllowGlobalAccessToExportedFunctions |
| Valori: | false or 0 (predefinito) | true or 1 |
| Tipi di dati: | logical |
Abilitare o meno la semantica super-step per il grafico. Selezionare questo parametro per consentire al grafico di effettuare più transizioni in ogni passo temporale fino al raggiungimento di uno stato stabile. Questa opzione non è disponibile quando si imposta la proprietà del grafico Update method su Continuous. Per ulteriori informazioni, vedere Super Step Semantics.
Dipendenze
Per abilitare questo parametro, impostare Update method (Metodo di aggiornamento) su Discrete.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | EnableNonTerminalStates |
| Valori: | false or 0 (predefinito) | true or 1 |
| Tipi di dati: | logical |
Il numero massimo di transizioni che possono essere completate in un unico super-step. Per ulteriori informazioni, vedere Super Step Semantics.
Dipendenze
Per abilitare questo parametro, selezionare Enable super step semantics (Abilita la semantica super-step).
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | NonTerminalMaxCounts |
| Valori: | 1000 (predefinito) | positive integer |
| Tipi di dati: | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 |
Azione che Stateflow deve eseguire nel caso in cui il super-step superi il numero massimo di transizioni consentite in un unico super-step. Per ulteriori informazioni, vedere Super Step Semantics.
Dipendenze
Per abilitare questo parametro, selezionare Enable super step semantics (Abilita la semantica super-step).
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | NonTerminalUnstableBehavior |
| Valori: | "Proceed" (predefinito) | "Throw Error" |
Da R2022b
Se il grafico tratta o meno i dati non scalari con una dimensione di lunghezza 1 come a dimensione fissa. Quando si seleziona questo parametro, il grafico tratta i dati non scalari che hanno almeno una dimensione di lunghezza 1 come a dimensione fissa, indipendentemente dal fatto che la proprietà dei dati Variable size sia abilitata o meno. Quando si deseleziona questo parametro, il grafico tratta i dati non scalari con la proprietà Variable size abilitata come a dimensione variabile.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | TreatDimensionOfLengthOneAsFixedSize |
| Valori: | true or 1 (predefinito) | false or 0 |
| Tipi di dati: | logical |
Specificare quali sono le varianti del blocco che Stateflow analizza durante la simulazione e la generazione di codice. In base all'opzione scelta, Stateflow determina se il codice generato deve contenere solo la scelta attiva o entrambe le scelte, attiva e inattiva.
update diagram analyze all choices: quando si seleziona questa opzione Stateflow analizza sia le scelte attive che quelle inattive per individuare eventuali incompatibilità negli attributi del segnale e genera codice solo per la scelta attiva.code compile: quando si seleziona questa opzione Stateflow analizza sia le scelte attive che quelle inattive delle transizioni delle varianti e genera codice sia per le scelte attive che per quelle inattive. Le scelte sono racchiuse nelle dichiarazioni condizionali C #if e #endif del preprocessore C che vengono compilate in modo condizionale quando si compila il codice generato.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | VariantActivationTime |
| Valori: | "update diagram analyze all choices" (predefinito) | "code compile" |
Linguaggio di azione da utilizzare per programmare il grafico, specificato come MATLAB o C. Per ulteriori informazioni, vedere Differences Between MATLAB and C as Action Language Syntax.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | ActionLanguage |
| Valori: | "MATLAB" (predefinito) | "C" |
Semantica della macchina a stati implementata dal grafico, specificata come Classic, Mealy o Moore. Per ulteriori informazioni, vedere Overview of Mealy and Moore Machines.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | StateMachineType |
| Valori: | "Classic" (predefinito) | "Mealy" | "Moore" |
Proprietà in virgola fissa
Segnali Simulink ereditati da trattare come oggetti Fixed-Point Designer™ fi, specificati come uno dei seguenti valori:
Fixed-point: il grafico tratta tutti gli input in virgola fissa come oggettifi.Fixed-point & Integer: il grafico tratta tutti gli input in virgola fissa e interi come oggettifi.
Dipendenze
Per abilitare questo parametro, impostare Action language (Linguaggio di azione) su MATLAB.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | TreatAsFi |
| Valori: | "Fixed-point" (predefinito) | "Fixed-point & Integer" |
Proprietà fimath predefinite per il grafico, specificate come uno dei seguenti valori:
Same as MATLAB: il grafico utilizza le stesse proprietà dell'oggettofimathdell'oggettofimathpredefinito attuale. La casella di testo è disattivata e visualizza l'oggetto globalefimathattuale in modalità di sola lettura.Specify other: specificare il proprio oggettofimathnella casella di testo in uno dei due modi seguenti:Costruire l'oggetto
fimathall'interno della casella di testo.Costruire l'oggetto
fimathnel workspace di MATLAB o del modello, quindi inserire il nome della variabile nella casella di testo. Se si utilizza questa opzione e si intende condividere il modello con altri, definire la variabile nel workspace del modello.
Per ulteriori informazioni, vedere fimath Object Construction (Fixed-Point Designer).
Dipendenze
Per abilitare questo parametro, impostare Action language (Linguaggio di azione) su MATLAB.
Utilizzo programmatico
Per impostare il valore del parametro del grafico in modo programmatico, accedere all'oggetto Stateflow.Chart del grafico e modificare la proprietà dell'oggetto utilizzando la notazione a punto.
| Parametro: | EmlDefaultFimath |
| Valori: | "Same as MATLAB Default" (predefinito) | "Other:UserSpecified" |
Funzionalità estese
Generazione di codice C/C++
Genera codice C e C++ con Simulink® Coder™.
HDL Coder™ fornisce ulteriori opzioni di configurazione che influiscono sull'implementazione HDL e sulla logica sintetizzata.
Questo blocco presenta un'architettura HDL predefinita.
Per generare una porta di output nel codice HDL che mostri lo stato attivo, nella finestra proprietà del grafico selezionare Create output for monitoring. L'output è un tipo di dati enumerati. Vedere Simplify Stateflow Charts by Incorporating Active State Output.
Per inserire un registro di output che ritardi l'output del grafico da un ciclo di simulazione, utilizzare la proprietà del blocco OutputPipeline (HDL Coder).
| ClockDrivenOutput | Abilitare gli output guidati dal clock per impedire alla logica combinatoria di pilotare l'output e per consentire un aggiornamento immediato al cambiamento del segnale del temporizzatore e dello stato. Per impostazione predefinita è impostato su |
| ConstMultiplierOptimization | Cifra canonica firmata (CSD) o ottimizzazione CSD fattorizzata. Per impostazione predefinita è impostato su |
| ConstrainedOutputPipeline | Numero di registri da posizionare sugli output spostando i ritardi esistenti nel progetto. La pipelining distribuita non ridistribuisce questi registri. Per impostazione predefinita è impostato su |
| DistributedPipelining | Distribuzione del registro della pipeline o nuova distribuzione temporale del registro. Per impostazione predefinita è impostato su |
| GuardIndexVariables | Specificare se spostare o meno gli indici dell'array fuori dalle dichiarazioni condizionali. Quando si abilitano determinate ottimizzazioni quali RAM Mapping, loop streaming, condivisione e così via, le espressioni vengono spostate fuori dagli indici dell'array. Viene creata una variabile temporanea per l'espressione che potrebbe generare un errore di indice fuori limite durante la simulazione. Per impostazione predefinita è impostato su |
| InputPipeline | Numero di stadi della pipeline di input da inserire nel codice generato. La pipelining distribuita e la pipelining di output vincolata possono spostare questi registri. Per impostazione predefinita è impostato su |
| InstantiateFunctions | Generare una VHDL® |
| LoopOptimization | Srotolare, trasmettere o non ottimizzare i loop. Per impostazione predefinita è impostato su |
| MapPersistentVarsToRAM | Mappare gli array persistenti nella RAM. Per impostazione predefinita è impostato su |
| OutputPipeline | Numero di stadi della pipeline di output da inserire nel codice generato. La pipelining distribuita e la pipelining di output vincolata possono spostare questi registri. Per impostazione predefinita è impostato su |
| ResetType | Sopprime la generazione della logica di ripristino. Per impostazione predefinita è impostato su |
| SharingFactor | Numero di risorse funzionalmente equivalenti da mappare su una singola risorsa condivisa. Per impostazione predefinita è impostato su 0. Vedere inoltre Resource Sharing (HDL Coder). |
Il blocco partecipa a queste ottimizzazioni HDL per ottimizzare la velocità e l'area.
Ottimizzazione della velocità e dell'area
| Ottimizzazione | Descrizione |
|---|---|
| Distributed Pipelining (HDL Coder) | Il pipelining distribuito o ri-sincronizzazione dei registri, è un'ottimizzazione della velocità che sposta i ritardi esistenti in un progetto per ridurre il percorso critico, preservando al contempo il comportamento funzionale. |
| Resource Sharing (HDL Coder) | La condivisione delle risorse è un'ottimizzazione dell'area in cui HDL Coder identifica più risorse funzionalmente equivalenti e le sostituisce con un'unica risorsa. |
| Understand Delay Balancing in HDL Coder (HDL Coder) | Quando le ottimizzazioni o le opzioni di implementazione dei blocchi introducono ritardi lungo il percorso critico in un modello, il bilanciamento del ritardo rileva l'introduzione di nuovi ritardi lungo un percorso e inserisce quindi i ritardi corrispondenti sugli altri percorsi. |
| Clock-Rate Pipelining (HDL Coder) | Il pipelining alla frequenza di clock è un framework di ottimizzazione in HDL Coder che consente ad altre ottimizzazioni di velocità e area di introdurre latenza alla frequenza di clock. |
| Adaptive Pipelining (HDL Coder) | L'ottimizzazione del pipelining adattivo crea modelli o combinazioni di blocchi con registri in grado di migliorare la frequenza di clock raggiungibile e ridurre l'utilizzo di spazio sulle schede FPGA inserendo registri di pipeline nei blocchi del progetto. |
| Stima del percorso critico (HDL Coder) | Per identificare rapidamente il percorso critico più probabile nel progetto, utilizzare Stima del percorso critico. La stima del percorso critico accelera il processo iterativo di individuazione del percorso critico. Per conoscere i blocchi caratterizzati nella stima del percorso critico, vedere Characterized Blocks (HDL Coder). |
Questo blocco supporta la generazione di codice per segnali complessi.
Per saperne di più sulle limitazioni in merito all'utilizzo dei grafici, vedere Introduction to Stateflow HDL Code Generation (HDL Coder).
Quando si applicano le ottimizzazioni, il blocco presenta le seguenti limitazioni:
Il grafico Stateflow con la proprietà State Machine Type impostata su
Moorenon supporta le ottimizzazioni HDL.Le ottimizzazioni HDL non sono supportate per il grafico Stateflow che ha una porta Trigger.
| UseExternalDefinition | Sopprimere la definizione del blocco nel codice generato. Per impostazione predefinita è impostato su |
Conversione a virgola fissa
Progetta e simula sistemi a virgola fissa con Fixed-Point Designer™.
Cronologia versioni
Introduzione prima di R2006aIn una release futura, la proprietà User-specified state/transition execution order verrà rimossa. Questa proprietà si applica solo ai grafici che utilizzano C come linguaggio di azione.
Quando si abilita questa proprietà, i grafici eseguono le transizioni e gli stati paralleli nell'ordine in cui sono stati creati. È inoltre possibile determinare manualmente l'ordine di esecuzione.
Quando si disabilita questa proprietà, i grafici eseguono le transizioni e gli stati paralleli secondo un ordine implicito definito dalla posizione fisica.
Le transizioni vengono eseguite in base a:
Il livello di gerarchia del genitore di ciascuna transizione.
Le etichette della transizione, in questo ordine:
Etichette con eventi e condizioni.
Etichette con eventi.
Etichette con condizioni.
Nessuna etichetta.
La posizione angolare della superficie della sorgente della transizione. La transizione con la posizione di clock più piccola ha la priorità più alta. Ad esempio, una transizione con posizione di clock 2 ha una priorità più alta rispetto a una transizione con posizione di clock 4. Una transizione con posizione sorgente di clock 12 ha la priorità più bassa.
Gli stati paralleli vengono eseguiti in questo ordine:
Dall'alto verso il basso.
Da sinistra verso destra.
Per assicurare che i grafici ordinati implicitamente rimangano compatibili, abilita la proprietà User-specified state/transition execution order.
Per convertire un grafico in una tabella di transizione di stato, utilizzare la funzione convertToSTT.
Con la nuova proprietà Treat dimensions of length 1 as fixed size, è possibile specificare come i grafici trattano i dati non scalari quando almeno una dimensione ha lunghezza 1. Prima della release R2023a, i grafici trattavano i dati non scalari con almeno una dimensione di lunghezza 1 come a dimensione fissa, indipendentemente dal fatto che la proprietà dei dati Variable size fosse stata abilitata o meno.
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.
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- 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)

