FPGA Grundlagen : Lattice Diamond Schematic

Gast #5209935
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.
Gast #5210049
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.
Angehängte Dateien:
Gast #5210415
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.
Gast #5210441
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?
Gast #5210477
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.
#5210514
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.
#5210524
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.
Moderator (Firma: Titel) Persönliche Seite #5210540
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.
Gast #5210547
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.
#5210564
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...
#5210664
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.
Moderator (Firma: Titel) Persönliche Seite #5210686
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).
Gast #5210847
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.
Gast #5211173
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.
Angehängte Dateien:
Gast #5211661
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren