Чтение или запись нескольких файлов с использованием vhdl textio - PullRequest
1 голос
/ 10 декабря 2011

Я успешно написал VHDL-код для чтения и записи файла. В основном я читаю файл, обрабатываю данные в файле и записываю результаты в другой файл. Теперь я хочу расширить мою программу для чтения нескольких тестовых случаев. Например, данные будут доступны в разных файлах с именами 1.txt, 2.txt и т. Д. До 100.txt. Я хочу использовать цикл для чтения данных из файлов один за другим и записи результатов в разные файлы. Может ли кто-нибудь помочь?

type i1 is file of character;                       
file f1 : i1 open READ_MODE is "1.txt";

это тип кода, который я использовал для чтения файла. Как расширить его для массива файлов?

Ответы [ 3 ]

1 голос
/ 12 декабря 2011

Мой блог здесь http://parallelpoints.com/node/66/ показывает, как открывать файлы из функции и читать данные.

Вы можете передавать имена файлов как string тип в функцию и использовать text файлы:

file file_variable : text;

и ...

file_open(file_variable, filename, read_mode);

, чтобы открыть его.

Осторожно, если вы читаете двоичные файлы, разные симуляторы ведут себя по-разному.Modelsim будет делать то, что вы (вероятно) ожидаете.У меня было падение GHDL, когда читается символ EOF.И симулятор Xilinx ожидает специальный заголовок в файле!

Наиболее удобно придерживаться чистого текста, даже если вам нужно предварительно обработать его.

0 голосов
/ 09 сентября 2016

процедура read_sample_file (имя_файла: в строке; ...) - это файл msgFile: text;... begin file_open (msgFile, file_name, READ_MODE);

0 голосов
/ 12 декабря 2011

Я не могу попробовать это дома, так что это может не сработать - вы пытались переместить свой код в procedure с именем файла в качестве параметра? Тогда вы сможете обернуть его в простой цикл for, и он не будет пытаться делать все это параллельно, как если бы у вас было имя файла в качестве универсального в цикле generate.

...