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