01signal.com

微软 Windows(Microsoft Windows)上 Xillybus 的“Hello, world”测试

Xillybus的“Hello, world”测试

这是开始使用 Xillybus的第三步: 包含 Xillybus 的比特流(bitstream)已经加载到 FPGA中,驱动程序安装在主机(host)上。现在是时候做一个简单的测试了。此测试的目的是验证设备文件(device files)是否已创建并且它们是否正常工作。

此页面讨论 Windows 主机上的 Xillybus 。 Linux有一个类似的页面

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

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

检测到 PCIe device 了吗?

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

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

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

驱动程序是否正常启动?

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

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

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

“Hello, world”

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

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

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

测试如下: 在电脑上打开两个 Command Prompt 窗口。在两个 Command Prompt 窗口中,将目录(directory)更改为“precompiled-demoapps”。这个目录(directory)在 "xillybus-windowspack" 目录里面。回想一下,我建议下载 xillybus-windowspack.zip 和演示包的。

在第一个 Command Prompt 窗口上输入:

$ streamread \\.\xillybus_read_8

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

$ streamwrite \\.\xillybus_write_8

现在在第二个 Command Prompt 窗口上输入任何内容,然后按 ENTER。同样的文字会出现在第一台终端(terminal)上。这显示了文本如何写入第一个设备文件,然后到达 FPGA,最后返回到计算机。

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

这些程序的源代码(source code)可以在 demoapps 子目录中找到(来自同一 zip 文件)。这些程序是用 C编写的,它们演示了如何使用标准 I/O 应用程序接口访问 Xillybus的设备文件Getting Started guide for Windows建议如何执行这些程序的编译(compilation)。

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

XillyUSB

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

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

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

其他区别:

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