Introducción
Los circuitos secuenciales son aquellos que modifican el resultado de una operación utilizando tanto las entradas, como los estados previos del sistema. Esto permite al sistema tener memoria, lo cual facilita la ejecución de múltiples operaciones más complejas a lo largo del tiempo, efectivamente transformando información.
Para construir circuitos secuenciales se utiliza el componente FlipFlop, que es un componente sencillo que permite almacenar un único bit. Las estructuras de memoria activa se construyen con múltiplies FlipFlops alineados en estructuras regulares que pueden ser seriales o paralelas, estas estructuras se llaman Registros.
Objetivo
Practicar la aplicación de los FlipFlops para la construcción de registros y su interacción con componentes combinatorios en el diseño de Unidades Centrales de Procesamiento.
Instrucciones
Diseñe una Unidad Central de Procesamiento (CPU) que incluva los siguientes componentes:
1. Instrucciones y Control de Instrucciones
- Debe incorporar 16 Inputs de 8 bits cada uno. Cada Input en este caso representará una instrucción previamente cargada a la computadora.
- Debe incorporar un contador de programa de 4 bits que indique por cuál instrucción va ejecutando el procesador
- Cuando la CPU llegue al final del programa deberá apagar el bit Encendido y reiniciar el contador de programa a 0
2. Registros de Datos
- Debe incorporar 8 registros de 8 bits cada uno
3. ALU
- Debe utilizar la ALU de Circuitverse para ejecutar operaciones aritmético lógicas
4. Salida (Representa la memoria RAM)
- Debe incorporar un Output de 8 bits el cual se referirá en adelante como "Salida"
5. Bit de Encendido
- Su circuito debe incorporar un Input de 1 bit tal que si el bit está en O la CPU no funcione, si el bit está en 1 la CPU funcione
Su CPU debe ser capaz de ejecutar las siguientes instrucciones, codificadas según se indica:
- 0000 AA BB - ADD: Sume el contenido del registro A con el contenido del registro B y almacene el resultado en el registro A
- 0001 AA BB - SUB: Reste el contenido del registro A con el contenido del registro B y almacene el resultado en el registro A
- 0010 AA BB - MUL: Multiplique el contenido del registro A con el contenido del registro B y almacene el resultado en el registro A
- 0011 AA BB - DIV: Divida el contenido del registro A con el contenido del registro B y almacene el resultado en el registro A
- 100 AAA XX - LOAD: almacene el valor literal representado por XX en el registro A
- 101 AAA 00 - STORE: copie el valor del registro A a la Salida
- 11 AAA BBB - Copie el valor del registro B en el registro A
- Cualquier otra combinación deberá interpretarse como NOOP
Instrucciones adicionales
- Su circuito deberá utilizar un Reloi para sincronizar todos sus componentes, de esta forma se podrán incorporar los componentes combinatorios con los registros.
- Los registros de su circuito deberán ser de tipo Paralelo-Paralelo.
- Deberá usar un FlipFlop tipo D para la implementación de sus registros.
- Deberá usar HexDisplay para mostrar el contenido de cada registro en su sistema, estos deberán mostrar el contenido en dos dígitos hexadecimales.
- Puede utilizar la ALU, y los componentes de la sección Decoders & Plexers de Circuitverse para construir su circuito.
Comments