mikrocontroller.net

Forum: FPGA, VHDL & Co. CPLD I2C Makrozellen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Dannick M. (nickdann27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Für mein Projekt möchte ich ein 256-macrocell CoolRunner-II CPLD 
(XC2C256-TQ144) von Xilinx einsetzen, was mit einem FPGA-Board durch 
eine I2C schnittstelle verbunden wird.
Ich habe aber noch eine offene Frage und zwar:

- wie genau kann ich wissen wie viel Makrozellen in dem CPLD für eine 
I2C-Schnittstelle benötigt werden?

Zur Info: Auf dem CPLD werde ich 5 Demultiplexer und einige Nand Gatter 
implementieren um 5 FIFO-Puffern parallel mit dem FPGA anzusteuern.

Warum ich das so mache?
Auf dem FPGA von Typ CORA Z7-10, was ich verwende sind nicht genug Pins 
verfügbar.

Danke!
Viele Grüße

: Verschoben durch Moderator
Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dannick M. schrieb:
> - wie genau kann ich wissen wie viel Makrozellen in dem CPLD für eine
> I2C-Schnittstelle benötigt werden?
Mach das Design fertig und gib es der Toolchain. Die sagt dann, was 
nötig ist...

> ein 256-macrocell CoolRunner-II CPLD (XC2C256-TQ144) von Xilinx
> einsetzen, was mit einem FPGA-Board durch eine I2C schnittstelle
> verbunden wird.
Mein Tipp an dieser Stelle: nimm SPI. Dessen gekoppelte Schieberegister 
sind wesentlich weniger komplex. Da kannst du mit ein wenig Geschick 
sogar sagen: 1 Makrozelle pro 1 Bit Wortbreite.

> Zur Info: Auf dem CPLD werde ich 5 Demultiplexer und einige Nand Gatter
> implementieren um 5 FIFO-Puffern parallel mit dem FPGA anzusteuern.
Diese Beschreibung macht die eigentliche Aufgabenstellung nicht 
wesentlich klarer... ;-)

> Warum ich das so mache?
> Auf dem FPGA von Typ CORA Z7-10, was ich verwende sind nicht genug Pins
> verfügbar.
Warum nimmst du dann nicht einfach ein FPGA, das genügend Pins hat? Denn 
ein CPLD unterschiedet sich von jedem FPGA strukturell wesentlich mehr 
als ein anderes FPGA (eines x-beliebigen Herstellers) von deinem FPGA.

Autor: Dannick M. (nickdann27)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort!

Also ich möchte eine Platine bauen, die aus 5 Bildsensoren (OV7670)+ 5 
FIFO-Puffer (Al422b) bestehen wird. Die kommen später auf dem FPGA-Board 
in Form eines Schields. Der Cora z7-10 eignet sich gut dafür, weil er 
eine Arduino-Struktur hat und damit lässt sich einfacher eine Platine 
bauen, die genau die Gleiche Deimensionen hat.

> Warum nimmst du dann nicht einfach ein FPGA, das genügend Pins hat?

Mit einem anderen FPGA (ZB: ZYBO z7) hätte das mit den Pins nicht mehr 
gut gepasst.

Ich werde mich dann mit dem Thema SPI CPLD und FPGA auseinandersetzen.

Danke!

Autor: Klakx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dannick M. schrieb:
> Mit einem anderen FPGA (ZB: ZYBO z7) hätte das mit den Pins nicht mehr
> gut gepasst.

Ein ZYBO z7 ist kein FPGA. Sondern ein Evalboard mit einem hochkomplexen 
FPGA/SoC.

Schau mal nach sowas: LCMXO2-640HC-4TG100C oder irgendein anderer 
MachXO2 oder MachXO3

Autor: FPGA zum Spass (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, ein weit verbreitetes Problem heutzutage.
Versuch mal ein vernünftiges, aktuelles Board zu bekommen im 
Einstiegsbereich das NICHT gleich einen SOC hat.

Dannick M. schrieb:
> Zur Info: Auf dem CPLD werde ich 5 Demultiplexer und einige Nand Gatter
> implementieren um 5 FIFO-Puffern parallel mit dem FPGA anzusteuern.

Sorry da komme ich nicht mit. Bekommen alle 5 das gleiche Signal?

Egal wie, deine Framebuffer Fifos brauchen 8Bit bei bis zu 50Mhz. Das 
ist doch nichts mehr mit I2C und allgemein schon sehr sportlich ganz 
ohne LVDS usw.
Das musst du ja schon parallel übertragen, am besten mit synchronem 
Takt.

Von der Größe sollte der 256er CPLD reichen. Bei der Datenrate hätte ich 
mit diesem Konstrukt aber keinen Spaß.

Autor: Tobias B. (Firma: www.elpra.de) (ttobsen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FPGA zum Spass schrieb im Beitrag #5937267:
> Tja, ein weit verbreitetes Problem heutzutage.
> Versuch mal ein vernünftiges, aktuelles Board zu bekommen im
> Einstiegsbereich das NICHT gleich einen SOC hat.

Also da gibt es doch massig, wahrscheinlich sogar mehr als mit SoC. Mein 
Favorit fuer Einsteiger:

http://www.latticesemi.com/en/Products/DevelopmentBoardsAndKits/MachXO2BreakoutBoard

Kostet fast nichts, hat kein Geschnoergel drauf (ausser einen FTDI damit 
man keinen extra Programmer braucht) und jeder Pin ist einfach 
zugaenglich.

Autor: FPGA zum Spass (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau sowas halte ich für völlig unbrauchbar für FPGA-Anfänger.
Warum: eben KEIN "Geschnörgel" drauf.

Ein FPGA benutzt aber gerne mal Interfaces im zwei bis dreistelligen MHz 
Bereich. Was will ich da mit NUR Pins?

Das heißt außerdem, dann man alles selbst dran basteln muss.
Sehr hilfreich, wenn man dann gleich 2 Fehlerquellen hat: das eigene 
FPGA Design was man gerade erst lernt UND den Drahtverhau.


Warum gerade bei diesem beim Hobby immer alle auf den letzten Euro 
kucken habe ich eh nie verstanden. Scheint hier aber üblich zu sein. Da 
quält man sich mit 30€ FPGA Boards oder 1€ µC rum.

Nicht falsch verstehen, alles kann seinen Reiz haben, nur gemacht wird 
es ja meist nicht weil man Spaß hat mit den beschränkten Möglichkeiten 
auszukommen.


Hier in dem Fall will sich Dannick aber sogar mit einem 100€+ Board 
quälen, was dann nichtmal die Anforderungen erfüllt...

Autor: Christophz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde ja generell kein Design mehr mit einem CoolRunner-II mehr 
beginnen. Obwohl Xilinx mir wiedersprechen möchte ;-)

"Xilinx has extended the life span commitment for these devices, now 
offering supply beyond 2024 for customers starting new designs."
https://www.xilinx.com/products/silicon-devices/cpld/coolrunner-ii.html

Die externen FIFO Chips stören mich auch ein wenig, einfach weil ich das 
lieber in den FPGA/externes DRAM am FPGA/SoC packe, wenn die Performance 
das zulässt :-)
Jedes FIFO hat 3 Mbit. 1:1 passt das also nicht in den Zynq 7010 wenn 
das FIFO wirklich so tief sein muss.

Die Anzahl Pins am FPGA wären wohl auch weniger ein Problem wenn 
modernere Kameras mit seriellem MIPI Interface angeschlossen werden (so 
wie z. B. beim RasPi). Leider ist die Interface Spezifikation nicht 
gratis und Xilinx will auch Geld für den IP Core sehen:
https://www.xilinx.com/products/intellectual-property/ef-di-mipi-csi-rx.html

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.