Quelle est la différence entre la modélisation de flux de données structurelles et comportementales dans Verilog?


Meilleure réponse

Dans la modélisation de flux de données structurelles, les fonctions de conception numérique sont définies à laide de composants tels quun onduleur , un MUX, un additionneur, un décodeur, des portes logiques numériques de base etc. Cest comme connecter et disposer différentes parties de circuits disponibles pour implémenter une fonction que vous recherchez.

Implémentation du demi-additionneur à laide modélisation des flux de données: entrées A, B; somme de sortie, report; xor (.in1 (A), .in2 (B), .out (somme)); et (.in1 (A), .in2 (B), .out (report));

La modélisation comportementale des flux de données est utilisée pour décrire le comportement des circuits numériques. Designer décrit la fonctionnalité de conception en écrivant un type de code dalgorithme. Il est utilisé pour expliquer le flux de données à laide de diverses expressions booléennes telles que & (et), | (ou), ~ (inverser), ^ (xor),? (Conditionnel) etc … deux sous-catégories de ce type de modélisation schéma est un flux de données continu et un flux de données procédural.

1. Flux de données continu Dans ce type de modélisation de flux de données, laffectation des données aux sorties est continue. Cela sera implémenté en utilisant les instructions «  assign  » dans Verilog comme indiqué dans lexemple.

input A, B; somme de sortie, report; fil somme, report; assigner la somme = A ^ B; assign carry = A & B;

Cest une assignation continue et donc tout changement dentrée affectera la sortie immédiatement en raison de labsence dactions de contrôle, cest-à-dire de liste de sensibilité. Ici, les variables de sorties doivent être définies comme du type «  wire  » car elles sont continuellement pilotées par la logique numérique définie sur RHS.

2. Flux de données procédural Ici, les affectations de données ne sont pas effectuées en continu, mais se produisent sur des événements spécifiques spécifiés dans la liste de sensibilité. Ce type de schéma de modélisation est implémenté à laide de blocs procéduraux tels que «  always  » ou «  initial « comme indiqué dans lexemple.

input A, B; somme de sortie, report; reg somme, report; toujours @ (A) commencer somme A + B; porter A & B; end

Le RHS de toutes les expressions est calculé en continu mais son affectation à LHS se produit uniquement sur tout changement dans lentrée A mais pas B. Dans ce cas, les variables de sortie doivent être définies comme «  reg « , car ils conservent la valeur précédente jusquà ce quune nouvelle affectation se produise après tout changement dans la liste de sensibilité spécifiée.

Jespère que cela dissipera vos doutes.

Réponse

Le flux de données et le comportement ne sont pas mutuellement exclusifs. Les flux de données et fonctionnels, ou les flux de données et structurels, ne sont pas non plus. De manière classique, le « flux de données » décrit une architecture dans laquelle un changement de valeur dun élément de données (variable) déclenche automatiquement le recalcul de toutes les autres données qui en dépendent.

Beaucoup classent incorrectement (à mon humble avis) toute architecture où le flux de données est géré plutôt que la gestion du flux de contrôle pour être un « flux de données »; mais le terme est utilisé de cette façon avec une régularité suffisante pour en faire une définition alternative.

En regardant la conception «comportementale», nous pouvons la classer comme une approche de conception où les modules sont modélisés à un haut niveau dabstraction où le concepteur définit le comportement souhaité du module et les outils de synthèse décomposent ce comportement en modèles RTL ou structurels. Dans la modélisation comportementale, la fonction est définie de manière algorithmique avec la synchronisation et le chargement des nœuds largement ignorés. Il est clair que les comportements peuvent être modélisés de telle sorte que les flux de données classiques soient pris en compte.

La modélisation « RTL » ou Register Transfer Logic est moins abstraite. Cest là que de nombreux praticiens disent que le flux de données commence. La plupart des outils de synthèse actuels décomposent le code comportemental en RTL. Un bon exemple est le C (ou C ++) vers les outils RTL tels que ImpulseC, Cynthesizer, etc.).

Le moins abstrait est la modélisation «structurelle» où la conception est présentée presque exclusivement comme des instanciations de composants avec des registres et des fils de connexion.

Clair comme de la boue, non?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *