- Скажем, у нас есть модель десятичного счетчика SystemC, и я хочу проверить RTL счетчика SystemVerilog, используя модель SystemC. Как мы можем соединить эти два в тестовом стенде на основе SV / UVM, чтобы общаться между ними.
Как подключить модель SystemC к SystemVerilog?
Ответы (2)
Mentor разработал бесплатный пакет под названием UVMConnect, который был разработан специально для приложения, о котором вы спрашиваете. См. https://verificationacademy.com/topics/verification-methodology/uvm-connect. Вам понадобится симулятор, который поддерживает совместное моделирование SystemVerilog и SystemC, например Questa.
Если вы используете QuestaSim, я думаю, что вам подойдет UVM-connect от Mentor. Когда я впервые использовал его (4 года назад), он был очень глючным и выдавал самые загадочные ошибки segfault, которые я когда-либо видел. Но с помощью поддержки наставника мне удалось преодолеть их и добиться цели. Теперь он должен быть более стабильным, но если у вас возникнут проблемы с ним, не стесняйтесь обращаться в службу поддержки Mentor. Они очень отзывчивы.
Однако, если вы используете инструменты Cadence и/или язык e, я думаю, что UVM-ML от Cadence является гораздо более комплексным решением. Он позволяет подключать компоненты, написанные на любой комбинации языков (SV-SC, SV-e, SC-e), и имеет более качественную документацию и примеры. Насколько я понимаю, теперь он также совместим со всеми симуляторами. Вы можете найти его здесь: http://forums.accellera.org/files/file/65-uvm-ml-open-architecture/
Не уверен, что люди Synopsis рекомендуют для своего набора инструментов. Может быть, кто-то, кто использовал их, может предложить больше информации об этом. Но я предполагаю, что и UVM-ML, и UVM-Connect могут работать, поскольку их производители утверждают, что они портативны.
И, наконец, если вы планируете использовать SystemC в качестве языка проверки (очень маловероятно, но просто ради разнообразия), есть что-то под названием UVM-SystemC, которое по сути является клоном SV-UVM, написанным на C++/SystemC. В настоящее время он находится в альфа-версии, и ему не хватает многих функций (моделирование регистров, ограниченная рандомизация, сбор покрытия и т. д.). Это очень похоже на SV-UVM, и я думаю, что это хорошая игрушка, в которую можно поиграть в свободное время, если вы не можете позволить себе коммерческую лицензию на симулятор. Вы можете найти его здесь http://accellera.org/images/downloads/drafts-review/uvm-systemc-1.0-alpha1.tar.gz