Artikel-ID: 000080561 Inhaltstyp: Fehlermeldungen Letzte Überprüfung: 16.08.2012

Fehler (10385): VHDL-Fehler bei <file>: Der Indexwert befindet sich außerhalb des Bereichs (Downto) des Objekts <object></object></file>

Umgebung

  • Intel® Quartus® II Anmeldungs-Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Beschreibung

    Aufgrund eines Problems in der Quartus II Software kann die Quartus® II Synthese diesen Fehler generieren, wenn sie versucht, einen indizierten Ausdruck in VHDL zu bewerten, der außerhalb des Bereichs innerhalb eines if-Ausdrucks innerhalb einer Schleife liegt.

    Dieser Fehler kann auftreten, wenn alle der folgenden Bedingungen erfüllt sind:

    1. Eine if-Anweisung befindet sich in einer for-Schleife
    2. Die if-Anweisung ist ein Vergleich von zwei Integer-Expressions mit , >= oder =
    3. Die Schleife tritt in den Expressions auf, die von der if-Anweisung evaluiert werden
    4. Der von der if-Anweisung evaluierte Ausdruck ist auf , -, und* beschränkt.

    Hier ist ein Beispiel dafür, wann dieser Fehler auftreten würde:

    entity test is
    port
       (
       i1_data_in         : in  std_logic_vector(3 downto 0);
       i_div_pos         : in  std_logic_vector(7 downto 0);
       o_data_out        : out std_logic_vector(7 downto 0)
       );
    END entity test;

    architecture rtl of test is
      signal idx     : integer;
      signal lim : NATURAL range 0 to 5;

      idx <= to_integer(unsigned(i_div_pos));
      lim <= 3;

      process(i1_data_in, idx)
      variable temp : std_logic_vector(o_data_out\'range);
      begin
      temp := (others => \'0\');
       u1 : for i in 0 to 7 loop
           if  i <= 3 - lim then
             temp(i) := i1_data_in(i);
           else
             temp(i) := i_div_pos (i);
           end if;
         end loop;
      o_data_out <= temp;
      end process;
    end rtl;
    Lösung

    Zur Behebung dieses Problems steht für die Quartus II Software Version 11.0 SP1 ein Patch zur Verfügung. Laden Sie Patch 1.40 über den entsprechenden Link unten herunter und installieren Sie es. Nach der Installation des Patches aktivieren Sie die Lösung, indem Sie die Datei quartus.ini in Ihrem Projektverzeichnis erstellen oder bearbeiten, um die folgende Zeile aufzunehmen:

    vrfx_optimize_if_dead_code=on

    Wenn dieser Fehler bei der Verwendung einer anderen Version der Quartus II Software auftritt, erstellen Sie eine Serviceanfrage mit mySupport.

    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.