реклама на сайте
подробности

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





Группа: Новичок
Сообщений: 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. Ни того, ни другого у меня нет smile.gif Под словом 'выбрал' подразумеваю - выбрал для поиска. Также очень интересуют возможные альтернативы. С прошивкой полученного кода в ПЛИС обещали помочь.

Спасибо за внимание!

Сообщение отредактировал araglin - Dec 28 2006, 18:29
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
Doka
сообщение Dec 29 2006, 11:51
Сообщение #2


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



насчет ПО: с сайта xilinx скачиваете бесплатный WebPack - там и синтезатор и симулятор(как свой, так и урезанный модельсим) и прочее для получения в конечном итоге битового потока конфигурации плис есть. (поскольку в любом случае, даже имея синтезатор и симулятор, без натиного софта производителя для раскладки в кристалл и разводки - ну совсем никуда)

для того чтобы загнать битовый поток в плис можете использовать следующую схему:
http://www.xilinx.com/support/programr/jtag_cable.pdf


по поводу выбора семейства можно сказать так: поставьте софт и поиграйтесь там с синтезом имеющегося у вас кода под различные семейства - вот и посмотрите во что (по использованным ресурсам) выливается ваш проект.


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
sergey256
сообщение Jan 3 2007, 19:27
Сообщение #3


Участник
*

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



По самому проекту - возможно следует предусмотреть резервирование. Если причиной сбоев памяти будут внешние воздействия, то собъется и память в Xilinx, что погубит всю память(доступ к ней просто будет невозможен). У Altera (Stratix) есть возможность встроенными средствами проверять целостность внутренней памяти, как обстоят дела у Xilinx я не знаю.
Go to the top of the page
 
+Quote Post
v_mirgorodsky
сообщение Jan 3 2007, 20:18
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



Цитата(sergey256 @ Jan 3 2007, 18:27) *
По самому проекту - возможно следует предусмотреть резервирование. Если причиной сбоев памяти будут внешние воздействия, то собъется и память в Xilinx, что погубит всю память(доступ к ней просто будет невозможен).
Вот потому человек и собирается использовать CPLD wink.gif CoolRunner II использовать не стоит, поскольку он есть урезанная FPGA со встроенным флешом.

Цитата(sergey256 @ Jan 3 2007, 18:27) *
У Altera (Stratix) есть возможность встроенными средствами проверять целостность внутренней памяти, как обстоят дела у Xilinx я не знаю.
Хилые тоже умеют контроллировать целостность своей конфигурационной памяти. Сам с этим близко не работал, однако знаю, что это возможно.

2 araglin:
Поскольку память выбрана ассинхронная, то будут серьезные проблемы с тем, чтобы прикинуться чипом памяти для внешней системы, пусть и с четырьмя дополнительными выводами. Чтобы прикинуться памятью придется сформировать контрольную сумму по восьми битам за 2ns - это просто очень круто для CPLD. Иначе необходимо вводить корректировку в алгоритм работы блока памяти - выставлять данные заранее, а лишь потом выставлять адрес и сигналы по записи, что уже нарушение таймингов, рекомендованых производителем. Впрочем, выбор синхронной памяти все равно ничем не поможет - все равно будут необходимы такты для перемещения даных между стадиями конвеера.


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
Alex03
сообщение Jan 4 2007, 10:55
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



А откуда вообще такая задача?
Есть уверенность что Самсунг K6R4008V1D более сбойная чем микропроцессор или ПЛИС?
Так не используйте Самсунг. Если сбоит всё, так надо бороться с источниками сбоев и т.д.
Т.е. должно быть обоснование того что усложнение схемы повысит её надёжность, а не наоборот, а для этого должны быть какие-то критерии надёжности (вероятность отказа за ед. времени и т.д.) для отдельных частей схемы.

Далее. как Вы собираетесь контролировать наличие ошибок?
1. ПЛИС просто выставляет флаг наличия или считает их.
Тогда прога будет знать о наличии ошибки как постфактум (по опросу, или сразу по внешнему прерыванию). И что тогда уже делать? И кстати какие данные предполагается хранить в ОЗУ?
2. Контроль производится при каждом обращении к памяти, т.е. каждое чтение памяти обёрнуто в програмный код проверяющий статус ошибки, но тогда падает производитеьность. Если производительность не существенна, то может и сам алгоритм проверки/восстановления имеет смысл в проц засунуть и использовать сразу более широкую память.

Или это чисто эксперименты или какойнить курсовой в институте?
Go to the top of the page
 
+Quote Post
sergey256
сообщение Jan 4 2007, 22:24
Сообщение #6


Участник
*

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



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

Сообщение отредактировал sergey256 - Jan 4 2007, 22:32
Go to the top of the page
 
+Quote Post
v_mirgorodsky
сообщение Jan 5 2007, 10:42
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



Если уж растекаться мыслью по древу, то проще сделать мажоритарную схему на трех корпусах памяти wink.gif Будет гораздо проще и гораздо надежнее, нежели всякие схемы контроля ошибок smile.gif


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 21:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016