Отображение сигналов Chisel в VCD

Я работаю с чипом RISC-V Rocket. Я добавил некоторые свои собственные сигналы и логику и хотел увидеть значения существующих сигналов в чипе Rocket, которые еще не показаны в форме сигнала VCD. Как сбросить эти сигналы в файл VCD?


person Caylen Lee    schedule 15.09.2015    source источник
comment
Вы говорите, что в вашем дизайне есть сигналы, которые не отображаются в форме волны vcd? Вы используете бэкэнд C++?   -  person Chris    schedule 16.09.2015
comment
Да, есть сигналы, которые не отображаются на осциллограмме vcd. Тем не менее, я не знаком с бэкэндом C++.   -  person Caylen Lee    schedule 16.09.2015
comment
Являются ли эти сигналы проводами или каким-то образом являются частью синтезированного результата?   -  person user2548418    schedule 16.09.2015
comment
Можете ли вы уточнить, что вы подразумеваете под частью синтезированного результата?   -  person Caylen Lee    schedule 16.09.2015
comment
Под результатом я подразумеваю то, что попадает в верилог, испускаемый долотом. Если в chisel используется переменная scala, она не обязательно будет испущена. Чтобы излучаться, он должен выполнять определенную функцию в дизайне (например, провод).   -  person user2548418    schedule 16.09.2015
comment
Другими словами, предполагаемый inst — это 32-битный сигнал, который уже сброшен в vcd, и я выполняю val test = inst(13). test не появится, если я не сделаю провод или что-то в этом роде? Во-вторых, почему что-то вроде val array = SeqMem(Bits(width=encRowBits), nSets*refillCycles) не отображается в сигнале vcd? Разве взаимодействие с памятью не является функцией дизайна?   -  person Caylen Lee    schedule 16.09.2015


Ответы (1)


Существует ряд причин, по которым сигнал в Chisel не будет отображаться в форме волны vcd.

Во-первых, ваш дизайн не использует сигнал. Что-то вроде val test = inst(13) будет обрезано и не испущено, если никто не прочитает сигнал test. Я считаю, что у Chisel может быть конструкция debug(test), чтобы заставить его существовать, но я не уверен.

Во-вторых, сигналы могут быть переименованы во время разработки и отображаться как разные сигналы. Что-то вроде val a = b может означать, что b не отображается в сигнале, а a присутствует.

В-третьих, обычно сигналы Chisel не в самом высоком диапазоне не будут отображаться. Например, сигналы, определенные локально в операторах when().

В-четвертых, воспоминания не отображаются по умолчанию. Как правило, они слишком велики, чтобы их можно было сбросить. Если вы действительно уверены, что ваши воспоминания не слишком велики, вы можете передать Чизелу флаг под названием --vcdMem.

person Chris    schedule 21.09.2015