Está en la página 1de 10

Universidad Nacional Mayor de

San Marcos

 Facultad: Ingeniería Eléctrica y Electrónica

 Alumno: Marcañaupa Mejia Arturo Arturo

 Codigo: 14190092

 Curso: Circuitos Digitales I

 Profesor: Dr Ing Ruben Alarcon

 Trabajo: tarea 2 vhdl


12/11/2018
5.37 Problema: Escriba el código de VHDL para especificar el circuito de
la figura 5.36

Solución:
Para los sumadores BCD de un dígito, comprendidos entre 0 y 9, existirán
2 casos:
Cuando Z > 9 y cuando Z ≤ 9
Para el primer caso, en donde Z>9, se producirá una señal de salida que
controla al multiplexor y este proporcionará la corrección necesaria
sumándole +6 y con una salida de acarreo =1.
Para el caso de que Z ≤ 9, S = Z + 0 (no procederá a hacerse alguna
correción).
Entonces, implementando todo esto en un código VHDL, se tiene:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
ENTITY problema37 IS
port(
A : in std_logic_vector (3 downto 0);
B : in std_logic_vector (3 downto 0);
S : out std_logic_vector (4 downto 0));
END problema37;

ARCHITECTURE behavioral OF problema37 IS

SIGNAL Z : std_logic_vector(4 downto 0);


SIGNAL ajuste : std_logic;
BEGIN

Z <= ('0' & A) + B;


ajuste <= '1' WHEN Z>9 ELSE '0';
S <= Z WHEN (ajuste = '0') ELSE Z+6;
end behavioral;
Simulación temporal

5.11 Problema: Escriba el código de VHDL para especificar el circuito de


la figura 5.43.
Solución:
Procederemos a hacer el código del comparador haciendo una
especificación del comportamiento, ya que si lo describimos de manera
estructural, esta se complicaría si quisiéramos hacer comparadores muchos
más grandes.

Por lo tanto, haciendo uso del VHDL, procedemos a describir el


funcionamiento del comparador.
Simulación temporal
5.17 Considere el código de VHDL de la figura P5.2. Dada la relación
entre las señales IN y OUT, ¿cuál es la funcionalidad del circuito descrito
por el código? Comente si este código constituye o no un buen estilo para
la funcionalidad que representa.

Solución:
Reescribiendo el código en VHDL se tiene:
Simulación temporal

Como se puede observar, este código representa un multiplicador de 2 por 2 bits,


en donde se multiplican los 2 bits más significativos, con los 2 bits menos
significativos de la entrada INPUT.
Veamos:
“0001" WHEN "0101",  0001=01*01
"0010" WHEN "0110",  0010=01*10
"0011" WHEN "0111",  0011=01*11
"0010" WHEN "1001",  0010=10*01
"0100" WHEN "1010",  0100=10*10
"0110" WHEN "1011",  0110=10*11
"0011" WHEN "1101",  0011=11*01
"0110" WHEN "1110",  0110=11*10
"1001" WHEN "1111",  1001=11*11
"0000" WHEN OTHERS;  0000=00*xx ó xx*00

No constituye un buen estilo de funcionalidad si se quiere aumentar a más bits el


multiplicador. En este caso, este tipo de códigos, suelen ser algo tediosos como
las arquitecturas estructurales al momento de hacerlos más grandes. Por ser de 2
bits por 2 bits, resulta mucho más sencillo que diseñarlo con una arquitectura
funcional.

5.19 Derive un esquema para realizar la resta usando operadores BCD. Muestre
un diagrama de bloques para el circuito restador.
Sugerencia: La resta puede realizarse fácilmente si los operando están en
representación de complemento a 10(complemento a la base).En esta
representación, el digito signo es 0 para un numero positivo y 9 para un numero
negativo.
El circuito va a cumplir siempre y cuando Ai=0000 o cuando sea Ai=1001. Para
esas instancias se activara el acarreo de entrada , dando el signo positivo o
negativo.

También podría gustarte