2015-03-27 5 views
1

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

У меня проблема представить эти операции, преобразованные в ворота на чипе ... Так как это работает?

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

Tom.

ответ

2

Вы совершенно верно, файловые операции обычно не могут быть синтезированы.

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

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

+0

Спасибо, это понятно :) – user2904864

+1

Xilinx ISE может читать и писать файлы. Например. шаблон ROM opbasm от Kevin Thibedeau использует функции чтения для инициализации BlockRAM. Пример 2: Я использую функцию записи для экспорта кодировки FSM/Enum для отладки ChipScope и для экспорта регистров в сопоставления адресов шины моего SoC как код ассемблера (константы и таблицы адресов). Quartus II игнорирует все функции ввода-вывода в синтезе. Vivado Synth не поддерживает функции и типы ввода-вывода. – Paebbels