Artikel-ID: 000080398 Inhaltstyp: Fehlerbehebung Letzte Überprüfung: 03.04.2017

Warum erhalte ich die Nachricht "Found 1 instances of uninferred RAM logic" aufgrund von /*synthesis preserve*/ in einem nicht verwandten Port?

Umgebung

    Intel® Quartus® Prime Standard Edition
BUILT IN - ARTICLE INTRO SECOND COMPONENT
Beschreibung

Für ein Beispiel im unten stehenden Code hat Quartus® Standard Probleme mit der RAM-Inferenz aufgrund von /*synthesis preserve*/

 

Modul mem

#(Parameter DATA_WIDTH=8, Parameter ADDR_WIDTH=6) (

Eingabe [(DATA_WIDTH-1):0] Daten,

Eingabe [(ADDR_WIDTH-1):0] read_addr, write_addr,

Eingabe wir, clk,

Ausgabe [(DATA_WIDTH-1):0] q,

output reg [3:0] state = 0/*synthesis preserve*/

);

simple_dual_port_ram_single_clock simple_dual_port_ram_single_clock_inst (

.data (Daten),

.read_addr (read_addr),

.write_addr (write_addr),

.wir (wir),

.clk (clk),

.q (q)

);

Lösung

Das Problem wird durch eine bekannte Einschränkung verursacht, bei der beim Einsatz des Verilog 95-Stils eine Beibehaltung in einer Moduldeklaration auf das gesamte Modul angewendet wird. Verwenden Sie zur Behebung dieses Problems den Verilog 2001 Attributstil. Nämlich:

Ersetzen:

output reg [3:0] state = 0/*synthesis preserve*/

Mit:

(* preserve *) output reg [3:0] state = 0

Dieses Problem ist in der Quartus® Pro Version der Software nicht vorhanden. Für Quartus® Standardversionen verwenden Sie bitte die Problemumgehung.

Zugehörige Produkte

Dieser Artikel bezieht sich auf 1 Produkte

Intel® programmierbare Geräte

1

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.