bve 1 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба В процессе работы над одним проектом выявилась следующая проблема: произвожу ввод данных из LINK-канала ADSP2106x, ПЛИС - ACEX1K50, питание - в норме. Ввод производится в блок ECB с использованием Альтеровской мегафункции altdpram в синхронном режиме. Пробовал разные варианты управления - завешивал WE на постоянное разрешение, давал один длинный импульс на пачку записываемых данных, давал пачку коротких импульсов с импульсом синхронизации записи в середине. При вводе набора данных с большим количеством единиц происходит пропуск комбинации FF, вместо нее запоминается предыдущее число ( получается два одинаковых числа ). Как можно победить сбои? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DLR 0 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба Сталкивался с чемто подобным, :( Какая рабочая частота? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bve 1 27 сентября, 2005 Опубликовано 27 сентября, 2005 · Жалоба Сталкивался с чемто подобным, :( Какая рабочая частота? <{POST_SNAPBACK}> Частота поступления четверок бит - 40 МГц, они защелкиваются в промежуточных D-триггерах, один раз за четыре прихода ( 10 МГц ) - генерируем импульс клока для записи в память. Длительность клока - примерно 8 нс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vicg 0 29 сентября, 2005 Опубликовано 29 сентября, 2005 · Жалоба Скорее всего проблемы с синхронизацией. 1. Подзадержать clk до относительно данных ( на несколько наносекунд). 2. сделать дополнительное защелкивание данных во входных буферах ( IOB) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bve 1 29 сентября, 2005 Опубликовано 29 сентября, 2005 · Жалоба Скорее всего проблемы с синхронизацией. 1. Подзадержать clk до относительно данных ( на несколько наносекунд). 2. сделать дополнительное защелкивание данных во входных буферах ( IOB) <{POST_SNAPBACK}> А причем здесь все единицы? Ведь именно когда их большой поток ( т.е. нибблы ( это четыре разряда данных ) идут в виде F с прослойками 1 нолика в одном из разрядов ) и возникает эффект дублирования именно ниббла с ноликом вместо ниббла F ). При этом количество принятых нибблов - правильное. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vicg 0 30 сентября, 2005 Опубликовано 30 сентября, 2005 · Жалоба А причем здесь все единицы? Ведь именно когда их большой поток ( т.е. нибблы ( это четыре разряда данных ) идут в виде F с прослойками 1 нолика в одном из разрядов ) и возникает эффект дублирования именно ниббла с ноликом вместо ниббла F ). При этом количество принятых нибблов - правильное. <{POST_SNAPBACK}> В поставленном вопросе обратный эффект не наблюдается, т.е. когда большой поток нулей и есть прослойка 1 единицы, то она не дублируется.( этот случай не упомянут). Значит в системе имеет место некая несимметричность на шине данных, т.е. время перехода 1->0 не равно времени перехода 0->1. Фронт (или срез) clk ( по которому происходит защелкивание инфы) получается то раньше то позже смены состояния шины данных (а это и есть несинхронность ), в результате чего и появляется ошибка. Поэтому: 1. Подзадержать clk до относительно данных ( на несколько наносекунд). 2. сделать дополнительное защелкивание данных во входных буферах ( IOB) 3. Проинвертировать clk. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyF 0 7 октября, 2005 Опубликовано 7 октября, 2005 · Жалоба Надеюсь, путь земли между DSP и FPGA короткий и широкий? И еще проверьте, все ли в порядке с контактом у ножек земли рядом с портом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tegumay 4 8 октября, 2005 Опубликовано 8 октября, 2005 · Жалоба а шина подтянута к чему? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bve 1 10 октября, 2005 Опубликовано 10 октября, 2005 · Жалоба Земля и питание разведены в отдельных слоях, питание - 3,3 В, чистое. Источник питания нагружен на 3 А при номинале 5А. Строб двигал - толку нет. Как указать, чтобы триггера размещались в блоках IO? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
popeye 0 10 октября, 2005 Опубликовано 10 октября, 2005 · Жалоба Как указать, чтобы триггера размещались в блоках IO? Назначьте опции Fast Input Registers или Fast Output Registers для нужных входов или выходов соответственно через Assignment Editor. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 3 10 октября, 2005 Опубликовано 10 октября, 2005 · Жалоба “Ввод производится в блок 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться