Vhdl 如何使用FPGA写入文件

Vhdl 如何使用FPGA写入文件,vhdl,fpga,quartus,Vhdl,Fpga,Quartus,我觉得我已经花了相当大的努力在网上寻找我的问题的解决方案,但找不到我需要什么来实现我的目标 本质上,我需要做的是解析FPGA通过串行总线接收的文件中的数据。数据相当广泛,我认为如果我们能够使用textIO库中的一些函数,会更容易 我在网上找到的所有涉及数据解析的技术都只用于模拟。我需要这在FPGA上实际发生 所以我的问题是,有没有一种方法可以在FPGA内部创建一个文件,并将串行写入的输入输入到该文件中,然后在该txt文件上使用textIO函数 某些psuedo代码可能看起来像: File

我觉得我已经花了相当大的努力在网上寻找我的问题的解决方案,但找不到我需要什么来实现我的目标

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

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

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

某些psuedo代码可能看起来像:

    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上编译和运行。该选项为您提供了一个非常灵活的独立硬件组件,但是如果您需要非常高的性能,或者您没有太多时间来设置它,那么这可能不适合您


      不,你的建议是不可能的。正如您所发现的,VHDL的文件i/o实际上只是对模拟器执行某些操作的指令。请注意可合成和不可合成VHDL之间的区别。您只能将VHDL的可合成部分编程到FPGA中,这通常不包括与文件相关的库

      复杂的文件操作是一项通用的处理任务,PC机就是这样做的。您最好的调查途径可能是重新考虑您首先想要FPGA做什么,并将重点放在这一点上

      一些可能性:

      • 如果FPGA只是提供一个接口,用于在PC上读写一些字节流,那么也许您应该准确地做到这一点。在PC上进行数据处理。传输数据仍然不是一件小事,但在这种情况下,您仍然需要解决该问题

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

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

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


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