MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas

Slides:



Advertisements
Presentaciones similares
Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
Advertisements

El modelo de Von Neumann
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
Microprocesadores Componentes básicos..
UNIVERSIDAD DEL VALLE DE MEXICO
ARQUITECTURA DE COMPUTADORES - VON NEUMANN MODEL
Síntesis Lógica con HDL
Fermín Sánchez Carracedo Universitat Politècnica de Catalunya
El Microprocesador.
Computación PROGRAMACIÓN.
PERCY CHUMBE BUENDIA. KIZZY GUTIERREZ VALVERDE. RUTH NOEMY APAZA JARA.
RESUMEN: Softmicro de 8 bits Xilinx
Profra: Verónica Pérez Rosas Introducción a la Programación Universidad Politécnica de Altamira.
Vhdl para síntesis Alfredo Rosado Muñoz Universidad de Valencia Ingeniería Electrónica Diseño de Circuitos y Sistemas Electrónicos.
Introducción a la Estadística Informática
El procesador: la ruta de datos y el control (II Parte)
Ingeniería de sw.
Lógica de Programación
Tema: Componentes físicos de una computadora
Ingeniería Electrónica e Ingeniería de Telecomunicaciones
CURSO: UNIDAD 4: LENGUAJES HDL
Composición Interna de un Procesador
“La docencia de las clases prácticas en las asignaturas de Arquitectura de Ordenadores y Sistemas Operativos” en la Universidad Politécnica de Valencia.
Programación 1 (01) Prof. Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento (GIDyC) Escuela de Ingeniería.
ALGORITMOS Y ESTRUCTURAS DE DATOS
VHDL.
LA COMPUTACIÓN.
Diseño digital para microprocesadores
ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS
Informática Conceptos básicos.
Tecnología de la información Unidad: 3 El software Profesor: Fernando J. Martini.
VHDL Breve introducción.
Arquitectura de Computadoras
Tae Programación WEB Ventajas de los ordenadores ( compus pa los cuates ) Que es la Programación? Que es un lenguaje de programación? Algoritmo Que es.
MÁQUINAS MULTINIVEL NIVEL 5 Lenguajes de alto nivel
TALLER PRÁCTICO DEL MÓDULO Nº 4 Curso de diseño, aplicación y análisis de instrumentos de evaluación Escuela Zenteno – Osorno Diciembre de 2012.
Comunicación y Multimedia
Diseño de la Unidad de Control Multiciclo: Microprogramación
Introducción a la programación
Maestría en Ingeniería Electrónica
Sámec Verott; Diego de la Rosa. ¿QUE ES UN CPLD? Es un dispositivo electrónico correspondiente al grupo de dispositivos de lógica programada. Lógica programada..?
INSTITUTO TECNOLOGICO DE MINATITLAN ASIGNATURA: FUNDAMENTOS DE PROGRAMACION DOCENTE: JOSE ANGEL TOLEDO ALVAREZ ALUMNA: ALEJANDRA OSORIO ARVISU SEMESTRE:
Programación Java y Desarrollo de Aplicaciones
GENERACIÓN DE COMPUTADORAS
Universidad Tecnológica del Centro Programa de la Asignatura ARQUITECTURA DEL COMPUTADOR Universidad Tecnológica del Centro Programa de la Asignatura ARQUITECTURA.
Diseño lógico secuencial con VHDL
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.
Hecho por: M.C. Luis Fernando Guzmán Nateras v3 Organización de Computadoras Preparación: Examen 1 JEOPARDY.
Introducción. ¿Que es una computadora? Maquina electrónica capaz de resolver problemas ejecutando las instrucciones de un programa: 1.recibe datos, 2.los.
Maquinas Digitales Funciones del Procesador Buscar instrucciones Interpretar instrucciones Buscar datos Procesar datos Escribir datos.
Informática Clase Arquitectura de la Computadora.
1.1 Introducción A Los Sistemas Informáticos
INTRODUCCIÓN LI & MSC OSCAR RAMÍREZ CORTÉS U NIVERSIDAD DE LA H UASTECA V ERACRUZANA L ENGUAJES DE P ROGRAMACIÓN.
1 Unidad II: La Computadora Personal. Tema: La Computadora Personal. Objetivos: Que el alumno conozca los elementos básicos que conforman un computador.
Principio unidad 1.
Trabajo practico realizado por: Mayte Lederhos y Valentina Carcas.
RESUMEN: Softmicro de 8 bits Xilinx
Computadora Es una máquina electrónica que recibe y procesa datos para convertirlos en información útil. Una computadora es una colección de circuitos.
Introducción al Diseño Lógico Asignatura Troncal –9 créditos 4,5 de teoría y 4,5 de practicas Tutor –Manuel Rodríguez Valido –
Clasificación de software
INTEGRANTES: JOSE ESTEVEZ _HUGO ANDRADE CURSO: 5TO “B”
TIPOS DE SOFTWARE Cintia Verónica Díaz Díaz 1° “A” TIC’s.
Universidad Metropolitana Introducción a la Computación Universidad Metropolitana Introducción a la Computación Septiembre, 2007 Arquitectura Von Newman.
Diseño de Sistemas Secuenciales Síncronos
ECBTI - ZCBOY CEAD DUITAMA PRESENTACIÓN CURSO SISTEMAS DIGITALES SECUENCIALES Ingeniería Electrónica e Ingeniería de Telecomunicaciones Escuela de Ciencias.
Arquitectura de Computadores
Arquitectura de Computadores IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
CAPITULO V Arquitectura de Von Neumann
Arquitectura de Computadores Clase 6 Ciclo y Conjunto de Instrucciones IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
CEDG - Tema 11 Introducción a la asignatura Información administrativa Descripción del temario Curso 2008 / 2009 Circuitos Electrónicos Digitales E.T.S.I.
Transcripción de la presentación:

MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas

REQUISITOS DEL CURSO Para abordar temas de diseño jerárquico, descripción a nivel RTL y diseño de procesadores aritméticos en general, el estudiante debe tener conocimientos de los siguientes temas: Análisis y síntesis de sistemas combinacionales; lógica cableada, Lógica modular y descripción en VHDL de sistemas combinacionales. Análisis y síntesis de sistemas secuenciales; Máquinas de estado de Mealy y Moore, Diseño de alto nivel y descripción en VHDL de sistemas secuenciales. Conocimiento básico de arquitectura de computadores; Funcionamiento de una ALU, sistemas que realizan operaciones, Registros, Contadores, Memorias RAM y ROM, descripción en VHDL de sistemas complejos. Manejo adecuado de las herramientas EDA. Para el caso específico, conocimiento, destreza y manejo del software ISE FOUNDATION de XILINX.

ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS

OPERACIONES DE TRANSFERENCIA Identificación de Registros en operaciones de transferencia: : El contenido de R1 se transfiere a R2 OPERACIÓN DESCRIPCIÓN

OPERACIONES DE TRANSFERENCIA Operación condicional: Notación de transferencia entre registros:

OPERACIONES DE TRANSFERENCIA Símbolos usados en el lenguaje de transferencia de Registros: SÍMBOLO DESCRIPCIÓN EJEMPLO Letras y/o Letras y Números Denota un Registro AR, R2, DR, IR Paréntesis Denota parte de un Registro R2(1), R2(7:0), AR(L) Flecha Denota Transferencia de Datos R2 <-- R1 Coma Separa operaciones simultaneas R1 <-- R2, R2 <-- R1 Paréntesis cuadrados Especifica una dirección de memoria DR <-- M[AR]

OPERACIONES DE TRANSFERENCIA DESIGNACIÓN SIMBÓLICA Ejemplo de Micro-operaciones Aritméticas: DESIGNACIÓN SIMBÓLICA DESCRIPCIÓN R0 <-- R1 + R2 El contenido de R1 más R2 se transfiere a R0 R2 <-- /R2 Complemento a uno del contenido de R2 se carga en R2. R2 <-- /R2 + 1 Complemento a dos del contenido de R2 se carga en R2. R0 <-- R1 + /R2 + 1 R1 más el complemento a dos de R2 se transfiere a R0 (Substracción o Resta) R1 <-- R1 + 1 Incrementa el contenido de R1 (Contador ascendente) R1 <-- R1 - 1 Decrementa el contenido de R1 (Contador descendente)

OPERACIONES DE TRANSFERENCIA Implementación de las operaciones de transferencia:

OPERACIONES DE TRANSFERENCIA Micro-operaciones Lógicas: DESIGNACIÓN SIMBÓLICA DESCRIPCIÓN R0 <-- /R1 Operación Lógica NOT bit a bit (Complemento a uno) R0 <-- R1 L R2 Operación Lógica AND bit a bit (Clarear bits) R0 <-- R1 V R2 Operación Lógica OR bit a bit (Poner bits) R0 <-- R1 Å R2 Operación Lógica XOR bit a bit (Complementa bits) Ejemplo de operaciones de desplazamiento: TIPO DESIGNACIÓN SIMBÓLICA FUENTE R2 DESTINACIÓN DESPUÉS DEL CORRIMIENTO R1 SHIFT LEFT R1 <-- sl R2 10011110 00111100 SHIFT RIGHT R1 <-- sr R2 11100101 01110010

TRANSFERENCIA UTILIZANDO MULTIPLEXORES Ejemplo: Implementación de la operación condicional múltiple.

TRANSFERENCIA UTILIZANDO MULTIPLEXORES Circuito detallado de la implementación de:

TRANSFERENCIA UTILIZANDO MULTIPLEXORES Multiplexores dedicados Un solo Bus

TRANSFERENCIA UTILIZANDO MULTIPLEXORES TRANSFERENCIA DE REGISTRO SELECT CARGA S0 S1 L2 L1 L0 RO <-- R2 1 RO <-- R1, R2 <-- R1 RO <-- R1, R1 <-- R0 IMPOSIBLE Ejemplo de Transferencia de Registros utilizando una configuración de un solo BUS.

BUS Tri estado con Registros bidireccionales TIPOS DE BUSES BUS Multiplexado BUS Tri estado con Registros bidireccionales

TIPOS DE BUSES Funcionamiento de un Registro Bidireccional:

TIPOS DE BUSES – ESTRUCTURA CON MEMORIA Conexión de una Memoria al Bus de Datos y al Bus de Direcciones:

UNIDAD DE DATOS Conjunto e Registros (RTL) Unidad Funcional (Operaciones)

UNIDAD FUNCIONAL (ALU) Unidad Aritmético-Lógica (ALU)

ESTRUCTURA COMPLETA DE UNA ALU UNIDAD LÓGICA UNIDAD ARITMÉTICA

CICLO DE MICRO-OPERACIONES DE UNA ALU G = A + /B + 1 (Substracción) Tabla de Funciones Select Input G = A + Y + Cin S1 S0 Y Cin = 0 Cin = 1 Todo 0's G = A (Transferencia) G = A + 1 (Incrementa) 1 B G = A + B (Adición) G = A + B + 1 /B G = A + /B G = A + /B + 1 (Substracción) Todo 1's G = A - 1 (Decrementa) INPUTS OUTPUT S1 S0 Bi Yi   Yi = 0 1 Yi = Bi Yi = /Bi Yi = 1 Mapa de Karnaugh Tabla de Verdad

UNIDAD ARITMÉTICA DE CUATRO BITs Se basa en un diseño totalmente combinacional, los bloques FA, se refieren a sumadores completos de un bit

UNIDAD LÓGICA TABLA FUNCIONAL CIRCUITO LÓGICO S1 S0 OUTPUT OPERACIÓN G = A L B AND 1 G = A V B OR G = A Å B XOR G = /A NOT El Multiplexor selecciona la función lógica deseada. Pueden existir más de cuatro funciones lógicas, lo que requiere un MUX de mayor capacidad.

UNA ETAPA DE LA ALU

TABLA FUNCIONAL DE LA ALU SELECCIÓN DE OPERACIÓN FUNCIÓN S2 S1 S0 Cin G = A Transfer A 1 G = A + 1 Increment A G = A + B Addition G = A + B + 1 Add with Carry input of 1 G = A + /B A más complemento a uno de B G = A + /B + 1 Substraction G = A - 1 Decrement A X G = A L B AND G = A V B OR G = A Å B XOR G = /A NOT (Complemento a uno)

DESPLAZADORES (SHIFTERS)

DESPLAZADOR ROTATORIO Tabla Funcional SELECCIÓN OUTPUT OPERACIÓN S1 S0 Y3 Y2 Y1 Y0 D3 D2 D1 D0 NO ROTAR 1 ROTA UNA POSICIÓN ROTA DOS POSICIONES ROTA TRES POSICIONES Circuito Lógico

DIAGRAMA GENERAL DE UNA UNIDAD DE DATOS La unidad de datos presentada en la figura, tiene una arquitectura tipo Hardvard (Bus de datos y direcciones separados). El arreglo de registros permite cargar, almacenar y operar fácilmente los datos que se desean procesar.

TABLA PARA LA UNIDAD FUNCIONAL SELECCIÓN MICRO-OPERACIÓN FS MF G H 00000 0000 00 F = A 00001 0001 F = A + 1 00010 0010 F = A + B 00011 0011 F = A + B + 1 00100 0100 01 F = A + B’ 00101 0101 F = A + B’ + 1 00110 0110 F = A – 1 00111 0111 01000 1000 F = A L B 01010 1010 10 F = A V B 01100 1100 F = A Å B 01110 1110 F = A’ 10000 1 F = B 10100 F = sr B 11000 F = sl B

DETALLE DE LA UNIDAD FUNCIONAL

ESTRUCTURA DE UN PROCESADOR CON ARQUITECTURA TIPO HARDVARD

DIAGRAMA DE BLOQUES DE UN PROCESADOR CON ARQUITECTURA TIPO HARDVARD

EJEMPLOS Bit Counter Shift-and-Add Multiplier

BIT COUNTER B = 0; while A≠0 do if a0 = 1 then B = B + 1; end if; Sistema que permite contar el número de ‘1s’ presentes en el Registro A, guardando el resultado en el Registro B Pseudo-código para el Bit Counter B = 0; while A≠0 do if a0 = 1 then B = B + 1; end if; Right-shift A; end while ; Se utiliza un lenguaje estándar de programación para describir el algoritmo que se va a utilizar. Luego se describe como diseño ASM

CARTA ASM PARA EL BIT COUNTER Carta ASM para el diseño del DATAPATH del contador de bits ‘1’, describe las micro-operaciones presentes en el diseño.

DIAGRAMA DE TIEMPOS DEL BIT COUNTER

DISEÑO DEL DATAPATH PARA EL BIT COUNTER

CARTA ASM PARA EL CONTROL DEL BIT COUNTER Carta ASM para el diseño de la lógica de control del contador de bits ‘1’. Obsérvese que las señales utilizadas son las señales de STATUS. Z = ‘1’ when A[n] = ‘0’ a0  Bit menos significativo de A s  Señal de inicio START Done  Indica que el proceso terminó LB  Load B, Borra el contador B LA  Load A, Carga el registro A EB  Incrementa el contador B EA  Desplaza A hacia la derecha

CÓDIGO VHDL PARA DESCRIBIR EL BIT COUNTER (1) -- Descripción en Código VHDL del contador de ‘1s’ -- Declaración de Librerías, cláusula USE LIBRARY ieee ; USE ieee.std_logic_1164.all ; LIBRARY work ; USE work.components.shiftrne ; -- Declaración de la entidad ENTITY bitcount IS PORT(Clock, Resetn : IN STD_LOGIC ; LA, s : IN STD_LOGIC ; Data : IN STD_LOGIC_VECTOR(7 DOWNTO 0) ; B : BUFFER INTEGER RANGE 0 to 8 ; Done : OUT STD_LOGIC ) ; END bitcount ;

CÓDIGO VHDL PARA DESCRIBIR EL BIT COUNTER (2) ARCHITECTURE Behavior OF bitcount IS TYPE State_type IS ( S1, S2, S3 ) ; SIGNAL y : State_type ; SIGNAL A : STD_LOGIC_VECTOR(7 DOWNTO 0) ; SIGNAL z, EA, LB, EB, low : STD_LOGIC ; BEGIN FSM_transitions: PROCESS ( Resetn, Clock ) IF Resetn = '0' THEN y <= S1 ; ELSIF (Clock'EVENT AND Clock = '1') THEN CASE y IS WHEN S1 => IF s = '0' THEN y <= S1 ; ELSE y <= S2 ; END IF ; WHEN S2 => IF z = '0' THEN y <= S2 ; ELSE y <= S3 ; END IF ; WHEN S3 => IF s = '1' THEN y <= S3 ; ELSE y <= S1 ; END IF ; END CASE ; END IF ; END PROCESS ;

CÓDIGO VHDL PARA DESCRIBIR EL BIT COUNTER (3) FSM_outputs: PROCESS ( y, A(0) ) BEGIN EA <= '0' ; LB <= '0' ; EB <= '0' ; Done <= '0' ; CASE y IS WHEN S1 => LB <= '1' WHEN S2 => EA <= '1' ; IF A(0) = '1' THEN EB <= '1' ; ELSE EB <= '0' ; END IF ; WHEN S3 => Done <= '1' ; END CASE ; END PROCESS ;

CÓDIGO VHDL PARA DESCRIBIR EL BIT COUNTER (4) -- El DATAPATH es descrito a continuación upcount: PROCESS ( Resetn, Clock ) BEGIN IF Resetn = '0' THEN B <= 0 ; ELSIF (Clock'EVENT AND Clock = '1') THEN IF LB = '1' THEN ELSEIF EB = '1' THEN B <= B + 1 ; END IF ; END IF; END PROCESS; low <= '0' ; ShiftA: shiftrne GENERIC MAP ( N => 8 ) PORT MAP ( Data, LA, EA, low, Clock, A ) ; z <= '1' WHEN A = "00000000" ELSE '0' ; END Behavior ;

MULTIPLICADOR BINARIO DE n BITS ALGORITMO PARA LA MULTIPLICACIÓN Decimal Binaria 13 1 1 0 1 Multiplicando x 11 1 0 1 1 Multiplicador 13 1 1 0 1 13 1 1 0 1 143 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 Producto a. Método manual P = 0; For i = 0 to n – 1 do if bi = 1 then P = P + A; end if; Left-Shift A; End for; b. Pseudo - Code

CARTA ASM PARA EL MULTIPLICADOR BINARIO Carta ASM para el diseño del DATAPATH del multiplicador binario, describe las micro-operaciones presentes en el diseño.

DIAGRAMA DE TIEMPOS PARA EL MULTIPLICADOR

DISEÑO DEL DATAPATH PARA EL MULTIPLICADOR RA  Shift-Left Register RB  Shift-Right Register ADDER  Sumador de 2n bits MUX  Multiplexor 2:1 de 2n bits P  Registro genérico de 2n bits NOR  Compuerta NOR de n entradas Data P  Resultado de la multiplicación B0  LSB del registro B

CARTA ASM PARA EL CONTROL DEL MULTIPLICADOR Carta ASM para el diseño de la lógica de control del Multiplicador Binario. Obsérvese que las señales utilizadas son las señales de STATUS. Z = ‘1’ when B[n] = ‘0’ b0  Bit menos significativo de B s  Señal de inicio START Done  Indica que el proceso terminó RB  Shift-Right B RA  Shift-Left A Psel  Control del MUX EP  Suma a P el contenido de A

CÓDIGO VHDL PARA DESCRIBIR EL MULTIPLICADOR (1) LIBRARY ieee ; USE ieee.std_logic_1164.all ; USE ieee.std_logic_unsigned.all ; USE work.components.all ; ENTITY multiply IS GENERIC ( N : INTEGER := 8; NN : INTEGER := 16 ) ; PORT ( Clock : IN STD_LOGIC ; Resetn : IN STD_LOGIC ; LA, LB, s : IN STD_LOGIC ; DataA : IN STD_LOGIC_VECTOR(N–1 DOWNTO 0) ; DataB : IN STD_LOGIC_VECTOR(N–1 DOWNTO 0) ; P : BUFFER STD_LOGIC_VECTOR(N–1 DOWNTO 0) ; Done : OUT STD_LOGIC ) ; END multiply ;

CÓDIGO VHDL PARA DESCRIBIR EL MULTIPLICADOR (2) ARCHITECTURE Behavior OF multiply IS TYPE State_type IS ( S1, S2, S3 ) ; SIGNAL y : State_type ; SIGNAL Psel, z, EA, EB, EP, Zero : STD_LOGIC ; SIGNAL B, N_Zeros : STD_LOGIC_VECTOR(N–1 DOWNTO 0) ; SIGNAL A, Ain, DataP, Sum : STD_LOGIC_VECTOR(NN–1 DOWNTO 0) ; BEGIN FSM_transitions: PROCESS ( Resetn, Clock ) IF Resetn = '0’ THEN y <= S1 ; ELSIF (Clock'EVENT AND Clock = '1') THEN CASE y IS WHEN S1 => IF s = '0' THEN y <= S1 ; ELSE y <= S2 ; END IF; WHEN S2 => IF z = '0' THEN y <= S2 ; ELSE y <= S3 ; END IF; WHEN S3 => IF s = '1' THEN y <= S3 ; ELSE y <= S1 ; END IF; END CASE ; END IF ; END PROCESS;

CÓDIGO VHDL PARA DESCRIBIR EL MULTIPLICADOR (2) FSM_outputs: PROCESS ( y, s, B(0) ) BEGIN EP <= '0' ; EA <= '0' ; EB <= '0' ; Done <= '0' ; Psel <= '0'; CASE y IS WHEN S1 => EP <= '1‘ ; WHEN S2 => EA <= '1' ; EB <= '1' ; Psel <= '1‘ ; IF B(0) = '1' THEN EP <= '1' ; ELSE EP <= '0' ; END IF ; WHEN S3 => Done <= '1‘ ; END CASE ; END PROCESS ;

CÓDIGO VHDL PARA DESCRIBIR EL MULTIPLICADOR (3) - - Define the datapath circuit Zero <= '0' ; N_Zeros <= (OTHERS => '0' ) ; Ain <= N_Zeros & DataA ; ShiftA: shiftlne GENERIC MAP ( N => NN ) PORT MAP ( Ain, LA, EA, Zero, Clock, A ) ; ShiftB: shiftrne GENERIC MAP ( N => N ) PORT MAP ( DataB, LB, EB, Zero, Clock, B ) ; z <= '1' WHEN B = N_Zeros ELSE '0' ; Sum <= A + P ; - - Define the 2n 2-to-1 multiplexers for DataP GenMUX: FOR i IN 0 TO NN–1 GENERATE Muxi: mux2to1 PORT MAP ( Zero, Sum(i), Psel, DataP(i) ) ; END GENERATE; RegP: regne GENERIC MAP ( N => NN ) PORT MAP ( DataP, Resetn, EP, Clock, P ) ; END Behavior ;