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

 
 
> Сбои в ПЛИС при большом количестве 1, Пропадание информации при обмене
bve
сообщение Sep 27 2005, 07:26
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 316
Регистрация: 20-02-05
Из: Ленинградская обл.
Пользователь №: 2 765



В процессе работы над одним проектом выявилась следующая проблема:
произвожу ввод данных из LINK-канала ADSP2106x, ПЛИС - ACEX1K50, питание - в
норме. Ввод производится в блок ECB с использованием Альтеровской мегафункции altdpram в синхронном режиме. Пробовал разные варианты управления - завешивал WE на постоянное разрешение, давал один длинный импульс на пачку записываемых данных, давал пачку коротких импульсов с импульсом синхронизации записи в середине. При вводе набора данных с большим количеством единиц происходит пропуск комбинации FF, вместо нее запоминается предыдущее число ( получается два одинаковых числа ). Как можно победить сбои?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 10)
DLR
сообщение Sep 27 2005, 08:02
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 384
Регистрация: 15-03-05
Из: г. Москва
Пользователь №: 3 371



Сталкивался с чемто подобным, sad.gif
Какая рабочая частота?
Go to the top of the page
 
+Quote Post
bve
сообщение Sep 27 2005, 16:55
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 316
Регистрация: 20-02-05
Из: Ленинградская обл.
Пользователь №: 2 765



Цитата(DLR @ Sep 27 2005, 11:02)
Сталкивался с чемто подобным, sad.gif
Какая рабочая частота?
*

Частота поступления четверок бит - 40 МГц, они защелкиваются в промежуточных
D-триггерах, один раз за четыре прихода ( 10 МГц ) - генерируем импульс клока для записи в память. Длительность клока - примерно 8 нс.
Go to the top of the page
 
+Quote Post
vicg
сообщение Sep 29 2005, 09:27
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 31
Регистрация: 8-12-04
Из: беларусь, россия
Пользователь №: 1 410



Скорее всего проблемы с синхронизацией.
1. Подзадержать clk до относительно данных ( на несколько наносекунд).
2. сделать дополнительное защелкивание данных во входных буферах ( IOB)
Go to the top of the page
 
+Quote Post
bve
сообщение Sep 29 2005, 12:58
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 316
Регистрация: 20-02-05
Из: Ленинградская обл.
Пользователь №: 2 765



Цитата(vicg @ Sep 29 2005, 12:27)
Скорее всего проблемы с синхронизацией.
1. Подзадержать clk до относительно данных ( на несколько наносекунд).
2. сделать дополнительное защелкивание данных во входных буферах ( IOB)
*

А причем здесь все единицы? Ведь именно когда их большой поток ( т.е. нибблы ( это четыре разряда данных ) идут в виде F с прослойками 1 нолика в одном из разрядов ) и возникает эффект дублирования именно ниббла с ноликом вместо ниббла F ). При этом количество принятых нибблов - правильное.
Go to the top of the page
 
+Quote Post
vicg
сообщение Sep 30 2005, 08:02
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 31
Регистрация: 8-12-04
Из: беларусь, россия
Пользователь №: 1 410



Цитата(bve @ Sep 29 2005, 16:58)
А причем здесь все единицы? Ведь именно когда их большой поток ( т.е. нибблы ( это четыре разряда данных )  идут в виде F с  прослойками 1 нолика в одном из разрядов )  и возникает эффект дублирования именно ниббла с ноликом вместо ниббла F ). При этом количество принятых нибблов - правильное.
*

В поставленном вопросе обратный эффект не наблюдается, т.е. когда большой поток нулей и есть прослойка 1 единицы, то она не дублируется.( этот случай не упомянут). Значит в системе имеет место некая несимметричность на шине данных, т.е. время перехода 1->0 не равно времени перехода 0->1. Фронт (или срез) clk ( по которому происходит защелкивание инфы) получается то раньше то позже смены состояния шины данных (а это и есть несинхронность ), в результате чего и появляется ошибка. Поэтому:
1. Подзадержать clk до относительно данных ( на несколько наносекунд).
2. сделать дополнительное защелкивание данных во входных буферах ( IOB)
3. Проинвертировать clk.
Go to the top of the page
 
+Quote Post
Sergey'F
сообщение Oct 7 2005, 16:39
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 17-09-05
Из: Москва
Пользователь №: 8 660



Надеюсь, путь земли между DSP и FPGA короткий и широкий? И еще проверьте, все ли в порядке с контактом у ножек земли рядом с портом.
Go to the top of the page
 
+Quote Post
tegumay
сообщение Oct 8 2005, 22:09
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 264
Регистрация: 16-09-05
Из: Москва
Пользователь №: 8 640



а шина подтянута к чему?


--------------------
;X
Go to the top of the page
 
+Quote Post
bve
сообщение Oct 10 2005, 08:35
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 316
Регистрация: 20-02-05
Из: Ленинградская обл.
Пользователь №: 2 765



Земля и питание разведены в отдельных слоях, питание - 3,3 В, чистое.
Источник питания нагружен на 3 А при номинале 5А.
Строб двигал - толку нет. Как указать, чтобы триггера размещались
в блоках IO?
Go to the top of the page
 
+Quote Post
popeye
сообщение Oct 10 2005, 10:13
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 92
Регистрация: 18-08-05
Пользователь №: 7 750



Цитата(bve @ Oct 10 2005, 12:35)
Как указать, чтобы триггера размещались
в блоках IO?

Назначьте опции Fast Input Registers или Fast Output Registers для нужных входов или выходов соответственно через Assignment Editor.
Go to the top of the page
 
+Quote Post
sazh
сообщение Oct 10 2005, 10:22
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



“Ввод производится в блок ECB с использованием Альтеровской мегафункции altdpram в синхронном режиме. Частота поступления четверок бит - 40 МГц, они защелкиваются в промежуточных
D-триггерах, один раз за четыре прихода ( 10 МГц ) - генерируем импульс клока для записи в память. Длительность клока - примерно 8 нс. Строб двигал - толку нет. Как указать, чтобы триггера размещались в блоках IO?”

Судя по этим строчкам в проекте надо копать. Использовать altsyncram, altdpram используется для обратной совместимости со старыми проектами (причина конечно не в этом). Как Вам удалось 8 нс получить? Значит работа на задержках. Несинхронность. Многоклоковая синхронизация. Посмотрите рапорт временного анализатора. Неужели ничего в красном цвете нет по временам установки и удержания сигналов управления и данных. И размещения регистров в блоках I/O ничего не даст. Что Вам +- 3 нс при наличии строба сопровождения. Что мешает работать на частоте 40 мгц с периодом 25 нс. Ацех это потянет.

A logic option that implements an output register in an I/O cell that has a fast, direct connection to an I/O pin. Turning on the Fast Output Register option can help maximize I/O timing performance, for example, by permitting fast clock-to-output times. Turning this option off for a particular signal prevents the Fitter from implementing the signal automatically in an I/O cell.
This option is ignored if it is applied to anything other than a register or an output or bidirectional pin fed by a register. This option can be set in the Assignment Editor (Assignments menu). This option is available for ACEX 1K, APEX 20K, APEX 20KC, APEX 20KE, APEX II, Cyclone, Cyclone II, Excalibur, FLEX 10K, FLEX 10KA, FLEX 10KE, HardCopy Stratix, MAX II, Mercury, Stratix, Stratix GX, and Stratix II devices
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 14:33
Рейтинг@Mail.ru


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