voor de mensen die nederlands spreken;
ik ben een amateur in het programeren,
ik ben bezig met een looplicht te programeren op een flex 10k via het programma MAX PLUS II
er zit een paar fouten in die ik niet begrijp
programma :
library IEEE;
use IEEE.std_logic_1164.all;
entity looplicht is
port (
clk :IN std_logic;
reset :IN std_logic;
LR :IN std_logic;
sevsegl:OUT std_logic_vector(6 downto 0);
sevsegr:OUT std_logic_vector(6 downto 0)
);
end entity;
architecture looplicht_arch of looplicht is
signal counter: integer range 0 to 1000000;
signal reg : std_logic_vector(5 downto 0);
signal clk_div: std_logic;
begin
delerrocess(clk, reset)
begin
if (reset = '0') then
counter <= 0;
elsif (rising_edge(clk)) then
counter <= counter +1;
if(counter = 1000000) then
counter <= 0; --clk_div period = 40ms
clk_div <= not clk_div;
end if;
end if;
end process;
licht: process(clk_div, reset)
begin
if(reset ='0') then
reg <= "111110";
elsif(rising_edge(clk_div)) then
if(LR = '1') then
reg(5) <= reg(0);
for i in 0 to 4 loop
reg(i) <= reg(i+1);
end loop;
else
reg(0) <= reg(5);
for i in 0 to 4 loop
reg(i+1) <= reg(i);
end loop;
end if;
end if;
end process;
sevsegl(6) <= '1';
sevsegr(6) <= '1';
sevsegl(5 downto 0) <= reg;
sevsegr(5 downto 0) <= reg;
end architecture;
dank u voor het helpen op voorbaat
ik ben een amateur in het programeren,
ik ben bezig met een looplicht te programeren op een flex 10k via het programma MAX PLUS II
er zit een paar fouten in die ik niet begrijp
programma :
library IEEE;
use IEEE.std_logic_1164.all;
entity looplicht is
port (
clk :IN std_logic;
reset :IN std_logic;
LR :IN std_logic;
sevsegl:OUT std_logic_vector(6 downto 0);
sevsegr:OUT std_logic_vector(6 downto 0)
);
end entity;
architecture looplicht_arch of looplicht is
signal counter: integer range 0 to 1000000;
signal reg : std_logic_vector(5 downto 0);
signal clk_div: std_logic;
begin
delerrocess(clk, reset)
begin
if (reset = '0') then
counter <= 0;
elsif (rising_edge(clk)) then
counter <= counter +1;
if(counter = 1000000) then
counter <= 0; --clk_div period = 40ms
clk_div <= not clk_div;
end if;
end if;
end process;
licht: process(clk_div, reset)
begin
if(reset ='0') then
reg <= "111110";
elsif(rising_edge(clk_div)) then
if(LR = '1') then
reg(5) <= reg(0);
for i in 0 to 4 loop
reg(i) <= reg(i+1);
end loop;
else
reg(0) <= reg(5);
for i in 0 to 4 loop
reg(i+1) <= reg(i);
end loop;
end if;
end if;
end process;
sevsegl(6) <= '1';
sevsegr(6) <= '1';
sevsegl(5 downto 0) <= reg;
sevsegr(5 downto 0) <= reg;
end architecture;
dank u voor het helpen op voorbaat