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

 
 
> Асинхронка в verilog
Lutovid
сообщение Jul 2 2017, 16:43
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 101
Регистрация: 24-02-14
Из: Москва
Пользователь №: 80 661



Всем привет!
Написал FSM разделив синхронку и асинхронку; то есть в одном always блоке синхронный процесс, во втором в списке чувствительности занесены все входные сигналы; Vivado 16.3 и 17.1 развели написанное мной ядро так, что сигналы из списка чувствительности воспринимаются как не законстрэйнченые клоки... Вопрос - это нормално и можно на это забить? Или где-то в коде косяк и такого не должно быть?
Что бы было понятнее про что я - я прикрепляю фотку (принсткрин сделать не могу сейчас, прошу прощения за качество)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
one_eight_seven
сообщение Jul 3 2017, 13:08
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Зачем вы мучаетесь сами и мучаете других подобным стилем кодирования?
Разве не проще что-то вроде:
Код
always @(posedge clk or negedge async_rst_n) begin : sequential_code
  if (!async_rst_n)
    state <= { WIDTH {1'b0}};
  else
    state <=  nextstate;
end

always @* begin : comb_block
  nextstate = state;  // store current state for loopbacks
  case (state)
      STATE0 : begin
         if      (go_state_1) nextstate = STATE1;
         else if (go_state_2) nextstate = STATE2;
         ...
      end
    ...
  endcase
end


Сообщение отредактировал one_eight_seven - Jul 3 2017, 13:13
Go to the top of the page
 
+Quote Post



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

 


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


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