Artikel-ID: 000084340 Inhaltstyp: Fehlerbehebung Letzte Überprüfung: 14.11.2006

Warum verwendet die Software falsche Parametereinstellungen für meine VHDL-Konfiguration?

Umgebung

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Beschreibung

Dieses Problem kann aufgrund der Art und Weise, wie Analysis &Synthesis die VHDL-Parameterwerte für zwei oder mehr VHDL-Instanzen analysiert, die mit der gleichen Konfiguration konfiguriert sind. Analysis &Synthesis verwendet einen Parameterwert für alle VHDL-Instanzen derselben Entität, selbst wenn Sie für jede Instanz unterschiedliche Parameterwerte verwenden möchten.

Dieses falsche Syntheseproblem tritt in den Quartus® II Softwareversionen 6.0 und früher auf und ist ab Version 6.1 der Quartus II Software behoben.

Als Beispiel dafür, wann dieses Problem auftreten kann, verwendet das folgende Design die gleiche "my_entity_cfg" Konfiguration für alle Instanzen von "my_entity".

CONFIGURATION my_top_cfg OF my_top IS
  FOR top_arc
    FOR ALL: my_entity
      USE CONFIGURATION work.my_entity_cfg;
    END FOR;
   END FOR;
END my_top_cfg;

Für dieses Design können Sie "inst1" und "inst2" für "my_entity" in Ihrem Top-Level-Design erstellen und zwei verschiedene Parameterwerte an inst1 und inst2 übergeben. Im unten stehenden Beispiel werden "inst1" und "inst2" im Erstklassigen Design instanziiert. Das Erstklassige Design übergibt den Wert "one" auf inst1 und den Wert "two" auf inst2.

inst1: my_entity
    GENERIC MAP(type => one)
    PORT MAP(
            data0   => a,
            data1 => b,
            result => one_out);
                     
inst2: my_entity
    GENERIC MAP(type => two)
    PORT MAP(
            data0   => a,
            data1 => b,
            result => two_out);

In diesem Beispiel verwenden Quartus II Softwareversionen 6.0 und früher den Parameterwert "two" für "inst1" und "inst2", was zu falschem Designverhalten führen kann.

Um dieses Problem in Versionen 6.0 und früher zu beheben, erstellen Sie eine Kopie der "my_entity_cfg" Konfiguration, die als "my_entity_cfg1" bezeichnet wird. Ändern Sie das Design der obersten Ebene, um die beiden verschiedenen Konfigurationsnamen zu verwenden, wie in der folgenden Änderung im vorherigen Beispiel:

    FOR inst1: my_entity
      USE CONFIGURATION work.my_entity_cfg;
    END FOR;

    FOR inst2: my_entity
      USE CONFIGURATION work.my_entity_cfg1;
    END FOR;

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.