如何使用 FPGA 写入文件
How to write to a file using an FPGA
我觉得我已经付出了体面的努力来在线搜索我的问题的解决方案,但找不到我需要的东西来实现我的目标。
本质上,我需要做的是解析我的 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。
感谢任何帮助。
不,你所提议的是不可能的。正如您所发现的,VHDL 文件 i/o 实际上只是对 模拟器 执行某些操作的指令。请注意可合成和不可合成 VHDL 之间的区别。您只能将 VHDL 的可综合部分编程到 FPGA 中,这通常不会包括文件相关的库。
复杂的文件操作是一种通用的处理任务 - PC 所做的。您最好的调查途径可能是首先重新考虑您想要 FPGA 做什么,并专注于此。
一些可能性:
如果 FPGA 只是提供一个接口来读写一些字节流到 PC 上,也许你应该准确地做到这一点。在 PC 上进行数据处理。传输数据仍然不是小事,但在这种情况下,您无论如何都需要解决该问题。
如果您需要 FPGA 进行一些高性能计算,看看您是否可以预处理数据并以更容易让您的设计消化的格式提供该数据。
如果确实有必要,用 VHDL 处理串行字节流可能并不像听起来那么难,尤其是当您只需要对其进行线性操作时。可能您需要一个至少涉及一个状态机的设计来解析您的串行字节流,但其余的都取决于您的问题的细节。
如果确实需要在FPGA上进行复杂的处理,可以考虑使用软核CPU。可能有适合您的 FPGA 的开源软件。无论您想做什么,用 C 编写可能更容易,然后您可以在 FPGA 上编译和 运行。该选项为您提供了一个非常灵活的独立硬件组件,但如果您需要非常高的性能或者您没有太多时间来设置它,这可能不适合您。
我觉得我已经付出了体面的努力来在线搜索我的问题的解决方案,但找不到我需要的东西来实现我的目标。
本质上,我需要做的是解析我的 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。
感谢任何帮助。
不,你所提议的是不可能的。正如您所发现的,VHDL 文件 i/o 实际上只是对 模拟器 执行某些操作的指令。请注意可合成和不可合成 VHDL 之间的区别。您只能将 VHDL 的可综合部分编程到 FPGA 中,这通常不会包括文件相关的库。
复杂的文件操作是一种通用的处理任务 - PC 所做的。您最好的调查途径可能是首先重新考虑您想要 FPGA 做什么,并专注于此。
一些可能性:
如果 FPGA 只是提供一个接口来读写一些字节流到 PC 上,也许你应该准确地做到这一点。在 PC 上进行数据处理。传输数据仍然不是小事,但在这种情况下,您无论如何都需要解决该问题。
如果您需要 FPGA 进行一些高性能计算,看看您是否可以预处理数据并以更容易让您的设计消化的格式提供该数据。
如果确实有必要,用 VHDL 处理串行字节流可能并不像听起来那么难,尤其是当您只需要对其进行线性操作时。可能您需要一个至少涉及一个状态机的设计来解析您的串行字节流,但其余的都取决于您的问题的细节。
如果确实需要在FPGA上进行复杂的处理,可以考虑使用软核CPU。可能有适合您的 FPGA 的开源软件。无论您想做什么,用 C 编写可能更容易,然后您可以在 FPGA 上编译和 运行。该选项为您提供了一个非常灵活的独立硬件组件,但如果您需要非常高的性能或者您没有太多时间来设置它,这可能不适合您。