Interfases de Entrada / Salida

Slides:



Advertisements
Presentaciones similares
Lenguajes de Descripción de Hardware
Advertisements

Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
LOS PUERTOS DE E/S PUERTO A
Métodos de diseño en VHDL.
Clase Teórica N°3 Procesador de Pardo y Boluda
SENTENCIAS SECUENCIALES
LENGUAJES DE DESCRIPCION DE HARDWARE (HDL)
Autor: Sergio García López Director: Francesc Josep Sánchez i Robert
Síntesis Lógica con HDL
Circuitos Digitales II
Introducción al VHDL VHDL orientado a la síntesis de circuitos en Dispositivo Lógicos Programables.
Programación de sistemas reconfigurables
RESUMEN: Softmicro de 8 bits Xilinx
Semáforo Versión .TDF AHDL
Aplicación de Patrones de diseño al diseño de Hardware
1. Introducción Estructura básica de un computador.
Vhdl para síntesis Alfredo Rosado Muñoz Universidad de Valencia Ingeniería Electrónica Diseño de Circuitos y Sistemas Electrónicos.
UNIDAD VI: CIRCUITOS LÓGICOS SECUENCIALES
1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones  IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO 
Registros de Desplazamiento
VHDL.
 SON FUNCIONES LÓGICAS  REPRESENTADAS POR TABLAS DE VERDAD  SIMPLIFICABLES POR LÓGICA BOOLEANA  SIMPLIFICABLES POR KARNAUGH  APLICACIONES: funciones.
Interfaces de entrada / salida
GESTION DE LA JERARQUIA
ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS
Placa de expansión para Comunicaciones C ommunication B oard T ask F orce.
Capítulo.2 - Fundamentos del Lenguaje VHDL
DSL Domain Specific Language (Lenguaje Especifico del Dominio)
VHDL Breve introducción.
Others, soporte para síntesis. Los agregados tienen la habilidad de usar la sentencia others, la cual asignará un valor a todos los otros elementos de.
Diseño lógico combinacional mediante VHDL
Electrónica aplicada al tratamiento de datos Procesadores digitales de señal (PDS) DSP: Digital Signal Processors (procesadores) DSP: Digital.
Programación I Arreglos II- Matrices.
Introducción Electrónica Digital
Introducción a las Interfaces de entrada / salida.
Lógica de Tres Estados (TRI-STATE)
Diseño Lógico Combinacional con VHDL
VHDL El nombre proviene de VHSIC Hardware Description Language, donde VHSIC significa Very High Speed Integrated Circuits. Es un lenguaje formal de especificación.
Proyecto de Sistemas Informáticos Curso Carlos Sánchez-Vellisco Sánchez Antonio José García Martínez David Fernández Máiquez.
Introducción a VHDL Agenda Un poco de historia Definiciones generales Entidades Arquitecturas Configuraciones.
Integración de entidades en VHDL
Librerías y packages (paquetes)
Introducción a las Interfaces de entrada / salida.
Capítulo.3 - Diseño Lógico Combinacional con VHDL
Circuitos Digitales.
Diseño lógico secuencial con VHDL
DIPLOMADO EN SISTEMAS DIGITALES USO DE LOS PERIFERICOS DEL SISTEMA DE DESARROLLO SPARTAN 3E Instructor: MC. Rodrigo Lucio Maya Ramírez.
Proyecto de Sistemas Informáticos Curso Carlos Sánchez-Vellisco Sánchez Antonio José García Martínez David Fernández Máiquez.
FPGA - Flujo de Diseño UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García.
LA ARQUITECTURA O LA FUNCIONALIDAD DEL SISTEMA DefiniciónDefiniciónDefinición Declaración y reglas sintácticas.Declaración y reglas sintácticas.Declaración.
BANCOS DE PRUEBAS CON VHDL (TESTBENCHES). Sistemas Digitales - FIUBA Bancos de prueba ¿Cómo realizar la prueba de un dispositivo descripto en VHDL? DUT.
Diseño Lógico 2 Metodología de Diseño
UNIDAD I INTRODUCCION A LOS S.O..  HARDWARE  SOFTWARE.
VHDL. Indice Sistemas Digitales - FIUBA VHDL Lenguajes descriptores de hardware VHDL - Introducción - Entidad de diseño (declaración de entidad y cuerpo.
NCO (Numerically Controlled Oscillator). NCO: Oscilador controlado numéricamente Aplicaciones Conversores digitales up/down PLLs digitales Sistemas de.
CIRCUITOS COMBINACIONALES Y SECUENCIALES. SON FUNCIONES LÓGICAS REPRESENTADAS POR TABLAS DE VERDAD SIMPLIFICABLES POR LÓGICA BOOLEANA SIMPLIFICABLES.
1 LENGUAJE DE DESCRIPCION DE HARDWARE ELECTRONICA DIGITAL NAYIBE CHIO CHO NAYIBE CHIO CHO.
BANCOS DE PRUEBA CON VHDL (TESTBENCHES). Sistemas Digitales - FIUBA Bancos de prueba ¿Cómo realizar la prueba de un dispositivo descripto en VHDL? DUT.
Asignación de señales en VHDL. VHDL: Asignación de señales La asignación a una señal establece una o más transacciones sobre la misma Cada señal tiene.
U.M.S.A. ETN-601 Sistemas Digitales Decodificador 3 a 8 Aux. David Marza Herrera.
CONSIDERACIONES DE RUIDO EN SISTEMAS PCM ING. JAVIER GARCIA.
Pablo Huerta Pellitero
Diseño de Circuitos Lógicos Secuenciales
Hardware Description Language
Programación en VHDL.
REGISTROS.
ispLSI1032E- Estructura Disseny Electrònic Assistit per Ordinador
Registro.
(Numerically Controlled Oscillator)
END.
Transcripción de la presentación:

Interfases de Entrada / Salida Introducción a las Interfaces de entrada / salida Fundamentos de comunicación serie asincrónica Interfase Serie

Interfaces de entrada / salida Introducción a las Interfaces de entrada / salida

Puerto de Salida Básico Registro (Latch) CE CLK WR OE D0 D7 Q0 Q7 Bus de Datos del Sistema Salidas

Sintesis en vhdl de un puerto de salida Entity Salida is port ( HCLK : in std_logic; RESET : in std_logic; CS : in std_logic; WR : in std_logic; D : in std_logic_vector (7 downto 0); --Bus datos es siempre entrada O : out std_logic_vector (7 downto 0) --Salidas al exterior ); end Salida;

architecture B2 of Salida is begin process (HCLK, RESET) if RESET = '1' then O ( 7 downto 0 )<= "00000000"; else if HCLK = '1' and HCLK'event then -- Flanco de ascendente if CS = '0' then if WR = '0' then O (7 downto 0) <= D ( 7 downto 0 ); end if; end process; end B2;

Estimulo – Puerto de salida

Simulación – Puerto de salida

Puerto de Entrada Básico Puerta de 3 estados (Transceiver) CE OE RD O0 O7 I0 I7 Bus de Datos del Sistema Entradas

Sintesis en vhdl de un puerto de entrada entity Entrada is port ( HCLK : in std_logic; RESET : in std_logic; CS : in std_logic; RD : in std_logic; D : out std_logic_vector (7 downto 0); -- Bus Datos es siempre salida I : in std_logic_vector (7 downto 0) -- Entradas externas ); end Entrada;

architecture B2 of Entrada is Begin process (HCLK, RESET) if RESET = '1' then D ( 7 downto 0 )<= "ZZZZZZZZ"; else if HCLK = '1' and HCLK'event then -- Flanco de ascendente if CS = '0' then -- Acceso al registro solo si CS es 0 if RD = '0' then D ( 7 downto 0 ) <= I (7 downto 0); D ( 7 downto 0 ) <="ZZZZZZZZ"; -- Si RD esta en 1 el bus esta en "Z" end if; -- Si CS esta en 1 el bus esta en "Z" end process; end B2;

Estimulo – Puerto de entrada

Simulación – Puerto de entrada

Sintesis en vhdl de un registro interno entity Registro is port ( HCLK : in std_logic; RESET : in std_logic; CS : in std_logic; RD : in std_logic; WR : in std_logic; D : inout std_logic_vector (7 downto 0) -- Bus de datos es Entrada/Salida ); end Registro;

architecture B2 of Registro is Begin process (HCLK, RESET) variable REGISTRO : std_logic_vector (7 downto 0) := "00000000"; if RESET = '1' then D ( 7 downto 0 )<= "ZZZZZZZZ"; else if HCLK = '1' and HCLK'event then -- Flanco de ascendente if CS = '0' then -- Acceso al registro solo si CS es 0 if RD = '0' then D ( 7 downto 0 ) <= REGISTRO (7 downto 0); D ( 7 downto 0 ) <="ZZZZZZZZ"; -- Si RD = 1, bus en "Z" if WR = '0' then REGISTRO (7 downto 0) := D ( 7 downto 0 ); end if; D ( 7 downto 0 ) <="ZZZZZZZZ"; -- Si CS = 1, bus en "Z" end process; end B2;

Estimulo – Registro interno

Simulación – Registro interno

entity PWM is port ( HCLK : in std_logic; RESET : in std_logic; CS : in std_logic; RD : in std_logic; WR : in std_logic; D : inout std_logic_vector (7 downto 0); PWM : out std_logic ); end PWM;

architecture B2 of PWM is Begin process (HCLK, RESET) variable REGISTRO : std_logic_vector (7 downto 0) := "00000000"; variable CICLO : std_logic_vector (7 downto 0) := "00000000"; variable CONTADOR : std_logic_vector (7 downto 0) := "00000000"; if RESET = '1' then D ( 7 downto 0 )<= "ZZZZZZZZ"; PWM <= '0'; else if HCLK = '1' and HCLK'event then -- Flanco de ascendente if CS = '0' then -- Acceso al registro solo si CS es 0 if RD = '0' then D ( 7 downto 0 ) <= REGISTRO (7 downto 0); D ( 7 downto 0 ) <="ZZZZZZZZ"; -- Si RD es 1 el bus es "Z" if WR = '0' then REGISTRO (7 downto 0) := D ( 7 downto 0 ); end if; D ( 7 downto 0 ) <="ZZZZZZZZ"; -- Si CS es 1 el bus es "Z"

CONTADOR := CONTADOR +1; if CONTADOR > CICLO then PWM <= '0'; else PWM <= '1'; end if; if CONTADOR = "00000000" then CICLO := REGISTRO; end process; end B2;

Puerto de Entrada + Salida Básico CE Registro (Latch) WR OE Salida Bus de Datos Entrada Puerta de 3 estados (Transceiver) OE RD

Puerto de Entrada + Salida Básico CE Registro (Latch) WR OE Salida Bus de Datos Entrada Puerta de 3 estados (Transceiver) OE RD

Puerto de Entrada / Salida Programable CE Registro (Latch) WR OE Exterior Salida Bus de Datos Entrada Puerta de 3 estados (Transceiver) OE RD

Puerto de Entrada / Salida Programable CE 1 WR OE Exterior CE WR OE Salida Bus de Datos Entrada OE RD

Puerto de Entrada / Salida Programable WR OE CE Exterior WR OE Salida Bus de Datos Entrada OE RD

Puerto de Entrada / Salida Programable CE A0 WR RD OE Lógica de control de lectura y escritura (LCLE) Exterior OE Salida Bus de Datos Entrada OE

Puerto de Entrada / Salida Programable CE A0 WR RD OE Lógica de control de lectura y escritura (LCLE) Exterior OE Salida Bus de Datos Entrada OE

Puerto de Entrada / Salida Programable CE A0 WR RD OE LCLE Puerta bidireccional de 3 estados (Transceiver) OE Salida OE Dd Entrada Bus de Datos del sistema OE

Puerto de Entrada / Salida Programable con Reset CE A0 WR RD OE LCLE Puerta bidireccional de 3 estados (Transceiver) OE Salida OE Dd Entrada Bus de Datos del sistema OE

Puerto de Entrada / Salida Programable con Reset CE A0 WR RD OE LCLE Puerta bidireccional de 3 estados (Transceiver) OE Salida OE Dd Entrada Bus de Datos del sistema OE

entity IOP is port ( HCLK : in std_logic; RESET : in std_logic; CS : in std_logic; AD0 : in std_logic WR : in std_logic; RD : in std_logic; D : inout std_logic_vector (7 downto 0); -- El bus de datos es Entrada/Salida ES : inout std_logic_vector (7 downto 0) -- Entradas/Salidas al exterior ); end IOP;

architecture B2 of IOP is Begin process (HCLK, RESET) variable DDR : std_logic_vector ( 7 downto 0) :="00000000"; --entrada variable DAT : std_logic_vector ( 7 downto 0) :="00000000"; if RESET = '1' then ES ( 7 downto 0 )<= "ZZZZZZZZ"; DDR ( 7 downto 0 ) := "00000000"; DAT ( 7 downto 0 ) := "00000000"; D ( 7 downto 0 )<= "ZZZZZZZZ"; else if HCLK = '1' and HCLK'event then -- Flanco de ascendente if CS = '0' then if WR = '0' then if AD0 = '0' then DAT( 7 downto 0 ) := D( 7 downto 0 ); n1: for i in 0 to 7 loop if DDR(i) = '1' then ES (i) <= D (i); ES (i) <= 'Z'; end if; end loop n1;

else DDR( 7 downto 0 ) := D( 7 downto 0 ); n2: for i in 0 to 7 loop if D(i) = '1' then ES (i) <= DAT (i); ES (i) <= 'Z'; end if; end loop n2; if RD = '0' then if AD0 = '0' then n3: for i in 0 to 7 loop if DDR(i) = '1' then D (i) <= DAT (i); D (i) <= ES(i); end loop n3; D(7 downto 0) <= DDR(7 downto 0); D( 7 downto 0 ) <= "ZZZZZZZZ";

else D( 7 downto 0 ) <= "ZZZZZZZZ"; end if; end process; end B2;

Estimulo – Puerto de entrada-salida programable

Simulación – Puerto de entrada-salida programable

Puerto de E / S con Pedido de Atención y Banderas Habilitación INTR Bandera Puertas de 3 estados (Transceiver) 1 OE D Q R Bus de Datos OE Entrada

8. 8. 8. 8. Aplicación Excitación (Ánodos) Habilitaciones (Cátodos) Q7 CE1 WL CLK Excitación (Ánodos) D7 … D0 OE Q0 8. 8. 8. 8. CE1 WH CLK K3 K2 K1 K0 D15 … D8 Q3 Q0 OE Habilitaciones (Cátodos)

a f b g e c p d

ÁNODOS CÁTODO COMÚN ÁNODOS

Vcc a b c d e f g p CÁTODO COMÚN ÁNODOS

ÁNODOS 5. 8. 8. 8. KHH KMH KML KLL ULN2003 1 0 0 0

ÁNODOS 8. 3. 8. 8. KMH KML KLL ULN2003 0 1 0 0

ÁNODOS 8. 8. 9. 8. KMH KML KLL ULN2003 0 0 1 0

ÁNODOS 8. 8. 8. 6. KMH KML KLL ULN2003 0 0 0 1

;Subrutina DISP ;Variables utilizadas: ;STATUS : Próximo dígito de Buffer que es necesario refrescar ;BUFFER : Tabla de 8 bytes que contiene los datos para el display y los códigos de habilitación correspondientes STATUS dw 0 BUFFER db 1, 1 ;LSD , 00000001 db 3, 2 ; , 00000010 db 5, 4 ; , 00000100 db 7, 8 ;MSD; 00001000 ;PORT_A : Etiqueta que especifica la dirección del puerto del display PORT_A equ XXXX

;SUB. DE REFRESCO------------ DISP PROC NEAR XOR AX,AX MOV DX, PORT_A OUT DX,AX ;APAGA DISPLAY MOV BX, STATUS ;BUSCA DATOS EN BUFFER MOV SI, OFFSET BUFFER MOV AX,(BX+SI) OUT DX,AX ;ENCIENDE DIGITO ADD BX, 2 ;APUNTA AL PROXIMO DIGITO EN MEMORIA AND BX, 7 MOV STATUS,BX RET

;SUB. DE REFRESCO------------ DISP PROC NEAR XOR AX,AX MOV DX, PORT_A OUT DX,AX ;APAGA DISPLAY MOV BX, STATUS ;BUSCA DATOS EN BUFFER MOV SI, OFFSET BUFFER MOV AX,(BX+SI) OUT DX,AX ;ENCIENDE DIGITO ADD BX, 2 ;APUNTA AL PROXIMO DIGITO EN MEMORIA AND BX, 7 MOV STATUS,BX RET

;SUB. DE REFRESCO------------ DISP PROC NEAR XOR AX,AX MOV DX, PORT_A OUT DX,AX ;APAGA DISPLAY MOV BX, STATUS ;BUSCA DATOS EN BUFFER MOV SI, OFFSET BUFFER MOV AX,(BX+SI) OUT DX,AX ;ENCIENDE DIGITO ADD BX, 2 ;APUNTA AL PROXIMO DIGITO EN MEMORIA AND BX, 7 MOV STATUS,BX RET

;SUB. DE REFRESCO------------ DISP PROC NEAR XOR AX,AX MOV DX, PORT_A OUT DX,AX ;APAGA DISPLAY MOV BX, STATUS ;BUSCA DATOS EN TRABLA MOV SI, OFFSET BUFFER MOV AX,(BX+SI) OUT DX,AX ;ENCIENDE DIGITO ADD BX, 2 ;APUNTA AL PROXIMO DIGITO EN MEMORIA AND BX, 7 MOV STATUS,BX RET

;SUB. DE REFRESCO------------ DISP PROC NEAR XOR AX,AX MOV DX, PORT_A OUT DX,AX ;APAGA DISPLAY MOV BX, STATUS ;BUSCA DATOS EN TRABLA MOV SI, OFFSET BUFFER MOV AX,(BX+SI) OUT DX,AX ;ENCIENDE DIGITO ADD BX, 2 ;APUNTA AL PROXIMO DIGITO EN MEMORIA AND BX, 7 MOV STATUS,BX RET

;SUB. DE REFRESCO------------ DISP PROC NEAR XOR AX,AX MOV DX, PORT_A OUT DX,AX ;APAGA DISPLAY MOV BX, STATUS ;BUSCA DATOS EN TRABLA MOV SI, OFFSET BUFFER MOV AX,(BX+SI) OUT DX,AX ;ENCIENDE DIGITO ADD BX, 2 ;APUNTA AL PROXIMO DIGITO EN MEMORIA AND BX, 7 MOV STATUS,BX RET

Teclado C0 C1 Entradas C2 C3 F0 F1 Teclas Salidas F2 F3

TECLADO Entradas 1 Salidas

TECLADO 1 Entradas 1 Salidas

TECLADO Entradas 1 Salidas

TECLADO Entradas 1 Salidas

Teclado C0 C1 Entradas C2 C3 F0 F1 Teclas Salidas F2 F3

8. 8. 8. 8. Aplicación Excitación (Ánodos) Habilitaciones (Cátodos) Q7 CE1 WL CLK Excitación (Ánodos) D7 … D0 OE Q0 8. 8. 8. 8. CE1 WH CLK K3 K2 K1 K0 D15 … D8 Q3 Q0 OE Habilitaciones (Cátodos)

Teclado C0 C1 Entradas C2 C3 Q0 Q1 Teclas Q2 Q3

PUERTO_B Puerta de 3 estados CE OE1 RDL OE2 Entradas D0 D7 O0 O7 I0 I7

Teclado I0 I1 Entradas I2 I3 P U E R T O A Q0 Q1 Teclas Q2 Q3

Teclado I3 I2 I1 I0 I4 I5 I6 I7 Entradas PUERTO_B P U E R T O A Q0 Q1 Teclas Q2 Q3

Subrutina SCAN : Variables utilizadas : TECLA : Código ultima tecla presionada TECLA db 0 ;SUB. DE EXPLORACION DE TECLADO SCAN PROC NEAR MOV DX, PORT_B IN AL, DX TEST AL, 0F0h JZ notec MOV TECLA, AL notec: RET