ID บทความ: 000075459 ประเภทข้อมูล: การแก้ไขปัญหา การตรวจสอบครั้งล่าสุด: 11/09/2012

ค่าคงที่ของจุดลอยตัวจะถูกคอมไพล์เป็นความแม่นยําเดียวหรือ Double Precision เมื่อใช้คําสั่งแบบกําหนดเองของจุดลอยตัว

สิ่งแวดล้อม

  • จุดลอยตัว
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    คำอธิบาย

    ตามค่าเริ่มต้น เมื่อมีการใช้คําสั่งแบบกําหนดเอง ค่าคงที่ของจุดลอยตัวจะถูกคอมไพล์เป็นการดําเนินการจุดลอยตัวที่มีความแม่นยําเดียวและความแม่นยําเดียวจะถูกนําไปใช้ในฮาร์ดแวร์ การแก้ไขปัญหาต่อไปนี้จะบังคับให้ค่าคงที่ของจุดลอยตัวถูกคอมไพล์เป็นการดําเนินการจุดลอยตัวที่มีความแม่นยําสองเท่าและมีความแม่นยําสองเท่าในซอฟต์แวร์

    คุณสามารถใช้วิธีแก้ไขปัญหาใดวิธีหนึ่งต่อไปนี้ :

    ทางเลือกที่ 1 - ปรับเปลี่ยนซอฟต์แวร์ของคุณด้วยการเพิ่ม postfix "L" ไปยังค่าคงที่จุดลอยตัวแบบสองความแม่นยําเพื่อให้แน่ใจว่าค่าคงที่ไม่ได้รับการแปลงเป็นความแม่นยําเดียว

    ตารางต่อไปนี้แสดงตัวอย่างโค้ดและจุดลอยตัวการใช้งานฮาร์ดแวร์คําสั่งแบบกําหนดเอง ความแม่นยํา และว่าการใช้งานอยู่ในฮาร์ดแวร์หรือซอฟต์แวร์

    รหัสตัวอย่าง  การใช้งาน FP CI   แม่นยำ  การนําไปใช้  
    b= a * 4.67ใช่เดียว ฮาร์ดแวร์
    b = a * 4.67ไม่ใช่คู่ ซอฟต์แวร์
    b = a * 4.67fใช่เดียว ฮาร์ดแวร์
    b = a * 4.67fไม่ใช่เดียว ซอฟต์แวร์
    b = a * 4.67Lไม่ต้องสนใจ*คู่ ซอฟต์แวร์
    * ฮาร์ดแวร์ FP CI จะไม่ถูกใช้สําหรับการทํางานที่มีความแม่นยําแบบคู่

    ทางเลือกที่ 2 - ใน public.mk ให้ถอดแฟลก -mcustom-fpu-config ออกด้วยตนเองและแทนที่ด้วยแฟล็กคอมไพเลอร์แต่ละตัว แต่ไม่ใช้แฟลก -fsingle-precision-constant

    "-mcustom-fpu-config=60-1" ไปยัง "-mcustom-fmuls=252 –mcustom-fads=253 –mcustom-fsubs=254" หรือ

    "-mcustom-fpu-config=60-2" ไปยัง "-mcustom-fmuls=252 –mcustom-fads=253 –mcustom-fsubs=254 –mcustom-divs=255"

    โปรดทราบว่าความแตกต่างระหว่าง 60-1 และ 60-2 คือ 60-1 ไม่มีแฟลก –mcustom-divs

    หากต้องการทราบรายละเอียดเพิ่มเติม โปรดดูภาคผนวก D in http://www.altera.com/literature/ug/ug_nios2_custom_instruction.pdf

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

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

    อุปกรณ์ที่ตั้งโปรแกรมได้ Intel®

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