我完成了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 编译器的所有输出信号都是未定义的。
我的问题:
我做错了什么,如何继续控制 DAC 的相位?
编辑1;这是我的测试台
IP核配置如下,所以我提供的很多控制信号应该都不需要了:
编辑2;我将表单的声明更改m_axis_data_tready => '0'
为m_axis_phase_tready => m_axis_phase_tready_signal
. 我还查看了调用的包装文件dds_compiler_0.vhd
,发现它同时将m_axis_phase_tready
和m_axis_data_tready
视为输入。
我的模拟结果保持不变......
我的新测试台可以在这里找到。
EDIT3:Vivado 只是给了我旧的模拟结果——创建一个新的测试平台,删除下面的文件<project_name>.sim/sim_1/behav/xsim/simulate.log
并重新启动 vivado 解决了这个问题。
我注意到包装文件 ( dds_compiler_0.vhd
) 只有五个端口:
aclk
(在)s_axis_phase_tvalid
(在)s_axis_phase_tdata
(在)m_axis_data_tvalid
(出去)- 和
m_axis_data_tdata
(出)
所以我删除了所有不必要的控制信号并获得了新的模拟结果,但我仍然没有从 dds_compiler 收到任何有用的输出:
相应的测试平台可以在这里找到。
相应的测试平台可以在这里找到。