CU4 PROYECTO CU4 DISEÑO EN VHDL DE MICROPROCESADOR ELEMENTAL CON UN REGISTRO INTERNO DE DATOS PARA REALIZAR OPERACIONES INTERNAS BÁSICAS.

Documentos relacionados
CU4 PROYECTO CU4 DISEÑO EN VHDL DE MICROPROCESADOR ELEMENTAL CON UN REGISTRO INTERNO DE DATOS PARA REALIZAR OPERACIONES INTERNAS BÁSICAS.

CU6 FPGA. up16 DIV_CLK CLK_UP16 CLK PC16R MUXMAR BUS MAR RST DIR MEM MEMORIA MEMORIA BUS MUXRX DATA MEM BUS CONTROL CPU ALU BUS MDRO MDRI DATA MEM OUT

SEMINARIO DE EXTENSIÓN DE ISLD

Diseño y verificación en VHDL de microcontrolador implementado en FPGA

Diseño y verificación en VHDL de microcontrolador implementado en FPGA

MÓDULO 2 Sergio Noriega

MÓDULO 2 Sergio Noriega

Ejercicios del tema 4. El procesador

Organización de Computadoras. Clase 6

Ejercicios del tema 4. El procesador

PROYECTOS EN VHDL PARA CONTROL DE MONITOR VGA DESDE UNA FPGA

Unidad de Entrada-Salida Software de sistemas Parámetros característicos Ejemplo

Memoria y Buses. Organización de Computadoras Universidad Nacional de Quilmes

TEMA 4 ESTRUCTURA VON-NEUMANN DEL COMPUTADOR DIGITAL

Examen de Arquitectura de Computadores 15 de septiembre de 2004

Elementos constituyentes de la ejecución de un programa

Microprocesador. Introducción. Instituto Sagrado Corazón de Jesús

SelectRAM+memory Bloques de memoria RAM En las FPGAs Spartan IIE

Lógica cableada: Lógica programada:

SEGUIMIENTO DE UNA INSTRUCCIÓN EN UNA CPU

El Microprocesador. Tecnología y Funcionamiento

La Unidad de Memoria y su

Estructura de Computadores

2.2-1 Visión Interna PIC16F873/876. SBM

ESTRUCTURA. Estructura básica de un computador ESTRUCTURA BÁSICA DE UN COMPUTADOR RELOJ. Unidad de control CPU ULA. Onda cuadrada RELOJ

Arquitectura de Computadores II Clase #3

Práctica 7 - Microarquitectura del CPU

Tema 4. La Unidad de Control

3 - Arquitectura interna de un up

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE BOGOTÁ FACULTAD DE INGENIERÍA INGENIERÍA MECATRÓNICA

Laboratorio 4. Objetivos

ORGANIZACIÓN DEL MICROCOMPUTADOR

Contador Universal CU13. Contador Universal. Out_bcd3 Out_bcd2 Out_bcd1 Out_bcd0 Overflow End of Conversion. Medidor de Frecuencias

SISTEMAS OPERATIVOS Arquitectura de computadores

Primer Microprocesador: 4004, Intel, año bits de ancho de palabra de datos Intel 8 bits dir. 64K Z80

SISTEMAS ELECTRÓNICOS DIGITALES

Estructura de Computadores (EdC) Tema 3 El computador simple

Tema 0. Introducción a los computadores

EJECUCIÓN DE INSTRUCCIONES

Conceptos de Arquitectura de Computadoras Curso 2015

1.- Determina la funcionalidad del siguiente código VHDL. LIBRARY ieee; USE ieee.std_logic_1164.all;

Estructura del Computador

Microcontroladores. Unidad 1

ESTRUCTURA Y TECNOLOGÍA DE LOS COMPUTADORES II BOLETÍN 3 MEMORIAS SEMICONDUCTORAS

COMPUTADORA. Introducción Las computadoras se usan en diversas aplicaciones

Electrónica Digital. Actividad Dirigida. Implementación de un Cronómetro Digital

Práctica 4 - Microarquitectura del CPU

Aspectos avanzados de arquitectura de computadoras Pipeline. Facultad de Ingeniería - Universidad de la República Curso 2017

Guía de ejercicios # 3 Memoria, Buses, Q2 y Accesos

Organización de computadoras. Clase 4. Universidad Nacional de Quilmes. Lic. Martínez Federico

PROBLEMA 1 (2.5 puntos): SOLUCIÓN

MEMORIA EJERCICIO 1 EJERCICIO 2

Procedimiento para el diseño de un mapa de memoria de un sistema basado en microprocesador:

UNIDAD 3 ARQUITECTURA DEL Z80. Microprocesadores Otoño 2011

Memoria principal e Interconexión

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Cuestiones. Estructura y Tecnología de Computadores (IG09) 1 er Parcial 12 de sept. de 2002

Introducción a los microprocesadores / microcontroladores

ORGANIZACIÓN DE LA MEMORIA

Modelo Computacional Binario Elemental

MICROPROCESADOR (CÓDIGO EN VHDL) TOMADO DEL LIBRO PARDO Y BOLUDA

ARQUITECTURA DE COMPUTADORES DESCRIPCIÓN BUS PCI (Tema 1: Conexión Externa de Procesadores. Buses)

Repaso Registros internos Z80 1/37

Ejercicio 1. Considere el siguiente fragmento en ensamblador:

5. Procesador: camino de datos y control


MPD: MICROPROCESADOR DIDÁCTICO EN VHDL Javier Hernández 1, César Sanz 2, Antonio Carpeño 3 y Bernardo Merino 4

Tema 4. La Unidad de Control

Arquitectura de computadores I

INTEGRANTES: AMEZQUITA MERCADO JUDITH ADRIANA. MORENO MEZA JHOANA JOSSELYN. ORTEGA ALEJANDRO JOSÉ FRANCISCO. ZAVALA RAMÍREZ SILVIA DEL C.

LABORATORIO DE ARQUITECTURA DE COMPUTADORES. I. T. I. SISTEMAS / GESTIÓN GUÍA DEL ALUMNO

Tema 0. Introducción a los computadores

Titulación: Ingeniería Informática Asignatura: Fundamentos de Computadores. Bloque 3: Sistemas secuenciales Tema 9: Módulos secuenciales básicos

a) (5ptos) Extienda la microarquitectura para poder soportar interrupciones. Justifique por separado el agregado de cada componente.

2. PANTALLA ALFANUMÉRICA DE LCD (HITACHI HD44780U)

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES II BOLETÍN 4 MICROPROCESADOR MC 68000

Introducción a la arquitectura de computadores

LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION

Máquina Sencilla: de 1988 a La Máquina Sencilla en Verilog Patricia Borensztejn Mayo 2016 Diseño de Sistemas con FPGA

Introducción a los Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal

ARQUITECTURA DEL PIC16F84A

CICLOS DEL PROCESADOR

Integración de Equipos para Comunicaciones

(1) Unidad 1. Sistemas Digitales Basados en Microprocesador SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

Dispositivos de Memoria

Memoria y Entrada/Salida Tecnología Organización - Expansión

Capítulo 3. Microcontroladores 3.1 Definiciones

Microcontrolador PIC16F84: Arquitectura

Transcripción:

CU4 PROYECTO CU4 DISEÑO EN VHDL DE MICROPROCESADOR ELEMENTAL CON UN REGISTRO INTERNO DE DATOS PARA REALIZAR OPERACIONES INTERNAS BÁSICAS. SE AGREGA A PARTIR DE ESTE PROYECTO, UN DIVISOR DE FRECUENCIAS DIV_CLK PARA PODER MODIFICAR LA FRECUENCIA DE RELOJ A LA ENTRADA DEL MICRO.

MEMORIA MEMORIA PC16R X 0000 MAR CU4 CLK DIV_CLK CLK_UP16 up16 FPGA RST BUS DIR MEM RX IR CPU MDRO MDRI BUS CONTROL BUS DATA MEM IN BUS DATA MEM OUT

CU4 SET DE INSTRUCCIONES EMPLEANDO EL REGISTRO RX INSTRUCCIONES QUE INSUMEN UNA SOLA POSICIÓN DE MEMORIA DE PROGRAMA: (UN OPERANDO) CLR RX INC RX DEC RX NOP RST -- Borrar contenido de registro RX (información en posición MEMCODE). -- Incrementar contenido de registro RX (información en posición MEMCODE). -- Decrementar contenido de registro RX (información en posición MEMCODE). -- No realiza ninguna operación (los registros internos quedan inalterados.) -- Borrar el contenido del contador de programa PC16R. INSTRUCCIONES QUE INSUMEN DOS POSICIONES DE MEMORIA DE PROGRAMA: (DOS OPERANDOS) LDI RX -- Cargar contenido de memoria de programa MEMCODE+1 en registro RX.

CU4 PSEUDO CÓDIGO DESCRIPCIÓN CLR RX (RX) <- 0 Borrar el contenido previo de RX. INC RX (RX) <- (RX) +1 Incrementar el contenido previo de RX DEC RX (RX) <- (RX) -1 Decrementar el contenido previo de RX. LDI RX (RX) <- (MEMCODE+1) Cargar a RX con el contenido que tiene la siguiente posición de memoria de programa que es MEMCODE+1. NOP No realiza ninguna operación. RST (PC16R) <- X 0000 Borrar el contador de programa. (Inicia el programa desde el principio).

CU4 POSICIÓN DE MEMORIA MEMCODE PC16 MAR BUS DE DIRECCIONES POSICIÓN DE MEMORIA MEMCODE +1 POSICIÓN DE MEMORIA MEMCODE + 2... MEMORIA DE PROGRAMA POSICIÓN DE MEMORIA MEMCODE + N POSICIÓN DE MEMORIA MEMDATA IR MDRI BUS DE DATOS DE ENTRADA POSICIÓN DE MEMORIA MEMDATA +1 POSICIÓN DE MEMORIA MEMDATA + 2... MEMORIA DE DATOS POSICIÓN DE MEMORIA MEMDATA + M up16

CU4 Trabajos a realizar por el microprocesador Reset BÚSQUEDA DE LA INSTRUCCIÓN DECODIFICACIÓN DE LA MISMA EJECUCIÓN DE LA INSTRUCCIÓN

CU4 Subtrabajos a realizar por el microprocesador 1 2 3 4 5 6 DIRECCIONAR LA 1RA. POS.DE MEMORIA DE PROGRAMA (MEMCODE): PC16 <= X 0000 (i=0) LEER EL DATO: MDRI <= (MEMCODE(i)) TRANSFERIR AL REGISTRO IR : IR <= MDRI. DECODIFICAR SU CONTENIDO: SI HAY QUE LEER LA SIGUIENTE POS. DE MEMORIA: INCREMENTAR PC16 : (i= i+1) LEER DATO: MDRI <= (MEMCODE(i)+1) TRANSFERIR A REGISTRO RX : EJECUTAR LA MÁQUINA DE ESTADO. INCREMENTAR PC16 : (i=i+1). 7 VOLVER A EJECUTAR PUNTO (2) 2

CU4 IR 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 00000000 = CLR RX 00000001 = INC RX 00000010 = LDI RX 00000011 = DEC RX 00000100 = NOP 10000000 = RST TODOS EN 0

CU4 CONTENIDO DEL ARCHIVO RAM.HEX PARA ESTE PROYECTO Contenido de la memoria de programa a verificar. Instrucciones cargadas en RAM: LDI RX, 0007 DEC RX DEC RX DEC RX NOP CLR RX INC RX INC RX LDI RX, 0006 RST

Descripción en VHDL de un registro-contador de 16 bits preseteable (PC16R)

PC16R FPGA clockpc opselecrpc(1..0) GENERADOR DE ESTÍMULOS DESDE TEST BENCH entradapc salidapc 16 16 resetpc PC16R

PC16R

PC16R TEST-BENCH DE PC16R

PC16R

PC16R

PC16R opselecpc = 11 ó 00 no modifican la salida

IR IR FPGA clockir GENERADOR DE ESTÍMULOS DESDE TEST BENCH escribirir entradair salidair 16 16

IR

IR TEST-BENCH DE IR

IR

IR

CU4 RESET EJECUTAR EJECUTAR EJECUTAR EJECUTAR EJECUTAR SI SI SI SI SI BUSCAR INSTRUCCIÓN ES RST? NO ES LDI RX? NO ES CLR RX? NO ES INC RX? NO ES DEC RX? NO ES NOP? SI

CU4

CU4

CU4

CU4

CU4

CU4

CU4

CU4

CU4

CU4

CU4

CU4

CU4

DIV_CLK DIVISOR DE FRECUENCIA DE RELOJ PARA MICRO CU4 Ejemplo: clk_in_div = 50 MHz clk_out_div = 5 MHz DIV_CLK_TST es lo mismo pero con clk_out_div = 1 Hz donde clk_out_div conmuta cuando counter = 24.999.999.

CU4 REPORTE DEL COMPILADOR

DIV_CLK DIVISOR DE FRECUENCIA DE RELOJ PARA MICRO CU4 clk_in_div = 50 MHz clk_out_div = 5 MHz

CU4 Diagrama temporal de la simulación de CU4 (primera parte)

CU4 LDI RX, 0007 Inicio y trabajos con la primera instrucción (0200) DEC RX Trabajos con la 2da, 3ra y 4ta instrucción (0300)

CU4 CLR RX NOP Trabajos con la sexta instrucción (0000) Trabajos con la quinta instrucción (0000)

CU4 INC RX RST Trabajos con la 7ma y 8va instrucción (0100) LDI RX, 0006 Trabajos con la novena instrucción (0200)

CU5 PROYECTO CU5 DISEÑO EN VHDL DE MICROPROCESADOR ELEMENTAL CON UN REGISTRO INTERNO DE DATOS CON ACCESO DIRECTO A LA MEMORIA DE DATOS PARA REALIZAR OPERACIONES DE LECTURA Y ESCRITURA.

MEMORIA MAR MUXMAR PC16R CU5 CLK RST DIV_CLK CLK_UP16 0 up16 FPGA BUS ADDRESS 1 BUS DATA_IN RX IR CPU MDRO MDRI BUS CONTROL BUS DATA_OUT

SET DE INSTRUCCIONES EMPLEANDO EL REGISTRO RX INSTRUCCIONES QUE INSUMEN UNA SOLA POSICIÓN DE MEMORIA DE PROGRAMA: CLR RX INC RX DEC RX RST -- Borrar contenido de registro RX (información en posición MEMCODE). -- Incrementar contenido de registro RX (información en posición MEMCODE). -- Decrementar contenido de registro RX (información en posición MEMCODE). -- Borrar el contenido del contador de programa PC16R. INSTRUCCIONES QUE INSUMEN DOS POSICIONES DE MEMORIA DE PROGRAMA: LDI RX -- Cargar contenido de memoria de programa MEMCODE+1 en registro RX. Nuevas instrucciones LDD RX -- Cargar contenido en el registro RX, desde la dirección de memoria de datos que está contenida en la posición MEMCODE +1 (DIRECCIONAMIENTO DIRECTO). STR RX -- Almacenar contenido del registro RX en la memoria cuya dirección está indicada en la posición MEMCODE +1 (DIRECCIONAMIENTO DIRECTO).

CU5 PSEUDO CÓDIGO DESCRIPCIÓN CLR RX (RX) <- 0 Borrar el contenido previo de RX. INC RX (RX) <- (RX) +1 Incrementar el contenido previo de RX DEC RX (RX) <- (RX) -1 Decrementar el contenido previo de RX. LDI RX (RX) <- (MEMCODE+1) Cargar a RX con el contenido que tiene la siguiente posición de memoria de programa que es MEMCODE+1. RST LDD RX (RX) <- ((MEMCODE+1)) STR RX (MEMDATA) <- (RX) Borrar el contenido del contador de programa. En el contenido de MEMCODE+1 está almacenada la dirección de memoria de datos cuyo contenido debe transferirse a RX. En el contenido de MEMCODE+1 está almacenada la dirección de memoria de datos cuyo contenido debe cargarse con el contenido almacenado en RX.

CU5 IR 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 00000000 = CLR RX 00000001 = INC RX 00000010 = LDI RX 00000011 = DEC RX 00000100 = NOP 10000000 = RST 00000101 = LDD RX 00000110 = STR RX TODOS EN 0 (RX) [(MEMCODE+1)] [(MEMCODE+1)] (RX) *(MEMCODE)+ significa El contenido de la memoria de datos cuya dirección está escrita como contenido de MEMCODE +1

CU5 0000 PC16 MAR BUS DE DIRECCIONES 0001 0002...... MEMORIA DE PROGRAMA 07FF 0800 IR MDRI BUS DE DATOS DE ENTRADA 0801 0802...... MEMORIA DE DATOS 0FFF up16

CU5 INICIALIZACIÓN DE MEMORIA EN BASE AL ARCHIVO RAM.HEX Instrucciones cargadas en RAM: LDI RX, 000E INC RX STR RX, 0800 CLR RX LDD RX, 0800 RST

CU5 INICIALIZACIÓN DE MEMORIA EN BASE AL ARCHIVO RAM.HEX SIMULACIÓN DE LA RAM CON INICIALIZACIÓN PARA ESTE PROYECTO

Descripción en VHDL de un MUX 2:1 de 16 bits de ancho de bus (MUXMAR)

MUXMAR

MUXMAR TEST-BENCH DE MUXMAR

MUXMAR

MUXMAR

CU5

CU5

CU5 SI LAS INSTRUCCIONES SON DE DOS OPERANDOS (LDI, LDD, STR) SE COMPARTE LA RUTINA DE LEER EL OPERANDO DESPUÉS DE LA INSTRUCCIÓN, QUE PUEDE SER DATO (LDI_RX) O UNA POSICIÓN DE MEMORIA (LDD_RX, STR_RX)

CU5 OPERANDO YA LEÍDO. SE DEBE LUEGO DETERMINAR QUE SE HACE SEGÚN LA INSTRUCCIÓN.

CU5 DEFINO DONDE SALTO. SI ES LDI_RX, SÓLO TENGO QUE CARGAR EL DATO ANTERIOR LEÍDO, EN EL REGISTRO RX

CU5 AQUÍ COMIENZA LA MISMA RUTINA PARA LDD_RX Y STR_RX, DONDE HAY QUE DIRECCIONAR LA RAM DE DATOS, PARA LEERLA (LDD_RX) Ó ESCRIBIRLA (STR_RX).

CU5 AQUÍ DECIDO SI LEO O ESCRIBO. SI DEBO LEER LA RAM...

CU5 PARA NO REPETIR ESTADOS APROVECHO PARTE DE LA RUTINA DE LDI_RX SALTO A ESTADO 23 SI DEBO ESCRIBIR LA RAM... HAY QUE: -- ESCRIBIR REGISTRO MDRO. -- SUBIR LA SEÑAL WREN. -- Y LUEGO BAJARLA.

CU5

CU5 DESCRIPCIÓN DE LAS INTERCONEXIONES ENTRE LOS DIFERENTES COMPONENTES, ENTRADAS Y SALIDAS.

CU5 REPORTE DEL COMPILADOR

CU5 Diagrama temporal de todo un período de instrucciones TIEMPO TOTAL DEL CICLO DE INSTRUCCIONES 192 us