microelectrÓnica ie. msc. josé armando becerra vargas

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

Upload: zeki

Post on 11-Jan-2016

65 views

Category:

Documents


4 download

DESCRIPTION

DISEÑO RTL DE PROCESADORES ARITMÉTICOS. MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas. REQUISITOS DEL CURSO. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas

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

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

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

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

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

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

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

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

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

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

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

Multiplexores dedicados Un solo Bus

TRANSFERENCIA UTILIZANDO TRANSFERENCIA UTILIZANDO MULTIPLEXORESMULTIPLEXORES

Page 13: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas

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

BUS Multiplexado BUS Tri estado con Registros bidireccionales

TIPOS DE BUSESTIPOS DE BUSES

Page 15: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas

Funcionamiento de un Registro Bidireccional:

TIPOS DE BUSESTIPOS DE BUSES

Page 16: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas

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

Conjunto e Registros

(RTL)

Unidad Funcional

(Operaciones)

UNIDAD DE DATOSUNIDAD DE DATOS

Page 18: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas

Unidad Aritmético-Lógica (ALU)

UNIDAD FUNCIONAL (ALU)UNIDAD FUNCIONAL (ALU)

Page 19: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas

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

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

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

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

UNA ETAPA DE LA ALUUNA ETAPA DE LA ALU

Page 24: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas

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

DESPLAZADORES (SHIFTERS)DESPLAZADORES (SHIFTERS)

Page 26: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas

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

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

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

DETALLE DE LA UNIDAD FUNCIONALDETALLE DE LA UNIDAD FUNCIONAL

Page 30: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas

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

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

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

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

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

DIAGRAMA DE TIEMPOS DEL BIT COUNTERDIAGRAMA DE TIEMPOS DEL BIT COUNTER

Page 36: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas

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

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

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

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

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

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

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

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

DIAGRAMA DE TIEMPOS PARA EL MULTIPLICADOR DIAGRAMA DE TIEMPOS PARA EL MULTIPLICADOR

Page 45: MICROELECTRÓNICA IE. MSc. José Armando Becerra Vargas

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

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

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

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

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

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