Цитата(sf9 @ Mar 27 2018, 09:02)

Коллеги, возник вопрос, связанный с использованием в проекте с ПЛИС Artix-7 XC7A200TFFG1156-2 двух независимых DDR3 MT41J128M16JT-125.
По ТЗ необходимо предусмотреть две отдельные микросхемы DDR для повышения надежности системы.
Идея заключается в том, что при старте системы выполняется проверка DDR методом чтения/записи.
Если тест пройден успешно, в MicroBlaze запускается основная программа. Если тест закончился неудачно, нужно переключиться на вторую DDR, проверить ее и работать с ней.
Иначе - плата признается неисправной. DDR используется MicroBlaze для кеширования.
Вопрос состоит в том, можно ли программно выполнить выбор DDR, с которой нужно работать системе?
Достаточно ли для этого одной прошивки или нужно организовать хранение 2х прошивок для первой или второй DDR?
Я думаю, это вполне осуществимая задача, тем более, ДДР полностью одинаковые. Необходимо просто скоммутировать сигналы управления/данных в/на нужную DDR.
Что-то вроде:
0. Включили систему;
1. Проверили ДДР1;
1.1. Если она в порядке -> (4), иначе -> (2);
2. Переключились на ДДР2;
3. Проверили ДДР2;
3.1. Если она в порядке -> (4), иначе -> говорим, что работать невозможно и начинаем истерично мигать ласпочками)
4. Если требуется - переключились на нужную ДДР и остались в этом положении до конца работы (отключения питания, например).
А для проверки можно рассчитывать контрольную сумму записываемых данных, а при чтении сверять ее правильность. Если не хочется считать длиную КС - то можно чтение/запись побить на блоки и считать КС для каждого отдельно.