Синтез операций файловой системы VHDL

У меня вопрос по системе синтеза VHDL, а точнее по операциям с IO файлами. Мой вопрос заключался в том, выполняет ли система синтеза синтез файловых операций, таких как write(), read(), когда они пишутся в коде VHDL? Например, внутри этого кода VHDL: http://www.csee.umbc.edu/portal/help/VHDL/samples/file_io.vhdl

Я с трудом представляю, как эти операции преобразуются в вентили на чипе... Так как же это работает?

Спасибо вам, ребята ! :)

Том.


person user2904864    schedule 27.03.2015    source источник


Ответы (1)


Вы совершенно правы, файловые операции вообще нельзя синтезировать.

Одно возможное исключение: открыть файл, прочитать его содержимое в ПЗУ, закрыть файл. Хитрость в том, что все это происходит в функции, возвращающей массив, вызываемой предложением инициализации (т. е. в объявлении) и выполняемой во время синтеза, так что результатом является ПЗУ, а не оборудование для обработки файлов! Обратите внимание, что инструменты синтеза могут на самом деле не поддерживать это (пока), хотя практических трудностей в реализации этого нет. (Я не знаю, какие инструменты синтезатора поддерживают его).

Так почему же в VHDL вообще есть файлы? Для тестовых стендов, чтобы проверить ваш проект и зарегистрировать результаты тестирования.

person user_1818839    schedule 27.03.2015
comment
Xilinx ISE может читать и записывать файлы. Например. шаблон ПЗУ opbasm от Кевина Тибедо использует функцию чтения для инициализации блоков ОЗУ. Пример 2: я использую функцию записи для экспорта кодировки FSM/Enum для отладки ChipScope и для экспорта сопоставлений адресов регистров и шин моей SoC в виде ассемблерного кода (константы и таблицы адресов). Quartus II игнорирует все функции ввода/вывода при синтезе. Vivado Synth не поддерживает функции и типы ввода/вывода. - person Paebbels; 28.03.2015