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: (Gp:) : El contenido de R1 se transfiere a R2 (Gp:) OPERACIÓN DESCRIPCIÓN
Operación condicional:
Notación de transferencia entre registros:
OPERACIONES DE TRANSFERENCIA
Símbolos usados en el lenguaje de transferencia de Registros: OPERACIONES DE TRANSFERENCIA
Ejemplo de Micro-operaciones Aritméticas: OPERACIONES DE TRANSFERENCIA
Implementación de las operaciones de transferencia: OPERACIONES DE TRANSFERENCIA
Micro-operaciones Lógicas: Ejemplo de operaciones de desplazamiento: OPERACIONES DE TRANSFERENCIA
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
Ejemplo de Transferencia de Registros utilizando una configuración de un solo BUS. TRANSFERENCIA UTILIZANDO MULTIPLEXORES
BUS Multiplexado BUS Tri estado con Registros bidireccionales TIPOS DE BUSES
Funcionamiento de un Registro Bidireccional: TIPOS DE BUSES
Conexión de una Memoria al Bus de Datos y al Bus de Direcciones: TIPOS DE BUSES ESTRUCTURA CON MEMORIA
Conjunto e Registros (RTL) Unidad Funcional (Operaciones) UNIDAD DE DATOS
Unidad Aritmético-Lógica (ALU) UNIDAD FUNCIONAL (ALU)
ESTRUCTURA COMPLETA DE UNA ALU UNIDAD LÓGICA UNIDAD ARITMÉTICA
Tabla de Funciones Tabla de Verdad Mapa de Karnaugh CICLO DE MICRO-OPERACIONES DE UNA ALU
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
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.
UNA ETAPA DE LA ALU
TABLA FUNCIONAL DE LA ALU
DESPLAZADORES (SHIFTERS)
Circuito Lógico Tabla Funcional DESPLAZADOR ROTATORIO
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
DETALLE DE LA UNIDAD FUNCIONAL
ESTRUCTURA DE UN PROCESADOR CON ARQUITECTURA TIPO HARDVARD
DIAGRAMA DE BLOQUES DE UN PROCESADOR CON ARQUITECTURA TIPO HARDVARD
Bit Counter Shift-and-Add Multiplier EJEMPLOS
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
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 ) BEGIN IF Resetn = '0' THEN y