Forum: FPGA, VHDL & Co. CPLD/FPGA Pins in einem Koordinatensystem anordnen


von Florian S. (Gast)


Lesenswert?

Hallo Forum,

ich habe folgendes Problem:
Ich möchte mit einem CPLD oder einem FPGA ein Kontaktfeld (endgültige 
Größe 10x15 Kontakte.. zu Testzwecken vorerst 5x7 Kontakte) ansteuern. 
Jeder dieser Kontakte liegt direkt an einem Pin des Chips. Ich möchte 
auf diesem Feld unterschiedlich große, viereckige, vierpolige Stecker 
anschließen die alle I2C-Schnittstellen bilden.
Wenn der erste Stecker gesteckt wird, liegt also an einem Pin ein 
High-Pegel und an einem ein Low-Pegel (Vcc bzw. GND der 
I2C-Schnittstelle). Ausgehend davon soll der FPGA selbstständig den 
Data- und Clock-Pin lokalisieren.
Dafür möchte ich allen Pins eine x- und eine y-Koordinate zuordnen damit 
der FPGA diese Koordinaten vergleichen kann und dann die Koordinaten des 
Data- und des Clock-Pins "berechnet".
Ist es möglich jedem Pin einem Platz in diesem "virtuellen" 
Koordinatensystem zuzuordnen? Und wenn ja, wie (VHDL, Verilog,...)?

vielen Dank für jede Hilfe :)

LG Flo

von Duke Scarring (Gast)


Lesenswert?

Florian Schäffler schrieb:
> Ist es möglich jedem Pin einem Platz in diesem "virtuellen"
> Koordinatensystem zuzuordnen?
Klar. Du kannst Dir einfach ein zweidimensionales Array anlegen:
http://www.lothar-miller.de/s9y/archives/39-Mehrdimensionale-Arrays.html

Duke

von Siemensianer (Gast)


Lesenswert?

Ich bin nicht sicher, ob das das ist, was der TE sucht. Ich hätte da 
jetzt was anderes drunter verstanden ,,,

von Florian S. (Gast)


Lesenswert?

Hallo,

erst mal danke für die Antwort, aber es ist leider wirklich nicht so 
richtig das was ich gesucht habe.
Es geht wie gesagt darum, dass ich jedem Pin eine x- und eine 
y-Koordinate zuordne.

von Guest (Gast)


Lesenswert?

Ja das sollte möglich sein. Und jetzt?

von Gustl B. (-gb-)


Lesenswert?

Richtig, 2D Array und dann jedem Pin einen Array-Eintrag zuordnen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Florian Schäffler schrieb:
> Ausgehend davon soll der FPGA selbstständig den Data- und Clock-Pin
> lokalisieren.
Und dann WAS damit machen?

Sollen dann alle gesteckten I2C Teilnehmer parallel geschaltet werden? 
Ich stelle mir das ohne zusätzliche Hardware sehr spannend vor, weil es 
schon nicht einfach ist, nur mal zwei I2C Komponenten an definierten 
FPGA Pins miteinander zu verbinden. Und weil es keinen Tristate Bus in 
einem FPGA gibt müssten alle diese Verbindungen mit ein paar 
Riesenmultiplexern erledigt werden.

Was allerdings recht einfach ginge, wären zwei CMOS Schalterebenen mit 
jeweils 150 Schaltern (SDA und SCL), die vom FPGA angesteuert werden.
Allerdings ist leicht erkennbar:
der Aufwand ist immens...

: Bearbeitet durch Moderator
von Florian S. (Gast)


Lesenswert?

Die I2C-Teilnehmer kommunizieren nicht untereinander, das Interface wird 
nur beim ersten anstecken genutzt um ein EEPROM auszulesen auf dem 
jeweils Pinbelegung, Funktion, usw. der angestecken Baugruppen 
gespeichert ist.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Florian Schäffler schrieb:
> das Interface wird nur beim ersten anstecken genutzt um ein EEPROM
> auszulesen
Und das zugehörige I2C Interface ist auf dem FPGA implementiert?

Dann ginge das mit 2 Stück 150-zu-1 Multiplexern (Eingangsrichtung) und 
2 Stück 1-aus-150-Decodern (zum Schalten der Ausgangstreiber) ...

von Duke Scarring (Gast)


Lesenswert?

Florian Schäffler schrieb:
> Die I2C-Teilnehmer kommunizieren nicht untereinander, das Interface wird
> nur beim ersten anstecken genutzt um ein EEPROM auszulesen auf dem
> jeweils Pinbelegung, Funktion, usw. der angestecken Baugruppen
> gespeichert ist.
Wenn ich Dich jetzt richtig verstanden habe, willst Du die Pinzuordnung 
im FPGA dynamisch (wenn auch nur beim Start) gestalten.
Ja, das geht. Ob die Tabelle für den/die Multiplexer eindimensional oder 
zweidimensional ist, spielt dabei eine untergeordnete Rolle.

Duke

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
Noch kein Account? Hier anmelden.