mirror of
https://github.com/DrasLorus/CORDIC_Rotate_APFX.git
synced 2024-11-12 16:13:17 +01:00
GCC now works.
This commit is contained in:
parent
cbd04f1a3e
commit
d92d11e3e7
4 changed files with 15 additions and 16 deletions
|
@ -2,6 +2,7 @@ cmake_minimum_required (VERSION 3.16.0 FATAL_ERROR)
|
|||
# setting this is required
|
||||
|
||||
set (CMAKE_CXX_STANDARD 14)
|
||||
set (CMAKE_CXX_EXTENSIONS OFF)
|
||||
set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../lib)
|
||||
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../lib)
|
||||
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../bin)
|
||||
|
|
|
@ -45,10 +45,9 @@ template <uint8_t N_STAGES,
|
|||
uint8_t OUT_I,
|
||||
uint8_t ATAN_I>
|
||||
class CCordicRotate {
|
||||
private:
|
||||
static constexpr auto atanLUT = CAtanLUT<N_STAGES, uint64_t, ATAN_I>();
|
||||
|
||||
public:
|
||||
static constexpr const CAtanLUT<N_STAGES, uint64_t, ATAN_I> & atanLUT = CAtanLUT<N_STAGES, uint64_t, ATAN_I>();
|
||||
|
||||
static void process(
|
||||
const ap_fixed<TH_W, TH_I> & fx_angle,
|
||||
const ap_fixed<IN_W, IN_I> & fx_re_in,
|
||||
|
|
|
@ -25,7 +25,7 @@ class CCordicRotateRomHalfPi {
|
|||
static_assert(TNStages > 1, "2 stages of CORDIC is the minimum.");
|
||||
|
||||
public:
|
||||
static constexpr CRomGeneratorConst<TIn_W, TNStages, Tq> rom_cordic {};
|
||||
static constexpr const CRomGeneratorConst<TIn_W, TNStages, Tq> & rom_cordic = CRomGeneratorConst<TIn_W, TNStages, Tq>();
|
||||
|
||||
static constexpr unsigned In_W = TIn_W;
|
||||
static constexpr unsigned In_I = TIn_I;
|
||||
|
@ -129,7 +129,6 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
#if 0
|
||||
template <>
|
||||
inline void CCordicRotateRomHalfPi<16, 4, 6, 64>::cordic(
|
||||
|
|
|
@ -8,9 +8,10 @@
|
|||
using namespace std;
|
||||
|
||||
using Catch::Matchers::Floating::WithinAbsMatcher;
|
||||
|
||||
|
||||
typedef CCordicRotate<8, 14, 4, 17, 5, 19, 7, 12> cordic_legacy;
|
||||
|
||||
TEST_CASE("Adaptive CORDIC work as intended", "[!hide][WIP]") {
|
||||
typedef CCordicRotate<8, 14, 4, 17, 5, 19, 7, 12> cordic_legacy;
|
||||
|
||||
string input_fn = "../data/input.dat"; // _8_14_4_17_5_19_7_12
|
||||
string output_fn = "../data/output.dat"; // _8_14_4_17_5_19_7_12
|
||||
|
@ -72,9 +73,11 @@ TEST_CASE("Adaptive CORDIC work as intended", "[!hide][WIP]") {
|
|||
// Return 0 if the test passed
|
||||
}
|
||||
|
||||
typedef CCordicRotateRomHalfPi<16, 4, 6, 64> cordic_rom;
|
||||
|
||||
TEST_CASE("ROM-based Cordic works with C-Types", "[CORDIC]") {
|
||||
SECTION("W:16 - I:4 - Stages:6 - q:64") {
|
||||
typedef CCordicRotateRomHalfPi<16, 4, 6, 64> cordic_rom;
|
||||
static constexpr cordic_rom cordic {};
|
||||
|
||||
string input_fn = "../data/input.dat"; // _8_14_4_17_5_19_7_12
|
||||
string output_fn = "../data/output.dat"; // _8_14_4_17_5_19_7_12
|
||||
|
@ -110,8 +113,6 @@ TEST_CASE("ROM-based Cordic works with C-Types", "[CORDIC]") {
|
|||
// Save the results to a file
|
||||
FILE.open("results.dat");
|
||||
|
||||
constexpr cordic_rom cordic {};
|
||||
|
||||
constexpr double abs_margin = double(1 << cordic.Out_I) * 2. / 100.;
|
||||
|
||||
// Executing the encoder
|
||||
|
@ -141,7 +142,8 @@ TEST_CASE("ROM-based Cordic works with AP-Types", "[CORDIC]") {
|
|||
constexpr unsigned n_lines = 100000;
|
||||
|
||||
SECTION("W:16 - I:4 - Stages:6 - q:64") {
|
||||
typedef CCordicRotateRomHalfPi<16, 4, 6, 64> cordic_rom;
|
||||
|
||||
static constexpr cordic_rom cordic {};
|
||||
|
||||
string input_fn = "../data/input.dat";
|
||||
|
||||
|
@ -184,7 +186,6 @@ TEST_CASE("ROM-based Cordic works with AP-Types", "[CORDIC]") {
|
|||
out_stream.open("results_ap.dat");
|
||||
// FILE * romf = fopen("rom.dat", "w");
|
||||
|
||||
constexpr cordic_rom cordic {};
|
||||
|
||||
constexpr double abs_margin = double(1 << cordic.Out_I) * 2. / 100.;
|
||||
|
||||
|
@ -219,8 +220,9 @@ TEST_CASE("ROM-based Cordic works with AP-Types", "[CORDIC]") {
|
|||
}
|
||||
|
||||
SECTION("W:16 - I:4 - Stages:6 - q:64 - internal scaling") {
|
||||
typedef CCordicRotateRomHalfPi<16, 4, 6, 64> cordic_rom;
|
||||
|
||||
// typedef CCordicRotateRomHalfPi<16, 4, 6, 64> cordic_rom;
|
||||
static constexpr cordic_rom cordic {};
|
||||
|
||||
string input_fn = "../data/input.dat";
|
||||
|
||||
constexpr double rotation = cordic_rom::rom_cordic.rotation;
|
||||
|
@ -262,8 +264,6 @@ TEST_CASE("ROM-based Cordic works with AP-Types", "[CORDIC]") {
|
|||
out_stream.open("results_ap.dat");
|
||||
// FILE * romf = fopen("rom.dat", "w");
|
||||
|
||||
constexpr cordic_rom cordic {};
|
||||
|
||||
constexpr double abs_margin = double(1 << cordic.Out_I) * 2. / 100.;
|
||||
|
||||
// Executing the encoder
|
||||
|
|
Loading…
Reference in a new issue