Я не мог понять, что не так с кодом здесь:
https://www.edaplayground.com/x/SpPU
Фрагмент кода
1 // Code your testbench here
2 // or browse Examples
3
4 class myclass;
5 endclass
Сообщение об ошибке
[2024-09-02 08:46:01 UTC] vlib work && vlog '-timescale' '1ns/1ns' '-v95' +incdir+$RIVIERA_HOME/vlib/uvm-1.1d/src -l uvm -err VCP2947 W9 -err VCP2974 W9 -err VCP3003 W9 -err VCP5417 W9 -err VCP6120 W9 -err VCP7862 W9 -err VCP2129 W9 design.sv testbench.sv && vsim -c -do "vsim +access+r; run -all; exit"
VSIMSA: Configuration file changed: `/home/runner/library.cfg'
ALIB: Library "work" attached.
work = /home/runner/work/work.lib
ERROR VCP2000 "Syntax error. Unexpected token: class[_IDENTIFIER]." "testbench.sv" 4 6
WARNING VCP2515 "Undefined module: gen_pkt was used. Port connection rules will not be checked at such instantiations." "testbench.sv" 36 15
FAILURE "Compile failure 1 Errors 1 Warnings Analysis time: 0[s]."
Exit code expected: 0, received: 255
Done
Настройки симулятора указаны в 1-й строке сообщения об ошибке. Я погуглил эту тему, но большинство проблем возникало только из-за отсутствия ;
Я считаю, что именно в этом цель EDA Playground. Или, может быть, вы не знаете, как им пользоваться?
Посетите Справочный центр: stackoverflow.com/help/how-to-ask . «Если возможно создать живой пример проблемы, на который можно дать ссылку (например, на sqlfiddle.com или jsbin.com), сделайте это, но также скопируйте код в сам вопрос. . Не каждый может получить доступ к внешним сайтам, и ссылки могут со временем сломаться».
Я считаю, что флаг -v95
заставляет симулятор компилировать код как Verilog IEEE1364-1995, который не поддерживает class
. Удалите флаг, чтобы его можно было скомпилировать как SystemVerilog.
Большое спасибо @Greg! Каким-то образом я просто переключал этот флаг между {-v95}, {-v2k} и {-v2k5} и все равно получаю ту же ошибку. После его удаления ошибка исчезла, и я могу продолжить отладку других синтаксических ошибок. Большое спасибо за вашу помощь!
@nneonneo Сэр, я не хочу показаться грубым, но немного сострадания и терпения помогут таким невежественным любителям, как я, которым просто нужна была максимально быстрая помощь от самых терпеливых экспертов. Я еще не знаю полных правил этой платформы, поэтому не знаю, что делает отрицательное голосование (возможно, уменьшает видимость моего вопроса и т. д.). Я уже улучшил свой вопрос, но он был хладнокровно закрыт. В любом случае спасибо, по крайней мере, я получил ценный ответ Грега. Он явно эксперт по SV/Verilog.
@renvill, я считаю, что ннеоннео действительно проявил сострадание и терпение. Они предоставили два комментария, которые помогут вам улучшить ваш вопрос. Будьте осторожны с предположениями: у нас нет возможности узнать, кто проголосовал против вашего вопроса. «Я еще не знаю полных правил этой платформы» — однако вы уже должны были прочитать страницу «Как задать вопрос», о которой упоминается во втором комментарии.
@Greg, вопрос открыт снова; не стесняйтесь оставлять свой комментарий в качестве ответа. Поскольку эта ошибка не появилась при быстром поиске в Google, я думаю, что было бы полезно получить окончательный ответ.
@Chris Извиняюсь, я действительно предполагал, что это было неоннео, и не удосужился проверить, кто за это проголосовал. Но, как вы упомянули, узнать это невозможно. Тогда я должен быть благодарен nneonneo за то, что он проложил путь к более дисциплинированному (и профессиональному) сообществу вопросов и ответов. Большое спасибо !
Флаг -v95
заставляет симулятор компилировать код как Verilog IEEE1364-1995, который не поддерживает class
. Убрав этот флаг, симулятор сможет скомпилировать код как SystemVerilog. SystemVerilog поддерживает class
, typedef
, enum
, int
и другие ключевые слова, используемые в вашем коде по ссылке edaplaygroud.
Пожалуйста, укажите код и соответствующую ошибку в своем вопросе вместо ссылки на него.