Pregunta

Siguiendo con este pregunta sobre la diferencia entre los vectores embalado y desembalado en SV, ¿por qué iba a querer usar vectores sin envasar?
Almuerzos vectores tienen estas ventajas que desarmaba vectores no tienen:

  • Se pueden realizar operaciones bit a bit sobre ellos
  • Usted puede realizar operaciones aritméticas sobre ellos
  • Puede tomar rebanadas de ellos
  • Puede copiarlos en su conjunto un vector
  • Usted puede hacer cualquier cosa que pueda con un vectores empaquetados (a lo mejor de mi conocimiento)

¿Qué ventaja vectores sin envasar tienen más de vectores empaquetados?

¿Fue útil?

Solución

Hay otra razón por la que me gusta usar desempaquetado. Con envasar, no hay tentación (y la posibilidad accidental) de tratar a todo el nombre de la matriz como una variable, y crea una asignación errónea. Tampoco hay posibilidad de bits sangrando de un elemento a otro, cuando usted puede estar pensando que está accediendo B bits de N elementos, pero en realidad puede estar accediendo K bits de n elementos y BK trozos de elemento de N + 1. .

Mi filosofía es mantener sólo las cosas que pertenecen juntos como una "unidad de información" en la dimensión de relleno. Todo lo demás en la dimensión desempaquetado. El pensamiento por defecto debe ser descomprimido, y el paquete sólo lo que necesita.

Por ejemplo, si tengo 9 puertos, cada uno con 21 bits de información, me gustaría declarará como:

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

El 20:0 parte constituye una unidad de información, asignado y muestreada juntos (nominalmente). La división de esos bits aparte destruirá el protocolo o el carácter del puerto. Por otro lado, cambiando el número de puertos de 9 a, digamos, 16, no va a afectar a la naturaleza de la información en cada puerto, por lo que los 9 puertos pertenecen realmente en la dimensión descomprimido en mi mente.

La esperanza de que podría darle un paradigma para pensar lo largo ... En este paradigma, que se sorprendería de cuántas cosas empiezan a aparecer sin envasar que siempre pensó que estaban llenos !!

Otros consejos

Existen matrices no embalados por varias razones.

1) pic arrays se almacenan en la memoria como una secuencia continua de bits. arrays no embalados pueden tener cada elemento almacenado de forma independiente que se puede producir un mayor rendimiento de simulación.

2) matrices no embalados pueden ser de tipos que no son vectores de bits. Las matrices de enteros, byte, eventos, estructuras, clases, etc. Sólo se pueden desempaquetar.

3) La mayoría de los métodos de manipulación de matriz sólo funcionan en arrays desempaquetado.

4) Tal vez, sólo arrays descomprimidos se pueden asignar a la utilización de literales de matriz. No estoy seguro.

Puede haber otras razones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top