Download - MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS
![Page 1: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/1.jpg)
MICROELECTRÓNICAMICROELECTRÓNICA
IE. MSc. José Armando Becerra VargasIE. MSc. José Armando Becerra Vargas
DISEÑODISEÑO RTL DE RTL DE PROCESADORESPROCESADORES ARITMÉTICOSARITMÉTICOS
![Page 2: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/2.jpg)
REQUISITOS DEL CURSOREQUISITOS 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.
![Page 3: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/3.jpg)
ESTRUCTURA GENERAL DE UN SISTEMA ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROSDE TRANSFERENCIA DE REGISTROS
![Page 4: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/4.jpg)
OPERACIONES DE TRANSFERENCIAOPERACIONES DE TRANSFERENCIA
Identificación de Registros en operaciones de transferencia:
12 RR : El contenido de R1 se transfiere a R2
OPERACIÓN DESCRIPCIÓNOPERACIÓN DESCRIPCIÓN
![Page 5: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/5.jpg)
Operación condicional:
)12( )11( RRthenKif
Notación de transferencia entre registros:
12 :1 RRK
OPERACIONES DE TRANSFERENCIAOPERACIONES DE TRANSFERENCIA
![Page 6: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/6.jpg)
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 TRANSFERENCIAOPERACIONES DE TRANSFERENCIA
![Page 7: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/7.jpg)
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 TRANSFERENCIAOPERACIONES DE TRANSFERENCIA
![Page 8: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/8.jpg)
Implementación de las operaciones de transferencia:
211 :1 ___
RRRKX
1211 :1___
RRRKX
OPERACIONES DE TRANSFERENCIAOPERACIONES DE TRANSFERENCIA
![Page 9: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/9.jpg)
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 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
OPERACIONES DE TRANSFERENCIAOPERACIONES DE TRANSFERENCIA
![Page 10: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/10.jpg)
Ejemplo: Implementación de la operación condicional múltiple.
10:21 ,20 :1___
RRKKRRK
TRANSFERENCIA UTILIZANDO TRANSFERENCIA UTILIZANDO MULTIPLEXORESMULTIPLEXORES
![Page 11: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/11.jpg)
Circuito detallado de la implementación de: 20:2'1 ,10 :1 RRKKRRK
TRANSFERENCIA UTILIZANDO TRANSFERENCIA UTILIZANDO MULTIPLEXORESMULTIPLEXORES
![Page 12: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/12.jpg)
Multiplexores dedicados Un solo Bus
TRANSFERENCIA UTILIZANDO TRANSFERENCIA UTILIZANDO MULTIPLEXORESMULTIPLEXORES
![Page 13: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/13.jpg)
TRANSFERENCIA DE REGISTRO
SELECT CARGA
S0 S1 L2 L1 L0
RO <-- R2 1 0 0 0 1
RO <-- R1, R2 <-- R1 0 1 1 0 1
RO <-- R1, R1 <-- R0 IMPOSIBLE
Ejemplo de Transferencia de Registros utilizando una configuración de un solo BUS.
TRANSFERENCIA UTILIZANDO TRANSFERENCIA UTILIZANDO MULTIPLEXORESMULTIPLEXORES
![Page 14: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/14.jpg)
BUS Multiplexado BUS Tri estado con Registros bidireccionales
TIPOS DE BUSESTIPOS DE BUSES
![Page 15: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/15.jpg)
Funcionamiento de un Registro Bidireccional:
TIPOS DE BUSESTIPOS DE BUSES
![Page 16: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/16.jpg)
Conexión de una Memoria al Bus de Datos y al Bus de Direcciones:
TIPOS DE BUSES – ESTRUCTURA CON TIPOS DE BUSES – ESTRUCTURA CON MEMORIAMEMORIA
![Page 17: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/17.jpg)
Conjunto e Registros
(RTL)
Unidad Funcional
(Operaciones)
UNIDAD DE DATOSUNIDAD DE DATOS
![Page 18: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/18.jpg)
Unidad Aritmético-Lógica (ALU)
UNIDAD FUNCIONAL (ALU)UNIDAD FUNCIONAL (ALU)
![Page 19: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/19.jpg)
ESTRUCTURA COMPLETA DE UNA ALUESTRUCTURA COMPLETA DE UNA ALU
UNIDAD LÓGICAUNIDAD LÓGICA
UNIDAD ARITMÉTICAUNIDAD ARITMÉTICA
![Page 20: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/20.jpg)
Select Input G = A + Y + Cin
S1 S0 Y Cin = 0 Cin = 1
0 0 Todo 0's G = A (Transferencia) G = A + 1 (Incrementa)
0 1 B G = A + B (Adición) G = A + B + 1
1 0 /B G = A + /B G = A + /B + 1 (Substracción)
1 1 Todo 1's G = A - 1 (Decrementa) G = A (Transferencia)
Tabla de FuncionesTabla de Funciones
Tabla de VerdadTabla de Verdad Mapa de KarnaughMapa de Karnaugh
INPUTS OUTPUT
S1 S0 Bi Yi
0 0 0 0Yi = 0
0 0 1 0
0 1 0 0Yi = Bi
0 1 1 1
1 0 0 1Yi = /Bi
1 0 1 0
1 1 0 1Yi = 1
1 1 1 1
1/0 SBiSBiYi
CICLO DE MICRO-OPERACIONES DE UNA CICLO DE MICRO-OPERACIONES DE UNA ALUALU
![Page 21: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/21.jpg)
UNIDAD ARITMÉTICA DE CUATRO BITsUNIDAD ARITMÉTICA DE CUATRO BITs
Se basa en un diseño totalmente combinacional, los bloques FA, se refieren a sumadores completos de un bit
![Page 22: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/22.jpg)
S1 S0 OUTPUT OPERACIÓN
0 0 G = A B AND
0 1 G = A V B OR
1 0 G = A B XOR
1 1 G = /A NOT
TABLA FUNCIONALTABLA FUNCIONAL CIRCUITO LÓGICOCIRCUITO LÓGICO
UNIDAD LÓGICAUNIDAD 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.
![Page 23: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/23.jpg)
UNA ETAPA DE LA ALUUNA ETAPA DE LA ALU
![Page 24: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/24.jpg)
SELECCIÓN DE OPERACIÓNOPERACIÓN FUNCIÓN
S2 S1 S0 Cin
0 0 0 0 G = A Transfer A
0 0 0 1 G = A + 1 Increment A
0 0 1 0 G = A + B Addition
0 0 1 1 G = A + B + 1 Add with Carry input of 1
0 1 0 0 G = A + /B A más complemento a uno de B
0 1 0 1 G = A + /B + 1 Substraction
0 1 1 0 G = A - 1 Decrement A
0 1 1 1 G = A Transfer A
1 0 0 X G = A B AND
1 0 1 X G = A V B OR
1 1 0 X G = A B XOR
1 1 1 X G = /A NOT (Complemento a uno)
TABLA FUNCIONAL DE LA ALUTABLA FUNCIONAL DE LA ALU
![Page 25: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/25.jpg)
DESPLAZADORES (SHIFTERS)DESPLAZADORES (SHIFTERS)
![Page 26: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/26.jpg)
Circuito LógicoCircuito Lógico
Tabla FuncionalTabla FuncionalSELECCIÓN OUTPUT OPERACIÓN
S1 S0 Y3 Y2 Y1 Y0
0 0 D3 D2 D1 D0 NO ROTAR
0 1 D2 D1 D0 D3 ROTA UNA POSICIÓN
1 0 D1 D0 D3 D2 ROTA DOS POSICIONES
1 1 D0 D3 D2 D1 ROTA TRES POSICIONES
DESPLAZADOR ROTATORIODESPLAZADOR ROTATORIO
![Page 27: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/27.jpg)
DIAGRAMA GENERAL DE UNA UNIDAD DE DIAGRAMA GENERAL DE UNA UNIDAD DE DATOSDATOS
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.
![Page 28: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/28.jpg)
SELECCIÓN MICRO-OPERACIÓN
FSFS MFMF GG HH
00000 0 0000 00 F = A
00001 0 0001 00 F = A + 1
00010 0 0010 00 F = A + B
00011 0 0011 00 F = A + B + 1
00100 0 0100 01 F = A + B’
00101 0 0101 01 F = A + B’ + 1
00110 0 0110 01 F = A – 1
00111 0 0111 01 F = A
01000 0 1000 00 F = A B
01010 0 1010 10 F = A V B
01100 0 1100 10 F = A B
01110 0 1110 10 F = A’
10000 1 0000 00 F = B
10100 1 0100 01 F = sr B
11000 1 1000 10 F = sl B
TABLA PARA LA UNIDAD FUNCIONALTABLA PARA LA UNIDAD FUNCIONAL
![Page 29: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/29.jpg)
DETALLE DE LA UNIDAD FUNCIONALDETALLE DE LA UNIDAD FUNCIONAL
![Page 30: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/30.jpg)
ESTRUCTURA DE UN PROCESADOR CON ESTRUCTURA DE UN PROCESADOR CON ARQUITECTURA TIPO HARDVARDARQUITECTURA TIPO HARDVARD
![Page 31: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/31.jpg)
DIAGRAMA DE BLOQUES DE UN DIAGRAMA DE BLOQUES DE UN PROCESADOR CON ARQUITECTURA TIPO PROCESADOR CON ARQUITECTURA TIPO
HARDVARDHARDVARD
![Page 32: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/32.jpg)
1.1. Bit CounterBit Counter
2.2. Shift-and-Add MultiplierShift-and-Add Multiplier
EJEMPLOSEJEMPLOS
![Page 33: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/33.jpg)
B = 0;
while A≠0 do
if a0 = 1 then
B = B + 1;
end if;
Right-shift A;
end while ;
1.1. BIT COUNTERBIT COUNTER
Pseudo-código para el Bit CounterPseudo-código para el Bit Counter
Sistema que permite contar el número de ‘1s’ presentes en el Registro A, Sistema que permite contar el número de ‘1s’ presentes en el Registro A, guardando el resultado en el Registro Bguardando el resultado en el Registro B
Se utiliza un lenguaje estándar de Se utiliza un lenguaje estándar de programación para describir el programación para describir el algoritmo que se va a utilizar. Luego se algoritmo que se va a utilizar. Luego se describe como diseño ASMdescribe como diseño ASM
![Page 34: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/34.jpg)
CARTA ASM PARA EL BIT COUNTERCARTA ASM PARA EL BIT COUNTER
Carta ASM para el diseño del Carta ASM para el diseño del DATAPATH del contador de bits ‘1’, DATAPATH del contador de bits ‘1’, describe las micro-operaciones describe las micro-operaciones presentes en el diseño.presentes en el diseño.
![Page 35: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/35.jpg)
DIAGRAMA DE TIEMPOS DEL BIT COUNTERDIAGRAMA DE TIEMPOS DEL BIT COUNTER
![Page 36: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/36.jpg)
DISEÑO DEL DATAPATH PARA EL BIT COUNTERDISEÑO DEL DATAPATH PARA EL BIT COUNTER
![Page 37: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/37.jpg)
CARTA ASM PARA EL CONTROL DEL BIT COUNTERCARTA ASM PARA EL CONTROL DEL BIT COUNTER
Carta ASM para el diseño de la lógica Carta ASM para el diseño de la lógica de control del contador de bits ‘1’. de control del contador de bits ‘1’. Obsérvese que las señales utilizadas Obsérvese que las señales utilizadas son las señales de STATUS.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
![Page 38: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/38.jpg)
CÓDIGO VHDL PARA DESCRIBIR EL BIT COUNTER (1)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 ISPORT(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 ;
![Page 39: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/39.jpg)
CÓDIGO VHDL PARA DESCRIBIR EL BIT COUNTER (2)CÓDIGO VHDL PARA DESCRIBIR EL BIT COUNTER (2)
ARCHITECTURE Behavior OF bitcount ISTYPE 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 ;
BEGINFSM_transitions: PROCESS ( Resetn, Clock )BEGIN
IF Resetn = '0' THENy <= S1 ;
ELSIF (Clock'EVENT AND Clock = '1') THENCASE 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 ;
![Page 40: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/40.jpg)
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)CÓDIGO VHDL PARA DESCRIBIR EL BIT COUNTER (3)
![Page 41: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/41.jpg)
-- El DATAPATH es descrito a continuaciónupcount: PROCESS ( Resetn, Clock )BEGIN
IF Resetn = '0' THENB <= 0 ;
ELSIF (Clock'EVENT AND Clock = '1') THENIF LB = '1' THEN
B <= 0 ;ELSEIF EB = '1' THEN
B <= B + 1 ;END IF ;
END IF;END PROCESS;
CÓDIGO VHDL PARA DESCRIBIR EL BIT COUNTER (4)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 = "00000000" ELSE '0' ;
END Behavior ;
![Page 42: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/42.jpg)
2.2. MULTIPLICADOR BINARIO DE MULTIPLICADOR BINARIO DE nn BITS 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
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
ALGORITMO PARA LA MULTIPLICACIÓNALGORITMO PARA LA MULTIPLICACIÓN
![Page 43: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/43.jpg)
CARTA ASM PARA EL MULTIPLICADOR BINARIOCARTA ASM PARA EL MULTIPLICADOR BINARIO
Carta ASM para el diseño del Carta ASM para el diseño del DATAPATH del multiplicador DATAPATH del multiplicador binario, describe las micro-binario, describe las micro-operaciones presentes en el diseño.operaciones presentes en el diseño.
![Page 44: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/44.jpg)
DIAGRAMA DE TIEMPOS PARA EL MULTIPLICADOR DIAGRAMA DE TIEMPOS PARA EL MULTIPLICADOR
![Page 45: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/45.jpg)
DISEÑO DEL DATAPATH PARA EL MULTIPLICADORDISEÑ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
![Page 46: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/46.jpg)
CARTA ASM PARA EL CONTROL DEL MULTIPLICADORCARTA ASM PARA EL CONTROL DEL MULTIPLICADOR
Carta ASM para el diseño de la lógica Carta ASM para el diseño de la lógica de control del Multiplicador Binario. de control del Multiplicador Binario. Obsérvese que las señales utilizadas Obsérvese que las señales utilizadas son las señales de STATUS.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
![Page 47: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/47.jpg)
LIBRARY ieee ;USE ieee.std_logic_1164.all ;USE ieee.std_logic_unsigned.all ;USE work.components.all ;
ENTITY multiply ISGENERIC ( 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 (1)CÓDIGO VHDL PARA DESCRIBIR EL MULTIPLICADOR (1)
![Page 48: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/48.jpg)
ARCHITECTURE Behavior OF multiply ISTYPE 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) ;
BEGINFSM_transitions: PROCESS ( Resetn, Clock )BEGIN
IF Resetn = '0’ THENy <= S1 ;
ELSIF (Clock'EVENT AND Clock = '1') THENCASE 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)CÓDIGO VHDL PARA DESCRIBIR EL MULTIPLICADOR (2)
![Page 49: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/49.jpg)
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)CÓDIGO VHDL PARA DESCRIBIR EL MULTIPLICADOR (2)
![Page 50: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas DISEÑO RTL DE PROCESADORES ARITMÉTICOS](https://reader033.vdocuments.pub/reader033/viewer/2022061302/54e69d034a7959d6578b483f/html5/thumbnails/50.jpg)
- - Define the datapath circuitZero <= '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 DataPGenMUX: 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)CÓDIGO VHDL PARA DESCRIBIR EL MULTIPLICADOR (3)