Forum: FPGA, VHDL & Co. Lattice ICE40


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Martin (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi,

gibt es bei der ICE40hx1k Serie auch irgendwo eine vorgefertigte dual 
clock fifo wie bei Quartus II? Oder irgendetwas das sich relativ schnell 
damit verwenden lässt?

Verwende derzeit halt Altera und würde den Code gerne mal mit Lattice 
umsetzen.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Martin schrieb:
> gibt es bei der ICE40hx1k Serie auch irgendwo eine vorgefertigte dual
> clock fifo wie bei Quartus II?
Du vergleichst hier Kraut und Rüben: einen Baustein von Hersteller L 
mit der Toolchain vom Hersteller I. Das ist unsinnig.

Du musst dir einfach mal die im Baustein verfügbare Hardware darauf hin 
ansehen, ob dort ein RAM mit unabhängigem Schreib und Lese-Port 
vorhanden ist. Wenn ja, dann kannst du so einen Fifo implementieren. 
Kurze Drübersicht übers Datenblatt: mit dem sysMEM Block kannst du einen 
Fifo aufbauen. Und jetzt musst du nur noch schauen, wie du so einen 
Block instantiieren kannst/musst.

Da nimmst du dann den "FPGA Libraries Reference Guide" von Lattice her, 
und findest dort ohne langes Suchen einen FIFO_DC, der das tut, was du 
willst. Und mit ein wenig Recherche findest du auch eine TN1250, in dem 
so ein Memory-Block mal genauer beschrieben wird.

In anderen Worten: du machst Hardware. Dazu musst du deren Verhalten 
kennen. Und dazu musst du die Datenblätter, Appnotes und Technical Notes 
ansehen und verstehen. Sonst hast du irgendwann mal "seltsames" 
Verhalten und wirst den Fehler nicht finden.

: Bearbeitet durch Moderator
von P. K. (pek)


Bewertung
0 lesenswert
nicht lesenswert
Wenn immer Du IPs eines bestimmten Providers benutzt, kommst Du nicht 
darum herum, diese neu zu generieren sobald Du den Anbieter wechselst.

Es sei denn Du verwendest synthetisierbare Beschreibungen, welche die 
IPs nicht instanzieren sondern inferieren. Zumindest für Altera unD 
Xilinx geht das, auch für Dual-Clock-RAM (Beispiele für Code dazu bieten 
beide Anbieter, diese mit einem Codestück zu erschlagen ist manchmal 
tricky).

Vorteil: Du migrierst Problemlos von Anbieter zu Anbieter, wenn Du die 
Vorarbeit mal gemacht hast.
Nachteil: In der Regel kannst Du mit der Inferierungs-Methode nicht den 
ganzen Funktionsumfang eines einzelnen IPs jedes Anbieters ausnutzen.

: Bearbeitet durch User
von Martin (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antworten soweit.


Bezüglich FPGA Libraries Reference Guide das hatte ich gesehen, aber 
dort wird nichts von den ICE40ern erwähnt, es steht dort wohl dabei 
welche Bauteile unterstützt werden.
Was dort steht ist wohl in der Lattice Diamond IDE komfortabel 
integriert, bei IceCube2 muss man wohl mehr Hand anlegen.
Die IceCube2 Umgebung ist derzeit noch etwas ungewohnt für mich, da ich 
mich bis jetzt nur etwas in Quartus II eingelernt habe.
Das die ICE40er Dual Port unterstützen habe ich ja schon vorher gelesen 
und deshalb versuch ich mich dort auch einzulernen.

Ich schau mal wie weit ich dort komme.

von Holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Martin schrieb:
> Das die ICE40er Dual Port unterstützen habe ich ja schon vorher gelesen

http://www.latticesemi.com/~/media/LatticeSemi/Documents/ApplicationNotes/MO/MemoryUsageGuideforiCE40Devices.pdf?document_id=47775

Figure 2. sysMEM Embedded Block RAM

Gruss Holger.

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]
  • [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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.