Utilizzando, come nel precedente MPLAB, la funzione "Register Injection" del tool "Stimulus", al massimo sono riuscito ad ottenere la ricezione di un primo carattere, poi ne salta 2, ne riceve uno ecc.
L'unico modo per simulare la seriale è stato fare un file .scl con il quale iniettare i caratteri uno a uno nel registro RCREG e settare il flag RCIF.
Tale file deve essere inserito tramite il pulsante "+SCL" a sinistra del pannello "Stimulus"
Lo allego anche se penso debba esistere una soluzione migliore!
Codice: Seleziona tutto
testbench for "pic16f886" is
begin
process is
begin
wait for 1000 ms;
RCREG <= 65; //LETTERA 'A'
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 66; // B
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 67; // C
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 68; // D
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 69; // E
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 70; // F
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 71; // G
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 72; // H
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 73; // I
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 74; // J
PIR1.RCIF <= '1';
wait for 5 ms;
RCREG <= 75; // K
PIR1.RCIF <= '1';
wait;
end process;
end testbench;