1tes Projekt mit dem Lattice EBR

Gast #2605826
Lesenswert?

Hallo allerseits,

ich arbeite zum ersten mal mit einem FPGA (Lattice XP2), daher meine 
(Neulings) Fragen.
In dem Projekt werden große Daten Mengen (bis 120 KB) zwischen einen 
Mikrocontroller und dem FPGA seriel ausgetauscht, diese Daten werden im 
FPGA RAM (EBR Pseudo DUAL RAM) geschrieben (oder davon ausgelesen).
Bei einem Trigger soll der FPGA einen SteuerungsProzess starten: FPGA 
liest mit einer bestimmten Frequenz seine RAMzellen nach einander und 
gibt den Wert über bestimmte IOs wieder aus.

Wie kann man das am besten realisieren?
ICh habe mir gedacht ein Modul für die Kommunikation mit dem uC, der 
Daten im/vom RAM schreiben/auslesen kann, und ein Modul für die 
Steuerung der IOs, dieses Modul liest dann auch werte vom RAM aus.

- Wie kann ich es machen das beide Module Daten vom gleichen RAM 
auslesen?

- Werden da keine Konflikte auftauchen, wenn beide Module gleichzeitig 
verschiedene RAM Adressen lesen wollen?

Vielen Dank
Gast #2606259
Lesenswert?

Hallo,
>Das Stichwort hier heisst Dual Ported RAM
ja, ein Port für schreiben und nur eins fürs Lesen. Beide Module lesen 
dann aus einen einzigen Port.

>Übrigens, der grösste XP2 hat 48 Ramblöcke -> 96 KB. Also nix mit 120
KB.
XP2-5 hat 166 Kbits als EBR SRAM

>Ganz im Gegenteil, es wird Probleme geben, wenn gleichzeitig auf die
>selbe Adresse geschrieben wie gelesen wird.

Das ist ok, ich glaube es wird nur den alten Wert ausgelesen!!, beim 
nächsten Triggerwird dann der richtige Wert ausgelesen

Mein Problem liegt eigentlich bei der Konzepterstellung:

Gedacht habe ich mir das ganze in zwei Modulen: einer für die 
Kommunikation und einer für die Steuerung und eine RAM Instanz.

Kann ich von beiden Modulen vom selben RAM lesen??
Muss ich das Lesen irgendwie in einer "Funktion" packen, die in beiden 
Modulen aufgerufen wird!

Bin dankbar für richtige Ideen für den Anfang
Gast #2606282
Lesenswert?

Versuch doch zunächst einmal eine Art Spezifikation deines Projektes zu 
erstellen, ganz ohne Code. Einfach nur mit Prosa und Skizzen.

Nicht das Codieren ist am Anfang wichtig, sondern die Vorstellungskraft 
bezüglich der Problemstellung.
Gast #2606328
Lesenswert?

>>Übrigens, der grösste XP2 hat 48 Ramblöcke -> 96 KB. Also nix mit 120KB.
>XP2-5 hat 166 Kbits als EBR SRAM

Dann klär vielleicht auch gleich mal den Unterschied zwischen 
KiloByte(KB) und KiloBit(Kb). Was brauchst du wirklich...

Gruß
Gast #2606394
Lesenswert?

Jochen schrieb:
> Hallo,
>>Das Stichwort hier heisst Dual Ported RAM
> ja, ein Port für schreiben und nur eins fürs Lesen. Beide Module lesen
> dann aus einen einzigen Port.

Nein, der EBR kann als echter Dualport RAM konfiguriert werden, beide 
Ports können unabhängig voneinander lesen und schreiben.
Gast #2606469
Lesenswert?

Jochen schrieb:
> heißt das ich kann dieselbe RAM-Zelle aus zwei Ports lesen und
> schreiben?


Radio Eriwan :-)

Lesen ist kein Problem, wenn beide Seiten schreiben ist das Ergebnis 
undefiniert, insbesondere wenn beide Clocks asynchron sind. Es ist auch 
undefinert wenn von einer Adresse gelesen wird auf die, die andere Seite 
gerade schreibt. Im Extremfall sind ein paar Bits alter Inhalt und ein 
paar neuer.

Der EBR hat noch ein Writethrough Feature, aber ob wie gut das den 
Konflikt auflösen kann weiss ich nicht. TN1137 studieren und 
ausprobieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren