MisterDi 0 22 марта, 2012 Опубликовано 22 марта, 2012 · Жалоба Отлаживаю свой вариант прошивки для осциллографа Вей-Куна (www.ourdev.cn) и столкнулся с непонятным для меня эффектом. При подаче а вход синусоидального сигнала с частотой 1МГц от генератора Hantec DSO-8060 на экране наблюдаю разрывы картинки (error.gif). Если частоту генератора изменить в небольших пределах, картинка становиться нормальной (normal.gif). Еще больше меня смущает факт, что при введении задержки в цикл чтения буферного ОЗУ количество разрывов на картинке увеличивается. Signal-Tap показывает нормальное формирование адресов чтения и записи. TimeQuest все клоки видит и в рабочем диапазоне температур слаков не выдает. В связи с изложенным вопрос: что происходит в системе? и как с этим можно бороться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Builder 0 23 марта, 2012 Опубликовано 23 марта, 2012 · Жалоба TimeQuest все клоки видит и в рабочем диапазоне температур слаков не выдает. В связи с изложенным вопрос: что происходит в системе? и как с этим можно бороться. Вы уверены что в TimeQuest всё описали? Кроме клоков наружные времена не забыли описать? Ине совсем понятно что и как подаётся, на выходе DAС стоит, а на входе импульсы? добавил: 99.999% что или некорректно описали переходы между временными доменами или времянка не коректно и не полно задана. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MisterDi 0 23 марта, 2012 Опубликовано 23 марта, 2012 · Жалоба Вы уверены что в TimeQuest всё описали? Кроме клоков наружные времена не забыли описать? Ине совсем понятно что и как подаётся, на выходе DAС стоит, а на входе импульсы? Сигнал на вход подается от генератора а на экране моего девайса синус рисуется с разрывами. Такое впечатление будто "проскальзывает" счетчик адреса чтения или записи. Больше похоже на ошибку чтения, т.к. "разрыв" смещает картинку на 16 точек назад и смещение достоточно велико. добавил: 99.999% что или некорректно описали переходы между временными доменами или времянка не коректно и не полно задана. структура проекта: - Двухпортовое ОЗУ на 16К байт - На один порт подключен счетчик семплов на линии адреса и АЦП AD9283 на данные. - На второй порт - НИОС-процессор через PIO - Управление счетчиком семплов - PIO - Программа НИОСа храниться во внешнем SDRAM c тактовой частотой 100МГц кэш команд - 2К кэша данных нет. Возможно я не прав но мне кажеться что временные домены в этом случае полностью разделены. Запись в ОЗУ семплов тактируется отдельно, чтение из ОЗУ тактируется тем же источником, что и НИОС-процессор. В оригинальном проекте никаких констрейнов по входам нет, впрочем как и по остальным выводам. Попробую добавить ограничения по входам. О результатах сообщу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Timmy 1 23 марта, 2012 Опубликовано 23 марта, 2012 · Жалоба Возможно, значение счётчика сэмплов или ещё чего-нибудь из входного клок домена передаётся в НИОСовский без промежуточного преобразования в код Грея, и от этого глюки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MisterDi 0 26 марта, 2012 Опубликовано 26 марта, 2012 · Жалоба передаётся в НИОСовский без промежуточного преобразования в код Грея, Впервые слышу про необходимость преобразования в код Грея. Где про это можно прочитать по-подробнее? Насколько я понимаю это преобразование призвано уменьшить переходные процессы на шине при переключении? Передача данных из буфера семплов в основную память выполняется через порты ввода-вывода: // read data to memory IOWR_ALTERA_AVALON_PIO_DATA(MEM_RD_BASE, 1); for(j=addr_offset;j<addr_offset+(2*trig_point);j++) { IOWR_ALTERA_AVALON_PIO_DATA(MEM_ADDR_BASE, j); // delay_us(1); mem_data[j-addr_offset]=IORD_ALTERA_AVALON_PIO_DATA(MEM_DATA_IN_BASE); } IOWR_ALTERA_AVALON_PIO_DATA(MEM_RD_BASE, 0); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 27 марта, 2012 Опубликовано 27 марта, 2012 · Жалоба глупость ляпнул, стер... По виду похоже, что входной счетчик не с нуля в память писать начинает либо логика счетчиков записи и считывания не стыкуется... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Timmy 1 1 апреля, 2012 Опубликовано 1 апреля, 2012 · Жалоба Впервые слышу про необходимость преобразования в код Грея. Где про это можно прочитать по-подробнее? Насколько я понимаю это преобразование призвано уменьшить переходные процессы на шине при переключении? Код Грея используется, например, в DC FIFO для быстрой передачи последовательно меняющихся счётчиков между асинхронными клок доменами. Если у вас клок чтения данных АЦП асинхронный относительно Авалона, тоже нужно что-то подобное. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться