0sysdff1 - Obijuan/Icestudio-Digital GitHub Wiki
Circuito 034-0sysdff1
⬅️ Prev | Navegar por los circuitos | Next ➡️ |
---|
Contenido
- Ficha: Tic en ciclo 0
- Descargas
- Descripción
- Pulsos
- TICs
- Cronograma
- Circuito TIC0
- Evolución del estado
- diagramas de estados
- Medición con el analizador lógico
- Recursos
- Conceptos nuevos
- Enlaces
- Autor
- Licencia
Ficha: Tic en ciclo 0
Descargas
- Circuito Icestudio: 0sysdff1.ice
- Ficha circuito: (SVG) (PDF) (PNG)
Descripción
Este circuito es uno de los fundamentales y que se utilizará mucho. Nos permite generar un pulso inicial cuya duración es un ciclo. El estado inicial del biestable D es 1
, por lo que al arrancar el circuito la salida es 1
en el ciclo 0. Pero como por su entrada hay un 0
constante, a partir del ciclo 1 su estado cambia a 0
Se genera una señal que vale 1
en el ciclo 0, y luego pasa a 0
en el ciclo 1, permaneciendo en reposo hasta que se apague el circuito
Este pulso inicial tiene los siguientes usos, que irán apareciendo en láminas posteriores:
- Construir otras señales a partir de este pulso
- Generar la señal de arranque para otros circuitos
- Condición inicial para los contadores one-hot
Pulsos
Definimos un pulso como una señal digital que está N ciclos a nivel alto y luego pasa a 0
. Según donde produzca el pulso la forma varía ligeramente
- Si el pulso se produce en el ciclo 0, hablamos de pulso inicial. Tiene una duración de N ciclos (N>=1). Este pulso, por definición siempre estará a
1
en el ciclo 0. Su valor en los sucesivos ciclos depende de la duracción. En esta figura vemos un ejemplo de 2 pulsos iniciales. El primero tiene duración de 2 ciclos y el siguiente de 3 ciclos
El valor de los pulsos antes del ciclo 0 NO APLICA para la definición de pulso. Es a partir del ciclo 0, cuando se contabiliza su duración
- Si el pulso se produce en cualquier otro ciclo distinto del inicial, reciben el nombre de pulsos. En estos casos, antes de ponerse el pulso a
1
, están a0
. Durante N ciclos están a1
y vuelve a0
. En esta figura se muestra un ejemplo de 2 pulsos que se generan en diferentes instantes de tiempo y que tienen también diferentes duraciones
TICs
Los pulsos que tienen una duración de 1 ciclo se denominas tics. Tienen nombre propio porque son unas señales que se utilizan muchísimo. Se usan principalmente para indicar que ha ocurrido un evento o suceso en el circuito: el usuario ha apretado un pulsador, un circuito ha completado una tarea, ha transcurrido el tiempo establecido...
Si este tic se genera en el ciclo 0, se denomina tic inicial
En esta figura se muestran diferentes tics. El primero es un tic inicial. El segundo se produce en el ciclo 2 y el tercero en el ciclo 6
Cronograma
Este circuito genera un tic inicial. Es decir, se genera un pulso inicial de anchura 1 ciclo. La señal está a 1
en el ciclo 0 y luego pasa a 0
en el ciclo 1. Permanece en reposo durante todo el tiempo de vida del circuito
Circuito TIC0
El circuito abstracto TIC0 es un circuito secuencial que genera por su salida la funcion tic0, la cual se cambia de 1
a 0
en el ciclo 1. Se trata de un pulso inicial de 1 ciclo de duración. Por definición, se llama tic inicial
Si se conecta un LED a su salida, se verá que está apagado indefinidamente. En realidad está encendido durante el ciclo 0, un ciclo después de encender el circuito, pero es tan rápido que el ojo humano no lo detecta. Para nosotros este circuito es similar a LEDOFF-INF
Evolución del estado
En esta tabla se representa la evolución del estado del circuito. Sólo hay 2 estados: El inicial, donde la señal vale 1
, y el final donde vale 0
En esta tabla se muestra la evolución:
Diagramas de estados
En esta figura se muestra el diagrama de estados del circuito 0sysdff1
La lectura del diagrama es la siguiente
- Inicialmente el circuito está en el estado 1 (porque el biestable D vale
1
en el ciclo 0) - En el siguiente ciclo se transita al estado 0 (porque ahora el biestable almacena
0
) - En el resto de ciclos el biestable sigue estando en el estado 0 (así hasta el infinito...). Nunca sale de él. Por eso se llama estado final
Así, de un golpe de vista se puede comprobar la evolución del circuito, y qué es lo que ocurre en cada ciclo
Medición con el analizador lógico
La señal generada en D0 es un tic inicial. Para medirlo correctamente hay que incluir la señal time0
(Ver circuito time0). Además, también incluimos el reloj del sistema (clk)
El circuito completo, que incluye las mediciones de time0
y clk
, es el mostrado en esta figura, aunque la única señal que nos interesa medir es la salida del biestable, que en esta medición se saca por el pin D2
Este es el resultado:
Tras el BIT-BANG la señal q
se pone a 1
(y el analizador empieza la captura). Al cabo de un ciclo (que dura 83.3ns), la salida q
se vuelve a poner a 0
. Comprobamos que efectivamente se trata de un tic inicial
La anchura del pulso se mide desde el Bit-bang. Vemos que efectivamente es de 1 ciclo. Antes del Bit-bang el pin está a 1
, pero es debido a la configuración de la FPGA
Recursos
Recurso | Cantidad | Máximo | Descripcioin |
---|---|---|---|
LC | 4 | 7680 | Celdas lógicas |
IO | 2 | 256 | Bloques de E/S |
Conceptos nuevos
- Pulso: Señal que está activa N ciclos y luego pasa a
0
- Pulso inicial: Un pulso que arranca en el ciclo 0
- Tic: Un pulso de duración 1 ciclo (N = 1)
- Tic inicial: Un pulso inicial de 1 ciclo
- Circuito TIC0: Circuito que genera un tic inicial. Se puede implementar de diferentes maneras
Enlaces
- Colección iceK: Colección para Icestudio. Constantes
- Colección iceFF: Colección para Icestudio. Biestables
Autor
- Juan González-Gómez (Obijuan)