openwifi-hw icon indicating copy to clipboard operation
openwifi-hw copied to clipboard

Support for PlutoSDR

Open catkira opened this issue 2 years ago • 7 comments

I think it should be possible to get openwifi running on plutosdr, if the sidechannel could be disabled with a parameter. I already found some places where ressource usage could be reduced, the iq-balance and dc offset correction in the AD936x hdl can be deactivated by parameters, they are not used anyway, because AD936x implements these features in hardware. There is also an additional 128 tap fir filter in the ad936x hdl code which is not used, that could also be eliminated.

Having some support for PlutoSDR would be very cool, because it is the cheapest AD936x hardware by far (250 USD).

catkira avatar May 15 '22 14:05 catkira

Indeed. Looking forward to your good news!

JiaoXianjun avatar May 15 '22 14:05 JiaoXianjun

My idea was a bit premature, openofdm_rx consumes too many luts (15282) and the 7010 only has 17600 luts.

catkira avatar May 15 '22 19:05 catkira

lut, dsp, bram, can be transformed between them if the resource is not well balanced.

But, I can imagine, even it fits, it will be marginal.

JiaoXianjun avatar May 15 '22 19:05 JiaoXianjun

If some parts of the hdl code could be moved to the processor, it would be possible to make it run on pluto.

I have found these measurements of PL-PS latency https://j-marjanovic.io/exploring-the-ps-pl-axi-interfaces-on-zynq-ultrascale-mpsoc.html they are as low as 15 clock cycles, which is much less than 1us, so I think it should be possible to send an Ack within 10 us. Do You think this is doable? If everything except OFDM_tx and OFDM_rx could move to PS, it would fit into pluto.

catkira avatar May 16 '22 15:05 catkira

Like I saw myself back to 2017: https://orca-project.eu/wp-content/uploads/sites/4/2018/04/Radio-virtualization-crowncom2017-camera-ready.pdf

At that moment, we had the same idea, and did some exploration. But it is very difficult. The functionalities outside openofdm_tx and openofdm_rx are quite complicated. Easy to be under estimated.

But you definitely could try again.

JiaoXianjun avatar May 16 '22 16:05 JiaoXianjun

Your paper from 2017 is interesting. Back then You used the S_AXI_HP port of the PS to benchmark latency.

In this https://j-marjanovic.io/exploring-the-ps-pl-axi-interfaces-on-zynq-ultrascale-mpsoc.html measurement it is shown, that using the S_AXI_ACP has about 7x less latency. I havent used the ACP interface before, but the measurements shown in the link above make it very interesting.

catkira avatar May 16 '22 16:05 catkira

If I remember correctly we also use ACP in some bd now. And we did some profiling back to then. Latency is not the only thing, though it is important.

JiaoXianjun avatar May 16 '22 16:05 JiaoXianjun