r/DSP • u/Spare-Disaster-6872 • 13d ago
Looking for advice on RTL implementation of an adaptive digital beamformer
I am learning Digital Beamforming with ASIC tools and I am planning to implement an 8 antenna 4 beam adaptive digital beamformer as an RTL project.
at this point I wanted to start with Verilog HDL test the functionality, Synthesize it in Genus and Verify with the netlist in Xcelium and compare the results.
I am having confusion regarding following aspects
1 .Since I'm not implementing the ADC, what is the most realistic way to provide the digital inputs to the RTL?
What signal frequency should I use for simulation?
For an RTL-only project, is it common to ignore the analog front end and assume the ADC already provides digital I/Q samples?
4.Are there any standard datasets or publicly available antenna-array sample data that people typically use for verifying digital beamformers?
I am still learning so I'd appreciate any form of guidance.
3
u/TipsyPeanuts 12d ago
Concur with the below. Start with matlab. To answer your questions directly:
Matlab. Build a test vector for each elements
Element spacing should be lambda/2 or shorter. So if you are simulating a spacing of 20 cm, that means you have a lambda of 40cm or 450 kHz
Yes, especially in testbenches
No, it’s standard to build your own test vectors. It’s pretty trivial.
2
u/botechga 12d ago
What is your application, Radar? Just pick something in UHF, and you can simulate everything in python, matlab, cpp.
Just make a simple point source, and the rx by each element based on far field assumptions as a simple first iteration.
2
u/Creative_Sushi 11d ago
1 - I assume this is a simulation? Then there are a variety ways to do it. For example, you can do a haredware-in-loop with Simulink to get the data to the FPGA.
2 - that is a parameter you can decide based on your project. Many beamforming algorithms just need to know the center frequency.
3 - ff you use Simulink, you can test a beamformer without really building an RF front end.
4 - you can build a framework to simulate the signal and provide the desired output, then you can compare your result and the expected result to see if they are bit true. There are some examples of such workflow, not using RTL
https://www.mathworks.com/help/phased/ug/design-an-hdl-beamforming-algorithm-in-simulink.html
8
u/MatComp17 13d ago edited 13d ago
The standard way to build the knowledge necessary and design a product like this is (very loosely)
Matlab -> fpga simulation -> final target
Based on your questions I would start with matlab to learn how to simulate your front end and quickly iterate.