mikrocontroller.net

Forum: FPGA, VHDL & Co. Erster FPGA


Autor: Andreas Sathle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe mir zum Spass einen kleinen Test-FPGA gebastelt.

Es macht zum größten teil das was ich will und zwar:

1.Hallo Text ausgeben.
2.Nach dem Reset wird eine Zufallszeit abgewartet und dann ein signal
auf ein Display ausgegeben.
3.Drückt der User eine Taste wir die differenz zwischen der Zeit wo der
Siganl ausgegeben wurde und der Zeit wo der User die Taste betätigt hat
auf dem Display ausgegebn.

Allerdings bekomme ich bei der Synthese ca. 200 Warnungen.

Warning: Reduced register ... with stuck ... port to stuck value GND

ca 30 von denen.

Warning: Synthesized away the following LCELL buffer node(s):

10 von denen.

Die meisten sind aber von folgender art:

Warning: Timing Analysis found one or more latches implemented as
combinational loops
 Warning: Node "..." is a latch


Habe die Hilfe zur allen diesen Fehlermeldungen angeschaut....komme
aber trotzdem nicht weiter.

Kann mir bitte jemand erklären was ich bei der programierung falsch
gemacht haben und auf was ich genau achten muss um solche fehler in der
zukunft zu vermeiden?

Zum anschauen habe noch die VHDL-Files angehängt.

Grüße
Andreas

Autor: Andreas Sathle (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier sind die Files.

Autor: Sven Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin...

Dein Design ist höchstgradig asynchron. Latches werden in
amerikanischen Designs gerne verwendet, produzieren aber gerne Ärger an
Stellen an denen man es garnicht gebrauchen kann. Ausserdem sieht es
nicht so aus als hättest due die gezielt gesetzt.

Die Signale müßten namentlich aufgelistet werden und bei dir dürften
das fast alle sein. Versuch mal dein Design synchron zu machen, dann
verschwinden die schonmal.

Die Register werden niemals mit Werten belegt und die Syntheselogik
fixiert sie auf logisch null/gnd. Damit fallem dann evtl. komplette
"LCELL" raus. Welcher FPGA ist das überhaupt, Altera?

--
 Sven Johannes

Autor: Andreas Sathle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sven,

Nein, die Latches habe ich nicht ansichtig gesetzt...die sind während
der Programmierung selbst entstanden. Ehrlich gesagt ich weis nicht
einmal was ein Latch ist und wie man den beseitigt.

Wie mache ich mein Design synchron? Was muss ich dabei beachten? Kannst
du mir bitte ein Beispiel im Code zeigen?

Altera Cyclone EP1C12F324C8 auf dem LiveDesign Board von Altium.

Grüße und Dank
Andreas

Autor: Jochen Pernsteiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Latches werden in amerikanischen Designs gerne verwendet"

Aha. Dass das etwas speziell amerikanisches ist, ist mir neu.
Soweit mir bekannt ist, machen das vor allem ASIC-Designer.

Zu diesem Thema ist dieses Dokument hier sehr interessant, vor allem
Kapitel 2.1.1 (Synchronous vs. Asynchronous Design Style):

www.xilinx.com/ipcenter/designreuse/docs/Xilinx_Design_Reuse_Methodology 
.pdf

Autor: Jochen Pernsteiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Nein, die Latches habe ich nicht ansichtig gesetzt...die sind während
>der Programmierung selbst entstanden. Ehrlich gesagt ich weis nicht
>einmal was ein Latch ist und wie man den beseitigt.


Schau dir mal die Seite an und lade Dir Kapitel 5 und 6 runter:

http://www.altera.com/literature/lit-qts.jsp

Autor: TheMason (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
@andreas :

hab hier mal ein beispiel für eine synchrone display-ansteuerung. (sind
allerdings nur 4 7 segment anzeigen, sollte sich aber erweitern lassen).
Weiterhin ist eine kleine state-machine drin. diese sollte man bei dem
was du vor hast nach möglichkeit verwenden, weil dadurch synchronität
gewährleistet wird.
das ganze ist ein design für eine schaltung mit der man ein 256k ram
auslesen und beschreiben kann (zumindest die ersten 256 byte)
es funktioniert allerdings noch nicht ganz (obwohl ich den fehler schon
gefunden habe, hatte aber nur die alten sourcen da)
ich hab das für mein xilinx spartan 3 board gemacht.
sollte sich aber auf jeden fpga braten lassen.
ich denke mit den beispielen hast du evtl. einen kleinen einstieg.
allerdings ist es nicht besonders gut dokumentiert. aber vielleicht
hilfts dir ja.

gruß
rene

Autor: Zennehoy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Latches werden in amerikanischen Designs gerne verwendet"

Dem muss ich wiedersprechen: sie werden vermieden wie die Pest.
Zumindest war das bei der Firma an der ich vor ein paar Jahren ein
Industriepraktikum gemacht habe der Fall.
Auch an den Unis wird einem strengstens eingepeitscht, dass Latches
verboten sind...
Wuerde mich interessieren, wo das geruecht her kommt!
Zen

Autor: Andreas Sathle (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Erstmals Danke für alle Tipps und Vorschläge.

Habe geschafft alle Latches wegzukriegen. Am alten Code wollte ich
nichts großartig verändern da es momentan so funktioniert wie ich es
mir gedacht habe.

Habe noch zusätzlich ein externes Display angeschafft. Im unterem Teil
von Programm.VHDL ist seine Initialisierung und ausgab von "HALL".
Fürs "HALLO WORLD" hat mir heute die Zeit leider nicht gereicht.

Schaut euch das mal an. Habt ihr so was mit der "synchrone" und
"state-machine" gedacht?

Für weitere Vorschläge und Tipps bin ich immer offen und dankbar ;)

Grüße und schönes Wochenende
Andreas


PS: Ich weis das ich noch RAM, Buffer etc einbauen muss....hatte aber
bis jetzt noch keine Zeit um mich damit auseinander zu setzen.

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.