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

Чтение данных из файла в artix7 100t

Здравствуйте.

Имеется плата с fpga artix 7 100t.

Для проверки проекта нужен внешний генератор, которого нет.

Но есть файл(scv) с данными внешних воздействий.

Нужно записать данные из файла в блочную память, и потом соответственно подавать внешний сигнал из памяти.

Вопрос: Как прочитать данные  из файла в плис?

Благодарю. 

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


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

5 минут назад, Kostochkin сказал:

Здравствуйте.

Имеется плата с fpga artix 7 100t.

Для проверки проекта нужен внешний генератор, которого нет.

Но есть файл(scv) с данными внешних воздействий.

Нужно записать данные из файла в блочную память, и потом соответственно подавать внешний сигнал из памяти.

Вопрос: Как прочитать данные  из файла в плис?

Благодарю. 

Вопрос задан не полно. 

Считать один раз при инициализации ПЛИС? Читать непрерывно в процессе работы? Критично ли скорость доставки данных в ПЛИС при этом?

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


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

1 hour ago, iosifk said:

Вопрос задан не полно. 

Считать один раз при инициализации ПЛИС? Читать непрерывно в процессе работы? Критично ли скорость доставки данных в ПЛИС при этом?

Да, извините. 

Нужно считать один раз при инициализации, скорость доставки данных в плис не критично.

Благодарю.

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


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

2 минуты назад, Kostochkin сказал:

Нужно считать один раз при инициализации, скорость доставки данных в плис не критично.

reg  [31:0] prom_data[1023:0];

  initial

    $readmemb("../data/mem_file.dat", prom_data);

Или $readmemh если данные записаны байтами в хекс

Или смотрите ксайлинсовские примитивы RAMB, там есть примеры инициализации через дефайны...

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


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

35 minutes ago, iosifk said:

reg  [31:0] prom_data[1023:0];

  initial

    $readmemb("../data/mem_file.dat", prom_data);

Или $readmemh если данные записаны байтами в хекс

Или смотрите ксайлинсовские примитивы RAMB, там есть примеры инициализации через дефайны...

Благодарю, буду пробовать.

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


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

On 8/3/2019 at 1:35 PM, iosifk said:

reg  [31:0] prom_data[1023:0];

  initial

    $readmemb("../data/mem_file.dat", prom_data);

Или $readmemh если данные записаны байтами в хекс

Или смотрите ксайлинсовские примитивы RAMB, там есть примеры инициализации через дефайны...

Это по JTAG в кристал что-ли? Или просто в тестбенче в виртуальной среде?

З.Ы. Немного оффтоп, как через SDK посмотреть содержимое памяти, которая подключена к AXI шине? Видел там монитор памяти, но она только для дебага и видимо для внутренней памяти АРМа. Плата Zynq MPSoC

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


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

11 минут назад, Nick_K сказал:

Это по JTAG в кристал что-ли? Или просто в тестбенче в виртуальной среде?

Верилог, тестбенч или инициализация при компиляции.

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


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

Варианты начальной инициализации памяти для ксаевских кристаллов стоит смотреть в ug901 в разделе ram rom initialization. 

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


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

Приветствую

2 minutes ago, Kostochkin said:

А можно ли читать файл плисой во время работы? И как это сделать?

Можно!  Нужно только реализовать  внутри FPGA  контроллер IDE / SCSI / SATA / NVMe / ... / ...   и подключить к нему диск с нужным файлом. :biggrin:

Удачи! Rob.

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


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

3 минуты назад, Kostochkin сказал:

А можно ли читать файл плисой во время работы? И как это сделать?

Выделяете 4 вывода, на них вешаете стартовый набор микроконтроллера, который и подключаете к хосту. Микроконтроллер получает файл от хоста и по SPI например гонит его в ПЛИС. Можно даже в микроконтроллере сделать ТАР-контроллер и его подключить к JTAG. Правда тогда будет драка за программные драйверы между ксайлинсовскими и своими.. 

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


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

1 hour ago, Kostochkin said:

А можно ли читать файл плисой во время работы? И как это сделать? 

Вариантов куча. Из того, что сходу пришло в голову:

  • Поднять Ethernet и слать даные UDP-пакетами
  • Взять IP-ядро JTAG2AXI и подключить его к двухпортовой памяти.
  • Использовать UART, если нет требований к скорости

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


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

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

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

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

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

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

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

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

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

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