0

我完成了Anton Potočniks的红色火龙果板介绍指南,现在我可以将命令从 SoC 上运行的 linux 机器发送到其 FPGA 逻辑。

我想进一步修改项目,以便我可以控制通过红色火龙果的 DAC 传输的信号的相位。第一个 GPIO 端口的一些引脚(从 7 到 1)仍未使用,因此我开始从操作系统中设置它们并使用红色火龙果的 LED 来确认它们正在设置,而不会干扰 Anton Potočnik 的“高带宽”功能平均器”。

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

我目前的设置

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

我为 DDS 编译器创建了一个带有测试平台的新项目,因为综合需要很长时间,并且无法让我深入了解正在发生的事情。

来自包含 DDS 编译器的测试平台的仿真结果

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

我的问题:

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


编辑1;是我的测试台

IP核配置如下,所以我提供的很多控制信号应该都不需要了:

IP核配置


编辑2;我将表单的声明更改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视为输入。

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

我的新测试台可以在这里找到。


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 收到任何有用的输出: 无控制信号

相应的测试平台可以在这里找到。

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

相应的测试平台可以在这里找到。

4

1 回答 1

1

看起来 m_axis_data_tready 没有连接。除非被断言,否则不会有任何数据出现。

于 2020-02-17T13:39:03.423 回答