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
Ja, man kann nur Pins innerhalb einer Bank miteinander verschalten. Das kann man sich quasi so vorstellen, als wenn du je Bank ein komplett isoliertes einzelnes FPGA im Chip hättest...
Danke für die schnelle Antwort... Und selbst im zb VHDL kann man nicht sagen, dass sich PinX aus BankX mit PinY aus BankY identisch verhalten soll? Also wenn zb PinX high ist, soll PinY auch high "gehen" ? Besten Dank nochmal
...ist das bei CPLDs identisch? Oder gilt das mit den Bänken nur für CPLDs? Mich interessiert brennend, ob man in VHDL nicht einfach per Gatter/Buffer beliebige Pins miteinander "verbinden" kann. 2 Signale und 2 Pins??? LG Andi
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.
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.
Jede Bank kann eine andere Versorgungsspannung (I/O Spannung) haben. Du kannst in deinem VHDL code jeden Pin in jeder Bank ansprechen. Wenn du die Pins einer Bank verwendest sind die Timing-mäßig näher zusammen, also weniger Zeitlicher unterschied beim Umschalten.
Gibt nen Timingreport wenn du dein VHDL Code übersetzt und implementierst. Wenn du keinen großen Blödsinn baust Laufzeit im FPGA deutlich unter 1us, eher XXns
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
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,
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.