FPGA > САПР > Тестирование и верификация цифровых систем: Курс лабораторных работ

ЛР5 > Перевірка функції на повернення помилки та отримання аргументів симулятора

Тема: Застосування функцій vpi_get_vlog_info, vpi_chk_error. Аналіз структури t_vpi_error_info.

1. Теоретичні відомості

Запуск симулятора при неправильних аргументах виклику, або з інших причин може бути невдалим. В такому випадку корисно вивести на екран інформацію про аргументи виклику симулятора. Крім того, знання аргументів виклику симулятора можуть бути необхідне для правильної обробки виклику користувацьких функцій.
Для отримання аргументів виклику симулятора застосовується функція ‘vpi_get_vlog_info’:

Рис. 1 Процедура VPI ‘vpi_get_vlog_info’

У випадку, коли симулятор незапущений ‘vpi_get_vlog_info’ поверне помилку  0. Для отримання коду помилки, з яким завершився попередній виклик процедури VPI застосовують процедуру ‘vpi_chk_error’:

Рис. 2 Процедура VPI ‘vpi_chk_error’

    Крім коду помилки, процедура ‘vpi_chk_error’ поміщає в структуру ‘t_vpi_error_info’ додаткову інформацію про помилку.

Рис. 3 Поля структури ‘t_vpi_error_info’

2. Порядок виконання роботи

1. Створіть файл test_args.v та введіть код модуля:

module test_args;

initial begin

$cosim_args();

#10

$finish;

end

endmodule

2. Створіть файл cosim_args.c, де визначте користувацьку calltf функцію:

Рис. 4 Розробка користувацької функції calltf для друку аргументів симулятору

Рис. 5 Реєстрація користувацької функції

3. Виконайте компіляцію та створіть динамічну бібліотеку, яка буде підключена до симулятора ModelSim під час симуляції.

Рис. 6 Компіляція користувацької функції у бібліотеку *.dll

4. Виконайте симуляцію в ModelSim. Зверніть увагу на список аргументів vsim

Рис. 7 Результати симуляції в ModelSim

3. Самостійна робота

Модифікуйте демонстраційний приклад та створіть додаток PLI, який виконує дії над аргументами виклику симулятора. Приклади дій над аргументами:

1. Вивести суму двох чисел, що передаються останніми в списку аргументів симулятору.

2. Вивести кількість символів, що містяться у списку аргументів симулятору.

3. Список аргументів симулятору у верхньому регістрі.

4. Зберігає у текстовий файл час виклику симулятору та список його аргументів.

5. Виводить на екран, який інтервал моделювання заданий у команді run.

Автор: Александр Романов


Комментарии: