![Page 1: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/1.jpg)
ESTRUCTURA GENERAL DE UN SISTEMA ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROSDE TRANSFERENCIA DE REGISTROS
![Page 2: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/2.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 3: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/3.jpg)
Operación condicional:
)12( )11( RRthenKif
Notación de transferencia entre registros:
12 :1 RRK
OPERACIONES DE TRANSFERENCIAOPERACIONES DE TRANSFERENCIA
![Page 4: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/4.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 5: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/5.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 6: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/6.jpg)
Implementación de las operaciones de transferencia:
211 :1 ___
RRRKX
1211 :1___
RRRKX
OPERACIONES DE TRANSFERENCIAOPERACIONES DE TRANSFERENCIA
![Page 7: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/7.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 8: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/8.jpg)
Ejemplo: Implementación de la operación condicional múltiple.
10:21 ,20 :1___
RRKKRRK
TRANSFERENCIA UTILIZANDO TRANSFERENCIA UTILIZANDO MULTIPLEXORESMULTIPLEXORES
![Page 9: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/9.jpg)
Circuito detallado de la implementación de: 20:2'1 ,10 :1 RRKKRRK
TRANSFERENCIA UTILIZANDO TRANSFERENCIA UTILIZANDO MULTIPLEXORESMULTIPLEXORES
![Page 10: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/10.jpg)
Multiplexores dedicados Un solo Bus
TRANSFERENCIA UTILIZANDO TRANSFERENCIA UTILIZANDO MULTIPLEXORESMULTIPLEXORES
![Page 11: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/11.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 12: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/12.jpg)
BUS Multiplexado BUS Tri estado con Registros bidireccionales
TIPOS DE BUSESTIPOS DE BUSES
![Page 13: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/13.jpg)
Funcionamiento de un Registro Bidireccional:
TIPOS DE BUSESTIPOS DE BUSES
![Page 14: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/14.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 15: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/15.jpg)
Conjunto e Registros
(RTL)
Unidad Funcional
(Operaciones)
UNIDAD DE DATOSUNIDAD DE DATOS
![Page 16: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/16.jpg)
Unidad Aritmético-Lógica (ALU)
UNIDAD FUNCIONAL (ALU)UNIDAD FUNCIONAL (ALU)
![Page 17: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/17.jpg)
ESTRUCTURA COMPLETA DE UNA ALUESTRUCTURA COMPLETA DE UNA ALU
UNIDAD LÓGICAUNIDAD LÓGICA
UNIDAD ARITMÉTICAUNIDAD ARITMÉTICA
![Page 18: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/18.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 19: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/19.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 20: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/20.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 21: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/21.jpg)
UNA ETAPA DE LA ALUUNA ETAPA DE LA ALU
![Page 22: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/22.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 23: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/23.jpg)
DESPLAZADORES (SHIFTERS)DESPLAZADORES (SHIFTERS)
![Page 24: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/24.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 25: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/25.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 26: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/26.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 27: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/27.jpg)
DETALLE DE LA UNIDAD FUNCIONALDETALLE DE LA UNIDAD FUNCIONAL
![Page 28: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/28.jpg)
ESTRUCTURA DE UN PROCESADOR CON ESTRUCTURA DE UN PROCESADOR CON ARQUITECTURA TIPO HARDVARDARQUITECTURA TIPO HARDVARD
![Page 29: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/29.jpg)
DIAGRAMA DE BLOQUES DE UN DIAGRAMA DE BLOQUES DE UN PROCESADOR CON ARQUITECTURA TIPO PROCESADOR CON ARQUITECTURA TIPO
HARDVARDHARDVARD
![Page 30: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/30.jpg)
1.1. Bit CounterBit Counter
2.2. Shift-and-Add MultiplierShift-and-Add Multiplier
EJEMPLOSEJEMPLOS
![Page 31: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/31.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 32: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/32.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 33: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/33.jpg)
DIAGRAMA DE TIEMPOS DEL BIT COUNTERDIAGRAMA DE TIEMPOS DEL BIT COUNTER
![Page 34: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/34.jpg)
DISEÑO DEL DATAPATH PARA EL BIT COUNTERDISEÑO DEL DATAPATH PARA EL BIT COUNTER
![Page 35: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/35.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 36: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/36.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 37: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/37.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 38: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/38.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 39: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/39.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 40: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/40.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 41: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/41.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 42: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/42.jpg)
DIAGRAMA DE TIEMPOS PARA EL MULTIPLICADOR DIAGRAMA DE TIEMPOS PARA EL MULTIPLICADOR
![Page 43: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/43.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 44: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/44.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 45: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/45.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 46: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/46.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 47: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/47.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 48: ESTRUCTURA GENERAL DE UN SISTEMA DE TRANSFERENCIA DE REGISTROS](https://reader035.vdocuments.co/reader035/viewer/2022081503/5665b49d1a28abb57c92ab20/html5/thumbnails/48.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)