2009-03-17 4 views
1

Мне поручено проверить некоторый RTL-код на основе verilog. Теперь кодирование RTL testbench с использованием verilog кажется очень сложным (для меня). Поэтому я хотел бы попробовать одно из следующих. - Try обеспечивая интерфейс PLI к RTL и тем самым вызвать «функцию C для тестирования - Использование системы» C для сопряжения «функций Сverilog или systemc для testbench

PS: У меня уже есть обширный» код C, который был использован для тестирования поведенческая модель. Я новичок в мире аппаратного программирования. Любые указатели будут очень благодарны.

ответ

5

Если у вас уже есть расширенный код С, который использовался для тестирования поведенческой модели, то нужно просто добавить интерфейс PLI (или DPI), который позволит вам называть этот код c verilog.

SystemC - это в основном C++ с большим количеством классов, которые позволяют моделировать HW. Я не понимаю, как вам полезно изучить SystemC для задачи, которую вы пытаетесь, поскольку у вас уже есть модель C, доступная для тестирования HW. Обучение SystemC, вероятно, слишком велико для того, что вы пытаетесь сделать.

FYI. Если вы хотите узнать что-то, что сегодня широко используется в отрасли, я бы посоветовал вам изучить SystemVerilog. В эти дни SystemVerilog, в основном verilog с кучей высокоуровневых функций языка программного обеспечения встроен; наряду с «VMM», «методология проверки» (т. е. куча библиотек), кажется, все в ярости на земле проверки аппаратных средств.

+0

Благодарим вас за приятное объяснение. Я также узнал, что system-c является излишним, и реализовал уровень DPI для взаимодействия Verilog-кода с C. Лучше всего, «ЭТО РАБОТАЕТ». Еще раз, спасибо. – Alphaneo

4

Вопрос не так легко ответить, не зная вашего DUV (устройство под контролем) или кода C, который у вас есть. Вам нужны средства для стимулирования и проверки вашего дизайна, здесь вам, вероятно, нужно перевести с/на уровень транзакции (структуры данных C) на уровень от/до уровня. Интерфейсы SystemVerilog или SystemC могут быть подходом. Я еще не использовал интерфейсы DPI/PLI.

Чтобы иметь «современную» тестовую базу, вы должны рассмотреть возможность использования одной из методологий testbench, а именно: VMM или OVM. Они также предоставят вам документацию о том, как начать работу.

0

Похоже, вы должны получить такой инструмент, как тренажеры Mentor или Cadence, которые сочетают RTL и SystemC-код под одной системой. Конечно, это не бесплатно, но они являются решением, которое существует на практике.

Структурно правильное решение, которое вам нужно, чтобы C или SystemC вызывали RTL, а не наоборот. Это подразумевает интеграцию некоторого RTL-симулятора с вашей программой C или программой SystemC. Это, безусловно, выполнимо, но довольно большое начинание.

Кроме того, я считаю, что использование SystemVerilog имеет большой смысл.

0

Я использовал для SystemC и System Verilog/VMM для проверки, и ответ, это зависит. Когда я был с автозагрузкой, которая была в бюджетном бюджете, пытаясь выпустить свой первый ASIC, SystemC был естественным выбором, потому что он работал на нашем малобюджетном симуляторе, а SystemVerilog этого не делал. В SystemC вам не нужно использовать PLI или DPI. Вы фактически создаете экземпляр своей модели SystemC в качестве компонента в своем тестовом стенде, что интересно.

Однако SystemC - это библиотека C++, которая не имеет очень интуитивного синтаксиса. Перед попыткой изучить библиотеку SystemC у вас должен быть хороший фон C++. Книги для этого, которые доступны, в основном сосут, за исключением «SystemC с нуля» Дэвида Блэка.

Это начало, из того, что я видел, SystemC - это, естественно, язык моделирования высокого уровня, а не язык проверки, и никто, у кого нет бюджета для покупки реальных симуляторов, больше не использует SystemC для проверки. С точки зрения общей карьеры, я бы использовал System Verilog, если он доступен вам. Кроме того, вы всегда можете использовать DPI для взаимодействия с вашей моделью C для проверки вывода, которая по-прежнему использует генераторы, мониторы и табло, написанные в SV/VMM.