Проверьте декодер Витерби Используя HDL Cosimulation

В этом примере показано, как использовать HDL Verifier™ в сочетании с Mentor Graphics ModelSim®/QuestaSim® или Тактовым сигналом Incisive®/Xcelium®, чтобы проверить HDL-код для Декодера Витерби фиксированной точки.

1. Откройте модель Simulink

Если вы используете ModelSim/QuestaSim, открываете модель viterbi_modelsim.slx.

Если вы используете Incisive/Xcelium, открываете модель viterbi_incisive.slx.

2. Запустите симулятор HDL

2.1 Запустите ModelSim/QuestaSim

Прежде, чем запустить ModelSim, убедитесь, что исполняемые файлы ModelSim находятся на системном пути MATLAB®.

Запустите ModelSim путем двойного клика по блоку "ModelSim Startup Command" в модели Simulink, или путем выполнения следующей команды в консоли MATLAB:

vsim('tclstart',viterbi_tclcmds_modelsim('vsimulink'));

2.2 Запустите Incisive/Xcelium

Прежде, чем запуститься Острый, убедитесь, что Острые исполняемые файлы находятся на системном пути MATLAB®.

Запуск, Острый путем двойного клика по блоку "Incisive Startup Command" в модели Simulink, или путем выполнения следующей команды в консоли MATLAB:

nclaunch('tclstart',viterbi_tclcmds_incisive('hdlsimulink'));

3. Запустите симуляцию

Когда симулятор HDL закончил компилировать файлы VHDL и загружать симуляцию, текст, "Готовый к cosimulation...", отображен в командном окне симулятора HDL. После того, как вы будете видеть этот текст, запустите симуляцию Simulink с открытой модели.

Когда симуляция остановится, наблюдайте частоту ошибок по битам, отображенную в блоке "BER Display".

4. Повторно выполните симуляцию различными параметрами.

Существует два параметра, которые управляют поведением этой модели. Первым является формат кадра, и другой Es/No, используемый в симуляции. Можно изменить те параметры в консоли MATLAB. Например,

FrameSize = 10;
EsNo      = 5;

Затем можно повторно выполнить cosimulation обновленными параметрами путем запуска симуляции снова с модели.

4. Закончите симуляцию

Закройте ModelSim или Острый сеанс. Затем возвратитесь к Simulink и закройте модель.

close_system('viterbi_modelsim');
close_system('viterbi_incisive');