Está en la página 1de 5

Politécnico Grancolombiano

CIRCUITOS LÓGICOS I
Taller de simulación

1. EJEMPLO:

En un procesador se realizan procesos de transferencia de datos entre registros y diferentes


componentes periféricos, procesos que deben ser realizados de manera sincronizada para
que no se presenten colisiones de datos y cada dato llegue a donde se necesita. En el
siguiente esquema se muestra la conexión a través de un bus de datos entre una memoria
RAM, un componente de transmisión serial, y registros individuales de propósito general.

El objetivo es diseñar un circuito que controle las diferentes señales que hay en el circuito
para que un dato que está en la memoria RAM sea enviado a través del puerto serial. El
proceso inicia cuando la señal del HABILITADOR pasa de 0 a 1.

Puerto Serial

Memoria RAM

El primer paso es determinar las entradas y salidas de cada elemento en el circuito:

 Para la memoria RAM:


o Dirección: Apuntador a la posición en la cual se encuentra el dato de interés.
o Habilita: Señal para que habilitar el funcionamiento de la memoria
o R/W: Señal que especifica la operación que hace la memoria. En 1 hace lectura y
pone en la salida D (conectada al bus de datos) el dato que está en la dirección
especificada. En 0 toma el dato que haya en el bus de datos y lo guarda en la
dirección.
 Para el puerto serial:
o LOAD: Señal que habilita el almacenamiento en el registro del dato que hay en el
bus de datos.
o Habilita: Señal para que habilitar el funcionamiento del puerto serial, es decir, el
desplazamiento del dato a la derecha en cada ciclo de reloj.
o OE (Output Enable): Habilita el paso del dato guardado en el registro al bus de
datos.
o CLK transmisión: El reloj que determina la velocidad a la cual se realiza la
transmisión, diferente al reloj del procesador, que es más rápido.

Posteriormente se determinan los estados y las variables involucradas:


Estados:
 Estado 0: Reposo, no se activa nada mientras no se reciba la señal del habilitador
 Estado 1: Inicia, se realiza la lectura del dato
 Estado 2: Carga, se guarda el dato en el puerto serial
 Estado 3: Transmisión, se transmiten los 8 bits del dato, al terminar, vuelve al estado 0.
Como son 4 estados, se puede realizar la máquina de estados con 2 flip flops.

Variables de salida:
Salidas de interés que controlará la máquina de estados:

 Habilitador de memoria RAM (ME: Memory Enable)


 R/W de memoria RAM (RW)
 Señal LOAD del puerto serial (LOAD)
 Señal Habilita del puerto serial (SE: Serial enable)
 Habilitador del contador de 4 bits (CE: Counter enable) Esta señal se configura de tal
manera que en los demás estados permite la carga del número 8 en el registro, y que en el
estado de transmisión permita el conteo descendente. El valor que la señal debe tomar
depende de las especificaciones del componente, en este caso, de cómo está configurado
el contador internamente en Logisim.

Variables entrada:
Señales que controlan la máquina de estados:
 Habilitador general del proceso.
 Contador de 4 bits. Como se requiere determinar en qué momento termina la transmisión,
se debe incluir adicionalmente un contador de 4 bits para realizar la cuenta. Esto también
permite independencia entre los relojes del procesador y del puerto serial, pues
normalmente las velocidades de procesamiento y de transmisión van a ser diferentes.
Se realiza la tabla de transición, que tiene 4 variables de entrada, dos corresponden a las salidas de
los FF (A y B), y dos que corresponden al habilitador general (HG) y al contador de 4 bits (CONT).
Los flip flops que corresponden al control de la máquina de estados se han seleccionado como tipo
T, y en la columna “Entradas FF” se especifica qué valor debería tener la entrada T según se
requiera cambiar o mantener la salida de ese flip flop. De igual manera se pueden usar FF tipo JK, e
implicará cambiar la columna de entrada T por dos columnas de entradas J y K.

Controles Estado Estado Entradas


Variables a controlar Descripción
externos actual siguiente FF
HG CONT B A B A TB TA ME RW LOAD SE CE
0 X X X 0 0 0 0 0 0 0 0 0
En el estado
1 0 0 0 0 1 0 1 0 0 0 0 0 inicial, está en
reposo y
solamente pasa
al siguiente
1 1 0 0 0 1 0 1 0 0 0 0 0 estado si está la
señal
1 0 0 1 1 0 1 1 1 1 0 0 0 En el siguiente
estado, se activa
la memoria para
1 1 0 1 1 0 1 1 1 1 0 0 0 lectura y pone el
dato en el bus de
datos
1 0 1 0 1 1 0 1 1 1 1 0 1 En el siguiente
estado, guarda la
información en el
1 1 1 0 1 1 0 1 1 1 1 0 1
registro de
desplazamiento
0 0 Si el contador no
ha terminado,
1 0 1 1 1 1 0 0 0 1 1
que queda en
este estado
1 1 Cuando termina,
1 1 1 1 0 0 0 0 0 1 1 vuelve al estado
de reposo

Esta tabla se puede ahora ingresar a Logisim para hacer el diseño del circuito:
El circuito definitivo queda de la siguiente manera, en donde se han cambiado los pines del primer
circuito y se han conectado a las salidas de la máquina de estados

Memoria

Puerto Serial

Contador
de 8 a 0

Máquina de
estado con Puerto Serial que
control recibe el dato

Se puede verificar con el reloj que si el pin HG está en cero, no sucede nada, y al habilitarlo inicia el
proceso transfiriendo el dato de memoria al registro de desplazamiento y posteriormente
haciendo la transmisión.
Trabajo a desarrollar:
Teniendo en cuenta el ejemplo presentado, seleccione dos de los procesos planteados a
continuación, y diseñe y verifique mediante simulación el funcionamiento de la máquina de estado
que ejecuta de manera automática el proceso. Adicional a los componentes mencionados en el
problema, puede añadir los componentes adicionales que considere necesarios para solucionarlo.
El resultado se presentará en la próxima sesión de simulación.

- A un bus de datos están conectadas dos memorias RAM con capacidad de 256 bytes.
Diseñe una máquina de estados que copie 16 bytes de una memoria RAM a la otra.
- A un bus de datos está conectada una memoria RAM con capacidad de 256 bytes. Diseñe
una máquina de estados que escriba en la memoria los números ascendentes de 0 a 50
empezando en la posición 0.
- A un bus de datos está conectada una memoria RAM con capacidad de 256 bytes y dos
registros independientes de 8 bits. Diseñe una máquina de estados que sume un dato de
la memoria con el dato de uno de los registros, y el resultado lo guarde en el otro registro.
escriba en la memoria los números ascendentes de 0 a 50 empezando en la posición 0.
-

También podría gustarte