FPGA e host USB

T

tesla101

Guest
Salve,Ho la guida di un host USB Cypress SL811HS con un FPGA.
Il mio è un FPGA XESS con un kit di sviluppo Xilinx Spartan3, 1M porte.

Come forse saprai, il Cipresso richiede un bus dati a 8 bit e 6 pin per il controllo.

Ho deciso di syntethize tutto questo materiale di controllo con una macchina stato scritto in VHDL.

L'unità FPGA molto bene gli Stati in autobus, ma la Cypress non risponde bene.
La prima parte del Cipresso è una 256 byte di RAM.Ho scritto in modo asincrono con una lenta orologio (1Hz, al fine di essere in grado di vedere l'evoluzione), ma non risponde molto bene.Leggendo quello che ho scritto la mia risposta è circa 2-3 casualmente sbagliato bit in ogni byte e così via ....Chiunque ha un idea?Chiunque già sviluppato con tavole di cipresso?Grazie

 
Le vostre domande è talmente generica che è quasi impossibile senza conoscere la risposta a quello che stai facendo, la vostra frequenza di clock, il diagramma di temporizzazione o di qualsiasi tipo di informazione circa l'interfaccia tra l'FPGA e USB chip.

Se guardate la scheda per il vostro dispositivo Cypress, a pagina 24, si dispone di requisiti minimi per i pochi segnali critici.Il primo è la lunghezza del tuo UDJJLXQJHQGR accesso, deve essere di almeno 65nS, il secondo problema è il tempo per organizzare i tuoi dati dopo CS, dovete mantenere A0 segnale si attiva per almeno 10 ns e bus dati per almeno 5.Inoltre, vi deve essere un minimo di 85nS tra ciascuna CS azioni.

Se il vostro calendario è OK, allora si deve cercare nei dati da inviare, ma con attenzione al tuo calendario, se hai una buona osciloscope,
collegarlo ai segnali (O2-4 alla volta) e assicurarsi che l'accesso non violare i requisiti per la tempistica dvicce.

Tenere informati circa lo stato di avanzamento, avevo pianificato di utilizzare il dispositivo Cypress in uno dei miei progetti di bene.

Con i migliori saluti,
/ FarhadAggiunto dopo 1 ora 40 minuti:Solo una questione che ho dimenticato di chiedere qui, si fa a sapere se il chip ha un minimo di requisiti per i segnali?Non molti chip in grado di gestire segnali molto lento come 1s, tentare di accedere ad un più alto tasso di qualcosa circa 1MHz e guardare con un osciloscope, se ne hai uno.

BR,
/ Farhad

 
Hi Farhada e tutti gli sviluppatori USB,

Molte grazie per il vostro interesse e la risposta rapida.Adesso ho un po 'le idee chiare.
Al fine di creare la mia piattaforma di sviluppo, ho voluto realizzare per l'esempio che si trova nella scheda del Cipresso - vale a dire leggere e scrivere il ciclo di RAM.

Come si può vedere in formato jpeg allegata,
i miei tempi passati problemi.Ma il vero problema sono questi difetti sanguinosa.Penso che ora sono sufficientemente specifiche per illustrare il mio soggetto.
Ho anche l'. VHD codice della mia macchina statale.Si noterà che è perfettamente divisa in 3 processi e sicuramente uno degli obiettivi perfettamente sincrono Moore stato macchina.
Questi difetti naturalmente apparire anche quando non avete collegato il Cipresso, è parte della sintesi.Il disegno mostra un ciclo io, ma se lo faccio senza interruzione del ciclo di difetti ri-apparire periodicamente allo stesso posto.

Quindi la mia domanda precisa è la seguente: come faccio a sbarazzarsi di questi difetti, dato che in teoria dovrebbero avere uno stato macchina sincrona?
Specificare che il mio sintetizzatore è la Xilinx XST.Ho sentito che il compilatore Synopys FPGA gestisce meglio la sintesi degli algoritmi ...Spero che qualcuno ha già visto questo fenomeno noioso e che il mio messaggio in una bottiglia verrà letto di nuovo,

Grazie in anticipo

tesla101

 
tesla101 ha scritto:Quindi la mia domanda precisa è la seguente: come faccio a sbarazzarsi di questi difetti, dato che in teoria dovrebbero avere uno stato macchina sincrona?
 
Salve,
Interessante problema.Ho una domanda circa il tuo codice, perché per avere il codice "attendere clk ='1 '" in un unico processo e il normale "se clk'event e clk ='1'" nelle altre?

Il problema con difetti commong è un problema con questo tipo di Stato macchine.Sono d'accordo con gli ACE-X, che si dovrebbe rimuovere la "attendere" dal vostro processo e renderlo un puro processo combinatorio.

Se avete ancora voglia di fare le cose "clock", si possono combinare le OL NSL processo e di un unico processo.In questo modo si renderà la vostra vita più facile da capire il codice come pure più facile da maneggiare.Ma alcune aziende non permettono questo tipo di stile di codifica.

Hope it helps,

BR,
/ Farhad

 
Buon giorno a tutti gli sviluppatori USB, Farhada e Ace-X!

Finalmente ho avuto liberarsi di questi difetti da due motivi:

in primo luogo, mi sono reso conto dei cambiamenti nel mio codice VHDL come mi avete dato da pezzi di consulenza e alla fine ho cambiato un po 'la combinatoria processo in modo che le uscite sono registrate alla fine.

in secondo luogo, cosa che non sono sicuro che si creda, il mio è un oscilloscopio HP 54645D e come ogni logica analizzatore è un pod, e tutto ciò è normale.Ma!Un filo del mio pod è danneggiato,
in modo danneggiato che, quando si arriva segnale che disturba tutti gli altri bit.Io non sono scherzando, la metà dei difetti sulla foto che ho postato è generato da questo cattivo filo.Incredibile.Adesso ho un buon modello di macchina stato registrato, se qualcuno vuole aiutare o l'intero modello, si prega di contattare me.

Tuo,Tesla101

 
Per Tesla

Io mando il PM a voi e spero di poter rispondere a me il più presto possibile.

Grazie

 
HI Tesla,
Contento che hai trovato il tuo problema, interessante, non ho mai pensato di rilasciare il cavo!Anche se ho trascorrere una settimana alla ricerca di un ghoast glitch che non
c'era me.

BR,
/ Farhad

 

Welcome to EDABoard.com

Sponsor

Back
Top