如何从Xilinx驱动DDS编译器IP内核

时间:2020-02-17 11:13:16

标签: fpga xilinx vivado soc redpitaya

我完成了Anton Potočniks' introductory guide到红色火龙果板的操作,现在我能够从SoC上运行的linux机器向其FPGA逻辑发送命令。

我想进一步修改项目,以便我可以控制通过红色火龙果的DAC传输的信号的相位。第一个GPIO端口的一些引脚(从7到1)仍未使用,因此我开始从操作系统内部进行设置,并使用红色pitaya的LED确认设置是否在不干扰AntonPotočnik的“高带宽”功能的情况下平均”。

然后我将DDS_compilers'的相位偏移可编程性设置为“流”模式,以便可以使用当前控制红色pitaya LED的位动态配置它。我使用了一些切片将信号连接到AXI4-Stream Constant IP内核,后者又驱动了DDS编译器。

my current setup

不幸的是,DAC只是给了我500 mV的恒定输出。

我为DDS编译器创建了一个带有测试平台的新项目,因为合成需要花费很长时间,并且不能让我对正在发生的事情有太多了解。

simulation results from a testbench containing the DDS compiler

不幸的是,DDS编译器的所有输出信号都是不确定的。

我的问题:

我在做错什么,如何继续控制DAC的相位?


EDIT1; here是我的测试平台

IP内核配置如下,因此不需要我提供的许多控制信号:

IP core configurations


EDIT2;我将m_axis_data_tready => '0'形式的声明更改为m_axis_phase_tready => m_axis_phase_tready_signal。我还查看了名为dds_compiler_0.vhd的包装文件,并发现它将m_axis_phase_treadym_axis_data_tready都视为输入。

我的模拟结果保持不变...

我的新测试台位于here


EDIT3:Vivado只是给了我旧的模拟结果-创建一个新的测试台,删除<project_name>.sim/sim_1/behav/xsim/simulate.log下的文件,然后重新启动vivado解决了这个问题。

我注意到包装文件(dds_compiler_0.vhd)只有五个端口:

  1. aclk(在)
  2. s_axis_phase_tvalid(在)
  3. s_axis_phase_tdata(在)
  4. m_axis_data_tvalid(退出)
  5. m_axis_data_tdata(退出)

因此,我删除了所有不必要的控制信号并获得了新的仿真结果,但是我仍然没有收到dds_compiler的任何有用的输出: without control signals

可以找到相应的测试平台here

当包含控制信号时,我也没有得到任何有效的输出。 with control signals

可以找到相应的测试平台here

1 个答案:

答案 0 :(得分:1)

好像未连接m_axis_data_tready。除非声明,否则不会有数据出来。