True DualPortRam Zugriff von mehreren Entities

#2518316
Lesenswert?

Hallo miteinander,

ich bastel mir gerade ein Design auf meinem Spartan-3E und hänge nun an 
folgender Frage. Ich habe mir mit dem Xilinx Tool den DualPortRam 
eingbaut mit der Konfiguration 5 downto 0 Adressen und 63 downto 0 
Daten. Nun möchte ich von einer Seite des DPRs mit einer Entity lesend 
und schreibend zugreifen das macht auch keine Probleme, nur auf der 
anderen Seite bin ich am überlegen wie ich das handhabe, da dort jeweils 
2 lesend und 2 schreibende Entities angeschlossen sind die per 
Chipselect gepollt werden um den Speicherzugriff zu schützen. Wird im 
Endeffekt von einem Scheduler gesteurt. Ich dachte jetzt, dass die 
Synthese das schon checkt durch den Scheduler aber ich bekomme immernoch 
die Fehlermeldung:

Multi-source in Unit <top_prototyp> on signal <addr2<0>>; this signal is 
connected to multiple drivers.

Meine Frage ist nun sollte ich eine zusätzlich Weiche einbauen (entweder 
komplett zusätzliche Entity oder im Scheduler) welche mir die Adressen 
nur im bestimmten Fall durchschleift?

Zur Verdeutlichung:

-------------|     |---------------|              |----------|
Entity1      |-----| DualPortBlock |------o-------| Entity 2 |_
             |     |               |       \      |----------|  \
-------------|     |---------------|        \                    \
       |                                     \    |----------|    |
       |                                      \---| Entity 3 |    |cs2
        \                                         |----------|    |
         \                                           |            |
          \  cs0                          cs1                   
           \-------|-----------|-------------------/            /
                   | Scheduler |                               /
                   |-----------|------------------------------/

Naja ich hoffe ist klar, ansonsten muss ichs doch noch genauer Zeichnen. 
Für weitere offene Fragen die ich in der Eile vergessen haben sollte, 
bin ich natürlich jederzeit zu sprechen.
#2518425
Lesenswert?

-------------|     |---------------|              |----------|
Entity1      |-----| DualPortBlock |-----MUX------| Entity 2 |_
             |     |               |       \      |----------|  \
-------------|     |---------------|        \                    \
       |                                     \    |----------|    |
       |                                      \---| Entity 3 |    |cs2
        \                                         |----------|    |
         \                                           |            |
          \  cs0                          cs1
           \-------|-----------|-------------------/            /
                   | Scheduler |                               /
                   |-----------|------------------------------/


Ok, dachte ich mir schon. In diesem Sinne ist meine Frage auch schon 
beantwortet, danke Lothar
#2518451
Lesenswert?

Hab nur eine Taktdomain. Läuft also alles synchron, daher auch der 
Scheduler der alles nacheinader abholt. Soll später auch noch um weitere 
Entities erweitert werden. Ist nur mein erstes FPGA, VHDL Projekt und 
weiss noch nicht so genau wo ich mir was sparen kann. Aber wie gesagt - 
Danke für die fleißige Hilfe :)
Moderator (Firma: Titel) Persönliche Seite #2518675
Lesenswert?

Sigi schrieb:
> Hardwareseitig werden nur 2 Ports unterstützt.
Man kann bei allen anderen FPGA-Herstellern auch zwei RAMs so 
verschalten, dass von einer Seite geschrieben und von zwei (oder noch 
mehr) Seiten gelesen werden kann.
Dazu werden dann einfach ein paar RAMs parallelgeschaltet. Das geht aber 
nicht mehr, wenn (wie hier) von mehreren Seiten geschrieben werden 
soll.

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