You are on page 1of 36

Digital III - Curso 2011

Docentes Ing. Sergio Geninatti Ing. Gerardo Gennai Ing. Lionel Hendrik Ms. Ing. Santiago Roatta Ing. Gustavo Minnucci

Horarios de Clase: Lunes 20:30 a 23:00 Mircoles 19:30 a 23:00 Horarios de Consulta: Durante el horario de clases

Ing. Gustavo Minnucci - Digital III

Bibliografa
Libros: Los microprocesadores INTEL Barry B. Bray - ISBN: 968-880-481-9 Introduccin al microprocesador 8086/8088 C. Morgan - ISBN: 968-451-628-2 Hojas de datos: Intel 80C86 Chipset disponibles en el sitio web de la asignatura Las hojas de datos se encuentran para bajar desde el sitio web Sitios WEB: Asignatura: www.eie.fceia.unr.edu.ar/digital3 Otros: www.intel.com www.intersil.com www.xilinx.com
Ing. Gustavo Minnucci - Digital III

Metodologa de trabajo y Evaluacin


Trabajo en grupos de hasta 4 personas Asistencia a clase individual Trabajos Prcticos grupales Cuestionarios y Parciales individuales Evaluacin continua del trabajo en clase Coloquio Final Grupal / Individual

Ing. Gustavo Minnucci - Digital III

Digital III
El Microprocesador i80c86

Pinout del Microprocesador i80c86


ADDRESS / DATA Bus Decodificador de Instrucciones & Unidad de Control

Oscilador a Cristal

Bus de direcciones / Datos (Multiplexado) (AD0 AD15)

ADDRESS / STATUS Bus

Circuito de Reset

Unidad Aritmetico Lgica Registros


AX BX CX DX CS DS ES BP SI DI PSW IP

Bus de direcciones / Status (Multiplexado) (A16/S3 - A19/S6)

CONTROL Bus

Microprocesador

Bus de control /RD, /WR, /ALE, etc Ing. Gustavo Minnucci - Digital III

Arquitectura Interna i80c86

Ing. Gustavo Minnucci - Digital III

Generacin de direcciones Fsicas


(con segmentacin)
Registro de SEGMENTO Registro de OFFSET Las direcciones constituyen el mecanismo que permite al microprocesador comunicarse con el resto de los dispositivos (memorias, perifricos, etc) 16 bits SEGMENT Register 4 bits 0000

Address Bus (A0 - A19) DIRECCION FISICA

16 bits OFFSET register

Physical Address 20 bits Ej: jmp 0001h


( CS: 8000h ) ( OFFSET : 0001h )

CS ( 8000 h ) OFFSET ( 0001h )

0h

Microprocesador

Direccin fsica ( 80001 h)


Ing. Gustavo Minnucci - Digital III

Generacin de direcciones
Registros Internos

Registros de Segmento

Ing. Gustavo Minnucci - Digital III

Digital III
Ejecucion de Instrucciones

Ejecucin de una instruccin


(sin Pre-Fetch)
Instruccin n Fetch Execute Instruccin n+1 Fetch Execute OP-Code Fetch Operand Fetch Execution OP-Code Fetch Operand Fetch Execution OP-CODE Fetch
Lectura del OP-CODE desde memoria de programa ( CS : IP ) Decodificacin del OP-CODE de la instruccin Incremento del IP. Determinacin de bsqueda de operandos extras para la ejecucin

OPERAND Fetch (si existe)


Lectura del (o los) operando(s) desde memoria de programa (CS : IP + ...) Almacenamiento interno de los operandos.

Execution
Ejecucin de la instruccin. Ing. Gustavo Minnucci - Digital III

Ejecucin de instrucciones
(con Pre-Fetch)
Instruccin n Fetch de Instruccin (n) Execute Instruccin (n) Instruccin n+1 Fetch Instruccin (n+1) OP-CODE Fetch ( Instruccin n )
Lectura del OP-CODE desde memoria de programa ( CS : IP ) Decodificacin del OP-CODE de la instruccin Incremento del IP. Determinacin de bsqueda de operandos extras para la ejecucin Determina si en la ejecucin har uso de los buses.

Execute

Execution ( Instruccin n )
Ejecucin de la instruccin (n). ... SI LA INSTRUCCIN (n) NO UTILIZA LOS BUSES.

Pre-Fetch ( Instruccin n + 1 )
Busqueda de las instruccin siguiente. Armado de la cola interna de ejecucin. Ing. Gustavo Minnucci - Digital III

Digital III
Accesos de Lectura y Escritura

Acceso a memoria en lectura


Registro de segmento Registro de Offset Direccin Fsica ALE Latch de Direcciones Address Bus Data Bus Lgica de decodificacin
Memoria Par / Impar

/CS Address Bus

Registro de datos Data Bus Generador RD WR Par - Impar

/RD
BHE LA0

/OE

Microprocesador

La memoria es quien provee el dato a transferir


Ing. Gustavo Minnucci - Digital III

Intel 80c86 en lectura


(Lectura de datos desde la memoria (o I/O) al uP)

Gustavo Minnucci - Digital III - Ao 2011

Acceso a memoria en escritura


Registro de segmento Registro de Offset Address Bus Direccin Fsica ALE Latch de Direcciones Data Bus Registro de datos /WR
BHE LA0 Memoria

Lgica de decodificacin

Par / Impar

/CS Address Bus

Data Bus Generador RD WR Par - Impar /WR

El Microprocesador es quien provee el dato a transferir Microprocesador


Ing. Gustavo Minnucci - Digital III

(Escritura de datos desde el uP a la memoria (o I/O) )

Intel 80c86 en escritura

Gustavo Minnucci - Digital III - Ao 2011

Digital III
Mapeo de Dispositivos

Mapeo de dispositivos
Mapa de Memoria FFFFF h rea de memoria No Volatil

Nota:
El mapeo de un dispositivo consiste en asignarle un rango de direcciones dentro del mapa de memoria (o Entrada/Salida) donde se pueda acceder a sus registros internos. El Mapa de Memoria es el vnculo entre el software y el hardware.

rea de memoria Volatil 00000 h

Gustavo Minnucci - Digital III - Ao 2011

Mapas de memoria y de I/O


Mapa de Memoria FFFFF h rea de memoria No Volatil

Observacin:
Los espacios de direcciones de MEMORIA y de ENTRADA/SALIDA son espacios DISTINTOS y son accesibles con instrucciones distintas.
Mapa de I/O FFFF h Perifrico n

rea de memoria Volatil 00000 h Accesible con instrucciones MOV, PUSH, etc.
Gustavo Minnucci - Digital III - Ao 2011

Perifrico 2 0000 h Perifrico 1

Accesible con instrucciones IN y OUT

Mapeo de dispositivos con decod. completa


Ej. Sistema con: 1 EPROM de 128K x 8. 2 RAMs de 128K x 8. (17 lneas de direcciones) (8 lneas de datos) (17 lneas de direcciones) (8 lneas de datos)

Decodificacin total de direcciones Lneas de direcciones del microprocesador Rango EPROM 128 K FFFFFh a E0000h LA19 1 LA18 1 LA17 1 LA16 A16 LA15 A15 LA14 a LA2 A14 a A2 LA1 A1 LA0 A0

Area Libre

40000h a DFFFFh

xxxxxxx

RAM 1 128 K

20000h a 3FFFFh

A16

A15

A14 a A2

A1

A0

RAM 0 128 K

00000h a 1FFFFh

A16

A15

A14 a A2

A1

A0

Gustavo Minnucci - Digital III - Ao 2011

Mapeo de dispositivos con espejado


Ej. Sistema con: 1 EPROM de 128K x 8. 2 RAMs de 128K x 8. ( 17 lneas de direcciones ) ( 8 lneas de datos ) ( 17 lneas de direcciones ) ( 8 lneas de datos )

Decodificacin parcial de direcciones Rango EPROM 128 K Espejo EPROM Espejo EPROM Espejo EPROM Espejo RAM 1 Espejo RAM 0 RAM 1 128 K RAM 0 128 K 20000h a 3FFFFh 00000h a 1FFFFh FFFFFh a E0000h A19 1 1 1 1 0 0 0 A18 X X X X X X X Lneas de direcciones del microprocesador A17 A16 A15 A14 a A2 X X X X 1 0 1 A16 A16 A16 A16 A16 A16 A16 A15 A15 A15 A15 A15 A15 A15 A14 a A2 A14 a A2 A14 a A2 A14 a A2 A14 a A2 A14 a A2 A14 a A2 A1 A1 A1 A1 A1 A1 A1 A1 A0 A0 A0 A0 A0 A0 A0 A0

A16

A15

A14 a A2

A1

A0

Gustavo Minnucci - Digital III - Ao 2011

Digital III
Logica de decodificacion

Implementacion
Microprocesador M/IO ALE
A16 - A19

RAM Par Lgica de decodificacin Latch de Direcciones /CS

RAM Impar /CS

LA01 - LA19

ADD Bus ADD/DATA Bus


AD0-AD15

Address Bus

Address Bus

DATA BUS (16 bits)

D0-D7 D8-D15

Data Bus

Data Bus

Generador /RD /WR BHE


Gustavo Minnucci - Digital III - Ao 2011

WR_Par WR_Impar RD_Par RD_Impar

/OE /WR /OE /WR

Implementacion
entity Logica_de_Bus is Port ( clk reset AD ALE BHE MIO RD WR INTA INTR NMI CLK_uP RESET_uP -STATUS LADD CS PCS WR_H WR_L RD_H RD_L : in : in : in : in : in : in : in : in : in : out : out : out : out : out : out : out : out : out : out : out : out STD_LOGIC; -- f [clk]: 25 MHz STD_LOGIC; STD_LOGIC_VECTOR (19 downto 0); STD_LOGIC; STD_LOGIC; STD_LOGIC; STD_LOGIC; STD_LOGIC; STD_LOGIC; STD_LOGIC; STD_LOGIC; STD_LOGIC; STD_LOGIC; STD_LOGIC_VECTOR (3 downto 0); STD_LOGIC_VECTOR (19 downto 0); STD_LOGIC_VECTOR (3 downto 0); STD_LOGIC_VECTOR (3 downto 0); STD_LOGIC; STD_LOGIC; STD_LOGIC; STD_LOGIC

); end Logica_de_Bus; Gustavo Minnucci - Digital III - Ao 2011

Implementacion
architecture Behavioral of Logica_de_Bus is ------------------------------------------------------------------- Definicion de Seales -----------------------------------------------------------------signal sALE : STD_LOGIC; signal sBHE : STD_LOGIC; signal sMIO : STD_LOGIC; signal sINTA : STD_LOGIC; signal sINTR : STD_LOGIC; signal sRD : STD_LOGIC; signal sWR : STD_LOGIC; signal sNMI : STD_LOGIC; signal sCLK_uP : STD_LOGIC; signal sRESET_uP : STD_LOGIC; signal signal signal signal signal signal signal sLADD sCS sPCS sWR_H sWR_L sRD_H sRD_L : STD_LOGIC_VECTOR (19 downto 0); : STD_LOGIC_VECTOR (3 downto 0); : STD_LOGIC_VECTOR (3 downto 0); : STD_LOGIC; : STD_LOGIC; : STD_LOGIC; : STD_LOGIC;

Gustavo Minnucci - Digital III - Ao 2011

Implementacion
------------------------------------------------------------------- Demultiplexor de direcciones -----------------------------------------------------------------demux: process (clk, reset) begin if (reset = '1') then sLADD (19 downto 0) <= (others => '0'); else if (clk = '1' and clk'event) then if (sALE = '1') then sLADD <= AD; sBHE <= BHE; end if; end if; end if; end process;

Gustavo Minnucci - Digital III - Ao 2011

Implementacion
------------------------------------------------------------------- Logica de Chip Selects (con decodificacion Incompleta) ------------------------------------------------------------------- CS's en Espacio de Memoria sCS(0) <= '0' when (sLADD(19) = '0' and sLADD(18) = '0' and sMIO = '1') else '1'; sCS(1) <= '0' when (sLADD(19) = '0' and sLADD(18) = '1' and sMIO = '1') else '1'; sCS(2) <= '0' when (sLADD(19) = '1' and sLADD(18) = '0' and sMIO = '1') else '1'; sCS(3) <= '0' when (sLADD(19) = '1' and sLADD(18) = '1' and sMIO = '1') else '1'; -- CS's en Espacio de Entrada / Salida sPCS(0) <= '0' when (sLADD(15) = '0' and sLADD(14) = '0' and sMIO = '0') else '1'; sPCS(1) <= '0' when (sLADD(15) = '0' and sLADD(14) = '1' and sMIO = '0') else '1'; sPCS(2) <= '0' when (sLADD(15) = '1' and sLADD(14) = '0' and sMIO = '0') else '1'; sPCS(3) <= '0' when (sLADD(15) = '1' and sLADD(14) = '1' and sMIO = '0') else '1';

Gustavo Minnucci - Digital III - Ao 2011

Implementacion
------------------------------------------------------------------- Generacion de seales de RD y WR a memorias y perifericos -----------------------------------------------------------------RD_WR: process (reset, sRD, sBHE, sLADD(0), sWR) begin if (reset = '1') then sRD_H <= '1'; sRD_L <= '1'; sWR_H <= '1'; sWR_L <= '1'; else sRD_H <= sRD or sBHE; sRD_L <= sRD or sLADD(0); sWR_H <= sWR or sBHE; sWR_L <= sWR or sLADD(0); end if; end process;

Gustavo Minnucci - Digital III - Ao 2011

Implementacion
------------------------------------------------------------------- Generacion de Clock para Microprocesador -----------------------------------------------------------------clk_gen: process (clk, reset) variable v : std_logic_vector (2 downto 0) := "001"; begin if (reset = '1') then sCLK_uP <= '0'; v := "001"; else if (clk = '1' and clk'event) then v := v(1 downto 0) & v(2); end if; end if; sCLK_uP <= v(2); end process;

Gustavo Minnucci - Digital III - Ao 2011

Implementacion
------------------------------------------------------------------- Conexion de seales con lineas externas -----------------------------------------------------------------sALE <= ALE; sMIO <= MIO; -- MIO: 1 -> M - MIO: 0 -> IO sINTA <= INTA; INTR <= sINTR; NMI <= sNMI; sRD <= RD; sWR <= WR; -CS <= sCS; PCS <= sPCS; -LADD <= sLADD; RD_H <= sRD_H; RD_L <= sRD_L; WR_H <= sWR_H; WR_L <= sWR_L; CLK_uP <= sCLK_uP; RESET_uP <= sRESET_uP;
Gustavo Minnucci - Digital III - Ao 2011

Electrnica Digital III


Ejemplo: Lectura de Memoria RAM con Intel 80C88

Esquema Interno - Memoria RAM HM62256 (32K x 8)

Gustavo Minnucci - Digital III - Ao 2011

Ciclo de Lectura - Memoria RAM HM62256 (32K x 8)

Gustavo Minnucci - Digital III - Ao 2011

Ciclo de Escritura - Memoria RAM HM62256 (32K x 8)

Gustavo Minnucci - Digital III - Ao 2011

Compatibilizacin en Lectura - uP -RAM (Con Latch Transparente)


Microprocesador
La compatibilidad depende del circuito intermedio !!

Memoria

Direccionamiento uP Decodificacin de direcciones Activacin de /RD Lectura del dato Desactivacin de /RD Direccionamiento uP

Direccin estable para acceso Activacin de Chip Select (Seleccin de celda) Activacin de los buffers de salida Entrega del dato Desabilitacin buffers de salida Deseleccin de dispositivo Ing. Gustavo Minnucci - Digital III

Ejercicio: Ejercicio
Realizar el mismo anlisis de Compatibilizacin para el Ciclo de Escritura (uP -RAM) (Con Latch Transparente)

Gustavo Minnucci - Digital III - Ao 2011

You might also like