diff --git a/README.md b/README.md
new file mode 100644
index 0000000..75577a3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,308 @@
+# RFSoC Channelizer RX Architecture (ZCU111)
+
+> **Project Context:** This design is part of a prototype **R-ESM (Radar Electronic Support Measures) receiver**, implemented on the ZCU111 RFSoC platform.
+> The project was initiated from the RFSoC reference template provided by MATLAB/Simulink SoC Blockset and is being incrementally analyzed and modified.
+
+---
+
+## System Overview
+
+* The **TX subsystem** is currently used for test purposes:
+
+ * Generates a **single-tone signal via NCO**
+ * Future work: implement an **LFM pulse generator**
+
+* The **RX subsystem** (focus of this document):
+
+ * Acquires RF data via ADC
+ * Performs **channelization (PFB)**
+ * Buffers and serializes data
+ * Streams data to processor (PS) via AXI DMA
+
+---
+
+## System Configuration
+
+* ADC Sampling Rate: **4096 MSPS**
+* Decimation: **×8 → 512 MSPS effective bandwidth**
+* FPGA Fabric Clock: **128 MHz**
+* Samples per Clock: **4 complex samples**
+
+---
+
+## Channelizer (PFB)
+
+* Type: Polyphase Filter Bank (PFB)
+* Number of Channels: **512**
+* Taps per Channel: **16**
+* Output per Clock:
+
+ * `4 complex samples` (vectorized)
+ * `valid`, `SOF`, `EOF`
+
+### Frame Structure
+
+* Total bins per frame: **512**
+* Samples per clock: **4**
+* → **128 clock cycles per frame**
+
+### Time-Multiplexed Output
+
+Each clock produces consecutive frequency bins:
+
+```id="y7l3sj"
+clk 0 → bins 0–3
+clk 1 → bins 4–7
+...
+clk 127 → bins 508–511
+```
+
+---
+
+## Data Representation
+
+* Input to channelizer: **16-bit complex**
+* Output: **25-bit complex**
+* Per sample: **50 bits (Re + Im)**
+
+Data is later packed into **uint64** for AXI compatibility.
+
+---
+
+## FIFO Architecture (Banked Design)
+
+### Structure
+
+* **4 independent FIFOs**
+* One FIFO per lane (sample index)
+
+```id="k6d9c7"
+Lane 0 → FIFO1
+Lane 1 → FIFO2
+Lane 2 → FIFO3
+Lane 3 → FIFO4
+```
+
+### Depth
+
+* Each FIFO depth: **128**
+* Total frame: **512 samples**
+* → 512 / 4 = 128 samples per FIFO
+
+---
+
+## Why 4 FIFOs (Critical Design Choice)
+
+### Hardware Constraint
+
+FPGA BRAM:
+
+* Max **2 ports**
+* Cannot support **4 simultaneous writes**
+
+### Input Requirement
+
+* 4 samples per clock → **4 writes per clock**
+
+### Solution
+
+→ **Banked memory (4 FIFOs)**
+
+Each FIFO:
+
+* 1 write per clock
+* Fully compatible with BRAM architecture
+
+---
+
+## Data Organization Across FIFOs
+
+Each FIFO stores a decimated sequence of bins:
+
+```id="ehy2k6"
+FIFO1: bins 0, 4, 8, ...
+FIFO2: bins 1, 5, 9, ...
+FIFO3: bins 2, 6, 10, ...
+FIFO4: bins 3, 7, 11, ...
+```
+
+This is a **lane-based de-interleaving** of the channelizer output.
+
+---
+
+## Serialization (Parallel → Stream Conversion)
+
+### Input
+
+* 4 samples per clock (parallel)
+
+### Output
+
+* 1 sample per clock (AXI stream)
+
+### Mechanism
+
+A **FIFO Sequencer** performs round-robin reads:
+
+```id="b42g8p"
+Cycle 0 → FIFO1
+Cycle 1 → FIFO2
+Cycle 2 → FIFO3
+Cycle 3 → FIFO4
+(repeat)
+```
+
+### Result
+
+Reconstructed stream:
+
+```id="9f8x7x"
+0, 1, 2, 3, 4, 5, ..., 511
+```
+
+---
+
+## Throughput Behavior
+
+* Write side: **4 samples/clk**
+* Read side: **1 sample/clk**
+
+Over 4 cycles:
+
+* 4 samples written → 4 samples read
+
+→ **No data loss (rate preserved over time)**
+
+---
+
+## TLAST Handling (Frame Boundary)
+
+* TLAST is embedded in FIFO data:
+
+ * LSB of FIFO word carries TLAST flag
+
+```id="l6g0vn"
+[Data (50 bits)] + [TLAST (1 bit)]
+```
+
+* Extracted after FIFO mux and sent to AXI
+
+### Behavior
+
+* TLAST asserted **once per frame**
+* Typically associated with final bin (e.g., bin 511)
+
+---
+
+## AXI4-Stream Interface
+
+Output signals:
+
+* `tdata` → uint64 packed data
+* `tvalid` → data valid
+* `tready` → backpressure from DMA
+* `tlast` → frame boundary
+
+### Data Path
+
+```id="9m7iqk"
+PL → AXI4-Stream → AXI DMA (S2MM) → DDR → PS
+```
+
+---
+
+## Backpressure Handling
+
+AXI backpressure (`tready`) propagates upstream:
+
+* If `tready = 0`:
+
+ * FIFO reads pause
+ * Data accumulates in FIFOs
+
+### Protection Mechanism
+
+* FIFO_Sequencer only reads when:
+
+ * AXI is ready
+ * Data available in all FIFOs
+
+---
+
+## Triggered Capture Mechanism
+
+### Trigger Source
+
+* Software writes to register
+* Generates 1-cycle pulse (`TriggerCapture`)
+
+### FFT_Capture Behavior
+
+State machine:
+
+```id="27qf3x"
+IDLE → wait trigger
+ARMED → wait SOF
+CAPTURE → collect 128 cycles
+DONE → assert TLAST
+```
+
+### Key Property
+
+Capture is **frame-aligned** (starts at SOF)
+
+---
+
+## Architectural Pattern
+
+The system implements:
+
+```id="2q6v6x"
+Parallel Stream (4 samples/clk)
+ ↓
+Banked Memory (4 FIFOs)
+ ↓
+Round-Robin Serialization
+ ↓
+AXI Stream (1 sample/clk)
+```
+
+This is a standard FPGA pattern:
+
+> **Lane-based parallelism + memory banking + time-multiplexed output**
+
+---
+
+## Notes for Future Work (FrFT Integration)
+
+### Recommended Insertion Points
+
+**Option A (Preferred):**
+
+```id="bb7jbp"
+FIFO output → FrFT → MUX → AXI
+```
+
+**Option B:**
+
+```id="o5o0qz"
+MUX → FrFT → AXI
+```
+
+### Avoid
+
+```id="q8k3yo"
+Before FIFOs (requires 4-sample parallel processing)
+```
+
+---
+
+## Key Takeaways
+
+* Multiple FIFOs are required due to **memory port limitations**
+* Serialization is done via **deterministic round-robin scheduling**
+* AXI backpressure is safely absorbed using FIFO buffering
+* Frame integrity is guaranteed via **SOF-aligned capture + TLAST**
+* Architecture is scalable and suitable for further DSP insertion (e.g., FrFT)
+
+---
diff --git a/referencedmodels/soc_rfsoc_fpga.slx b/referencedmodels/soc_rfsoc_fpga.slx
index c36fe64..3b0b4ae 100644
Binary files a/referencedmodels/soc_rfsoc_fpga.slx and b/referencedmodels/soc_rfsoc_fpga.slx differ
diff --git a/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/QMJD9OLFzxcTTbPOoh-ahQ4zTRUd.xml b/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/QMJD9OLFzxcTTbPOoh-ahQ4zTRUd.xml
new file mode 100644
index 0000000..4356a6a
--- /dev/null
+++ b/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/QMJD9OLFzxcTTbPOoh-ahQ4zTRUd.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/QMJD9OLFzxcTTbPOoh-ahQ4zTRUp.xml b/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/QMJD9OLFzxcTTbPOoh-ahQ4zTRUp.xml
new file mode 100644
index 0000000..4137335
--- /dev/null
+++ b/resources/project/qaw0eS1zuuY1ar9TdPn1GMfrjbQ/QMJD9OLFzxcTTbPOoh-ahQ4zTRUp.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/soc_rfsoc_top.slx b/soc_rfsoc_top.slx
index 916cee7..1eabd43 100644
Binary files a/soc_rfsoc_top.slx and b/soc_rfsoc_top.slx differ