Commit Graph
155 Commits
Author SHA1 Message Date
francescomani 0a447fd304 remove VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME from NR code and remaining unused header include 2026-02-11 10:30:07 +01:00
Sakthivel Velumani 5f3a19cb7d Separate segmentation from ULSCH encoding function
Segmentation have to be called before UCI mapping to get number of
segments and sumKr values.
2025-09-26 11:16:54 +08:00
Abdo-Gaber e0c5621d60 Add traces on UE PHY UL and related requirement: Tx Scrambled bits and Tx payload bits
- Update input parameters to nr_ulsch_encoding () in
  nr_transport_proto_ue.h to get number_dmrs_symbols to be added to
  meta-data.
- In nr_ulsch_coding.c: Trace UE PHY UL Payload TX bits (T_message:
  T_UE_PHY_UL_PAYLOAD_TX_BITS) including related meta-data and UTC time.
- In nr_ulsch_ue.c: Trace UE PHY UL Scrambled TX bits (T_message:
  T_UE_PHY_UL_SCRAMBLED_TX_BITS) including related meta-data and UTC
  time.
- Fix the input prameters in nr_ulsch_encoding () called in
  (openair1/SIMULATION/NR_PHY/ulschsim.c) since a new input parameter
  has been added.
2025-07-23 11:18:37 +02:00
Romain Beurdouche 1b31ac417b fix(nrLDPC_coding_interface): Move the encoding output to the TB
Since this branch aims to bring all the encoded segments packed and contiguous,
it doesn't make anymore sense to have one output array per segment.
Therefore this commit moves the output array to the TB instead of the segment and adapts its size.

TODO: Adapt the size of f where it is relevant.
2025-05-13 14:08:33 +00:00
Romain Beurdouche f3daf0ed83 fix(nrLDPC_coding): Miscellaneous fixes
1. nrLDPC_coding_segment_encoder: pointer not aligned on 64 bits
   An undefined behavior was happening because of a shift on a __m64 which
   was actually a uint32_t which was not aligned on 64 bits.
   This commit suggests a fix by properly loading into a __m64 with _mm_set_pi32
   before performing the shift.

2. nr_rate_matching: Filler bits detection
   Previously, if the bit selection was reaching Ncb and restarting selection from the beginning of encoded data, the filler bits were detected by testing the bytes again NR_NULL which was equal to 2.
   But on this branch the bits of up to 8 segments are stored in one byte while doing rate matching so that one byte could be tested to be a filler while it is not.
   So this commit changes the way to test filler bits.
   Instead of relying on NR_NULL, bit selection now relies on the offset and size of filler bits.

3. nr_ulsch_coding: missing filling f with zeros
   The array `f` of the UE UL HARQ process was not filled with zeros between transmissions.
   This is a problem if the encoder does not properly overwrite its output.
   In order to avoid such situation, this commit adds a memset to fill `f` with zeros before passing it to the encoder.

4. nrLDPC_coding_segment_encoder: missing init of f to zeros
   In the encoder, `f` is not filled with zeros before being used.
   `f` is instead somehow filled with arbitrary values.
   When writing to `output` by 64 bit vectors, some arbitrary bits may be added after the segment.
   Then the arbitrary added ones are not overwritten when writing the next segment because of writing with a logical or.
   This commit properly fills `f` and `f2` with zeros.

5. nr_ulschsim & nr_dlschsim: Adapt modulation to new encoder output
   The QPSK symbols that are feed to the channel model of nr_dlschsim were determined based on the bytes of the encoder output.
   With the new output of the encoder, it had to be reworked to determine the QPSK symbols based on the bits of the encoder output.
2025-05-13 14:08:33 +00:00
Yi-Hung Chang 80c406693f feat(nrLDPC_coding_interface): Use reworked interface in UE 2024-12-16 08:40:54 +01:00
Sakthivel Velumani 9c8bdd6db5 Add PUSCH timing stats 2024-09-03 09:18:26 +02:00
Bartosz Podrygajlo b242a483f1 Rewrite NR UE PHY cpu measurements 2024-07-30 19:23:54 +02:00
Jaroslava Fiedlerova 6bec8779c6 Enhance T2 Offload for gNB and UE
- Reworked nrLDPC_decoder_offload.c to process all segments in a TB with a single call to LDPCdecoder() or LDPCencoder().
- Perform CRC checks on the T2.
- Modified nr_ulsch_decoding (gNB decoder) to:
  - Count processed segments.
  - Properly perform CRC checks.
- Created a constant NR_LDPC_MAX_NUM_CB to define the maximum number of codeblocks.
- Conditional library loading:
  - On gNB: Load ldpc_t2 library if offload is enabled using the --ldpc-offload-enable flag.
  - On UE: Load both ldpc_t2 and ldpc libraries since only encoder offload is supported.
- General cleanup of nrLDPC_decoder_offload.c for improved readability and maintainability.
- Modified the structure of LDPC encoder/decoder/offload parameters:
  - Introduced a structure for code block (CB) related parameters.
  - Removed parameter E from the encoder and offload parameter structures for clarity.
  - Replaced E with perCB->E_cb in the UE encoder code.
2024-06-27 14:40:41 +02:00
Laurent THOMAS df9cd171f6 remove a useless copy and specific buffer for all UE UL payload 2024-04-17 10:59:13 +02:00
Jaroslava Fiedlerova b166286a78 Use clang format 2024-01-25 17:21:32 +01:00
Jaroslava Fiedlerova bec8ebc311 Perform interleaving on the T2 card
- UE and gNB encoder modification
- update T2 related doc
2024-01-25 17:21:32 +01:00
Jaroslava Fiedlerova ce659915ec Enable T2 encoding offload with rate matching on the UE side
- cleanup of the UE encoder code
- support rate matching on the T2 card
- remove unused code
2024-01-25 17:21:32 +01:00
francescomani 7ca130832b move computation of base graph for LDPC at MAC in the UE 2023-12-20 18:03:17 +01:00
Robert Schmidt b4b2389753 Merge remote-tracking branch 'origin/ue-fix-ul-first-tx' into integration_2023_w48 2023-12-05 07:39:51 +01:00
Thomas Schlichter 6ef5d27c08 NR_UE: fix usage of PUSCH new_data_indicator and cleanup 2023-12-01 16:02:17 +01:00
Jaroslava Fiedlerova cf97acb8c7 Add T2 LDPC encoding/decoding offload 2023-11-28 09:37:37 +01:00
Laurent THOMAS 99ca87a1c1 Refactor LDPC API to make common API with various implementations 2023-11-28 09:37:37 +01:00
Laurent THOMAS d448b5e549 remove 'B' from persisted data, replace 3824 hardcoded by it's existing define 2023-09-29 10:23:54 +02:00
francescomani 26bceb2277 handling reserved case of ULSCH MCS 2023-08-19 08:31:03 +02:00
Vijay Chadachan 836469e849 CPPCHECK fixes for printf issues
Fix for following CPPCheck warnings
- invalidPrintfArgType
Rebased with latest develop branch w21.
Reverted modifications unrelated to printf issues.
2023-06-01 12:07:26 +02:00
francescomani fc30280a7d cleaning up some NR files 2023-02-21 16:53:51 +01:00
Sakthivel Velumani 3c8478f785 Moved PHY ULSCH struct to stack 2022-11-22 11:54:18 -05:00
francescomani 51483a3223 add option for limited buffer rate-matching for UL 2022-08-26 09:01:48 +02:00
francescomani 9e5a77e6e3 Remove max number of HARQ rounds from L1
Contributors:
  francescomani <email@francescomani.it>
  Rodolphe Bertolini <rodolphe.bertolini@cea.fr>
2022-08-01 15:59:16 +02:00
francescomani d56f2c8e12 addressing review comments 2022-05-18 17:36:32 +02:00
francescomani 1f49b73eac Merge remote-tracking branch 'origin/develop' into NR_dl_ul_fapi_improv 2022-05-18 08:55:40 +02:00
francescomani c4c93cc498 Merge remote-tracking branch 'origin/develop' into NR_dl_ul_fapi_improv 2022-05-12 08:56:45 +02:00
Roberto Louro Magueta 4c1b432718 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4
# Conflicts:
#	openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
2022-05-11 13:45:56 +01:00
francescomani c6b4f97d19 coderate according to SCF and get tbs,qm,R only at MAC 2022-03-26 13:37:34 +01:00
francescomani 65d0318504 using tbslbrm at mac also for ulsch as in scf spec 2022-03-25 17:52:44 +01:00
francescomani 8fbe727b32 Merge remote-tracking branch 'origin/develop' into NR_DL_TBSLBRM 2022-03-24 12:31:38 +01:00
francescomani d36549f80a fix memory issues 2022-03-23 19:15:02 +01:00
francescomani 07d20ba121 fix for memory issues 2022-03-23 09:58:55 +01:00
francescomani fb118a76a8 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-03-22 13:21:43 +01:00
francescomani 06d488bb23 ulsch memory optimization 2022-03-09 17:35:38 +01:00
francescomani eec513ab4f Merge remote-tracking branch 'origin/develop' into NR_DL_TBSLBRM 2022-03-01 16:05:30 +01:00
francescomani 9e26621d4b Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-03-01 15:54:31 +01:00
francescomani 43ea92bf8f Merge remote-tracking branch 'origin/develop' into NR_MIMO_memory 2022-03-01 15:08:30 +01:00
francescomani 69baaa6998 Merge remote-tracking branch 'origin/develop' into NR_MIMO_memory 2022-02-22 11:21:59 +01:00
Robert Schmidt d601209036 Fix nr_ulschsim: correct size for N_RB_UL 2022-02-21 13:36:41 +01:00
Robert Schmidt 2251453cbd Fix nr_dlschsim: correct size for N_RB_DL
Fix warning, drop undefined function
2022-02-21 13:36:41 +01:00
Robert Schmidt 399e6d78f7 new_nr_ue_ulsch(): no abstraction_flag, add term_nr_ue_transport() 2022-02-21 13:35:35 +01:00
francescomani ec539fc6a5 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-02-21 10:02:30 +01:00
francescomani 77153fbf5f TBSLBRM for DL computed ad MAC (added fapi parameter) 2022-02-17 10:16:22 +01:00
Robert Schmidt ff0fb53056 Merge remote-tracking branch 'origin/nr-fdd-scheduling' into integration_2022_wk07_c 2022-02-17 09:32:44 +01:00
francescomani 8c1ed65c1f Merge remote-tracking branch 'origin/develop' into NR_MIMO_memory 2022-02-16 13:46:54 +01:00
francescomani c4f1812cc9 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-02-14 18:14:19 +01:00
francescomani dc5cdd4e10 fix in xlsch bytes for memory allocation 2022-02-02 15:03:43 +01:00
francescomani aa6f636198 adding log_e for ulsch segmentation 2022-02-01 10:25:39 +01:00