[an error occurred while processing this directive]
|
У меня используется виртуальный target, один BAR заполняется данными из файла, чтобы потом их читать по DMA, во второй данные пишутся по DMA и потом записываются в другой файл.
Само устройство содержит один BAR.
Долго не мог сообразить две вещи:
1) сгенерированный файл с данными должен заканчиваться точкой с запятой или быть этими точками с запятой разбавленным, иначе будет ошибка с невнятным текстом сообщения.
2) симуляцию на 100MHz нужно запускать например так: vsim -t 1ps module_name
Начало моего скрипта:
-- configure virtual target
cfg_w 10 0 45000000; -- базовый адрес BAR0
cfg_w 14 0 56000000; -- базовый адрес BAR1
cfg_w 60 0 80000000; -- 64-bit mode
-- cfg_w 60 0 00000000; -- 32-bit mode
-- fill bar0, clear bar1
cfg_w 48 0 00010002; -- BAR0 считывается из файла, BAR1 прописывается нулями
-- configure device
cfg_w 1010 0 a0000000; -- это устанавливается BAR0 моего устройства
cfg_w 1004 0 1FF; -- а это всякие флаги - читать документацию
-- reset device
mem_w a0000000 1 00; -- тут уже запись одного байта в BAR0 устройства
mem_r a0000000 4 010; -- чтение четырех байт из устройства
Конец скрипта:
cfg_w 48 0 02000000; -- запись данных из BAR1 виртуального таргета в файл
idle 300000;
end;
E-mail: info@telesys.ru