La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS."— Transcripción de la presentación:

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

2 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: 1.Análisis y síntesis de sistemas combinacionales; lógica cableada, Lógica modular y descripción en VHDL de sistemas combinacionales. 2.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. 3.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. 4.Manejo adecuado de las herramientas EDA. Para el caso específico, conocimiento, destreza y manejo del software ISE FOUNDATION de XILINX.

3 ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS

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

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

6 Símbolos usados en el lenguaje de transferencia de Registros: SÍMBOLODESCRIPCIÓNEJEMPLO Letras y/o Letras y NúmerosDenota un RegistroAR, R2, DR, IR ParéntesisDenota parte de un RegistroR2(1), R2(7:0), AR(L) FlechaDenota Transferencia de DatosR2 <-- R1 ComaSepara operaciones simultaneasR1 <-- R2, R2 <-- R1 Paréntesis cuadradosEspecifica una dirección de memoriaDR <-- M[AR] OPERACIONES DE TRANSFERENCIA

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

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

9 Micro-operaciones Lógicas: DESIGNACIÓN SIMBÓLICADESCRIPCIÓN R0 <-- /R1Operación Lógica NOT bit a bit (Complemento a uno) R0 <-- R1 R2 Operación Lógica AND bit a bit (Clarear bits) R0 <-- R1 V R2Operació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: TIPODESIGNACIÓN SIMBÓLICAFUENTE R2DESTINACIÓN DESPUÉS DEL CORRIMIENTO R1 SHIFT LEFTR1 <-- sl R SHIFT RIGHTR1 <-- sr R OPERACIONES DE TRANSFERENCIA

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

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

12 Multiplexores dedicadosUn solo Bus TRANSFERENCIA UTILIZANDO MULTIPLEXORES

13 TRANSFERENCIA DE REGISTRO SELECTCARGA S0S1L2L1L0 RO <-- R RO <-- R1, R2 <-- R RO <-- R1, R1 <-- R0IMPOSIBLE Ejemplo de Transferencia de Registros utilizando una configuración de un solo BUS. TRANSFERENCIA UTILIZANDO MULTIPLEXORES

14 BUS MultiplexadoBUS Tri estado con Registros bidireccionales TIPOS DE BUSES

15 Funcionamiento de un Registro Bidireccional: TIPOS DE BUSES

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

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

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

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

20 SelectInputG = A + Y + Cin S1S0YCin = 0Cin = 1 00Todo 0'sG = A (Transferencia)G = A + 1 (Incrementa) 01BG = A + B (Adición)G = A + B /BG = A + /BG = A + /B + 1 (Substracción) 11Todo 1'sG = A - 1 (Decrementa)G = A (Transferencia) Tabla de Funciones Tabla de Verdad Mapa de Karnaugh INPUTSOUTPUT S1S0BiYi 0000 Yi = Yi = Bi Yi = /Bi Yi = CICLO DE MICRO-OPERACIONES DE UNA ALU

21 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

22 S1S0OUTPUTOPERACIÓN 00 G = A B AND 01G = A V BOR 10 G = A B XOR 11G = /ANOT 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.

23 UNA ETAPA DE LA ALU

24 SELECCIÓN DE OPERACIÓN OPERACIÓNFUNCIÓN S2S1S0Cin 0000 G = ATransfer A 0001 G = A + 1Increment A 0010 G = A + BAddition 0011 G = A + B + 1Add with Carry input of G = A + /BA más complemento a uno de B 0101 G = A + /B + 1Substraction 0110 G = A - 1Decrement A 0111 G = ATransfer A 100X G = A B AND 101X G = A V BOR 110X G = A B XOR 111X G = /ANOT (Complemento a uno) TABLA FUNCIONAL DE LA ALU

25 DESPLAZADORES (SHIFTERS)

26 Circuito Lógico Tabla Funcional SELECCIÓNOUTPUTOPERACIÓN S1S0Y3Y2Y1Y0 00D3D2D1D0NO ROTAR 01D2D1D0D3ROTA UNA POSICIÓN 10D1D0D3D2ROTA DOS POSICIONES 11D0D3D2D1ROTA TRES POSICIONES DESPLAZADOR ROTATORIO

27 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.

28 SELECCIÓNMICRO-OPERACIÓN FSMFGH F = A F = A F = A + B F = A + B F = A + B F = A + B F = A – F = A F = A B F = A V B F = A B F = A F = B F = sr B F = sl B TABLA PARA LA UNIDAD FUNCIONAL

29 DETALLE DE LA UNIDAD FUNCIONAL

30 ESTRUCTURA DE UN PROCESADOR CON ARQUITECTURA TIPO HARDVARD

31 DIAGRAMA DE BLOQUES DE UN PROCESADOR CON ARQUITECTURA TIPO HARDVARD

32 1. Bit Counter 2. Shift-and-Add Multiplier EJEMPLOS

33 B = 0; while A0 do if a 0 = 1 then B = B + 1; end if; Right-shift A; end while ; 1.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

34 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.

35 DIAGRAMA DE TIEMPOS DEL BIT COUNTER

36 DISEÑO DEL DATAPATH PARA EL BIT COUNTER

37 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 a 0 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

38 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 ;

39 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 <= 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 ;

40 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 (3)

41 -- 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 B <= 0 ; ELSEIF EB = '1' THEN B <= B + 1 ; END IF ; END PROCESS; CÓDIGO VHDL PARA DESCRIBIR EL BIT COUNTER (4) low <= '0' ; ShiftA: shiftrne GENERIC MAP ( N => 8 ) PORT MAP ( Data, LA, EA, low, Clock, A ) ; z <= '1' WHEN A = " " ELSE '0' ; END Behavior ;

42 2.MULTIPLICADOR BINARIO DE n BITS 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 Decimal Binaria Multiplicando x Multiplicador Producto a. Método manual ALGORITMO PARA LA MULTIPLICACIÓN

43 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.

44 DIAGRAMA DE TIEMPOS PARA EL MULTIPLICADOR

45 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 B 0 LSB del registro B

46 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 b 0 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

47 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: INSTD_LOGIC ; Resetn: INSTD_LOGIC ; LA, LB, s: INSTD_LOGIC ; DataA: INSTD_LOGIC_VECTOR(N–1 DOWNTO 0) ; DataB: INSTD_LOGIC_VECTOR(N–1 DOWNTO 0) ; P: BUFFER STD_LOGIC_VECTOR(N–1 DOWNTO 0) ; Done: OUTSTD_LOGIC ) ; END multiply ; CÓDIGO VHDL PARA DESCRIBIR EL MULTIPLICADOR (1)

48 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 ) BEGIN 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)

49 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 (2)

50 - - Define the datapath circuit Zero <= '0' ; N_Zeros '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 ; CÓDIGO VHDL PARA DESCRIBIR EL MULTIPLICADOR (3)


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

Presentaciones similares


Anuncios Google