Contoh ini menunjukkan cara mengimplementasikan filter desimal laju variabel multi-saluran di Intel® DSP Builder Advanced Blockset. Untuk banyak sistem pencitraan medis termasuk ultrasound dan magnetic resonance imaging (MRI) diperlukan filter desimal yang dapat dikonfigurasi ulang untuk mengurangi laju sampel data echo. Data yang dimasukkan memiliki laju sampel tetap; namun tingkat desimal integer perlu diubah secara real-time. Selain itu, total panjang filter tumbuh secara linear dengan laju desimal. Persyaratan serupa mungkin berlaku dalam aplikasi komunikasi nirkabel dan sistem lainnya. Struktur polifase sangat dioptimalkan untuk jenis aplikasi ini, karena jumlah multiplier diperbaiki pada waktu kompilasi dan tidak tumbuh dengan peningkatan kecepatan. Fitur utama desain ini adalah keran tunda sepanjang variabel dan penyimpanan koefisien filter yang efisien.
Fitur
Contoh desain ini memiliki fitur utama berikut:
- Dukungan untuk tingkat desimal integer arbitrer, termasuk kasus tanpa perubahan laju sampel
- Dukungan untuk jumlah saluran semena-mena, laju clock arbitrer, dan laju sampel input, selama clock rate cukup tinggi untuk memproses semua saluran dalam satu jalur data, atau dengan kata lain, tidak ada duplikasi perangkat keras
- Dukungan untuk konfigurasi ulang run-time tingkat desimal
- Penggunaan dua bank memori untuk penyimpanan koefisien filter alih-alih melakukan pra-penyimpanan koefisien untuk semua tingkat dalam memori. Fitur ini memungkinkan satu bank memori untuk diperbarui saat desain sedang membaca koefisien dari bank lain
- Kontrol penskalaan real-time dalam datapath finite impulse response (FIR)
Deskripsi Fungsi
Desain menggunakan struktur filter desimal polifase bentuk langsung dan ditunjukkan pada Gambar 1. Kontroler alamat menghasilkan alamat baca memori koefisien, pemilih bank, dan alamat penulisan variabel keran tunda. Koefisien disimpan dalam blok RAM pada chip. Keran tunda variabel juga diterapkan dalam memori dua port, dan penunjuknya dikontrol oleh laju desimal saat ini. Jumlah pengganda tetap digunakan.
Variabel blok tunda tap dalam contoh ini memiliki kedalaman run-time yang dapat dikonfigurasi ulang. Oleh karena itu, memori ini diimplementasikan sebagai memori elastis menggunakan blok RAM pada chip. Setiap keran tunda dialokasikan berdasarkan kasus terburuk. Jumlah penundaan aktual melalui blok keran tunda adalah berdasarkan tingkat desimal saat ini. Penunjuk tunggal atau sinyal alamat digunakan untuk operasi pembacaan dan penulisan ke keran tunda. Oleh karena itu Anda akan membaca dan menulis ke lokasi memori yang sama. RAM dua port dikonfigurasi untuk membaca konten memori lama, sehingga menyadari penundaan jumlah siklus tertentu.
Desain ini hanya menggunakan dua bank memori, dengan satu yang diperbarui sementara yang lain sedang dibaca. Antarmuka prosesor diperlukan untuk mewujudkan muatan ulang koefisien pada waktu proses.
Dalam skrip pengaturan untuk desain ini, kami mendefinisikan clock rate, laju desimal, panjang filter, mesin pengganda, dsb. Manajemen lebar bit juga skrip untuk parameterisasi. Parameter utama dan definisinya tercantum dalam tabel berikut.
Semua parameter dapat dimodifikasi untuk menargetkan desain yang berbeda. Kode HDL baru akan dihasilkan berdasarkan parameter yang diperbarui.
Tabel 1. Parameter untuk Contoh Filter Desimal Kecepatan Variabel
Definisi Parameter | |
---|---|
ClockRate | Clock rate FPGA yang seharusnya menjadi target fMAX |
Kecepatan Sampel | Laju sampel data yang diinput |
Periode | Jumlah siklus yang tersedia di antara sampel input unik. Sama dengan ClockRate/SampleRate dan merupakan parameter waktu kompilasi |
ChanCount | Jumlah kanal input, dan tidak boleh lebih dari Periode |
Rmax | Tingkat desimal maksimum yang didukung desain |
R | Tingkat desimal saat ini, dan tidak boleh lebih dari Rmax |
L | Ukuran kernel FIR, atau ukuran mesin pengganda. Ini mewakili panjang filter FIR polifase |
Untuk informasi lebih lanjut tentang merancang filter resampling di DSP Builder Advanced Blockset, silakan merujuk ke AN 623: Menggunakan DSP Builder Advanced Blockset untuk Menerapkan Filter Resampling (PDF).
Unduh file yang digunakan dalam contoh ini:
File dalam unduhan zip ini meliputi:
- vardownsampler.mdl – Bench uji tingkat atas dan file desain DSP Builder Advanced Blockset untuk filter desimal yang dapat dikonfigurasi ulang
- setup_vardownsampler.m – Skrip MATLAB* untuk mengonfigurasi inisialisasi dan parameter vardownsampler.mdl
- vardownsampler_bare.mdl – File desain berdasarkan vardownsampler.mdl. Beberapa blok bench uji yang tidak dapat disintesis dihapus untuk generasi register transfer level (RTL)
Untuk informasi lebih lanjut tentang fitur terkait yang digunakan dalam contoh desain ini dalam proyek Anda, kunjungi: