Krys 2 1 августа, 2013 Опубликовано 1 августа, 2013 · Жалоба Здравствуйте, коллеги. Посоветуйте, пожалуйста, как в коде Verilog сенерировать ошибку, чтобы она вылезла на этапе синтеза, а также анализа файлов перед симуляцией при определённом условии. Хочу сделать защиту от дурака, сравнить определённые параметры и сделать так, чтобы при таком условии синтез или анализ файлов перед симуляцией не завершились бы успешно. Можно с каким-либо показом нужного сообщения в консоль. Использую Xilinx. ISE, XST для синтеза. Cadence SimVision для симуляции. Заранее спасибо. Для симуляции реализовал вот так: // foolish protection :) initial begin if(f_ceillog2(P_N) > FIXED_LAT) begin $display("Error! Fixed latency less than hardware achievable!"); $finish(); end end Остаётся вопрос на этапе синтеза. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fox12 0 1 августа, 2013 Опубликовано 1 августа, 2013 · Жалоба Посмотрите в Language Templates. В Verilog->Synthesis Constructions->System Tasks & Functions. Пример называется $display and $finish (info). Функция $finish останавливает синтез. В примере она вызывается без скобок. initial begin $display ("\n\nError: The parameter bus_with in module display_and_finish is set to %d.\n\tThis parameter can not exceed 64.\n", bus_width); $finish; end Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 2 августа, 2013 Опубликовано 2 августа, 2013 · Жалоба Спасибо, попробую Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 5 августа, 2013 Опубликовано 5 августа, 2013 · Жалоба Да, всё проверено. Подтверждаю: $display печатает в консоль ISE (нужно только там найти, сообщений то много), а $finsh позволяет вызывать ошибку синтеза. Код как в моём первом посте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться