【问题标题】:Testing PCI Interface on FPGA在 FPGA 上测试 PCI 接口
【发布时间】:2012-04-09 14:11:30
【问题描述】:

我的老板给出了在 Altera 板上测试 PCI express 的代码。该代码由几个 c 代码文件组成,其中包含读取 Bios、设置一些寄存器、写入缓冲区等指令。 我目前的工作是通过运行来查看代码的功能。 我是 FPGA 新手,我无法理解我将使用哪些工具、编译器等来为 FPGA 编译它。

由于它是 C 代码,所以我确信我不能使用与 Verilog/VHDL 相同的环境。我能否获得一些关于哪些编译器可用于编译 C 代码以测试 FPGA 的各种接口的提示?

感谢和问候

H

【问题讨论】:

  • 我不确定你是否能得到这个问题的好答案,但访问this link 可能会提高你的机会。

标签: fpga hdl intel-fpga pci-e


【解决方案1】:

如果 FPGA 板只是通过标准 PCIexpress 接口连接,那么创建一个 Linux 驱动程序来简单地访问几个寄存器并不难。这甚至可能比让一些旧的基于 DOS 的驱动程序工作更容易。

几年前,我在我的硕士论文的前期项目中做了一些工作 - 如果你有兴趣,可以在这里找到:http://loejer.dk/files/FORK,%20pdf.zip

【讨论】:

  • 感谢您的信息。你能给我一些关于创建 Linux 驱动程序来访问寄存器的信息吗?
  • 它在我发布的链接中。看看 journal3 pdf。
  • 非常感谢。我现在明白了。你在你的论文中做了真正的工作:-)。
【解决方案2】:

听起来意图是你将PCI-E卡连接到具有PCI-E插槽的普通计算机,然后在主机上运行测试软件,这样它就会通过PCI-E与板子对话,并从主机上锻炼板子,收集主机上的数据等等。

这样的代码几乎肯定是非常不可移植的。您可能需要询问它适用于什么系统(或检查代码以找到提示 - 例如,如果它以 #include <windows.h> 开头,则相当公平地表明它适用于 Windows)。

为它编写的操作系统将提供至少 80%(左右)的线索来确定要使用什么编译器——如果它是用于 Windows,那么它很有可能是为微软的编译器设计的。如果它用于 Linux,那么它用于 gcc/g++ 的可能性更大。如果是 MacOS,可能是 g++,但如果它真的是新的,可能会针对 Clang。

【讨论】:

  • 谢谢杰瑞。实际上 FPGA 有 SATA 信号,但 sata 的接口是 PCI。所以我的猜测是,在您完成您的帖子之后,同样感谢您,代码是通过主机系统上连接的 pci 测试 sata(写入读取到 SATA 硬盘)。我可以看到一些以 sata 开头的文件,还可以看到以下 hedare 文件 #include #include #include #include #include #include #include "pcifunc.h" #include "memfunc.h" #include "iofunc.h" #include "irqfunc.h"
  • 根据标题,听起来测试程序可能打算在MS-DOS下运行。针对 MS-DOS 的最常见编译器是 Borland 和 Microsoft。有一个旧版本的 gcc 到 DOS 扩展器(djgcc)的端口,但我不记得它有一个 <dos.h>(不过可能是我的糟糕回忆)。
  • 我没有在代码中看到特定于窗口的函数,所以我猜它是针对 Linux 的。
  • @gpuguy:考虑到它包含了<dos.h>,如果它用于 Linux,我会相当感到惊讶。
  • 你是对的 dos.h 不适用于 linux,所以我会尝试使用 turbo 的 dos 环境。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
  • 2011-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多