On Saturday, February 03, 2007 6:06 PM [GMT+1], Paolo Ferraris <pieffe8@xxxxxxxxx> wrote:
Tre cose sul ZXMMC... 1) La voglio !!!! :-) Possibilmente montata, ma direi che ne parliamo quando hai le schede.
Ho le schede, ne ho montate due (una delle due e` servita per provare il funzionamento della cpld piu` piccola possibile, 36 macrocelle invece di 72, nella quale ho rimosso la gestione del kempston e la seriale hardware). Entrambe funzionano, se ti interessa ancora fare qualche esperimento fammi sapere che ci accordiamo.
In realta` e` meglio aspettare ancora qualche giorno, perche` approfittando dell'aver dovuto riaprire il progetto, ho fatto qualche studio in merito alla tua considerazione:
3) Ho guardato il codice di prova della ZXMMC, che usa inir/otir per la lettura/scrittura veloce. Non so se abbia molto senso velocizzare ulteriormente l'accesso alla scheda, ma, spendendo un po' di bytes in piu', si potrebbe accelerare il tutto del 20% con la tecnica dell'unrolling. Per esempio, si potrebbe sostituire un otir con STARTLOOP: outi ... (16 istruzioni outi in totale) outi jr nz,STARTLOOP
Come forse ricorderai, il badaloc aveva fallito il test in quanto il numero di T-states della OUTI era esattamente pari a quello necessario alla cpld per "evadere l'ordine", e non ci si stava per un pelo. Ho pensato di poter limare via un clock se mando in output il primo bit contestualmente allOUT del processore, ovvero memorizzare solo 7 bit nel registro a scorrimento e sbattere il primo subito sul pin. La prova sulle due zxmmc ha dato esito buono! ma prima di cantare vittoria devo trasportare la modifica sul badaloc, dove posso fare una prova di comunicazione con grosse moli di dati, e al momento non ci riesco perche` in questo caso il compilatore da` forfait (la logica non ci sta!!).
Ti terro` informato, e grazie per il suggerimento! Ciao!