vhdl code:
library ieee;
use ieee.std_logic_1164.all;
entity klokdeler is
port(klokin : in STD_LOGIC;
klok2 : out STD_LOGIC;
klok5 :out STD_LOGIC
);
end entity klokdeler;
architecture behavourial of klokdeler is
begin
process(klokin)
variable input: integer range 0 to 32;
if(rising_edge(klokin)) then
input<=input+1;
if(input='10000') then
klok2 <= not klok2;
elsif(input='20000') then
klok5 <= not klok5;
input<=0;
end if
end if
end process
end architecture behavourial
Voor school dienen we een looplicht te maken op het board dat we gebruiken in de lessen. De frequentie moet in te stellen zijn met een switch tussen 2hz of 5hz. Geprobeerd aan de hand van de voorbeelden een stukje code te schrijven die de frequenties maakt op basis van de 50 MHz input klok....
Ik weet dat er nog een "denkfout" zit om de 2 frequenties te maken in het systeem... Ik moet voor elke frequentie apart het aantal klokpulsen tellen.
Waar ik al even op aan het zoeken ben zijn de syntax fouten die de compiler in ISE Webpack aangeeft
code:
Entity <klokdeler> compiled.
ERROR:HDLParsers:164 - "E:/Users/Eigenaar/Desktop/school/vhdl/labo 2/Looplicht/looplicht.vhd" Line 19. parse error, unexpected IF
ERROR:HDLParsers:410 - "E:/Users/Eigenaar/Desktop/school/vhdl/labo 2/Looplicht/looplicht.vhd" Line 27. Variable 'input' input is at left hand side of signal assignment statement.
ERROR:HDLParsers:164 - "E:/Users/Eigenaar/Desktop/school/vhdl/labo 2/Looplicht/looplicht.vhd" Line 28. parse error, unexpected IF, expecting SEMICOLON
-->