Saya sudah melakukan ini beberapa kali sendiri.
Secara umum, alat desain akan memilih antara implementasi kain dan sepotong DSP berdasarkan pengaturan sintesis.
Misalnya, untuk Xilinx ISE, dalam pengaturan proses sintesis, Opsi HDL, ada pengaturan "-use_dsp48" dengan opsi: Otomatis, AutoMax, Ya, Tidak. Seperti yang dapat Anda bayangkan, ini mengontrol seberapa keras alat mencoba menempatkan Irisan DSP. Saya pernah punya masalah di mana saya mengalikan bilangan bulat dengan 3, yang menyimpulkan sepotong DSP - kecuali saya sudah secara manual menyimpulkan setiap potongan DSP dalam chip, jadi synth gagal! Saya mengubah pengaturan menjadi Tidak, karena saya sudah menggunakan setiap slice dsp.
Ini mungkin aturan praktis yang bagus (saya baru saja membuat): jika desain Anda clock di kurang dari 50 MHz, dan Anda mungkin akan menggunakan kurang dari 50% dari irisan DSP dalam chip, maka gunakan saja *, +, dan - operator. ini akan menyimpulkan irisan DSP tanpa register pipa. Ini benar-benar membatasi kecepatan tertinggi. (Saya tidak tahu apa yang terjadi ketika Anda menggunakan divisi)
Namun, jika sepertinya Anda akan menjalankan irisan lebih dekat dengan kecepatan maksimal slice DSP (333 MHz untuk Spartan 6 grade kecepatan normal). Dari Anda akan menggunakan semua irisan, Anda harus secara manual menyimpulkannya .
Dalam hal ini, Anda memiliki dua opsi.
Opsi 1: secara manual menggunakan template Instantiation DSP mentah. Opsi 2: gunakan blok IP dari Xilinx Core Generator. (Saya akan menggunakan opsi ini. Pada saat yang sama, Anda akan mempelajari semua tentang gen inti, yang akan membantu di masa depan)
Sebelum Anda melakukan salah satu dari ini, baca beberapa halaman pertama dari panduan pengguna slice DSP. Dalam kasus Spartan 6, (DSP48A1), itu adalah Xilinx doc UG389:
http://www.xilinx.com/support/documentation/user_guides/ug389.pdf
Pertimbangkan opsi Generator Inti terlebih dahulu. Saya biasanya membuat proyek pengujian di Core Generator untuk bagian saya bekerja dengan, di mana saya membuat sejumlah blok IP hanya untuk mempelajari sistem. Lalu, ketika saya siap untuk menambahkan satu ke desain saya di ISE, saya klik kanan di Design Hierarchy, klik sumber baru, dan pilih "IP (CORE Generator & Architecture Wizard)" sehingga saya dapat mengedit dan membuat ulang blok secara langsung dari proyek saya.
Di Core gen, lihat berbagai blok IP yang dapat Anda pilih - ada beberapa lusin, yang sebagian besar cukup keren.
Inti Pengganda adalah apa yang harus Anda perhatikan pada awalnya. Periksa setiap halaman, dan klik tombol lembar data. Bagian penting adalah lebar bit integer, tahapan pipa (latensi) dan sinyal kontrol apa pun. Ini menghasilkan blok paling sederhana dengan mengambil semua port yang tidak Anda butuhkan.
Ketika saya sedang membangun filter urutan IIR 5 dengan 3 tahun lalu, saya harus menggunakan template instantiasi manual karena saya sedang membangun implementasi yang sangat khusus, dengan 2 irisan DSP clock 4x lebih cepat dari laju sampel. Itu sangat menyakitkan.