mirror of
https://github.com/DrasLorus/CORDIC_Rotate_APFX.git
synced 2024-11-14 17:13:27 +01:00
5bc9c3eeb1
- Commit title implies possible Xilinx Vivado HLS 2019.1 support, thus support for e.g. all USRP Series 3 from Ettus. - Add a new CORDIC version, Rom based and meta-programmed via CMake features, to be even compiled with earlier GCC (not quite tested, but by changing constexpr to const and using gcc 4.6 -sdt=c++0x, it worked). - Class name modified, to be more explicit.
35 lines
No EOL
1.2 KiB
C++
35 lines
No EOL
1.2 KiB
C++
/*
|
|
*
|
|
* Copyright 2022 Camille "DrasLorus" Monière.
|
|
*
|
|
* This file is part of CORDIC_Rotate_APFX.
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU
|
|
* Lesser General Public License as published by the Free Software Foundation, either version 3 of
|
|
* the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
|
|
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License along with this program.
|
|
* If not, see <https://www.gnu.org/licenses/>.
|
|
*
|
|
*/
|
|
|
|
#ifndef C_CORDIC_ROTATE_ROM_TEMPLATE
|
|
#define C_CORDIC_ROTATE_ROM_TEMPLATE
|
|
|
|
enum rom_types {
|
|
mc,
|
|
cst
|
|
};
|
|
|
|
template <unsigned TIn_I, rom_types type, unsigned TIn_W, unsigned Tnb_stages, unsigned Tq>
|
|
class CCordicRotateRom {
|
|
static_assert(TIn_W > 0, "Inputs can't be on zero bits.");
|
|
static_assert(Tnb_stages < 8, "7 stages of CORDIC is the maximum supported.");
|
|
static_assert(Tnb_stages > 1, "2 stages of CORDIC is the minimum.");
|
|
};
|
|
|
|
#endif // C_CORDIC_ROTATE_ROM_TEMPLATE
|