Beruflich Dokumente
Kultur Dokumente
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
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
Digital III
El Microprocesador i80c86
Oscilador a Cristal
Circuito de Reset
CONTROL Bus
Microprocesador
Bus de control /RD, /WR, /ALE, etc Ing. Gustavo Minnucci - Digital III
0h
Microprocesador
Generacin de direcciones
Registros Internos
Registros de Segmento
Digital III
Ejecucion de Instrucciones
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
/RD
BHE LA0
/OE
Microprocesador
Lgica de decodificacin
Par / Impar
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.
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
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
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
Digital III
Logica de decodificacion
Implementacion
Microprocesador M/IO ALE
A16 - A19
LA01 - LA19
Address Bus
Address Bus
D0-D7 D8-D15
Data Bus
Data Bus
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
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;
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;
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';
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;
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;
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
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)