Jika desain Anda berisi for-loop seperti ini:
bilangan bulat i;
untuk( i = ... ; ... ; ... ) mulai
a = ekspresi i ;
jika( ...... pernyataan kondisional tentang a ) mulai
Pernyataan;
......
Akhir
Akhir
Perangkat Lunak Prime Pro Edition Intel® Quartus® dapat mensintesis sejumlah besar tingkat logika dalam for-loop ini.
Jika for-loop berisi kondisi ini maka tidak dapat dioptimalkan untuk kedalaman logika
- Ekspresi penugasan yang bergantung pada variabel kontrol loop
- Pernyataan if bersarang di loop yang menggunakan hasil penetapan sebagai kondisi select
Pernyataan penugasan yang bergantung pada variabel kontrol loop harus dipindahkan dari blok for-loop untuk memungkinkan pengoptimalan lebih lanjut. Setelah berada di luar loop, pernyataan penugasan dapat dikonversi ke penugasan paralel ke setiap bit vektor. Kemudian hasil penugasan setiap siklus dapat diindeks oleh variabel kontrol loop dalam vektor yang baru dibuat ini.
Kode dapat dimodifikasi sebagai:
vektor[ N ] = ... ;
......
vektor[ 2 ] = ... ;
vektor[ 1 ] = ... ;
bilangan bulat i ;
untuk( i = ... ; ... ; ... ) mulai
jika( ...... Pernyataan kondisional tentang vektor[i] ) dimulai
Pernyataan;
......
Akhir
Akhir
Optimasi ini cocok untuk kasus-kasus di mana jumlah siklus tetap dan tidak terlalu besar. Optimasi dapat meningkatkan penggunaan ALUT sekaligus mengurangi jumlah tingkat logika.
Versi masa depan dari Perangkat Lunak Intel® Quartus® Prime Pro Edition dijadwalkan untuk mengoptimalkan kode asli secara otomatis.