This project implements a 128-point FFT block and a slicing unit for an OFDM (Orthogonal Frequency-Division Multiplexing) communication system. It decodes complex waveforms into frequency bins and extracts binary data from specific tones.
The design meets the following specifications:
- 128-point FFT for complex signals.
- 24 data tones, each coded as 2 bits.
- Synchronization tones in bins 55 and 57 for full-scale reference.
-
128-Point Complex FFT:
- Processes signed 16-bit inputs in 1.15 fixed-point format.
- Converts time-domain signals into frequency bins.
-
Slicing Block:
- Maps frequency bin magnitudes to 2-bit binary values.
- Decodes energy levels into
00,01,10, or11.
-
Data Format:
- Input: 16-bit real and imaginary parts.
- Output: 48-bit binary data for 24 tones.
-
Input Data:
- Real and imaginary parts in 1.15 fixed-point format.
- Range: ±1 (normalized).
-
Output Data:
- 48 bits per FFT block (2 bits per tone for 24 tones).
- Energy levels:
00: 0% (<25% of full scale)01: 33% (≥25% and <50%)10: 66% (≥50% and <75%)11: 100% (≥75%)
-
Synchronization Tones:
- Fixed tones in bins 55 and 57 for full-scale reference.
-
Module Ports:
Port Name Direction Bits Description ClkInput 1 Positive edge system clock. ResetInput 1 Active-high asynchronous reset. PushInInput 1 Data present on input. FirstDataInput 1 Indicates the first FFT block. DinRInput 16 Real part of input (1.15 fixed-point). DinIInput 16 Imaginary part of input (1.15 fixed-point). PushOutOutput 1 Data present on output. DataOutOutput 48 Decoded 48-bit output.
-
Input Processing:
- Accepts complex signals (real and imaginary parts) in fixed-point format.
- Applies a 128-point FFT to convert time-domain data to frequency bins.
-
Slicing:
- Evaluates magnitudes of frequency bins (4–52).
- Categorizes energy levels into binary values based on full-scale reference.
-
Output Data:
- Produces 48-bit binary data for every FFT block.
- Data corresponds to 24 tones with 2 bits per tone.
-
Precision:
- Managed fixed-point arithmetic for accurate FFT results.
-
Synchronization:
- Utilized bins 55 and 57 to establish full-scale reference levels.
-
Energy Mapping:
- Implemented robust slicing logic for consistent decoding.
-
Setup:
- Integrate the module into your OFDM communication system.
- Provide 128-point complex waveform input via
DinRandDinI.
-
Run:
- Connect
ClkandResetsignals. - Use
PushInandFirstDatato manage input flow.
- Connect
-
Extract Output:
- Read 48-bit binary data from
DataOutfor each FFT block.
- Read 48-bit binary data from
- Support for larger FFT sizes (e.g., 256 or 512 points).
- Dynamic tone mapping for enhanced system flexibility.
- Optimization of fixed-point arithmetic for reduced latency.
This project is licensed under the MIT License. Contributions and feedback are welcome!