Адрес страницы флэш-памяти пользователя

#fpga #intel-fpga

# #fpga #intel-fpga

Вопрос:

Я использую пользовательскую флэш-память max10 FPGA в своем проекте. Он содержит 4 страницы в одном секторе, каждая страница имеет размер 64 КБ. Теперь, как определить, что является начальным и конечным адресом каждой страницы в памяти для записи или чтения данных из флэш-памяти.

Ответ №1:

Пример дизайна можно найти здесь:

https://fpgacloud.intel.com/devstore/platform/17.1std.1/Standard/utilizing-the-user-flash-memory-ufm-on-max-10-devices-with-a-nios-ii-processor/

Руководство пользователя здесь:

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 Если это ответило на ваш вопрос, пожалуйста, примите.