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.
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.
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.
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
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?
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.
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.
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.
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.
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
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.
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... ;-)
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...
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.
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: 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.
chris schrieb: > Soll man sonst jedesmal die Portlisten kopieren und > in "components" umwandeln, Suche: "{entity|direct} instantiation".
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.
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....
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 )
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.