Contoh ini menguraikan transformasi Fourier cepat (FFT) 32K poin menggunakan FFT Intel® FPGA inti kekayaan intelektual (IP). FFT adalah algoritma fourier transform (DFT) terpisah yang mengurangi jumlah komputasi yang diperlukan dari O(N2) ke O(NlogN) dengan dekomposisi. DFT urutan x(n) diberikan oleh persamaan berikut:
di mana k = 0, 1, ... N-1 dan N adalah panjang transformasinya.
Dalam contoh desain ini, panjang transformasi, N, adalah 32768. Menggunakan metode decimation in time (DIT), desain mendobrak urutan input menjadi sampel ganjil dan genap yang masuk ke dalam dua blok FFT 16K titik individu yang diterapkan secara paralel menggunakan inti FFT Intel FPGA IP. Hasil dari inti FFT Intel FPGA IP dikombinasikan ulang dan disatukan ulang untuk mendapatkan output FFT akhir. Hal ini ditunjukkan pada Gambar 1. Mirip dengan inti FFT Intel FPGA IP, contoh desain menggunakan antarmuka input dan output yang mematuhi Atlantic.
Unduh file yang digunakan dalam contoh ini:
Penggunaan desain ini diatur oleh, dan tunduk pada, syarat dan ketentuan dari Perjanjian Lisensi Desain Referensi Perangkat Keras intel® .
File dalam unduhan zip meliputi:
- fft_32K.v—File desain tingkat atas yang menerapkan FFT 32K poin
- parse_fft_input.v—Menyusun ulang sampel input menjadi sampel genap dan ganjil untuk disalurkan ke dua blok FFT 16K titik yang lebih kecil
- fft_small.v—File wrapper yang dihasilkan oleh FFT Intel FPGA IP. Inti dikonfigurasi untuk mengimplementasikan panjang transformasi 16K, dan menggunakan struktur aliran data I/O streaming.
- combine_fft.v—Menggabungkan kembali output dari masing-masing blok FFT 16K-titik menggunakan faktor twiddle yang sesuai
- fft_32K_streaming_tb.v—Testbench untuk simulasi RTL
- fft_32K_streaming_vo_msim.tcl—Skrip TCL untuk mengotomatiskan proses simulasi RTL dalam perangkat lunak ModelSim- Intel FPGA
- fft_32K_tb.m—Model MATLAB untuk memverifikasi hasil simulasi RTL
Gambar 1 menunjukkan diagram tingkat atas contoh desain FFT 32K poin.
Tabel 1 mencantumkan port dan memberikan deskripsi untuk masing-masing port.
Tabel 1. Daftar Port FFT 32K-Titik
Deskripsi | Jenis | Nama Port |
---|---|---|
data_real_in[15:0], data_imag_in[15:0] |
Input | Input data kompleks 16 bit |
Clk | Input | Clock sistem FFT |
Reset | Input | Aktifkan reset tinggi |
master_sink_dav | Input | Sinyal tersedia data wastafel master: Dikukuhkan oleh sumber data slave FFT untuk menunjukkan ketersediaan sampel data untuk diinput ke fungsi FFT |
master_sink_ena | Output | Sinyal aktifkan penulisan wastafel master: Ditegaskan oleh fungsi FFT untuk mengindikasikan bahwa data dapat ditulis ke dalam fungsi |
master_sink_sop | Input | Mulai masukan paket: Mengindikasikan fungsi FFT sebagai awal dari blok data yang diinput. Harus disinkronkan untuk satu siklus clock yang sinkron dengan sampel data input pertama |
fft_real_out[15:0], fft_imag_out[15:0] | Output | Output data kompleks 16 bit |
exponent_out[5:0] | Output | Eksponen blok yang ditandatangani: Akun untuk penskalaan nilai sinyal internal selama komputasi FFT |
master_source_dav |
Input | Disangkal oleh slave sink pada keluaran fungsi FFT untuk mengindikasikan bahwa ia dapat menerima satu blok sampel output |
master_source_ena | Output | Sumber induk diaktifkan: Ditegaskan oleh fungsi FFT ketika data tersedia untuk menjadi output oleh FFT |
master_source_sop | Output | Awal keluaran paket: Disangkal pada sampel keluaran pertama dari setiap blok |
master_source_eop | Output | Akhir paket output: Ditegaskan pada sampel keluaran terakhir dari setiap blok |
Tautan Terkait
Untuk informasi lebih lanjut tentang fitur terkait yang digunakan dalam contoh desain ini dalam proyek Anda, kunjungi: