Lattice ICE40

Moderator (Firma: Titel) Persönliche Seite #4794488
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.
#4794493
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.
Gast #4795062
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.

Antwort schreiben

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.

Formatierung
  • [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 einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.