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-ซีรีส์

1

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