www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Xilinx Block-RAM voll resetten


Autor: Pauli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Verständnisfrage: Kann ich ein Xilinx BRAM mit einem Takt im 
Betrieb resetten? Der CoreGen zeigt einen RSSA-Pin der wie folgt 
beschrieben wird.

"Optional Synchronous Set/Reset Pin"
The core provides optional set/reset pins (SSRA and SSRB) pin per port 
that synchronously initialize the read output to a programmable value.

Ist das dafür nutzbar?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ist das dafür nutzbar?
Nein. Damit wird nur das Ausgangsregister beeinflusst.

Aus der XAPP463:
Synchronous Set/Reset — SSR (SSRA, SSRB)
The synchronous set/reset input, SSR, forces the data output latches to 
value specified by the SRVAL attribute. When SSR and the enable signal, 
EN, are High, the data output latches for the DO and DOP outputs are 
synchronously set to a ‘0’ or ‘1’ according to the SRVAL parameter.

A Synchronous Set/Reset operation does not affect RAM memory cells 
and does not disturb write operations on the other port.

EDIT:
Und nein, nicht mal der Globale Reset hilft dir weiter.
Global Set/Reset — GSR
The global set/reset signal, GSR, is asserted automatically and 
momentarily at the end of device configuration. By instantiating the 
STARTUP primitive, the logic application can also assert GSR to restore
the initial Spartan-3 state at any time. The GSR signal initializes the
output latches to the INIT value. 

A GSR signal has no impact on internal memory contents.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Pauli (Gast)

>Eine Verständnisfrage: Kann ich ein Xilinx BRAM mit einem Takt im
>Betrieb resetten?

Nein. Der Reset wirkt nur auf die Ausgangsregister, NICHT jedoch auf die 
RAM-Zellen, also den Inhalt.

MFG
Falk

Autor: Pauli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann muss ich das gesamte Ram durchackern?

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jau! ( warum soll´s Dir besser gehen, wie den anderen....)
;)

Gruß

Andreas

Autor: Pauli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab mir jetzt ein FF-basiertes RAM gebaut. Allerdings ist der FPGa nun 
proppe voll. Schiieet ..

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Pauli,

es kommt oft vor das man sicher gehen muss, dass ein RAM beim Start leer 
zu sein hat. Den Inhalt deines RAMs kannst Du zum Bootzeitpunkt 
bestimmen und aus einem File laden lassen. So funktionieren auch z.B. 
SoftCPUs bei welchem Code und ggfls. Microcode in RAM-Blöcken steckt.

Du kannst die Werte auch über eine Statemaschine löschen, ggfl. hilft 
Dir da, dass ein BRAM 2 Ports besitzt.

Je nach Breite und Tiefe des RAMS kannst Du aber auch ein FF pro Zelle 
spendieren, und dort ein DirtyTAG platzieren. Wenn das gesezt oder 
gelöscht ist, ist der Inhalt der RAM-Zelle ungültig...

Gruß

Andreas

Autor: berndl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wollte ich auch vorschlagen. Einfach in FFs ein Valid- oder Dirty-Bit 
'verwalten'. Das kannst du mit einem (am besten synchronen) Reset auf 
'invalid' stellen.

Gruss,
- berndl

Autor: FPGA-Vollprofi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um das resetten kommt man nicht herum, denn die initialen Werte mit MIF 
und HEX Ram-Image klappen nur am Start.

Bei Xilinx kann man sehr einfach ein asymmetrisches Ram einsetzen, 
welches über den zweiten Port breit gelöscht werden kann. Mit einem 
256Bit-Bus kriegt man schon mal 16fach schnell gecleared, als ein 
Anschluss mit 16 Bit. Spart 4 Adressen. Dann geht es irgendwann nur 
noch, indem man mehrere RAMs parallel baut.

Dafür würde ich mir einer CORE-Instanz wünschen.

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.