24 #include "cheetah/fft/altera/detail/FftWorker.h" 25 #include "cheetah/fft/altera/Fft.h" 26 #include "panda/Error.h" 27 #include "panda/Log.h" 29 #include "panda/arch/altera/Aocx.h" 30 #include "panda/arch/altera/Program.h" 31 #endif // ENABLE_OPENCL 41 FftWorker::FftWorker(fft::Config
const& config, panda::PoolResource<Fpga>
const& device)
44 , _first_queue(new panda::altera::CommandQueue(_device))
45 , _fetch_queue(new panda::altera::CommandQueue(_device))
46 , _fetch_mwt_queue(new panda::altera::CommandQueue(_device))
47 , _fft_queue(new panda::altera::CommandQueue(_device))
48 , _transpose_queue(new panda::altera::CommandQueue(_device))
49 , _transpose_mwt_queue(new panda::altera::CommandQueue(_device))
50 , _data_queue(new panda::altera::CommandQueue(_device))
51 , _last_queue(new panda::altera::CommandQueue(_device))
54 const std::string str = _device.device_name();
55 filename=_cxft.eight_million_point_image(_device.device_id());
56 PANDA_LOG <<
"\nRabbit CXFT image: " << filename <<
" found for the device " << str;
57 ska::panda::altera::Aocx aocx(filename);
58 ska::panda::altera::Program program(aocx,_device);
59 _first_kernel.reset(
new panda::altera::Kernel(
"first_stage", program));
60 _fetch_kernel.reset(
new panda::altera::Kernel(
"fetch", program));
61 _fetch_mwt_kernel.reset(
new panda::altera::Kernel(
"fetch_MWT", program));
62 _fft_kernel.reset(
new panda::altera::Kernel(
"fft1d", program));
63 _transpose_kernel.reset(
new panda::altera::Kernel(
"transpose", program));
64 _transpose_mwt_kernel.reset(
new panda::altera::Kernel(
"transpose_MWT", program));
65 _last_kernel.reset(
new panda::altera::Kernel(
"last_stage", program));
67 #endif // ENABLE_OPENCL Some limits and constants for FLDO.