planetzeus 0 4 октября, 2020 Опубликовано 4 октября, 2020 · Жалоба Сразу скажу, что я не электронщик, а программист, поэтому буду рад любым советам опытных людей. Нужна плата с FPGA (готовый devkit с FPGA), с помощью которой можно было решить следующую задачу: Есть девайс с LPC2478 и SDRAM M12L2561616A на борту. Задача: подменить SDRAM своим девайсом, который сможет не только эмулировать эту самую SDRAM, но и 1) логгировать обращения к памяти. Чтобы можно было своим кодом отправлять эти логи в комп по USB (программирование задачи со стороны PC - не проблема) 2) во время чтения из SDRAM использовать программно свои правила и блоки памяти, чтобы LPC2478 ничего не подозревая писал в SDRAM одно, а читал то, что я хочу ему скормить. Насколько я понимаю, нужна плата с как минимум 40-50 IO портами, чтобы эмулировать SDRAM на частоте 100-200MHz. Может есть что-то готовое от Xilinx для решения этой задачи? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex11 3 4 октября, 2020 Опубликовано 4 октября, 2020 · Жалоба Шансов у Вас мало, если только Вам не нужно отдавать умеренное количество констант из памяти. Причины следующие: SDRAM имеет достаточно большую емкость, эмулировать на внутренней памяти FPGA ее не получится - столько памяти внутри не бывает. Если использовать связку SDRAM-FPGA, то FPGA должна будет транслировать сигналы с почти нулевой задержкой, а если Вам нужно анализировать адреса, то с большой вероятностью, у Вас это не получится, не говоря уже о задержке на такт при границе адреса не совпадающей с границей раздела страниц. И второе. Я так понимаю, Вы хотите припаять эту конструкцию вместо SDRAM на основную плату - на скорости 200 МГц конструкция с кучей соплей работать не будет. Может быть, на 100 и получится, но не выше. Может быть, получится включить разрешение записи через ключик быстрый и управлять им. Соответственно, при включенном ключе пишете в память ответы, затем выключаете и имеете режим Read only. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
planetzeus 0 4 октября, 2020 Опубликовано 4 октября, 2020 · Жалоба 35 minutes ago, Alex11 said: Шансов у Вас мало, ... Спасибо большое. Эта схема - лишь предположение, так как я не знаю как иначе решить эту задачу. Я думал о другом варианте: - припаять параллельно еще одну такую же M12L2561616A и когда идет запись в нее, то соответственно должно дублироваться во вторую SDRAM. А далее как Вы сказали, управляя ключами разрешения записи и выбора микросхемы прочитать содержимое с помощью другого микроконтроллера. Задачу можно разделить на отдельные этапы - чтение образа памяти (после определенной функции на устройстве) и соответственно подмену памяти с помощью второй SDRAM Схему я сам не соберу, поэтому хотел организовать все это на какой-нибудь готовой плате со связкой ARM-FPGA Может есть какие-то другие варианты решения задачи? сканировать логическим анализатором для чтения тоже не вариант. Логгировать адресную шину + данные + контрольные пины = слишком дорого и вообще не уверен, реально ли. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 5 октября, 2020 Опубликовано 5 октября, 2020 · Жалоба +1 ко мнению @Alex11 тайминг у SDRAM жесткий, длительность RAS/CAS и CAS Latency порядка 1-3-х тактов памяти, если память работает на частоте выше 50-80МГц, то гиблое дело подменить данные своими, если транслировать их через ПЛИС. Причем сделать зеркало, без проблем. Подцепить монитор портов, контроллер интерфейса и запись в свою SDR/DDR SDRAM. А вот подменить чтение и уложиться в стандартные времянки, вот с этим будет сложно. Собрать шинный коммутатор на две разных памяти, к одной из которых доступ зашарен на плис, можно подумать, но там нужно будет подстраиваться по работу процессора и писать модифицированный контекст в окнах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Artemius_tv 0 5 октября, 2020 Опубликовано 5 октября, 2020 · Жалоба 22 hours ago, planetzeus said: чтобы эмулировать SDRAM на частоте 100-200MHz Зачем так много? У LPC2478 контроллер SDRAM работает на частоте ядра, т.е. не больше 72МГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться