Uploaded by wilar bejar diaz

Lab02 - CPU

advertisement
MICROELECTRÓNICA
Laboratorio 02:
Programación de
un CPU
Mg. Jorge HUARCA
JLHQ
Aqp - Perú
Mensaje motivacional
Evite escuchar malos comentarios
Fuente:
2
JLHQ
Aqp - Perú
Recordando la sesión anterior
 Indicar los pasos para realizar un circuito en un FPGA
3
JLHQ
Aqp - Perú
Capacidad terminal
 Obtiene criterios teóricos y técnicos para el diseño de sistemas
embebidos por medio de circuitos FPGA usando el lenguaje concurrente
VHDL así como el uso de herramientas tecnológicas para el diseño de
circuitos y dispositivos embebidos, los cuales son usados con
responsabilidad en beneficio de la sociedad.
30 %
a) Aplica conocimientos de ciencias básicas para comprender la
fabricación y aplicación de dispositivos y Micro-dispositivos en FPGA
mediante lenguaje de bajo nivel VHDL.
b) Diseñar y programar eventos discretos secuenciales en dispositivos
FPGA por medio de VHDL.
c) Diseñar, implementar y evaluar sistemas de control en FPGA y
microsistemas utilizando hardware y periféricos de comunicación.
4
JLHQ
Aqp - Perú
Elementos de la capacidad terminal /
Competencia específica de la sesión
 Al finalizar el laboratorio los alumnos realizan la programación
de un CPU en un FPGA por medio de lenguaje VHDL para una
mejor comprensión de VHDL.
5
JLHQ
Aqp - Perú
Contenidos de la sesión
 Partes de un CPU.
 Registros.
 Entidad y I/O
 Code Operation
6
JLHQ
Aqp - Perú
Explicación de CPU
•
•
•
•
PC (Program Counter)
Instruction decoder
ALU (Arithmetic Logic Unit)
Registers
PC
ALU
R0
R1
CPU
Instruction decoder
R2
R3
registers
7
JLHQ
Aqp - Perú
Register
El CPU contiene 4 registros de 4 bits cada uno para trabajar con
ALU. Los registros pueden funcionar como registro fuente (Rs) o
registro destino (Rd), estos registros son apuntados por medio de
dos bits.
Dirección
Register Name
4 bits
Rd_1
Rd_0
Rs_1
Rs_0
0
0
R0 (0 0 0 0)
0
0
0
0
0
1
R1 (0 0 0 0)
0
1
0
1
1
0
R2 (0 0 0 0)
1
0
1
0
1
1
R3 (0 0 0 0)
1
1
1
1
8
JLHQ
Aqp - Perú
Register Status
El registro Status guarda información adicional después de haber
realizado una operación lógica matemática, esta conformado por 4
bits.
Status
Bit Name
Name
Description
S3
Compare
Se pone a 1 cuando después de una operación de
comparación los valores sean iguales.
S2
Negative Flag
Se pone a 1 cuando después de una sustracción
exista acarreo
S1
Zero flag
Se pone a 1 cuando después de una operación
lógica matemática el resultado sea cero.
S0
Carry Flag
Se pone a 1 cuando después de una adición existe
acarreo, también el caso de rotación de bits
9
JLHQ
Aqp - Perú
Entity of CPU
La siguiente figura muestra la propuesta de la entidad. Rd y Rs
sirven para direccionar los registros del CPU, K sirve para asignar
datos y code operation para seleccionar el tipo de instrucción a
realizar. El Button sirve para ejecutar la operación.
10
JLHQ
Aqp - Perú
Entity of CPU
Para las salidas se tiene 4 bits (leds) para visualizar el valor de
Status, y dos adicionales para visualizar los valores de los registros
destino y fuente (según sean direccionados).
11
JLHQ
Aqp - Perú
I/O del CPU
Para interactuar con el CPU se propone las siguientes I/O de la tarjeta.
- Dos interruptores para seleccionar el registro Destido
- Dos interruptores para seleccionar el registro Fuente
- Cuatro interruptores k3 k2 k1 k0 para inyectar valores.
- Cuatro interruptores Code Op. Para seleccionar el tipo de instrucción.
Button (CLK)
12
JLHQ
Aqp - Perú
I/O del CPU
Para las salidas se propone la utilización de leds.
- Cuatro leds para visualizar el registro Destino
- Cuatro leds para visualizar el registro Fuente
- Cuatro leds para visualizar el registro Status.
13
JLHQ
Aqp - Perú
Code Operation
Code Operation
Descripción
0
0
0
0
Clear Status
0
0
0
1
MOV: Rd <= K
0
0
1
0
MOV: Rd <= Rs
0
0
1
1
ADD: Rd <= Rd + Rs , afecta status
0
1
0
0
ADDI: Rd <= Rd + K , afecta status
0
1
0
1
SUB: Rd <= Rd - Rs , afecta status
0
1
1
0
SUBI: Rd <= Rd - K , afecta status
0
1
1
1
AND: Rd <= Rd & Rs
1
0
0
0
ANDI: Rd <= Rd & K
1
0
0
1
COM: Rd <= Complemento a uno
1
0
1
0
CP: Status (S3) <= Compare Rd, Rs
1
0
1
1
CPI: Status (S3) <= Compare Rd, K
1
1
0
0
BCF: Rd (bit) <- 0 , bit esta dado por K
1
1
0
1
BSF: Rd (bit) <- 1 , bit esta dado por K
14
JLHQ
Aqp - Perú
Code Operation – Instruction
ADD
Description:
Adds two registers and the contents of the C Flag and places the result in
the destination register Rd.
Operation:
Rd <= Rd & Rs
Ejemplo
Antes de ejecución: R3 = 8, R2 = 11, R1 = 2 y R0 = 3 // S0 (Carry) = 0;
Después de ejecución: R3 = 8, R2 = 11, R1 = 5 y R0 = 3 // S0 (Carry) = 0;
15
JLHQ
Aqp - Perú
Code Operation – Instruction
ADDI
Description:
Adds one register with the literal K and the contents of the C Flag and
places the result in the destination register Rd.
Operation:
Rd <= Rd + K
Ejemplo
Antes de ejecución: R3 = 8, R2 = 11, R1 = 2 y R0 = 3 // S0 (Carry) = 0;
Después de ejecución: R3 = 3, R2 = 11, R1 = 5 y R0 = 3 // S0 (Carry) = 1;
16
JLHQ
Aqp - Perú
Evaluación de la sesión 1
Implemente la instrucción ADDI en la tarjeta Nexys A7
17
JLHQ
Aqp - Perú
Evaluación de la sesión 2
Implemente todas las instrucciones en la tarjeta Nexys A7
18
JLHQ
Aqp - Perú
Resumen de la sesión
 Partes de un CPU.
 Registros.
 Entidad y I/O
 Code Operation
19
JLHQ
Aqp - Perú
Recomendaciones
 Revisar información y ejercicios de :
21
JLHQ
Aqp - Perú
Thanks for your
attention
JLHQ
Aqp - Perú
Related documents
Download