Está en la página 1de 8

Universidad del Magdalena

Diseño de Sistemas Digitales

Docente:
Roger Vicente Caputo Llanos

Estudiantes:
Andrés Daniel García Martínez
Jorge Alejandro Bolaño Montenegro

Santa Marta, Magdalena

D.T.C.H

2022
Actividad
En parejas, revisen las siguientes especificaciones y propongan una
solución de sistemas digitales.

Se requiere implementar un sistema digital que acepte 4 entradas binarias y


mediante un selector se pueda escoger cuál de las salidas será mostrada en la
salida (también binaria).

A continuación, se relacionan las fases del diseño y los resultados esperados


de cada etapa:

1. Diseño Funcional > Diagrama de bloques y tabla de verdad


2. Síntesis > Función lógica y esquemático
3. Mapeamento tecnológico > Definir la tecnología a utilizar (Circuitos
discretos, programables, ASICs o FPGAs) y sustentar la elección.

Obs. Para la última fase se hace necesario que identifiquen las herramientas
EDA (Electronic Design Automation) que utilizarán.

Determinen cómo seria el proceso de fabricación del circuito si este fuera a


resultar en una solución comercial lista para uso por el usuario final.
Desarrollo
entity mux4_1

port(A : in STD_LOGIC;

B : in STD_LOGIC;

C : in STD_LOGIC;

D : in STD_LOGIC;

S0, S1 : STD_LOGIC;

F : out STD_LOGIC);

end mux4_1;

architecture RTL of mux4_1 is

signal not_S0, not_S1 : STD_LOGIC;

signal and_1, and_2, and_3, and_4 :STD_LOGIC;

begin

not_S0 <= notS0;

not_S1 <= not_S1;

and_1 <= not_S0 and not_S1 and A;

and_2 <= S0 and not_S1 and B;

and_3 <= not_S0 and S1 and C;

and_4 <= S0 and S1 and D;

F <= and_1 or and_2 or and_3 or and_4;

end RTL;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

-- Code your design here

library IEEE;

use IEEE.std_logic_1164.all;

entity mux4_1

port(A : in STD_LOGIC;

B : in STD_LOGIC;

C : in STD_LOGIC;

D : in STD_LOGIC;

S : STD_LOGIC_VECTOR(1 downto 0);

F : out STD_LOGIC);

end mux4_1;

architecture RTL of mux4_1 is

--signal not_S0, not_S1 : STD_LOGIC;

begin

/* not_S0 <= not_S0;

not_S1 <= not_S1;

F <= (not_S0 and not_S1 and A) or (S0 and not_S1 and B) or

(not_S0 and S1 and C) or (S0 and S1 and D);

F <= '1' when(S0='0' and S1='0' and A='1') else

'1' when(S0='1' and S1='0' and B='1') else

'1' when(S0='0' and S1='1' and C='1') else

'1' when(S0='1' and S1='1' and D='1') else

'0';
process(S0, S1, A, B, C, D)

begin

if(S0='0' & S1='0') then

F <= A;

elsif (S0='0' & S1='1') then

F <= B;

elsif (S0='1' & S1='0') then

F <= C;

else

F <= D;

end if;

end process;

process(S, A, B, C, D)

begin

if(S="00") then

F <= A;

elsif (S = "01") then

F <= B;

elsif (S = "10") then

F <= C;

elsIF (S = "11") then

F <= D;

else

F <= A;

end if;

*/

process(S, A, B, C, D)

begin

case S is

when "00" => F <= A;

when "01" => F <= B;

when "10" => F <= C;


when "11" => F <= D;

when others => F <= '0';

end case

end process;

end RTL;

%%%%%%%%%%%%%%%%%%%%
https://vhdl.lapinoo.net/testbench/
https://www.vhdltool.com/tryit

También podría gustarte