【问题标题】:How to write to a file using an FPGA如何使用 FPGA 写入文件
【发布时间】:2016-10-14 21:06:56
【问题描述】:

我觉得我在网上搜索问题的解决方案方面付出了相当大的努力,但找不到实现目标所需的东西。

基本上,我需要做的是从我的 FPGA 通过串行接收的文件中解析数据。数据相当广泛,我认为如果能够使用 textIO 库中的一些函数会更容易。

我在网上找到的所有关于数据解析的技术都仅用于模拟。我需要这在 FPGA 上实际发生。

所以我的问题是,有没有一种方法可以在 FPGA 内部创建一个文件,并将串行写入的输入写入该文件,然后能够在该 txt 文件上使用 textIO 函数?

一些伪代码可能看起来像这样:

    File_Open("newFile.txt", write) --If it doesn't exist, then create it
    write(SerialByteStream, newFile.txt) --Collect serial data onto txt file

    Then run textIO function on newFile.txt in order to use the data in newFile.txt 

另外,值得一提的是,我是 FPGA 和 VHDL 的新手,所以可能有一个我不知道的简单解决方案。我在 Altera DE2-115 中使用 VHDL。

感谢您的帮助。

【问题讨论】:

  • 您认为 FPGA 的哪个部分可以保存文件?
  • @BrianDrummond 我在想我需要访问某种 RAM。据我了解,DE2-115 具备这种能力。
  • 对,对于足够小的数据量,RAM 是正确的方法。但是您有 2 个选择:文件需要文件系统层的复杂性,字符串或数组(或记录或其他实际数据对象)不需要。
  • @BrianDrummond 很抱歉,您能详细说明一下吗?我没有看到你的陈述如何回答我的问题。
  • 你没有说你需要在输入流上解析什么,或者那个流有多“大”,所以很难提出解决方案。

标签: vhdl fpga quartus


【解决方案1】:

不,您的提议是不可能的。正如您所发现的,VHDL 的文件 i/o 实际上只是指示 模拟器 做某事。请注意可综合和不可综合 VHDL 之间的区别。您只能将 VHDL 的可综合部分编程到 FPGA 中,这通常不会包含文件相关的库。

复杂的文件操作是一种通用的处理任务——PC 所做的。您最好的调查途径可能是首先重新考虑您想要 FPGA 的用途并专注于此。

一些可能性:

  • 如果 FPGA 只是提供一个接口来在 PC 上读取和写入一些字节流,也许您应该这样做。在 PC 上进行数据处理。传输数据仍然不是一件容易的事,但在这种情况下,无论如何您都需要解决这个问题。

  • 如果您需要 FPGA 进行一些高性能计算,请查看是否可以预处理并以更易于设计消化的格式提供该数据。

  • 如果真的有必要,使用 VHDL 处理串行字节流可能并不像听起来那么难,尤其是当您只需要对其进行线性操作时。可能您需要一个至少包含一个解析串行字节流的状态机的设计,但其余的都取决于您的问题的细节。

  • 如果您确实需要在 FPGA 上进行复杂处理,请考虑使用软核 CPU。可能有适合您的 FPGA 的开源软件。无论您想做什么,用 C 语言编写都可能更容易,然后您可以在 FPGA 上编译和运行。该选项为您提供了一个非常灵活的独立硬件组件,但如果您需要非常高的性能或者您没有太多时间来设置它,那么这可能不适合您。

【讨论】:

    猜你喜欢
    • 2013-01-09
    • 2011-08-06
    • 2016-05-03
    • 2019-09-13
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多