From c8a61331ea60e72d2b7f888274a7af13d450d0f8 Mon Sep 17 00:00:00 2001
From: Sakthivel Velumani <velumani@eurecom.fr>
Date: Thu, 9 Mar 2023 14:25:37 -0500
Subject: [PATCH] Update UE design doc

---
 doc/nr-ue-design.md | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/doc/nr-ue-design.md b/doc/nr-ue-design.md
index 6b8bd89bf13..7ee42335d64 100644
--- a/doc/nr-ue-design.md
+++ b/doc/nr-ue-design.md
@@ -16,19 +16,20 @@ The UE exits when at any point in operation it gets out of synchronization. When
 ## Initial Synchronization Block
 ```mermaid
 graph TD
-    A(Start) -->|UE_thread| B["readFrame<br/>--Reads samples worth 2 frames"]
-    B --> |Tpool thread| C["UE_synch<br/>--PSS & SSS detection<br/>--PBCH decode"]
-    B --> |UE_thread| D["readFrame<br/>--trash samples to unblock radio"]
-    C --> |Tpool thread| E[syncInFrame<br/>--shift first sample to start of frame]
-    D --> |UE_thread| E
+    start(Start) -->|UE_thread| rxRu["RU read<br/>(Reads two frames)"]
+    rxRu --> |Tpool thread| sync["SSB detection<br/>(PSS & SSS detection<br/>PBCH decoding<br/>SIB decoding)"]
+    rxRu --> |UE_thread| rxRuDummy["RU read<br/>(Dummy read till sync detection to avoid buffer overflow at radio)"]
+    sync --> |Tpool thread| frameSync["Frame synchronization<br/>(Shift received samples to align with frame)"]
+    rxRuDummy --> |UE_thread| frameSync
 ```
 ## Regular Slot Processing
 ```mermaid
 graph TD
-    E[syncInFrame<br/>--shift first sample to start of frame] -->|UE_thread| F["trx_read_func (slot n)"]
-    F --> |Tpool thread| G["processSlotTX (slot n+4)<br/>--PUSCH encode<br/>--PUCCH encode<br/>--trx_write_func"]
-    F --> |Tpool thread| J["UE_processing (slot n)<br/>--PDCCH decode<br/>--PDSCH decode"]
-    F --> |UE_thread| I(Merge)
-    G --> |Tpool thread| I
-    I --> |Go to next slot<br/>UE_thread| F
+    sync["Frame synchronization<br/>(Shift received samples to align with frame)"] -->|UE_thread| hw_read["RU read (slot n)"]
+    hw_read --> |UE_thread| rxPreProc["PBCH & PDCCH decoding (slot n)"]
+    hw_read --> |Tpool thread| txProc["Tx processing (slot n+3)<br/>PUSCH encode<br/>PUCCH encode (wait for DLSCH in slot n+3-k1 to finish)<br/>RU write"]
+    rxPreProc --> |Tpool thread| rxProc["PDSCH decoding (slot n)"]
+    rxPreProc --> |UE_thread| join(Merge)
+    txProc --> |Tpool thread| join
+    join --> |Go to next slot<br/>UE_thread| hw_read
 ```
-- 
GitLab