|
|
  |
Cyclone III память, Cyclone проблема с памятью |
|
|
|
Jun 19 2015, 12:59
|
Участник

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

|
Добрый день!
1) Плис EPC3C40F324C8. 2) Память RAM: 2-PORT 3) QII 10.1 Build 153 SJ Full Version
У меня возникла проблема:
- Записываем данные в память - Обрабатываем массив данных, считаем на него ECC - Потом автомат записывает данные и ECC сам во внешнюю флешку - В это время записи в память не происходит, но происходить искажение единичного бита в ячейке памяти случано
запись в память производится по двум портам, в одном случае внешним процессорм по асинхронной шине, в другом автоматом.
Ни кто с подобным не встречался ??
|
|
|
|
|
Jun 19 2015, 17:28
|
Знающий
   
Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111

|
Цитата(plis @ Jun 19 2015, 16:59)  2) Память RAM: 2-PORT... - Записываем данные в память - Обрабатываем массив данных, считаем на него ECC - Потом автомат записывает данные и ECC сам во внешнюю флешку - В это время записи в память не происходит, но происходить искажение единичного бита в ячейке памяти случано
запись в память производится по двум портам, в одном случае внешним процессорм по асинхронной шине, в другом автоматом. А как разрулена ситуация одновременного обращения процессора и автомата к памяти? Может у Вас при переключениях устройств формируются "лишние/ложные" сигналы записи?
|
|
|
|
|
Jun 20 2015, 06:37
|
Участник

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

|
Цитата(Александр77 @ Jun 19 2015, 20:28)  А как разрулена ситуация одновременного обращения процессора и автомата к памяти? Может у Вас при переключениях устройств формируются "лишние/ложные" сигналы записи? Это двух портовая память и она позволяет одновременно обращаться, и если бы бвсё таки был конфликт одновременного обращения, к одной и той же ячейке, то искажался бы весь байт, а не один бит
|
|
|
|
|
Jun 22 2015, 10:35
|
Участник

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

|
Цитата(des00 @ Jun 20 2015, 11:25)  Нужны детали. Как вы определили что искажается именно в памяти и само по себе? Это можно сделать только взяв сигнал тап, писать им все что вы пишете в память, потом все что вы читаете из нее. И реально смотреть где появляется ошибка. Потом проверьте следующие моменты: отключаете ли вы сигнал тактовой частоты памяти в асинхронном стыке с процессором и ревизию вашего чипа на errata (были прецеденты с сыклонами младших ревизий). Потому что данные лежат в памяти, пере одическия читая данные из памяти, только читаем, видим искажегние, записи в этот момент не происходит. Частоты в асинхронном стыке нет, просто сам сигнал физически отсутствует. А вот про ревизию можно поподробней
|
|
|
|
|
Jun 22 2015, 11:19
|
Знающий
   
Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112

|
//------- RAM 2 ------ reg [11:0] ramA; reg [7:0] ramDa, ramDb; wire [7:0] ramQa, ramQb; reg [1:0] ramW, ramR; ram_2p ram_2p_inst ( .address_a (ramA), .address_b (ramA-1), .clock ( clk), .data_a (ramDa), .data_b (ramDb), .rden_a (1'b1), .rden_b (1'b1), .wren_a (ramW[1]), .wren_b (ramW[0]), .q_a (ramQa), .q_b (ramQb)); reg [7:0] cramQa; always @ (posedge clk)cramQa<=ramQa;
У меня почти такой же Cyclone-3. Использую 2-х портовую память из MegaWizard -> Memory Compiler -> RAM 2-PORT, и включаю в главный модуль проекта как описано выше. Все работает.
|
|
|
|
|
Jun 23 2015, 07:12
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
есть такая вероятность. https://www.altera.com/en_US/pdfs/literatur...s/es_cyciii.pdfЦитата The Cyclone III M9K embedded memory blocks may exhibit bit error in which the read bit is a 1 when the expected bit is a 0. The problem is caused by bitline coupling in the read output. The issue is rare and requires the presence of multiple conditions for the M9K block to be susceptible to the bit error. T
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
Jun 24 2015, 13:10
|
Участник

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

|
Цитата(krux @ Jun 23 2015, 10:12)  Спасибо, вот это похоже наш случай. А как можно подобное вылечить или хотябы отследить, ни кто не пробовал к блокам М9К контроль бита четности проводить.
|
|
|
|
|
Jun 25 2015, 06:43
|
Участник

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

|
Цитата(des00 @ Jun 24 2015, 17:42)  Для начала ИМХО стоило бы определить как в 2015 году вы купили чипы ревизии 2010 года (см. документ). А кто вам сказал что их в 2015 году купили, и мне кажется вопрос был не в том как работают совковые предприятия, а как решить уже сложившуюся ситуацию.
|
|
|
|
|
Jun 25 2015, 14:39
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(plis @ Jun 25 2015, 14:43)  А кто вам сказал что их в 2015 году купили, и мне кажется вопрос был не в том как работают совковые предприятия, а как решить уже сложившуюся ситуацию. В еррате же было решение. Альтера предлагала использовать большее количество блоков памяти меньшей разрядности, для этого нужно взять ква, который закрывает проблему конкретной ревизии конкретного чипа (а вот как искать этот конкретный ква, нужно вернуться в 2010 год). Ну и как самодельный вариант прикрутить того же хэмминга например, правда на это потребуется ресурс. В простейшем случае кода (7,4) расход памяти увеличится в 2 раза, зато кодер и декодер примитивнейшие. Работы на полчаса.
--------------------
|
|
|
|
|
Jun 25 2015, 18:13
|
Знающий
   
Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737

|
Цитата(plis @ Jun 25 2015, 09:43)  А кто вам сказал что их в 2015 году купили, и мне кажется вопрос был не в том как работают совковые предприятия, а как решить уже сложившуюся ситуацию. Кстати сказать, одним из вариантов решения может быть покупка схем новой ревизии с обоснованием того, что старая содержит ошибки, которые и подтверждаются официальным документом (errata). Я, конечно, не утверждаю, что это лучшее решение, но это тоже решение.
|
|
|
|
|
Jun 26 2015, 06:26
|
Участник

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

|
Цитата(des00 @ Jun 25 2015, 17:39)  В еррате же было решение. Альтера предлагала использовать большее количество блоков памяти меньшей разрядности, для этого нужно взять ква, который закрывает проблему конкретной ревизии конкретного чипа (а вот как искать этот конкретный ква, нужно вернуться в 2010 год). Ну и как самодельный вариант прикрутить того же хэмминга например, правда на это потребуется ресурс. В простейшем случае кода (7,4) расход памяти увеличится в 2 раза, зато кодер и декодер примитивнейшие. Работы на полчаса. Вот я и ищу какойнибудь пример Хэминга, только у меня 16 разрядная шина данных.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|