2015-10-13 5 views
1

В файле VCD я хотел бы указать, что некоторые события произошли в определенное время. С этой целью я попытался определить однобитовый сигнал, значение которого почти равно 0, и переключение этого значения на 0, а затем обратно на 1 в то же время (в то время, когда происходит мое событие). К сожалению, ничего не отображается при просмотре файла с gtkwave. Как я мог добиться такого поведения?Как указать аннотации в файлах VCD?

+1

Если вы переворачиваете сигнал без наступления времени, это даже записывается в VCD? Я ожидаю, что сигнал будет либо 0, либо 1 или x, но не сможет увидеть, что он идет в 1 и обратно. – dave

+0

@dave Я сам создаю файл VCD, поэтому да, я могу включить и выключить его в одно и то же время. Более того, насколько я понимаю, файл VCD ДОЛЖЕН быть заказанным во времени, подтверждаете ли вы это? –

+0

Я все еще не ожидал, что он появится в gtkwave: VCD не имеет смысла .... сигнал не может иметь два значения одновременно. – dave

ответ

2

Используйте событие как переменный тип данных и используйте -> для принудительного события на нем. Он будет отображаться в gtkwave как импульсная стрелка за нулевое время. Никаких трюков с временными шкалами не требуется.

+0

Спасибо, это именно то, что я искал! Тем не менее, я не могу найти правильный синтаксис, чтобы поднять событие в определенное время (определение события верное), можете ли вы показать пример? Кроме того, есть ли окончательная документация формата VCD-файла? –

+0

Вот пример: модуль сверху; событие a; начальный начало $ dumpfile ("whatever.vcd"); $ dumpvars (0, сверху); # 10 -> a; # 10 -> a; # 10 -> a; # 10 -> a; # 10 -> a; конец endmodule –

+0

Для синтаксиса VCD вы можете посмотреть в спецификации Verilog. –

Смежные вопросы