2016-07-17 4 views

Antwort

1

Diese Liste von Bedingungen möglicherweise unvollständig:

  • Größe
    Wenn der Speicher zu klein ist, wird ISE verwenden, um eine distibuted RAM (LUT-RAM) anstelle eines BlockRAM. Die Größe/Fläche Ihres Speichers muss einer einzelnen oder einer Gruppe von BlockRAMs zugeordnet werden können. Ein einzelner BlockRAM kann 8,9,16,18,32,36,64,72 Bits pro Datenanschluss haben. Andere Größen sind möglich, wenn die Anzahl der Speicherzeilen übereinstimmt.
  • Ports
    BlockRAM unterstützt:

    • Single-Port (SP),
    • simple-Dual-Port (SDP),
    • enhanced-simple-Dual-Port (ESDP) und
    • true-Dual-Port (TDP)

    Erinnerungen. Kombinationen mit einem Schreibport und n Leseports sind ebenfalls möglich.

  • Zurücksetzen
    BlockRAMs unterstützen keine Rücksetzungen. Wenn Sie also Speicher zurücksetzen können, kann als BRAM abgeleitet werden.
  • ClockEnable (CE), Schreibfreigabe (WE), Byte-Write-Freigabe (BWE)
    BlockRAMs unterstützen CE und WE, aber in der Regel keine BWE.
  • Zeit
    Der Speicher muss synchron geschrieben und von einer registrierten Adresse entweder synchron gelesen oder asynchron gelesen werden.
  • Ausgangsregister (OUT_REG)
    Ausgangsregister sind optional, verbessern jedoch das Gesamtzeitverhalten. Der Synthesizer könnte das OUT_REG von der Logik in das BlockRAM verschieben, das eingebettete Ausgaberegister aufweist.

Unsere Open-Source-Bibliothek PoC enthält 4 mögliche on-chip RAM Implementierungen in generischen VHDL-Code geschrieben, die Xilinx BlockRAMs abgebildet werden können. Ich nehme an, Sie können diese VHDL-Snippets lesen und verstehen, um sie in Verilog-Code zu übersetzen :). Alternativ bietet Xilinx eine synthesis guide (UG 626, v14.4, S. 73)), die VHDL- und Verilog-Entwurfsmuster von synthetisierbarem Code auflistet.

Verwandte Themen