youhui_2020 2024-09-23 19:59 采纳率: 0%
浏览 100

AD9361 IQ 校准疑问,

AD9361 IQ 校准疑问,下面这段verilog代码,是AD9361在vivado 2021里面提供的,dac_data_out_int和dac_data_in都是12补码,通过后4位补零方式扩展,送入i_ad_iqcor进行校准,我认为不合适,数据不准确。大家有没有同感?
这个文档是只读属性,想修改,不知道有没有好办法


```c
  ad_iqcor #(
    .Q_OR_I_N (Q_OR_I_N),
    .DISABLE (IQCORRECTION_DISABLE))
  i_ad_iqcor (
    .clk (dac_clk),
    .valid (dac_valid),
  .data_in ({dac_data_out_int, 4'd0}),
    .data_iq ({dac_data_in, 4'd0}),
    .valid_out (dac_iqcor_valid_s),
    .data_out (dac_iqcor_data_s),
    .iqcor_enable (dac_iqcor_enb_s),
    .iqcor_coeff_1 (dac_iqcor_coeff_1_s),
    .iqcor_coeff_2 (dac_iqcor_coeff_2_s));


  • 写回答

2条回答 默认 最新

  • 一轮明月照丘壑 2024-09-23 20:00
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从你给出的代码和描述来看,是关于AD9361的IQ校准部分。你对将数据通过补零扩展的方式送入i_ad_iqcor进行校准表示担忧,担心数据不准确。

    首先,关于数据补零的方式,通常这是为了对齐数据或者满足某些硬件接口的要求。只要确保这种补零方式在整体系统中是合适的,并且不影响后续的处理,那么这种方式应该是可以接受的。

    关于你的疑虑,你可以考虑以下几个方面进行验证或分析:

    1. 文档和库的功能说明:确保你完全理解了ad_iqcor模块的功能以及它如何与其他模块交互。如果文档是只读属性,你可以查找其他资源或联系AD9361的供应商获取更多信息。
    2. 仿真验证:在修改代码之前,可以通过仿真来验证当前代码的功能。使用仿真工具模拟数据的输入和输出,观察i_ad_iqcor模块是否按照预期进行校准。
    3. 数据范围检查:确认dac_data_out_intdac_data_in的补码范围是合理的,并且在送入i_ad_iqcor模块之前不会导致数据截断或溢出。补零操作是否会影响数据的精度也需要进行检查。
    4. 联系技术支持:如果你对代码的功能有疑虑,可以联系AD9361的技术支持或查阅相关的技术支持文档,了解他们对这种实现方式的建议或解释。

    如果你确实觉得有必要修改这部分代码,可以尝试以下方法:

    • 如果文档是只读属性,可以尝试联系供应商获取可写版本的文档或源代码。
    • 在现有基础上进行修改并仿真验证。确保修改后的代码仍然满足系统的要求,并进行必要的测试。
    • 如果可能的话,参考其他资料或开源代码来实现IQ校准部分,以满足你的需求。

    总之,关于数据补零的方式是否合适,需要结合具体的系统要求和设计目标进行分析。如果你对这部分代码不确定,建议通过仿真验证或联系技术支持来确认其正确性。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月23日