La diferencia entre cable y registro en verilog HDL

  
 

cable significa paso a través, es decir, la entrada cambia, y la salida se refleja de forma incondicional de inmediato (como una conexión simple con la puerta NO).

reg indica que debe haber un activador, y la salida reflejará el estado de la entrada.

reg es equivalente a una unidad de almacenamiento, y cableado es equivalente a una conexión física. Reg indica que debe haber un disparador. Cuando no hay entrada, el valor original se puede mantener, pero no está directamente relacionado con el circuito de hardware real.

La diferencia entre los dos es que los datos de tipo de registro siguen siendo la última asignación, mientras que los datos de tipo de línea deben manejarse continuamente. El cableado se utiliza en las instrucciones de asignación continua, y el registro se utiliza en las instrucciones de asignación de proceso (inicial, siempre). Si el cable está conectado sin una unidad, su valor es z, y el valor inicial predeterminado de reg es el valor indefinido x.

En una declaración de asignación continua, el resultado del cálculo en el lado derecho de la expresión puede actualizar inmediatamente el lado izquierdo de la expresión. En la comprensión, equivalente a una lógica conectada directamente a una línea, esta lógica corresponde al lado derecho de la expresión, y esta línea corresponde al cable. En una declaración de asignación de proceso, el resultado del cálculo en el lado derecho de la expresión se coloca en una variable bajo el desencadenante de una condición, y esta variable se puede declarar como un tipo de registro. Dependiendo de la condición de activación, la instrucción de asignación de proceso puede modelar diferentes estructuras de hardware: si la condición es un flanco ascendente o descendente del reloj, entonces el modelo de hardware es un activador; si la condición es un nivel alto de una señal o Bajo nivel, entonces este modelo de hardware es un latch; si esta condición es un cambio en cualquier operando a la derecha de la declaración de asignación, entonces el modelo de hardware es una lógica combinacional.

Para las variables de salida de lógica combinacional, puede usar asignar directamente. Es decir, si no se especifica como el tipo de registro, entonces el valor predeterminado es un tipo de cable de 1 bit, por lo que no es necesario especificar una variable de tipo de cable de 1 bit. Por supuesto, el tipo de cable se especifica específicamente, que puede ser de varios bits o para hacer que el programa sea fácil de leer. El cable solo se puede asignar consecutivamente por asignación, reg solo se puede asignar en inicial y siempre.

El puerto de entrada se puede activar por cable /reg, pero el puerto de entrada solo puede ser de cable; el puerto de salida puede ser de tipo cable /reg, el puerto de salida solo puede conducir por cable; si el puerto de salida está asignado en el bloque de proceso, es reg Tipo, si se asigna fuera del bloque de proceso, es tipo de red (cable /tri). Declare un puerto bidireccional con la palabra clave inout. El puerto inout no se puede declarar como un tipo de registro, solo el tipo de cable.

La señal predeterminada es el tipo de cable y el tipo de registro está declarado. El valor predeterminado aquí se refiere a que la señal de salida se declara como salida cuando es cable. Si se trata de una señal interna del módulo, se debe declarar como cable o registro.

Para la sentencia always, la asignación debe declararse como reg, y el cable se debe usar cuando se asigna asignar continuamente.

Cuando se llama al módulo El método de determinación del tipo de señal se resume de la siguiente manera:

? La señal se puede dividir en una señal de puerto y una señal interna. Las señales que aparecen en la lista de puertos son señales de puertos, y las otras señales son señales internas.

? Para señales de puerto, el puerto de entrada solo puede ser de tipo net. El puerto de salida puede ser un tipo de red o un tipo de registro. El tipo de registro se utiliza si al puerto de salida se le asigna un valor en el bloque de proceso; si se asigna fuera del bloque de proceso (incluida la instrucción de creación de instancias), es el tipo de red.

? El tipo de señal interna es el mismo que el puerto de salida y puede ser de tipo net o register. El método de juicio también es el mismo que el puerto de salida. Si el valor se asigna en el bloque de proceso, es el tipo de registro; si se asigna fuera del bloque de proceso, es el tipo de red.

? Si la señal debe asignarse tanto en el bloque de proceso como fuera del bloque de proceso. Esta situación es posible, como una señal de decisión. Se requiere una conversión de señal intermedia en este momento.


Los siguientes son errores comunes y mensajes de error correspondientes

? Use una declaración de procedimiento para indicar un tipo de red u olvide el tipo de señal declarado Asignación.

Información: asignación ilegal … ….

? Conecte la salida de la instancia a una señal declarada como tipo de registro.

Información: < nombre > tiene una especificación de puerto de salida ilegal.

? Declara la señal de entrada del módulo como tipo de registro.

Información: declaración incompatible, < nombre de la señal > … …

Copyright © Conocimiento de Windows All Rights Reserved