#fpga #intel-fpga
# #fpga #intel-fpga
Вопрос:
Я использую пользовательскую флэш-память max10 FPGA в своем проекте. Он содержит 4 страницы в одном секторе, каждая страница имеет размер 64 КБ. Теперь, как определить, что является начальным и конечным адресом каждой страницы в памяти для записи или чтения данных из флэш-памяти.
Ответ №1:
Пример дизайна можно найти здесь:
Руководство пользователя здесь:
https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/max-10/ug_m10_ufm.pdf
Размер массива UFM и CFM зависит от выбранного вами устройства, как показано в следующей таблице:
Кроме того, доступ к секторам зависит от используемого режима конфигурации. Они показаны в следующих таблицах:
Итак, в моем последнем проекте используется flash 10M08 с двойным сжатием изображений. Это означает, что я могу получить доступ только к секторам 0 и 1, и в каждом секторе 8 страниц, каждая страница имеет размер 16 Кб. Обратите внимание, что в таблице данных указаны размеры в кибибитах, где Кб составляет 1024 бита, а не 1000. Преобразование в байты дает размер страницы 2048 байт. Интерфейс Avalon требует от вас доступа с использованием шестнадцатеричных адресов, которые ссылаются на фактический номер байта. Это означает, что в моем примере каждая страница будет иметь размер 0x0800 байт. Таким образом, каждая страница будет начинаться с 0x0800, например
Sector 0 Page 0 Start Addr = 0x0000
Sector 0 Page 1 Start Addr = 0x0800
Sector 0 Page 2 Start Addr = 0x1000
...
Sector 1 Page 7 Start Addr = 0x7800
Другой способ определить адреса — посмотреть, что сообщается в редакторе параметров IP:
Как вы можете видеть, он дает начальный и конечный адреса каждого сектора. Чтобы найти размеры страниц, просто разделите заданное адресное пространство на 8, а затем вы можете вычислить начальный адрес для каждой из них.
Почему Intel / Altera пришлось использовать кибибиты, а не просто байты в своей таблице данных, мне не понять.
Комментарии:
1. @ManojKumar Если это ответило на ваш вопрос, пожалуйста, примите.