Forum: FPGA, VHDL & Co. Verständnisfragen zu Lattice MachXO2 & Diamond


von Janis E. (janis_e)


Lesenswert?

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
von Bürovorsteher (Gast)


Lesenswert?

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.

von Bürovorsteher (Gast)


Lesenswert?

...  das Selbstlesen keinen Vorschub leisten möchte.

von Janis E. (janis_e)


Lesenswert?

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!

von Fpgakuechle K. (Gast)


Lesenswert?

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.

von Fpgakuechle K. (Gast)


Lesenswert?

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,

von Bürovorsteher (Gast)


Lesenswert?

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.

von Lattice User (Gast)


Lesenswert?

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

von Janis E. (janis_e)


Lesenswert?

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
Noch kein Account? Hier anmelden.