В этом примере показано, как создать поведенческий испытательный стенд с использованием генерации компонентов SystemVerilog DPI-C. Этот испытательный стенд используется для верификации синтезируемого HDL-кода 64-QAM передатчика и приемника.
Продукты, необходимые для этого примера:
MATLAB ®
Simulink ®
Simulink Coder ®
Один из поддерживаемых HDL-симуляторов: Cadence ® Incisive ® или Mentor Graphics ® ModelSim ®/QuestaSim ®
Один из поддерживаемых компиляторов C: Microsoft ® Visual Studio™ для Windows или GNU GCC для Linux ®
Структура верхнего уровня модели приемника QAM показана на следующем рисунке. Подсистемы QAM Tx HDL и QAM Rx HDL были оптимизированы для генерации HDL-кода. Используя HDL Coder, мы можем сгенерировать HDL-код из этих двух подсистем. Этот пример поставляется с сгенерированным HDL-кодом, поэтому вы не должны генерировать код для этого упражнения.
Чтобы создать полный поведенческий тест в HDL, нам понадобятся поведенческие модели для подсистемы Channel и для подсистемы ErrorRate. С помощью этих моделей мы можем сгенерировать компоненты SystemVerilog DPI-C для этих двух подсистем. Перед генерацией компонентов DPI-C нам сначала нужно задать опции генерации кода.
Откройте панель Параметра конфигурации Simulink Model из модели svdpi_qam. Установите следующие параметры:
Выберите Генерация Кода - > Системный целевой файл. Нажмите кнопку «Обзор» и выберите «systemverilog_dpi_grt.tlc.»
Если у вас есть Embedded Coder, можно также выбрать целевой файл 'systemverilog _ dpi _ ert'.
В настройке набора инструментальных средств выберите одну из версий Visual Studio, если вы используете Windows, или одну из сетей GCC, если вы используете Linux.
Затем экспортируйте компоненты DPI-C, выполнив следующие две команды в MATLAB:
> > slbuild ('svdpi _ qam/Channel')
> > slbuild ('svdpi _ qam/ErrorRate')
Для Mentor Graphics ModelSim/QuestaSim,
Запустите ModelSim/QuestaSim в режиме GUI.
Измените текущую директорию на текущую директорию MATLAB
Введите следующую команду, чтобы начать симуляцию:
do QAM_DPIC_tb_mq.do
Для каденции Incisive:
Запустите интерпретатор терминала.
Измените текущую директорию на текущую директорию MATLAB.
Введите следующую команду в интерпретаторе.
sh QAM_DPIC_tb_incisive.sh
В конце симуляции вероятность ошибки печатается следующим образом:
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Вероятность битовой ошибки: 0.001356
Количество ошибок: 4.000000
Количество полученных бит: 2950.000000
*******************************************************