Я делаю проект с использованием DE1-SoC (FPGA + ARM cortex A9). Вы можете увидеть часть дизайна (Qsys, дизайнер платформы) здесь
Оперативная память (RAM, image_memory) осваивается двумя разными мастерами. Один из мастеров хорошо известен h2f_lw_axi_master (предоставляемый программным обеспечением Quartus Prime для обеспечения обмена данными ARM и FPGA), а другой zpc_1 - это пользовательский мастер-блок, который я разработал .
Основная идея этого проекта заключается в том, что после настройки FPGA необходимо иметь возможность записывать данные во встроенную память, а zpc_1 считывает содержимое памяти и работает с ней.
Длина каждого слова составляет 512 бит (64 байта), и есть 1200 слов (поэтому назначенный адрес начинается с 0x0002_0000 и заканчивается на 0x0003_2bff , достаточно места для 76800 = (512 * 1200) / 8 байт. Hps использует для записи данные типа uint512_t (из библиотеки boost c ++), а zpc_1 имеет ширину readdata 512 бит. Адреса присваиваются по h2f_lw_axi_master .
У меня есть два вопроса, связанных с этой системой.
1. Должен ли адрес для чтения данных в zpc_1 код HDL начинаться со смещения 0x20000 и увеличиваться на 0x40 (64) в каждом цикле для считывания данных слово за словом? (или любой другой метод)
2. zpc_1 способен читать первое слово и постоянно работает в соответствии с инструкциями в первом слове, в чем может быть причина?
Если вам нужна дополнительная информация для ответа на вопрос и / или вопрос недостаточно ясен для понимания, не стесняйтесь спрашивать о дополнительной информации (комментарий).