|
ПЛИС и ошибки в памяти, Думаю вот над проектом исправления ошибок в памяти с помощью плисины |
|
|
|
Dec 28 2006, 18:27
|

Группа: Новичок
Сообщений: 3
Регистрация: 27-12-06
Пользователь №: 23 951

|
Здравствуйте. Я совсем начинающий разработчик. Хотел бы с вами посоветоваться по поводу следующего проекта: цель - обеспечить исправление одиночных и обнаружение двойных ошибок (SECDED) в микросхемах ОЗУ. Для этого предполагается использование кода Хемминга. Реализацию на ПЛИС от Xilinx'a нашел. Выглядеть, как мне кажется, этому лучше всего так: для внешнего задатчика моя система ничем не будет отличаться от обычной ИС памяти, кроме 4-х дополнительных сигналов, указывающих на обнаруженную ошибку. В дальнейшем можно будет ввести дополнительное исправление ошибки внутри системы. Задатчик общается с системой точно также как с обычной микросхемой статического ОЗУ. Внутри система представляет собой плис и две схемы памяти - в одной из которых будет находиться информация, а в другой - биты коррекции. Примерный код (на VHDL) я нашел в интернете. Вроде бы приобразовать его под свои нужды не очень сложно. Схемы памяти предположительно будут Самсунг K6R4008V1D 512Kx8 3.3В (в одной из них будут использоваться не все 8 разрядов, а только 5 - биты коррекции). ПЛИС - предположительно пр-ва Xilinx технологии CPLD - CoolRunner-II или лучше 9500XL. Вроде бы всё это может заработать. Проблема только в том, что практического опыта у меня мало. Если знаете о каких-либо "подводных" камнях в такой конфигурации, большая просьба - расскажите. Также интересуют любые замечания и советы. Теперь что касается ПО для проекта. Для отладки кода выбрал modelsim, для синтеза - leonardo spectrum. Ни того, ни другого у меня нет  Под словом 'выбрал' подразумеваю - выбрал для поиска. Также очень интересуют возможные альтернативы. С прошивкой полученного кода в ПЛИС обещали помочь. Спасибо за внимание!
Сообщение отредактировал araglin - Dec 28 2006, 18:29
|
|
|
|
|
 |
Ответов
(1 - 6)
|
Jan 3 2007, 19:27
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 11-09-06
Пользователь №: 20 284

|
По самому проекту - возможно следует предусмотреть резервирование. Если причиной сбоев памяти будут внешние воздействия, то собъется и память в Xilinx, что погубит всю память(доступ к ней просто будет невозможен). У Altera (Stratix) есть возможность встроенными средствами проверять целостность внутренней памяти, как обстоят дела у Xilinx я не знаю.
|
|
|
|
|
Jan 3 2007, 20:18
|
Местный
  
Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804

|
Цитата(sergey256 @ Jan 3 2007, 18:27)  По самому проекту - возможно следует предусмотреть резервирование. Если причиной сбоев памяти будут внешние воздействия, то собъется и память в Xilinx, что погубит всю память(доступ к ней просто будет невозможен). Вот потому человек и собирается использовать CPLD  CoolRunner II использовать не стоит, поскольку он есть урезанная FPGA со встроенным флешом. Цитата(sergey256 @ Jan 3 2007, 18:27)  У Altera (Stratix) есть возможность встроенными средствами проверять целостность внутренней памяти, как обстоят дела у Xilinx я не знаю. Хилые тоже умеют контроллировать целостность своей конфигурационной памяти. Сам с этим близко не работал, однако знаю, что это возможно. 2 araglin: Поскольку память выбрана ассинхронная, то будут серьезные проблемы с тем, чтобы прикинуться чипом памяти для внешней системы, пусть и с четырьмя дополнительными выводами. Чтобы прикинуться памятью придется сформировать контрольную сумму по восьми битам за 2ns - это просто очень круто для CPLD. Иначе необходимо вводить корректировку в алгоритм работы блока памяти - выставлять данные заранее, а лишь потом выставлять адрес и сигналы по записи, что уже нарушение таймингов, рекомендованых производителем. Впрочем, выбор синхронной памяти все равно ничем не поможет - все равно будут необходимы такты для перемещения даных между стадиями конвеера.
--------------------
WBR, V. Mirgorodsky
|
|
|
|
|
Jan 4 2007, 22:24
|
Участник

Группа: Участник
Сообщений: 31
Регистрация: 11-09-06
Пользователь №: 20 284

|
Можно я отвечу вместо автора ? Если что не так, пусть он меня поправит. 1.Память менее надежная чем логика (процессор). т.к. ее делают на базе очень мелких транзисторов, характеристики которых хуже, чем у тех которых используются для лог. элементов. Например - у них маленький заряд переключения (для ячейки SRAM). Более того, логика синхронная, поэтому помеха не повлияет на систему только если не попадет под фронт, или не вызовет отказ ячейки. В случае памяти же все хуже - помеха может вызвать ее переключение. И самсунг тут не виноват. 2.Ну представьте, что бороться с источником сбоев сложно, поэтому Вам и ставят задачу спроектировать надежную SRAM. 3. про критерии надежности - да они указываются, но тут, как мне кажется курсач или диплом, поэтому забудем об этом. 4. ПЛИС производит коррекцию одиночной ошибки и детектирование двойной. Если обнаруживается ошибка - то выставляется системный FAIL, срабатывает система резервирования и происходит переключение на резервный блок. 5.Производительность естественно не существенна - задача сделать надежную систему. Память в ней - один из компонентов. Задача-то сводится к разработке системы резервирования, а память - это лишь один из факторов. Вот повышением ее надежности человек и занялся  Я думаю, что программная реализация вполне возможна (за счет большей ширины или большего объема памяти), но как курсач по схемотехнике такое решение не гоится :-)))
Сообщение отредактировал sergey256 - Jan 4 2007, 22:32
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|