S
sammm
Guest
Witam,
Jestem nowy w dziedzinie programowania HDL, co próbuję zrobić jest stworzenie skończonej maszyny stwierdzić, że tylko w trzech etapach:
St0: stan początkowy
ST1: pobyt w tym etapie do 32 razy
ST3: wykończenie st0 następnie powrót do
Wiem, że bardzo proste, ale z jakiegoś powodu, nie mogę zrobić to dobrze, o to kod, który napisałem:
Kod:moduł FM (liczba, CLK, reset, gotowy);Wyjście [4:0] licznik;
gotowy produkcji;
CLK wejście;
reset wejścia;reg gotowy;
reg [4:0] licznik;st0 parametr = 0, ST1 = 1, ST2 = 2;
reg [1:0 CurrentState] NextState;zawsze @ (CurrentState)
rozpocząć
przypadku (CurrentState)
St0: begin
count = 0;
gotowy = 0;
NextState = ST1;
koniec
ST1: begin
if (liczba <32)
rozpocząć
liczba = liczba 1;
NextState = ST1;
koniec
więcej
NextState = ST2;
koniec
ST2: begin
gotowe = 1;
NextState = st0;
koniec
domyślnie: rozpocząć
gotowy = 0;
NextState = st0;
koniec
endcase
konieczawsze @ (CLK posedge lub posedge reset)
rozpocząć
if (reset)
CurrentState = st0;
więcej
CurrentState = NextState;
koniecendmodule
Jestem nowy w dziedzinie programowania HDL, co próbuję zrobić jest stworzenie skończonej maszyny stwierdzić, że tylko w trzech etapach:
St0: stan początkowy
ST1: pobyt w tym etapie do 32 razy
ST3: wykończenie st0 następnie powrót do
Wiem, że bardzo proste, ale z jakiegoś powodu, nie mogę zrobić to dobrze, o to kod, który napisałem:
Kod:moduł FM (liczba, CLK, reset, gotowy);Wyjście [4:0] licznik;
gotowy produkcji;
CLK wejście;
reset wejścia;reg gotowy;
reg [4:0] licznik;st0 parametr = 0, ST1 = 1, ST2 = 2;
reg [1:0 CurrentState] NextState;zawsze @ (CurrentState)
rozpocząć
przypadku (CurrentState)
St0: begin
count = 0;
gotowy = 0;
NextState = ST1;
koniec
ST1: begin
if (liczba <32)
rozpocząć
liczba = liczba 1;
NextState = ST1;
koniec
więcej
NextState = ST2;
koniec
ST2: begin
gotowe = 1;
NextState = st0;
koniec
domyślnie: rozpocząć
gotowy = 0;
NextState = st0;
koniec
endcase
konieczawsze @ (CLK posedge lub posedge reset)
rozpocząć
if (reset)
CurrentState = st0;
więcej
CurrentState = NextState;
koniecendmodule