Commit Graph
644 Commits
Author SHA1 Message Date
Jaroslava Fiedlerova b824e55cdd Merge remote-tracking branch 'origin/imscope-td-plot' into integration_2024_w40b 2024-10-04 07:52:36 +02:00
Thomas Schlichter 28656a1adf add test log2_approx.boundaries 2024-10-02 13:30:16 +02:00
Thomas Schlichter d6f9bcd1cc fix test log2_approx64.boundaries
The test was actually never executed correctly (unsigned -10 is never <= 10), and log2_approx64_ref() was not accurate enough.
Therefore replace it by directly comparing one value above and one value below each rounding boundary.
2024-10-02 13:30:16 +02:00
Thomas Schlichter 6bf68c81c8 skip the test log2_approx.complete when using ctest
To skip the test, we use the gtest command line parameter "--gtest_filter" to filter out the unwanted test.
This parameter is described as follows:

--gtest_filter=POSITIVE_PATTERNS[-NEGATIVE_PATTERNS]
      Run only the tests whose name matches one of the positive patterns but
      none of the negative patterns. '?' matches any single character; '*'
      matches any substring; ':' separates two patterns.
2024-10-02 13:30:16 +02:00
Bartosz Podrygajlo b2c49fbc27 Add time-domain scope to gNB imscope. 2024-09-30 20:41:08 +02:00
Bartosz Podrygajlo 80f90b5599 Add time domain sample scope before sync
Added new data sync for UE which displays time domain samples read from RF device
before synchronization to PSS/SSS
2024-09-30 20:36:38 +02:00
Bartosz Podrygajlo 43a9236963 Improve imscope's scatterplot
- Reduce point size to 1 pixel
 - call ImPlot::PlotScatter as many times as needed
2024-09-30 20:36:18 +02:00
Bartosz Podrygajlo 7986a4de8e Time domain samples scope for NR UE
Add a new scope data source (ueTimeDomainSamples) which provides time domain samples
for antenna 0 to the scope. Add graphical representation of the data in imscope.

Removed C-define from ENABLE_IMSCOPE cmake option, the #define was unused and this way
code does not have to be recompiled when imscope enable state changes.
2024-09-30 20:34:09 +02:00
Robert Schmidt 51bb3d25cf Merge remote-tracking branch 'origin/small_fixes_for_5G_NR' into integration_2024_w39 2024-09-29 22:09:26 +02:00
Jaroslava Fiedlerova 2ba7d59dfe Merge remote-tracking branch 'origin/remove-includes' into integration_2024_w39 2024-09-27 17:12:39 +02:00
Thomas Schlichter 60c2b3fe00 nrscope: fix label on gNB scope - it is NR not LTE ;-) 2024-09-27 17:07:20 +02:00
Jaroslava Fiedlerova e0800d4225 Merge remote-tracking branch 'origin/fix_log2_approx' into integration_2024_w39 2024-09-27 11:16:22 +02:00
Bartosz Podrygajlo 23cc049157 Remove unnecessary includes in rfsimulator 2024-09-26 14:59:14 +02:00
Thomas Schlichter 4b679c0793 add test for log2_approx64() 2024-09-23 17:58:05 +02:00
Thomas Schlichter 58a2966499 add test for log2_approx() 2024-09-23 17:58:05 +02:00
Thomas Schlichter 4e09353b43 use SIMDE intrinsic to count leading zeroes and make rounding exact 2024-09-23 17:58:03 +02:00
francescomani d304865489 fix for log2_approx to approximate to the nearest neighbor, instead of ceil 2024-09-23 17:56:50 +02:00
Jaroslava Fiedlerova 0dae0551eb Merge remote-tracking branch 'origin/ci-remove-unused-code' into integration_2024_w38b 2024-09-23 17:26:14 +02:00
Robert Schmidt ec2afa22b1 Fix: egrep is obsolescent, use grep -E
See e.g., egrep(1) [https://linux.die.net/man/1/egrep]:

> two variant programs egrep and fgrep are available. egrep is the same
> as grep -E. fgrep is the same as grep -F. Direct invocation as either
> egrep or fgrep is deprecated

See also the rationale of the POSIX description of grep
(https://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html):

> This grep has been enhanced in an upwards-compatible way to provide
> the exact functionality of the historical egrep and fgrep commands as
> well. It was the clear intention of the standard developers to
> consolidate the three greps into a single command.

Closes: #839
2024-09-23 12:19:49 +02:00
Jaroslava Fiedlerova d017afaded Merge remote-tracking branch 'origin/NR_UE_pusch_optimization' into integration_2024_w38b 2024-09-20 16:43:31 +02:00
Sakthivel Velumani 321a20ea78 Fix vector mult function for out of bound access 2024-09-19 09:56:25 -04:00
Laurent THOMAS 31f770978c option q is to set cpu measurements but it is hardcoded in some places 2024-09-18 16:02:14 +02:00
Bartosz Podrygajlo e1879c07bc Fix segfault when attempting to use unsupported scope types in nrscope
Do not attempt to copy scope types >= MAX_SCOPE_TYPES in nrscope as it does
not support them at this point.
2024-09-05 15:21:07 +02:00
Bartosz Podrygajlo 8eb9e3d902 Fix pdschRxdataF_comp phy scope data source
pdschRxdataF_comp data source was handled incorrectly. Each symbol entire slot data was copied. This
caused pdschRxdataF_comp to mostly contain zeros. The call to UEscopeCopy was moved from symbol loop
into last symbol processing. In case imscope is used padding and unused REs are not copied to the
sink.

Added checks inside scope functions to ensure correct functionality.
2024-09-05 15:19:37 +02:00
Guido Casati 70dd524e2b Define softmodem bits in a separate header for either C and C++ 2024-09-05 15:19:26 +02:00
Bartosz Podrygajlo 6dcd3ae8c4 Use --imscope flag to enable/disable imscope 2024-09-05 15:19:09 +02:00
Bartosz Podrygajlo bdc6df8c42 NR UE & gNB imscope.
A new phy scope based on ImGui and ImPlot. This scope uses a different concurrency model than previous
scopes.

The PHY thread writing the data first checks if the data is ready to be written. If its not, nothing is copied.
The GUI thread reads data if available and marks it ready to write. This makes sure that the PHY threads are not
busy copying data that would never be displayed.

Some of the scopes also have a freeze functionality that further limit the amount of data that needs to be copied
from PHY threads. If a scope is "frozen" it still allows the user to explore the data using plots zoom/pan functions
but doesn't cause PHY threads to perform extra writes on the displayed data.

A compile option was added to enable/disable the scope. Use cmake -DENABLE_IMSCOPE=ON to enable the scope.

Update CXX standard to 17; it is required by some libraries (e.g., dear imgui). The oldest gcc version in
use by a distribution supported is Ubuntu 20, which has gcc 9.4 with c++17 support.
2024-09-05 15:19:00 +02:00
Sakthivel Velumani 26b3fcca3b Remove SIMD operation for DMRS amplitude scaling
There was concern that someone in the future might call the function
with the wrong inputs. So, based on the discussion on the MR below
https://gitlab.eurecom.fr/oai/openairinterface5g/-/merge_requests/2916#note_132506
the SIMD for multiplying DMRS vector with amplitude is removed and is
now done with plain C (no SIMD).

The execution time for the function dmrs_amp_mult() in this commit is
10x higher that the previous commit.
2024-09-03 09:21:29 +02:00
Sakthivel Velumani 393363e253 Refactor PUSCH RE mapping
RE mapping time is reduced by 10x. Functions are made generic to be
later reused for PDSCH RE mapping at gNB.
2024-09-03 09:21:29 +02:00
Robert Schmidt d97249d2cf Merge remote-tracking branch 'origin/refactor_rm_double_define' into integration_2024_w35 2024-09-02 11:48:30 +02:00
Matthias Mehlhose d055cc0004 remove double define with nr_common.h 2024-08-30 11:49:12 +00:00
Bartosz Podrygajlo 0883904891 Introduce benchmark test for rotate_cpx_vector
This commit introduces google benchmark library and one benchmark for
rotate_cpx_vector.  Also extracted common tools used in testcases for
generation and allocation of byte aligned vectors in phy_test_tools.hpp
2024-08-28 15:08:44 +02:00
Matthias Mehlhose aa9183c218 mod: Improve signal processing speed of rotate_cpx_vector function 2024-08-13 10:02:56 +00:00
Bartosz Podrygajlo ed05c94c3e Fix signal_energy_nodc for lengths that are not multiples of 4 2024-07-30 09:44:00 +02:00
Bartosz Podrygajlo dc91550e2c Remove unused flag single_thread_flag from softmodems. 2024-07-18 09:31:29 +02:00
Thomas Schlichter 394431a594 remove nrqtscope 2024-07-13 11:22:36 +02:00
Raghavendra Dinavahi 798ceeeef2 SL PSBCH: MAC->PHY cfg, PSBCH scheduler + supporting functions + enable system testing & scope
- Phy config update and Sidelink frame parameters initialisation
	- PSBCH scheduler to trigger TX PSBCH/RX PSBCH actions
	- Sidelink indication with rx ind to trigger send SL-MIB to MAC
	- Enable Scope for PSBCH use -d or --dqt
	- Enable system testing of PSBCH for example using RFSIMULATOR:

		- UE1 is a SYNCRONISATION SOURCE UE which transmits PSBCH

		  started using command -
		  sudo ./nr-uesoftmodem --sl-mode 2 --sync-ref 4 --rfsim --rfsimulator.serveraddr server

		- UE2 syncs onto UE1 during sidelink search, gets the timing and continues to receive PSBCH

		  started using command -
		  sudo ./nr-uesoftmodem --sl-mode 2 --rfsim --rfsimulator.serveraddr 127.0.0.1

		- In the default use case 2 Sidelink SSBs sent over 16 frames.

		- In case SL-SSB configuration needs to be changed use -O option in the above command like

		-O ../../../targets/PROJECTS/NR-SIDELINK/CONF/sidelink_preconfig_1txpool.conf
2024-06-21 09:40:16 +02:00
Robert Schmidt 6b37d183ce Remove set_latency_target(), add lock_memory_to_ram()
set_latency_target() attempts to set keep "low latency" by
- writing a specific latency to /dev/cpu_dma_latency
- setting manually the minimum CPU processor frequency to be the maximum

There is no functionality to undo this after stopping the softmodem(s),
and most users are probably not even aware that OAI does this. It is
generally preferable to set this beforehand using a governor or by
disabling sleep states (as outlined in the tutorial, and in a follow-up
commit in the performance tuning docs).

The previous mlockall() call, to lock memory to RAM, is retained in a
new function. There were additional mlockall() calls, which have been
replaced with lock_memory_to_ram(), where necessary.
2024-06-03 13:59:41 +02:00
Robert Schmidt ebeb26528a Merge remote-tracking branch 'origin/NR_PSBCH_MERGE1' into integration_2024_w15 2024-04-15 14:34:36 +02:00
Jaroslava Fiedlerova de263d4a40 Merge remote-tracking branch 'origin/fft_size_fix_3072' into integration_2024_w15 2024-04-15 08:29:34 +02:00
Robert Schmidt 9a2e080f77 Apply clang-format 2024-04-13 08:54:15 +02:00
Raghavendra Dinavahi 94b23d1eb0 PSBCH RX TX and SLSS search procedures
- RX/TX Phy processing accg to 38.211, 38.212 Rel16
	- PSBCH simulator used to validate TX/RX phy processing
	- PSBCH SLSS Search procedures
	- PSBCH SIM also tests SLSS SEARCH
2024-04-12 16:07:00 +02:00
rakesh mundlamuri 47d1f8bb82 harmonizing the IDFT index at different places 2024-04-11 16:47:32 -04:00
francescomani 96ff859cb7 shiftTooManyBitsSigned 2024-04-09 16:53:12 +02:00
francescomani 9cc53a43b1 invalidPrintfArgType_uint 2024-04-09 16:44:56 +02:00
Jaroslava Fiedlerova 4d25ee9545 Merge remote-tracking branch 'origin/dqt-troubleshoot-doc' into integration_2024_w13 2024-04-02 11:35:51 +02:00
Robert Schmidt 9b8479488f Provide additional troubleshooting documentation for QtScope
On Wayland (e.g., Gnome on Ubuntu 22), additional steps might be
necessary to make QtScope run. Describe them in the doc.

Closes: #696
2024-03-29 09:50:32 +01:00
Laurent THOMAS 88fb3c3598 change type to c16_t around dmrs computation pieces of code 2024-03-26 20:57:31 +01:00
Laurent THOMAS 39400a458e change partially pbch detection to c16_t instead of hidden complex in int16_t and int32_t 2024-03-26 20:57:31 +01:00
Robert Schmidt 7ea8833529 Use MAX_MOBILES_PER_GNB in 5G NR code
NUMBER_OF_UE_MAX is a 4G constant, use 5G one instead
2024-03-07 09:56:20 +01:00