Kluwer 0 24 марта, 2020 Опубликовано 24 марта, 2020 · Жалоба Коллеги, часто для "защиты от дурака" использую в initial_секции верилог кода инструкцию $error. Во всех версиях Квартуса, что я использовал до этого, сборщик проекта, наткнувшись на $error выдавал сообщение в окно ошибок и останавливал сборку. Но в версии 19.2pro, почему-то $error ведёт себя точно так же как и $info: просто выдаёт сообщение в окно info и как ни в чём не бывало продолжает собирать дальше. Что делать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 24 марта, 2020 Опубликовано 24 марта, 2020 · Жалоба 1. Не использовать 19.2pro 2. Использовать другую систему анализа ошибок Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kluwer 0 24 марта, 2020 Опубликовано 24 марта, 2020 · Жалоба 14 minutes ago, des00 said: 1. Не использовать 19.2pro 2. Использовать другую систему анализа ошибок 1. Не можно. Всё там собирается и в более молодых версиях (19.3 и 19.4) та же история. 2. Что вы имеете в виду? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 24 марта, 2020 Опубликовано 24 марта, 2020 · Жалоба 1 hour ago, Kluwer said: 1. Не можно. Всё там собирается и в более молодых версиях (19.3 и 19.4) та же история. тогжа в альтеру писать, предьявлять что нелегальный софт работает не верно) 1 hour ago, Kluwer said: 2. Что вы имеете в виду? из текущего end else if (pDAT_NUM == cCOL_BY_CYCLE) begin // no remap write data as is assign owrite = write & dwc_cnt.done; assign owfull = wfull; assign owaddr = waddr; assign owdat = dwc_dat[pDAT_NUM-1 : 0]; end else begin assign owdat[-1] = 'x; // incorrect parameter settings end endgenerate работает на любом софте и даже в древнем 95ом верилоге) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kluwer 0 24 марта, 2020 Опубликовано 24 марта, 2020 · Жалоба 1 hour ago, des00 said: тогжа в альтеру писать, предьявлять что нелегальный софт работает не верно) Отчего ж нелегальный? Просто Циклон 10 GX нужен, а он только в pro-версиях сейчас поддерживается с бесплатной лицензией (была уже тема недавно на форуме). 1 hour ago, des00 said: тогжа в альтеру писать, предьявлять что нелегальный софт работает не верно) из текущего работает на любом софте и даже в древнем 95ом верилоге) Согласен, тоже возможно, но дико не информативно. Вот я передаю модуль коллеге (у нас типично, когда в одной плисине по 2-3 разработчика одновременно живут), у него выскакивает ошибка по типу "incorrect parameter settings". Какого параметра, почему? Пока он сообразит, что это исскуственно заложенная бомба, пока он начнёт меня пытать и т.д. А вот так, на мой скромный взгляд, гораздо информативнее initial if ( (NUM_CHANNELS < 1) || (NUM_CHANNELS > 2) ) $error("\n ==== NUM_CHANNELS should be equal to 1 or 2 only ==== \n"); Но, правда, ваш способ можно объеденить с этим: ваш остановит компиляцию, а мой хотя бы выведет доп.пояснения. Но, просто, как-то не изящно :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 25 марта, 2020 Опубликовано 25 марта, 2020 · Жалоба On 3/24/2020 at 9:34 PM, Kluwer said: Но, правда, ваш способ можно объеденить с этим: ваш остановит компиляцию, а мой хотя бы выведет доп.пояснения. Но, просто, как-то не изящно :) ну комментарии можно любые добить) но вообще, в до SV эпоху, боролись так) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 25 марта, 2020 Опубликовано 25 марта, 2020 · Жалоба А разве на Verilog нет аналога Assert как в VHDL ? --=========================================================================================== -- Разрядность регистра не может быть меньше 2 ! --=========================================================================================== assert (sync_stages >= 2) report LF& "Incorrect parametr 'sync_stages'. Check the syntax !" &LF& "Note : parametr Must be > 2 !"&LF severity error; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 1 апреля, 2020 Опубликовано 1 апреля, 2020 · Жалоба On 3/25/2020 at 9:12 PM, Flip-fl0p said: А разве на Verilog нет аналога Assert как в VHDL ? --=========================================================================================== -- Разрядность регистра не может быть меньше 2 ! --=========================================================================================== assert (sync_stages >= 2) report LF& "Incorrect parametr 'sync_stages'. Check the syntax !" &LF& "Note : parametr Must be > 2 !"&LF severity error; Есть, но приписка $error и является уровнем Severity error. И вот она по-видимому неправильно отрабатывается. Как вариант, если нужно именно прекратить работу, задействовать $finish. Результат будет нужный, просто выход нестандартный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться