• josh released this 2024-11-13 16:57:12 +08:00 | 2 commits to master since this release

    README.md

    Project Name: dl814_k7_cal_coarse

    Board: SMQ7K410T_B9361 (v1.5, v2.3, v3.0)

    Device: smq7k410tffg900-2/xc7k410tffg900-2, gm4526c/ad9516-3, b9361/ad9361(u9), b9361/ad9361(u10)

    Date: 2024/11/13

    Archiver: Josh Gao

    1. 实现的功能

      1. 用 MicroBlaze 完成配置 AD9516-3 和两片 AD9361(1 发 2 收模式,使用 CMOS 数据格式),均为直接配置寄存器,MicroBlaze 占用的资源已到最小。

      2. 配置 AD9361 使用或 48Msps 的采样率收发信号,发送频点 4125MHz 使用 AD9361 本振,接收频点 125MHz 使用外部本振,启用 RxFIR。

      3. 包含发送测试程序 tx_qpsk,可以通过 VIO 控制本地载波、选择 IQ 信号发送与否、选择发送信号类型。

        • waveform_sel[1:0] 选择发送波形:

          • 为 2'd0 时发送根升余弦成型的 QPSK 信号;

          • 为 2'd1 时发送方波成型的 BPSK 信号;

          • 为 2'd2 时发送单音信号;

          • 为 2'd3 时发送双音信号,频率分别为 0 和 48Msps 下的 1 MHz。

        • freq_set[31:0] 可以在发送波形的基础上增加本地载波偏移量,是 32 位有符号频率字,计算式为

          
          \Delta \theta = \frac{f_c}{f_s}
          

          其中 f_c 是本地载波频率;f_s 是时钟频率,应为与 AD9361 的采样时钟频率相同。

        • iq_sel[1]、iq_sel[0] 分别控制是否发送 I 路和 Q 路信号,为 1 时发送,为 0 时不发送。

        • bb_rshift[3:0] 控制基带信号右移位数。

        • sweep_on 是扫频的开关,为 1 时开启扫频,为 0 时关闭扫频,扫频范围为 \pm 100/245.76\times f_s MHz,共 256 个频点,频点间隔均匀;开启扫频时 freq_set 控制无效。

      4. 接收 IDDR 使用 SAME_EDGE 模式,可能能够解决接收 IQ 相差一个采样点的问题。

      5. 含调零模块和调零算法测试模块

        • 测试模块从 ROM 中读取预存的信号,产生跳频定时脉冲,并送入调零模块;定时模块可以选择自动生成或手动生成。

        • 调零模块收到定是脉冲后等待数十个时钟周期后开始计算自相关矩阵(等待接收信号稳定),计算完成后上传给波控板,波控计算权矢量后下发给调零模块,调零模块使用上一跳的权矢量对上一跳的数据进行空域滤波。

        • 对调零算法进行测试,能够正确对输入信号进行抑制。

    2. 存在的问题

      • 暂无。
    3. 修订历史记录

      • 20241113

        • 升级到 Vivado 2024.1.2,便于工程管理。
      • 20230611

        • 接收预处理模块 rx_pre_process 添加输入信号相位旋转功能,用于补偿相控阵的初始相位差,使用 CORDIC 实现,CORDIC 会导致接受信号波形略失真。。
      • 20230424

        • 初版程序。
    4. 附加说明

      • 本工程使用了 ADI 的 SPI Engine IP 进行 SPI 控制,若综合/布局布线过程中 SPI Engine 报错,则需要对 Block Design 执行 Reset Output Products。
    Downloads