Il y a une autre raison pour laquelle j'aime utiliser déballé. Avec unpacked, il n'y a pas de tentation (et de possibilité accidentelle) de traiter le nom du tableau entier comme une variable, et de faire une affectation erronée. Il n'y a pas non plus de possibilité de saignement d'un élément à un autre, alors que vous pensez avoir accès à B bits de l'élément N, mais en réalité vous pouvez accéder aux bits K de l'élément N et BK de l'élément N + -1. Ma philosophie est de ne garder que les choses qui appartiennent ensemble comme une «unité d'information» dans la dimension emballée. Tout le reste dans la dimension déballée. La pensée par défaut devrait être décompressée, et n'emballer que ce dont vous avez besoin.
Par exemple, si je 9 ports, chacun avec 21 bits d'information, je voudrais déclarer comme:
input logic [20:0] p1 [9];
La partie 20:0
constitue une unité d'information, cédé et échantillonné ensemble (nominalement). La séparation de ces bits détruira le protocole ou le caractère du port. D'un autre côté, changer le nombre de ports de 9 à, par exemple, 16, ne va pas affecter la nature de l'information dans chaque port, de sorte que les 9 ports appartiennent vraiment à la dimension déballée dans mon esprit. L'espoir qui pourrait vous donner un paradigme à penser ... Dans ce paradigme, vous seriez surpris de voir combien de choses commencent à apparaître déballées que vous avez toujours pensé étaient emballés !!
Cette réponse est meilleure que la réponse acceptée précédente, car elle donne * design * raisons pour cela, donc j'accepte la vôtre à la place. –