Pergunta

No seguimento este pergunta sobre a diferença entre vetores embalados e descompactados em SV, por que eu iria querer usar vetores desempacotados
vetores embaladas têm essas vantagens que os vetores desembalados não tem:

  • Você pode executar operações bit a bit sobre eles
  • Você pode realizar operações aritméticas sobre eles
  • Você pode tomar fatias de los
  • Você pode copiá-los como um vetor todo
  • Você pode fazer qualquer coisa que você pode com un vetores embalado (para o melhor de meu conhecimento)

Que vantagem fazer vetores desembalados ter vetores mais embalado?

Foi útil?

Solução

Há uma outra razão pela qual eu gosto de usar descompactado. Com descompactado, não há nenhuma tentação (e possibilidade acidental) de tratar todo o nome da matriz como uma variável, e fazer uma atribuição errônea. Também não há possibilidade de bit-hemorragias a partir de um elemento para outro, quando você pode estar pensando que você está acessando B bits de elemento de N, mas na realidade você pode estar acessando k bits de elementos N e BK pedaços de elemento N + 1. .

A minha filosofia é manter apenas as coisas que pertencem juntos como uma "unidade de informação" na dimensão embalado. Tudo o resto na dimensão descompactado. O pensamento padrão deve ser desembalado e embalar somente o que você precisa.

Por exemplo, se eu tiver 9 portas, cada uma com 21 bits de informação, gostaria de declará-lo como:

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

A parte 20:0 constitui uma unidade de informação, atribuída e amostrado juntos (nominalmente). Dividindo os bits para além irá destruir o protocolo ou o carácter da porta. Por outro lado, alterar o número de portas de 9 a, digamos, 16, não vai afetar a natureza da informação em cada porto, assim que os 9 portas realmente pertencem na dimensão descompactado na minha mente.

Hope que pode dar-lhe um paradigma para pensar junto ... Neste paradigma, você ficaria surpreso quantas coisas começam a aparecer descompactado que você sempre pensou foram embalados !!

Outras dicas

existem matrizes descompactado por várias razões.

1) matrizes embaladas são armazenados em memória como uma sequência contínua de bits. matrizes desembalados pode ter cada elemento armazenado de forma independente, que pode proporcionar melhor desempenho na simulação.

2) matrizes descompactado pode ser de tipos que não são mordeu vetores. Matrizes de inteiros, bytes, eventos, estruturas, classes, etc. só pode ser desembalado.

3) A maior parte dos métodos de manipulação de matriz só funcionam em matrizes não embalada.

4) Talvez, apenas matrizes não embalada pode ser atribuído à utilização literais de matriz. Eu não tenho certeza.

Pode haver outras razões.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top