如何使用文件系统将代码直接运行到处理器中?

时间:2013-04-22 20:35:54

标签: c++ filesystems fpga

我有一个简单的各向异性过滤器c / c ++代码,它将处理一个.pgm图像,这是一个带有每个像素的灰度信息的文本文件,经过完成处理后,它将生成一个带有过滤器的输出图像。

该程序需要几秒钟才能在运行Windows的x86 CPU上进行大约10次迭代。

我和一位完成应用计算硕士学位的学者,我们需要在FPGA下运行代码(Altera DE2-115),看看在处理器上直接运行代码时是否有相当大的性能提升结果(NIOS 2) )。

我们已经在FPGA下成功启动了SO uClinux,但是设备硬件存在一些错误,而且我们无法访问SD卡甚至以太网,因此我们无法将代码和图像放入FPGA以测试其性能。

所以我在这里要求另一种方法来直接测试我们的代码性能到具有文件系统的CPU中,这样代码就可以读取图像并生成另一个。

另一种选择可以是使用成本低且易于使用的产品(我正在考虑使用raspberry PI),或者如果我可以将代码上传到我自动运行的地方并给我报告。

提前致谢。

2 个答案:

答案 0 :(得分:2)

您要做的是对多GHz x86处理器上的某些软件与运行50MHz的软核处理器进行基准测试? (尽管我可以从Altera文档中了解到) 我可以保证它在FPGA上会更慢!由于它也运行一个操作系统(甚至是嵌入式Linux),它也有线程开销,而不是。这不能被认为是在CPU上“直接”运行它(无论你的意思是什么)

如果您真的想要利用FPGA的性能,您应该将您的C代码“转换”为HDL并直接在硬件中运行。应该可以访问数据。我不知道Altera板是如何完成的,但Xilinx有一些库从FAT卡访问SD卡的数据。

答案 1 :(得分:1)

您可以使用板载SRAM或DDR2 RAM来运行操作系统和您的应用程序。 FPGA中的硬件设计必须包含内存控制器。在SOPC或Qsys中选择外部存储器作为复位向量和编译设计。

然后打开Eclipse的NioSII构建工具。 在Eclipse中,通过选择NiosII Application和BSP项目来创建新项目。 创建项目后,转到BSP属性并在链接器选项卡中键入外部存储器的偏移量并生成BSP。 编译项目并运行Nios II硬件。 这将通过外部存储器运行应用程序。 您将无法看到图像,但可以在内存中表示图像的二维数组 打印在控制台上。