1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226
|
[Sorry -- this file is in italian]
Introduzione
SimulPIC e` un simulatore a linea di comando del microchip PIC16C84.
Si prevedono tutte le funzioni standard di debugging, con la possibilita`
di fornire le transizioni dei pin d'ingresso sia a linea di comando, sia
da file di ingresso. E' possibile monitorare su file sia le transizioni dei
pins di output, sia gli stati dei pins campionati con periodo di campionamento
variabile.
1. Simulazione
1.1. Transizioni degli ingressi
La simulazione e` legata al ciclo d'istruzione (4 tosc), la cui durata
dipende dalla frequenza di clock, definibile con opportuno comando.
La risoluzione temporale della simulazione pone dei limiti sulle possibili
transizioni fornibili in ingresso. Con riferimento alla figura, si assume
che la transizione fornita al passo corrente (B) avvenga tra Q2 del ciclo
d'istruzione precedente (A) e la fine di Q1 del corrente, in modo che il
nuovo valore sia subito disponibile in lettura (istruzione B).
| Ciclo Istruzione |
|<--------------------->|
| |
| Q1 | Q2 | Q3 | Q4 | Q1 | Q2 | Q3 | Q4 |
|__ __ __ __ |__ __ __ __ |
CLKIN / \__/ \__/ \__/ \__/ \__/ \__/ \__/ \__|
| | |
| _________________|_______________________|
PIN |_____/_/_/_/_/_/_/_/_/_/_/_/ |
| |
| <-----Transizione-----> |
| |
|<----- istr. A ------->|<----- istr. B ------->|
(passo corrente)
1.2. RTCC in 'Counter Mode'
Non sono simulabili transizioni multiple, all'interno dello stesso ciclo
di instruzione, del pin RA4/RTCC ( con prescaler 1:256 le specifiche ammettono
centinaia di transizioni). La transizione fornita si assume che avvenga tra Q1
e Q4 del ciclo corrente. In definitiva in modalita` counter senza prescaler
RTCC incrementa al piu` ogni due cicli d'istruzione.
1.3. Fusibili di configurazione
I fusibili di abilitazione del timer di POWER-UP, di protezione del codice e
di selezione dell'oscillatore non sono simulati per ovvi motivi. L'unico
considerato e` il fusibile di abilitazione del Watchdog Timer.
1.4. Porte in ingresso non pilotate
Per semplicita` i pins configurati in ingresso non pilotati (HZ) vengono
letti come uno logico, ovvero, dove previsti, i pull-ups si considerano sempre
attivi.
1.5. EEPROM
Il ciclo di scrittura della memoria di programma non simulato, mentre la
EEPROM data memory e` stata simulata con un ciclo di scrittura di 10ms (tempo
nominale).
1.6. Watchdog
Il periodo di watchdog assunto di 18ms (tempo nominale).
2. Formati dei files
2.1. File di ingresso
Il file di ingresso contiene tutte le transizioni dei pin con la seguente
sintassi:
{ [# <Commento>] }
"begin"
{ [# <Commento>]
<Time> [MCLR = m] [RA = ppppp] [RAn = p] [RB= pppppppp] [RBn = p] }
"end"
ove: n = {0..4} per la porta A
{0..7} per la porta B
m = 0 : forza il livello logico 0 (RESET)
1 : forza il livello logico 1
p = 0 : forza il livello logico 0
1 : forza il livello logico 1
- : non forza alcun livello logico
u : conserva lo stato precedente inalterato
se si cerca di forzare il livello di un pin di uscita, durante la
simulazione viene visualizzato un messaggio di errore.
La successione dei tempi deve essere strettamente monotona; le transizioni
fornite nello stesso ciclo di istruzione devono trovarsi su di un'unica riga.
Il file viene compilato, mediante il compilatore IEC, in un formato leggibile
dal simulatore. IEC segnala tutti gli errori sintattici.
2.2. File di uscita: Report File
E' previsto il monitoring delle singole transizioni delle porte d'uscita, su
di un file (Report File) nel formato:
>aaaaa bbbbbbbb TIME - transizioni dei registri delle porte
a,b = 0 : pin in uscita, a livello logico 0
1 : pin in uscita, a livello logico 1
. : pin in ingresso
TIME : Tempo in ms.
<aaaaa bbbbbbbb TIME - cambiamenti sullo stato dei pin d'ingresso
a,b = 0 : pin in ingresso, a livello logico 0
1 : pin in ingresso, a livello logico 1
- : pin in ingresso, non pilotato
. : pin in uscita
Taaaaa bbbbbbbb TIME - cambiamenti nello stato dei tristate
a,b = 0 : Relativo pin in uscita.
1 : Relativo pin in ingresso.
2.3. File di uscita: Graphic_File
E' previsto il monitoring del campionamento dello stato dei pin d'uscita
con periodo di campionamento fissato a linea di comando.
Si riporta direttamente un esempio, nel quale e` mostrato il pin RA1 ad 1
logico, il pin RA0 allo 0 logico, mentre RB6 subisce una transizione dal
livello alto a quello basso; i punti segnalano pin d'ingresso:
----------------------------------------------------------------------------
RA4 RA3 RA2 RA1 RA0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Time
. . . | | . | . . . . . . 0.1096
. . . | | . | . . . . . . 0.1140
. . . | | . | . . . . . . 0.1184
. . . | | . | . . . . . . 0.1228
. . . | | . | . . . . . . 0.1272
. . . | | . | . . . . . . 0.1316
. . . | | . | . . . . . . 0.1360
. . . | | . | . . . . . . 0.1404
. . . | | . | . . . . . . 0.1448
----------------------------------------------------------------------------
3. Comandi del simulatore
Al prompt dei comandi e` mostrato il tempo corrente che incrementa ad ogni
ciclo di istruzione simulato. Il caricamento di un nuovo programma determina
l'azzeramento dell'orologio.
"h" visualizza l'help
"l" carica un file oggetto in formato IHX8M nella memoria di programma
configurando il fusibile WDTE
"dr" visualizza lo stato dei registri speciali, lo stato del processore
(SLEEP, RESET, NORMAL) e la prossima istruzione da eseguire
"dg" visualizza il contenuto dei registri generali
"dee" visualizza il contenuto della EEPROM Data Memory
"dpm" visualizza il contenuto della Program Memory
"ds" visualizza il contenuto dello stack (Sono previsti, in simulazione,
i messaggi di errore "Stack overflow" e "Pop on empty stack")
"dp" visualizza lo stato attuale dei pins di ingresso.
"d [<addr>]" disassembla dieci istruzioni a partire da PC o addr
"s [<num>]" simula uno (o <num>) cicli d'istruzione del PIC16C84
"g <time>" porta avanti la simulazione fino al tempo <time> in ms
"bp [<address>]" set/clear breakpoint.
"pa ppppp" configura lo stato dei pin della porta A:
"pm p" forza il livello logico sul pin MCLR (p = 0,1)
"io [<filename>]" apre il file di ingresso contenente le transizioni
dei pin
"ic" chiude il file di ingresso contenente le transizioni dei pin
"ro [<filename>]" apre il file di uscita di monitoring delle sole
transizioni
"rc" chiude il file di uscita di monitoring delle sole transizioni
"eo [<filename>]" apre il "Graphic File"
"ec" chiude "Graphic File"
"por" genera un Power-On-Reset e azzera l'orologio di simulazione
"q" uscita dal simulatore
|