S
sammm
Guest
Здрасти,
Аз съм нов за района на HDL програмиране, което аз съм се опитвам да направя е да се създаде ограничен държавна машина, че имат само три етапа:
ST0: първоначалното състояние
ST1: престой в този етап за 32 пъти
ST3: Завърши след това се върнете към ST0
Знам, че си много прост, но по някаква причина, не мога да го направя така, тук е кодът, че съм написал:
Код:модул FSM (брой, CLK, нулиране, готови);продукция [4:0] брой;
готова продукция;
вход CLK;
вход Reset;обл готови;
обл [4:0] брой;параметър ST0 = 0, ST1 = 1, st2 = 2;
обл [1:0] CurrentState, NextState;Винаги @ (CurrentState)
започвам
случай (CurrentState)
ST0: започва
Count = 0;
готови = 0;
NextState = ST1;
приключвам
ST1: започва
IF (брой <32)
започвам
брой = брой 1;
NextState = ST1;
приключвам
в противен случай
NextState = st2;
приключвам
St2: започва
готови = 1;
NextState = ST0;
приключвам
по подразбиране: започва
готови = 0;
NextState = ST0;
приключвам
endcase
приключвамВинаги @ (posedge CLK или проучване posedge)
започвам
ако (Reset)
CurrentState = ST0;
в противен случай
CurrentState = NextState;
приключвамendmodule
Аз съм нов за района на HDL програмиране, което аз съм се опитвам да направя е да се създаде ограничен държавна машина, че имат само три етапа:
ST0: първоначалното състояние
ST1: престой в този етап за 32 пъти
ST3: Завърши след това се върнете към ST0
Знам, че си много прост, но по някаква причина, не мога да го направя така, тук е кодът, че съм написал:
Код:модул FSM (брой, CLK, нулиране, готови);продукция [4:0] брой;
готова продукция;
вход CLK;
вход Reset;обл готови;
обл [4:0] брой;параметър ST0 = 0, ST1 = 1, st2 = 2;
обл [1:0] CurrentState, NextState;Винаги @ (CurrentState)
започвам
случай (CurrentState)
ST0: започва
Count = 0;
готови = 0;
NextState = ST1;
приключвам
ST1: започва
IF (брой <32)
започвам
брой = брой 1;
NextState = ST1;
приключвам
в противен случай
NextState = st2;
приключвам
St2: започва
готови = 1;
NextState = ST0;
приключвам
по подразбиране: започва
готови = 0;
NextState = ST0;
приключвам
endcase
приключвамВинаги @ (posedge CLK или проучване posedge)
започвам
ако (Reset)
CurrentState = ST0;
в противен случай
CurrentState = NextState;
приключвамendmodule