# FPGA Adaptive Beamforming with HDL Coder and Zynq RFSoC
## Overview
These models will demonstrate how to design and implement the minimum-variance
distortionless-response (MVDR) adaptive beamforming algorithm on the Xilinx®
Zynq UltraScale+™ RFSoC platform. By following a Model-Based Design strategy,
we show how the MVDR beamformer can be articulated in MATLAB, Simulink,
Fixed-Point and HDL. We further demonstrate a prototyping workflow by deploying
the beamformer to the ZCU111 RFSoC evaluation board for run-time testing,
debugging and visualization.
## MVDR Demo Files
### mvdr_hdl_sim ###
This model uses the phased array toolbox to demonstrate high-level modeling
of adaptive beamforming processing. Comparisons are made to various elaborated
versions of the same design starting originally in floating point then
to eventual fixed-point HDL. Blocks from the fixed-point toolbox were used
to aid in this design for computing the adaptive weights using QR decomposition.
Two examples for 4x4 and 16x16 MVDR matrix solves have been provided.
### zcu111_mvdr_demo ###
This HDL model uses the same algorithm from the previous design but now integrates
it for a ZCU111 RFSoC evaluation kit. Using 4 channels of ADC and DAC looped
back on itself, a beam is electronically steered out the DAC and then processed
by the ADC. Using four inputs, a 4x4 covariance matrix is composed and then
QR decomposition is applied to yield optimal steering weights that augment the
desired steering angle. A QPSK signal of interest is resolved in the presence of
interference which is artificially introduced in the transmit signal.
##### Required software #####
Xilinx Vivado 2020.2
MATLAB R2021b with the following add-ons:
- Simulink
- HDL Coder
- Fixed-Point Designer
- DSP System Toolbox
- Communications Toolbox
- Phased Array System Toolbox
- [HDL Coder Support Package for Xilinx RFSoC Devices](https://www.mathworks.com/hardware-support/rfsoc-hdl-coder.html )
##### Run the demo #####
1. Ensure the ZCU111 board has been configured with the SD card provided by the HDL Coder RFSoC Support Package.
See [this page](https://www.mathworks.com/help/releases/R2021b/supportpkg/xilinxrfsocdevices/ug/guided-sd-card-setup.html) for more information.
2. On the XM500 balun card, connect the differential ADC cables for the ADC Tile 2 (Channel 0 and 1) and Tile 3 (Channel 0 and 1)
to the DAC Tile 0 Channel 0 1 2 and 3. See [section below](#adcdac-loopback-wiring-details) for more details.
3. Power-on the board and program the prebuilt FPGA bitstream:
`>> program_board('BitfilePath','binaries/zcu111_mvdr.bit')`
4. After the board reboots, run the setup script to configure the RF Data Converter:
`>> setup_rfsoc`
5. Run "RFSoC_MVDR_Demo.mlapp" by right clicking on it and selecting "run" or running it from the MATLAB command prompt:
`>> RFSoC_MVDR_Demo`
<img src = "mvdr_app.png" width="600">
You can use this UI app to adjust the angle of arrival for the signal of interest and the interference.
To regain stable constellation, change the "Azimuth Angle" value to the signal of interest by adjusting the slider
to the same angle. Measurements from the MVDR optimized weights are read back from the device to show the beamforming
response and how nulls are placed to minimize interference.
##### Build the demo #####
To rebuild the bitstream from scratch, follow these instructions.
1. Open "TxSteering_RxMVDR_4x4_HDL_IQ.slx"
2. Right-click on the "DUT" subsystem, then click HDL Code → HDL Workflow Advisor
3. In the HDL Workflow Advisor, right-click on step 4.3, then click "Run to selected task".
For more details on the individual steps of HDLWFA, please see this [example](https://www.mathworks.com/help/releases/R2021b/supportpkg/xilinxrfsocdevices/ug/DACAndADCLoopbackDataCaptureExample.html).
4. Wait for the Vivado command window to show that bitstream generation has finished.
5. Run provided utility function to program the board:
NOTE: You must use this to program the board instead of HDL WFA step 4.4.
`>> program_board`
6. Proceed from step 4 in the Demo instructions.
##### ADC/DAC Loopback Wiring Details #####
To loop back the 4 DAC and ADC channels with the XM500 board you will need to make the following connections:
<img src = "xm500_wiring.png" width="400">
Because these connections are differential, you will need SMA DC Blocks.
Connection details:
- RFMC_ADC_04 connects to RFMC_DAC_00
- RFMC_ADC_05 connects to RFMC_DAC_01
- RFMC_ADC_06 connects to RFMC_DAC_02
- RFMC_ADC_07 connects to RFMC_DAC_03
The above names refer to labels on the XM500. Match the SMA connectors to the above physical labels of the XM500.
Each label represents a specific tile/channel:
- ADC Tile 2 Ch0 maps to RFMC_ADC_04
- ADC Tile 2 Ch1 maps to RFMC_ADC_05
- ADC Tile 3 Ch0 maps to RFMC_ADC_06
- ADC Tile 3 Ch1 maps to RFMC_ADC_07
- DAC Tile 0 Ch0 maps to RFMC_DAC_00
- DAC Tile 0 Ch1 maps to RFMC_DAC_01
- DAC Tile 0 Ch2 maps to RFMC_DAC_02
- DAC Tile 0 Ch3 maps to RFMC_DAC_03
Note that the PN differential connections pair up such that P connects to N.
## Documentation: Background Theory of Operation ##
A PDF file "FPGA_Adaptive_Beamforming_with_HDL_Coder_and_Zynq_RFSoC.pdf" has been included.
### Introduction: Motivation and Challenges
- Applications: Radar, Comms and Wireless (5G)
- Hardware FPGA challenges
### Theory and Implementation
- Linear algebra
- QR Decomposition
- Matrix Divide
### Zynq RFSoC and HDL Coder Implementation
- MATLAB MVDR reference code
- HDL Coder implementation
- Hardware Prototyping – live demo
The license used in this contribution is the XSLA license, which is the most common license for MathWorks staff contributions.
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
该存储库包含 FPGA/HDL 演示了多种波束成形和雷达设计。 提供 Simulink 模型和 MATLAB 参考代码来展示各种雷达和阵列处理算法的高级仿真和 HDL 设计。 演示列表: 适用于 RFSoC ZCU111 的 MVDR 4x4 自适应波束形成 ZCU111 上的距离多普勒 HDL 模拟和硬件测试/瞄准 This repository contains FPGA/HDL demonstrations several beamforming and radar designs. Simulink models and MATLAB reference code are provided to showcase high-level simulation and HDL designs of various radar and array processing algorithms. List of demos: MVDR 4x4 adaptive beamforming for RFSoC ZCU111
资源推荐
资源详情
资源评论
收起资源包目录
FPGA-Adaptive-Beamforming-and-Radar-Examples 源码
(135个子文件)
zcu111_mvdr.bit 32.84MB
.gitignore 120B
RangeDoppler.jpg 68KB
bandwidth_cornerturn.jpg 37KB
2dFFT.jpg 34KB
RFSoCMVDRDemo.m 19KB
setup_fpgaIO.m 6KB
writeDopplerInput_fpgaIO.m 4KB
hdlcoder_external_memory_write_ctrl_custom.m 4KB
RangeDopplerLoop_fpgaIO.m 4KB
hdlcoder_external_memory_read_ctrl_custom.m 4KB
model_init.m 4KB
setup_rfsoc.m 3KB
range_doppler_system_param_init.m 3KB
matched_filter_fft_hdl_init.m 2KB
model_init_sim.m 2KB
qless_init_16chan_fi.m 2KB
run_fpgaIO.m 2KB
program_board.m 2KB
model_init.m 2KB
AXIBusObjects.m 2KB
AXIBusObjects.m 2KB
transpose_fpgaIO_setup.m 2KB
matrix_init.m 2KB
run_Range_Doppler.m 2KB
createRadarDataCubeMod.m 2KB
matrix_init.m 1KB
BramBurst_FFT2D_validate_matrix_out.m 1KB
qpsk_receive.m 1KB
generate_qpsk_signal.m 1KB
validateTranspose.m 880B
validateTranspose.m 880B
validateTranspose.m 779B
plot_beam_patterns.m 683B
simCheckOutput_rangeDoppler.m 624B
validate_matrix_out.m 603B
validate_matrix_out.m 591B
calibrate_channels.m 543B
getLogged.m 425B
BramBurst_FFT2D_validate_matrix_out.m 371B
unpack_complex.m 213B
matrix_init.m 134B
matrix_init.m 132B
README.md 6KB
README.md 2KB
README.md 471B
SECURITY.md 389B
RFSoC_MVDR_Demo.mlapp 172KB
FPGA_Adaptive_Beamforming_with_HDL_Coder_and_Zynq_RFSoC.pdf 3.05MB
xm500_wiring.png 1.06MB
mvdr_app.png 62KB
MatchedFilterFFT_Transpose.prj 175B
qless_forgetting_factor_16x16.slx 1.16MB
qless_forgetting_factor_16x16_nofifo.slx 1.16MB
MVDR_example_hdl_4x4_systolic.slx 688KB
socmemlib.slx 258KB
socmemlib.slx 258KB
TxSteering_RxMVDR_4x4_HDL_IQ.slx 217KB
wrQueue_RFSoC_MatrixTranspose.slx 116KB
bramBurst_TransposeMatrix.slx 109KB
MVDR_example_hdl_4x4_partial_systolic.slx 104KB
bramBurst_TransposeMatrix.slx 86KB
bramBurst_TransposeMatrix.slx 81KB
matrix_rdwr_transpose_fpga.slx 52KB
MatrixWrRd_transpose_SoCB_TopLevel.slx 50KB
window_taper.slx 31KB
license.txt 1KB
ytXa1Px-hQUhxMW6RexuadiW05Md.xml 141B
XI63F3DpcFZVEmLxabCze_1yGYUd.xml 141B
TDGNiicbXqPcaT25VpzQ4PfNaGEd.xml 141B
tKvNkHTpbT6GAm3k-7n7cooRcn0d.xml 141B
4SVYQZsILIuEyZXh7AZiBXaAzWId.xml 141B
u09gIjf84mrcY04PvVsIqz_A2nId.xml 141B
ySwxmLB6i3-U3ibpDX9G5VF_qIkd.xml 141B
hVqQ-9HgOfR-miUHZ1Olro2oO1Ed.xml 141B
4SII37bbmPr-uDt2KwUOF17LD3Md.xml 141B
0avZ0B7B9QBO8c3kVcoPdfvh0a4d.xml 141B
uPQ5MtfZJq79kMUTlWx4p0q_8hod.xml 141B
b9vcJ5kLPMvo3kZz_IJEYIN8Z6cd.xml 141B
ErjdZpt4SMkWn8v-1ahF4A3siMMd.xml 141B
Xi_uJVws7Ulmwu5Gll1EDSreybMd.xml 141B
WSzvG5f_5Cvt8a1ZYLPc6xfuSq4d.xml 141B
Q6dDcsN2OKbQzgD58TRr8ONsFJMd.xml 141B
haKPcoVMP6OfLpW27bivJk-zciAd.xml 141B
rKuGYAHY8-cXC9XRh5EcCRlNuEQd.xml 141B
EGS-wA3-Ks6urVqBkUEHtwtFE_Ed.xml 141B
fSmbuBCUit5i5wOBPuJA2g5w9NIp.xml 112B
EP7gYHkiKJzsbwl1Kmg0OEWqO4op.xml 112B
pJPJd6FiWRygNl9o0EVnymaY7Ykp.xml 112B
lJnjawKd-WsGvgvgCWqsl0Tg_aUp.xml 112B
hVqQ-9HgOfR-miUHZ1Olro2oO1Ep.xml 108B
4SVYQZsILIuEyZXh7AZiBXaAzWIp.xml 104B
ySwxmLB6i3-U3ibpDX9G5VF_qIkp.xml 100B
Xi_uJVws7Ulmwu5Gll1EDSreybMp.xml 100B
EGS-wA3-Ks6urVqBkUEHtwtFE_Ep.xml 100B
rKuGYAHY8-cXC9XRh5EcCRlNuEQp.xml 100B
66WgGCcF5RIH9MCEgPmgjZK9k3Up.xml 97B
1AK6k8_2MMsrq1VagZS1umPpphkp.xml 97B
WSzvG5f_5Cvt8a1ZYLPc6xfuSq4p.xml 97B
pJPJd6FiWRygNl9o0EVnymaY7Ykd.xml 96B
共 135 条
- 1
- 2
资源评论
xuanwenchao
- 粉丝: 2389
- 资源: 68
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功