mikrocontroller.net

Forum: FPGA, VHDL & Co. FPGA Grundlagen : Lattice Diamond Schematic


Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich experimentiere gerade ein wenig mit dem Schaltplan Editor von 
Lattice herum. Man brauche eine Weile, bis man weiß, wo man hin klicken 
muss.

Was ich nicht herausfinden kann: Es muss doch möglich sein, den Eingang 
eines Symbols mit einem konstanten Wert zu belegen. Weiß jemand, wie 
das geht?

Beitrag #5210008 wurde von einem Moderator gelöscht.
Autor: chris (Gast)
Datum:
Angehängte Dateien:

Bewertung
-1 lesenswert
nicht lesenswert
Ich habe mal einen Schaltplan aus einem VHDL-File mit "goto RTL 
definition" erzeugt. Dort sieht man am STBY-Eingang die Konstante 1'b0.
Als erstes habe ich mal versucht, dem Eingangsnetzt in einem eigenen 
Schaltplan den gleichen Namen zu geben, in der Hoffnung, dass das dann 
die gewünschte Konstante ergibt. Resultat: funktioniert so nicht.

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Diamond Schematic Editor scheint mir extrem unausgereift zu sein.
Wenn ich einen Ausgangspin "male" taucht der manchmal in der Pinliste 
auf und manchmal nicht.

Wenn man aus einem eigenen VHDL-File ein Symbol erzeugen will muss man 
das erst zum Toplevel machen

File List => imp1 => set Top Level Unit => dann auf das Text Feld 
klicken

Dann in "Process" generieren und
dann

Hierarchie => rechte Maustaste "generate schematic symbol"

und dann kann man es im Schaltplan als Symbol verwenden.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chris schrieb:
> Der Diamond Schematic Editor scheint mir extrem unausgereift zu sein.
Für diesen Editor gilt dann eben auch das im 
Beitrag "Re: kruder Fehler bei FPGA-Programmierung (ISE WEBpack-Schematic)" 
Geschriebene.
Oder andersrum: warum proprietäre Zeichenprogramme, wenn man VHDL kann?

: Bearbeitet durch Moderator
Autor: chris (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Ich sage es mal so: man kann bestimmte Dinge graphisch besser 
darstellen.

Wenn das nicht so wäre, gäbe es keine Schaltpläne und man müsste den 
Elektrotechnikern empfehlen, endlich auf die Textform umzusteigen. Und 
ich habe einen bestimmten Grund, warum ich auch die graphische 
Darstellung brauche.

Aber ich muss sagen:

Dieser graphische Editor ist bis jetzt das Schlechteste, was mir in der 
Hinsicht untergekommen ist. Er ist extrem umständlich zu bedienen und 
hat scheinbar einen Haufen Fehler, die zu unerklärlichem Verhalten 
führen.
Für mich ist es da kein Wunder, dass die Leute das Ding in die Ecke 
werfen und diese Art der Programmierung für ungeeignet halten.

Weiß jemand, ob die graphischen Editoren bei Altera oder Xilinx besser 
sind?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chris schrieb:
> Weiß jemand, ob die graphischen Editoren bei Altera oder Xilinx besser
> sind?
Die Frage ist, ob sie so gut sind, dass man sie verwenden kann. Einen 
Teil der Antwort findest du im verlinkten Thread.

Autor: Klakx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der von Xilinx ist schon ziemlich gut und der von Altera sicher auch. 
Das liegt wohl daran, dass man dort per GUI gerne die Busse und SoC-IPs 
zusammenknotet. Das ist in VHDL ziemlich lästig, wenn die records für 
die Komponenten nicht vorliegen.

Trotzdem würde ich in allen anderen Fällen VHDL bevorzugen.

Autor: Markus F. (mfro)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Ich würde in allen Fällen VHDL bevorzugen.

Lothar M. schrieb:
> Die Frage ist, ob sie so gut sind, dass man sie verwenden kann. Einen
> Teil der Antwort findest du im verlinkten Thread.

Was dort fehlt, ist der Hinweis auf die nicht vorhandene Fähigkeit, 
sinnvoll mit einer Versionsverwaltung (VCS) zusammenzuarbeiten.

Selbst wenn mal alle anderen Macken ausgemerzt sein sollten (sehr 
unwahrscheinlich) - das ist nicht hinzubekommen. Und für mich eine 
Grundvoraussetzung für irgendeine Art von vernünftiger 
Softwareentwicklung.

Autor: Martin S. (strubi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

einigermassen brauchbar und wiederverwertbar (!) ist der kactus2-Ansatz. 
Aber um von da wieder zur VHDL-Netzliste für sein Lieblingstool zu 
gelangen, ist etwas Aufwand nötig.
Ich bin mal noch den Weg gegangen: VHDL->XML->Kicad schematic symbol. 
Aber da muss man sich mit XSLT gehörig beschäftigen, das ist eher 'fun 
stuff' als früh amortisierend.
Der XSLT-Prozessor macht aus dem 'XHDL' eine Grafik und einen DRC, siehe 
auch hier: https://section5.ch/dclib/xhdl/. Die einzelnen Module muss 
man dann manuell im Schaltplaneditor verkabeln.
Auch hier ist wieder etwas Aufwand für Netzliste->HDL nötig.

Von allen rein grafischen Ansätzen kann man aber eigentlich in Bezug auf 
Nachhaltigkeit&Teamwork nur abraten, sofern nicht irgend ein 
'diff'-bares Format zugrunde liegt, was sich vernünftig per 
Revisionskontrolle verwalten lässt.

Autor: fritz (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
FPGAs per Schematics Editor programmieren -> beliebter Anfängerfehler!

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Markus F. schrieb:
> Was dort fehlt, ist der Hinweis auf die nicht vorhandene Fähigkeit,
> sinnvoll mit einer Versionsverwaltung (VCS) zusammenzuarbeiten.
Ich hoffe, das ist jedem klar.

> sofern nicht irgend ein 'diff'-bares Format zugrunde liegt
Und natürlich fehlt auch der Hinweis, dass (auch wenn das 
"Schaltplan-Format" eine les- und versionierbare Textdatei wäre) sich 
der interne Aufbau eines Schaltplans mit jeder Version des 
Zeichenprogramms unangekündigt ändern oder auch komplett umgestellt 
werden kann.

Und spätestens, wenn man ein Design auf zwei Plattformen laufen hat, ist 
mit "Vergleichen von Schaltplänen" absolut Schluss.

: Bearbeitet durch Moderator
Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klakx
>Das liegt wohl daran, dass man dort per GUI gerne die Busse und SoC-IPs
>zusammenknotet.
Gerade mal kurz probiert:
Der Schaltplaneditor in Quartus von Altera scheint tatsächlich deutlich 
ausgereifter als der von Lattice Diamond.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chris schrieb:
> Der Schaltplaneditor in Quartus von Altera scheint tatsächlich deutlich
> ausgereifter als der von Lattice Diamond.
Ja, dann musst du jetzt einfach die Lattice-Pläne mit dem Altera-Tool 
zeichnen...  ;-)

Autor: Martin S. (strubi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> Und natürlich fehlt auch der Hinweis, dass (auch wenn das
> "Schaltplan-Format" eine les- und versionierbare Textdatei wäre) sich
> der interne Aufbau eines Schaltplans mit jeder Version des
> Zeichenprogramms unangekündigt ändern oder auch komplett umgestellt
> werden kann.

Oder das Programm die Entities bei jedem Abspeichern beliebig 
umsortiert...dann ist ein diff völlig unbrauchbar, wie bei 
EDIF-Netzlisten.

>
> Und spätestens, wenn man ein Design auf zwei Plattformen laufen hat, ist
> mit "Vergleichen von Schaltplänen" absolut Schluss.

Naja, das könnte man mit etwas Disziplin noch hinkriegen.
Z.B. ein generisches PLL-Modul basteln, was in den Innereien die 
arch-spezifischen Sachen verarztet.
Und fürs Top-Level-Design macht der Revisions-Server ein diff-pdf.

Es gäbe schon eine Rechtfertigung für grafische Eingabe, wenn:

- Das Quellformat eine sauber sortierte HDL ist
- man sich ausschliesslich auf standardisierte 
Interfaces/pipelines/Busse im Toplevel oder einem Framework beschränkt

Bisher habe ich sowas bei den $-$$ Vendor-Tools nicht wahrgenommen. Qsys 
und Derivate machen teils eine heillose Sauerei...

Autor: Markus F. (mfro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chris schrieb:
> Gerade mal kurz probiert:
> Der Schaltplaneditor in Quartus von Altera scheint tatsächlich deutlich
> ausgereifter als der von Lattice Diamond.

Letztendlich ist aber auch der weit entfernt von perfekt.

Schau' mal in das .bdf-Format rein (ja, das ist ASCII).

Ich betrachte schon das Format als Murks.

Nach meiner Interprätation steht da noch nicht mal drin, dass "A" mit 
"B" verbunden ist, sondern die Information ist in der Tatsache 
versteckt, dass beide Signale an der selben Bildschirmkoordinate enden. 
Das bedeutet 1., dass sich beim Verschieben eines Elementes alles 
mögliche ändert, obwohl es noch dieselbe Schaltung ist, und 2., dass je 
nach Zoomstufe ein simples "Verzittern" mit der Maus plötzlich Mist 
produziert, der noch nicht mal gleich sichtbar wird.

Vielleicht ganz nett, um eben schnell was auszuprobieren (aber das geht 
mit VHDL genausoschnell, wenn man einigermassen tippen kann), aber sonst 
zu nix zu gebrauchen.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Einzige, was ich anfangs tatsächlich per Schematic gemacht habe, war 
die Verdrahtung der Module. Daraus wurde dann VHDL erzeugt und das dann 
weitergepflegt.
Irgendwann war mir das Gehampel mit dem Schaltplaneditor aber zu blöd 
und ich bin komplett auf direkten Quelltext umgestiegen. Und jetzt sind 
sogar die Verdrahtungslisten leserlich und übersichtlich (weil nicht 
jedes einzelne Signal eines 32 Bit Vektor mitsamt Index in einer eigenen 
Zeile aufgeführt wird).

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Autor: Markus F. (mfro)
>Nach meiner Interprätation steht da noch nicht mal drin, dass "A" mit
>"B" verbunden ist, sondern die Information ist in der Tatsache
>versteckt, dass beide Signale an der selben Bildschirmkoordinate enden.

Genau auf die gleiche Weise speichert LtSpice seine Schaltpläne. Über 
die Einfachheit des Editors dort kann man sich vielleicht auch streiten, 
aber es funktioniert um Welten besser als bei Diamond.

Lothar Miller (lkmiller) (Moderator) Benutzerseite
>Das Einzige, was ich anfangs tatsächlich per Schematic gemacht habe, war
>die Verdrahtung der Module. Daraus wurde dann VHDL erzeugt und das dann
>weitergepflegt.

Wenn man 10 Elemente in einem Top-Level hat, scheint mir das bis jetzt 
der schnellste Weg. Soll man sonst jedesmal die Portlisten kopieren und 
in "components" umwandeln, dann noch die port-maps erstellen und beim 
Einzelverkabeln keine Fehler machen? Gibt es da irgend einen schnellen 
und einfachen Weg mit Textfiles?

Das wäre sicherlich am einfachsten mit einem guten graphischen Editor.

Autor: Markus F. (mfro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chris schrieb:
> Soll man sonst jedesmal die Portlisten kopieren und
> in "components" umwandeln,

Suche: "{entity|direct} instantiation".

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

Bewertung
0 lesenswert
nicht lesenswert
Lustig .. beim Altera-Quartus-Schematic-Editor gibt es die ganze 74xx 
Reihe.
Da kann man schön Retrocomputing betreiben.
Ich habe im Anhang mal einen kleines Zählerbeispiel für's 
DE-Nano-CycloneIV ( mühselig ) gemalt und es funktioniert.
Leider sind die Wire-Namen immer etwas abgeschnitten und ich habe nicht 
raus gekriegt, wie man den Namensbereich etwas größer ziehen kann.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chris schrieb:
> Da kann man schön Retrocomputing betreiben.
Ja, so mit lokalen getakteten Takten und ebensolchen lokalen asynchronen 
kombinatorischen Resets. So wie man das damals halt auch hingeklatscht 
hat.
Allerdings ist ein FPGA da die vollkommen falsche Zielarchitektur....

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das war aber damals auch der Hardwareersparnis geschuldet. Wo heute im 
FPGA leicht mal ein FlipFlop für die Synchronisation dazwischen 
geschaltet wird, hat man damals versucht zu sparen.
vom Amiga128 Entwickler:
https://www.youtube.com/watch?v=-Zpv6u5vCJ4
( Minute 51 )

Autor: Sigi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chris schrieb:
> Lustig .. beim Altera-Quartus-Schematic-Editor gibt es die ganze 74xx
> Reihe.
> Da kann man schön Retrocomputing betreiben.

Da wird aber nur die Logik, nicht aber das Timing
umgesetzt. Bei vielen Retrogeschichten wird aber
gerade mit dem Timing gespielt, d.h. ohne funktioniert
deine Schaltung total falsch.

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.