En raison d’un problème dans le jeu de blocs avancés DSP Builder version 17.1 et antérieure, vous pouvez voir les erreurs suivantes si Simulink® exécute d’autres blocs de bus avant le bloc BusStimulos.
- L’activation de l’écriture sur le bloc Bus Déprecated BusSy ne s’imposera jamais
- Les autres sorties de tous les blocs de bus se produisent à un cycle d’horloge ultérieurement.
Dans DSP Builder, les blocs de bus (par ex., le bloc RegField) dépendent du bloc BusStim ppcs : il y a un fil décroiteur entre eux. Par conséquent, Simulink doit exécuter les blocs BusStimulos avant tout autre bloc de bus. Cependant, Simulink ne sait pas sur cette dépendance, Simulink est donc libre d’exécuter ces blocs dans un ordre arbitraire.
Il est possible que l’ordre d’exécution des blocs de bus change en raison de modifications non resserribles de la conception. Par exemple, il est possible qu’une conception reposant sur la latence du bus pour la vérification automatique commence à échouer car vous avez ajouté un bloc d’étendue supplémentaire. Il est possible que le bloc supplémentaire modifie l’ordre d’exécution en plaçant un bloc RegField avant le bloc BusStimulos, modifiant ainsi la latence entre eux.
Pour contourner ce problème, définissez la priorité du bloc BusStimulos à une valeur inférieure au bloc de sous-système contenant la conception DSP Builder. Par exemple, définissez la priorité du bloc BusStimulos sur 0 et le bloc de sous-système DSPBA à 1. Simulink doit exécuter le bloc BusStimulos avant tout ce qui se trouve dans le sous-système, ce qui garantit un fonctionnement cohérent du bus.
Pour afficher l’ordre d’exécution : dans la barre du menu principal, sélectionnez Display-> Blocks -> Sorted Execution Order
Pour définir la priorité d’un bloc : cliquez avec le bouton droit sur le bloc, sélectionnez Propriétés : le champ Priorité se trouve dans l’onglet Général
Remarque : les valeurs de priorité sont similaires à l’ordre d’exécution, en ce qu’une valeur inférieure signifie d’abord exécuter. Cependant, les valeurs de priorité diffèrent de l’ordre d’exécution en ce qu’elles ne couvrent pas les sous-systèmes. C’est la raison pour laquelle on doit définir la priorité sur le sous-système DSP Builder plutôt que sur les blocs de bus qui y sont contenus.