2016-10-14 12 views
1

Я чувствую, что приложил немало усилий для поиска решения моей проблемы в Интернете, но не могу найти то, что мне нужно для достижения моей цели.Как написать в файл с помощью FPGA

По существу, мне нужно проанализировать данные из файла, полученного моей FPGA через последовательный порт. Данные довольно обширны, и я думаю, что было бы проще, если бы они могли использовать некоторые функции внутри библиотеки textIO.

Все методы, которые я нашел в Интернете для анализа данных, предназначены только для симуляции. Мне нужно, чтобы это произошло на FPGA.

Итак, мой вопрос заключается в том, есть ли способ создать файл внутри FPGA и получить от него последовательную запись, а затем использовать функции textIO в этом txt-файле?

Некоторые псевдо-код может выглядеть Somthing как:

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 

Кроме того, стоит отметить, что я новичок в ПЛИС и VHDL, так что это может быть, что тривиальное решение, что я не в курсе. И я использую VHDL с Altera DE2-115.

Я ценю любую помощь.

+0

Как вы думаете, какая часть FPGA может содержать файл? –

+0

@BrianDrummond Я думал, что мне нужно получить доступ к какой-то ОЗУ.Что, на мой взгляд, DE2-115 имеет такую ​​возможность. – Dylan

+0

Правильно, и для достаточно малых объемов данных ОЗУ - правильный подход. Но у вас есть 2 варианта: для файла требуется сложность уровня файловой системы, строки или массива (или записи или другого фактического объекта данных). –

ответ

0

Нет, то, что вы предлагаете, невозможно. Как вы уже нашли, входы/выходы VHDL - это просто инструкции для симулятора , чтобы что-то сделать. Обратите внимание на различия между синтезируемым и несинтезируемым VHDL. Вы можете запрограммировать только синтезируемую часть вашего VHDL в FPGA, и обычно это не будет включать библиотеки, связанные с файлами.

Сложные файловые операции - это задача обработки общего назначения - что делают ПК. Ваш лучший способ расследования - это, вероятно, пересмотреть то, что вы хотите, чтобы FPGA в первую очередь и сосредоточиться на этом.

Некоторые возможности:

  • Если FPGA только обеспечить интерфейс для чтения и записи некоторый поток байтов на ПК, возможно, вы должны сделать именно это. Выполняйте обработку данных на ПК. Передача данных по-прежнему не является тривиальной, но в этом случае вам все равно необходимо решить эту проблему.

  • Если вам нужна FPGA для некоторых высокопроизводительных вычислений, посмотрите, можете ли вы предварительно обработать и предоставить эти данные в формате, который проще для вашего дизайна для переваривания.

  • Если действительно необходимо, обработка вашего потокового байтового потока с помощью VHDL может быть не такой сложной, как кажется, особенно если вам нужно только линейно управлять ею. Вероятно, вам нужен дизайн, включающий по крайней мере один конечный автомат, который анализирует ваш последовательный поток байтов, но все остальное зависит от деталей вашей проблемы.

  • Если вам действительно нужна сложная обработка на FPGA, рассмотрите возможность использования мягкого основного процессора. Могут быть версии с открытым исходным кодом, которые подходят для вашей FPGA. Независимо от того, что вы хотите сделать, может быть проще написать на C, который вы можете скомпилировать и запустить на FPGA. Эта опция дает вам очень гибкий автономный аппаратный компонент, но если вам нужна очень высокая производительность, или у вас мало времени на его настройку, это, вероятно, не подходит для вас.

 Смежные вопросы

  • Нет связанных вопросов^_^