หากการออกแบบของคุณมี For-Loop ดังนี้
จํานวนเต็ม i;
สําหรับ( i = ... ; ... ; ... ) เริ่ม
a = นิพจน์ของ i ; 1
ถ้า... คําแถลงแบบมีเงื่อนไขเกี่ยวกับ
คำ สั่ง;
......
สิ้น สุด
สิ้น สุด
ซอฟต์แวร์ Intel® Quartus® Prime Pro Edition อาจสังเคราะห์ระดับลอจิกจํานวนมากในนี้สําหรับลูป
หาก for-loop มีเงื่อนไขเหล่านี้ จะไม่สามารถปรับให้เหมาะสมสําหรับความลึกของตรรกะ
- นิพจน์การมอบหมายที่ขึ้นอยู่กับตัวแปรควบคุมลูป
- คําสั่ง if ที่ซ้อนกันในลูปซึ่งใช้ผลลัพธ์การกําหนดเป็นเงื่อนไขที่เลือก
ควรย้ายคําสั่งการมอบหมายที่ขึ้นอยู่กับตัวแปรการควบคุมลูปออกจากบล็อก for-loop เพื่อเปิดใช้งานการเพิ่มประสิทธิภาพเพิ่มเติม เมื่ออยู่นอกลูป คําสั่งมอบหมายสามารถแปลงเป็นงานมอบหมายแบบขนานให้กับเวกเตอร์แต่ละบิตได้ จากนั้นผลลัพธ์การมอบหมายของแต่ละรอบสามารถจัดทําดัชนีโดยตัวแปรควบคุมลูปในเวกเตอร์ที่เพิ่งสร้างใหม่นี้
แก้ไขรหัสได้ดังนี้:
เวกเตอร์[ N ] = ... ;
......
เวกเตอร์[ 2 ] = ... ;
เวกเตอร์[ 1 ] = ... ;
จํานวนเต็ม i ;
สําหรับ( i = ... ; ... ; ... ) เริ่ม
ถ้า... คําแถลงตามเงื่อนไขเกี่ยวกับเวกเตอร์[i] )
คำ สั่ง;
......
สิ้น สุด
สิ้น สุด
การปรับแต่งประสิทธิภาพเหมาะสําหรับกรณีที่จํานวนรอบได้รับการแก้ไขและไม่ใหญ่มาก การปรับแต่งประสิทธิภาพอาจเพิ่มการใช้งาน ALUT ในขณะที่ลดจํานวนระดับลอจิก
เวอร์ชันในอนาคตของซอฟต์แวร์ Intel® Quartus® Prime Pro Edition มีกําหนดเวลาเพื่อเพิ่มประสิทธิภาพโค้ดดั้งเดิมโดยอัตโนมัติ