Descargar

Diseño RTL de procesadores aritméticos

Enviado por Pablo Turmero


    edu.red

    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.

    edu.red

    ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS

    edu.red

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

    edu.red

    Operación condicional:

    Notación de transferencia entre registros:

    OPERACIONES DE TRANSFERENCIA

    edu.red

    Símbolos usados en el lenguaje de transferencia de Registros: OPERACIONES DE TRANSFERENCIA

    edu.red

    Ejemplo de Micro-operaciones Aritméticas: OPERACIONES DE TRANSFERENCIA

    edu.red

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

    edu.red

    Micro-operaciones Lógicas: Ejemplo de operaciones de desplazamiento: OPERACIONES DE TRANSFERENCIA

    edu.red

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

    edu.red

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

    edu.red

    Multiplexores dedicados Un solo Bus TRANSFERENCIA UTILIZANDO MULTIPLEXORES

    edu.red

    Ejemplo de Transferencia de Registros utilizando una configuración de un solo BUS. TRANSFERENCIA UTILIZANDO MULTIPLEXORES

    edu.red

    BUS Multiplexado BUS Tri estado con Registros bidireccionales TIPOS DE BUSES

    edu.red

    Funcionamiento de un Registro Bidireccional: TIPOS DE BUSES

    edu.red

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

    edu.red

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

    edu.red

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

    edu.red

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

    edu.red

    Tabla de Funciones Tabla de Verdad Mapa de Karnaugh CICLO DE MICRO-OPERACIONES DE UNA ALU

    edu.red

    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

    edu.red

    TABLA FUNCIONAL CIRCUITO LÓGICO UNIDAD LÓGICA 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.

    edu.red

    UNA ETAPA DE LA ALU

    edu.red

    TABLA FUNCIONAL DE LA ALU

    edu.red

    DESPLAZADORES (SHIFTERS)

    edu.red

    Circuito Lógico Tabla Funcional DESPLAZADOR ROTATORIO

    edu.red

    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.

    edu.red

    TABLA PARA LA UNIDAD FUNCIONAL

    edu.red

    DETALLE DE LA UNIDAD FUNCIONAL

    edu.red

    ESTRUCTURA DE UN PROCESADOR CON ARQUITECTURA TIPO HARDVARD

    edu.red

    DIAGRAMA DE BLOQUES DE UN PROCESADOR CON ARQUITECTURA TIPO HARDVARD

    edu.red

    Bit Counter Shift-and-Add Multiplier EJEMPLOS

    edu.red

    B = 0; while A?0 do if a0 = 1 then B = B + 1; end if; Right-shift A; end while ; BIT COUNTER Pseudo-código para el Bit Counter Sistema que permite contar el número de ‘1s’ presentes en el Registro A, guardando el resultado en el Registro B 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

    edu.red

    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.

    edu.red

    DIAGRAMA DE TIEMPOS DEL BIT COUNTER

    edu.red

    DISEÑO DEL DATAPATH PARA EL BIT COUNTER

    edu.red

    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

    edu.red

    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 ;

    edu.red

    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 ) BEGIN IF Resetn = '0' THEN y