C'è un altro motivo per cui mi piace usare spacchettato. Con scompattato, non vi è alcuna tentazione (e possibilità accidentale) di considerare l'intero nome dell'array come una variabile e fare un assegnamento errato. Non vi è inoltre alcuna possibilità di emettere bit da un elemento a un altro, quando si può pensare di accedere ai bit B dell'elemento N, ma in realtà si può accedere ai bit K dell'elemento N e ai bit BK dell'elemento N + -1.
La mia filosofia è di mantenere solo le cose che appartengono insieme come una "unità di informazioni" nella dimensione imballata. Tutto il resto nella dimensione scompattata. Il pensiero predefinito dovrebbe essere decompresso e racchiudere solo ciò che è necessario.
Ad esempio, se ho 9 porte, ciascuna con 21 bit di informazione, desidero dichiarare come:
input logic [20:0] p1 [9];
La parte 20:0
costituisce un'unità di informazione, assegnato e campionamento insieme (nominalmente). La divisione di questi bit distruggerà il protocollo o il carattere della porta. D'altro canto, la modifica del numero di porte da 9 a, diciamo, di 16, non influenzerà la natura delle informazioni in ciascuna porta, quindi le 9 porte appartengono davvero alla dimensione non compressa nella mia mente.
Spero che questo possa darti un paradigma per riflettere ... In questo paradigma, ti sorprenderebbe vedere quante cose iniziano ad apparire spacchettate che hai sempre pensato fossero imballate !!
fonte
2011-08-06 00:58:01
Questa risposta è migliore della risposta accettata in precedenza, perché fornisce * design * ragioni per questo, quindi accetto invece il tuo. –