mikrocontroller.net

Forum: FPGA, VHDL & Co. Fitterproblem


Autor: Ralph H. (guru)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habt Ihr nen Tipp für mich, wie ich den Fitter dazubewegen kann, die 
interne Verteilung der Programmierung im CPLD XC9572XL anders zu 
realisieren?
Konkret hab ich das Problem, das ich einen VHDL Code (mit Eurer Hilfe) 
gebastelt hab, der auch funktioniert. Dann hab ich die vom Fitter 
vorgegebenen Pins auch so verwendet und ne Platine gemacht, die funzt 
prima !
Nun wollte ich noch einige Dinge im Design ändern und bekomme nach der 
Änderung die Meldung "Mapping a total of 72 equations into 4 function 
blocks.........................ERROR:Cpld:892"
Gut, wenn ich die Pinzuweisung neumachen lasse, dann bekommt die 
Software das hin. Ich mag aber die Platine nicht mehr ändern. Gibt es da 
ne Chance noch Erfolg zu haben ?

Vielen Dank für jeden kleinen Hinweis sagt Ralph

Autor: Klaus Falser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
72 Equations heisst, das das CPLD gestopft voll ist, da ist es 
schwierig, etwas zu tun.
Du kannst entweder Funktionen raus nehmen, oder Dir vielleicht einen 
XC95144 mit gleichem Gehäuse besorgen.
Schau Dir die Gleichungen im Report an, vielleicht siehst Du etwas, das 
viel Logik benötigt und einfacher geschrieben werden kann, z.B. 
Endbedingungen von Zählern oder ähnliches. Im Allgemeinen ist es bei 
CPLDs ungünstig z.B. auf größer oder kleiner zu testen, besser ist auf 
Gleichheit.

Autor: Ralph H. (guru)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm.. naja mal sehen.

Nützt es eigentlich etwas, wenn ich im VHDL Code etwas umsortiere?
Also die umfangreichen Prozesse zuerst und die einfachen Signal ggf. 
weiter hinten ?

Autor: T. M. (xgcfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Reihenfolge ist egal. Eine Möglichkeit ist, wie bereits 
vorgeschlagen, die in VHDL beschriebene Logik besser an die Ressourcen 
des CPLDs anzupassen.

Autor: Ralph H. (guru)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm.. ich kann damit nicht viel anfangen. Hab schon den Code mal 
testweise vereinfacht..aber festgesellt, das die intern erzeugten 
Veknüpfungen doch wieder gleich sind.
Konkret die Frage... Wie passe ich die Logik an die Ressourcen des 
XC9572XL an ?

Autor: Klaus Falser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralph H. schrieb:
> Konkret die Frage... Wie passe ich die Logik an die Ressourcen des
> XC9572XL an ?

Ein paar Tipps habe ich Dir ja weiter oben gegeben, ansonsten müsstest 
Du deine Logik vielleicht einmal herzeigen.

Autor: Ralph H. (guru)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Klaus Falser schrieb:
> Ralph H. schrieb:
>> Konkret die Frage... Wie passe ich die Logik an die Ressourcen des
>> XC9572XL an ?
OK ich kann nur den XC9572 nehmen,. es ist der einzige "Große" im PLC84 
Gehäuse, oder hab ich was übersehen?
Hier ist der Code.. allerdings jetzt grade wild rumprobiert...

Autor: Ralph H. (guru)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus Falser schrieb:
> Ein paar Tipps habe ich Dir ja weiter oben gegeben, ansonsten müsstest
> Du deine Logik vielleicht einmal herzeigen.
Bringt es etwas, wenn ich statt umfangreicher OR Verknüpfungen einfach 
erstmal mehr Zwischenergebnisse in Form von Signalen erzeuge und dann 
diese Signale erst zum Schluß verknüpfe ?
Ich denke mal NEIN, es wird nichts bringen, richtig ?

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralph H. schrieb:
> Bringt es etwas, wenn ich statt umfangreicher OR Verknüpfungen einfach
> erstmal mehr Zwischenergebnisse in Form von Signalen erzeuge und dann
> diese Signale erst zum Schluß verknüpfe ?

Jain.
Dazu musst Du einerseits den Fitter dazu bringen, die Zwischensignale 
nicht aufzulösen, sondern zu behalten -> Stichword attribute oder 
constraint "KEEP".
Andererseits funktionieren CPLD nicht so wie FPGAs, die Und-Verknüpfung 
in den Produkttermen können alle Eingangssignale des Functionblocks ohne 
Nachteile verarbeiten. Problematisch ist es nur, wenn für die 
Gleichungen in den Macrozellen des Functionblock zu viele verschiedene 
Signale benötigen.
Aber Du solltest Dir den Fitter Report anchauen, dort die Gleichungen 
suchen, die groß und kompliziert sind, und diese eventuell vereinfachen.
Man kann mit collapsing PTERM Limit und collapsing input limit spielen.

Außerdem sollte es deb XC95108 im PLC84 gehäuse geben, aber aus den 
Posts ist noch nicht ganz klar ob Du nun die 5V XC9500 oder die XC9500XL 
Familie verwendest.

Autor: Ralph H. (guru)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich setz bisher den XC9572XL also die 5V Variante ein, hab aber das 
ganze Projekt auch schon erfolgreich mit dem XC95108 kompiliert. Da ich 
den XC9572 aber da hab, wollte ich nicht die teurere Variante (19€ grrr) 
wählen.
Außerdem sind diese Probleme hier für mich auch ein gutes Training :-) 
und ich lerne viel dabei, auch wenn ich NOCH nicht immer alle Eure 
Abhandlungen verstehe :D

Danke für all die Unterstützung. Ich hoffe ich kann auch mal was zurück 
geben. Gruß Ralph

PS: Nicht das anfangen wird belohnt...sondern das DURCHHALTEN!

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralph H. schrieb:
> XC9572XL also die 5V

Der XC9500XL ist die 3.3V Variante!
Die Eingänge sind zwar 5 V kompatibel, d.h. die Eingänge halten 5V aus 
ohne kaputt zu werden, aber Versorgung und I/O Spannung sind 3,3V.

Autor: Ralph H. (guru)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, hab natürlich nur die 5V Variante. War ein doofer Schreibfehler.

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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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