Ví dụ này mô tả chuyển đổi Fourier nhanh 32K điểm (FFT) bằng cách sử dụng lõi FFT Intel® FPGA sở hữu trí tuệ (IP). FFT là một thuật toán chuyển đổi Fourier (DFT) rời giúp giảm số lượng tính toán cần thiết từ O(N2) sang O(NlogN) bằng cách phân hủy. DFT của chuỗi x(n) được đưa ra bởi các thuật toán sau:
trong đó k = 0, 1, ... N-1 và N là chiều dài biến đổi.
Trong ví dụ thiết kế này, chiều dài biến đổi, N, là 32768. Sử dụng phương pháp decimation in time (DIT) , thiết kế phân tích chuỗi đầu vào thành các mẫu lẻ và thậm chí là nguồn cấp dữ liệu vào hai khối FFT 16K-point riêng lẻ được triển khai song song bằng cách sử dụng lõi FFT Intel FPGA IP. Kết quả từ lõi FFT Intel FPGA IP được tái tổ hợp và đặt lại để có được đầu ra FFT cuối cùng. Điều này được hiển thị trong Hình 1. Tương tự như lõi điều khiển FFT Intel FPGA IP, ví dụ thiết kế sử dụng giao diện đầu vào và đầu ra tuân thủ Theo Thông số Kỹ thuật số.
Tải xuống các tệp được sử dụng trong ví dụ này:
Việc sử dụng thiết kế này được điều chỉnh và tuân theo, các điều khoản và điều kiện của Thỏa thuận cấp phép thiết kế tham chiếu phần cứng Intel ® .
Các tệp trong tệp tải xuống zip bao gồm:
- fft_32K.v—Tập tin thiết kế cấp cao nhất triển khai FFT 32K-point
- parse_fft_input.v—Đặt lại mẫu đầu vào thành các mẫu chẵn và lẻ để đưa vào hai khối FFT 16K điểm nhỏ hơn
- fft_small.v—Tệp Wrapper được tạo bởi trình điều khiển FFT Intel FPGA IP. Lõi được định cấu hình để triển khai độ dài biến đổi là 16K và lõi này sử dụng cấu trúc luồng dữ liệu I/O phát trực tiếp.
- combine_fft.v—Tổ hợp lại đầu ra của các khối FFT 16K điểm riêng bằng cách sử dụng các yếu tố cấu hình thích hợp
- fft_32K_streaming_tb.v—Testbench cho mô phỏng RTL
- fft_32K_streaming_vo_msim.tcl—Kịch bản TCL để tự động hóa quy trình mô phỏng RTL trong phần mềm ModelSim-Intel FPGA mềm
- fft_32K_tb.m—mô hình MATLAB để xác minh các kết quả mô phỏng RTL
Hình 1 cho thấy biểu đồ cấp cao nhất của ví dụ thiết kế FFT 32K điểm.
Bảng 1 liệt kê các cổng và đưa ra mô tả cho từng cổng.
Bảng 1. Danh sách cổng FFT 32K-Point
Mô tả loại | tên | cổng |
---|---|---|
data_real_in[15:0], data_imag_in[15:0] |
Nhập | Đầu vào dữ liệu phức tạp 16 bit |
Clk | Nhập | Đồng hồ hệ thống FFT |
Reset | Nhập | Cài đặt lại cao chủ động |
master_sink_dav | Nhập | Tín hiệu khả dụng về dữ liệu chính: Được hiển thị bởi nguồn dữ liệu phụ của FFT để chỉ ra tính khả dụng của mẫu dữ liệu đối với dữ liệu đầu vào vào chức năng FFT |
master_sink_ena | Ra | Tín hiệu cho phép ghi chìm chính: Được hiển thị bằng chức năng FFT để chỉ ra rằng dữ liệu có thể được viết vào chức năng |
master_sink_sop | Nhập | Đầu vào bắt đầu của gói tin: Cho biết chức năng FFT khi bắt đầu khối dữ liệu đầu vào. Nên hiển thị đồng bộ một chu kỳ đồng bộ với mẫu dữ liệu đầu vào đầu tiên |
fft_real_out[15:0], fft_imag_out[15:0] | Ra | Đầu ra dữ liệu phức tạp 16 bit |
exponent_out[5:0] | Ra | Số mũ khối đã ký: Tài khoản để mở rộng các giá trị tín hiệu nội bộ trong quá trình tính toán FFT |
master_source_dav |
Nhập | Được erted bởi chìm phụ thuộc trên đầu ra của chức năng FFT để chỉ ra rằng nó có thể chấp nhận một khối mẫu đầu ra |
master_source_ena | Ra | Bật nguồn chính: Được hiển thị bằng chức năng FFT khi dữ liệu khả dụng được xuất bởi FFT |
master_source_sop | Ra | Đầu ra bắt đầu của gói: Được hiển thị trên mẫu đầu ra đầu tiên của từng khối |
master_source_eop | Ra | Đầu ra cuối gói: Hiển thị trên mẫu đầu ra cuối cùng của từng khối |
Liên kết liên quan
Để biết thêm thông tin về các tính năng liên quan được sử dụng trong ví dụ thiết kế này trong dự án của bạn, hãy truy cập: