Тема: Застосування PLI структури t_vpi_value для зчитування та запису даних, що більші за 32 біти
1. Теоретичні відомості
VPI використовує структуру ‘t_vpi_value’ для передачі даних з / в симулятор.
Рис. 1 Структура t_vpi_value для передачі даних
Для передачі даних, більших за 32-біт в структурі t_vpi_value передбачено поле ‘value.vector’. Поле value.vector використовується, коли значення поля ‘format’ дорівнює ‘vpiVectorVal’. Це вказівник на заздалегідь виділену пам’ять з структурами ‘t_vpi_vecval’.
Рис. 2 Структура ‘t_vpi_vecval’, що використовується в ‘t_vpi_value’ для передачі даних більших за 32 біт
Рис. 3 Поля aval \ bval структури ‘t_vpi_vecval’ для передачі даних більших за 32 біт
2. Порядок виконання роботи
1. Створіть файл test_wide.v та введіть код модуля (рис. 3). Зверніть на розмір регістрів opA, opB.
Рис. 4 Код модуля test_wide.v
2. Створіть файл cosim_wide.c, де визначте користувацьку calltf функцію:
Рис. 5 Розробка користувацької функції calltf
3. Визначте користувацьку compiletf функцію:
Рис. 6 Розробка користувацької compiletf функції
4. Виконайте компіляцію, створіть динамічну бібліотеку, яка буде підключена до симулятора ModelSim під час симуляції та виконайте симуляцію в ModelSim.
3. Самостійна робота
Модифікуйте демонстраційний приклад та створіть додаток PLI, який виконує арифметичні операції (наприклад, розрахунок ХЕШ-функції або кодування) із даними більшими за 32 біт.
Автор: Александр Романов