En Verilog, ¿qué significa la declaración siempre@(*)?
El significado de la declaración siempre@(*) en Verilog es: cuando cualquier señal de entrada o nivel en el módulo siempre cambia, se ejecutará el módulo debajo de la declaración.
1. La declaración siempre tiene dos métodos de activación. El primero se activa por nivel, como siempre @(a o b o c), donde a, b y c son variables, cuando una de las variables cambia, se ejecutará la siguiente declaración.
2. El segundo tipo se activa por flanco, como siempre @ (posedge clk o negedge rstn), lo que significa que la instrucción se ejecutará cuando el reloj esté en el flanco ascendente o descendente.
3. Para siempre@(*), significa que los dos activadores anteriores se incluyen al mismo tiempo, y los cambios en cualquiera de los activadores activarán la declaración.
Extensión: strong>strong>
En el lenguaje Verilog, existen dos tipos de procedimientos: procedimientos iniciales y procedimientos iniciales.
Un proceso puede ser una descripción de proceso que incluye tiempo, y un proceso que no incluye tiempo también puede expresar lógica combinatoria. El procedimiento siempre comienza con la palabra clave siempre y se puede ejecutar varias veces de forma continua. Cuando se ejecuta la última línea de código del procedimiento, se reinicia desde la primera línea de código. Si no utiliza la tarea del sistema $finish, el procedimiento siempre se repetirá continuamente.
Un módulo puede contener múltiples procedimientos almacenados y estos procedimientos almacenados se pueden ejecutar simultáneamente. Sin embargo, los procedimientos almacenados no se pueden anidar. Si un procedimiento almacenado tiene varias declaraciones, se deben agrupar en un bloque de código utilizando las palabras clave comenzar, finalizar o bifurcar, unir. Estas dos combinaciones de palabras clave representan bloques de código secuencial y bloques de código paralelo respectivamente. Estas dos estructuras se analizarán en los siguientes capítulos.
Enciclopedia Baidu-verilog