Перейти к содержанию

    

john72

Участник
  • Публикаций

    66
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о john72

  • Звание
    Участник
  1. Подскажите пожалуйста, как более лаконично описать однотипные состояния SM для case (state) и S? always @ (state) begin case (state) S0: data_out = data_in; s1: data_out = data_in; ... S71: data_out = data_in; endcase end always @ (posedge clk or negedge reset) begin if (!reset) state <= S0; else case (state) S0: begin if (ss) state <= S1; else state <= S0; end S1: begin if (ss) state <= S2; else state <= S1; end ... S70: begin if (ss) state <= S71; else state <= S70; end S71: state <= S71; endcase end
  2. здесь на verilog, есть схема, по ней можно написать код на vhdl. https://marsohod.org/verilog/157-verilogedges
  3. Цитата(Flip-fl0p @ Jan 11 2018, 10:23) Там тоже самое, но другими словами (стилем) описано.... Ткните носом в template с учетом выше сказанного - если мне необходимо чтобы состояние S0 сменилось на S1 через 20 периодов тактовой частоты? А вообще - в спам "уходим".
  4. Цитата(Flip-fl0p @ Jan 11 2018, 10:07) Так у альтеры все шаблоны легко найти в Quartus. Edit -> Insert template->... Там много чего интересного есть да, есть template. Этого там нет. В файле есть ответ на мой же вопрос и ради чего была создана тема: ...если мне необходимо чтобы состояние S0 сменилось на S1 через 20 периодов тактовой частоты?
  5. Цитата(Flip-fl0p @ Jan 11 2018, 09:44) Я бы названия состояниям автомата дал более осмысленные. Это сегодня Вы помните. А что будет через пару месяцев ? Ну и разделил логику переключения автомата и логику формирования выходных состояний в разные блоки. Так нагляднее код, хоть и больше. Но это не обязательно. У себя в проекте я все описал, в файле приведено лишь то, что на видео от Альтеры.
  6. Цитата(rolin @ Jan 7 2018, 09:17) Решил я перепаять плисины между эталонной платой, которая работает и проблемной платой. Вы посмотрите графики термо профилей для паяльных станций или лучше для паяемого чипа. Рекомендован плавный нагрев чипа и платы во избежании термоудара.
  7. прилагаю файл state machine от компании Altera. В файле top описан счетчик (здесь его описание не привожу) и соединения его со state machine. В файле ссылка на видео с которого была списана машина состояний. Сделал подобным образом, все работает. Может кому пригодится в следующий раз.
  8. Цитата(Realking @ Dec 7 2017, 16:11) Altera MAX 10 MAX 10 использую. Она выдержит большее количество перепрошивок чем 100?
  9. Цитата(Mad_max @ Dec 1 2017, 12:17) В гугле пишем Clifford Cummings FSM и читаем все паперы этого уважаемого мужчины. есть у меня сей труд. Прочитаю ещё раз. Код машины был выдернут из примеров Quartus и быстренько изменен только для того, чтобы задать вопрос. Цитата(Flip-fl0p @ Dec 1 2017, 11:45) Я давно задавал такой-же вопрос: https://electronix.ru/forum/index.php?showt...0167&st=165 (сообщение 168) там пример описан на VHDL, я с ним не дружу. Спасибо, попытаюсь разобраться. написал следующим образом: Код//Counter reg[X:0] counter; always @(posedge CLK) begin     if (RESET)         counter <= 0;         else             counter <= counter + 1'b1; end ... S0:             begin                 if ((counter[X:0] == значение счетчика))                     state <= S1;                 else                     state <= S0;             end в симуляторе работает.
  10. Доброго всем дня! Подскажите пожалуйста по 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. Как правильно это написать?
  11. Цитата(zombi @ Nov 30 2017, 15:26) Не совсем так. У 10m02sce144 четыре входных клока с 25-й по 28-ю ноги. И работает вроде. Сорри, с 10M08SCE144 входа брал. Думал, что совпадают, а оказалось что нет.
  12. PLL получается задействовать если пины с 26 по 29 используются как входа. Если на этих пинах есть хоть один выход - получим ERROR при компиляции. Сам наступил на эти грабли.
  13. Цитата(zombi @ Nov 30 2017, 00:09) Чип 10m02sce144c8g На ногу 26 (clk0p) подключил внешний генератор. Проект работает. Решил использовать PLL . Создал в мегавизарде ALTPLL все вроде настроил как надо, а Quartus ругается : Error (18496): The Output AE[0] in pin location 27 (pad_794) is too close to PLL clock input pin (Clock) in pin location 26 (pad_20) Чего ему не нравится? У вас случаем на 27 ногу выход никакой логики не подключен?
  14. Порекомендуйте ПЛИС которую можно перепрошить больше 100 раз. Со всеми остальными параметрами этой ПЛИС сам потом разберусь. Пока интересует количество перепрошиваний. Спасибо.