Hallo, beim Einarbeiten und Durchsicht des Datenblattes sind ein paar Verständnisfragen aufgekommen, könnt ihr mir hier bitte helfen? Ich verwende Lattice Diamond 3.2 unter Windows und einen MachXO2-7000HE. 1) Was ist der Unterschied zwischen "Distributed RAM" und "Embedded Block RAM (EBR)"? 2) Was genau ist ein PLL? 3) Was ist die sinnvollste Vorgehensweise, wenn ich in einem Design I/O Pins dauerhaft auf einen fest definierte Ausgangspegel ('0','1' oder 'z') legen möchte? Naiv gedacht hatte ich überlegt, dies in der Spreadsheet Ansicht zu tun, was aber nicht möglich ist. Wie würdet ihr dabei vorgehen? 4) Momentan habe ich für meine Beispiele immer direkt Verilog Code geschrieben. Irgendwo meine ich gelesen zu haben, dass Diamond auch eine Ansicht enthält, in der man Module graphisch Anordnen kann, also eine Art Logik Schaltplan erstellt, in dem man einzelne Elemente miteinander verknüpft. Gibt es diese Ansicht, und wo finde ich sie? 5) Wo und wie setze ich meine Timing Constraints? (Verilog Code? Diamond?) 6) Ist es sinnvoll, bei Schaltungen nicht genutzte Pins des FPGAs auf einem definierten Pegel zu halten, oder ist das egal? 7) In der Spreadsheet View unter Port Assignments, was bedeuten "Drive" und "Clamp"? Vielen Dank im Voraus!
:
Bearbeitet durch User
Ich werde nicht alles erklären, weil es zu umfangreich wäre und ich deiner Aversion gegen das Selbstlesen Vorschub leisten möchte. 3. was soll der Unsinn? Das braucht niemand. Wenn du es trotzdem machen willst, dann im VHDL-Code (VERilog ist was für Selbstdarsteller). 4. "Add New Source" - "Schematic" und dann anfangen loszumalen. Ist aber nichts für Anfänger, weil du bei den Zeichenübungen eine bestimmte Reihenfolge der Arbeiten eingehalten werden muss. Tipp: den Kram erst vollständig aufmalen, bevor der Stromlauf als Toplevel definiert wird. Nach 100 h Übung wirst du sehen, wie es geht. 5. Im Spreadsheet gibt das da so einen Reiter 6 Nein 7 Tutorial lesen.
... das Selbstlesen keinen Vorschub leisten möchte.
Erst einmal danke für deine Antwort :) Bürovorsteher schrieb: > Ich werde nicht alles erklären, weil es zu umfangreich wäre und ich > deiner Aversion gegen das Selbstlesen Vorschub leisten möchte. So war das auch nicht gemeint. Ich habe mir bspw. bei 1) das Datenblatt durchgelesen. Der EBR ist ein Speicher, der auf verschiedene Arten gestaltet werden kann (bspw. als FIFO), und der Sinn erschließt sich mir auch. Der Distributed RAM ist hingegen deutlich kleiner, und kann mit Logikzellen verbunden werden? Ich verstehe nicht, was der Einsatzzweck für Distributed RAM ist, und wofür man den braucht. Vielleicht hätte ich es so formulieren sollen, sorry! Was die PLLs angeht, so erzeugen sie nach meinem Verständnis Taktraten. Es können Clock Divider verwendet werden, soweit verständlich. Laut Datenblatt kann der Takt auch mit Nicht-Ganzzahlen multipliziert werden (wobei es mir unverständlich erscheint, wie ein Logikelement einen Eingangstakt vergrößern kann). Letztendlich sind die PLLs also einfach dafür da, spezielle Takte zu erzeugen, also z.B. als Baudratengenerator für UART, oder wie kann ich mir das vorstellen? Bürovorsteher schrieb: > 3. was soll der Unsinn? Ich denke da beispielsweise an eine Schaltung, die mehrere Funktionen erfüllt. An einem I/O Pin ist der Reset Pin eines IC angeschlossen. Falls dieser für den gerade programmierten Einsatz nicht benötigt wird, wird er dauerhaft auf Low gezogen. Bürovorsteher schrieb: > 6 Nein "Nein, ist nicht sinnvoll", oder "nein, ist nicht egal"? Bürovorsteher schrieb: > 7 Tutorial lesen. Welches Tutorial? In dem Diamond Tutorial auf help.latticesemi.com finde ich die Begriffe wenigstens nicht (im User Guide auch nicht). Bürovorsteher schrieb: > Tipp: den Kram erst > vollständig aufmalen, bevor der Stromlauf als Toplevel definiert wird. > Nach 100 h Übung wirst du sehen, wie es geht. Danke, werde ich ausprobieren!
Janis E. schrieb: > Hallo, > > beim Einarbeiten und Durchsicht des Datenblattes sind ein paar > Verständnisfragen aufgekommen, könnt ihr mir hier bitte helfen? > > Ich verwende Lattice Diamond 3.2 unter Windows und einen MachXO2-7000HE. > > 1) Was ist der Unterschied zwischen "Distributed RAM" und "Embedded > Block RAM (EBR)"? Sollte dort beschrieben sein: http://www.latticesemi.com/~/media/Documents/ApplicationNotes/MO/MemoryUsageGuideforMachXO2Devices.pdf?document_id=39082 > 2) Was genau ist ein PLL? mit einer PLL werden in FPGA's aus einem Eingangstakt andere Taktsignale abgeleitet. Diese unterscheiden sich in Phase und Frequenz vom Eingangstakt. Siehe bspw: http://en.wikipedia.org/wiki/Phase_locked_loop#Clock_distribution Das Stichwort zum Suchen ist daher clock distribution and generation. Für Lattice scheint das brauchbar http://www.latticesemi.com/~/media/Documents/ApplicationNotes/L/NZ/LatticeXP2sysCLOCKPLLDesignandUsageGuide.PDF?document_id=23975, sicher gibt es für deinen FPGA auch eine Application Note. > 6) Ist es sinnvoll, bei Schaltungen nicht genutzte Pins des FPGAs auf > einem definierten Pegel zu halten, oder ist das egal? Ungenutzte Bidirektionale Pins werden gern auch hochohmig konfiguriert.
Janis E. schrieb: > Erst einmal danke für deine Antwort :) > > Ich habe mir bspw. bei 1) das Datenblatt > durchgelesen. Der EBR ist ein Speicher, der auf verschiedene Arten > gestaltet werden kann (bspw. als FIFO), und der Sinn erschließt sich mir > auch. Der Distributed RAM ist hingegen deutlich kleiner, und kann mit > Logikzellen verbunden werden? Ich verstehe nicht, was der Einsatzzweck > für Distributed RAM ist, und wofür man den braucht. Vielleicht hätte ich > es so formulieren sollen, sorry! Bei komplexeren IC wie FPGA sind "Application Notes" hilfreicher als das Datasheet. Speicherblöcke kann man für alles mögliche gebrauchen: Bildspeicher für Grafikausgaben, Zeichengenerator,Code-umwandlung, LookUp-Tables für Kennlinienanpassung. Distributed RAM ist (manchmal?) asynchron, eignet sich also für Operationen wo man keine Latenz möchte. Und distributed RAN nimmt man gern wo man nur kleine Blöcke (1 kbyte und kleiner braucht) und man den großen Blockram für andere Funktionen reserviert. > Was die PLLs angeht, so erzeugen sie nach meinem Verständnis Taktraten. > Es können Clock Divider verwendet werden, soweit verständlich. Laut > Datenblatt kann der Takt auch mit Nicht-Ganzzahlen multipliziert werden > (wobei es mir unverständlich erscheint, wie ein Logikelement einen > Eingangstakt vergrößern kann). Eine PLL ist eine mixed signal schaltung, also keine "reine Logikschaltung. Mit einer PLL können takte erzeugt werden die in einem Bezug zu dem Eingangstakt stehen. Dazu hat die PLL einen einstellbaren Oszillator (VCO - Voltage controlled Oscillator). Regelt man diesen nun so, dass jede zweite Taktflanke zeitgleich zu einer Flanke des Eingangssignal kommt hat man den Takt verdoppelt - genau gesagt einen neuen Takt synthetisiert der doppelt so hoch ist wie ein Vergleichstakt. Eine vereinfachte Erklärung findet sich dort: http://senderbau.egyptportal.ch/pll.htm MfG,
Nochmal zu 3 - wenn das Pin auf festes Potential soll, heißt die Quelle im VHDL-Toplevel dafür vhi bzw. vlo. Ich habe im Moment kein Diamond griffbereit, aber so habe ich es in Erinnerung.
Fpga Kuechle schrieb: > > Bei komplexeren IC wie FPGA sind "Application Notes" hilfreicher als das > Datasheet. > Bei Lattice gibt es auch Handbooks, das sind das Datasheet plus alle wichtigen TN in einer einzigen PDF zusammengefasst. http://www.latticesemi.com/view_document?document_id=39331
Vielen Dank für eure Antworten! Lattice User schrieb: > Bei Lattice gibt es auch Handbooks, das sind das Datasheet plus alle > wichtigen TN in einer einzigen PDF zusammengefasst. Das wusste ich nicht, vielen Dank! Deutlich praktischer als zwischen zig PDFs hin- und her zu wechseln. Bürovorsteher schrieb: > Nochmal zu 3 - wenn das Pin auf festes Potential soll, heißt die Quelle > im VHDL-Toplevel dafür vhi bzw. vlo. Ich habe im Moment kein Diamond > griffbereit, aber so habe ich es in Erinnerung. Ja, perfekt, danke, mit den Namen konnte ich eine entsprechende Referenz finden. Fpga Kuechle schrieb: > Eine vereinfachte Erklärung findet sich dort: > http://senderbau.egyptportal.ch/pll.htm Danke für den Link, das hilft mir weiter! Fpga Kuechle schrieb: > Und distributed > RAN nimmt man gern wo man nur kleine Blöcke (1 kbyte und kleiner > braucht) und man den großen Blockram für andere Funktionen reserviert. ok, das leuchtet ein, danke.
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.