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

Неожиданный глюк в Modelsim

Я увидел неожиданный глюк в Моделсиме.
 
Это границы, за которые не должен выходить некий реверсивный счетчик:
always_comb
    begin
        lim[0] <= sum >= PRD_MAX; // верхняя грань
        lim[1] <= sum <= PRD_MIN; // нижняя грань
    end

lim[1] <= sum <= PRD_MIN; - вот эта строка вызывала логическую ошибку, счетчик останавливался не там где ожидалось.

Вот так правильно:

always_comb
    begin
        lim[0] <= ( sum >= PRD_MAX ); // верхняя грань
        lim[1] <= ( sum <= PRD_MIN ); // нижняя грань
    end

Лучше такие логические условия заключать в скобки.

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


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

А если так:

 

lim[1] = sum <= PRD_MIN;

?

 

Тем более, что always_comb и неблокирующее присваивание как-то не ага.

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


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

7 hours ago, dxp said:

А если так:

 


lim[1] = sum <= PRD_MIN;

?

 

Тем более, что always_comb и неблокирующее присваивание как-то не ага.

Код в отладке и еще не отшлифован, красота не наведена. always_comb применен, чтобы его было можно заменить на always @(posedge CLK) в процессе отладки.

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


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

Верилог: стреляйте в ногу из гранатомёта.

Казалось бы

lim[1] <= sum <= PRD_MIN ? 1'b1 : 1'b0;

 

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


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

Первое правило погромиста - всегда ставить скобки при наличии более одного операнда в выражении)

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


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

3 hours ago, nice_vladi said:

Первое правило погромиста - всегда ставить скобки при наличии более одного операнда в выражении)

Ухудшают читабельность, как и любые лишние символы.

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


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

Приветствую!

32 minutes ago, SII said:

Ухудшают читабельность, как и любые лишние символы.

КомукакМневотнапримернаоборотприятнеесмотретьнаструктуированныййкод.  :biggrin:

 

Удачи! Rob.

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


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

2 hours ago, RobFPGA said:

Приветствую!

КомукакМневотнапримернаоборотприятнеесмотретьнаструктуированныййкод.  :biggrin:

 

Удачи! Rob.

Угу, только это Ваше сообщение как раз неструктурированное: структурированность в первую очередь пробелами и правильными отступами достигается :)

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


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

16 hours ago, SII said:

Ухудшают читабельность, как и любые лишние символы.

Это пройдет, когда цена локализации бага не станет намного больше цены лишних скобок, что наглядно показано в теме ТС)

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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