Altifigence Academy

30 / 63 · Concepto

Estado siguiente del contador y prioridad del reset

Integre incremento, conservación, reset y retorno modular en una especificación y calcule cada flanco.

Defina primero la función de estado siguiente

Un contador libre de NN bits con reset síncrono y enable cumple:

Ck+1={0rk=1(Ck+1) mod 2Nrk=0, ek=1Ckrk=0, ek=0C_{k+1}=\begin{cases} 0&r_k=1\\ (C_k+1)\bmod2^N&r_k=0,\ e_k=1\\ C_k&r_k=0,\ e_k=0 \end{cases}

ResetReset Control que devuelve el estado a un valor inicial especificado. Deben definirse su carácter síncrono o asíncrono y su prioridad frente a otros controles. tiene prioridad máxima; enable=0 conserva. En la visualización siguiente, puede cambiar enable para comparar el incremento y la conservación del estado.

En el control, parta de q=11 y seleccione reset=1: solo el estado siguiente pasa a 00. Pulse el siguiente reloj para observar cuándo cambia el almacenamiento. Desactive reset y recorra 00→01→10→11→00. Con enable=0, compruebe que avanzan los flancos pero q permanece.

Compare directamente el estado antes y después del flanco ascendente

El reset síncrono tiene prioridad sobre enable. Con enable=0, se conserva el valor almacenado. q=11; q_next = (q + 1) mod 4

Prepare una predicción por flanco

Para dos bits, estado inicial 3, reset=1 en el primer flanco y luego 0, los estados posteriores son 0,1,2,3,0. Activar reset entre flancos no lleva inmediatamente a 0 un registroRegistro Circuito que almacena varios bits de estado. Los registros síncronos de este curso capturan la entrada especificada en el flanco de reloj. Más información síncrono antes del flanco ascendenteFlanco ascendente Instante en que el reloj pasa de 0 a 1. Se distingue del nivel alto, que abarca todo el intervalo con CLK=1. Más información.

Flancoreset antesC anteriorC actualizado
1130
2001
3012
4023
5030

Cada columna de la onda registra un flanco. Las entradas son anteriores y el estado «después» es posterior a la actualización. La alineación muestra orden de muestras, no retardo físico de propagaciónRetardo de propagación Tiempo desde un cambio de entrada hasta que la salida se estabiliza en el valor correcto. La equivalencia lógica y el comportamiento temporal son propiedades distintas. Más información. Desde 3, el primer reset vence al incremento; el último flanco vuelve de 3 a 0.

Reset y retorno modular de un contador de dos bits
Ver los datos de la forma de onda
Datos de la forma de onda: cada carácter es un intervalo; un punto conserva el estado anterior; p representa un ciclo de reloj.
SeñalForma de ondaValores del bus
flanco23452E0 → E1 → E2 → E3 → E4
reset10...
count antes2345211 → 00 → 01 → 10 → 11
count después2345200 → 01 → 10 → 11 → 00

No mezcle significados de reset

Un if(rst) dentro de always_ff @(posedge clk) es síncrono. Añadir un flanco de reset a la lista de eventos lo hace asíncrono y cambia la función. Su desactivación tiene requisitos como recovery/removal; no lo cambie solo porque llegue antes a 0.

Un contador que produce pulsos periódicos también debe especificar cuándo los activa: mientras el estado es máximo o durante el ciclo posterior al retorno a 0. Cambian tanto la ecuación de salida como su observación.

Inténtalo tú

Un contador de tres bits está en 7. En el primer flanco rst=0, en=0; en el siguiente rst=0, en=1. ¿Qué estados resultan?

Leer la explicación

Primero conserva 7; después vuelve a 0 por el límite de tres bits. Para conservar 8 haría falta mayor ancho o una política explícita de saturación o error.

Tu elección se aplica a este navegador. Puedes cambiarla en el pie de página.