Jump to content

    

Kluwer

Участник
  • Content Count

    310
  • Joined

  • Last visited

Everything posted by Kluwer


  1. Цитата(DevL @ Mar 12 2012, 12:49) могу проверить у себя , если есть желание расшарить проект.... Intel® Core™ i7 CPU X 980 @ 3.33GHz Короче, докладываю: по моему требованию на работе купили новый комп тоже с i7 и 8Гбайт ОЗУ. Ну всё, конечно, гораздо резвее зашевелилось. Беру простейший проект, как указано выше, состоящий всего из двух выводов, соединённых инвертором. Решил выяснить как скорость сборки зависит от выбора камня. Выбираем Max II, проект собирается за 6 сек, выбираем Cyclone II - около 20сек, выбираю свой камень Stratix IV - больше минуты! Ничего себе! Причём я не особо въезжаю, с чего такая коллосальная разница? Кстати, в моём основном проекте больше всего синтезатор тормозит почему-то даже не на самом фильтре, а на укладке его коэффициентов в память камня.
  2. Цитата(wert101 @ Mar 8 2012, 18:21) Подробнее о Вашем опыте можете рассказать? Да чего ж нельзя... Вкратце так: для радиолокационного проекта, в котором в качестве внешней подсветки используется глонассовский сигнал нужно было сделать макет. Выбрали отладку со Stratix IVGX (с дуру!). Обрадовавшись ёмкости этого камня и т.к. надо было побыстрей, для захвата сигнала решено было использовать не корреляторы, а СФ для ПСП-сигнала. Плюс в том, что не надо поиск по задержке осуществлять, а минус в том, что СФ 2000 порядка в параллельной форме (БПФ мы использовать даже и не пытались) да ещё и с перегружаемыми коэффициентами жутко долго собирается и поглощает львиную долю ресурсов даже в таком мощном камне. А для сопровождения уже обнаруженного по доплеру и задержке сигнала нужна уже несколько другая структура, но обе структуры в камень уже не лезут. Появилась идея после обнаружения сигнала перезаливать ПЛИСину. Да вот только перезаливать её приходится с компа, а за время заливки, как показывают расчёты сигнал по доплеру запросто можно потерять. Вот и стало обидно, что нельзя для ПЛИСины готовить прошивку из частей.
  3. Цитата(bogaev_roman @ Mar 7 2012, 13:31) А в это я не верю. Киньте проект - прогоню у себя на машине. Так чего кидать? Я ж написал выше:"две ноги, соединённые через инвертор". Вот и всё. Собирается около 10мин, больше всего времени поедает анализатор - около 6 мин, дальше "впихиватель" - минуты три, всё остальное - около минуты. Причём все настройки оптимизации стоят по минимумам. Причём от камня, походу, не зависит. Тут надо было сделать цифровой генератор, состоящий из трёх счётчиков на базе старой платки с максиной 3128. Max Plus II его упихать не смог. Пришлось попросить помощи у квартуса 11. Квартус его впихнул, но "скрипел мозгами" минут 50. Кстати, на том же компе стоит мой любимый квартус девятой версии, так он просто летает. Но я понял, что ни у кого такой проблемы нет. Ладно, будем искать дальше. Цитата(bark @ Mar 7 2012, 17:13) у меня сейчас за 7-8 минут собирается проект с локалкой (МАС+аппаратная реализация протоколов до UDP) + Вау! Аппаратная реализация UDP- это круто! Представляю какая у вас там машина сотстояний залита и сколько вы её отлаживали! Это ж надо уметь сначала принимать и обрабатывать ARP-запросы, проверять IP-адреса и порты, подсчитывать CRC,плюс куча всякой другой "если-то...". Если не секрет, зачем такие сложности понадобились? Не проще было на проце это всё сделать?
  4. Цитата(bogaev_roman @ Mar 7 2012, 11:53) Дело не в перерыве, а в алгоритме и кристаллах. Я уверен, что фильтр 2000 порядка раньше вообще бы не был реализован на ПЛИС. Ну бог с ним с этим фильтром! А собирать пустой проект почти 10 мин, это нормально?
  5. Цитата(Kuzmi4 @ Mar 7 2012, 10:00) 2 Kluwert Параметры компа в студию и Resource Usage после P&R для проекта Да пожалуйста: Core 2 Duo 3ГГц, ОЗУ 4Гб. А от ресурсов проекта зависит достаточно интересно. Делаю элементарный проект, две ножки соединённые через инвертор. Камень - Stratix IVGX. Проект собирается 9мин 38 сек. Далее, открываю проект, в котором имеется два скоростных фильтра 61-го порядка. Проект собирается 10мин 50 сек. Правда, если открыть проект, в котором фильтр 2000-порядка о тут да... квартус крепко задумывается, часа на 1,5 Цитата(bogaev_roman @ Mar 7 2012, 10:17) Полтора часа это еще ничего - у меня иногда часов на 6 А как же тогда работать? Нашел ошибку - и на завтра, т.к. уже рабочий день кончился? Я просто имел перерыв в работе с Альтерой и перескочил сразу через несколько версий Квартуса. Но как-то раньше всё это компилилось влёт и то, что у меня сейчас на компе творится вгоняет меня в грусть
  6. Цитата(Stewart Little @ Mar 5 2012, 17:28) Присоединяюсь к уважаемому iosifk - не понятно, зачем оно Вам надо? А я,как раз, с Иосифом не согласен. Если бы действительно была возможность подгружать собранные модули на кристалл по частям, а не единым .sof-файлом было бы замечательно. Можно бы было на ходу менять конфигурацию внешних интерфейсов, например, не останавливая работу, скажем, встроенного проца. Конкретный пример: ГЛОНАСС-приемник. После того как вы обнаружили сигнал, вам нужна совершенно другая конфигурация для его сопровождения. Но, как показал опыт, за то время, что вы будет перезаливать весь кристалл новой прошивкой, на подвижном носителе (например, самолете) вы гарантированно сигнал по доплеру потеряете.
  7. Было и не такое. Увы этот убогий modelsim насквозь глючный. Лучше перейти на что-нибудь другое.
  8. Коллеги, нужен ваш совет в следующем деле. Иммется проект в IAR по sam7x. В режиме отладке все нормально, заливается прямо из IAR Seeger'овским программатором SAM-ICE без проблем. Долшло, наконец, дело до серии. Нужно заливать бинарник без помощи IAR'а. Выгоняю из IAR'а бинарник, заливаю c помощью Атмеловской программулины, успешно заливается. Но после заливки никаких признаков жизни МК не подает. Гнал из IAR'а hex, преобразовывал с помощью Hex2bin, тот же результат. Что я делаю не правильно?
  9. "Нелюбимые" Ethernet-пакеты

    Цитата(vitko @ Feb 3 2012, 14:00) Сеть довольно нагруженная, но разницы в интенсивности траффика днем и вечером нету. Может кто-то объяснить этот эффект? Похожая фигня была из-за настроек сети. Админы устраивали ряд препонов в рабочее время, что бы народ не гонял по сети фильмы, не подсоединялся к цветному принтеру и т.д. Причём настраивали так, что в конце рабочего дня эти препятствия автоматически отключались. Возможно у вас та же хрень.
  10. Вот, если кому интересно. Была задача сделать "виртуальный" последовательный порт на плате с ARM. На PCке программка использовала, есс-но, сокет-клиент (по-русски говоря, "розетку"), а на ARMе - микроIP, который, по-сути, и есть реализация розетки только на микроконтроллере. И что интересно, выяснилось, что если посылать пустой пакет (т.е. TCP/IP-пакет без флажка PSH), то та розетка, которой послан этот пакет "подвисает". Т.е. идет ответ пакетом с флажком ACK, но ни одно из событий не срабатывает, кроме Connected. Ни WriteData, не ReadData и т.п. на компе и не newdata, acked и т.д. в микроIP. Самое обидно, что не срабатывает и событие poll. Так что вывести обе розетки из этого состояния можно только принудительным закрытием соединения (Closed или abort) из остальной части программы. Так что, к сожалению, при использовании микроIP хотя бы один байт всегда посылать нужно и максимальная пропускная способность TCP-соединения снижается до 1459 байт/пакет. Если этот байт критичен, то придется лезть ручками в потроха микроIP. На мой взгляд, овчинка явно выделки не стоит, но на вкус и цвет
  11. Наряду с другими выводами в проекте используются выходы с названиями user_led[15..0]. Распихиватель квартуса упорно забивает на назначение выводов для них (хотя в главном .bdf-файле выводит правильные назначения). Причем, в pin-файле он даже пишет их без скобок, например, user_led0, т.е. он их еще и почему-то не воспринимает как группу. Причем, только для этих выводов! Например, в проекте есть входы с названиями user_pb[7..0], но никаких проблем нет. Естественно, сличали назначения для выводов (напряжения, тип и т.д.) в pin planner'е - все нормально. Тем более, что файл с назначениями был свистнут из родного альтеровского проекта для этой же платы и этого же камня. Может кто может прояснить происходящее?
  12. Цитата(andrew_b @ Jan 16 2012, 08:31) Просто так ничего не происходит. В логах что есть по этим пинам? Да есть. В предупреждениях пишется нижеследующее: Warning: Converted elements in bus name "user_led" using legacy naming rules. Make any assignments on the new names, not on the original names. Но если, например, вместо user_led[0] поставить в имени вывода user_led0 ничего не поменяется: квартус считатет, что этот вывод не назначен пользователем. А прописывать еще раз все выводы как user_ledx в ass.editor ну как-то не спортивно. Да и не факт, что это проблему решит. Короче, пока суть да дело, я сам нашел ответ, который решает проблему но, правда, не до конца объясняет суть. Короче, трабл в понимании этих самых квадратных скобок. Для решения проблемы нужно просто установить в Assignments menu -> Settings -> Analysis and Synthesis Settings -> More Settings -> установить значение Block Design Naming в Quartus II (по умолчанию стоит в auto). Правда, почему он ругался на user_led[x] и не ругался, например, на user_pb[x] так и осталось загадкой.
  13. Цитата(bs_p @ Dec 19 2011, 20:52) Какие способы разделения аддитивной смеси сигналов бывают? (Кроме частотного). Смотря что вы понимаете под "разделением". Если задачу обнаружения и (или) обнаружения-измерения параметров, тогда см. соответствующую главу из Сколника или Фальковича. Решение там сводится к следующему. Если разделение ведется на фоне БГШ, то сначала сигналы ортогонализируются, затем на каждый из получившихся сигналов ставится либо СФ (набор СФ), либо (параметризованный) вычислитель ВКФ (как кому нравиться). Если шум не есть БГШ, то перед этим всем еще следует выбелить шум соответствующим фильтром. Если же вам нужно получить сигналы в так сказать "первозданном" виде, то, таки да, частотное или временное разделение. Т.к., чудес не бывает, и если у вас сигналы перекрываются по времени и (или) спектру, то выделить один из сигналов в "чистеньком" виде вам не удастся.
  14. Цитата(des00 @ Dec 22 2011, 15:51) LPF = Low Pass Filter Спасибо, я знаю, что такое LPF Я имею в виду где он в программе реализован. Я вижу только вот такое странное накопление I[MsCount] += Signal[i]*sin(Faza); с длиной аж SignalLength, причем слева индексируется переменной MsCount, а справа - i. Может я чего не понимаю, но мне кажется странной такая реализация ФНЧ.
  15. Цитата(optimus @ Dec 22 2011, 07:03) народ кто-нибудь реализовывал алгоритм классического цифрового ФАПЧ из Незами (глава 3.9). Схема представлена ниже. Пробовал построить модель на С с входным сигналом синуса - частота не захватывается. Файл с сишным кодом прикладывается А чего вас, молодежь, так тянет на импортные источники, в родном гос-ве уже книги перестали издавать? Кстати сказать, схема на рисунке не рабочая: в нижней ветви петлевого фильтра стрелки явно куда-то не туда смотрят А по вашей программке, ну, начнем с того, где ФНЧ после умножителей? Я вижу вот это: I[MsCount] += Signal[i]*sin(Faza); Q[MsCount] += Signal[i]*cos(Faza); и далее (в цикле) Atan = fmod(atan(Q[MsCount]/I[MsCount]),2.*M_PI); А ФНЧ-то где? Кстати, на схеме действительно АПЧ, но в основе лежит именно ФАПЧ, т.к. система (очевидно) с астатизмом I порядка, следовательно, будет следить с точностью до начальной фазы.
  16. Цитата(Oleg Victorovich @ Dec 21 2011, 21:21) Необходимо выбрать частоту дискретизации сигнала... Уважаемый, вы хоть о теореме Котельникова-то слышали? У вас на экране - обыкновенная затухающая гармоника, т.е. амлитудно-модулированное колебание. Ширина спектра такого сигнала (dF) определяется временем затухания (по вашей фотке его можно оценить только очень грубо) плюс перенос этого спектра на частота вашей гармоники (Fd, по вашему снимку не вполне понятно сколько), которая определяется резонансом той системы на выходе которой вы это все меряете. Короче, выбираете Fd > Fн+0.5*alpha*dF и взяв alpha = 1,2-1,3 будет вам счастье в виде 100% точности восстановления с точностью до знака после запятой. А коли, наверняка, Fн >> dF в вашем случае, то можно сьюзать и обобщенную теорему Котелникова, т.е. понизить вышевычисленную Fd в целое число раз. Короче, учите матчасть.
  17. Как говорится, на заметку разработчику. Столкнулись тут с проблемой. Был мелкосерийный девайс на базе at91sam7x256. Под него был склад с камнями 2008-2009-го годов рождения. Склад закончился, купили новые камни (2011 года производства) и с удивлением обнаружили, что давно отлаженный софт на них не работает. Оказалось, что старые камни были с буквой "а" на конце, новые - с буквой "б". Скачали свежее описание с Atmel'а и в разделе изменений (errata) нашли, что у камней с буквой "б" нужно два раза подряд сбрасывать SPI-управитель, иначе он в режиме с непостоянным NPCS работать не желает. Проблема решилась двумя подряд *AT91C_SPI0_CR = AT91C_SPI_SWRST; Надеюсь, кому-нибудь это сэкономит время
  18. Цитата(sazh @ Nov 22 2011, 15:21) Если кристалл этот пин как lvds поддерживает, пин планер сам вставит пин, на который должен приходить (n) генератора Не, это все сделано. Вопрос в том, как его в схему (главный файл проекта - графический .bdf, ну привык я так). Подключаю его к функции ALTIOBUF, устанвливаю diff mode, он говорит типа хочу обычные выводы, не разностные. Использую примитив alt_io_buf, тот же эффект. Примитив alt_io_buf_diff не поддерживается для stratix'а IV. Короче, вроде совсем простая задачу, а нигде ответа найти не могу.
  19. До недавнего времени для устранения косяков на разработанных платах, особенно если надо было подпаяться непосредственно к ногам мелконогих микрух использовали специальны провод. Провод тонкий (сечение около 0,05мм^2), посеребренный, в полупрозрачной тонкой изоляции синего цвета. Его достоинства в том, что он не скользил в руках, не пружинил. Изоляция идеально легко снималась и можно было паять перемычки даже между ногами QFP-микрух. Но, беда в том, что провод кончился. А найти его не можем. Может, кто знаком с таким проводом и может назвать его тип или какие другие данные?
  20. Цитата(novartis @ Oct 3 2011, 20:20) Что совсем никто не мучил DSP_Builder? Если вы мне опишите, как полечить DSP_Builder для 11-го квартуса, то я может чем и смогу помочь, т.к. у меня недавно отладка по Stratix IV появилась.
  21. Цитата(Zelepuk @ Oct 2 2011, 00:05) очень странно. Я используюфильтр Фарроу Уважаемый, Zelepuk, вы думаете все сходу знают, что такое фильтр Фарроу? Фильтров существует сотни. Если вы сообщите более подробную информацию о фильтре и начальных данных (т.е., что подается на вход в отсутствие пачек отсчетов), то можно будет посмотреть.
  22. Second Expectation Function

    Цитата(Vitaliy_ARM @ Oct 5 2011, 13:06) Всем доброго времени! Подскажите, что это за функция для комплексных чисел, может есть русский аналог этого названия? Как ее считать? Возможно речь идет о втором моменте случайной величины. Поскольку, второй центральный момент есть дисперсия и вряд ли они бы её так называть стали, то предположу, что это возможно второй нецентральный момент, т.е. без вычета МО.
  23. Цитата(Sergey Makarov @ Sep 14 2011, 16:45) Добрый день! Стоит задача осуществить быстрое преобразовние Фурье для 500 отсчетов. Аппаратно DSP поддерживает быстрое преобразование по модулю 2. Вопрос, как довести кол-во точек до 512? Достаточно ли заполнить недостающие значения нулями? Сильно ли исказится результат преобразования после такого допущения? Не сильно, но исказится. Дополнение нулями во временной области), как следует из свойств ПФ приведет к тому, что полученный спектр будет являться сверткой настоящего спектра (т.е. спектра 500-отсчетного исходного сигнала) и ПФ от прямоугольного окна (s_i = 1, i=0:499 и s_i = 0, i=500:511). Спектр этого окна вы отлично знаете - это функция sinc. Поскольку окно очень широкое, то ширина функции sinc будет чуть шире одного отсчета. Другими словами, спектр после дополнения нулями "слегка размажется".
  24. Цитата(petrov @ Sep 29 2011, 18:01) В них нету цифровой обработки, чисто аналоговое вычитание, туфта в общем. Не горячитесь, коллега, вам просто, похоже, попадались дешевки. В серьезных наушниках с АП очень даже есть DSP, поскольку в помещении, вообще говоря, нужно подавлять еще и реверберацию, что требует, по крайней мере, декорреляции приемных каналов (конечно, если мы говорим о недешевых наушниках с АП, где имеются несколько микрофонов). А в китайских творениях, да, стоит схема а-ля эхоподавление, от которой толку как от ультразвука против комаров Цитата(syoma @ Sep 29 2011, 18:22) Спасибо за ссылку. Но чего-то я тут мало сложного вижу. Если говорить о настройке звука, то ничто не мешает каждый источник включать отдельно и определять по микрофону интерфернтную картинку от него. Ну а затем все вместе пересчитать. Пока я вижу только сложную математику, но ничего невозможного. И совершенно правильно не видите и математика там не особо сложная. Вам интерференционную картину считать и не зачем! Вам достаточно расставить ряд микрофонов по салону и считать, что амплитуды сигналов на выходе микрофонов (Am) и амплитуды сигналов, подводимых динамиками (Ad) связаны через некоторую матрицу (Z). Т.е. Am = Z*Ad, зависящая, естественно от частоты f. А далее, все зависит от задачи, которую вы хотите решать. Например, хотите учесть сидящих в салоне людей, так что бы картину звучания изменилась минимально. Для частот выше 3-4КГц, наличие людей в салоне уже очень надо учитывать. Тогда вы просто замеряете матрицу при наличии людей в салоне (обозначим Zp) для дискрета частот. И далее просто корректируете амплитуды на динамиках Zp^(-1)*Z, если грубо компенсировать, либо запускаете итерационную подстройку, что бы максимально приблизится к исходной картине. А для этих расчетов ЦСП вам ой как понадобится!
  25. На самом деле, ваш метод, как и многие другие, имеет право на существование. По-сути, он является очередным подоптимальным методом оценки частоты гармоники. Как правильно написал SPACUM, эффективность вашего решения не известна. Что бы понять как оно будет работать, нужно, хотя бы численно (хотя, в вашем случае, вроде не вижу особых проблем посчитать и аналитически) сравнить ваш метод, эффективный метод, полученный методом МП и значением границы Рао-Крамера для оценки частоты гармоники в шуме. Если окажется, что ваш метод в определенном диапазоне ОСШ близок к оптимуму, то - и прекрасно, будем иметь его в виду. А пока - это не более, чем эвристика.