1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

THIẾT KẾ BỘ FFT VÀ MÔ PHỎNG TRÊN QUARTUS (có code)

27 942 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 0,94 MB

Nội dung

THIẾT KẾ BỘ FFT VÀ MÔ PHỎNG TRÊN QUARTUS (có code)................... THIẾT KẾ BỘ FFT VÀ MÔ PHỎNG TRÊN QUARTUS (có code)................... THIẾT KẾ BỘ FFT VÀ MÔ PHỎNG TRÊN QUARTUS (có code)................... THIẾT KẾ BỘ FFT VÀ MÔ PHỎNG TRÊN QUARTUS (có code)................... THIẾT KẾ BỘ FFT VÀ MÔ PHỎNG TRÊN QUARTUS (có code)................... THIẾT KẾ BỘ FFT VÀ MÔ PHỎNG TRÊN QUARTUS (có code)...................

ĐỒ ÁN THIẾT KẾ BỘ FFT VÀ MÔ PHỎNG TRÊN QUARTUS MỤC LỤC DANH MỤC CÁC HÌNH VẼ DANH MỤC CÁC BẢNG BIỂU DANH MỤC CÁC TỪ VIẾT TẮT AHDL Altera Hardware Description Language ASIC Application-specific Integrated Circuit CPLD Complex Programmable Logic Device DFT Dicrete Fourier Transform DSP Digital Signal Processor DTFT Dicrete-Time Fourier Transform EDA Electronic Design Automation EDIF Electronic Design Interchange Format FFT Fast Fourier Transform FPGA Field-programmable gate array HDL Hardware Description Language IDFT Inverse Discrete Fourier Transform IFFT Inverse Fast Fourier Transform O Order PAL Programmable Array Logic PLA Programmable Logic Array PLD Programmable Logic Device RAM Random-access Memory ROM Read-only Memory SDF Single-path Delay Feedback SOPC System On a Programmable Chip SPLD Simple Programmable Logic Device VHDL VHSIC Hardware Description Language VHSIC Very High Speed Integrated Circuit ĐỒ ÁN Trang 6/23 CHƯƠNG TỔNG QUAN VỀ FPGA 1.1 FPGA Hình 1-1: KIT DE2-115 [3] FPGA vi mạch tích hợp dạng lớn dùng cấu trúc mảng logic mà người sử dụng lập trình Các phận cấu thành vi mạch FPGA: • Các khối logic lập trình (Logic Block) • Hệ thống mạch liên kết lập trình • Các khối xuất/nhập (I/O Pads) • Các phần tử thiết kế sẵn RAM, ROM, nhân vi xử lý, DSP Slice… 1.1.1 Lịch sử Thiết kế FFT mô Quartus ĐỒ ÁN Trang 7/23 FPGA thiết kế nhà sáng lập công ty Xilinx,Ross Freeman, vào năm 1984, kiến trúc FPGA cho phép tích hợp lượng lớn phần tử bán dẫn vào vi mạch so với CPLD Số lượng cổng logic mà FPGA có khả chứa từ 100.000 đến hàng tỷ cổng, đó, số mà CPLD có 10.000 - 100.000 cổng logic Ngồi PAL, PLA thấp với từ thấp 10.000 cổng CPLD cấu trúc từ lượng cố định khối SPLD (thuật ngữ chung cho PLA, PAL) SPLD mảng logic AND/OR lập trình có kích thước xác định chứa lượng hạn chế phần tử nhớ đồng (clocked register) Kiến trúc FPGA kiến trúc mảng khối logic, nhỏ nhiều so với khối SPLD, ưu điểm giúp FPGA chứa phần tử logic nhiều khả lập trình phần tử logic hệ thống mạch kết nối phát huy tối đa, kiến trúc FPGA phức tạp nhiều so với CPLD để đạt mục tiêu 1.1.2 Sự khác biệt FPGA với ASIC ASIC vi mạch IC thiết kế ứng dụng cụ thể FPGA xem loại vi mạch bán dẫn chuyên dụng giống ASIC ASIC đặc chế hoàn toàn hay ASIC thiết kế thư viện logic FPGA khơng thể giống loại đạt mức độ tối ưu, hạn chế việc thực chức với tác vụ đặc biệt phức tạp Tuy nhiên, FPGA lại có ưu cấu trúc lại sử dụng, chi phí giảm cơng đoạn thiết kế đơn giản hơn, nhờ mà thời gian đưa sản phẩm vào rút ngắn 1.1.3 Ứng dụng FPGA có nhiều ứng dụng như: xử lý số DSP, tiền thiết kế mẫu ASIC, phân tích nhận dạng ảnh, tiếng nói, mơ hình phần cứng máy tính, mật mã học… Các toán phức tạp FPGA giải nhanh mà trước thực phần mềm máy tính tính linh động cao q trình thiết kế Thiết kế FFT mô Quartus ĐỒ ÁN Trang 8/23 Ngoài ra, nhờ số lượng mật độ cổng logic FPGA tương đối lớn thực toán với độ phức tạp cao cần khối lượng bước tính tốn lớn dùng thực thời gian thực Thiết kế FFT mô Quartus ĐỒ ÁN Trang 9/23 CHƯƠNG TỔNG QUAN VỀ BỘ BIẾN ĐỔI FFT 1.2 DFT & FFT - 1.1.4 Ứng dụng - Tính tốn phổ tần tín hiệu - Thuật tốn tính chập vòng hiểu FFT Mã hóa dạng sóng, tiếng nói hay hình ảnh, cho việc truyền dẫn liệu hiệu 1.1.5 DFT (Discrete Fourier Transform) DFT biến đổi chuỗi N số điểm miền thời gian thành chuỗi số miền tần số IDFT (Inverse Discrete Fourier Transform) DFT đảo X(ωk) = ( DFT N điểm tín hiệu chiều dài L) (1) DFT N – điểm tín hiệu dài – L định nghĩa DTFT tính tốn N tần số phân bố toàn khoảng Nyquist, ≤ ω ≤ 2π ωk = , k = 0, 1, …, N – (2)  DFT: (3)  (4) Với k = 0, 1, 2, …, N – Trong đó: • x(n) ngõ vào miền liên tục thời gian, phân tích tín hiệu với N điểm • X(k) ngõ miền tần số • : trọng số nhân Viết thêm phần DFT đảo (IDFT): (5) Với n = 0, 1, 2, …, N – DFT IDFT thể dạng ma trận: Thiết kế FFT mô Quartus ĐỒ ÁN Trang 10/23 (6) Hoặc: X= Wx Với X= , x= , W= Lưu ý: W-1 = W 1.1.6 FFT (Fast Fourier Transform) Biến đổi fourier nhanh thuật toán biến đổi DFT chuỗi N điểm Có nhiều thuật tốn khác để tính tốn nhanh Ví dụ: Radix-2 (cơ số 2), Radix-4 (cơ số 4), Radix-mix (bộ trộn số)… Khác biệt FFT DFT FFT độ phức tạp tính tốn DFT thực với độ phức tạp O (N2) Còn FFT thực với độ phức tạp O (N log m N), với m số FFT Ví dụ: FFT số (Radix-2) có độ phức tạp O (N log2 N) 1.1.7 Radix-2 FFT (cơ số 2) Radix-2 số thiết kế thuật toán FFT Thiết kế Radix-2 FFT có phần tiết kiệm tài ngun nhờ đơn giản Nhưng bù lại cho việc đó, thuật tốn khơng có độ xác cao tốc độ thiết kế Radix-mix (trộn số) Ý tưởng thiết kế Radix-2 FFT dựa việc chia chuỗi N – điểm x(n) thành hai chuỗi N/2 điểm chẵn, đặt: x(2m), N/2 điểm lẻ, x(2m + 1), tính độc lập (7)  (8) • n chia thành phần: N/2 điểm chẵn N/2 điểm lẻ • điểm chẵn : x0(n) = x(2n) • điểm lẻ : x1(n) = x(2n+1)  Điểm chẵn: Thiết kế FFT mô Quartus ĐỒ ÁN Trang 13/23 Hình 2-2: Ví dụ cho mơ hình 8-điểm FFT Radix-2 [6] 1.1.8 Kiến trúc SDF (Single-path-Delay-Feedback) Hình 2-3: Kiến trúc SDF Radix-2 [2] Sau bước thực tầng SDF: Bước 1: N/2 liệu đầu ngõ vào mux ghi vào ghi dịch (shift regs) Không có liệu ngõ Bước 2: N/2 liệu đầu ghi dịch thực cộng (+), trừ (–) với liệu sau ngõ vào Sau đó, liệu cộng (+) xuất ngõ Dữ liệu trừ (–) hồi tiếp trở lại vào ghi dịch Bước 3: N/2 liệu ghi dịch sau bước xuất ngõ kết thúc q trình Thiết kế FFT mơ Quartus ĐỒ ÁN Trang 14/23 Hình 2-4: Sơ đồ khối tầng kề [2] Mỗi tầng SDF có đệm liệu hồi tiếp Dung lượng đệm tầng sau nửa dung lượng đệm tầng trước Bộ nhân số phức W nằm đường liệu hai tầng Việc thay đổi số Radix làm thay đổi cấu trúc cách điều khiển nhân W, không làm thay đổi cấu trúc tầng SDF Thiết kế FFT mô Quartus ĐỒ ÁN Trang 15/23 CHƯƠNG TỔNG QUAN VỀ PHẦN MỀM MƠ PHỎNG FPGA có nhiều loại phần mềm hỗ trợ để tích hợp mơ như: Quartus II, ModelSim, Xilinx… 1.3 Phần mềm Quartus II Hình 3-1: Giao diện Quartus II Quartus II phần mềm phát triển hãng Altera, cung cấp hỗ trợ môi trường thiết kế SOPC (hệ thống Chip khả trình) Phần mềm giúp người sử dụng tích hợp mơ thiết kế logic với linh kiện khả trình PLD Altera, bao gồm dòng Chip như: Cyclone, APEC, MAX, Stratix… Các công dụng Quartus bao gồm:  Thiết kế vẽ, sơ đồ khối, ngôn ngữ lập trình như: AHDL,VHDL, Verilog HDL  Thực mơ với linh kiện khả trình người dùng thiết kế Quartus Vector Waveform  Cho phép xuất, tạo file nguồn, thư viện để tạo file chương trình Thiết kế FFT mơ Quartus ĐỒ ÁN Trang 16/23  Kiểm tra định vị lỗi đoạn mã (code)  Khả lập trình nhận diện linh kiện  Phần mềm dụng tích hợp NativeLink@ với cơng cụ thiết kế cung cấp thông tin để kết nối Quartus với công cụ thiết kế phần cứng EDA khác  Phân tích logic nhúng nhờ có cơng cụ phân tích SignalTap@ II Ngồi ra, Quartus II cho phép kết hợp nhiều kiểu file dự án (Project) thiết kế phân cấp Có thể dùng tạo sơ đồ khối (Quartus Block Editor) để tạo sơ đồ khối mô tả thiết kế mức cao, dùng file thiết kế khác như: AHDL Text Design Files (.tdf), EDIF Input Files (.edf), VHDL Design Files (.vhd), Verilog HDL Design Files (.v) để tạo thành phần thiết kế mức thấp 1.4 Phần mềm ModelSim Hình 3-2: Giao diện ModelSim Cũng Quartus II, ModelSim hãng Altera phát triển ModelSim chương trình mơ hỗ trợ cho thiết kế ASIC hay FPGA cách mạnh mẽ hiệu cao Công dụng ModelSim mô phỏng, kiểm tra test chương trình cách hiệu chương trình Quartus II mơ kiểu liệu cao Các chức ModelSim: Thiết kế FFT mô Quartus ĐỒ ÁN Trang 17/23  Hỗ trợ riêng cho ngôn ngữ verilog, VHDL, systemC để kiểm tra cách hiệu môi trường thiết kế tối tân  Hiệu suất cao, trọng tải cao phục vụ cho thông số hồi quy nhanh  Thời gian gỡ lỗi nhanh chóng theo nhân gỡ lỗi môi trường đa ngôn ngữ  Cơng cụ phân tích qt mã nâng cao để kết thúc trình quét cách nhanh chóng Thiết kế FFT mơ Quartus ĐỒ ÁN Trang 18/23 CHƯƠNG KẾT QUẢ VÀ ĐÁNH GIÁ Phần mềm Quartus II mơ tổng hợp nhị phân (có dấu không dấu), thập lục phân, thập phân phần số ngun (integer) Nhưng điều khơng thể với số thực số phức Nên việc mơ phần số thực số phức, ta cần dùng đến phần mềm khác hỗ trợ Quartus II phần mềm ModelSim Kết kết FFT điểm điểm từ phương pháp số kiến trúc SDF sử dụng ngơn ngữ lập trình VHDL cho chương trình ModelSim sử dụng để mô kết ngõ số thực chia thành phần thực ảo từ ngõ vào số nguyên 1.5 Kết mơ Hình 4-1: FFT 4-point (nhị phân) Thiết kế FFT mô Quartus ĐỒ ÁN Trang 19/23 Hình 4-2: FFT 8-point (nhị phân) Hình 4-3: FFT 8-point (MATLAB) Thiết kế FFT mô Quartus ĐỒ ÁN Trang 20/23 Hình 4-4: FFT 8-point (thập phân) 1.6 Đánh giá kết Bảng đánh giá kết mô Quartus II + ModelSim với MATLAB Bảng 4-1: Kết đánh giá Quartus II + ModelSim với MATLAB (4-point) Ngõ vào (x) x0 = x1 = x2 = x3 = Quartus II + ModelSim (y) y0 = y1 = y2 = y3 =  Kết giống với MATLAB Thiết kế FFT mô Quartus MATLAB (y) y0 = y1 = y2 = y3 = ĐỒ ÁN Trang 21/23 Bảng 4-2: Kết đánh giá Quartus II + ModelSim với MATLAB (8-point) Ngõ vào (x) x0 = x1 = x2 = x3 = x4 = x5 = x6 = x7 = Quartus II + ModelSim (y) y0 = 28 y1 = – + 9.625i y2 = – + 4i y3 = – + 1.625i y4 = – y5 = – – 1.625i y6 = – – 4i y7 = – – 9.625i MATLAB (y) y0 = 28 y1 = – + 9.6563i y2 = – + 4i y3 = – + 1.6563i y4 = – y5 = – – 1.6563i y6 = – – 4i y7 = – – 9.6563i  Kết gần giống với MATLAB Như vậy, kết mô Quartus II + ModelSim hồn tồn giống với mơ ngõ vào kiểu số nguyên Còn với kiểu số thực, Quartus II + ModelSim có chuỗi bit sau dấu chấm dài kết gần giống với kết MATLAB Thiết kế FFT mô Quartus ĐỒ ÁN Trang 22/23 CHƯƠNG KẾT LUẬN 1.7 Kết luận Việc lập trình mơ xử lý số phần mềm Quartus II cho kết gần giống với kết MATLAB Ta thực ứng dụng xử lý số FPGA cách dễ dàng 1.8 Hướng phát triển Từ việc thực FFT điểm FPGA cách dễ dàng xác tương đối cao, người lập trình nâng lên bậc cao 16, 32, 64 đến 1024 điểm cao Ngồi ra, FFT sử dụng phương thức khác Radix-4, Radix-mix… để thực việc xử lý có ưu nhược điểm khác so sánh phương thức để chọn lọc Thiết kế FFT mô Quartus ĐỒ ÁN Trang 23/23 TÀI LIỆU THAM KHẢO Tiếng Việt: [1] Lê Tiến Thường “Xử Lý Số Tín Hiệu Và Wavelets” [2] http://www.dientuvietnam.net Tiếng Anh: [3] http://www.terasic.com.tw [4] Goran S Nikolic, Milorad D Cakic and Dragan J Cvetkovic “Fourier Transforms – High-tech Application and Current Trends”, Chapter 4, February 2017 [5] Richard G.Lyons “Understanding Digital Signal Processing (2nd Edition)” Chapter 4, 2004 [6] https://cnx.org/ Thiết kế FFT mô Quartus ĐỒ ÁN Trang 24/23 PHỤ LỤC A File library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_SIGNED.all; use IEEE.STD_LOGIC_ARITH.all; use ieee.math_real.all; use work.fft_pck.all; use work.fixed_float_types.all; use work.fixed_pkg.all; use work.float_pkg.all; entity VIP is Port (x0, x1, x2, x3, x4, x5, x6, x7: in integer; y0_r, y0_i, y1_r, y1_i, y2_r, y2_i, y3_r, y3_i, y4_r, y4_i, y5_r, y5_i, y6_r, y6_i, y7_r, y7_i: out real); end VIP; architecture Behavioral of VIP is component real_to_complex is Port (input_real_0, input_real_1, input_real_2, input_real_3, input_real_4, input_real_5, input_real_6, input_real_7: in integer; input_comp: out comp_array1); end component; component bin_to_dec1 is Port (outp_comp: in sfixed (8 downto -7); outp_real: out real); end component; component butterfly is Port (c1, c2: in complex; inputs Thiết kế FFT mô Quartus ĐỒ ÁN Trang 25/23 w: in complex; phase factor g1, g2: out complex outputs ); end component; constant w: comp_array := ( ("0000000010000000", "0000000000000000"), ("0000000001011010", "1111111110100110"), ("0000000000000000", "1111111110000000"), ("1111111110100110", "1111111110100110") ); constant a: real := 0.0; signal s, g, f, y: comp_array1 := (others => ("0000000000000000","0000000000000000")); begin Real Input value transformed in complex value sixteen_bits_complex_transform: real_to_complex port map (x0, x1 , x2, x3, x4, x5, x6, x7, s); first stage of butterfly's bf11: butterfly port map (s(0), s(4), w(0), g(0), g(4)); bf12: butterfly port map (s(2), s(6), w(2), g(2), g(6)); bf13: butterfly port map (s(1), s(5), w(1), g(1), g(5)); bf14: butterfly port map (s(3), s(7), w(3), g(3), g(7)); seconds stage of butterfly's bf21: butterfly port map (g(0), g(2), w(0), f(0), f(2)); bf22: butterfly port map (g(1), g(3), w(2), f(1), f(3)); bf23: butterfly port map (g(4), g(6), w(0), f(4), f(6)); bf24: butterfly port map (g(5), g(7), w(2), f(5), f(7)); thirds stage of butterfly's bf31: butterfly port map (f(0), f(1), w(0), y(0), y(4)); Thiết kế FFT mô Quartus ĐỒ ÁN Trang 26/23 bf32: butterfly port map (f(2), f(3), w(0), y(2), y(6)); bf33: butterfly port map (f(4), f(5), w(0), y(1), y(5)); bf34: butterfly port map (f(6), f(7), w(0), y(3), y(7)); bien doi binary - decimal btd0r: bin_to_dec1 port map (y(0).r, y0_r); btd0i: bin_to_dec1 port map (y(0).i, y0_i); btd1r: bin_to_dec1 port map (y(1).r, y1_r); btd1i: bin_to_dec1 port map (y(1).i, y1_i); btd2r: bin_to_dec1 port map (y(2).r, y2_r); btd2i: bin_to_dec1 port map (y(2).i, y2_i); btd3r: bin_to_dec1 port map (y(3).r, y3_r); btd3i: bin_to_dec1 port map (y(3).i, y3_i); btd4r: bin_to_dec1 port map (y(4).r, y4_r); btd4i: bin_to_dec1 port map (y(4).i, y4_i); btd5r: bin_to_dec1 port map (y(5).r, y5_r); btd5i: bin_to_dec1 port map (y(5).i, y5_i); btd6r: bin_to_dec1 port map (y(6).r, y6_r); btd6i: bin_to_dec1 port map (y(6).i, y6_i); btd7r: bin_to_dec1 port map (y(7).r, y7_r); btd7i: bin_to_dec1 port map (y(7).i, y7_i); end Behavioral; File Butterfly library IEEE; use IEEE.STD_LOGIC_1164.all; use work.fft_pck.all; use work.fixed_float_types.all; use work.fixed_pkg.all; use work.float_pkg.all; entity butterfly is Thiết kế FFT mô Quartus ĐỒ ÁN Trang 27/23 port ( c1, c2: in complex; inputs w: in complex; phase factor g1, g2: out complex outputs ); end butterfly; architecture a of butterfly is begin g1

Ngày đăng: 09/03/2018, 19:29

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w