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

SV, бит состояния КА, некорректное предупреждение квартуса.

des00, что - то боязно мне писать баг репорт с моим "честным" использованием квартуса :)

скажите что у вас webpack %) я в альдек писал гневное письмо, когда меня достали его баги, указал что я любопытный студент и использую limited версию, мне даже ответили и извинились %)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати поиграйте над вашим файлом настройками вида кодирования автомата и автоматическое распознавание автомата, узнаете много нового %)

Так может, именно в этом и заключается "баг" у barabek, когда в Q9.0 заданы установки кодировать One-Hot, а в Q9.1 нет? Нет бита, вот и обрабатывать нечего (и выдавать в подобных упоминаемых выше случаях)?

А описывать состояния - parameter... (еще есть `define, но не рекомендуется)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так может, именно в этом и заключается "баг" у barabek, когда в Q9.0 заданы установки кодировать One-Hot, а в Q9.1 нет? Нет бита, вот и обрабатывать нечего (и выдавать в подобных упоминаемых выше случаях)?

А описывать состояния - parameter... (еще есть `define, но не рекомендуется)

 

На работе стоит "state machine processing=auto", я так думаю что при переносе домой эта настройка сохраняется. Но, думаю, это и не важно. А может я и не хочу создавать КА по правилам квартуса, а может я вообще ничего не знаю про КА :) , я ему все конкретно описал. Что это он на меня ругается! 

 

 

Я уже отправил в альтеру письмо. Правда не знаю туда ли. Нашел форму feedback, там и заполнил. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По совету des00 "поразвлекался" с файлом и настройками для SM.

module TestEnum (input CLK, input IN, output bit[2:0] OUT, output bit TEST);
  parameter IDLE_b = 0, RECEIVE_b = 1, PARITY_b = 2;
  enum  bit[2:0] {
    IDLE    =   3'h1 << IDLE_b,
    RECEIVE =   3'h1 << RECEIVE_b,
    PARITY  =   3'h1 << PARITY_b
    } state;

  always @(posedge CLK) begin
    case (state)
      IDLE: if (IN) state <= IDLE;
            else state <= RECEIVE;
      RECEIVE: state <= PARITY;
      PARITY:  state <= IDLE;
      default: state <= IDLE;
    endcase
  end

  assign OUT = state;
  // assign TEST = state[IDLE_b];
  assign TEST = state;
endmodule

Получил сообщение, что в последней строке урезается state, выход TEST берется с state[0]. SM имеется. Quartus 9.0.

Если предпоследнюю строку раскомментировать, и закомментировать последнюю, то варнинг не пишется, SM не создается, а схема, вроде, одинаковая.

Похоже, Quartus не хочет манипулировать отдельными битами SM. Что 9.0, что 9.1.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похоже, Quartus не хочет манипулировать отдельными битами SM. Что 9.0, что 9.1.

угу, я и говорю что это баг чистой воды, шаг влево/вправо и ква сливает %) А в сабжевом КА enum используется только как задание эксклюзивных констант %)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возможно, помогло бы приведение типов (casting), но в Quartus это не поддерживается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...