Tableaux dynamiques, queues et tableaux associatifs
Choisir une collection de testbench pour des lots variables, des files de transactions et des résultats indexés.
Des collections pour le testbench
Les collections dynamiques permettent de gérer un nombre de transactions inconnu à la compilation. Elles sont surtout destinées à la vérification et aux modèles de haut niveau, pas au RTL synthétisable.
Trois formes répondent à des besoins différents :
- le tableau dynamique pour une taille allouée à l'exécution ;
- la queue pour ajouter et retirer facilement aux extrémités ;
- le tableau associatif pour indexer des éléments par une clé clairsemée.
Tableau dynamique
int samples[];
samples = new[128];
foreach (samples[i])
samples[i] = i * 2;
$display("count=%0d", samples.size());
samples.delete();new[128] alloue 128 éléments. Une nouvelle allocation peut conserver une partie de l'ancien contenu avec new[new_size](samples). delete() libère le tableau.
Ce format convient lorsqu'un bloc de données possède une taille connue au début d'une opération et qu'un accès direct par indice est fréquent.