рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдПрдХ рдмрд╛рд░, рдЧреНрд░рд╛рд╣рдХреЛрдВ рдиреЗ рдореБрдЭрд╕реЗ рдкреВрдЫрд╛ рдХрд┐ рдХреНрдпрд╛ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдкреВрд░реНрдгрд╛рдВрдХ рдПрдлрдПрдлрдЯреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ рдХрд┐ рдпрд╣
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреВрд╕рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП, рдпрджреНрдпрдкрд┐ рдореБрдбрд╝реЗ рд╣реБрдП рдХреЗ рд░реВрдк рдореЗрдВ
рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ , рд▓реЗрдХрд┐рди рдирд┐: рд╢реБрд▓реНрдХ рдЖрдИрдкреА рдХреЛрд░ (рдПрд▓реЗрдЯрд╛ / рдПрдХреНрд╕рд┐рд▓реИрдХреНрд╕) - рдЗрд╕реЗ рд▓реЗрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпреЗ рдХреЛрд░
рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реИрдВ, "рд╕реБрд╡рд┐рдзрд╛рдУрдВ" рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдФрд░ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдПрдХ рдФрд░ рдирд┐рдпреЛрдЬрд┐рдд рдЫреБрдЯреНрдЯреА рдкрд░ рдЪрд▓реЗ рдЧрдП, рдЬреЛ рдореИрдВ рдФрд╕рдд рдЦрд░реНрдЪ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдореИрдВрдиреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдПрдлрдПрдлрдЯреА рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рдХрд░реНрдиреЗрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред
KDPV (рдбреЗрдЯрд╛ рдУрд╡рд░рдлрд╝реНрд▓реЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛)рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдзреБрдирд┐рдХ FPGA рдХреНрд░рд┐рд╕реНрдЯрд▓ рдкрд░ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдлреВрд░рд┐рдпрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп рдХрд┐рди рддрд░реАрдХреЛрдВ рдФрд░ рд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реЛрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА FFT рдХрд╛ рдЖрдзрд╛рд░ "рддрд┐рддрд▓реА" рдирд╛рдордХ рдПрдХ рдиреЛрдб рд╣реИред рддрд┐рддрд▓реА рдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ - рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЧреБрдгрд╛ рдФрд░ рдШрдЯрд╛рд╡ред рдпрд╣ "рддрд┐рддрд▓реА" рдФрд░ рдЗрд╕рдХреЗ рд╕рдорд╛рдкреНрдд рдиреЛрдбреНрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдХрд┐ рдХрд╣рд╛рдиреА рдкрд╣рд▓реЗ рдЬрд╛рдПрдЧреАред рдЖрдзреБрдирд┐рдХ Xilinx FPGA рдкрд░рд┐рд╡рд╛рд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ - рдпрд╣ Ultrascale рдФрд░ Ultrascale + рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдкреБрд░рд╛рдиреА рд╢реНрд░реГрдВрдЦрд▓рд╛ 6- (Virtex) рдФрд░ 7- (Artix, Kintex, Virtex) рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИрдВред рдЖрдзреБрдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкреБрд░рд╛рдиреА рд╢реНрд░реГрдВрдЦрд▓рд╛ 2018 рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИред рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдПрдлрдПрдлрдЯреА рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд┐рдЬрд┐рдЯрд▓ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рдХрд╕реНрдЯрдо рдХрд░реНрдиреЗрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рдирд╛ рд╣реИред
рдкрд░рд┐рдЪрдп
рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рднреА рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдлрдПрдлрдЯреА рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдбрд┐рдЬрд┐рдЯрд▓ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЗ рдЬреАрд╡рди рдореЗрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдЙрд▓рдЭреЗ рд╣реБрдП рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдЙрдкрдХрд░рдг рдХреА рд▓рдЧрд╛рддрд╛рд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Altera / Xilinx рдЬреИрд╕реЗ рдЕрдЧреНрд░рдгреА FPGA рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рдЪреАрд▓реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп FFT / IFFT рдХреЛрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреА рдХрдИ рд╕реАрдорд╛рдПрдБ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдмрд╛рд░ рдореБрдЭреЗ FPGA рдкрд░ рдореВрд▓рд╛рдВрдХ -2 рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ FFT рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рдЕрдкрдиреЗ рдЕрдВрддрд┐рдо рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ
рдПрдлрдПрдлрдЯреА рдХрд┐рдпрд╛ рдерд╛ , рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рдЖрдкрдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдПрдлрдПрдлрдЯреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛрд╣рд░реЗ рд╕рдорд╛рдирд╛рдВрддрд░рд╡рд╛рдж рдХреЗ рд╕рд╛рде рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛рдиреА
рдХрд░реНрдиреЗрд▓ рдПрдХ рд╣реА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рджреЛ рдЬрдЯрд┐рд▓ рдирдореВрдиреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ ред рдпрд╣ рдПрдХ рдкреНрд░рдореБрдЦ FFT рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ Xilinx FFT рддреИрдпрд╛рд░ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред
рдЙрджрд╛рд╣рд░рдг: 800 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЗ рдирд┐рд░рдВрддрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдлрдПрдлрдЯреА рдиреЛрдб рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред Xilinx рдХрд╛ рдХреЛрд░ рдЗрд╕реЗ рдирд╣реАрдВ рдЦреАрдВрдЪреЗрдЧрд╛ (рдЖрдзреБрдирд┐рдХ FPGAs рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдШрдбрд╝реА рдЖрд╡реГрддреНрддрд┐рдпрд╛рдВ 300-400 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреЗ рдХреНрд░рдо рдХреА рд╣реИрдВ), рдпрд╛ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдХрд╕реНрдЯрдо рдХреЛрд░ рдЖрдкрдХреЛ 800 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдкрд░ рдПрдХ рдПрдХрд▓ рдирдореВрдиреЗ рдХреЗ рдмрдЬрд╛рдп 400 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рджреЛ рдЗрдирдкреБрдЯ рдирдореВрдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
Xilinx FFT рдХреЛрд░ рдХрд╛ рдПрдХ рдФрд░
рдЛрдг рдмрд┐рдЯ-рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ рд╣реИ ред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХреНрд░рдо рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдкреБрдирд░реНрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд╛рд▓ FPGA рдЪрд┐рдк рдореЗрдореЛрд░реА рд╕рдВрд╕рд╛рдзрди рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рддреЗрдЬреА рд╕реЗ рджреГрдврд╝реАрдХрд░рдг рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЬрдм рджреЛ рдПрдлрдПрдлрдЯреА рдиреЛрдб рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдкреАрдЫреЗ рдЦрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖рдг рдмрди рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдХрд╛рд░реНрдп рдХреЗрд╡рд▓ рдЪрдпрдирд┐рдд рдПрдлрдкреАрдЬреАрдП рдЪрд┐рдк рдореЗрдВ рдЭреВрда рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдХрд╕реНрдЯрдо рдПрдлрдПрдлрдЯреА рдХреЛрд░ рдЖрдкрдХреЛ рдЗрдирдкреБрдЯ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рдХреНрд░рдо рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдмрд┐рдЯ-рд░рд┐рд╡рд░реНрд╕ рдореЛрдб рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЙрд▓рдЯрд╛ рдПрдлрдПрдлрдЯреА рдХрд╛ рдХреЛрд░ - рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдмрд┐рдЯ-рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдХреНрд░рдордЪрдп рдХреЗ рд▓рд┐рдП рджреЛ рдмрдлрд╝рд░реНрд╕ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ !!!
рдЪреВрдВрдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рд╛рдордЧреНрд░реА
рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рд╛рде рдУрд╡рд░рд▓реИрдк рд╣реЛ рд╕рдХрддреА
рд╣реИ , рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдлрдПрдлрдЯреА рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдПрдлрдкреАрдЬреАрдП рдкрд░ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред
FFT рдХрд░реНрдиреЗрд▓ рдкреИрд░рд╛рдореАрдЯрд░
- рдПрдирдПрдлрдПрдлрдЯреА - рддрд┐рддрд▓рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдПрдлрдПрдлрдЯреА рд▓рдВрдмрд╛рдИ),
- DATA_WIDTH - рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреА рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ (4-32),
- TWDL_WIDTH - рдореЛрдбрд╝ рдХрд╛рд░рдХреЛрдВ рдХреА рдЧрд╣рд░рд╛рдИ (8-27)ред
- рд╢реНрд░реГрдВрдЦрд▓рд╛ - FPGA рдкрд░рд┐рд╡рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ FFT рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ("рдирдпрд╛" - Ultrascale, "OLD" - 6/7 Xilinx FPGA рд╢реНрд░реГрдВрдЦрд▓рд╛)ред

рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд▓рд┐рдВрдХ рдХреА рддрд░рд╣, рдПрдлрдПрдлрдЯреА рдореЗрдВ рдЗрдирдкреБрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдкреЛрд░реНрдЯ рд╣реИрдВ - рдПрдХ рдШрдбрд╝реА рд╕рд┐рдЧреНрдирд▓ рдФрд░ рдПрдХ рд░реАрд╕реЗрдЯ, рд╕рд╛рде рд╣реА рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛ рдкреЛрд░реНрдЯред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, USE_FLY рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдбреАрдмрдЧрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП FFT рддрд┐рддрд▓рд┐рдпреЛрдВ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдпрд╛ рдореВрд▓ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ FPGA рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИ, рдЬреЛ DATA_WIDTH = 16 рдФрд░ рджреЛ рдмрд┐рдЯреНрд╕ TWDL_WIDTH = 16 рдФрд░ 24 рдмрд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП NFFT FFT рдХреА рд▓рдВрдмрд╛рдИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред

NFFT = 64K рдореЗрдВ рдХреЛрд░ рдПрдХ рдХрд┐рдиреНрдЯреЗрдХреНрд╕ -7 рдХреНрд░рд┐рд╕реНрдЯрд▓ (410T) рдкрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЖрд╡реГрддреНрддрд┐
FREQ = 375 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдкрд░ рд╕реНрдерд┐рд░ рд╣реИред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛
FFT рдиреЛрдб рдХрд╛ рдпреЛрдЬрдирд╛рдмрджреНрдз рдЧреНрд░рд╛рдл рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдХреГрддрд┐ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдХреБрдЫ рдШрдЯрдХреЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдФрд░ рдЙрдирдХреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рдХреЛ рдПрдХ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдХреНрд░рдо рдореЗрдВ рджреВрдВрдЧрд╛:
- рдПрдлрдПрдлрдЯреА рдЧреБрдард▓реА:
- int_fftNk - FFT рдиреЛрдб, рд░реЗрдбрд┐рдХреНрд╕ -2 рд╕рд░реНрдХрд┐рдЯ, рдлреНрд░реАрдХреНрд╡реЗрдВрд╕реА рдбрд┐рдХреНрдорд┐рдиреЗрд╢рди (DIF), рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдмрд┐рдЯ-рд░рд┐рд╡рд░реНрд╕ рд╣реИред
- int_ifftNk - OBPF рдиреЛрдб, рдореВрд▓рд╛рдВрдХ -2 рд╕рд░реНрдХрд┐рдЯ, рд╕рдордп рд╡рд┐рдШрдЯрди (DIT), рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдмрд┐рдЯ-рд░рд┐рд╡рд░реНрд╕ рд╣реИ, рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рд╕рд╛рдорд╛рдиреНрдп рд╣реИред
- рддрд┐рддрд▓рд┐рдпреЛрдВ:
- int_dif2_fly - рддрд┐рддрд▓реА рдореВрд▓рд╛рдВрдХ -2, рдЖрд╡реГрддреНрддрд┐ рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ ,
- int_dit2_fly - рддрд┐рддрд▓реА рдореВрд▓рд╛рдВрдХ -2, рд╕рдордп рдореЗрдВ рд╡рд┐рдШрдЯрди ,
- рдЬрдЯрд┐рд▓ рдЧреБрдгрдХ:
- int_cmult_dsp48 - рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рдЧреБрдгрдХ, рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- int_cmult18x25_dsp48 - рдбреЗрдЯрд╛ рдФрд░ рд░реЛрдЯреЗрд╢рди рдХрд╛рд░рдХреЛрдВ рдХреА рдЫреЛрдЯреА рдмрд┐рдЯ рдЧрд╣рд░рд╛рдИ рдХреЗ рд▓рд┐рдП рдЧреБрдгрдХ,
- int_cmult_dbl18_dsp48 - рджреЛрдЧреБрдирд╛ рдЧреБрдгрдХ, 18 рдмрд┐рдЯ рддрдХ рдореЛрдбрд╝ рдХрд╛рд░рдХреЛрдВ рдХреА рдереЛрдбрд╝реА рдЪреМрдбрд╝рд╛рдИ,
- int_cmult_dbl35_dsp48 - рджреЛрдЧреБрдиреА рдЧреБрдгрдХ, рдШреВрд░реНрдгрди рдХрд╛рд░рдХреЛрдВ рдХреА рдмрд┐рдЯ рдЪреМрдбрд╝рд╛рдИ 25 * рдмрд┐рдЯреНрд╕ рддрдХ,
- int_cmult_trpl18_dsp48 - рдЯреНрд░рд┐рдкрд▓ рдЧреБрдгрдХ, 18 рдмрд┐рдЯ рддрдХ рдореЛрдбрд╝ рдХрд╛рд░рдХреЛрдВ рдХреА рдХреНрд╖рдорддрд╛,
- int_cmult_trpl52_dsp48 - рдЯреНрд░рд┐рдкрд▓ рдЧреБрдгрдХ, 25 * рдмрд┐рдЯреНрд╕ рддрдХ рдШреВрд░реНрдгрди рдХрд╛рд░рдХреЛрдВ рдХреА рдХреНрд╖рдорддрд╛,
- рдорд▓реНрдЯреАрдкреНрд▓рд╛рдпрд░реЛрдВ:
- mlt42x18_dsp48e1 - 42 рдФрд░ 18 рдмрд┐рдЯ рддрдХ рдбреАрдПрд╕рдкреА 48 рдИ 1 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдСрдкрд░реЗрдВрдб рдХреЗ рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЧреБрдгрдХ
- mlt59x18_dsp48e1 - рдСрдкрд░реЗрдВрдб рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде 59 рддрдХ рдФрд░ 18 рдмрд┐рдЯреНрд╕ DSP2E1 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ,
- mlt35x25_dsp48e1 - DSP48E1 рдкрд░ рдЖрдзрд╛рд░рд┐рдд 35 рдФрд░ 25 рдмрд┐рдЯреНрд╕ рдХреЗ рдСрдкрд░реЗрдВрдб рдХреЗ рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЧреБрдгрдХ
- mlt52x25_dsp48e1 - 52 рдФрд░ 25 рдмрд┐рдЯ рддрдХ рдбреАрдПрд╕рдкреА 48 рдИ 1 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдСрдкрд░реЗрдВрдб рдХреЗ рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЧреБрдгрдХ
- mlt44x18_dsp48e2 - DSP48482 рдкрд░ рдЖрдзрд╛рд░рд┐рдд 44 рдФрд░ 18 рдмрд┐рдЯреНрд╕ рдХреЗ рдСрдкрд░реЗрдВрдб рдХреЗ рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЧреБрдгрдХ,
- mlt61x18_dsp48e2 - рдСрдкрд░рд┐рдкрд▓ рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЧреБрдгрдХ 61 рдФрд░ 18 рдмрд┐рдЯреНрд╕ рдбреАрдПрд╕рдкреАрдИрдИрдИ 2 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ,
- mlt35x27_dsp48e2 - 35 рдФрд░ 27 рдмрд┐рдЯ рддрдХ рдХреЗ рдСрдкрд░реЗрдВрдб рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЧреБрдгрдХ DSPEEE2 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
- mlt52x27_dsp48e2 рдбреАрдПрд╕рдкреА 482 рдбреА 2 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдСрдкрд░реЗрдВрдб рдмрд┐рдЯреНрд╕ 52 рдФрд░ 27 рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЧреБрдгрдХ рд╣реИред
- рдпреЛрдЬрдХ:
- int_addsub_dsp48 - рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдпреЛрдЬрдХ, рдУрдкреЗрд░рд╛ рдмрд┐рдЯреНрд╕ 96 рдмрд┐рдЯреНрд╕ рддрдХред
- рд╡рд┐рд▓рдВрдм рд░реЗрдЦрд╛рдПрдБ:
- int_delay_line - рджреЗрд░реА рдХреА рдЖрдзрд╛рд░ рд░реЗрдЦрд╛, рддрд┐рддрд▓рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХрд╛ рдХреНрд░рдорд╛рдВрдХрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ,
- int_align_fft - FFT рддрд┐рддрд▓реА рдХреЗ рдЗрдирдкреБрдЯ рдкрд░ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдФрд░ рдЯрд░реНрдирд┐рдВрдЧ рдлреИрдХреНрдЯрд░ рдХрд╛ рд╕рдВрд░реЗрдЦрдг,
- int_align_fft - OBPF рддрд┐рддрд▓реА рдХреЗ рдЗрдирдкреБрдЯ рдкрд░ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдФрд░ рдЯрд░реНрдирд┐рдВрдЧ рдлреИрдХреНрдЯрд░ рдХрд╛ рд╕рдВрд░реЗрдЦрдг,
- рдШреВрд░реНрдгрди рдХрд╛рд░рдХ:
- rom_twiddle_int - рд░реЛрдЯрд░реА рдХрд╛рд░рдХреЛрдВ рдХрд╛ рдПрдХ рдЬрдирд░реЗрдЯрд░, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд▓рдВрдмрд╛рдИ рд╕реЗ рдПрдлрдПрдлрдЯреА рдбреАрдПрд╕рдкреА рдПрдлрдкреАрдЬреАрдП рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЧреБрдгрд╛рдВрдХ рдорд╛рдирддрд╛ рд╣реИ,
- row_twiddle_tay - рдЯреЗрд▓рд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ (NFFT> 2K) ** рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реЛрдЯрд░реА рдХрд╛рд░рдХреЛрдВ рдХрд╛ рдЬрдирд░реЗрдЯрд░ред
- рдбреЗрдЯрд╛ рдмрдлрд╝рд░:
- inbuf_half_path - рдЗрдирдкреБрдЯ рдмрдлрд░, рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ FFT *** рдХреА рдЖрдзреА рд▓рдВрдмрд╛рдИ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирдореВрдиреЛрдВ рдХреЗ рджреЛ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ;
- outbuf_half_path - рдЖрдЙрдЯрдкреБрдЯ рдмрдлрд░, рджреЛ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдлрдПрдлрдЯреА рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рдмрд░рд╛рдмрд░ рдПрдХ рдирд┐рд░рдВрддрд░ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ,
- iobuf_flow_int2 - рдмрдлрд░ рджреЛ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рдЗрдВрдЯрд░рд▓реАрд╡ -2 рдореЛрдб рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░реАрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдзреА рд▓рдВрдмрд╛рдИ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдПрдлрдПрдлрдЯреА рдХреЗ рджреЛ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИред рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, BITREV рд╡рд┐рдХрд▓реНрдк рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
- int_bitrev_ord рдкреНрд░рд╛рдХреГрддрд┐рдХ рдСрд░реНрдбрд░ рд╕реЗ рдмрд┐рдЯ-рд░рд┐рд╡рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдбреЗрдЯрд╛ рдХрдирд╡рд░реНрдЯрд░ рд╣реИред
* - DSP48E1 рдХреЗ рд▓рд┐рдП: 25 рдмрд┐рдЯреНрд╕, DSP48E2 рдХреЗ рд▓рд┐рдП - 27 рдмрд┐рдЯреНрд╕ред** - рдПрдлрдПрдлрдЯреА рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЪрд░рдг рд╕реЗ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдмреНрд▓реЙрдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдШреВрд░реНрдгреА рдЧреБрдгрд╛рдВрдХ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдордзреНрдпрд╡рд░реНрддреА рдЧреБрдгрд╛рдВрдХреЛрдВ рдХреА рдЧрдгрдирд╛ рдбреАрдПрд╕рдкреА 48 рдиреЛрдбреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЯреЗрд▓рд░ рд╕реВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╣рд▓реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ FFT рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рд╕рдВрд╕рд╛рдзрди рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЖрдк рдореЗрдореЛрд░реА рдХреА рдЦрд╛рддрд┐рд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рддреНрдпрд╛рдЧ рд╕рдХрддреЗ рд╣реИрдВред
*** - рдЗрдирдкреБрдЯ рдмрдлрд░ рдФрд░ рджреЗрд░реА рд▓рд╛рдЗрдиреЛрдВ - рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ FPGA рд╕реНрдореГрддрд┐ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдпреЛрдЧрджрд╛рди рджреЗрддреЗ рд╣реИрдВ"рддрд┐рддрд▓реА"рд╣рд░ рдХреЛрдИ рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рддреЗрдЬреА рд╕реЗ рдлреВрд░рд┐рдпрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рдЪреБрдХрд╛ рд╣реИ, рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдСрдкрд░реЗрд╢рди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ - рдПрдХ "рддрд┐рддрд▓реА"ред рдпрд╣ рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдЯреНрд╡реАрдбрд▓ рдХрд╛рд░рдХ рджреНрд╡рд╛рд░рд╛ рдЗрдирдкреБрдЯ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдХреЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдлрдПрдлрдЯреА рдХреЗ рд▓рд┐рдП рджреЛ рд╢рд╛рд╕реНрддреНрд░реАрдп рд░реВрдкрд╛рдВрддрд░рдг рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ - рдЖрд╡реГрддреНрддрд┐ рдореЗрдВ рдбреАрдЖрдИрдПрдл (рдбреАрдЖрдИрдПрдл, рдбреЗрд╕реАрдореЗрд╢рди-рдЗрди-рдлреНрд░реАрдХреНрд╡реЗрдВрд╕реА) рдФрд░ рд╕рдордп рдореЗрдВ рдбреАрдЖрдИрдПрдордПрдЯреА (рдбреАрдЖрдИрдЯреА, рдбреАрдорд┐рд╢рди-рдЗрди-рдЯрд╛рдЗрдо)ред рдбреАрдЖрдИрдЯреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдЗрдирдкреБрдЯ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдЖрдзреА рдЕрд╡рдзрд┐ рдХреЗ рджреЛ рдЕрдиреБрдХреНрд░рдореЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдХреЗ рдФрд░ рдПрдирдПрдлрдПрдлрдЯреА рдЕрд╡рдзрд┐ рдХреЗ рд╕рдорд╛рди рдФрд░ рд╡рд┐рд╖рдо рдирдореВрдиреЛрдВ рдХреЗ рджреЛ рдЕрдиреБрдХреНрд░рдореЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рддрд┐рддрд▓реА рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рднрд┐рдиреНрди рд╣реИрдВред
рдП, рдмреА - рдЬрдЯрд┐рд▓ рдирдореВрдиреЛрдВ рдХреЗ рдЗрдирдкреБрдЯ рдЬреЛрдбрд╝реЗ,
рдПрдХреНрд╕, рд╡рд╛рдИ - рдЬрдЯрд┐рд▓ рдирдореВрдиреЛрдВ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдЬреЛрдбрд╝реЗ,
рдбрдмреНрд▓реНрдпреВ - рдЬрдЯрд┐рд▓ рдореЛрдбрд╝ рдХрд╛рд░рдХред
рдЪреВрдВрдХрд┐ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдЬрдЯрд┐рд▓ рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ, рддрд┐рддрд▓реА рдХреЛ рдПрдХ рдЬрдЯрд┐рд▓ рдЧреБрдгрдХ (рдЧреБрдгрди рдХреЗ 4 рд╕рдВрдЪрд╛рд▓рди рдФрд░ рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд 2 рд╕рдВрдЪрд╛рд▓рди) рдФрд░ рджреЛ рдЬрдЯрд┐рд▓ рдЬреЛрдбрд╝ (рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ 4 рд╕рдВрдЪрд╛рд▓рди) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рд╕рдВрдкреВрд░реНрдг рдЧрдгрд┐рддреАрдп рдЖрдзрд╛рд░ рд╣реИ рдЬрд┐рд╕реЗ FPGA рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЧреБрдгрдХ
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ FPGAs рдкрд░ рд╕рднреА рдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдЕрдХреНрд╕рд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб (2 рдХреЗ рдкреВрд░рдХ) рдореЗрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред FPGA рдЧреБрдгрдХ рдХреЛ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЯреНрд░рд┐рдЧрд░реНрд╕ рдФрд░ LUT рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрд░реНрдХ рдкрд░, рдпрд╛ рд╡рд┐рд╢реЗрд╖ DSP48 рдЧрдгрдирд╛ рдЗрдХрд╛рдЗрдпреЛрдВ рдкрд░, рдЬреЛ рд▓рдВрдмреЗ рдФрд░ рджреГрдврд╝рддрд╛ рд╕реЗ рд╕рднреА рдЖрдзреБрдирд┐рдХ FPGAs рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЧрдП рд╣реИрдВред рддрд╛рд░реНрдХрд┐рдХ рдмреНрд▓реЙрдХреЛрдВ рдкрд░, рдмреВрде рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдпрд╛ рдЗрд╕рдХреЗ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧреБрдгрди рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдЙрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрд╕рд╛рдзрди рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрдЪреНрдЪ рдбреЗрдЯрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рд╣рдореЗрд╢рд╛ рд╕рдордп рдХреА рдХрдореА рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдЖрдзреБрдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдПрдлрдкреАрдЬреАрдП рдЧреБрдгрдХ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдбреАрдПрд╕рдкреА 48 рдиреЛрдбреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдФрд░ рдХреЗрд╡рд▓ рдХрднреА-рдХрднреА рддрд░реНрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ DSP48 рдиреЛрдб рдПрдХ рдЬрдЯрд┐рд▓ рддреИрдпрд╛рд░ рд╕реЗрд▓ рд╣реИ рдЬреЛ рдЧрдгрд┐рддреАрдп рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдмреБрдирд┐рдпрд╛рджреА рд╕рдВрдЪрд╛рд▓рди: рдЧреБрдгрд╛, рдЬреЛрдбрд╝, рдШрдЯрд╛рд╡, рд╕рдВрдЪрдп, рдХрд╛рдЙрдВрдЯрд░, рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрдЪрд╛рд▓рди (XOR, NAND, AND, OR, NOR), рд╡рд░реНрдЧ, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛, рдмрджрд▓рд╛рд╡, рдЖрджрд┐ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдВрдХрдбрд╝рд╛ Xilinx Ultrascale + FPGA рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рд▓рд┐рдП DSP48E2 рд╕реЗрд▓ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рдЗрдирдкреБрдЯ рдкреЛрд░реНрдЯ рдХреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдиреЛрдбреНрд╕ рдореЗрдВ рдЧрдгрдирд╛ рд╕рдВрдЪрд╛рд▓рди рдФрд░ рдиреЛрдб рдХреЗ рдЕрдВрджрд░ рджреЗрд░реА рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░рдХреЗ, рдЖрдк рдПрдХ рдЙрдЪреНрдЪ рдЧрддрд┐ рдЧрдгрд┐рддреАрдп рдбреЗрдЯрд╛ рдереНрд░реЗрд╢рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рд╕рднреА рд╢реАрд░реНрд╖ FPGA рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ DSP48 рдиреЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдФрд░ рдореБрдлреНрдд рдЖрдИрдкреА рдХреЛрд░ рд╣реИрдВред рд╡реЗ рдЖрдкрдХреЛ рдЖрджрд┐рдо рдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдФрд░ рдиреЛрдб рдХреЗ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рджреЗрд░реА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред Xilinx рдХреЗ рд▓рд┐рдП, рдпрд╣ IP-Core "рдЧреБрдгрдХ" (verред 12.0, 2018) рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ 2 рд╕реЗ 64 рдмрд┐рдЯ рддрдХ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рдХрд┐рд╕реА рднреА рдмрд┐рдЯ рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдЧреБрдгрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЧреБрдгрдХ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдпрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд DSP48 рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡реНрд╕ рдкрд░ред
рдкреЛрд░реНрдЯ рдП рдФрд░ рдмреА = 64 рдмрд┐рдЯреНрд╕ рдкрд░ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреА рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ рдХреЗ рд╕рд╛рде
рдЧреБрдгрдХ "рдЦрд╛рддреА" рдХрд┐рддрдирд╛ рддрд░реНрдХ рдХрд╛ рдЕрдиреБрдорд╛рди рд╣реИ ред рдпрджрд┐ рдЖрдк рдиреЛрдбреНрд╕ рдбреАрдПрд╕рдкреА 48 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ 16 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

DSP48 рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдкрд░ рдореБрдЦреНрдп рд╕реАрдорд╛ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреА рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ рд╣реИред DSP48E1 рдиреЛрдб рдореЗрдВ, рдЬреЛ Xilinx 6 рдФрд░ 7 FPGAs рдХрд╛ рдмреЗрд╕ рд╕реЗрд▓ рд╣реИ, рдЧреБрдгрди рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдкреЛрд░реНрдЯреНрд╕ рдХреА рдЪреМрдбрд╝рд╛рдИ: "A" 25 рдмрд┐рдЯреНрд╕ рд╣реИ, "B" 18 рдмрд┐рдЯреНрд╕ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЧреБрдгрд╛ рдкрд░рд┐рдгрд╛рдо 43-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рд╣реИред Xilinx Ultrascale рдФрд░ Ultrascale + FPGA рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рд▓рд┐рдП, рдиреЛрдб рдореЗрдВ рдХрдИ рдмрджрд▓рд╛рд╡ рд╣реБрдП рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкрд╣рд▓реЗ рдмрдВрджрд░рдЧрд╛рд╣ рдХреА рдХреНрд╖рдорддрд╛ рдореЗрдВ рджреЛ рдмрд┐рдЯреНрд╕ рдХреА рд╡реГрджреНрдзрд┐ рд╣реБрдИ: "рдП" - 27 рдмрд┐рдЯреНрд╕, "рдмреА" - 18-рдмрд┐рдЯреНрд╕ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдиреЛрдб рдХреЛ рд╣реА DSP48E2 рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рд╡рд╛рд░ рдФрд░ FPGA рдЪрд┐рдк рд╕реЗ рдмрдВрдзреЗ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, "рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рд╢реБрджреНрдзрддрд╛" рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреА рд╕рднреА рд╕рдВрднрд╡ рдмрд┐рдЯ рдЧрд╣рд░рд╛рдИ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛, рдпрд╣ рдорд▓реНрдЯреАрдкреНрд▓рд╛рдпрд░реЛрдВ рдХреЗ рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рд╕реЗрдЯ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ FFT рддрд┐рддрд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓ рдЧреБрдгрдХ рдХреЗ рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЕрд░реНрдерд╛рддреН, рдЧреБрдгрдХ рдФрд░ DSP48 рдмреНрд▓реЙрдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдпреЛрдЬрдХ-рдШрдЯрд╛рд╡ред рдЧреБрдгрдХ рдХрд╛ рдкрд╣рд▓рд╛ рдЗрдирдкреБрдЯ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рд╣реИ, рдЧреБрдгрдХ рдХрд╛ рджреВрд╕рд░рд╛ рдЗрдирдкреБрдЯ рдШреВрд░реНрдгрди рдХрд╛рд░рдХ (рдореЗрдореЛрд░реА рд╕реЗ рд╣рд╛рд░реНрдореЛрдирд┐рдХ рд╕рд┐рдЧреНрдирд▓) рд╣реИред рдорд▓реНрдЯреАрдкреНрд▓рд╛рдпрд░реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдмрд┐рд▓реНрдЯ-рдЗрди рдпреВрдПрдирдЖрдИрдПрд╕рдЖрдИрдПрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдирдХреЗ рдЖрдЧреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдбреАрдПрд╕рдкреА 48 рдИ 1 рдФрд░ рдбреАрдПрд╕рдкреА 48 рдИ 2 рдЖрджрд┐ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЧреБрдгрдХ рдХрд╛ рдПрдХ рд╕реЗрдЯ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐:
- рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдЧреБрдгрд╛ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рд╕реЗ рдСрдкрд░реЗрдВрдб рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрддреНрдкрд╛рдж рдХреА рдХреНрд╖рдорддрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИред
- рдорд▓реНрдЯреАрдкреНрд▓рд╛рдпрд░реЛрдВ 25x18 рдФрд░ 27x18 рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреА рдирдХрд▓ рдХреА рдЬрд╛рддреА рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рд╡рд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдХ рд╣реИред
- рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдорд╛рдирддрд╛ рдХрд╛ рдЪрд░рдг рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛, рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдореЗрдВ рджреЗрд░реА рдЙрддрдиреА рд╣реА рдЕрдзрд┐рдХ рд╣реЛрдЧреА рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдЕрдзрд┐рдХ рд╣реЛрдЧреАред
- "B" рдкрд░ рдХрдо рдмрд┐рдЯ рдЧрд╣рд░рд╛рдИ рдХреЗ рд╕рд╛рде, рджреВрд╕рд░реЗ рдЗрдирдкреБрдЯ рдкрд░ рдЙрдЪреНрдЪ рдмрд┐рдЯ рдЧрд╣рд░рд╛рдИ рд╡рд╛рд▓реЗ рдЧреБрдгрдХ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
- рдмрд┐рдЯ рдЧрд╣рд░рд╛рдИ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдореБрдЦреНрдп рд╕реАрдорд╛ рдкреЛрд░реНрдЯ "рдмреА" (рдбреАрдПрд╕рдкреА 48 рдЖрджрд┐рдо рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреЛрд░реНрдЯ) рдФрд░ 17-рдмрд┐рдЯ рджреНрд╡рд╛рд░рд╛ рдЖрдВрддрд░рд┐рдХ рдкрд╛рд░реА рд░рдЬрд┐рд╕реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХреА рдЧрдИ рд╣реИред

рдиреАрдЪреЗ рдмрддрд╛рдП рдЧрдП рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рдЯ рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдПрдХ рдФрд░ рд╡реГрджреНрдзрд┐ рдХрд╛рд░реНрдп рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рд╣реИ:
рдореЛрдбрд╝ рдХрд╛рд░рдХреЛрдВ рдХреА рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ
рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рд╣рд╛рд░реНрдореЛрдирд┐рдХ рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИ, рдЙрддрдиреА рд╣реА рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИ (рдЖрдВрд╢рд┐рдХ рднрд╛рдЧ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрдХреЗрдд)ред рд▓реЗрдХрд┐рди рдкреЛрд░реНрдЯ рдмрд┐рдЯ рдХрд╛ рдЖрдХрд╛рд░ B <25 рдмрд┐рдЯреНрд╕ рд╣реИ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдПрдлрдПрдлрдЯреА рдиреЛрдбреНрд╕ рдореЗрдВ рдШреВрд░реНрдгреА рдХрд╛рд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдмрд┐рдЯ рдЧрд╣рд░рд╛рдИ "рддрд┐рддрд▓рд┐рдпреЛрдВ" рдореЗрдВ рд╣рд╛рд░реНрдореЛрдирд┐рдХ рд╕рд┐рдЧреНрдирд▓ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдХреА рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдЧреБрдгрди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ (рдЖрдзреБрдирд┐рдХ рдПрдлрдкреАрдЬреАрдП рдкрд░ рдХрд┐рд╕реА рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдПрдлрдПрдлрдЯреА рд▓рдВрдмрд╛рдИ рдХреЗ рд▓рд┐рдП)ред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдореЛрдбрд╝ рдЧреБрдгрд╛рдВрдХреЛрдВ рдХреА рдмрд┐рдЯ рдЧрд╣рд░рд╛рдИ рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдп 16 рдмрд┐рдЯреНрд╕ рд╣реИ, 24 - рдХрдо рдЕрдХреНрд╕рд░, 32 - рдХрднреА рдирд╣реАрдВред
рдЗрдирдкреБрдЯ рдирдореВрдиреЛрдВ рдХреА рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ
рдЗрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдиреЛрдбреНрд╕ (рдПрдбреАрд╕реА, рдбреАрдПрд╕реА) рдХреА рдХреНрд╖рдорддрд╛ рдмрдбрд╝реА рдирд╣реАрдВ рд╣реИ - 8 рд╕реЗ 16 рдмрд┐рдЯреНрд╕ рддрдХ, рдФрд░ рд╢рд╛рдпрдж рд╣реА рдХрднреА - 24 рдпрд╛ 32 рдмрд┐рдЯреНрд╕ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмрд╛рдж рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, IEEE-754 рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдПрдлрдПрдлрдЯреА рдореЗрдВ "рддрд┐рддрд▓реА" рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдХрд╛рд░рдг рдЖрдЙрдЯрдкреБрдЯ рдирдореВрдиреЛрдВ рдореЗрдВ рдПрдХ рдмрд┐рдЯ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, NFFT = 1024 рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд▓рд┐рдП, log2 (NFFT) = 10 рддрд┐рддрд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЖрдЙрдЯрдкреБрдЯ рдмрд┐рдЯ рдЧрд╣рд░рд╛рдИ рдЗрдирдкреБрдЯ рд╕реЗ рджрд╕ рдмрд┐рдЯ рдЕрдзрд┐рдХ рд╣реЛрдЧреА, WOUT = WIN + 10. рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рд╕реВрддреНрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
WOUT = WIN + log2 (NFFT);
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдЬреАрдд рдХреА рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ = 32 рдмрд┐рдЯреНрд╕,
рдЯреАрдбрдмреНрд▓реНрдпреВрдбреА = 27, рдХреЗ рдореЛрдбрд╝ рдХрд╛рд░рдХреЛрдВ рдХреА рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ
рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдЧреБрдгрдХ рдХреА рд╕реВрдЪреА рд╕реЗ рдкреЛрд░реНрдЯ "рдП" рдХреА рдХреНрд╖рдорддрд╛ 52 рдмрд┐рдЯреНрд╕ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рддрд┐рддрд▓рд┐рдпреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ FFT = 52-32 = 20 рд╣реИред рдЕрд░реНрдерд╛рдд, FFT рдХреЛ 2 ^ 20 = 1M рддрдХ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред (рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдпрд╣ рд╕рдВрднрд╡ рд╕рд╛рдзрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА FPGA рдХреНрд░рд┐рд╕реНрдЯрд▓ рдХреЗ рд▓рд┐рдП рднреА, рд▓реЗрдХрд┐рди рдпрд╣ рджреВрд╕рд░реЗ рд╡рд┐рд╖рдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдФрд░ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)ред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрдирдкреБрдЯ рдкреЛрд░реНрдЯ рдХреА рдЙрдЪреНрдЪ рдмрд┐рдЯ рдЧрд╣рд░рд╛рдИ рдХреЗ рд╕рд╛рде рдорд▓реНрдЯреАрдкреНрд▓рд╛рдпрд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдорд▓реНрдЯреАрдкреНрд▓рд╛рдпрд░реЛрдВ рдиреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдПрдлрдПрдлрдЯреА рдХреА рдЧрдгрдирд╛ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП
рдЖрд╡рд╢реНрдпрдХ рдЗрдирдкреБрдЯ
рдмрд┐рдЯ рдЖрдХрд╛рд░реЛрдВ рдФрд░ рдШреВрд░реНрдгреА рдХрд╛рд░рдХреЛрдВ
рдХреА рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдХрд╡рд░ рдХрд┐рдпрд╛ ред рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдк
рдЕрд╕реНрдерд╛рдпреА рдмрд┐рдВрджреБ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ FFT рдЧрдгрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!
"рд╡рд┐рд╕реНрддреГрдд" рдЧреБрдгрдХ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдПрдХ рдорд╛рдирдХ DSP48 рдиреЛрдб рдХреА рдмрд┐рдЯ рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рджреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдиреЗ рдХреЗ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЖрдк рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдбреЗрдЯрд╛ рдЧреБрдгрдХ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдВрдХрдбрд╝рд╛ рдЗрд╕рдХреЗ рдмреНрд▓реЙрдХ рдЖрд░реЗрдЦ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЧреБрдгрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдореЗрдВ рджреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдЧреБрдгрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рдСрдкрд░реЗрдВрдб рдПрдХреНрд╕ рдХреА рдЪреМрдбрд╝рд╛рдИ 42 рдмрд┐рдЯреНрд╕ рд╣реИ, рджреВрд╕рд░реА рд╡рд╛рдИ 18 рдмрд┐рдЯреНрд╕ рд╣реИред рдЗрд╕рдореЗрдВ рджреЛ DSP48E2 рдиреЛрдбреНрд╕ рд╣реЛрддреЗ рд╣реИрдВред рджреЛ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдКрдкрд░реА рдиреЛрдб рдореЗрдВ рджреЗрд░реА рдХреЛ рдмрд░рд╛рдмрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдКрдкрд░реА рдпреЛрдЬрдХ рдореЗрдВ рдЖрдкрдХреЛ DSP48 рдХреЗ рдКрдкрд░реА рдФрд░ рдирд┐рдЪрд▓реЗ рдиреЛрдбреНрд╕ рд╕реЗ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдиреАрдЪреЗ рдпреЛрдЬрдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдо рдиреЛрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╕рдордп рдХреЗ рд╕рд╛рде рдЖрдЙрдЯрдкреБрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрд╛рдж рдХреА рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рджреЗрд░реА рд╣реЛрддреА рд╣реИред рдХреБрд▓ рджреЗрд░реА 4 рдЪрдХреНрд░ рд╣реИред

рдХрд╛рдо рдореЗрдВ рджреЛ рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ:
- рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рд╣рд┐рд╕реНрд╕рд╛: P1 = '0' & X [16: 0] * Y [17: 0];
- рдкреБрд░рд╛рдирд╛ рд╣рд┐рд╕реНрд╕рд╛: рдкреА 2 = рдПрдХреНрд╕ [42:17] * рд╡рд╛рдИ [17: 0] + (рдкреА 1 >> 17);
рдпреЛрдЬрдХ
рдПрдХ рдЧреБрдгрдХ рдХреА рддрд░рд╣, рдПрдХ рдпреЛрдЬрдХ рд╣рд╕реНрддрд╛рдВрддрд░рдг рд╢реНрд░реГрдВрдЦрд▓рд╛ рдпрд╛ DSP48 рдмреНрд▓реЙрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдзрд┐рдХрддрдо рдереНрд░реВрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдмреЗрд╣рддрд░ рд╣реИред рдПрдХ DSP48 рдЖрджрд┐рдо 48 рдмрд┐рдЯреНрд╕ рддрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдСрдкрд░реЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, 96 рдмрд┐рдЯреНрд╕ рддрдХ рджреЛ рдиреЛрдбреНрд╕ред рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреА рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, DSP48 рдЖрджрд┐рдо рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ "SIMD MODE" рдореЛрдб рд╣реИ, рдЬреЛ рдЫреЛрдЯреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрдИ рдСрдкрд░реЗрд╢рдиреЛрдВ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд 48-рдмрд┐рдЯ ALU рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, "рд╡рди" рдореЛрдб рдореЗрдВ 48 рдмрд┐рдЯреНрд╕ рдФрд░ рджреЛ рдСрдкрд░реЗрдВрдб рдХреА рдПрдХ рдкреВрд░реА рдмрд┐рдЯ рдЧреНрд░рд┐рдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ "TWO" рдореЛрдб рдореЗрдВ рдмрд┐рдЯ рдЧреНрд░рд┐рдб рдХреЛ 24 рдмрд┐рдЯреНрд╕ (4 рдСрдкрд░реЗрдВрдб) рдХреЗ рдХрдИ рд╕рдорд╛рдирд╛рдВрддрд░ рдзрд╛рд░рд╛рдУрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдореЛрдб, рдХреЗрд╡рд▓ рдПрдХ рдпреЛрдЬрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЗрдирдкреБрдЯ рдирдореВрдиреЛрдВ рдХреЗ рдЫреЛрдЯреЗ рдмрд┐рдЯ рдбреЗрдкреНрде рдкрд░ (рдЧрдгрдирд╛ рдХреЗ рдкрд╣рд▓реЗ рдЪрд░рдгреЛрдВ рдореЗрдВ) рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ FPGA рдЪрд┐рдк рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ рдореЗрдВ рд╡реГрджреНрдзрд┐
рдмрд┐рдЯреНрд╕ рдПрди рдФрд░ рдПрдо рдХреЗ рд╕рд╛рде рджреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдПрдХ рдмрд╛рдЗрдирд░реА рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдореЗрдВ
рдЧреБрдгрд╛ рдХрд░рдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдмрд┐рдЯ рдХреНрд╖рдорддрд╛ рдореЗрдВ
рдкреА / рдПрди рдПрдоред рдХреА рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИредрдЙрджрд╛рд╣рд░рдг: рддреАрди-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ N = M = 3 рдХреЛ рдЧреБрдгрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдХрддрдо рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ +3 =
(011) 2 рд╣реИ , рдФрд░ рдЕрдзрд┐рдХрддрдо рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ 4 =
(100) 2 рд╣реИ ред рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЧреБрдгрд╛ рдХрд░рдиреЗ рдкрд░ рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ рд╕рдВрдЦреНрдпрд╛ +16 =
(010000) 2 рд╣реИ , рдЬреЛ рджреЛ рдЕрдзрд┐рдХрддрдо рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ -4ред рдЖрдЙрдЯрдкреБрдЯ рдХреА рдмрд┐рдЯ рдЧрд╣рд░рд╛рдИ рдЗрдирдкреБрдЯ рдмрд┐рдЯреНрд╕ P = N + M = 6 рдмрд┐рдЯреНрд╕ рдХреЗ рдпреЛрдЧ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред
рдмрд╛рдЗрдирд░реА рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдореЗрдВ рдмрд┐рдЯреНрд╕ рдПрди рдФрд░ рдПрдо рдХреЗ рд╕рд╛рде рджреЛ рдирдВрдмрд░
рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдСрдкрд░реЗрд╢рди рдЖрдЙрдЯрдкреБрдЯ рдмрд┐рдЯ рдореЗрдВ рдПрдХ рдмрд┐рдЯ рд╕реЗ рд╡реГрджреНрдзрд┐ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг: рджреЛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдЬреЛрдбрд╝реЗрдВ, N = M = 3, рдЕрдзрд┐рдХрддрдо рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ 3 =
(011) 2 рд╣реИ , рдФрд░ рдЕрдзрд┐рдХрддрдо рдЛрдгрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ 4 =
(100) 2 рд╣реИ ред
рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдзрд┐рдХрддрдо рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ 6 = (0110) 2 рд╣реИ , рдФрд░ рдЕрдзрд┐рдХрддрдо рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ -8 = (1000) 2 рд╣реИ ред рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдПрдХ рдмрд┐рдЯ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИредрдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░
:. . , 16- -32768 = 0x8000, -32767 = 0x8001.
~0.003% .
, . : тАУ 4 = (100)
2 , +3 = (011)
2ред рдЧреБрдгрди рдкрд░рд┐рдгрд╛рдо = -12 = (110100) 2 ред рдкрд╛рдВрдЪрд╡реЗрдВ рдмрд┐рдЯ рдХреЛ рддреНрдпрд╛рдЧ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрдбрд╝реЛрд╕реА рдХреА рдирдХрд▓ рдХрд░рддрд╛ рд╣реИ, рдЪреМрдерд╛ рдПрдХ рд╕рдВрдХреЗрдд рд╕рд╛ рд╣реИредрдиреАрдЪреЗ рд╕реЗ рдмрд┐рдЯ рдЯреНрд░рдВрдХреЗрд╢рди:, ┬л┬╗ , , . M- , , . 0x8000 = -1, 0x7FFF = +1. , ( M ). , , 1 . , [N+M-1-1: M-1]. ( 1), тАУ .
/ ┬л┬╗
.
, FFT DIT FFT DIF W0 = {Re, Im} = {1, 0}. , тАУ , . : ┬л┬╗ . : W0 = {Re, Im} = {1, 0} W1 = {Re, Im} = {0, -1}. , . DSP48 .
тАУ -, , .
- , . . тАФ тАФ .
INT_FFTK
- .
- NFFT = 8-512K .
- NFFT.
- , .
- , .
- .
- !
- .
- : тАУ , -.
- : - , тАУ .
- . Radix-2.
- NFFT *.
- .
- (Virtex-6, 7-Series, Ultrascale).
- ~375MHz Kintex-7
- тАУ VHDL.
- bitreverse +.
- Open Source IP-Cores.
INTFFTK VHDL ( ) m- Matlab / Octave
.
рдирд┐рд╖реНрдХрд░реНрд╖
, . , . , IP-CORE Xilinx. .
: Radix-4, Radix-8, Ultra-Long FFT , FFT-FP32 ( IEEE-754). , , . FFT Radix-8, ( ).
dsmv2014 , . рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
UPDATE 2018/08/22
SCALED FFT / IFFT . 1 (truncate LSB). = .
, , : . , - .
: тАФ 6 . тАФ 128 . NFFT = 1024 , DATA_WIDTH = 16, TWDL_WIDTH = 16.
рдЕрдВрдЬреАрд░ред 1 - :
рдЕрдВрдЬреАрд░ред 2 - :
- тАФ UNSCALED FFT,
- тАФ SCALED FFT.
, SCALED ┬л ┬╗ , UNSCALED .