entrega 2: ejemplos de Vhdl

El dia de hoy les traigo mas ejemplos de vhdl... espero que ya se esten dando cuenta como se hace esto de vhdl.....
Ejemplo 6:
Diseñar en VHDL, un codificador de 4:2 con prioridad
-------------------------------------------------
-- electronico-etn.blogspot.com
-- ejemplos practiicos
-- Codificador de prioridad
-------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;

entity codificador is
port    (w:in std_logic_vector (3 downto 0);
        y: out std_logic_vector (1 downto 0);
        z: out std_logic);
end codificador;

architecture behaivor of codificador is

begin
with w select
    y
<=    "00" when "0001",
        "01" when "0010",
        "01" when "0011",
        "10" when "0100",
        "10" when "0101",
        "10" when "0110",
        "10" when "0111",
        "11" when others;
with w select
    z
<=    '0' when "0000",
        '1' when others;
end behaivor;


Ejemplo 7:
Diseñar en VHDL, un codificador 4:2 (como el ejemplo anterior), sin tanto codigo. realizarlo mas eficientemente
Solucion:
--------------------------------------------------
-- electronico-etn.blogspot.com
-- ejemplos practiicos
-- Codificador de prioridad + eficiente
--------------------------------------------------

library ieee;
use ieee.std_logic_1164.all;

entity codeficiente is
port    (w:in std_logic_vector (3 downto 0);
        y: out std_logic_vector (1 downto 0);
        z: out std_logic);
end codeficiente;

architecture behaivor of codificador is
begin
with w select
    y
<=    "11" when w(3) H '1' else
        "10" when w(2) H '1' else
        "01" when w(1) H '1' else
        "00";
    z
<=    '0' when    w = "0000", else '1';
end codeficiente;

 Ejemplo 8:
Diseñar en VHDL, un comparador de 4 bits , que a la salida te de informacion de A mayor que B, A menor que B y A Igual que B.
Solucion:
-------------------------------------------
-- electronico-etn.blogspot.com
-- APLICACION DE MULTIPLEXORES
-- COMPARACION
-------------------------------------------
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY comparador IS
PORT
    (BCD1, BCD2: IN std_logic_vector(3 DOWNTO 0);
    Igual, Mayor, Menor: OUT std_logic);
END comparador;

ARCHITECTURE RTL OF comparador IS
BEGIN

    Compara:PROCESS(BCD1, BCD2)
        BEGIN
--Comparación de Igualdad.
        IF (BCD1 = BCD2)
        THEN Igual <= '1';
        ELSE Igual <= '0';
        END IF;
--Comparación de Mayor (svE1>svE2).
        IF (BCD1 > BCD2)
        THEN Mayor <= '1';
        ELSE Mayor <= '0';
        END IF;
--Comparación de Menor (svE1
        IF (BCD1 < BCD2)
        THEN Menor <= '1';
        ELSE Menor <= '0';
        END IF;
    END PROCESS Compara;
END RTL;

Ejemplo 9:
Diseñar en VHDL, un comparador de 4 bits, que a la salida te de informacion de A mayor que B, A menor que B y A Igual que B. METODO 2 (ojo: hay varios mas)
----------------------------------------
-- electronico-etn.blogspot.com
-- ejemplos practiicos
----------------------------------------
LIBRARY ieee;
USE ieee.std_logic_1l64.all;

USE ieee.std_logic_unsigned.all ;
 

ENTITY ejemplo09 IS
  PORT ( A,B: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
  igual,mayor,menor: OUT STD_LOGIC);

END ejemplo09;

ARCHITECTURE rtl OF ejemplo09 IS
BEGIN
 igual <= 'l' WHEN A = B ELSE '0';
 mayor <= '1' WHEN A > B ELSE '0';
 menor <='l' WHEN A < B ELSE'0';
END rtl;

Ejemplo 10:
Diseñar en VHDL, un comparador de 4 bits CON SIGNO, que a la salida te de informacion de A mayor que B, A menor que B y A Igual que B
Solucion:
---------------------------------
-- electronico-etn.blogspot.com
-- ejemplos practiicos
---------------------------------
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;

-- aqui en la libreria arith radica la
-- diferencia, a comparacion del
-- anterior circuito


ENTITY ejemplo10 IS
PORT ( A,B: IN signed(3 DOWNTO 0);
igual,mayor,menor: OUT STD_LOGIC);

END ejemplo10;

ARCHITECTURE behavior OF ejemplo10 IS
BEGIN
igual <= 'l' WHEN A = B ELSE '0';
mayor <= '1' WHEN A > B ELSE '0';
menor <='l' WHEN A < B ELSE'0';
END behavior;

Ejemplo 11:
Diseñar en VHDL, un multiplexor de 16 a 1 con 4 variables de seleccion. USANDO multiplexores de 4 a 1

Solucion:
----------------------------------------------
-- electronico-etn.blogspot.com
-- ejemplos practiicos
----------------------------------------------
LIBRARY ieee;

USE ieee.std_logic_1l64.all;
LIBRARY work;
USE work.mux4to1_package.all;

ENTITY ejemplo11 IS
PORT(w :IN
STD_LOGIC_VECTOR(0 TO 15);
s :IN STD_LOGTC_VECTOR(3 DOWNTO 0);
f :OUT STD_LOGIC );
END ejemplo11;

ARCHITECTURE Structure OF ejemplo1l IS
SIGNAL m:STD_LOGIC_VECTOR(O TO 3) ;
BEGIN
Mux1: mux4ro1 PORT MAP
(w(0),w(1),w(2),w(3),s(1 DOWNTO 0),m(0));
Mux2: mux4to1 PORT MAP
(w(4),w(5),w(6),w(7),s(1 DOWNTO 0),m(1));
Mux3: mux4to1 PORT MAP
(w(8),w(9),w(10),w(11),s(l DOWNTO 0),m(2));
Mux4: mux4to1 PORT MAP
(w(12),w(13),w(14),w(15),s(l DOWNTO 0),m(3));
Mux5: mux4to1 PORT MAP
(m(0),m(l),m(2),m(3),s(3 DOWNTO 2),f );

END Structure;

Proximamente mas ejemplos sobre transcodificadores, y ejemplos de laboratorios de digitales 1