Clases: Noviembre parte 2
Clase: 10 de Noviembre de 2020
Se realizo el siguiente ejercicio de maquinas de estado.
Clase: 11 de Noviembre de 2020
Se realizo el ejercicio del semáforo en clase
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity semaforo_clase is
Port ( CLK : in STD_LOGIC;
rst : in STD_LOGIC;
lights : out STD_LOGIC_VECTOR (5 downto 0));
end semaforo_clase;
architecture Behavioral of semaforo_clase is
constant t_span : integer := 1000;
signal counter : integer range 0 to t_span+1:=0;
signal flag : std_logic := '0';
signal lights_dummy : std_logic_vector(5 downto 0);
type state is (E1, E2, E3, E4);
signal curs_s, nt_s : state:= E1;
begin
--temporizador
process (CLK)
begin
if (rising_edge(CLK)) then
counter <= counter+1;
flag <= '0';
if counter = t_span then
counter <= 0;
flag <= '1';
end if;
end if;
end process;
--logica del estado siguiente
process (rst,CLK)
begin
if (rst = '1') then
curs_s <= E1;
elsif rising_edge(CLK) then
curs_s <= nt_s;
end if;
end process;
--Maquina de estado
state_machine: process (curs_s, nt_s, flag)
begin
case curs_s is
when E1 =>
if flag = '1' then
nt_s <= E2;
lights_dummy <= "010100";
else
nt_s <= E1;
lights_dummy <= "001100";
end if;
when E2 =>
if flag = '1' then
nt_s <= E3;
lights_dummy <= "100001";
else
nt_s <= E2;
lights_dummy <= "010100";
end if;
when E3 =>
if flag = '1' then
nt_s <= E4;
lights_dummy <= "100010";
else
nt_s <= E3;
lights_dummy <= "100001";
end if;
when E4 =>
if flag = '1' then
nt_s <= E1;
lights_dummy <= "001100";
else
nt_s <= E4;
lights_dummy <= "100010";
end if;
when others =>
end case;
end process;
end Behavioral;
Clase: 24 de Noviembre de 2020
En la clase presentada se vio un sumador con acumulador
Máquina de estados
Ejemplo 1:
Multiplicador binario
Clase: 25 de Noviembre de 2020
Se realizo el siguiente ejercicio:
--
-----------
Comentarios
Publicar un comentario