Cosa si può fare con le CPLD?

Come si può facilmente intuire dall'oggetto, non conosco le CPLD però mi piacerebbe provare a giocarci un pò.

Devo realizzare un circuito "X" che decodifica in quadratura due encoder incrementali e ne memorizza il conteggio in due contatori a 32bit; inoltre deve implementare un bus di comunicazione parallelo a 8bit+clk con un microprocessore, e generare un segnale PWM con freq. programmabile da 100Hz a 30KHz e duty cycle programmabile da 0 a 100%.

Dal microprocessore, attraverso il bus parallelo, devo comandare/ interrogare questo circuito "X" in modo da leggere la posizione degli encoder e comandare il segnale PWM.

Mi piacerebbe provare a realizzare il circuito "X" con una CPLD, ma come ho detto non le conosco e vorrei sapere da qualcuno, sicuramente più informato di me, se questo è possibile e con che tipo di CPLD.

Non so ancora bene cosa si intenda per "macrocelle" e se 32 possano bastare ma pensavo di comprare una EPM3032.. per fare un pò di esperimenti. Può essere adatta/sufficiente a risolvere il mio problema?

Più in generale, a quali applicazioni sono più adatte secondo voi?

Thaks@All!

Reply to
Andrea
Loading thread data ...

"Andrea" ha scritto nel messaggio news:4471eeb2$0$36928$ snipped-for-privacy@reader3.news.tin.it...

il mio primo progetto in azienda con le CPLD era un controller ad anello chiuso per due motori con encoder in quadratura.... a quel tempo feci un paio di schede filate su millefori con delle MAX7128 che c'erano in magazzino.

una macrocella è generalmente composta da un flip-flop e un po' di logica sparsa per permettere l'interconnesione del FF agli altri (routing). Se devi implementare un contatore (registro) a 32 bit, devi mettere nel conto 32 macrocelle. A questo punto puoi fare i conti :-) Attualmente tutti i produttori mettono a disposizione il software di progettazione gratuitamente, tu prova a smanettarci un po'. All'inizio puoi lavrare esclusivamente in modo "virtuale", dal progetto alla simulazione, senza spendere una lira. Io conosco Quartus di Altera, che puoi scaricare da qui:

formatting link

Oppure, vedi il sito di xilinx:

formatting link

E infine, mi auto-cito:

formatting link

Si, certo.

Macchine a stati, arbitraggi di bus, routing & glue-logic, I/O expander...

Saluti

--
simone.bern
Mr. Heisemberg is not the only one who can affect a measurement by looking 
at it (Robert A. Pease)

zsimonez.zbernz@zliberoz.it (Rimuovere i caratteri di zorro per rispondere 
via mail)
Reply to
Simone Bern

Per giocare e prenderci la mano sì, ma mi pare troppo piccola per tutto quello che vorresti infilarci.

Boiler

Reply to
Boiler

Hai visto questa che ho sviluppato?

formatting link
id=3D33&Itemid=3D51

Con una scheda di questo tipo puoi fare tutto semplicemente collegandoti all'USB (alimentazione, programmazione FPGA, interfaccia con il PC), e quindi tutto il sistema si riduce ad un PC ed un oscilloscopio per provare... I componenti non costano piu' di 70-80=80 ed hai una FPGA con 12000 Logic Elements, insomma abbastanza per un microprocessore complesso.

Ciao

Reply to
Davide

Attenzione che FPGA e CPLD sono due cose totalmente diverse.

Boiler

Reply to
Boiler

Sicuramente. Dal punto di vista utente, con i tools di ora, non vedo molte ragioni per usare CPLD anziche' FPGA. Forse se devi essere "power on ready" o hai applicazioni molto particolari (ritardi I/O fissi e predicibili) puoi pensare di usare le CPLD, negli altri casi penso che le FPGA siano equivalenti. Per iniziare a "giocarci" penso che sia piu' importante la semplicita' del sistema di sviluppo e la praticita' della evaluation board...

Ciao

Reply to
Davide

Chiarissimo! Quindi mi servono almeno 64 macrocelle solo per in "position counter" di ogni encoder.

Grazie 1000 per i links! ho scelto xilinx perchè mi piace il tool di sviluppo e la XC95144XL-10 da 144 macrocelle, che utilizzerò per gli esperimenti, costa abbastanza poco.

Grazie per le info! Ho trovato anche gli articoli che hai scritto su FE (complimenti per la chiarezza!) ed ho capito benissimo di cosa si tratta.

Oggi ho progettato e simulato la mia applicazione sulla XC95144XL e tutto sembra funzionare (almeno dal simulatore, ma credo di potermi fidare). A breve mi arriverà il chip e potrò giocarci un pò.. dal vivo! ;-)

Il progetto, nel complesso, mi utilizza 116 macrocelle. Me ne restano ancora tante.. ma quello che mi fa più piangere il cuore è che impegno

16 I/O su 100!!!!

Thanks!

Reply to
Andrea

Me ne sono accorto ;-)

Thanks!

Reply to
Andrea

"Davide" ha scritto nel messaggio news: snipped-for-privacy@y43g2000cwc.googlegroups.com... Hai visto questa che ho sviluppato?

formatting link

Pottente!! Ho visto il sito.. di dove sei?

Mi piacerebbe collaborare...

Reply to
Andrea

"Andrea" ha scritto nel messaggio news:44733b4d$0$36932$ snipped-for-privacy@reader3.news.tin.it...

cut

Ti ringrazio e replico con un suggerimento. Avrai notato che i pad di alimentazione nei package tipo PLCC o TQFP sono disposti a 'raggiera' sui lati del chip. Questo aiuta,ovviamente, a ridurre l'induttanza parassita dei collegamenti verso il chip interno, e contribuisce a limitare fenomeni di rumore e ground bounching, migliorando i margini di rumore. In una architettura modulare come una logica programmabile, puoi estendere il concetto (e le prestazioni) connettendo a massa tutti i pad inutilizzati, dove "connettere" a massa significa che la connessione è effettuata sia a livello di chip (sintesi) che sulla scheda definitiva. Come passo ulteriore, puoi immaginare di connettere a massa i due pin ai lati di ogni pin di segnale, se il routing ti permette di farlo. Anche se per i tuoi scopi non ci dovrebbero essere criticità particolari, questa è una tecnica in uso nelle FPGA veloci. Ehm... ovviamente il discorso non si applica ad una scheda di sviluppo.

Saluti

--
simone.bern
Mr. Heisemberg is not the only one who can affect a measurement by looking 
at it (Robert A. Pease)

zsimonez.zbernz@zliberoz.it (Rimuovere i caratteri di zorro per rispondere 
via mail)
Reply to
Simone Bern

Forse in assoluto il costo di una PLD a 32 celle e' inferiore ad una FPGA, ma il costo su taglie piu' "abituali" non penso sia inferiore, anzi. In fondo il costo dei circuiti integrati lo fa la diffusione e sicuramente le FPGA hanno una diffusione molto maggiore...

Ciao

Reply to
Davide

Sono di Prato, se vuoi collaborare sei il benvenuto! Ti interessa la board di sviluppo fpga o l'oscilloscopio?

Ciao

Reply to
Davide

Allora forse ho guardato i modelli sbagliati, ma una EPM3064ALC della Altera la pago pochi euri.

Mi ero interessato per giochicchiare con una FPGA, ma erano una cinquantina di dollari (sempre Altera, non ricordo il modello).

Boiler

Reply to
Boiler

Sicuramente costa meno, una EPM3064ALC costa 2 o 3$, mentre una fpga EP1C3 da 3000 logic element costa 10$. Ovviamente hai completamente ragione se fai produzione e devi costruire

100.000 pezzi di un circuitino con un registro a 16 bit e un po' di decodifiche: allora devi usare la 3064 e non sarebbe giustificato usare una fpga. Io partivo dall'ottica hobbystica di "cominciare a giocare" con i dispositivi programmabili e 3 o 10$ non mi sembravano una grossa differenza mentre le logiche che puoi integrare nei due dispositivi sono sostanzialmente differenti... Ciao
Reply to
Davide

Ah, beh... 10 $ sono un altro discorso ;-) Si potrebbe provare.

Per il momento però sono a posto con la CPLD (ci faccio piccole FSM). Inoltre al momento non ho il tempo di imparare roba nuova :-(

Boiler

Reply to
Boiler

Boiler ha scritto:

Totalmente... non esageriamo! ;-))

-- Per rispondermi via email sostituisci il risultato dell'operazione (in lettere) dall'indirizzo

Reply to
Fabio G.

Hai ragione, c'è del silicio in ambedue ;-PPPPPPPPPPPP

Boiler

Reply to
Boiler

Boiler ha scritto:

No vabbe', dai... non e' solo questo. Va bene, le FPGA hanno maggiori risorse di connessione, sono programmabili "sul campo", ecc..., ma rimane comunque il fatto, ad esempio, che con le FPGA puoi fare tutto quello che fai con le CPLD (ma non il contrario). Direi quindi che qualche analogia c'e'. Totalmente diverse definirei "resistenza" e "transistor".

Ciao!

-- Per rispondermi via email sostituisci il risultato dell'operazione (in lettere) dall'indirizzo

Reply to
Fabio G.

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.