La Red de Conocimientos Pedagógicos - Currículum vitae - Uso de caracteres de empalme Verilog

Uso de caracteres de empalme Verilog

Existe un operador especial en el lenguaje Verilog HDL: el operador de empalme de bits {}. Este operador se puede utilizar para unir ciertos bits de dos o más señales para su funcionamiento. El método de uso es el siguiente:

Es decir, enumere ciertos bits de ciertos múltiplos en detalle, sepárelos con comas y finalmente enciérrelos entre llaves para representar una señal general, por ejemplo:

p>

También se puede escribir como:

Las señales sin un número específico de bits no están permitidas en expresiones de empalme de bits. Esto se debe a que se debe conocer el ancho de bits de cada señal al calcular el ancho de bits de la señal empalmada.

El empalme de bits también puede utilizar la repetición para simplificar expresiones, como se muestra a continuación:

El empalme de bits también se puede expresar de forma anidada, como se muestra a continuación:

El lenguaje Verilog HDL tiene una amplia gama de operadores, que se pueden dividir aproximadamente en las siguientes categorías según sus funciones:

(1) ¿Operadores aritméticos? +, -, *, /, %? >

(2) Operador de asignación ?=, <= ?

(3) Operador relacional> ,<,>=,<=

(4 )Operador lógico?&& , ||, !

(5)¿Operador condicional?? :

(6) ¿Operadores de bits?~, |, ^,&,^~

(7) ¿Operadores de desplazamiento?<<,>>

( 8)¿Operador de empalme?{}

(9)Otros.

1) Operadores aritméticos básicos: la suma, la resta y la multiplicación son relativamente simples y no se registrarán aquí.

Al realizar operaciones de división de números enteros, se debe omitir la parte decimal del resultado y solo se debe tomar la parte entera, al realizar operaciones de módulo (%, también conocido como operador de resto), el bit de signo de; el resultado utiliza operaciones de módulo. El signo del primer operando en el símbolo.

-10%3 ?El resultado es -1 ?11%-3 ?El resultado es 2

Nota: Al realizar operaciones aritméticas, si un operando tiene un valor incierto x, entonces todo el resultado es también un valor incierto x.

2) Operadores de bits:

Negación bit a bit~, AND& bit a bit, OR bit a bit|, XOR bit a bit^, OR igual bit a bit^~

Al ejecutar bit operaciones con datos de diferentes longitudes, el sistema alineará automáticamente los extremos derechos de los dos números. El operando con una pequeña cantidad de dígitos se completará con 0 en el bit alto correspondiente. Los dos operandos se operarán a la vez en un. base poco a poco.

3) Operadores lógicos:

Lógico AND &&, lógico OR ||, lógico ¡NO!

Donde && y || son operadores binarios, su precedencia es menor que la de los operadores relacionales y ! mayor que los operadores aritméticos.

4) Operadores relacionales

<, >, ?<= ?, ?>= Si la operación relacional es falsa, el valor de retorno es 0, si la relación declarada es verdadera, el valor de retorno es 1. Los operadores relacionales tienen menor prioridad que los operadores aritméticos.

Por ejemplo: ?a

a<(size-1) //

size-1

size-(1

5) Operador de igualdad

==,! =,===,! No puede haber espacios entre los símbolos == ?

"==" y "!=" se denominan operadores de igualdad lógica y sus resultados están determinados por los valores de los dos operandos. Dado que el operando puede ser x o z, el resultado puede ser x;

"===" y "!==" se utilizan a menudo para juzgar expresiones de casos, también conocidas como operadores de igualdad cae.

Los resultados son solo 0 y 1. Si x y z existen en los operandos, entonces los operandos deben ser exactamente iguales antes de que el resultado sea 1; de lo contrario, es 0.

Operador de igualdad lógica y operador de igualdad de casos La diferencia:

6) Operador de desplazamiento

<< , >> ?a>>n donde a representa el operando que se desplazará y n representa el número de bits que se desplazarán . Ambas operaciones de desplazamiento llenan los bits desplazados con ceros.

Si el operando tiene un ancho de bits definido, el operando cambia después del desplazamiento, pero su ancho de bits permanece sin cambios.

/*Lo que no entiendes (Xia Yuwen tercera edición, p41)

4'b1001<<1=5'b10010; ' b100100; ? (¿Cambiar hacia la izquierda aumentará el número de dígitos?)

1<<6=32'b1000000; 4'b1001>>1=4'b0100; no cambiará el número de dígitos)

4'b1001>>4=4'b0000;

*/

7) Operador de concatenación de bits

{Señal Ciertos dígitos de 1, ciertos dígitos de la señal 2,...ciertos dígitos de la señal n} Enumere algunos de los dígitos de ciertas señales, separados por comas y finalmente entre llaves para representar un total señal.

Las señales sin un número específico de bits no están permitidas en expresiones bit a bit.

{a,b[3:0],w,3'b101}? //Equivalente a {a,b[3],b[2],b[1],b[0] ,w,1b'1,1'b0,1'b1}

{4{w}} //Equivalente a {w,w,w,w}

{ b,{3{a,b}}} ?//Igual a {b,a,b,a,b,a,b} ?El 3 y el 4 deben ser expresiones constantes.

8) Operador de reducción

Este es un operador unario, que también incluye operaciones AND, OR y NOT. Las reglas de operación son similares a las operaciones bit a bit, excepto que cada bit de un solo operador se opera paso a paso y el resultado final de la operación es un número binario de un bit.

c=&B ?//El significado es el mismo que c=((B[0]&B[1]) &B[2] ) & B[3];