ID บทความ: 000092740 ประเภทข้อมูล: ข้อความแสดงข้อผิดพลาด การตรวจสอบครั้งล่าสุด: 12/09/2023

ทําไมฉันถึงเห็นคําเตือนหลายรายการ "คําเตือน: NUMERIC_STD TO_SIGNED: ตัดทอนเวกเตอร์" เมื่อจําลองคอร์ Intel® FPGA IP FIR II

สิ่งแวดล้อม

  • Intel® Quartus® Prime Pro Edition
  • IP เอฟพีจีเอ Intel® FIR II
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    คำอธิบาย

    คําเตือนเหล่านี้เกิดขึ้นระหว่างการจําลองเนื่องจากการแสดงค่าคงที่ (9) เป็นเวกเตอร์ที่ลงนามใน 4 บิตในไฟล์ FIR II Intel® FPGA IP VHDL hb1s_altera_fir_compiler_ii_1911_kmsq6ua_rtl_core.vhd

    ตัวเลข 9 ไม่สามารถใส่ในหมายเลขที่ลงชื่อแบบ 4 บิตได้ ดังนั้น เราจะเห็นการเตือน vector_truncated จากฟังก์ชัน VHDL TO_SIGNED

    เมื่อเราตีความรูปแบบบิต 9 (1001) เป็นหมายเลขที่ลงนาม 4 บิต เราจะได้รับ -7

    ความละเอียด

    ทําการปรับเปลี่ยน RTL ต่อไปนี้เพื่อลบการเตือน "เวกเตอร์แบบตัดทอน" หากคุณใช้ซอฟต์แวร์ Intel® Quartus® Prime Pro Edition เวอร์ชัน 22.3 หรือก่อนหน้า

    ค้นหา ไฟล์ hb1s_altera_fir_compiler_ii_1911_kmsq6ua_rtl_core.vhd ในโฟลเดอร์ที่สร้าง IP ดังต่อไปนี้:

    <ip_variation_name>โฟลเดอร์/altera_fir_compiler_ii_1911/ซิม/

    แทน:

    u0_m0_wo0_wi0_r0_ra0_count1_inner(COUNTER,25)@14

    low=-1, high=6, step=-1, init=5

    u0_m0_wo0_wi0_r0_ra0_count1_inner_clkproc: กระบวนการ (clk)

    เริ่ม ต้น

    IF (clk'EVENT and clk = '1') แล้ว

    IF (areset = '1') แล้ว

    u0_m0_wo0_wi0_r0_ra0_count1_inner_i <= TO_SIGNED(5, 4);

    อื่น

    IF (u0_m0_wo0_memread_fanout_reg0_q = "1") แล้ว

    IF (u0_m0_wo0_wi0_r0_ra0_count1_inner_i(3 downto 3) = "1") แล้ว

    u0_m0_wo0_wi0_r0_ra0_count1_inner_i <= u0_m0_wo0_wi0_r0_ra0_count1_inner_i - 9;

    อื่น

    u0_m0_wo0_wi0_r0_ra0_count1_inner_i <= u0_m0_wo0_wi0_r0_ra0_count1_inner_i - 1;

    สิ้นสุด IF; การทําเครื่องหมาย

    สิ้นสุด IF; การทําเครื่องหมาย

    สิ้นสุด IF; การทําเครื่องหมาย

    สิ้นสุด IF; การทําเครื่องหมาย

    สิ้นสุดกระบวนการ;

    มี (การเปลี่ยนแปลงเป็นสีแดง):

    u0_m0_wo0_wi0_r0_ra0_count1_inner(COUNTER,25)@14

    low=-1, high=6, step=-1, init=5

    u0_m0_wo0_wi0_r0_ra0_count1_inner_clkproc: กระบวนการ (clk)

    wider_var ผันแปร : ลงนาม (4 downto 0);

    เริ่ม ต้น

    IF (clk'EVENT and clk = '1') แล้ว

    IF (areset = '1') แล้ว

    u0_m0_wo0_wi0_r0_ra0_count1_inner_i <= TO_SIGNED(5, 4);

    อื่น

    IF (u0_m0_wo0_memread_fanout_reg0_q = "1") แล้ว

    IF (u0_m0_wo0_wi0_r0_ra0_count1_inner_i(3 downto 3) = "1") แล้ว

    wider_var := ปรับขนาด (u0_m0_wo0_wi0_r0_ra0_count1_inner_i,5) - 9;

    อื่น

    wider_var := ปรับขนาด(u0_m0_wo0_wi0_r0_ra0_count1_inner_i,5) - 1;

    สิ้นสุด IF; การทําเครื่องหมาย

    u0_m0_wo0_wi0_r0_ra0_count1_inner_i <= wider_var(3 downto 0);

    สิ้นสุด IF; การทําเครื่องหมาย

    สิ้นสุด IF; การทําเครื่องหมาย

    สิ้นสุด IF; การทําเครื่องหมาย

    สิ้นสุดกระบวนการ;

    โปรดทราบว่ามีสําเนาของแฟ้มนี้อีกชุดในโฟลเดอร์ที่ Synth:

    <ip_variation_name>โฟลเดอร์/altera_fir_compiler_ii_1911/synth/hb1s_altera_fir_compiler_ii_1911_kmsq6ua_rtl_core.vhd

    มีการใช้สําเนา "sim" สําหรับโปรแกรมจําลอง ซอฟต์แวร์ Intel® Quartus® Prime จะใช้สําเนา "synth"

    ทางเทคนิคแล้ว เฉพาะเวอร์ชันซิมของไฟล์เท่านั้นที่จะต้องได้รับการแก้ไขเพื่อแก้ไขการเตือนโปรแกรมจําลอง

    ปัญหานี้ได้รับการแก้ไขในซอฟต์แวร์ Intel® Quartus® Prime Pro Edition เวอร์ชัน 22.4

    ผลิตภัณฑ์ที่เกี่ยวข้อง

    บทความนี้จะนำไปใช้กับ 1 ผลิตภัณฑ์

    เอฟพีจีเอและเอฟพีจีเอ SoC Intel® Agilex™ 7 I-ซีรีส์

    เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้