реклама на сайте
подробности

 
 
> Написание state machine, verilog, state machine, verilog
Evgeny72
сообщение Dec 1 2017, 07:35
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 4-01-14
Пользователь №: 79 899



Доброго всем дня!
Подскажите пожалуйста по state machine. Есть машина состояний:
Код
reg [1:0] out;
reg [1:0] state;

// Declare states
parameter
        S0 = 0,    
        S1 = 1,
        S2 = 2;

// Output depends only on the state
always @ (state)
begin
case (state)
    S0:
        out = 2'b01;
    S1:
        out = 2'b10;
    S2:
        out = 2'b11;
        
    default:
        out = 2'b00;
endcase
end

// Determine the next state
always @ (posedge CLK)
begin
if (RESET)
    state <= S0;
else
case (state)
    S0:
            state <= S1;
    S1:
            state <= S3;
    S3:
            state <= S3;
endcase
end


Как правильно написать на verilog, если мне необходимо чтобы состояние S0 сменилось на S1 через 20 периодов тактовой частоты? Насколько мне известно, описывается счетчик и 21 значение счетчика "приравнивается" (не совсем корректное слово) к состоянию S1. Как правильно это написать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Flip-fl0p
сообщение Jan 11 2018, 06:44
Сообщение #2


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Я бы названия состояниям автомата дал более осмысленные. Это сегодня Вы помните. А что будет через пару месяцев ?
Ну и разделил логику переключения автомата и логику формирования выходных состояний в разные блоки. Так нагляднее код, хоть и больше. Но это не обязательно.
Go to the top of the page
 
+Quote Post
Evgeny72
сообщение Jan 11 2018, 06:56
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 4-01-14
Пользователь №: 79 899



Цитата(Flip-fl0p @ Jan 11 2018, 09:44) *
Я бы названия состояниям автомата дал более осмысленные. Это сегодня Вы помните. А что будет через пару месяцев ?
Ну и разделил логику переключения автомата и логику формирования выходных состояний в разные блоки. Так нагляднее код, хоть и больше. Но это не обязательно.

У себя в проекте я все описал, в файле приведено лишь то, что на видео от Альтеры. rolleyes.gif
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Jan 11 2018, 07:07
Сообщение #4


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(Evgeny72 @ Jan 11 2018, 09:56) *
У себя в проекте я все описал, в файле приведено лишь то, что на видео от Альтеры. rolleyes.gif

Так у альтеры все шаблоны легко найти в Quartus. Edit -> Insert template->...
Там много чего интересного есть rolleyes.gif
Go to the top of the page
 
+Quote Post
Evgeny72
сообщение Jan 11 2018, 07:17
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 4-01-14
Пользователь №: 79 899



Цитата(Flip-fl0p @ Jan 11 2018, 10:07) *
Так у альтеры все шаблоны легко найти в Quartus. Edit -> Insert template->...
Там много чего интересного есть rolleyes.gif

да, есть template. Этого там нет. В файле есть ответ на мой же вопрос и ради чего была создана тема: ...если мне необходимо чтобы состояние S0 сменилось на S1 через 20 периодов тактовой частоты?

Сообщение отредактировал Evgeny72 - Jan 11 2018, 07:30
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Jan 11 2018, 07:23
Сообщение #6


В поисках себя...
****

Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140



Цитата(Evgeny72 @ Jan 11 2018, 10:17) *
да, есть template. Этого там нет.

Там тоже самое, но другими словами (стилем) описано....

Сообщение отредактировал Flip-fl0p - Jan 11 2018, 07:24
Go to the top of the page
 
+Quote Post
Evgeny72
сообщение Jan 11 2018, 07:32
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 4-01-14
Пользователь №: 79 899



Цитата(Flip-fl0p @ Jan 11 2018, 10:23) *
Там тоже самое, но другими словами (стилем) описано....


Ткните носом в template с учетом выше сказанного - если мне необходимо чтобы состояние S0 сменилось на S1 через 20 периодов тактовой частоты? А вообще - в спам "уходим".

Сообщение отредактировал Evgeny72 - Jan 11 2018, 07:32
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Evgeny72   Написание state machine, verilog   Dec 1 2017, 07:35
- - Flip-fl0p   Я давно задавал такой-же вопрос: https://electroni...   Dec 1 2017, 07:45
|- - Mad_max   В гугле пишем Clifford Cummings FSM и читаем все...   Dec 1 2017, 08:17
|- - one_eight_seven   Цитата(Mad_max @ Dec 1 2017, 11:17) В гуг...   Dec 1 2017, 08:28
||- - andrew_b   Чувак любит двухпроцессное описание КА и не любит ...   Dec 1 2017, 08:48
|- - Evgeny72   Цитата(Mad_max @ Dec 1 2017, 12:17) В гуг...   Dec 1 2017, 08:55
- - one_eight_seven   Если у вас при нахождении в состоянии S0 ничего, т...   Dec 1 2017, 08:16
- - g700   Посмотрите здесь в главе 8. http://read.pudn.com/d...   Dec 1 2017, 12:52
|- - Evgeny72   прилагаю файл state machine от компании Altera. В ...   Jan 11 2018, 06:22
- - Flip-fl0p   Цитата(Evgeny72 @ Jan 11 2018, 10:32) Ткн...   Jan 11 2018, 07:42


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 13:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01452 секунд с 7
ELECTRONIX ©2004-2016