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

Всем спасибо: сохраню тред, как обычно, на добрую память.

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now