Jump to content

    
Kluwer

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

Recommended Posts

Коллеги,

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

Share this post


Link to post
Share on other sites
17 hours ago, Kluwer said:

Коллеги,

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

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

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

Share this post


Link to post
Share on other sites
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)". А вот в обратной ситуации молчит, как партизан.

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

Edited by Kluwer
Additional info

Share this post


Link to post
Share on other sites
10 минут назад, Kluwer сказал:

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

19 hours ago, Kluwer said:

Коллеги,

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

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

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

Удачи! Rob.

Share this post


Link to post
Share on other sites
5 hours ago, Kluwer said:

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

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

Share this post


Link to post
Share on other sites
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.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.