Jump to content
    

Отображение сигнала в нужном мне виде в окне Wave Active-HDL - а возможно ли?

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 создаётся заново при вызове и удаляется после завершения.

Если я не расцвечиваю задачи и функции, кто они по-умолчанию, и чем мне это грозит? До сих пор не задумывался.

Share this post


Link to post
Share on other sites

5 minutes ago, MaratZuev said:

Если я не расцвечиваю задачи и функции, кто они по-умолчанию, и чем мне это грозит?

К переменным, объявленным внутри автоматических функций, у Вас не будет никогда доступа. Ибо они дуструктятся сразу после обращения. С точки зрения объёмов тестирования, лучше пользовать автоматические.

А ещё по той причине, что при параллельном вызове одной функции Вы можете увидеть неожиданные результаты.

С другой стороны в автоматической функции нельзя переприсваивать переменные (насколько я видел), хотя возможно это просто "фокусы" моего тестового окружения.

Share this post


Link to post
Share on other sites

8 hours ago, MaratZuev said:

Если я не расцвечиваю задачи и функции, кто они по-умолчанию, и чем мне это грозит?

По умолчанию статические. Но есть отличия, синтезатор (synopsis) вполне корректно обрабатывает это как функции обычного Verilog-а, однако результат симуляции (и не не всех) может расходится. В общем, случаются разночтения и лучше этого не допускать.

Share this post


Link to post
Share on other sites

5 коп. 

 

1. Неавтоматические функции являются нереентерабельными. В подавляющем большинстве случаев это не то поведение, которое нужно. Лучше все функции и таски делать автоматическими, и только в специальных случаях объявлять в них статические переменные явно. Это практика конвенциональных ЯП таких как С.

2. В SV можно поменять поведение по умолчанию для модуля, объявив его 'module automatic ...'. В таком модуле все функции и таски по умолчанию делаются автоматическими.

Share this post


Link to post
Share on other sites

19 hours ago, MaratZuev said:

И тестбенч и исходники, о котором идёт речь в этом контексте, - дело рук вашего покорного слуги. Именно это и надо доказать.

Я не это имел в виду. Вот смотрите есть 4 возможных случая в тестировании: 

1. код без ошибок, тест без ошибок - все ок. 

2. код без ошибок, тест с ошибокой - все не ок. 

3. код с ошибкой, тест без ошибок - все не ок. 

4. код с ошибкой, тест с ошибкой - все ок. 

случай 4 часто называют законом парных ошибок. Принимаются специальные меры, что бы такого не было. Вы, судя по вашему тексту, собираетесь проверять эквивалентность формирования сигналов в двух симуляторах. Но это не будет гарантией правильности работы исходного кода. Вот на этом я акцентировал внимание, на разработке теста с самопроверкой, по выверенной эталонной модели. Если такой ваш тест и является, то это хорошо) 

Share this post


Link to post
Share on other sites

Вы упустили еще один случай:

5. код без ошибок, тест с ошибкой - все ок.

Такое вполне бывало. И не раз. Тест с ошибкой может выдавать все что угодно.

Edited by dvlwork

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...