FPGA/CPLD Pin Mapping beliebig möglich?

Gast #3410091
Lesenswert?

Hallo Zusammen,

ich habe eine generelle Frage zum Pinmapping bei FPGA´s und CPLD. Ist es 
korrekt, dass intern in einem CPLD bzw FPGA die Pins beliebig 
zusammengeschaltet werden können? Ich rede von den normalen GPIOs, nicht 
von den dedizierten Pinnen wie zb CLK/RST/ etc. Oder ist dies abhängig 
von den Bänken und man kann nur die an ein und der selben Bank 
angeschlossenen Pins beliebig innerhalb dieser Bank mappen oder 
zusammenschalten?
Ich plane sowas wie ein universelles DevelopmentBoard mit FPGA/CPLD und 
µC, wo die Einzelkomponenten der Schaltung (µC etc) an einem CPLD/FPGA 
enden und man die Pins intern im CPLD/FPGA beliebig zusammenschalten 
kann. So könnte ich zB LEDs und Buttons für den CPLD und für den µC 
nutzen, quasi multiplexen.

Ich würde mich über jeden Tip freuen...
LG Andi
#3410140
Lesenswert?

Quatsch, man kann natürlich alle Pins mit allen verbinden, also was 
normale GPIOs sind. Und das geht auch quer über alle IO-Bänke hinweg. 
Wäre ja schlimm, wenn das nicht ginge. Nur ist das nicht immer optimal, 
weil dann die Durchlaufzeiten natürlich stark ansteigen können. Aber für 
so ein universelles Board spielt das sicher keine allzu große Rolle.
Bei richtigen Projekten wird man dann z.B. einen externen Speicher an 
nur eine Banl anschließen, und dann gehts auch nach der I/O Spannung, 
denn pro Bank kann man nur eine Spannung benutzen.
Gast #3410304
Lesenswert?

Herzlichen Dank für die erfreuliche Info.
Wie ist denn die Abhängigkeit der Durchlaufzeiten der Signale von der 
Anzahl der gerouteten Signale? Nano- bis wenige µs oder eher 
Millisekunden? Bin absoluter Neuling im CPLD und FPGA Bereich. Ich habe 
2 FPGAs auf einem DevBoard hier (Altera Cyclone und Xilinx Spartan 3). 
Mit einem CPLD habe ich schon ein wenig gespielt und nun soll eine 
eigenes DevBoard her.
Danke nochmal für eure Hilfe.
Gast #3410389
Lesenswert?

Pauschal nein, es gibt immer wieder Pins die aus der Reihe tanzen, Dual 
use pins, local clocking, input only, differntial pairs. Dann ist dass 
interne routing zu BRAMS etc. unterschiedlich gerade memorycontroller 
sind anspruchsvoll.

Am besten pining vor pcb anlegen und DRC drüber laufen lassen. Da gibt 
es inzwischen recht bunte clicky clacky programme z.b. xilinx pace.

MfG
Gast #3410461
Lesenswert?

Christian R. schrieb:
> Quatsch, man kann natürlich alle Pins mit allen verbinden

Nein, alles mit alles geht nicht; insbesonders kann man keine zwei Input 
pins miteinander verknüpern um wired OR oder dergleichen zu machen, da 
klopft schnell das synthesetool mit "multiple sources" auf die Finger.

Die "Switching Matrix für einen FPGA wie du sie beschreibst sollte im 
Prinzip gehen, wobei  es aber schon vorkommen kann das zwischen den 
leitungen eines Busses durch das PLD-Routing ein zeitversatz von einigen 
Nanosecs entsteht oder aud einem voreilenden bitclk ein nacheilendes 
wird :-(

MfG,
Moderator (Firma: Titel) Persönliche Seite #3410489
Lesenswert?

Leonard Lebewohl schrieb:
> Christian R. schrieb:
>> Quatsch, man kann natürlich alle Pins mit allen verbinden
> Nein, alles mit alles geht nicht;
Das hast du jetzt aber ein wenig aus dem Zusammenhang gerissen...  :-o
Der Satz ging weiter mit "was normale GPIOs sind". Und das geht 
natürlich. Interessant wird es dann bei Takteingängen und 
differentiellen Signalen, oder solchen, die spezielle Pegel brauchen...

Andi schrieb:
> Wie ist denn die Abhängigkeit der Durchlaufzeiten der Signale von der
> Anzahl der gerouteten Signale?
Da gibt es keine feststellbare Abhängigkeit. Wenn der Baustein voll ist, 
kann es bestenfalls sein, dass nicht mehr alle Signale geroutet werden 
können...
> Nano- bis wenige µs oder eher Millisekunden?
Die Laufzeiten im FPGA und auch in das und aus dem FPGA spielen sich im 
ein- bis zweistelligen ns Bereich ab.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren