Jump to content

    

Kluwer

Участник
  • Content Count

    289
  • Joined

  • Last visited

Everything posted by Kluwer


  1. Никогда не мог понять желание всё подряд писать руками и обвешивать атрибутами синтеза, к-рые, на самом деле синтезатор Квартуса игнорит только в путь. Для таких задач специально сделаны удобные и вылизанные IP-коры или мегафункции. Всё можно настроить как из удобного gui, так и скриптом. Всё грамотно подключается и прописывается, генерятся примеры, поддержка в Моделсиме уже на готове. Зачем каждый раз велосипед изобретать?
  2. В окне "Tasks" есть кнопка "Customize...". С помощью неё делаете на базе одного из существующих наборов нужный вам и сохраняете под вменяемым именем. При пересборке проекта просто выбираете его в списке "Flow" окна "Task".
  3. Кстати, вспомнил название этого процесса: quartus_map.exe. Он, причём, показывается в Task Manager'е не как дочерний от Квартуса и мегавизарда, а там запускается отдельная Джава-машина и от неё наследует этот процесс. Нужно дождаться, когда он покажет нулевую загрузку процессора и прибить его. А вот если вы при генерации корки поставите флажок "генерить список цепей для сторонней EDA", то там запустится ещё и процесс quartus_eda.exe, точно так же повиснет, но его таким же способом не перезапустить. Так что тому, кому нужно генерить список цепей для каих-то сторонних САПР сочувствую.
  4. Вы просто не понимаете, что такое DSP builder.
  5. Совершенно аналогичная штука - это DSPbuilder для Моделсима. И да, уже много лет её использую для разработки блоков обработки сигналов под ПЛИСины. Причём, это реально удобно, если, например, сравнивать с моделированием в том же Modelsime/Questasim'е. Преимущества: 1) графическое представление для человека завсегда удобнее "сухого" кода; 2) нативная интеграция с Матлабом (тут же можно вручную или с помощью скриптов сопоставить результат моделирования с теоретическим, расчитать всякие хар-ки, типа, статистик, спектров и т.д.); 3) простота замены блоков/смены параметров, импорта внешнего кода, матлабовских скриптов, короче юзер-френдли среда. Но есть и недостатки: 1) графика даже относительно небольших блоков может легко не вместиться даже в 2 экрана; 2) очень медленно (Матлаб всё-таки). У меня, например, сжатие на базе альтеровских БПФ на длине 3х-4х-зондирований - уснуть можно; 3) довольно неудобное отображением цифровых данных; 4) сложно документировать и передавать такой проект: DSPbuilder генерит громоздкий и слабочитаемый код. Руками этот код сопровождать сложно, а разрабов, владеющих Матлабом/Симулинком, мягко говоря, не много; 5) моделировать реально только куски (пусть и важные). Загнать туда реально большую систему (например, тракт радиолокатора от ацп до MTI-фильтров хотя бы - а это не так и много) - не реально. Если вы даже её и нарисуете и по-блочно отладите, то потом умрёте ждать рез-ов моделирования. Уже проще в живом железе собрать. Вот какие-то такие у меня впечатления от подобных штучек.
  6. Во-первых, не лоджиклок, ни фиксация партиции в положении "post-fit" не гарантирует вам непереразводки вашего модуля: как только вам нужно провести доп.верёвки к вашему модулю (хотя бы к тому же STP или MCE), он может изменить раскладку до полной неузнаваемости. Но, лоджиклок всё-таки, по нашей практике, более полезен, тем более, когда у вас такая невменяемая частота клока. Собственный пример: у нас с АЦП идёт ddr-сигнал, частота клока 240, но, т.к. ddr, то, де-факто 480. Дальше - квадратурный 2-ступенчатый детектор, что бы как можно быстрее понизить клок. Ежу понятно, что нужно ставить всю схему как можно ближе к выходам ddr-регистров. Нифига! Даже если умышленно прописать Квартусу завышенную частота на ацп'шном клоке (даже 300 ставили), он упорно лепит всю схему в центр кристалла. Пока она одна - никаких слаков. Как только включаем весь проект (а там ещё есть скоростные блоки, несколько ацп и т.д.). Всё летит к чертям. И вот пока вручную детектор не прижали лоджиклоком к краю плисины с запретом разводить в этом регионе что-либо ещё, ничего не получалось. Возможно и вам так надо.
  7. Коллеги, часто вывожу всякие диагностические сообщения из кода функциями типа $display. Но проблема в том, что он их закидывает всех в окно варнингов, где итак туча сообщений. Можно, конечно, на подобные сообщения накинуть флаги, но как-то это всё не технологично. Но, где-то читал, что у Квартуса есть команда создать пользовательское окно и назначить нужные сообщения туда, но не могу найти в help'е инфу по этому поводу. Может, кто знает?
  8. Там надо войти Task Manager (по Ctrl-Alt-Del) и прибить один из процессов, к-рый Виззард создаёт. У нас такая же фигня была с FFT'шной корой. Там бужет видно, один из дочерних процессов мегавизарда работает, потом у него в графе "загрузка процессора" падает до нуля и дальше ничего не происходит неограниченно долго. Вот этот подпроцесс надо прибить, мегавиззард его создаст вновь и успешно сгенерит вам всё.
  9. Что значит "переучиваться"? Знания никакие лишние не бывают. Иметь представление, безусловно, нужно. Какие-то задачи эти "сеточки" всё ж таки криво-коряво, но решают. Они осмысленны там, где задача ну практически никакой формализации не поддаётся. Как раз яркие примеры - это распознование изображений, звука и т.д. Как только задача допускает такую формализацию и, тем более, позволяет получить более-менее вменяемое решение (пусть и в квадратурах, например), то все ваши эти "диииип лёнинги" и прочие игрушки сразу пролетают. А к таким задачам как раз и относятся задачи радиолокации, гидроакустики и цифровой связи. Уже, можно сказать, ставший классическим пример. Одна из крупных конференций по этим делам в РФ. Секция радиолокации. В радиолокации, благодаря бурному развитию оной в 50-60-х с привлечением туда в т.ч. крупных математиков и базируясь на ранее не плохо развитой теории веороятности и статистики, удалось получить математические решение во многих практически интересных задачах. Но каждый год на эту конференцию обязательно приезжают пару-тройку восторженных мальчиков, к-рые рассказывают как они тут успешно применили очередную нейронную сеточку для обнаружения сигнала. И каждый такой докладик заканчивается саркастическим вопросом из зала типа: "ну и что ваша сетка показала? То, что в той ж ситуации, где МАП-обнаружителю нужно ОСШ столько-то Дб, вашей сетке нужно на 15дБ больше? (дружный хохот в зале)" :)
  10. Добрый день, коллеги! Возникла необходимость поиска софтовых моделей альтеровских мегафункций. Условно, задача в том, что заказчику поставляется некая платформа на ПЛИС и, вместе с бинарником прошивки заказчик хочет иметь программную bit-accurate модель DSP-части прошивки. Проблема в том, что на Альтере ничего кроме моделей для сред моделирования типа Моделсима и dll-библиотек для DSP Builder'а ничего найти не можем. Но заставлять заказчика ставить даже бесплатный вариант Квартуса с Моделсимом - не приемлимо. Можно, кончено, скомпилировать в Матлабе отдельный софт с этими моделями, но это всё очень медленно работать будет. Может, кто чего подскажет?
  11. Ну, приходите ко мне на лекции, тем более в СПб живёте, я вам расскажу про Френелевские, Фраунгоферовские, "дальние" и "ближние" зоны. Как раз читаю эти темы третьекурсникам :) Ибо то, что вы написали - это, простите, какие-то ваши внутренние представления, с учебниками по электродинамике и распространению радиоволн они как-то вообще никаки не стыкуются :)
  12. Из этой статьи, я так понял, что модель работает на частотах от 20МГц. Если речь идёт о 20МГц, то длина волны около 15м. Соотвественно, для антенны, работающей на такой длине волны, "ближняя" (френелевская) зона может простираться на десятки метров, поэтому, вероятно, авторы и подстраховались километром.
  13. Сравнивать не сравнивал, но c LwIP реально много работал. Мне там нравится, что всё доступно, структурировано и понятно. Нужно свой протокол поднять - пожалуйста, нужно DHCP включить - пожалуйста. Я бы даже сказал, что LwIP-стек - это редкий случай софта, написанного прямыми руками, отлично отдокументированного и где не надо неделями сидеть, распутывая хитросплетения кода какого-нибудь чокнутого перфекциониста, что бы написать простые вещи.
  14. Свою толику добавлю. 2-3 часа для серъёзного проекта для 5го "Стратикса" - это совсем не катастрофа. У нас был проект для 4го "Стратикса", к-рый по 6 часов собирался! Правда, было это уже почти 8 лет назад и компы тогда по-ленивей были. А так, да: 1) более мощный комп (лучше нормальный, а не ноут: ноуты при перегреве часто понижают частоту проца никак об этом не сообщая), важнее число ядер, нежели частота. Мощную КУДовую видеокарту с поддержкой "openCL" тоже не помешает и ssd-диск; во время работы сборщика старатся ему не мешать: повырубать весь навесной софт, желательно даже отрубить сеть. Ну и уж точно на том же компе не стоит смотреть одновременно порнуху в HD-качестве :) 2) настройки проекта (ставить "нормальные усилия"; если не нужно по клокам "тапку в пол", то ставить оптимизацию "баланс" и т.д.); 3) таймквесты старатся использовать в максимально щадящем режиме. Не нужно, например, фильтру, работающему на 200МГц выставлять требования в 300МГц (знаю таких любителей: "а чё? В даташите сказано, что и на 450 должон работать!"); 3) разбиение проекта (создать партишины, поставить всем "пост-фит" и т.д), иногда осмысленен "лоджик-лок" (хотя и не люблю этот инструмент-костыль); также часто имеет смысл 4) кодчекинг. Если есть процессор в системе, или на борту плисины, то всё что можно - пихать в него. Во всяких мегафункциях давать сборщику по-меньше самодеятельности (минимум опций в положении "авто"). Если DSP-мегафункции сразу включать "распихивать по DSP-блокам". Не лениться проверять весь код на наличие всяких глупостей, типа немерянных коммутаторов и прочего мусора.
  15. Коллеги! Работаем сейчас над здоровенным проектом для альтеровской плисины и есс-но всё, что только можно вытащить для внешних настроек через MCE, вытаскивается наружу. Но, в результате в окне MCE уже просто каша из различных параметров и массивов. Хотелось бы научится ваять собственный софт, что бы мимо MCE подключатся к jtag-серверу и закачивать/выкачивать выбранные параметры и представлять их в удобном нам виде. Вот никто не сталкивался с такой задачей или, хотя бы, может указать направление поиска информации?
  16. Спасибо, но, к сожалению, это пример с НИОСом. Нам нужно без софтовых процессоров.
  17. А разработчиков аналогового фронт-энда нельзя там пнуть? Типа, ребята, перенесити промежуток на 60МГц, или, например, на 300? И корректирующий фильтр такого невменяемого порядка (180!!) рельно осмысленно ставить? Не проще на обычных КИХ-фильтрах со ступенчатым понижением частоты давить?
  18. Коллега, Иосиф прав абсолютно, если у вас шина (а не один бит), то тут никакая абсолютно асинхронщина не допустима. Я даже не буду объяснять почему, полно лит-ру по этому вопросу. Причём, если у вас переход шин, то варианта, по-сути, только два: а) навороченный автомат в стиле связнЫх протоколов (а в реальности вы, скорее всего, по-просту поставити стэк (Фифошку); б) жёсткая завязка клоков на ФАПЧе (PLL). В вашем случае, чтения потоковых отсчётов с ацп, скорее всего, вообще только второй вариант доступен. Соотвественно, клок должен быть тот же, что используется ацп (сам он генерит, или внешний), дальше (например, у вас квадратурный детектор с последующим прореживанием (децимацией) либо генерите дочерние клоки на ФАПЧ (в sdc можно их объявить автоматически derive_pll_clocks), либо делите на регистрах (только не на логике!) и тащите либо кратные частоты как таковые, либо тащите исходный клок с прореживающими стробами (каждый вариант имеет свои достоинства и недостатки). Только так, иначе метастабильности приведут к тому, что вы будете бегать вокруг девайса с криками "да это мистика какая-то! как такое может быть вообще?!" :).
  19. Коллеги, не могу найти нужных настроек в Квартусе, что бы он более жёстко проверял правила в hdl-коде наподобие Ксайлинксовского ISE/Вивадо. Ну, например, что бы выкидывал ошибки, если используется не объявленный провод, или если входная разрядность не соотвествует входной (а не забивал молча нулями старшие разряды) и т.д. и т.п.
  20. Ну, я не знаю какой у вас камень используется, но, например, в Стратиксах, вот есть такая тема, например: Stratix ... LVDS transmitters support programmable pre-emphasis and programmable VOD. Pre-emphasis increases the amplitude of the high frequency component of the output signal, and thus helps compensate for the frequency dependent attenuation along the transmission line ... Ну, по-моему, если по входу вам помогла терминация, то это возможно говорит о том, что у вас на плате проблемы. Например, погонные ёмкости очень большие, не нагружен грамотно приёмник lvds-линии с вашей плисины и т.д. и т.п.
  21. Да тут в том и проблема. Проект разросся до колоссальных размеров, 3 плисовода разного уровня одновременно копошатся в здоровенной каменюге и даже со всеми оптимизациями и Post-fit -партишинами, малейшее телодвижение - и 1,5 часа пересборки. Есс-но, всё что можно моделируется, делаются упрощённые подпроекты, сигнальная часть вообще вся из DSP builder'а и т.д., но всё равно всё не промоделируешь, да и у Квартуса и Моделсима несколько "разные взгляды" на то, что правильно, а что нет. И вываливается в результатет сборки типично под 2 тысячи варнингов, не всегда и уследишь. Да и смотрю в репорты, да, если шина имеет большую разрядность, чем порт, то он ругается действительно, типа "truncated value with size xx to match size of target (yy)". А вот в обратной ситуации молчит, как партизан. Да и нам бы очень желательно, что бы уровень такого вот варнинга можно было поднять до еррора. Что бы он вообще прекращал сборку в случае подобного несовпадения.
  22. Да, это, похоже, информация в нужном направлении, спасибо.
  23. У них явно опечатка какая-то на сайте. Ни одна версия не работала никогда вот только с одной-единственной версией Матлаба. Мы штатно юзаем не 18, но недавно пришлось использовать 18ую, делали сжатие сигналов в ДСП-билдере, на базе вообще версии 8.1.0 (2013а) всё прекрасно работало. Единственно, по началу генерация кода из модели шлёпалась пока Java-машину не обновили. После этого и генерация в лёт.
  24. Кстати, да, по собственному опыту если всё начинает рушится после подключения, или каких-то телодвижений в СТП - это 100% неправильные или вообще отсуствующие врЕменные ограничения. По-хорошему, после первого эскизного набора проекта, если ожидаются тактовые частоты выше 40-50МГц нужно сесть, не поленится и потратить время на грамотное заполнение sdc'шника. Иначе начинаются битвы с "песочным человеком" :(