0% encontró este documento útil (0 votos)
3 vistas11 páginas

PRACTICA1

El documento presenta una práctica de diseño e implementación de contadores de secuencia arbitraria utilizando VHDL, enfocándose en el uso de flip-flops para el almacenamiento de información. Se incluye el código de los circuitos y sus respectivos testbenches, así como una conclusión que destaca la verificación del funcionamiento correcto de los contadores y el aprendizaje sobre la sintaxis de VHDL. Se citan referencias relevantes sobre programación de sistemas digitales y circuitos lógicos secuenciales.

Cargado por

gustavo rdz pena
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas11 páginas

PRACTICA1

El documento presenta una práctica de diseño e implementación de contadores de secuencia arbitraria utilizando VHDL, enfocándose en el uso de flip-flops para el almacenamiento de información. Se incluye el código de los circuitos y sus respectivos testbenches, así como una conclusión que destaca la verificación del funcionamiento correcto de los contadores y el aprendizaje sobre la sintaxis de VHDL. Se citan referencias relevantes sobre programación de sistemas digitales y circuitos lógicos secuenciales.

Cargado por

gustavo rdz pena
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

CENTRO DE ENSEÑANZA TÉCNICA Y SUPERIOR

Escuela de Ingeniería

Ingeniería Cibernética Electrónica

Electrónica Digital II

Practica #1

Presenta:

Fernanda Contreras Quiroz, m043321

Mexicali, B.C. a 20 de febrero del 2025.


Introduccion
VHDL (VHSIC Hardware Description Language) es un lenguaje de descripción de hardware
utilizado para modelar, diseñar y simular circuitos digitales. Fue desarrollado en los años 80 por
el Departamento de Defensa de [Link]. como parte del proyecto VHSIC (Very High-Speed
Integrated Circuit).
Un flip-flop es un elemento básico de almacenamiento en circuitos secuenciales, utilizado para
guardar un bit de información. A diferencia de los circuitos combinacionales, los flip-flops tienen
memoria, lo que les permite conservar su estado hasta que se actualicen con una nueva señal.
Procedimiento y Códigos
Código principal parte A:
library IEEE;
use IEEE.std_logic_1164.all; -- Para std_logic
use IEEE.numeric_std.all; -- Para unsigned

entity practica1 is
Port (
clk : in STD_LOGIC;
reset : in STD_LOGIC;
x : in STD_LOGIC;
q : out STD_LOGIC_VECTOR (2 downto 0)
);
end practica1;

architecture Behavioral of practica1 is


signal count : STD_LOGIC_VECTOR(2 downto 0) := "000";
begin
process (clk, reset)
begin
if reset = '1' then
count <= "000";
elsif rising_edge(clk) then
if x = '0' then
case count is
when "000" => count <= "011";
when "011" => count <= "110";
when "110" => count <= "111";
when "111" => count <= "010";
when "010" => count <= "100";
when "100" => count <= "001";
when "001" => count <= "101";
when "101" => count <= "000";
when others => count <= "000";
end case;
else
case count is
when "111" => count <= "001";
when "001" => count <= "000";
when "000" => count <= "110";
when "110" => count <= "101";
when "101" => count <= "100";
when "100" => count <= "010";
when "010" => count <= "011";
when "011" => count <= "111";
when others => count <= "000";
end case;
end if;
end if;
end process;
q <= count;
end Behavioral;

Testbench:
library IEEE;
use IEEE.std_logic_1164.all; -- Para std_logic
use IEEE.numeric_std.all; -- Para signed, unsigned

entity practica1_tb is
end practica1_tb;

architecture Testbench of practica1_tb is

signal clk_tb : STD_LOGIC := '0';


signal reset_tb : STD_LOGIC := '0';
signal x_tb : STD_LOGIC := '0';
signal q_tb : STD_LOGIC_VECTOR(2 downto 0);

component practica1_tb
Port (
clk : in STD_LOGIC;
reset : in STD_LOGIC;
x : in STD_LOGIC;
q : out STD_LOGIC_VECTOR (2 downto 0)
);
end component;

begin
UUT: practica1_tb port map (
clk => clk_tb,
reset => reset_tb,
x => x_tb,
q => q_tb
);

process
begin
clk_tb <= '0'; wait for 10 ns;
clk_tb <= '1'; wait for 10 ns;
end process;

end Testbench;

Codigo principal parte B:


library IEEE;
use IEEE.std_logic_1164.all; -- Para std_logic
use IEEE.numeric_std.all; -- Para unsigned

entity practica1.5 is
Port (
clk : in STD_LOGIC;
reset : in STD_LOGIC;
q : out STD_LOGIC_VECTOR (2 downto 0)
);
end practica1.5;

architecture behavioral of practica1.5 is


signal count : STD_LOGIC_VECTOR(2 downto 0) := "001";
begin
process (clk, reset)
begin
if reset = '1' then
count <= "001";
elsif rising_edge(clk) then
case count is
when "001" => count <= "011";
when "011" => count <= "110";
when "110" => count <= "010";
when "010" => count <= "011";
when "011" => count <= "111";
when "111" => count <= "001";
when others => count <= "001";
end case;
end if;
end process;
q <= count;
end behavioral;

Testbench:
library IEEE;
use IEEE.std_logic_1164.all; -- Para std_logic
use IEEE.numeric_std.all; -- Para signed, unsigned

entity practica1.5_tb is
end practica1.5_tb;

architecture Testbench of practica1.5_tb is


signal clk_tb : STD_LOGIC := '0';
signal reset_tb : STD_LOGIC := '0';
signal x_tb : STD_LOGIC := '0';
signal q_tb : STD_LOGIC_VECTOR(2 downto 0);

component practica1.5_tb
Port (
clk : in STD_LOGIC;
reset : in STD_LOGIC;
x : in STD_LOGIC;
q : out STD_LOGIC_VECTOR (2 downto 0)
);
end component;

begin
UUT: contador_bcd port map (
clk => clk_tb,
reset => reset_tb,
x => x_tb,
q => q_tb
);

process
begin
clk_tb <= '0'; wait for 10 ns;
clk_tb <= '1'; wait for 10 ns;
end process;

end arql;
Conclusion
En esta práctica, se diseñaron e implementaron contadores de secuencia arbitraria utilizando
VHDL. Se trabajó con circuitos secuenciales que almacenan y cambian estados en función de
señales de entrada y un reloj, aplicando el concepto de flip-flops para la retención de
información.
A través de la simulación y análisis del código, se verificó el correcto funcionamiento de los
contadores, asegurando que las secuencias definidas fueran respetadas en cada ciclo de reloj.
Además, se reforzaron conocimientos sobre la estructura y sintaxis de VHDL, la importancia del
diseño modular y la validación de circuitos digitales mediante testbenches.
Referencias

Maxinez, D. G., & Jara, J. A. (2002). VHDL. El arte de programar sistemas digitales. 1st ed.
CECSA, 368.

Ndjountche, T. (2020). Electrónica digital 2: Circuitos lógicos secuenciales y aritméticos (Vol.


2). ISTE Group.

También podría gustarte