www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Aus mehreren Prozessen in den Block RAM schreiben


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi @ all.

Ich digitalisiere Werte mit Hilfe eines AD-Wandlers. Die digitalen
Werte werden in den internen Block-RAM geschrieben. Während die Werte
in den RAM geschrieben werden, wird das Signal analysiert. Nachdem alle
Werte im RAM sind, sollen die Ergebnisse hinten rangehängt werden.
Demnach muss ein anderer Prozess auf den RAM zugreifen. Es greift immer
nur 1 Prozess gleichzeitig auf den RAM zu. Der RAM besitzt folgende
Leitungen:

ADDR[11..0] (in)
DIN[11..0]  (in)
DOUT[11..0] (out)
WE          (in)
EN          (in)


Ich habe mal gelesen das es mit Tristate gehen soll (Zustand 'Z').
Wie muss ich dazu meine Ports in den Prozessen schalten?

ADDR[11..0] (inout) ?
DIN[11..]   (inout) ?
DOUT[11..0] (inout) ?
WE          (inout) ?
EN          (inout) ?

Grüsse

Michael

Autor: Cpt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich weiß gerade nicht so ganz worauf du hinaus willst?
Wenn immer nur ein Prozess zugreift musst du eine Statemachine
davorsetzen die den Zugriff kontrolliert ...
das hat erstmal nichts mit dem Ram zu tun. Korrigiere mich wenn ich
falsch liege, denn ich bin definitiv nicht ganz nüchtern :-)

Cpt

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Michael,

wie Cpt. schon schrob, würde ich Deine obige (verallgemeinerte)
BEschreibung Deiner gewünschten Funktionaliotät auch mit 2
Statemachines  lösen....

...die erste FSM schreibt die DW des AD-Wandlers in ein Register, die
zweite FSM liest die DW aus dem Register inklusive verketteten Ergebnis
(mit '&'-Verknüpfung) heraus...

Gruß
Tom

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als Idee, Du kannst den RAM-Block als DualPort anlegen. So brauchst Du
Dir über Synchronisation gar keine Sorgen machen.

Wähle FirstWrite then Read....

Sebastian

Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, wie Du es beschrieben hast, kann man das als 2-stufige pipeline
machen, die in jeweils 2 Zyklen in das Ram schreibt (den Wert und dann
das "Angehängte").

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.