Kluwer 0 March 24, 2020 Posted March 24, 2020 · Report post Коллеги, часто для "защиты от дурака" использую в initial_секции верилог кода инструкцию $error. Во всех версиях Квартуса, что я использовал до этого, сборщик проекта, наткнувшись на $error выдавал сообщение в окно ошибок и останавливал сборку. Но в версии 19.2pro, почему-то $error ведёт себя точно так же как и $info: просто выдаёт сообщение в окно info и как ни в чём не бывало продолжает собирать дальше. Что делать? Quote Share this post Link to post Share on other sites More sharing options...
des00 14 March 24, 2020 Posted March 24, 2020 · Report post 1. Не использовать 19.2pro 2. Использовать другую систему анализа ошибок Quote Share this post Link to post Share on other sites More sharing options...
Kluwer 0 March 24, 2020 Posted March 24, 2020 · Report post 14 minutes ago, des00 said: 1. Не использовать 19.2pro 2. Использовать другую систему анализа ошибок 1. Не можно. Всё там собирается и в более молодых версиях (19.3 и 19.4) та же история. 2. Что вы имеете в виду? Quote Share this post Link to post Share on other sites More sharing options...
des00 14 March 24, 2020 Posted March 24, 2020 · Report post 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ом верилоге) Quote Share this post Link to post Share on other sites More sharing options...
Kluwer 0 March 24, 2020 Posted March 24, 2020 · Report post 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"); Но, правда, ваш способ можно объеденить с этим: ваш остановит компиляцию, а мой хотя бы выведет доп.пояснения. Но, просто, как-то не изящно :) Quote Share this post Link to post Share on other sites More sharing options...
des00 14 March 25, 2020 Posted March 25, 2020 · Report post On 3/24/2020 at 9:34 PM, Kluwer said: Но, правда, ваш способ можно объеденить с этим: ваш остановит компиляцию, а мой хотя бы выведет доп.пояснения. Но, просто, как-то не изящно :) ну комментарии можно любые добить) но вообще, в до SV эпоху, боролись так) Quote Share this post Link to post Share on other sites More sharing options...
Flip-fl0p 2 March 25, 2020 Posted March 25, 2020 · Report post А разве на 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; Quote Share this post Link to post Share on other sites More sharing options...
Nick_K 0 April 1, 2020 Posted April 1, 2020 · Report post 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. Результат будет нужный, просто выход нестандартный. Quote Share this post Link to post Share on other sites More sharing options...