2012-04-09 33 views
0

我的老板给出了一个在Altera主板上测试PCI Express的代码。该代码由几个c代码文件组成,这些代码文件具有读取Bios,设置一些寄存器,写入缓冲区等指令。目前,我的工作是通过运行代码来查看代码的功能。 我是FPGA新手,我无法理解我将用什么工具,编译器等来编译FPGA。在FPGA上测试PCI接口

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

感谢和问候

^h

+1

我不知道,如果你能得到这个问题的一个很好的答案,但访问[这个链接](http://meta.stackexchange.com/questions/16721/how-does-accept-rate-work)可能会提高你的机会。 – dasblinkenlight 2012-04-09 14:16:46

+0

我得到了答案!谢谢 – gpuguy 2012-04-10 03:55:22

回答

0

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

几年前我在做一个项目前我的硕士论文在此方面的工作 - 如果你有兴趣,它可在这里:http://loejer.dk/files/FORK,%20pdf.zip

+0

感谢您的信息。您能否给我发送关于创建Linux驱动程序的一些信息? o访问寄存器? – gpuguy 2012-04-11 11:14:04

+0

这是我发布的链接。看看journal3 pdf。 – sonicwave 2012-04-11 11:32:38

+0

非常感谢。我现在明白了。你在论文中做了真正的工作:-)。 – gpuguy 2012-04-12 11:56:07

0

这听起来像的意图是,你的PCI-E卡与PCI-E插槽连接到一个普通的计算机,然后运行在主机上测试软件,所以它将通过PCI-E与主板进行通信,并从主机上运行主板,收集主机上的数据等等。

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

它所编写的操作系统至少会给出80%左右的线索,说明要使用哪种编译器 - 如果是Windows,那么它很适合用于微软的编译器。如果是Linux,那么gcc/g ++有更好的机会。如果它适用于MacOS,可能适用于g ++,但如果它真的是新的,则可能以Clang为目标。

+0

谢谢杰瑞。实际上FPGA有SATA信令,但sata的接口是PCI。所以我的猜测是,在你踩过你的帖子之后,感谢你的一样,代码是通过在主机系统上连接的pci来测试sata(写入 - 读取SATA硬盘)。我可以看到一些文件开始,SATA和我也可以看到下列hedare文件#包括\t \t 的#include \t \t 的#include \t \t 的#include \t \t 的#include \t \t 的#include \t \t #include \t \t“pcifunc.h” #include \t \t “memfunc.h” 的#include \t \t “iofunc.h” 的#include \t \t“irqfunc。h“ – gpuguy 2012-04-10 03:31:58

+0

基于头文件,这听起来像是测试程序*可能*打算在MS-DOS下运行,最常见的针对MS-DOS的编译器是Borland和Microsoft,有一个老版本的gcc到一个DOS扩展(djgcc),但我不记得它有一个''(可能是我的糟糕的回忆虽然) – 2012-04-10 03:37:38

+0

我没有看到在代码中的窗口特定功能,所以我想这是Linux的 – gpuguy 2012-04-10 03:49:03