|
Remote Update Xilinx 7 series FPGAs |
|
|
|
Jan 14 2016, 13:05
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Похоже, ядро AXI EMC v3.0 можно использовать для чтения/записи флэшки. Но пока не могу понять как его законнектить, если кто с ним работал просьба подсказать. Схема в pdf-файле. Память подключена для синхронной записи/чтения (рисунок из ug470), ногу FPGA CCLK_0_AE34 не могу подключить к линии CCLK_FPGA, что-то её выкидывает
Эскизы прикрепленных изображений
Прикрепленные файлы
flash.pdf ( 2.68 мегабайт )
Кол-во скачиваний: 18
|
|
|
|
|
Jan 25 2016, 21:26
|

Частый гость
 
Группа: Свой
Сообщений: 164
Регистрация: 27-06-04
Пользователь №: 194

|
Цитата(doom13 @ Jan 25 2016, 16:54)  Приветствую. Есть ли возможность выдать сигнал на пин INIT_B? Хочу после загрузки прошивки выдать сигнал сброса на flash-память. он после загрузки ПЛИС, вроде становится пользовательским выводом - "делай, что хочешь"
--------------------
qwerty
|
|
|
|
|
Jan 26 2016, 07:43
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Maksim @ Jan 26 2016, 00:26)  он после загрузки ПЛИС, вроде становится пользовательским выводом - "делай, что хочешь" В доке тип ноги INIT_B указан как Dedicated, при попытке назначения Vivado выбрасывает ошибку. CCLK также Dedicated (при попытке назначения выдаст ошибку), но к нему возможно получить доступ через STARTUPE2. Есть ли что-то аналогичное для INIT_B? Есть проблема в работе конфигурационной памяти. Конфигурационная флэшка нормально работает в случае закрузки FPGA по JTAG. Есть AXI EMC плюс софтовый драйвер (XilFlash или драйвер от Micron, работают одинаково хорошо), можем писать/читать данные в/с флэш-памяти. Но вот если система стартовала при включении питания, конфигурационная память использовалась загрузчиком FPGA, то есть какая-то проблема. Софтовый драйвер не может пройти процедуру инициализации памяти. Кусок кода, где происходит ошибка: Код /* Step 1: Send the Read CFI Command */ FLASH_WRITE(0x0055, CMD(0x0098));
/* Step 2: Check that the CFI interface is operable */ if( (FLASH_READ(0x0010) != CMD(0x0051)) || (FLASH_READ(0x0011) != CMD(0x0052)) || (FLASH_READ(0x0012) != CMD(0x0059)) ) return Flash_CfiFailed; FLASH_READ(0x0010) выдаст 0, если поставить breakpoint и вернуться прочитать всё повторно, то условие выполнится. Вот и пытаюсь найти различия в вариантах загрузки FPGA.
|
|
|
|
|
Jan 27 2016, 12:25
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Maksim @ Jan 27 2016, 14:10)  ПЛИС загрузилась из флэш памяти, а потом внутри неё процессор не может получить к ней доступ? Да, ПЛИС загрузилась с флэша и работает. Есть MicroBlaze, AXI EMC и др. В программе MicroBlaze используется библиотека для работы с флэш-памятью ( 1.XilFlash или 2.либа от Micron, выше был кусок кода для функции инициализации флэша из либы Micron). Если ПЛИС стартовала с флэша, то функция инициализации флэша не проходит (кусок кода, где получается ошибка, - выше). Цитата(Maksim @ Jan 27 2016, 14:10)  Чипскопом посмотреть, что выдаётся на ноги флэш, пробовали? Пробовал повесить на ноги флэша ILA (использую Vivado 2015.2), но не вышло, всё время выдаёт ошибку (ILA подключался в сечении порты модуля AXI EMC - выходные буферы FPGA).
|
|
|
|
|
Jan 27 2016, 16:34
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Цитата(Maksim @ Jan 27 2016, 16:20)  Пробовал повесить на ноги флэша ILA (использую Vivado 2015.2), но не вышло, всё время выдаёт ошибку (ILA подключался в сечении порты модуля AXI EMC - выходные буферы FPGA).
Если есть свободные "ноги", то можно на них вывести что идёт флэш, а уже к ним попробовать чипскоп подключить, иногда, помогает, когда чипскоп не хочет подключаться Надо цеплять ILA не к внешим портам (он такого не позволяет так как физически не подключится) а к линия идущим ко входам OBUF,IOBUF, и от выходов IBUF IOBUF. Если буфера уже расположенны в корке то легким движенеим рук это не сделать - приходится "рыть" gate-level после синтеза. Успехов! Rob.
|
|
|
|
|
Jan 27 2016, 20:50
|

Частый гость
 
Группа: Свой
Сообщений: 164
Регистрация: 27-06-04
Пользователь №: 194

|
так подключали?
Эскизы прикрепленных изображений
--------------------
qwerty
|
|
|
|
|
Jan 28 2016, 08:22
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Maksim @ Jan 27 2016, 23:50)  так подключали? Такой вариант сейчас опробую, но пока было так: на рисунке 1 показано сечение, куда ставятся Debug point-ы. Выкидывает ошибку на этапе Bitstream Generation (Synthesis & Implementation проходят нормально): Цитата [DRC 23-20] Rule violation (RTSTAT-2) Partially routed net - 45 net(s) are partially routed. The problem bus(es) and/or net(s) are CPU/axi_emc_0/U0/mem_a[30:0], CPU/axi_emc_0/U0/EMC_CTRL_I/IO_REGISTERS_I/mem_cen[0], CPU/axi_emc_0/U0/EMC_CTRL_I/IO_REGISTERS_I/mem_dq_o[15:0], CPU/axi_emc_0/U0/EMC_CTRL_I/IO_REGISTERS_I/mem_oen[0], CPU/axi_emc_0/U0/EMC_CTRL_I/IO_REGISTERS_I/mem_wen_reg.
Эскизы прикрепленных изображений
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|