Artikel-ID: 000092740 Inhaltstyp: Fehlermeldungen Letzte Überprüfung: 12.09.2023

Warum sehe ich mehrere Warnungen "Warnung: NUMERIC_STD. TO_SIGNED: Vektor abgeschnitten" bei der Simulation des FIR II Intel® FPGA IP Core?

Umgebung

  • Intel® Quartus® Prime Pro Edition
  • FIR II Intel® FPGA IP
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Beschreibung

    Diese Warnungen treten während der Simulation aufgrund der Darstellung der Konstante (9) als 4-Bit-Vorzeichenvektor in der FIR-II-Intel® FPGA IP-VHDL-Datei hb1s_altera_fir_compiler_ii_1911_kmsq6ua_rtl_core.VHD auf.

    Nummer 9 passt nicht in eine 4-Bit-Nummer mit Vorzeichen. Daher wird die vector_truncated Warnung von der TO_SIGNED VHDL-Funktion angezeigt.

    Wenn wir das Bitmuster von 9 (1001) als 4-Bit-Zahl mit Vorzeichen interpretieren, erhalten wir -7.

    Lösung

    Nehmen Sie die folgende RTL-Änderung vor, um die Warnung "Vektor abgeschnitten" zu entfernen, wenn Sie die Intel® Quartus® Prime Pro Edition Software Version 22.3 oder früher verwenden.

    Suchen Sie hb1s_altera_fir_compiler_ii_1911_kmsq6ua_rtl_core.vhd-Datei im folgenden IP-generierten Ordner:

    <ip_variation_name>Ordner/altera_fir_compiler_ii_1911/Sim/

    Ersetzen:

    u0_m0_wo0_wi0_r0_ra0_count1_inner(ZÄHLER,25)@14

    niedrig = -1, hoch = 6, Schritt = -1, init = 5

    u0_m0_wo0_wi0_r0_ra0_count1_inner_clkproc: PROZESS (clk)

    BEGINNEN

    IF (clk'EVENT UND clk = '1') DANN

    IF (areset = '1') THEN

    u0_m0_wo0_wi0_r0_ra0_count1_inner_i <= TO_SIGNED(5, 4);

    ODER

    WENN (u0_m0_wo0_memread_fanout_reg0_q = "1"), DANN

    WENN (u0_m0_wo0_wi0_r0_ra0_count1_inner_i(3 bis 3) = "1"), DANN

    u0_m0_wo0_wi0_r0_ra0_count1_inner_i <= u0_m0_wo0_wi0_r0_ra0_count1_inner_i - 9;

    ODER

    u0_m0_wo0_wi0_r0_ra0_count1_inner_i <= u0_m0_wo0_wi0_r0_ra0_count1_inner_i - 1;

    ENDE WENN;

    ENDE WENN;

    ENDE WENN;

    ENDE WENN;

    PROZESS BEENDEN;

    mit (Änderungen in Rot):

    u0_m0_wo0_wi0_r0_ra0_count1_inner(ZÄHLER,25)@14

    niedrig = -1, hoch = 6, Schritt = -1, init = 5

    u0_m0_wo0_wi0_r0_ra0_count1_inner_clkproc: PROZESS (clk)

    Variable wider_var : SIGNIERT (4 bis 0);

    BEGINNEN

    IF (clk'EVENT UND clk = '1') DANN

    IF (areset = '1') THEN

    u0_m0_wo0_wi0_r0_ra0_count1_inner_i <= TO_SIGNED(5, 4);

    ODER

    WENN (u0_m0_wo0_memread_fanout_reg0_q = "1"), DANN

    WENN (u0_m0_wo0_wi0_r0_ra0_count1_inner_i(3 bis 3) = "1"), DANN

    wider_var := Größe ändern(u0_m0_wo0_wi0_r0_ra0_count1_inner_i,5) - 9;

    ODER

    wider_var := Größe ändern(u0_m0_wo0_wi0_r0_ra0_count1_inner_i,5) - 1;

    ENDE WENN;

    u0_m0_wo0_wi0_r0_ra0_count1_inner_i <= wider_var(3 bis 0);

    ENDE WENN;

    ENDE WENN;

    ENDE WENN;

    PROZESS BEENDEN;

    Beachten Sie, dass sich eine weitere Kopie dieser Datei im synth-Ordner befindet:

    <ip_variation_name>Ordner/altera_fir_compiler_ii_1911/synth/hb1s_altera_fir_compiler_ii_1911_kmsq6ua_rtl_core.vhd

    Die "sim"-Kopie wird für den Simulator verwendet. Die Intel® Quartus® Prime-Software verwendet die "Synth"-Kopie.

    Technisch gesehen muss nur die SIM-Version der Dateien geändert werden, um die Simulatorwarnungen zu beheben.

    Dieses Problem wurde in Version 22.4 der Intel® Quartus® Prime Pro Edition-Software behoben.

    Zugehörige Produkte

    Dieser Artikel bezieht sich auf 1 Produkte

    Intel® Agilex™ FPGAs und SoC FPGAs der I-Reihe

    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.