Commit Graph

70 Commits

Author SHA1 Message Date
Andre Puschmann 476f970ee1 replace FIXME with TODO 2019-12-18 11:25:56 +01:00
Pedro Alvarez c5979f59eb Clang format UE, eNB and lib (#850)
* Clang-formated UE, eNB and lib.
* Fixed compiling errors from clang-format.
* Fix linking issues introduced by clang-format
* Fix poor formating in initializing arrays of arrays.
* Fix mistake in conflict resolution on rm_turbo.c
* Re-apply clang format to gtpc_ies.h
2019-12-16 16:04:22 +01:00
Vasil Velichkov a44671fc77 PHY: Manually unroll loops that use _mm_extract_epi(8/16)
clang does not unroll those loops even though it supports the
-funroll-loops command line option, adding various #pragma unroll
options also does not help.

The unroll is needed to make the second argument a constant integer.

Enable the SSE/AVX turbo rate matching when compiling in debug mode.

srsLTE/lib/src/phy/fec/rm_turbo.c:590:33: error: argument to '__builtin_ia32_vec_ext_v16qi' must be a constant integer
          int8_t x  = (int8_t)  _mm_extract_epi8(xVal,   j+8);
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib64/clang/7.0.1/include/smmintrin.h:1048:23: note: expanded from macro '_mm_extract_epi8'
  (int)(unsigned char)__builtin_ia32_vec_ext_v16qi((__v16qi)(__m128i)(X), \
                      ^
srsLTE/lib/src/phy/fec/rm_turbo.c:591:35: error: argument to '__builtin_ia32_vec_ext_v8hi' must be a constant integer
          uint16_t l = (uint16_t) _mm_extract_epi16(lutVal2, j);
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib64/clang/7.0.1/include/emmintrin.h:4273:24: note: expanded from macro '_mm_extract_epi16'
  (int)(unsigned short)__builtin_ia32_vec_ext_v8hi((__v8hi)(__m128i)(a), \
2019-12-16 14:06:26 +01:00
Xavier Arteaga 6d896ee453 Fixed more static code analysis warnings 2019-12-02 09:47:22 +01:00
Xavier Arteaga b48bb0d754 Removed atof, atoll and atoi calls 2019-12-02 09:47:22 +01:00
Xavier Arteaga 8dd1c59e18 Added amplitude and power conversions to dB and viceversa 2019-12-02 09:47:22 +01:00
Xavier Arteaga f75d0e5b26 Change M_SQRT2 and M_SQRT1_2 instead of sqrt(2) and 1/sqrt(2) 2019-12-02 09:47:22 +01:00
Andre Puschmann 768ce745dc fixing issue in Viterbi when decoding zero codeword
it seems that when the input is only zero, the calculated max
becomes zero too. This causes a div by zero later in the
normalization (q->gain_quant/max).
2019-11-21 13:18:04 +01:00
Xavier Arteaga 78fcc11a30 Fixes minor unitialised/leaked memory 2019-09-20 16:03:37 +02:00
Andre Puschmann e0bd7f156d replace remaining warning macros with pragma message 2019-07-23 15:38:21 +02:00
Guillem Foreman 535325bc37 srsLTE: added resource allocation extended tables for 256QAM and integration with PDSCH test 2019-07-04 15:49:43 +02:00
Andre Puschmann 4b01a2e4a0 update copyright notice 2019-04-29 09:20:02 +02:00
Ismael Gomez 7780b1aba5 add tdd/ca support 2019-04-25 20:57:58 +02:00
Ismael Gomez a8a0c3ebe7 Fixed compilation in zynq 2018-12-12 14:34:13 +01:00
yagoda 3762738bc1 adding windowed neon turbodecoder (can be further optimized) 2018-12-12 11:27:07 +01:00
yagoda 69dc16c4c8 changes to fix arm compilation 2018-11-27 14:27:59 +01:00
Ismael Gomez 0294923e2b Merge branch 'next' of github.com:softwareradiosystems/srsLTE into next 2018-09-19 16:42:11 +02:00
Xavier Arteaga a9fcd64b1f Fixes #259: Turbodecoder AVX2 instructions under LV_HAVE_AVX (instead of LV_HAVE_AVX2) 2018-09-19 12:35:37 +02:00
Ismael Gomez 243a7708d4 Merge branch 'next' of github.com:softwareradiosystems/srsLTE into next 2018-09-07 14:06:27 +02:00
Ismael Gomez 826fbccf11 Fixed memory leaks in new decoder 2018-09-07 14:05:45 +02:00
Andre Puschmann d19eb28a16 fix various variable initializations that gcc-4.8 complained about 2018-09-05 12:34:40 +02:00
Ismael Gomez bc9d342959
New optimization on the PHY for both UE and eNodeB (#251)
* New parallel Turbodecoder implementation in SSE/AVX 16-bit and 8-bit

* Optimised UL Interleaver

* Include TB CRC calculation in FEC encoder

* New threading priorities
2018-09-04 17:51:35 +02:00
Xavier Arteaga ca429d2be5 Fixed turbocoder free 2018-08-01 10:58:08 +02:00
Ismael Gomez 3a9f224f40 Turbo Coder LUT not a function of CB size 2018-07-19 17:22:18 +02:00
Xavier Arteaga a21db86a78 SCH Codeblock CRC is computed at same time than parity 0 2018-07-17 15:37:57 +02:00
Xavier Arteaga 3d3f98b21e Fixed posible interleaver segfault 2018-07-13 12:48:49 +02:00
yagoda 8751645a48 cleaning up viterbi neon 2018-07-10 10:26:59 +01:00
Xavier Arteaga 2c1608f6f1 Fixed UCI short CQI decoder. Fixed possible interleaver segfault. PUSCH Unit test tidied up. 2018-07-02 18:22:15 +02:00
Ismael Gomez 4ffee4326b Fix memory leaks in unit tests 2018-05-03 17:36:39 +02:00
Joseph Giovatto ab1d9e98f3 Format and typelimit warnings (#169)
* merge with origin 4fc7dbc3 8daa8346

* fixed whitespace diff

* added .gitignore

* added format warning flags to C_FLAGS
added typelimit check to C_FLAGS and CXX_CLAGS

* Revert "added format warning flags to C_FLAGS"

Apply to branch format_and_typelimt branch

This reverts commit bf7467e82e.

* check for format warnings to top level C_FLAGS
added typelimit warnings to top level C_FLAGS and CXX_FLAGS
beset effort attempt to remedy warnings
removed unused param names in hex_log baseclass methods due to multitude of unused-warnings
2018-04-29 17:26:35 +02:00
Ismael Gomez 3adc6b5cbc
Merge pull request #158 from softwareradiosystems/csi
Csi
2018-03-07 14:40:57 +01:00
Andre Puschmann ac0f934558 fix leaks in viterbi and modem tests 2018-03-06 22:33:57 +01:00
Andre Puschmann c6933f5338 fix leak in turbocoder test 2018-03-06 21:48:44 +01:00
Andre Puschmann 57bb831f27 fix RM turbo test 2018-03-04 21:53:06 +01:00
Xavier Arteaga 2a69211f32 SCH does not terminate all codeblocks if one fail. Also, SCH does not decode blocks with CRC=OK 2018-03-01 14:01:36 +01:00
Andre Puschmann d959608e10 fix mem dealloc in viterbi for 16bit AVX 2018-02-20 11:44:46 +01:00
yagoda eb8a884e90 small optimization in neon viterbi 2018-02-07 16:51:23 +00:00
Andre Puschmann 8da4373d30 fix various coverity bugs 2018-01-30 17:33:20 +01:00
Ismael Gomez 0093928b73 Fixed some warnings in ARM 2018-01-20 12:08:35 +01:00
Ismael Gomez d2e1600053 Updated viterbi 16-bit scaling 2018-01-16 09:57:45 +01:00
Ismael Gomez d88ed887d7 Revert "Take 1st block of iteration instead of 2nd in viterbi"
This reverts commit b12f500207.
2018-01-16 09:55:14 +01:00
Ismael Gomez b12f500207 Take 1st block of iteration instead of 2nd in viterbi 2018-01-12 15:19:37 +01:00
yagoda 2375b152af small fix for viterbi test without AVX2 2018-01-10 21:26:58 +00:00
yagoda d749ee66f4 introducing 16 bit viterbi support 2018-01-08 17:05:23 +00:00
Ismael Gomez 1fb2262130 Revert "Increased viterbi quantification to maximum"
This reverts commit 5c7ce5a799.
2018-01-05 10:33:39 +01:00
Ismael Gomez 5c7ce5a799 Increased viterbi quantification to maximum 2018-01-03 18:06:53 +01:00
Andre Puschmann 68537b76d6 fix compilation issue on ARM 2017-12-18 15:39:24 +01:00
yagoda a99d6318db fixing viterbi testing bug 2017-12-14 17:26:54 +00:00
Xavier Arteaga 15e75b2c65 Created Bit interleaver object and SSE optimised interleaver 2017-10-23 14:23:03 +02:00
Ismael Gomez 4375113efc Merge branch 'next' into next_novolk 2017-10-02 17:57:38 +01:00