domingo, 28 de noviembre de 2010

cpu de 4 bits-INTERFAZ DE PROGRAMADOR

Control
Hay tres modos de operación: ejecutar, restablecer  y programa.  Un programa puede ser cargado en la memoria en el modo de programa y, por supuesto, el programa se ejecuta en modo de ejecución. El modo de restablecer pone todo el CPU en el reinicio. El modo de reposición es la posición central en el selector giratorio de tres vías para que la transición de modo de ejecución a modo de programa solo sea a través de restablecimiento. La CPU está en modo de restablecer mientras esta en el modo de programación también. Los LED de la dirección y la instrucción se iluminan en el modo de restablecer, porque todo en la CPU está en estado de alta impedancia en ese momento.

Programador
El buffer 74244 se encuentra en estado de  alta impedancia en el modo de ejecución y  modo reset y son activados durante el modo de programación.
Las direcciones de memoria, las instrucciones y los datos del programa se ingresan a través de los interruptores.  Los led conectados al 74244 muestran las direcciones de memoria, las instrucciones y los datos del programa durante el tiempo de ejecución.  Los contenidos del acumulador y los registros de bandera son mostrados durante el tiempo de ejecución a través del 74244.  Para observar el acumulador y las banderas durante las pruebas.


cpu de 4 bits-E_S

Los datos de salida son capturados en el 74175 y enviados hacia la salida a través de la mitad del buffer 74LS244.  Así mismo la entrada viene a través de la otra mitad del buffer 74LS244.  Al leer de la entrada, se activa el bus de datos para tres ciclos de reloj mientra el acumulador se carga.

cpu de 4 bits-MEMORIA Y DIRECCIONAMIENTO

El programa se guarda en una memoria RAM estática 2114 y dirigida por un contador de programa y un segmento de registro.
La dirección de memoria es posible observarla durante el ciclo de recuperación y durante la ejecución de la instrucción. La dirección de memoria de cierre es necesario dado que el registro de contador y segmento del programa puede cambiar cuando se ejecuta la instrucción (durante  reinicio o salto de instrucción).
Los nuevos valores en el contador de programa y el segmento de registro (si existe) serán confiables durante el siguiente ciclo de recuperación.

Direccionamiento
El contador del programa 74161 es un contador de 4 bits.  La entrada para  el reinicio 74LS161 se activa en baja.
Durante la ejecución del programa, el contador de programa se incrementa para cada instrucción y suministra  los cuatro bits menos significativos de la dirección de memoria. El contador de programa puede restablecerse durante un reinicio de la CPU o la instrucción de RESTART. El contador de programa también se restablece cuando se cambia el registro de segmento. La compuerta AND en la entrada del 74LS161 permite el restablecimiento de la CPU mediante la instrucción de RESTART restableciendo el contador de programa.
El registro de segmento 74LS175 es un cerrojo de cuatro bits. Esto proporciona los cuatro bits más significativos de la dirección de memoria. El registro de segmento se carga desde el acumulador durante una instrucción de JUMPL, JUMPE o JIMPG, si se establece el indicador apropiado.
La dirección de memoria es asegurada en un cerrojo de ocho bits, el circuito integrado 74LS374. La dirección se mantiene en el cierre durante la ejecución de la instrucción y se actualiza durante el ciclo de recuperación. Las salidas del 74LS374 son tri-Estado y se ponen en modo de alta impedancia cuando la memoria se está carganda con un programa.

Memoria
La memoria del programa se almacena en dos 2114 RAM estática. 2112s se podrían haber utilizado también. Dado que sólo se utiliza una dirección de ocho bits, el programa está limitado a 256 instrucciones. La dirección es suministrada por la dirección guardada en el 74LS374 durante el tiempo de ejecución del programa y desde la interfaz de programación durante la programación.  Los datos de instrucción de la memoria RAM  se conectan al bus de datos donde se pueden cargar en el acumulador. El código de la instrucción de la memoria RAM está conectado al circuito de micro-instrucción y se utiliza como una compensación por la carga del código de micro-instrucción. Las puertas AND se utilizan para generar la adecuada selección y escribir señales para los 2114s. Una señal /PRG WRITE de la interfaz de programación de ambas selecciona la memoria y escribe en ella. Las salidas en el 2114 son tri-estados y pone en modo de alta impedancia cuando no está seleccionado. Durante el la ejecución del programa, la instrucción de programa en la RAM siempre esta selecciona (modo de lectura), mientras que los datos de programa de la RAM se seleccionan para leer sólo para cargar el acumulador con un valor literal o al comparar el acumulador a un valor literal.


cpu de 4 bits-RELOJ Y MICROINSTRUCCION

Reloj
la señal de reloj de este circuito esta diseñada con el circuito integrado 555 para generar señales en un rango de 0.5 0.8 segundos.

Secuenciación
Un 74LS93 se utiliza para la secuenciación de la lógica de micro-instrucción en el 2716 EPROMs. El código para cada instrucción es de cuatro palabras de 16 bits. Un programa se compone de instrucciones, sin embargo, la CPU necesita saber la forma de ejecutar estas instrucciones lo cual se conoce como la lógica de micro-instrucción, o  código de micro-instrucción. Este código se almacena en la EPROM. Cada vez que una instrucción de programa se ejecuta, cuatro de estas palabras de 16 bits de código de micro-instrucción se ejecuta. Las salidas de las memorias EPROM se utilizan para controlar la conmutación de la CPU.

El primer grupo de código de micro-instrucción, en las direcciones de 0 a 3, es la instrucción de programa buscar código. La instrucción FETCH recupera la instrucción de programa de la memoria del programa. La instrucción FETCH siempre se ejecuta antes de cada instrucción de programa para ir a buscar la instrucción de la memoria del programa. La instrucción FETC nunca debe ser llamado desde un programa, es para ser utilizado sólo internamente por la CPU. Las instrucciones de la CPU restantes se encuentran en las direcciones del 4 al 7, 8 a 11, etc ..

Cuando el contador de ondulación (74LS93) cuenta, por lo menos dos bits significativos, A y B, que están conectados a las líneas de dirección  A0 y A1 de la EPROM, ciclo a través de uno de los cuatro, palabra de 16 bits microinstrucciones. Recuento de 0 a 3 ejecutar la captación de instrucciones. Durante los próximos cuatro cargos, la salida de C del contador es alta. La salida C se conecta a un grupo de cuatro puertas AND. Esto permite a cualquier código en las entradas de las puertas para estar presente en las líneas de dirección EPROM A2 a A5 (que de otro modo 0). El código en las entradas de las compuertas AND  es el código de la instrucción del programa de la memoria del programa. Los códigos de instrucción de programa se utilizan como un desplazamiento para seleccionar el grupo correcto de cuatro, los códigos de 16 bits de micro-instrucción.

Por lo tanto, para resumir, los primeros recuentos (0-3) realiza la captación de instrucciones para ir a buscar la instrucción de programa y la cuenta siguiente (4-7) ejecutar las instrucciones del programa. El proceso se repite de nuevo en cuenta 8-11 y 12 - 15. Puesto que la salida D del contador no se utiliza, no importa qué valor tiene, las salidas A, B, C y el ciclo de la misma manera.

Las salidas de la EPROM están conectadas a varios circuitos integrados en el circuito de la CPU. Se trata de contar hasta, cuenta atrás y la carga de insumos en el 74LS193 se utiliza como un acumulador, el cierre de entradas 74LS175 varios cierres y así sucesivamente. Algunas de estas líneas son de alta actividad y la necesidad de que se le mantenga en el estado de baja hasta que se necesite. Esto nos lleva a por qué existen inversores en muchos de los productos EPROM.

Cuando una línea de salida en el 2716 se mantiene baja para el ciclo de contar más de uno (por ceros que contiene), hay una falla en la salida cuando la dirección ha cambiado. Este fallo tiene este aspecto en un osciloscopio.

Por supuesto, estas fallas causan interrupciones en la CPU cuando no se desea. Los problemas técnicos no están presentes cuando la salida EPROM se lleva a cabo en un estado de alta. Por lo tanto, la solución al problema es mantener a todos los EPROM productivos. Cuando una salida tiene que ser bajo para un ciclo de reloj, un inversor se pone en la salida.
Hago hincapié en "un ciclo de reloj". A veces, una de las salidas debe ser baja para el ciclo de reloj de tres (en la memoria y el registro de carga en el acumulador). La celebración de la salida de EPROM de baja durante tres ciclos de reloj introduce de nuevo los fallos. La solución que he usado para este problema son los flip-flop. 74LS74 flip-flop se registran dentro y fuera de producir un fallo libre, tres del ciclo de baja producción.

cpu de 4 bits-ALU

El acumulador puede incrementar o decrementar.  El acumulador se puede comparar con uno de los registros o  con un valor literal en el código del programa. Una instrucción se compone de un código de instrucción de cuatro bits y de cuatro bits opcionales de los datos del programa. Estos datos del programa se pueden cargar en el acumulador o se pueden comparar con el acumulador. Los datos no se pueden escribir de nuevo en la memoria del programa en el tiempo de ejecución.

El acumulador 
El acumulador 74LS193  es un acumulador de  cuatro bits que se puede cargar con datos. Cualquier dato cargado desde la  memoria del programa o la entrada pasa a través del acumulador primero. También, los cuatro registros son leídos desde y  escritos por el acumulador. Cuando se carga el acumulador, la fuente de datos es habilitada en el bus de datos para tres ciclos de reloj. El acumulador se carga en el segundo ciclo de reloj (del medio). Esto se hace para asegurarse que las entradas en el 74LS193 sean estables cuando se cargan los datos.
 Los registros 
Los registros se ejecutan con un 74LS670, que es similar al 74LS170 pero tienen salidas  triple estado. Éste es un archivo de registro 4x4 (4 palabras de 4 bits). La dirección de los registros individuales se lleva a cabo en 74LS175 un cierre cuatro bits. El contenido del cierre de dirección del registro es escrito por el acumulador con la instrucción del registro. Las direcciones de entrada y de la salida son independiente una de otra. Cuando se lee un registro, la salida de registro se activa en el bus de datos mientras que se carga el acumulador. El formato de las direcciones del registro  es:
 Palabra de cuatro pedacitos: RRWW
WW –Escriba la dirección.
 RR – Lea la dirección.
00 – Coloque A
 01 – Coloque B
 10 – Coloque C
11 – Coloque D
 Comparando el acumulador y las banderas
El acumulador se puede comparar a un valor literal en la memoria del programa o un registro. Cuando se compara un valor literal, la memoria de los datos del programa (2114) se activa el bus de datos para tres ciclos de reloj, mientras que se fija el cierre de las banderas. Así mismo, para comparar el acumulador con un registro, el registro se activa el bus de datos para tres ciclos de reloj mientras que se fija el cierre de las banderas.
Un 74LS85, es un comparador de magnitud de 4 bit usado para hacer  comparaciones. Tiene tres salidas, menos que, igual y mayor que. Esto nos da tres banderas. La salida del 74LS85 está trabada en un cierre 74LS175 cuando se ejecuta un CMPL o una instrucción ejecutada. Utilizan a un grupo de compuertas AND y OR  para ejecutar un salto cuando se fija una bandera dada. La salida  LTCH SEG de la última OR de la compuerta cargará el cierre del segmento de la dirección de programa con el contenido del acumulador cuando pasa a ALTO. Las conexiones de JMPL, de JMPE y de JMPG a la compuerta AND determinan la bandera a comprobar para saber si hay un salto. Si se fija la bandera, el registro de segmento se carga causando el salto de la ejecución de programa a otro segmento del programa.