MaratZuev 0 December 4, 2019 Posted December 4, 2019 · Report post On 12/2/2019 at 10:13 AM, des00 said: Если вам нужен тестбенч что бы доказать что переданные вами исходники одинаково работают на любом симуляторе это одно И тестбенч и исходники, о котором идёт речь в этом контексте, - дело рук вашего покорного слуги. Именно это и надо доказать. On 12/2/2019 at 10:13 AM, des00 said: привычка выработанная годами, делать не статические функции и таски У меня (пока) такой привычки нет, и я, по-вашему, где-то могу сильно пострадать из-за отсутствия оной? On 12/2/2019 at 4:42 PM, lexx said: Static может сохранять значение между вызовами, automatic создаётся заново при вызове и удаляется после завершения. Если я не расцвечиваю задачи и функции, кто они по-умолчанию, и чем мне это грозит? До сих пор не задумывался. Quote Share this post Link to post Share on other sites More sharing options...
Nick_K 0 December 4, 2019 Posted December 4, 2019 · Report post 5 minutes ago, MaratZuev said: Если я не расцвечиваю задачи и функции, кто они по-умолчанию, и чем мне это грозит? К переменным, объявленным внутри автоматических функций, у Вас не будет никогда доступа. Ибо они дуструктятся сразу после обращения. С точки зрения объёмов тестирования, лучше пользовать автоматические. А ещё по той причине, что при параллельном вызове одной функции Вы можете увидеть неожиданные результаты. С другой стороны в автоматической функции нельзя переприсваивать переменные (насколько я видел), хотя возможно это просто "фокусы" моего тестового окружения. Quote Share this post Link to post Share on other sites More sharing options...
lexx 0 December 5, 2019 Posted December 5, 2019 · Report post 8 hours ago, MaratZuev said: Если я не расцвечиваю задачи и функции, кто они по-умолчанию, и чем мне это грозит? По умолчанию статические. Но есть отличия, синтезатор (synopsis) вполне корректно обрабатывает это как функции обычного Verilog-а, однако результат симуляции (и не не всех) может расходится. В общем, случаются разночтения и лучше этого не допускать. Quote Share this post Link to post Share on other sites More sharing options...
dxp 10 December 5, 2019 Posted December 5, 2019 · Report post 5 коп. 1. Неавтоматические функции являются нереентерабельными. В подавляющем большинстве случаев это не то поведение, которое нужно. Лучше все функции и таски делать автоматическими, и только в специальных случаях объявлять в них статические переменные явно. Это практика конвенциональных ЯП таких как С. 2. В SV можно поменять поведение по умолчанию для модуля, объявив его 'module automatic ...'. В таком модуле все функции и таски по умолчанию делаются автоматическими. Quote Share this post Link to post Share on other sites More sharing options...
MaratZuev 0 December 5, 2019 Posted December 5, 2019 · Report post Всем спасибо: сохраню тред, как обычно, на добрую память. Quote Share this post Link to post Share on other sites More sharing options...
des00 14 December 5, 2019 Posted December 5, 2019 · Report post 19 hours ago, MaratZuev said: И тестбенч и исходники, о котором идёт речь в этом контексте, - дело рук вашего покорного слуги. Именно это и надо доказать. Я не это имел в виду. Вот смотрите есть 4 возможных случая в тестировании: 1. код без ошибок, тест без ошибок - все ок. 2. код без ошибок, тест с ошибокой - все не ок. 3. код с ошибкой, тест без ошибок - все не ок. 4. код с ошибкой, тест с ошибкой - все ок. случай 4 часто называют законом парных ошибок. Принимаются специальные меры, что бы такого не было. Вы, судя по вашему тексту, собираетесь проверять эквивалентность формирования сигналов в двух симуляторах. Но это не будет гарантией правильности работы исходного кода. Вот на этом я акцентировал внимание, на разработке теста с самопроверкой, по выверенной эталонной модели. Если такой ваш тест и является, то это хорошо) Quote Share this post Link to post Share on other sites More sharing options...
dvlwork 0 December 10, 2019 Posted December 10, 2019 (edited) · Report post Вы упустили еще один случай: 5. код без ошибок, тест с ошибкой - все ок. Такое вполне бывало. И не раз. Тест с ошибкой может выдавать все что угодно. Edited December 10, 2019 by dvlwork Quote Share this post Link to post Share on other sites More sharing options...