ID บทความ: 000077859 ประเภทข้อมูล: ข้อมูลผลิตภัณฑ์และเอกสารประกอบ การตรวจสอบครั้งล่าสุด: 23/04/2013

ฉันจะใช้ตัวคูณที่ซับซ้อน 25x18 ในบล็อก DSP แบบ Varialbe-Precision เพียง 3 บล็อกเท่านั้นได้อย่างไร

สิ่งแวดล้อม

  • Intel® Quartus® II Subscription Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    คำอธิบาย

    ตระกูลอุปกรณ์ 28 nm ทั้งหมด รวมถึง Stratix® V, Arria® V และ Cyclone® V สามารถรองรับโครงสร้างตัวคูณที่ซับซ้อนขนาด 25x18 โดยใช้บล็อก DSP แบบผันแปร 3 บล็อก

    มีข้อจํากัดในซอฟต์แวร์ Quartus® II เมื่อใช้ Megacore® ที่ใช้โครงสร้างนี้โดยใช้ 4 บล็อก DSP

    ความละเอียด

    ในการแก้ไขปัญหาข้อจํากัดนี้ ให้ใช้เทมเพลตโค้ดตัวคูณ Complex 25x18 ที่พบในเทมเพลตซอฟต์แวร์ Quartus II เพื่ออนุมานตัวคูณที่ซับซ้อนของคุณ  ในการใช้เทมเพลตโค้ดนี้ ก่อนอื่นคุณจะต้องเปิดไฟล์การออกแบบใหม่ จากนั้นเลือกเทมเพลตนี้จากเทมเพลตที่มีในซอฟต์แวร์ Quartus II  เทมเพลตนี้พบได้ในเทมเพลต Verilog หรือ VHDL ภายใต้การออกแบบเต็มรูปแบบ>คุณสมบัติ DSP > ด้านเลขคณิต (Stratix-V, Arria-V และ Cyclone-V)

    เพื่อความสะดวกของคุณ เทมเพลตโค้ดสําหรับ Verilog มีด้านล่าง:

    เทมเพลต Quartus II Verilog
    คอมเพล็กซ์ 25x18 คูณ
    สําหรับการใช้งานกับตระกูลอุปกรณ์ Stratix V, Arria-V, Cyclone-V และรุ่นที่ใหม่กว่า

    โมดูล complex_25x18 (x_r, x_i, y_r, y_i, นาฬิกา, ena1, ena0, รีเซ็ต, p_r, p_i);
    เทมเพลตนี้ใช้กับโหมด 25x18 ที่ซับซ้อนบน Stratix-V
    อินพุต [24:0] x_r;
    อินพุต [24:0] x_i;
    อินพุต [17:0] y_r;
    อินพุต [17:0] y_i;
    Stratix-V DSP รองรับคู่สัญญาณนาฬิกา/ena สูงสุด 3 คู่ และสัญญาณรีเซ็ตไม่ต่อเนื่อง 2 ตัว
    สัญญาณนาฬิกาอินพุต;
    อินพุต ena1;
    อินพุต ena0;
    รีเซ็ตอินพุต;
    เอาต์พุต [43:0] p_r;
    เอาต์พุต [43:0] p_i;

    อินพุต/เอาต์พุตทั้งหมดต้องลงชื่อ
    การลงทะเบียนอินพุตทั้งหมดต้องใช้ {clock, ena, reset} เดียวกัน
    การลงทะเบียนเอาต์พุตทั้งหมดต้องใช้ {clock, ena, reset} เดียวกัน
    reged [24:0] x_r_reg, x_i_reg;
    reg ลงนามแล้ว [17:0] y_r_reg, y_i_reg;
    reg ลงนามแล้ว [43:0] p_r, p_i;

    สายที่ลงชื่อไว้ [25:0] a1;
    สายที่ลงชื่อไว้ [18:0] a2;
    สายที่ลงชื่อไว้ [18:0] a3;
    ใช้สายแบบลงนาม [43:0] p1;
    มีสายที่ลงชื่อไว้ [43:0] p2;
    มีสายที่ลงชื่อไว้ [43:0] p3;

    มอบหมาย a1 = x_r_reg - x_i_reg;
    มอบหมาย p1 = a1 * y_i_reg;
    มอบหมาย a2 = y_r_reg - y_i_reg;
    มอบหมาย p2 = a2 * x_r_reg;
    มอบหมาย A3 = y_r_reg y_i_reg;
    มอบหมาย p3 = a3 * x_i_reg;

    @(posedge clock หรือ posedge รีเซ็ตเสมอ)
    เริ่ม ต้น
    if (reset == 1\'b1)
    เริ่ม ต้น
    x_r_reg <= 0
    x_i_reg <= 0;
    y_r_reg <= 0;
    y_i_reg <= 0;
    p_r <= 0
    p_i <= 0
    สิ้น สุด
    อื่น
    เริ่ม ต้น
    ถ้า (ena0 == 1\'b1)
    เริ่ม ต้น
    x_r_reg <= x_r;
    x_i_reg <= x_i;
    y_r_reg <= y_r;
    y_i_reg <= y_i;
    สิ้น สุด
    if (ena1 == 1\'b1)
    เริ่ม ต้น
    p_r <= p1 p2;
    p_i <= p1 p3;
    สิ้น สุด
    สิ้น สุด
    สิ้น สุด

    endmodule

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

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

    Stratix® V GX FPGA
    Cyclone® V GX FPGA
    Stratix® V GT FPGA
    Stratix® V GS FPGA
    Arria® V GZ FPGA
    Arria® V SX SoC FPGA
    Cyclone® V ST SoC FPGA
    Arria® V ST SoC FPGA
    Arria® V GX FPGA
    Arria® V GT FPGA
    Cyclone® V E FPGA
    Stratix® V E FPGA
    Cyclone® V SE SoC FPGA

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