01signal.com

Windows上 Xillybus 的“Hello, world”测试

Xillybus的“Hello, world”测试

这是开始使用 Xillybus的第三步: 包含 Xillybus 的 bitstream 已经加载到 FPGA中, driver 安装在 host上。现在是时候做一个简单的测试了。此测试的目的是验证 device files 是否已创建并且它们是否正常工作。

此页面讨论 Windows host上的 Xillybus 。 Windows有一个类似的页面

我将在这里重点介绍 Xillybus 和 PCIe ,但与 XillyUSB几乎一样。差异列在本页底部。

有关此主题的更多信息,请参阅Getting started with Xillybus on a Windows

检测到 PCIe device 了吗?

Device Manager 显示已检测到的 PCIe devices 。之前在安装 driver的上下文中对此进行了解释

在安装 driver 之前, Xillybus的 device 出现在“Other Devices”的列表中。安装后,这个 device 出现在一个名为“Xillybus”的组中。如果 Device Manager 未显示这两个选项中的任何一个,则 FPGA 不会被检测为 PCIe device: FPGA可能有问题。通常原因是混淆了将哪个 bitstream 加载到 FPGA中。

Getting Started guide for Windows中有 screenshots 和关于这个主题的更详细的解释。

driver 是否正常启动?

下一步是检查 driver的状态。这是在 Device Manager中完成的: 右键单击 Xillybus 组中的 icon ( device 的名称为“Xillybus driver for generic FPGA interface”)。选择“Properties”。将出现 pop-up window 。查看标题为“Device status”的 text window 。那里的文字应该是“The device is working properly”。这意味着 driver 已成功初始化 Xillybus 并创建了必要的 device files。

如果文本中有任何其他说明,则说明 driver的初始化过程中出现了问题。这通常是 FPGA的 logic的问题。特别是当 FPGA 中的 PCIe block 配置错误时,容易出现这种情况。比如你在 demo bundle上改了 PCIe block 的参数,就会出现这种错误。

有关该问题的更多信息可以在 Windows的 Event Viewer中找到。来自 Xillybus的 driver 的消息可以过滤: 创建一个显示来自名为“Xillybus”的源的消息的 custom view 。 Getting Started guide for Windows中详细解释了如何执行此操作。

“Hello, world”

driver 创造了五个 device files: \\.\xillybus_read_8、 \\.\xillybus_read_32、 \\.\xillybus_write_8、 \\.\xillybus_write_32 和 \\.\xillybus_mem_8。请注意,如果您在 IP Core Factory处创建一个 custom IP core ,您可以选择创建多少个 device files ,以及它们的名称和属性。

但现在 FPGA 包含 demo bundle。让我们试用两个 device files。这些 device files 实际上是 operating system objects,但它们可以像普通文件一样访问。对于不熟悉 Windows底层编程的人来说,“\\.\”部分可能看起来很奇怪。但是,这是 user-space software (通常是 DLLs)通常访问硬件的方式。

read_8 和 write_8之间的 demo bundle 中有一个 loopback 。这意味着当计算机将 data 写入 write_8时, FPGA 通过 read_8返回完全相同的 data 。这仅用于演示。这款 loopback没有其他实际用途。

测试如下: 在电脑上打开两个 Command Prompt windows 。在两个 Command Prompt windows中,将 directory 更改为“precompiled-demoapps”。这个 directory 在 "xillybus-windowspack" directory里面。回想一下,我建议下载 xillybus-windowspack.zip 和 demo bundle。

在第一个 Command Prompt window上输入:

$ streamread \\.\xillybus_read_8

然后在第二个 Command Prompt window上输入:

$ streamwrite \\.\xillybus_write_8

现在在第二个 Command Prompt window 上输入任何内容,然后按 ENTER。同样的文字会出现在第一台 terminal上。这显示了文本如何写入第一个 device file,然后到达 FPGA,最后返回到计算机。

您可以使用 CTRL-C停止这两个程序。

这些程序的 sources 可以在 demoapps subdirectory 中找到(来自同一个 zip 文件)。这些程序是用 C编写的,它们演示了如何使用标准 I/O API访问 Xillybus的 device filesGetting Started guide for Windows建议如何执行这些程序的 compilation 。

尽管这个示例很简单,但了解它的工作原理很重要。尤其重要的是了解 FPGA 中的 logic 如何实现这一点。这是集成您自己的 logic的起点。

XillyUSB

如果您使用的是 XillyUSB,则上述所有内容均适用,但存在一些差异。

XillyUSB 有一个名为 showdiagnostics 的工具,用于检查与 FPGA的物理连接质量。强烈建议使用此工具以确保 raw data link 没有错误。即使 XillyUSB 看起来工作完美,进行此检查也很重要。原因是 USB 3.0 protocol 隐藏了 raw data link上的错误,但这些错误仍然会导致看起来像错误的罕见问题。

没有理由容忍这种错误。解决方法通常很简单,例如使用另一台 USB plug 计算机。

其他区别:

此页面由英文自动翻译。 如果有不清楚的地方,请参考原始页面
Copyright © 2021-2024. All rights reserved. (6f913017)