diff --git a/doc/nr-ue-design.md b/doc/nr-ue-design.md
index 6b8bd89bf1..7ee42335d6 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
--Reads samples worth 2 frames"]
- B --> |Tpool thread| C["UE_synch
--PSS & SSS detection
--PBCH decode"]
- B --> |UE_thread| D["readFrame
--trash samples to unblock radio"]
- C --> |Tpool thread| E[syncInFrame
--shift first sample to start of frame]
- D --> |UE_thread| E
+ start(Start) -->|UE_thread| rxRu["RU read
(Reads two frames)"]
+ rxRu --> |Tpool thread| sync["SSB detection
(PSS & SSS detection
PBCH decoding
SIB decoding)"]
+ rxRu --> |UE_thread| rxRuDummy["RU read
(Dummy read till sync detection to avoid buffer overflow at radio)"]
+ sync --> |Tpool thread| frameSync["Frame synchronization
(Shift received samples to align with frame)"]
+ rxRuDummy --> |UE_thread| frameSync
```
## Regular Slot Processing
```mermaid
graph TD
- E[syncInFrame
--shift first sample to start of frame] -->|UE_thread| F["trx_read_func (slot n)"]
- F --> |Tpool thread| G["processSlotTX (slot n+4)
--PUSCH encode
--PUCCH encode
--trx_write_func"]
- F --> |Tpool thread| J["UE_processing (slot n)
--PDCCH decode
--PDSCH decode"]
- F --> |UE_thread| I(Merge)
- G --> |Tpool thread| I
- I --> |Go to next slot
UE_thread| F
+ sync["Frame synchronization
(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)
PUSCH encode
PUCCH encode (wait for DLSCH in slot n+3-k1 to finish)
RU write"]
+ rxPreProc --> |Tpool thread| rxProc["PDSCH decoding (slot n)"]
+ rxPreProc --> |UE_thread| join(Merge)
+ txProc --> |Tpool thread| join
+ join --> |Go to next slot
UE_thread| hw_read
```