M
madmaiden
Guest
hallo,
Jeg har noen grunnleggende spørsmål og lese forskjellige tutorials hjalp ikke.Jeg ønsker å lage en stat maskin som går om alle stater en fast numer av (la oss si fem) ganger så stopper og venter til en knapp trykkes.Jeg prøvde koding dette i Verilog og også i VHDL.ingen resultater.For å teste om staten maskinen jobbet jeg koblet den til tx pin, og hver gang den nådde den første staten et tall ble overført.Det workes fin, men jeg vil gjøre det sender fem verdier hver gang en knapp trykkes, ikke mer ikke mindre.Jeg har også en debounce blokk, som fungerer fint.
Jeg vil legge koden er skrevet i VHDL:
Code:fsm1: PROCESS (pb1, currentstate, tx_rdy, nr.)
begynne
case currentstate er
når ledig =>
tx_write <= '1 ';
if (tx_rdy = '1 ') AND (nr <5) så
nextstate <= st1;
elsif (pb1 = '1 ')
nr = "000";
ellers
nextstate <= idle;
end if;
når st1 =>
dat <= "01010001"; - doens egentlig ikke uansett hva det er transmiited for nå
nr <= nr '1 ';
nextstate <= ST2;
når ST2 =>
tx_write <= '0 ';
nextstate <= ST3;
når ST3 =>
nextstate <= idle
end case;
end process;
Jeg har noen grunnleggende spørsmål og lese forskjellige tutorials hjalp ikke.Jeg ønsker å lage en stat maskin som går om alle stater en fast numer av (la oss si fem) ganger så stopper og venter til en knapp trykkes.Jeg prøvde koding dette i Verilog og også i VHDL.ingen resultater.For å teste om staten maskinen jobbet jeg koblet den til tx pin, og hver gang den nådde den første staten et tall ble overført.Det workes fin, men jeg vil gjøre det sender fem verdier hver gang en knapp trykkes, ikke mer ikke mindre.Jeg har også en debounce blokk, som fungerer fint.
Jeg vil legge koden er skrevet i VHDL:
Code:fsm1: PROCESS (pb1, currentstate, tx_rdy, nr.)
begynne
case currentstate er
når ledig =>
tx_write <= '1 ';
if (tx_rdy = '1 ') AND (nr <5) så
nextstate <= st1;
elsif (pb1 = '1 ')
nr = "000";
ellers
nextstate <= idle;
end if;
når st1 =>
dat <= "01010001"; - doens egentlig ikke uansett hva det er transmiited for nå
nr <= nr '1 ';
nextstate <= ST2;
når ST2 =>
tx_write <= '0 ';
nextstate <= ST3;
når ST3 =>
nextstate <= idle
end case;
end process;