ใช่ มีปัญหาการประมาณการเมื่อใช้แพ็คเกจ math_real VHDL ในซอฟต์แวร์ Quartus® II สําหรับฟังก์ชันบันทึกและชั้นร่วมกัน ในบางสถานการณ์ ข้อผิดพลาดการปัดเศษอาจนําไปสู่มูลค่าพื้นที่ไม่ถูกต้องที่กําลังคํานวณ
ตัวอย่างเช่น เมื่อใช้ฟังก์ชันแพคเกจ math_real เพื่อคํานวณ log2(8.0) คําตอบที่ถูกต้องควรเป็น 3.0 แต่มูลค่าที่คํานวณได้จริงในซอฟต์แวร์ Quartus II คือ 2.9999999999999996 ผลลัพธ์ที่ได้คือ 2.0 แทนที่จะเป็น 3.0
ตัว อย่าง เช่น
floor(log2(real(8))) = 2.0
หากต้องการแก้ไขปัญหานี้ในซอฟต์แวร์ Quartus II ให้ใช้หนึ่งในตัวเลือกต่อไปนี้
- หากมีการใช้ฟังก์ชัน floor เพื่อคํานวณบันทึก ให้เพิ่มส่วนต่างของข้อผิดพลาด
- ตัว อย่าง เช่น:
floor(0.000001 log2(real(8))) = 3.0
- ใช้ฟังก์ชันการแปลงจํานวนเต็มแทนฟังก์ชัน floor
- ตัว อย่าง เช่น:
integer (log2(real(8))) = 3.0
ปัญหานี้ได้รับการกําหนดเวลาให้แก้ไขในซอฟต์แวร์ Quartus II ในอนาคต