pourquoi devrais-je utiliser des vecteurs non emballés dans systemverilog?

StackOverflow https://stackoverflow.com/questions/511542

  •  21-08-2019
  •  | 
  •  

Question

Faisant suite à cette question sur la différence entre les vecteurs et non emballés dans emballés SV, pourquoi voudrais-je utiliser des vecteurs non emballés?
vecteurs paniers ont ces avantages que les vecteurs déballés n'ont pas:

  • Vous pouvez effectuer des opérations de bits sages sur les
  • Vous pouvez effectuer des opérations arithmétiques sur les
  • Vous pouvez prendre des tranches d'entre eux
  • Vous pouvez les copier comme vecteur ensemble
  • Vous pouvez faire tout ce que vous pouvez avec un vecteurs emballés (au meilleur de ma connaissance)

Quel avantage faire des vecteurs non emballés ont sur des vecteurs emballés?

Était-ce utile?

La solution

Il y a une autre raison pour laquelle je préfère utiliser déballés. Avec décompressé, il n'y a pas de tentation (et possibilité accidentelle) de traiter l'ensemble nom du tableau comme une variable, et faire une affectation erronée. Il n'y a également aucune possibilité de saignement peu d'un élément à l'autre, quand vous pensez peut-être que vous accédez à B bits de l'élément N, mais en réalité, vous pouvez accèdera K bits de l'élément N bits et BK de l'élément N + 1. .

Ma philosophie est de ne conserver que les choses qui appartiennent ensemble comme une « unité d'information » dans la dimension emballé. Tout le reste dans la dimension déballés. La pensée par défaut devrait être déballée et emballer seulement ce que vous devez.

Par exemple, si j'ai 9 ports, chacun avec 21 bits d'information, je voudrais déclarer que:

input logic [20:0] p1 [9];

Le 20:0 partie constitue une unité d'information, cédé et échantillonné ensemble (nominalement). Fractionnement ces bits sera en dehors de détruire le protocole ou le caractère du port. D'autre part, en changeant le nombre de ports de 9 à, disons, 16, ne va pas affecter la nature des informations contenues dans chaque port, de sorte que les 9 ports appartiennent vraiment à la dimension décompressé dans mon esprit.

L'espoir qui pourrait vous donner un paradigme de penser le long ... Dans ce paradigme, vous seriez surpris de voir combien de choses commencent à apparaître décompressé que vous pensiez toujours été emballés !!

Autres conseils

tableaux déballés existent pour plusieurs raisons.

1) réseaux paniers sont stockés dans la mémoire comme une séquence continue de bits. tableaux décompressés peuvent avoir chaque élément stocké de manière indépendante qui peut produire une plus grande performance de simulation.

2) tableaux déballés peuvent être des types qui ne sont pas des vecteurs de bits. Les tableaux de ints, octets, événements, classes, les structures, etc. ne peuvent être déballés.

3) La plupart des méthodes de manipulation de tableau ne fonctionnent que sur les tableaux non emballés.

4) Peut-être, peuvent être affectés à l'aide de littéraux de tableau seulement matrices non emballés. Je ne sais pas.

Il peut y avoir d'autres raisons.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top