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

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

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

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

   Тестування та верифікація цифрових систем: структура курса лабораторних робіт 
 1. Розробка користувацьких системних функцій Verilog 
 2. Застосування різних типів процедур PLI. Процедура знаходження часу симуляції 
 3. Зчитування / запис даних більших за 32 біт 
 4. Організація доступу до масивів за допомогою VPI / PLI 
 5. Перевірка функції на повернення помилки та отримання аргументів симулятора 
 6. Застосування робочих областей PLI 

Для отримання аргументів виклику симулятора застосовується функція ‘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.

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