17 votos

¿Cuál es el operador que se llama como " a+:" en verilog

Voy a través de verilog caso de prueba y se encontró una declaración

assign XYZ = PQR_AR[44*8 +: 64];

lo que hizo esta "+:" operador de saber como.Traté de encontrar esto en google pero no recibo ninguna respuesta pertinente.

27voto

nikolaMM94 Puntos 38

La sintaxis se llama un indexado parte-seleccione. El primer término es el bit de desplazamiento y el segundo término es el ancho. Le permite especificar una variable para el desplazamiento, pero el ancho debe ser constante.

Ejemplo de la SystemVerilog 2012 LRM:

logic [31: 0] a_vect;
logic [0 :31] b_vect;

logic [63: 0] dword;
integer sel;

a_vect[ 0 +: 8] // == a_vect[ 7 : 0]
a_vect[15 -: 8] // == a_vect[15 : 8]
b_vect[ 0 +: 8] // == b_vect[0 : 7]
b_vect[15 -: 8] // == b_vect[8 :15]

dword[8*sel +: 8] // variable part-select with fixed width

3voto

Por último llegué a la página de origen de este, esto se conoce como Vector Indexado de selección de parte ("+:").

Para explicar un poco más

PQR_AR[44*8 +: 64];

Con Indexados vector de selección de parte, que se agrega en Verilog 2000, puede seleccionar una parte de autobús en lugar de seleccionar todo el autobús.

44*8 parte es el punto de partida de la selección de parte variable y 64 es el ancho de la parte de seleccionar andis constante.Esto significa que, si inicialmente hemos inicializado

input [415:0] PQR;

estamos seleccionando una parte en particular de PQR el uso de

PQR_AR[44*8 +: 64];

que es PQR_AR[352+:64] o significa que estamos tomando una parte de 352 415 de 0 a 415.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X