Перейти к содержанию
    

Flood

Свой
  • Постов

    1 807
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

Сообщения, опубликованные Flood


  1. И вообще, не могли бы мне разъяснить что представляет из себя этот Bootloader, я где то читал, что его можно скачать в виде проекта для Microblaze, это так?

     

    Сразу после снятия Reset процессор должен начать выполнять какую-либо программу, а значит, эта программа уже должна находиться в адресуемой памяти. Из-за сложности современных процессоров в них часто используется начальный загрузчик, т.н. Bootloader. Часто в системе может быть более одного загрузчика - загрузчик первой фазы (First Boot, First Stage Loader, совсем маленький), затем загрузчик второй фазы (Second Stage Loader, большой и сложный, почти ОС), который уже загружает основную ОС. Например, в Microblaze с DDR-ом задача First Boot - убедиться в работоспособности DDR и загрузить туда код Second Loader'а или сразу ОС из какого-нибудь внешнего устройства. В xapp482 это конфигурационное ПЗУ.

     

    Подходов к размещению загрузчика может быть много. По-умолчанию и в простейшем для Microblaze случае для загрузчика выделяется внутрикристальная память небольшого объема на BRAM, с адреса 0. Размер памяти зависит от сложности загрузчика и наличия свободных ресурсов. Из-за того, что при загрузке ПЛИС происходит инициализация BRAM, на момент окончания конфигурации программа в BRAM оказывается загружена "сама собой". Это близко к наличию масочной ПЗУ в обычном процессоре, с тем значительным отличием, что в BRAM память можно писать, а значит в ней может не только храниться сама программа, но и находиться стек, секции с изменяемыми переменными и т.п. Добавление загрузчика в битстрим ПЛИС делается программой data2mem, с использованием .bit-файла(битстрима) и .bmm-файла (описания реального маппинга BRAM-ов). Эти два файла меняются каждый раз после синтеза битстрима.

     

    xps (или ise) автоматически передает в SDK информацию об аппаратной начинке системы, поэтому в SDK достаточно написать нужную программу, скомпилировать ее в .elf, после чего сгенерировать битстрим с внедренным туда .elf-ом. Все это делается автоматически.

    Загвоздка при создании загрузчика в том, что в проекте, имеющем внешнюю память, настройки компоновщика (ldscript) будут таковы, что заставят расположить большинство секций elf-а во внешней памяти. Настройки нужно или поменять вручную, или дать сделать это автомату, убрав на время всю внешнюю память в проекте xps. В экспортированном в SDK проекте без внешней памяти нужно сохранить ldscript или запомнить его содержимое, и использовать его далее в основном проекте (с памятью). Убедиться в том, что запуск программы после начальной загрузки происходит нормально, можно загнав туда Hello World или memtest из готовых заготовок в SDK. Сразу же после окончания загрузки ПЛИС битстримом download.bit (по-умолчанию) или же напрямую из SDK, программа должна запуститься и сообщить об этом в UART.

     

    В качестве реального First Stage Loader можно использовать готовый от petalinux (если есть, где его найти), или вручную обрезать u-boot до безобразия. Хотя лучше всего (с точки зрения экономии BRAM) написать свой. По-минимуму в FSL должны быть функции загрузки следующей программы из некоего внешнего устройства (ПЗУ), а также из UART-а (для первоначального программирования ПЗУ!) в DDR. Также очень желательно иметь в FSL базовые средства проверки работоспособности внешней памяти (анализ phy_init_done) и короткий тест памяти, сопровождающиеся соответствующей индикацией или печатью.

  2. Пристыженно приступил к чтению :)

    Думаю, ветка себя оправдала - ответы получены даже быстрее, чем предполагалось.

     

    Впрочем, я пока не понял, можно ли увидеть результаты по времянке без Time Quest, и правда ли что последний затрачивает на анализ значительное время (дополнительно к времени фиттера).

  3. Непонятно, конечно, зачем Вам потребовалось задать частоту выше требуемой...

     

    Собственно, "посмотреть, что будет" :) Задавал частоту на 5% больше необходимой. Но это не главное. Главное, что меня смутило - отсутствие явных указаний на нарушение констрейнов после этапа Fitter и длительный анализ Time Quest.

    Действительно, возможно, что весь синтез перезапускался после запуска анализа, хотя в закладках действий прогресс пошел именно напротив Time Quest.

    В итоге, можно ли без анализа в Time Quest увидеть результат по констрейнам после фиттера? Т.к. кроме success я больше ничего не нашел, да и сообщения в логе были достаточно скупы (после сотен и сотен строк в ISE это как-то непривычно).

  4. Как и во многих сферах человеческой деятельности и бездействия, в работе со средами разработки ПЛИС есть свои устоявшиеся основы, упоминающиеся в простом разговоре как нечто само собой разумеющееся, а оттого на форумах обычно не разжеванные. Конечно, все есть в официальной документации, но на форуме-то быстрее спросить :)

     

    Вопрос простой (на каком этапе в Альтере происходит проверка констрейнов по частоте, и зачем там нужен Time Quest), но спрашивать буду нудно, чтобы не возникло неясностей, что же именно спрашивается.

     

    Собственно, вопрос вот в чем. Возникли непонятки при первом знакомстве с Альтерой, а именно с синтезом в Квартусе.

    При работе в Xilinx ISE процесс создания битстрима из высокоуровневого описания (HDL) выглядит примерно так (в терминах ISE):

    - логический синтез из высокоуровневого описания в библиотечные элементы целевой ПЛИС (XST, или сторонний синтезатор);

    - физический синтез, включающий в себя:

    -- трансляцию (Translate)

    -- маппинг (Map)

    -- трассировку (Place and route, PAR)

    -- подготовку битстрима (Bitgen).

     

    Собственно, на физический синтез в Xilinx накладываются различные ограничения (констрейны). В общем случае это привязка портов к физическим ножкам микросхемы и задание характеристик (частот) внешних тактовых сигналов.

    Физический синтез в Xilinx на этапе PAR считается выполненным с ошибками (!), если не удалось выполнить констрейны по заданным частотам (т.н. "проект не развелся на N МГц"). Т.е. к окончанию процесса PAR и до формирования битстрима я уже знаю, вытянул ли синтезатор внутреннюю схему для работы на нужной частоте. По завершении процесса PAR указывается, какие частоты не удалось вытянуть, выводятся наиболее проблемные цепи, какие времена получились взамен требуемых и так далее.

     

    Сегодня впервые прикоснулся к Квартусу 12.0 (кристалл Stratix III). Процесс выглядит там примерно как:

    - логический синтез и маппинг (quartus_map);

    - физический синтез, Fitter (quartus_fit);

    - создание битстрима (quartus_asm).

    Задал SDC констрейны на частоту (задал число несколько выше требуемого, дабы оценить возможности Альтеры).

    После довольно долгих процессов маппинга и фита (1,5 часа), я получил сообщение, что все готово и прошло Successfully. Однако, я нигде не смог найти информации о том, какая получилась частота. После чего храбро запустил Analyze в закладке Time Quest, и Квартус ушел в астрал еще на 2 часа (!), после чего радостно сообщил мне, что констрейны не выполнены и дал список проблемных внутренних цепей для нескольких моделей (Slow, Fast, с разной температурой и Vint).

     

    Внимание вопрос: неужели выполнение констрейнов по частотам не анализируется на этапе Fitter? Мне казалось, что в это время как раз происходит магия, связанная с попыткой достичь требуемые частоты, и к завершению процесса о полученных характеристиках уже все известно. Зачем нужно запускать еще некий процесс, сравнимый по времени со всем остальным синтезом, чтобы узнать о проблемах с времянкой? Что вообще дает анализ Time Quest? Зачем дается информация по нескольким временным(?) моделям?

  5. Интересно, практикует ли Xilinx или кто-то из его дистрибьюторов апгрейд отладок, например из ML605 в KC705 (например, с доплатой)?

    А то и SP605 -> KC705 :laugh:

    Или проще продать 605 и взять 705?

  6. Понятно, что задача не из простых. Но зачем же всё разом в память грузить?

     

    Да просто сегодня никто память не экономит, вот и все. Поди, каждый мельчайший элемент ПЛИСа представляется в виде объекта с кучей свойств, и объектов этих сотни тысяч загружены и обрабатываются при разводке.

    Time to market во главе угла, никому не нужно изыскивать хитрые схемы управления памятью, копаться в их ошибках и задерживать выход продукта. По крайней мере, пока необходимый объем памяти физически влезает в писишку.

  7. Возникает несколько вопросов: необходимо ли вводить констрейны на входную шину данных?

     

    В общем случае, на внешние шины нужно задавать констрейны серии OFFSET (Xilinx) для явного указания времен setup/hold согласно спецификации на внешнюю шину.

  8. Ну, изрядная доля ограничений делает задачу только интереснее :)

    Другое дело, что чем старше кристалл, тем partial reconfiguration грубее. По логике, если не задействовать или задействовать с ограничениями ресурсы, используемые для загрузчика, то все должно получиться. По-моему, достаточно вдумчиво и подробно прочесть Configuration мануал на V4FX и соответствующие апноты, чтобы понять, насколько это реально, и что придется делать ручками, а что в состоянии учесть автомат при разводке основной прошивки.

  9. Мероприятие состоялось.

    В фойе была организована выставка, по Xilinx присутствовали: Silica, Инлайн и Макро Групп. У всех трех на столах оказались представлены киты KC705 и Zync. Некоторые KC705 были включены и выводили на экран видео от камеры на сенсоре ON Semi. Silica показывали Zedboard и включенный Avnet-овский модульный кит с раскаленным Kintex-7 без радиатора. На стенде Макро Групп можно было прикоснуться к VC707. Помимо них, демонстрировались источники и плата на C6678 от TI, разъемы TE Conn., оптосенсоры от ON Semi, разные микросхемы от Maxim.

     

    Уровень лекций оказался слабоват, многие слушатели ушли уже после первого или во время второго блока. Перевод докладчика по блоку по PCIe вышел намного хуже той же презентации Zync на Новой электронике. Неторопливое прочтение местными специалистами презентаций с экрана - без комментариев.

    Сами презентации достаточно разумные, но ничего особо эксклюзивного. Ближе к концу лекций демонстрировались живые референс дизайны на KC705, VC707, Zync. При необходимости можно было пообщаться со специалистами и менеджерами от Xilinx.

    Однако, в целом, кто не попал - по знаниям точно ничего не потерял.

  10. Если я правильно понял, речь идет не о переливании предварительно сохраненного дампа флеш-памяти в новую флешку из-за аппаратной неисправности старой, а о восстановлении испорченной программы путем переливки прошивки из заведомо рабочего аппарата в аппарат с поврежденным ПО. Т.е. о клонировании устройства.

     

    Это крайне грубый и некорректный способ ремонта техники. Да, тупое поболчное копирование возможно, хотя проблемы вполне могут случиться, например, из-за различающейся карты битых блоков. Однако, проблемы эти вылезут, скорее всего, намного позже возврата "отремонтированного" устройства заказчику. Кроме того, общая работоспособность клонированного устройства зависит от наличия каких-либо программных привязок к идентификаторам железа, а также индивидуальных настроек.

     

    По-хорошему, восстановление разрушенного ПО можно делать только тогда, когда известна его структура и назначение, и делается это не на уровне поблочного копирования флеш-памяти. Очень хорошо, если при ремонте используется фирменное сервисное ПО. Практически наверняка штатные приемы восстановления встроенного ПО предусматривают работу без выпаивания микросхем и прошивки их на стороннем программаторе.

     

    Если на все эти соображения положен болт, то не важно, какую отладочную плату использовать в качестве программатора, главное иметь адаптеры TSOP48 и FBGA6x.

     

    Та отладочная плата с виду подойдет, но реверс структуры данных в исходной NAND все равно придется делать поскольку при разных установках

    контроллера NAND служебная область блоков может формироваться в разных местах и копирования может не получиться.

     

    Если битых блоков нет вообще, можно ни о чем не думая, как будто это NOR, копировать 1:1 - блок в блок, страницу в страницу, включая spare. Другое дело, что клонированное устройство может не заработать, или заработать некорректно. Если те же BluRay плееры параноят по поводу аппаратной целостности, то клон работать не будет. Если же "всем пофиг" - то может и прокатить.

  11. Судя по результатам поиска "svf" на сайте Xilinx, нужно использовать не ISE, а iMPACT.

    А что, Altera USB-Blaster и Xilinx Platform Cable USB имеют одинаковые разъемы JTAG ?

     

    Разъемы разные.

    В комплекте Xilinx Platform Cable USB идет универсальный адаптер Flying Wires, который можно подключить куда угодно.

    BSDL файл можно скачать с сайта Альтеры. Думаю, единственный вариант прошивки - проиграть SVF. Вроде, кроме iMPACT можно воспользоваться Universal Scan. Эта программа работает с Xilinx Platform Cable USB в 32-битных Windows.

  12. xapp - это просто примеры, чтобы было с чего начать собственную разработку.

    Вот тут были заданы те же самые вопросы, только про PCI. Однако, с точки зрения общих принципов написания драйвера это не принципиально.

    http://electronix.ru/forum/index.php?showtopic=102334

     

  13. Не знаю, чем особенно могут отличаться пос-терминалы от прочей электроники, но на мой взгляд, там должны быть сложности с глубоким ремонтом, обусловленные защитными функциями терминала. Железка-то, по-идее, секьюрная. Например, основные микросхемы, как то процессор, память и прочее могут быть программно связаны друг с другом так, чтобы не допускать замены, ну и т.д. К тому же, немалый процент неисправностей просто-таки обязан быть связан с программными, а не аппаратными проблемами. Лечить их нужно совсем иначе, чем проблемы железа, хотя внешние проявления могут быть одинаковыми (например, прибор просто не включается).

     

    А в части оторванных проводов или разбитых индикаторов проблема может быть только в разбираемости корпуса и доставаемости запчастей.

    Впрочем, если б я делал ТЗ на пос-терминал, добавил бы требование о стирании критичных данных и необратимой блокировке функционала терминала при попытке открыть корпус даже на выключенном устройстве.

  14. Дела давно минувших дней... И их участники не сообщили, чем все закончилось.

    КЗ Vccint, Vccaux на землю наблюдал только при убивании ПЛИСов различными ошибочными ситуациями с питанием.

     

    У Virtex-5 есть одна очень неприятная проблема, в более ранних ПЛИС не проявлявшаяся. По документации Virtex-5 переживает только 3 цикла "паятельного" прогрева, дальше действительно начинают VCCO на VCCINT закарачиваться,..

     

    У меня такого ни разу не было, как при пайке в заводских условиях, так и при установке б/у чипов в любительские устройства при помощи "телефонного" фена с преднагревом.

     

    По-моему, причина резкого ограничения циклов пайки в том, что в бессвинцовой технологии максимум термопрофиля проходит чрезвычайно близко к предельной температуре V5 в корпусе Flip-chip BGA. Обычно при выпайке на высокоавтоматизированных станциях выдерживается полка на температуре выше плавления припоя, после чего нагрев отводится, и автоматический съемник гарантированно безопасно (с точки зрения механики) снимает чип.

     

    Когда я паял сам, выпайку делал без выдержки какой-либо полки, снимая чип сразу по размягчению бессвинцовых шаров, а пересаживал чип всегда на свинцовые шарики. На мой взгляд, запас по разнице в температуре плавления и предельной температуре корпуса стоит наносимого тысячей свинцовых шаров удара по окружающей среде.

     

    Более того, слышал о том, что некоторые буржуи во внутренней ремонтной документации допускают (или даже рекомендуют) проводить ремонтные работы с использованием свинцовых шариков. Объясняется это тем, что RoHS хорош при массовом производстве, а ничтожный процент отремонтированных свинцовым припоем приборов погоды не делает, и в целом даже лучше увеличения процента тех же приборов, безвременно отправленных на свалку. Правда это или нет, говорить не берусь, т.к. сам этих инструкций не видел. Возможно, этои документы относились к "переходному" периоду между свинцом и бессвинцом.

     

    При переходе на свинец остается только вопрос о качестве пропайки свинцом контактных площадок, луженых ранее бессвинцовым припоем.

  15. Кстати, есть успешный опыт пайки сплавом Розе BGA корпуса видеоадаптера ноутбука. Из положительного, при пайке плата не подвергается сильному температурному стрессу, а припой прекрасно смачивает контактные площадки. Использованный флюс – обычная спиртоканифоль. Паял лет 7 назад, тот ноут жив до сих пор.

     

    По-моему, силовые элементы и чипы видеокарт - наихудшие кандидаты на пайку низкотемпературным припоем. Не знаю как в ноутбуках, а в ПК видеокарта может прогреваться более чем до 100 градусов в рабочем режиме. Представляю, что будет, если в этот момент поплывут шарики :wacko:

    Кстати, а как удалось сделать шарики из Розе? Или это была паста?

  16. А сплав розе прекрасно себя ведет с оловяным припоем.

    Мы его используем для удаления компонентов с платы. Попросту окуная плату с компонентами в сплав, после нескольких минут происходит растворение припоя в сплаве и компоненты всплывают. Плата при этом остается чистой, неповрежденной... и можно с ней работать (повторить топологию например).

     

    Возможно ли повторное использование платы и компонентов после этой процедуры? Как максимально удалить остатки сплава с платы и деталей? И как поведут себя пролуженные низкотемпературным сплавом площадки при последующей пайке оплавлением?

    Логично предположить, что при небольшом количестве остатков должно произойти их растворение Розе в новом припое без существенного ухудшения его свойств. Однако, закон подлости, по-идее, обещает какие-нибудь гадости, типа образования границы сред, с последующим отваливанием компонентов через год работы при +60-и.

  17. С подогревом вполне можно припаять данный компонент. Только необходимо подогревать как можно большую площадь вокруг места пайки до 120-140 градусов.

    Далее флюсовать и паять.

     

    Полностью присоединяюсь к этому мнению. Помимо сказанного, нужен достаточно мощный паяльник (не горячий, а именно мощный и с быстрой термостабилизацией). Простой китайский 30-40 Вт паяльник не справится даже с преднагревом.

    Тут разве что может оказаться не удобно держать и паять выводный компонент, когда все вокруг нагрето до 120 градусов. Но запаяться должно без проблем.

  18. Ничего сложного - запускаете iMPACT, подключаетесь к прибору по JTAG, делаете Readout. Мелкие детали зависят от типа флешки. Если это родная XCFP, то возможно наличие защиты от вычитывания.

    Полученный Readout может не заработать при обратной заливке, если:

    - неверно указана мода загрузки (тип ПЗУ, кто CCLK Slave/Master и т.п.);

    - использовались фичи XCFP по хранению нескольких ревизий.

     

    Если ПЛИС Spartan-3AN, флешка внутри, и стоит бит защиты - получится, наверное, один из самых сложных вариантов для 3-го спартана. В остальных случаях проблем быть не должно.

  19. А example design-то в результате заработал или нет?

    Не знаю насчет именно 12-и тысяч, но варнинги при сборке ip-ядер и примеров Xilinx действительно сыпятся сотнями и тысячами. Страшно смотреть на такое после C, но работает же (как-то).

  20. есть какое-либо preliminary info об этом ките ?

     

    Пока доступ только по программе early access (у меня этого доступа нет).

    Но по картинке понятно почти все - осовремененный близнец SP605.

    post-17871-1347388402_thumb.jpg

  21. 1) Полный контроль над работой телефона, отсутствие недокументированных возможностей в угоду третьим лицам;

    2) Возможность реализации своих функций (дистанционное управление, трекинг, шифрование "точка-точка" через CSD и т. д.);

    3) Хорошая ремонтопригодность за счет знания того, что делает каждый компонент на плате.

     

    Все три возможности не реализуемы толком при использовании готового GSM-модуля. Хуже того, даже переход от GSM-модуля на GSM-чипсет все равно не спасет, т.к. чипсет работает с более-менее закрытым программным стеком, а уж что творит его железо на аппаратном уровне - можно только догадываться. А делать GSM "с нуля" - выглядит совершенно нереальной и нелегальной задачей.

     

    Хотя, вот, один из сильнейших разработчиков в мире сделал софтовую LTE-базовую станцию на основе SDR:

    http://bellard.org/lte/

  22. Семейство довольно новое, не думаю что у кого то будет горелая плата. Привезем новую, если интересует.

     

    Не такое уж новое семейство, первые экземпляры этих плат появились где-то в 2009г.

    Слышал, что их раньше брали, чтобы снять оттуда ПЛИС и поставить в собственный проект (т.к. иначе в первое время микросхему было не купить). Но это было давно, и те платы уже не один год как в мусорке.

  23. Про предыдущие разы - это какие?

     

    М.б., речь втч о презентации Zync на Новой электронике? Перевод был действительно не очень, но лично я не увидел в этом никакой проблемы - английская речь была прекрасно слышна в зале.

    Основной вопрос к этим семинарам, скорее, в другом - может ли там быть что-то помимо пересказа доступных на youtube видеопрезентаций или пошагового повторения референсного проекта?

×
×
  • Создать...