можно использовать готовые инструменты предлагаемые в MPLAB, например SCL создаете scl файл, типа такого
configuration for "PIC16F1619" is
shared label SPI_Exchange8bit;
end configuration;
testbench for "PIC16F1619" is
begin
process is
begin
wait until PC == SPI_Exchange8bit;
SSP1STAT.BF <= '0';
// report("Send to SPI");
wait for 20 ic;
SSP1STAT.BF <= '1';
end process;
end testbench;
И прикрепляете к симулятору (Simulator -> Stimulus -> Attach SCL file(s)
метку ставите по названию функции SPI или др.
Что оно делает:
- при достижении расшаренной метки ждет 20 тактов и взводит BF (типа из SPI данные ушли). (20 тактов поставил "от балды" - поставьте время, которое у вас тратится на отсылку в SPI
Готово.
Это все можно обернуть в loop.
тогда каждый раз когда вы пишите в SPI, то через заданное время взводится флаг (запрос на прерывание или др).
Чем не симуляция SPI?