Jump to content

    

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

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

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

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

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

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

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

Благодарю. 

Share this post


Link to post
Share on other sites
5 минут назад, Kostochkin сказал:

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

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

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

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

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

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

Благодарю. 

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

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

Share this post


Link to post
Share on other sites
1 hour ago, iosifk said:

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

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

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

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

Благодарю.

Share this post


Link to post
Share on other sites
2 минуты назад, Kostochkin сказал:

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

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

  initial

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

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

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

Share this post


Link to post
Share on other sites
35 minutes ago, iosifk said:

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

  initial

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

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

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

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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
11 минут назад, Nick_K сказал:

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Приветствую

2 minutes ago, Kostochkin said:

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

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

Удачи! Rob.

Share this post


Link to post
Share on other sites
3 минуты назад, Kostochkin сказал:

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

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

Share this post


Link to post
Share on other sites
1 hour ago, Kostochkin said:

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

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this