如何使用FPGA

时间:2016-10-14 21:06:57

标签: vhdl fpga quartus

我觉得我已经在网上搜索问题的解决方案,但找不到我需要的东西以实现我的目标。

基本上,我需要做的是解析我的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的新手,因此可能会有一个我不了解的简单解决方案。我使用VHDL和Altera DE2-115。

我感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

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

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

一些可能性:

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

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

  • 如果确实有必要,用VHDL处理串行字节流可能不像听起来那么难,特别是如果你只需要线性操作它。您可能需要一个涉及至少一个解析串行字节流的状态机的设计,但其余的都取决于您的问题的详细信息。

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