Artikel-ID: 000080324 Inhaltstyp: Fehlermeldungen Letzte Überprüfung: 11.02.2013

Interner Fehler: Untersystem: VRFX, Datei: /quartus/vrfx/vrfx/verific/vhdl/vhdlvalue_elab.cpp, Zeile: 6821

Umgebung

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Beschreibung

Aufgrund eines Problems in der Quartus® II Software kann dieser interne Fehler auftreten, wenn Ihr VHDL-Code einen Dual-Clock-Dual-Port-Speicher mit gemischter Breite mit dem Prozess für den breiteren Port leitet, der vor dem Prozess für den schmaleren Port platziert wird.

Zum Beispiel:

portA_p : PROCESS (clk)
BEGIN
IF (rising_edge(clk)) THEN
 IF we_a = '1' THEN
  -- Write access
  ram(addr_a / 2)(addr_a mod 2) := data_a;
  -- Read during write on the same port returns NEW data
  q_a <= data_a;
 ELSE
  -- Read returns OLD data
  q_a <= ram(addr_a / 2)(addr_a mod 2);
 END IF;
END IF;
END PROCESS portA_p;

portB_p : PROCESS (clk)
BEGIN
IF (rising_edge(clk)) THEN
 IF we_b = '1' THEN
  ram(addr_b) := data_b;
  -- Read during write on the same port returns NEW data
  q_b <= data_b;
 ELSE
  -- Read returns OLD data
  q_b <= ram(addr_b);
 END IF;
END IF;
END PROCESS portB_p;
Lösung

Um dieses Problem zu umgehen, wenden Sie die Reihenfolge der Prozesse um, sodass der Prozess für den breiteren Port zuerst angezeigt wird.

Dieses Problem wird voraussichtlich in einer zukünftigen Version der Quartus II Software behoben.

Zugehörige Produkte

Dieser Artikel bezieht sich auf 1 Produkte

Intel® programmierbare Geräte

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.