Saltar al contenido

Declaración de caso de Verilog – javatpoint

octubre 16, 2021
verilog case statement

La declaración de caso comprueba si la expresión dada coincide con una entre las otras expresiones dentro de la lista y las ramas. Suele estar acostumbrado a implementar un dispositivo.

La construcción if-else puede no ser aplicable si hay una unidad de medida que se deben verificar muchas condiciones y se sintetizan en un codificador de prioridad en lugar de un dispositivo.

En Verilog, una declaración case incluye todo el código entre las palabras clave de Verilog, case («casez», «casex») y endcase. Un enunciado de caso puede ser un constructo de seleccionar uno de muchos que es más o menos como el enunciado asociado en enfermería if-else-if.

Sintaxis

Una declaración de caso de Verilog comienza con la palabra clave case y termina con la palabra clave endcase.

La expresión dentro de la unidad de área entre paréntesis pretende ser evaluada específicamente una vez y se compara con la lista de alternativas dentro del orden en que están escritas.

Y las afirmaciones de que la selección coincide con la unidad de medida de expresión dada mueren. Un bloque de declaraciones múltiples debe ordenarse y estar dentro de begin y end.

Si ninguno de los elementos del caso coincide con la expresión dada, las declaraciones dentro de la unidad de medida del elemento predeterminado mueren. La declaración predeterminada no es obligatoria y solo hay una declaración predeterminada a lo largo de una declaración de caso. Las declaraciones de casos están anidadas.

La ejecución saldrá del bloque de casos sin hacer nada si ninguno de los elementos coincide con la expresión y no se proporciona una declaración predeterminada.

Ejemplo

El siguiente módulo de vogue incluye una señal de opción de 2 bits para enrutar una de las tres entradas diferentes de 3 bits al letrero indicado como out.

Se utiliza una declaración de caso para asignar la entrada correcta a la salida admitida el valor de sel. Como sel puede ser una señal de 2 bits, tendrá veinte 2 combos, de cero a 3. La declaración predeterminada ayuda a alinear la salida a cero si sel es 3.

Encabezado de declaración de caso

Un encabezado de declaración de caso consta de la palabra clave case («casez», «casex») seguida de la expresión case, generalmente todo en una línea de código.

Al agregar directivas full_case o paralel_case a una declaración de caso, la unidad de medida de las directivas se agrega como un comentario en tiempo real después de la expresión de caso en la punta del encabezado de la declaración de caso y antes de cualquiera de las cosas de caso en las líneas de código subsiguientes.

Artículo de la caja

El elemento de caso es que el bit, vector o expresión de Verilog acostumbrada se compara con la expresión de caso.

A diferencia de diferentes lenguajes de programación de alto nivel como ‘C’, la declaración de caso de Verilog incluye declaraciones de interrupción implícitas.

El primer elemento de caso que coincide con esta expresión de caso hace que la declaración del elemento de caso correspondiente esté muerta, por lo que todo el resto de la unidad de medida de las cosas de caso omitida para esto se somete a la declaración de caso.

Declaración de artículo de caso

Una declaración de elemento de caso es una o muchas declaraciones de Verilog muertas si el elemento de caso coincide con esta expresión de caso. No como VHDL, las cosas del caso Verilog pueden ser expresiones en sí mismas.

Para alterar el análisis del documento de código de Verilog, las declaraciones de elementos de caso de Verilog deben incluirse entre las palabras clave «empezar» y «fin» si más de una declaración va a estar muerta para un elemento de caso específico.

Casez

En Verilog, hay una declaración casez, una variación de la declaración case que habilita «z» y «?» valores que se tratarán a lo largo de la comparación de casos como valores «indiferentes».

«Z» y «?» unidad de medida tratada como no importa si están dentro de la expresión de caso o si están dentro del elemento de caso.

Cuando escriba en secreto una declaración de caso con «no me importa», use una declaración casez y use «?» caracteres en lugar de caracteres «z» dentro del caso, las cosas a propósito son bits de «no importa».

Casex

En Verilog, hay una declaración casex, una variación de la declaración case que permite que los valores «z», «?» Y «x» se traten a lo largo de la comparación como valores «no importa».

«x», «z» y «?» unidad de medida tratada como no importa si están dentro de la expresión de caso o si están dentro del elemento de caso.

Declaración completa del caso

Una declaración de caso completa puede ser una declaración de caso dentro de la cual todos los patrones binarios de expresión de caso que se pueden obtener coinciden con un elemento de caso o un caso predeterminado.

Si una declaración de caso no incluye un caso predeterminado y es posible buscar una expresión de caso binaria que no coincida con ninguna de las cosas de caso impresas, la declaración de caso no está completa.

Una declaración de caso completa puede ser una declaración de caso dentro de la cual todos los patrones binarios, no binarios y combinaciones de patrones binarios y no binarios que se pueden generar se incluyen como un elemento de caso dentro de la declaración de caso.

A Verilog no le gustaría que las declaraciones de casos fueran síntesis o simulación de lipoproteínas de alta densidad completa, pero las declaraciones de casos de Verilog se completan agregando un caso predeterminado. VHDL desea que las declaraciones de casos sean una simulación completa de lipoproteínas de alta densidad, que por lo general desea la cláusula «otros» del Asociado en Enfermería.

Declaración de caso paralelo

Una declaración de caso paralelo puede ser una declaración de caso dentro de la cual solo se puede hacer coincidir una expresión de caso con un solo elemento de caso.

Si es posible buscar una expresión de caso que pueda coincidir con un elemento de caso, la unidad de medida de los elementos del caso coincidente se indica como elementos del caso superpuestos, por lo que la declaración del caso no es paralela.

Esquema de hardware

El código RTL se elabora para obtener un esquema de hardware que representa un multiplexor 4 a 1.

Declaración de caso de Verilog

Después de ejecutar el diseño anterior, la salida es cero cuando sel es 3 y corresponde a las entradas asignadas para otros valores.

En una declaración de caso, la comparación solo se realiza correctamente cuando cada bit de la expresión coincide con una de las alternativas, incluidas 0, 1, xy z. En el ejemplo anterior, si alguno de los bits en sel es x o z, el defecto La sentencia se ejecutará porque ninguna de las otras alternativas coincidió. En tal caso, la salida será todo ceros.

Si el enunciado del caso en el diseño tiene xyz en las alternativas de los elementos del caso, los resultados serán diferentes.

Diferenciación entre el caso y el if-else

La declaración de caso es diferente de if-else-if de dos maneras, como por ejemplo:

  • Expresiones dadas en un si-si no block son más generales, mientras que en un bloque de casos, una sola expresión se empareja con varios elementos.
  • El caso proporcionará un resultado definitivo cuando haya valores X y Z en una expresión.

close