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

Жёсткие ограничения в Квартус

Коллеги,

не могу найти нужных настроек в Квартусе, что бы он более жёстко проверял правила в hdl-коде наподобие Ксайлинксовского ISE/Вивадо. Ну, например, что бы выкидывал ошибки, если используется не объявленный провод, или если входная разрядность не соотвествует входной (а не забивал молча нулями старшие разряды) и т.д. и т.п.

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


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

17 hours ago, Kluwer said:

Коллеги,

не могу найти нужных настроек в Квартусе, что бы он более жёстко проверял правила в hdl-коде наподобие Ксайлинксовского ISE/Вивадо. Ну, например, что бы выкидывал ошибки, если используется не объявленный провод, или если входная разрядность не соотвествует входной (а не забивал молча нулями старшие разряды) и т.д. и т.п.

Ну вообще Квартус должен соответствующие ворнинги выдавать.

Ещё в настройках можно включить Design Assistant-а.

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


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

37 minutes ago, Jackov said:

Ну вообще Квартус должен соответствующие ворнинги выдавать.

Ещё в настройках можно включить Design Assistant-а.

Да тут в том и проблема. Проект разросся до колоссальных размеров, 3 плисовода разного уровня одновременно копошатся в здоровенной каменюге и даже со всеми оптимизациями и Post-fit -партишинами, малейшее телодвижение - и 1,5 часа пересборки. Есс-но, всё что можно моделируется, делаются упрощённые подпроекты, сигнальная часть вообще вся из DSP builder'а и т.д., но всё равно всё не промоделируешь, да и у Квартуса и Моделсима несколько "разные взгляды" на то, что правильно, а что нет. И вываливается в результатет сборки типично под 2 тысячи варнингов, не всегда и уследишь.

Да и смотрю в репорты, да, если шина имеет большую разрядность, чем порт, то он ругается действительно, типа "truncated value with size xx to match size of target (yy)". А вот в обратной ситуации молчит, как партизан.

Да и нам бы очень желательно, что бы уровень такого вот варнинга можно было поднять до еррора. Что бы он вообще прекращал сборку в случае подобного несовпадения.

Изменено пользователем Kluwer
Additional info

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


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

10 минут назад, Kluwer сказал:

Да тут в том и проблема. Проект разросся до колоссальных размеров, 3 плисовода разного уровня одновременно копошатся в здоровенной каменюге и даже со всеми оптимизациями и Post-fit -партишинами, малейшее телодвижение - и 1,5 часа пересборки. Есс-но, всё что можно моделируется, делаются упрощённые подпроекты, сигнальная часть вообще вся из DSP builder'а и т.д., но всё равно всё не промоделируешь, да и у Квартуса и Моделсима несколько "разные взгляды" на то, что правильно, а что нет. И вываливается в результатет сборки типично под 2 тысячи варнингов, не всегда и уследишь.

Да и смотрю в репорты, да, если шина имеет большую разрядность, чем порт, то он ругается действительно, типа "truncated value with size xx to match size of target (yy)". А вот в обратной ситуации молчит, как партизан.

Да и нам бы очень желательно, что бы уровень такого вот варнинга можно было поднять до еррора. Что бы он вообще прекращал сборку в случае подобного несовпадения.

 

Так что мешает сразу писать код без таких вот ошибок ? 

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


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

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

19 hours ago, Kluwer said:

Коллеги,

не могу найти нужных настроек в Квартусе, что бы он более жёстко проверял правила в hdl-коде наподобие Ксайлинксовского ISE/Вивадо. Ну, например, что бы выкидывал ошибки, если используется не объявленный провод, или если входная разрядность не соотвествует входной (а не забивал молча нулями старшие разряды) и т.д. и т.п.

Ругань на не объявленный  сигнал при компиляции  в verilog  можно включить прямо в исходник 

`default_nettype none 
module blablabla #( ...
...
endmodule
`default_nettype wire

Удачи! Rob.

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


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

5 hours ago, Kluwer said:

Да и нам бы очень желательно, что бы уровень такого вот варнинга можно было поднять до еррора. Что бы он вообще прекращал сборку в случае подобного несовпадения.

А вы что-нибудь внешнее, например Aldec ALINT, не пробовали пользовать?

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


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

7 часов назад, Kluwer сказал:

А вот в обратной ситуации молчит, как партизан.

Выдаёт ворнинги вида:

Warning: Output pins are stuck at VCC or GND
    Warning (13410): Pin "Out[4]" is stuck at GND
    Warning (13410): Pin "Out[5]" is stuck at GND
    Warning (13410): Pin "Out[6]" is stuck at GND
    Warning (13410): Pin "Out[7]" is stuck at GND

или

Warning: 1 hierarchies have connectivity warnings - see the Connectivity Checks report folder

Во втором случае идём  в отчёты Analysis & Synthesis, переходим во вкладку Connectivity Checks и видим табличку со строками наподобие такой

Port   Type    Severity     Details
----------------------------------------
A      Output  Warning      Output or bidir port (8 bits) is smaller than the port expression (11 bits) it drives.  The 3 most-significant bit(s) in the port expression will be connected to GND.

 

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


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

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

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

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

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

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

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

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

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

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