MrGalaxy 9 13 июля, 2019 Опубликовано 13 июля, 2019 · Жалоба Есть в Квартусе (по кр. мере, в 9.0) неприятная вещь. Есть блок, есть связанный с ним vhdl-файл. Если в vhdl-файле добавить порт, но не добавить его в блок на схематик-файле, то при компиляции ошибки не будет (если наоборот, то будет), и в результате проект не работает. Как отследить такую ошибку? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 13 июля, 2019 Опубликовано 13 июля, 2019 · Жалоба 1 час назад, MrGalaxy сказал: Есть в Квартусе (по кр. мере, в 9.0) неприятная вещь. Есть блок, есть связанный с ним vhdl-файл. Если в vhdl-файле добавить порт, но не добавить его в блок на схематик-файле, то при компиляции ошибки не будет (если наоборот, то будет), и в результате проект не работает. Как отследить такую ошибку? Не работать со схемный вводом. Что у Altera, что у Xilinx - схемный ввод порождает больше проблем, чем ускоряет разработку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrGalaxy 9 13 июля, 2019 Опубликовано 13 июля, 2019 · Жалоба А ещё быть очень внимательным при отладке проекта. Я Вас понял. К сожалению, человеческий фактор никто не отменял и когда в проекте штук 20 блоков и в каждом по 10-20 портов, то запутаться просто. Примеры во вложении. В одном проекте ошибок нет, во втором "случайно" забыт выходной порт B2 блока Block1 в схемном файле. При компиляции обоих проектов ошибок нет, а результат симуляции, очевидно, разный. Пример для форума.7z Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wolfman 0 15 июля, 2019 Опубликовано 15 июля, 2019 · Жалоба А вы в отчёте не только ошибки смотрите, но и варнинги, а также просто сообщения. Квартус всегда предупреждает об оптимизации и отключении не используемых сигналов и модулей. Как вариант можно написать скрипт, который будет отслеживать такие сообщения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
lexx 0 15 июля, 2019 Опубликовано 15 июля, 2019 · Жалоба On 7/13/2019 at 8:52 PM, MrGalaxy said: К сожалению, человеческий фактор никто не отменял и когда в проекте штук 20 блоков и в каждом по 10-20 портов, то запутаться просто. Разбивайте на блоки, пишите комментарии, читайте ворнинги, никто не отменял линт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 15 июля, 2019 Опубликовано 15 июля, 2019 · Жалоба On 7/13/2019 at 2:52 PM, MrGalaxy said: А ещё быть очень внимательным при отладке проекта. Я Вас понял. К сожалению, человеческий фактор никто не отменял и когда в проекте штук 20 блоков и в каждом по 10-20 портов, то запутаться просто. Примеры во вложении. В одном проекте ошибок нет, во втором "случайно" забыт выходной порт B2 блока Block1 в схемном файле. При компиляции обоих проектов ошибок нет, а результат симуляции, очевидно, разный. Пример для форума.7z Пльзуйтесь например NotePad++ там выделяешь сигнал и он подсвечивается. По подсветке можно проверять подключение. Как по мне удобно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrGalaxy 9 15 июля, 2019 Опубликовано 15 июля, 2019 · Жалоба 5 часов назад, lexx сказал: Разбивайте на блоки, пишите комментарии, читайте ворнинги, никто не отменял линт. Посмотрите пример, я специально создал его. Когда разбиваешь на блоки, такая петрушка и происходит. При чём тут комментарии вообще? (см. предыдущий п.) И, в качестве ликбеза, что такое линт? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrGalaxy 9 15 июля, 2019 Опубликовано 15 июля, 2019 (изменено) · Жалоба 2 часа назад, Maverick_ сказал: Пльзуйтесь например NotePad++ там выделяешь сигнал и он подсвечивается. По подсветке можно проверять подключение. Как по мне удобно. Я, простите, ничего не понял. Делаю проще: всю соединительную шину выделяю, пару раз щёлкнув по ней мышкой, и смотрю вкладку "сигналы", до каких блоков доходит конкретный сигнал. Но это уже делается при отладке, при поиске косяков. А смысл в том, чтобы сам Квартус писал синим цветом сообщения, что, мол, сигнал-то не доходит до адресата. 7 часов назад, wolfman сказал: А вы в отчёте не только ошибки смотрите, но и варнинги, а также просто сообщения. Квартус всегда предупреждает об оптимизации и отключении не используемых сигналов и модулей. Как вариант можно написать скрипт, который будет отслеживать такие сообщения. А я и смотрю не только ошибки. Пример выложен, можете сами откомпилировать и посмотреть. ЗЫ. вообще-то это грубая ошибка, а не предупреждение, и, уж тем более не сообщение. Если у кого есть Квартус поновее, откомпилируйте, плз., мой пример с ошибкой. Изменено 15 июля, 2019 пользователем MrGalaxy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 15 июля, 2019 Опубликовано 15 июля, 2019 · Жалоба 11 minutes ago, MrGalaxy said: Я, простите, ничего не понял. Делаю проще: всю соединительную шину выделяю, пару раз щёлкнув по ней мышкой, и смотрю вкладку "сигналы", до каких блоков доходит конкретный сигнал. Но это уже делается при отладке, при поиске косяков. А смысл в том, чтобы сам Квартус писал синим цветом сообщения, что, мол, сигнал-то не доходит до адресата. А я и смотрю не только ошибки. Пример выложен, можете сами откомпилировать и посмотреть. я про работу с hdl описанием в текстовом редакторе... NotePad++ поддерживает синтаксис VHDL/Verilog как предварительный вариант получения файла top level графический редактор подойдет, потом можно сгенерить hdl описание и продолжать уже работать в текстовом редакторе Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrGalaxy 9 15 июля, 2019 Опубликовано 15 июля, 2019 (изменено) · Жалоба 2 минуты назад, Maverick_ сказал: я про работу с hdl описанием в текстовом редакторе... как предварительный вариант получения файла top level графический редактор подойдет, потом можно сгенерить hdl описание и продолжать уже работать в текстовом редакторе При чём тут файл hdl? В нём порт есть, а в блоке нету. Как это отследить автоматически? Откройте пример, я попытался максимально просто в нём всё показать. Изменено 15 июля, 2019 пользователем MrGalaxy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
wolfman 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба В 15.07.2019 в 12:43, MrGalaxy сказал: А я и смотрю не только ошибки. Пример выложен, можете сами откомпилировать и посмотреть. ЗЫ. вообще-то это грубая ошибка, а не предупреждение, и, уж тем более не сообщение. Это ваша грубая ошибка, откуда компилятору знать что вы хотели сказать отсутствующим сигналом/модулем? Он и отключает всё, что связано с этим сигналом, с точки зрения Квартуса это не ошибка и он честно пишет, что именно он отключил. Пишите скрипт, который после синтеза будет автоматом запускаться и искать сообщения об отключенных сигналах/модулях, либо скрипт, который будет проверять до синтеза наличие всех портов и выдавать ошибки при не совпадении. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrGalaxy 9 20 июля, 2019 Опубликовано 20 июля, 2019 · Жалоба В 18.07.2019 в 23:07, wolfman сказал: Это ваша грубая ошибка, откуда компилятору знать что вы хотели сказать отсутствующим сигналом/модулем? Так и смысл в том, чтобы отследить ошибки инженера. Например, Квартус выдаёт синие предупреждения том, что переменная/сигнал подсчитана, но нигде не используется. А эту ошибку почему-то не отслеживает. В 18.07.2019 в 23:07, wolfman сказал: и он честно пишет, что именно он отключил. У меня просьба: ткните меня носом где именно он об этом пишет. Вот сообщения компилятора: Info: ******************************************************************* Info: Running Quartus II 64-Bit Analysis & Synthesis Info: Version 9.0 Build 235 06/17/2009 Service Pack 2 SJ Full Version Info: Processing started: Sat Jul 20 10:45:08 2019 Info: Command: quartus_map --read_settings_files=on --write_settings_files=off A1 -c A1 Info: Found 2 design units, including 1 entities, in source file Block1.vhd Info: Found design unit 1: Block1-Block1_architecture Info: Found entity 1: Block1 Info: Found 2 design units, including 1 entities, in source file Block2.vhd Info: Found design unit 1: Block2-Block2_architecture Info: Found entity 1: Block2 Info: Found 1 design units, including 1 entities, in source file A1.bdf Info: Found entity 1: A1 Info: Elaborating entity "A1" for the top level hierarchy Info: Elaborating entity "Block2" for hierarchy "Block2:inst2" Info: Elaborating entity "Block1" for hierarchy "Block1:inst" Info: Implemented 4 device resources after synthesis - the final resource count might be different Info: Implemented 2 input pins Info: Implemented 1 output pins Info: Implemented 1 logic cells Info: Quartus II 64-Bit Analysis & Synthesis was successful. 0 errors, 0 warnings Info: Peak virtual memory: 290 megabytes Info: Processing ended: Sat Jul 20 10:45:09 2019 Info: Elapsed time: 00:00:01 Info: Total CPU time (on all processors): 00:00:01 Info: ******************************************************************* Info: Running Quartus II 64-Bit Fitter Info: Version 9.0 Build 235 06/17/2009 Service Pack 2 SJ Full Version Info: Processing started: Sat Jul 20 10:45:10 2019 Я ни словечка про сигнал B2, существующий в Block1.vhd, но не выведенный наружу, не нашёл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Amurak 0 20 июля, 2019 Опубликовано 20 июля, 2019 · Жалоба 8 hours ago, MrGalaxy said: А эту ошибку почему-то не отслеживает. Могу ошибаться, но по-моему схемный ввод при создании блока делает новый компонент-обертку для исходника, написанного на vhdl. А поскольку в этой обертке добавлены не все порты, то и рассматриваться при компиляции они не будут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrGalaxy 9 20 июля, 2019 Опубликовано 20 июля, 2019 (изменено) · Жалоба 1 час назад, Amurak сказал: написанного на vdhl Я бы сказал "который возможно будет написан на VHDL/AHDL/Verilog", т.к. текстовый файл создаётся после создания блока по отдельной команде. 1 час назад, Amurak сказал: А поскольку в этой обертке добавлены не все порты, то и рассматриваться при компиляции они не будут Да, получается, что не рассматриваются. Однако, некоторые коллеги здесь пишут, что компилятор Квартуса пишет об этом. Завтра на работе, если будет время, схожу к соседям, у них Квартус поновее, скомпилирую, посмотрю что выйдет. ЗЫ. А нет ли команды, по которой по написанному vhdl-коду создавался бы блок на схеме? Или не создавался бы, а "синхронизировал" бы свои порты под файл .vhd? Наоборот, знаю, можно - команда "Update design file from selected block". Изменено 20 июля, 2019 пользователем MrGalaxy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrGalaxy 9 22 июля, 2019 Опубликовано 22 июля, 2019 · Жалоба Сейчас сходил к коллегам с соседней лаборатории, откомпилировали мне проект в 18-м Квартусе. То же самое, нет сообщений об ошибке ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться