Tidbits
DMA-considerations
Size of the slots and FIFOs:
For 1 slot | Rx - ics554 | Tx - ics564 |
Samples | 2560*2=5120=5k | 2560*2=5120=5k |
Bytes | 5120*16=81920=80k | 5120*4=20480=20k |
FIFO-size [bytes] | 65536*8=512k | 65536*4*2=512k |
Max samples | ![]() | ![]() |
The samples per slot is given by the pseudo-UMTS system of the software-radio and is fixed for the moment at 2560 samples. As we do an oversampling by a factor of 2, this gives 2560*2=5120 samples per slot, for both the ics554 and ics564.
The total bytes is calculated as
, where
is:
- 4
- = 16bit real + 16bit imaginary
- 16
- = 32bit real + 32bit imaginary, but for two channels, as we can't treat only one channel at a time in the ics554-card
According to the ics-554 documentation E10681 Rev.B p. 55, the FIFO is sized at 65536 * 64bit-values, which gives 512kBytes. The ics-564 documentation E10734 Rev.- p. 9 gives the size 65536 16bit-samples as {}``approximately one quarter of the FIFO-size''. So the total is 65536*4*2 = 512kBytes.
Conclusion
The DMA-size will be dependant on the slot-size. So, there will be 1 slot per DMA-transfer. This limits the slot-length to 16kSamples for the Rx-part, but that should be OK.
Care has to be taken for small slot-sizes, as the DMA-transfer happens in two steps:
- Fill up the FIFOs on the ics564
- Start the transfer
- Wait for underflow of the FIFOs and re-transmit
Server
The old implementation of the server takes DMA_BLOCK-sized packets and works on these. In order to rewrite only what is necessary, I adjusted the Base/Antenna/Simul_ics in a way to chop down the slots into DMA_BLOCK-sized packets. Too bad if it is not a multiple of these. There is no check against that.
Resampler
A big mess that nobody understands. Hopefully the work of the student this summer sheds some light on this.
Samples, Chips and Symbols
The current setup has 2 Samples for 1 Chip, and 1 Chip for 1 Symbol (without a spreading-sequence). This means, that there is a 2 x oversampling.