Перейти к содержанию
    

Работа с файлами на VHDL

Хочу в ActiveHDL 6.3 объявить следующий тип:

type ram_init_type is file of bit_vector (31 downto 0);

не получается - компилятор советует поставить ";" после bit_vector

 

Что это - глюк?

 

Сильно не пинайте ногами - с файлами пытаюсь работать в первый раз.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хочу в ActiveHDL 6.3 объявить следующий тип:

type ram_init_type  is file of bit_vector (31 downto 0);

не получается - компилятор советует поставить ";" после bit_vector

 

Что это -  глюк?

 

Сильно не пинайте ногами - с файлами пытаюсь работать в первый раз.

 

 

В стандартном VHDL без специальных ухищрений можно работать только с текстовыми файлами. Возвращается/записывается текстовая строка. На совести пользователя преобразовать ее содержимое в тот тип данных, который требуется. Я это делаю так:

 

1. Использую package с функциями для преобразования строк текста в любой из VHDL-типов и работы с файлами (CASTutil.zip в прицепе).

 

2. В Вашем testbench делаете нечто похожее на следующее

 

library std;

use std.textio.ALL;

 

use CASTutil.all;

 

.

.

.

.

 

MAIN_PROC: process

FILE MY_FILE : text open read_mode is <путь к файлу\имя>;

VARIABLE MY_FILE_LINE : line;

VARIABLE MY_FILE_DWORD : std_logic_vector(31 downto 0);

begin

 

.

.

.

 

if <ваше некое условие> and not endfile(MY_FILE) then

readline(MY_FILE, MY_FILE_LINE);

read(MY_FILE_LINE, MY_FILE_DWORD);

end if;

 

.

.

.

 

end process;

 

В указанном package определены процедуры записи и чтения данных типов, не совпадающих со стандартным package'м STD.TEXTIO.

 

Удачи.

CASTutil.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В стандартном VHDL без специальных ухищрений можно работать только с текстовыми файлами. Возвращается/записывается текстовая строка. На совести пользователя преобразовать ее содержимое в тот тип данных, который требуется. Я это делаю так:

Вы не совсем правы :) в ВХДЛ есть еше работа с бинарными файлами,

но есть проблема, что бинарные файлы Альдек например понимает только как файлы с числами формата integer, да еще и с big endian

напрягает только не возможность по файл перемещаться :(

type FT is file of integer;

file pipa_file : FT;

 

file_open(file_result, pipa_file, "pipa.dat", read_mode);

if (file_result /= OPEN_OK) then report "File open error!" severity FAILURE; end if;

 

read(pipa_file, idata); 

Удачи

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ссори litle endian, первым записан младший байт :))

 

Вот-вот это мне и не понравилось, поэтому я решил попробывать поменять тип с integer на bit_vector и тут облом :(

 

oleg_rudakov:

Спасибо, посмотрим что это такое!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот-вот это мне и не понравилось, поэтому я решил попробывать поменять тип с integer на bit_vector и тут облом :(

 

Дык в чем трабла то ? распарсить 32 бита ??

пишем функцию и вуаля :)

+ с любого сишного файла на ПК делаем дамп того что нужно и поднимаем в тестбенче :)

 

удачи

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дык в чем трабла то ? распарсить 32 бита ??

пишем функцию и вуаля :)

+ с любого сишного файла на ПК делаем дамп того что нужно и поднимаем в тестбенче :)

 

Хотел так и сделать ( и теперь, наверное, сделаю так). Но смущало то, что в описании сказано о поддержке типа bit_vector, а компилятор его не воспринимает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а компилятор его не воспринимает.

Это точно :( сам в свое время на этом накололся, часа на три :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...