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

scorp

Свой
  • Постов

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

  • Посещение

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


  1. Подскажите, пожалуйста, где у Synopsys находится их Design Compiler Reference Manual? Смотрел содержимое syn_vA-2007.12-SP2, syn_vH-2013.03-SP1 и syn_vL-2016.03 -- из документации там только man-страницы. Сомневаюсь, что это и есть их рефмануал.

     

    Или он водится только в их SolvNet при наличии валидной лицензии?

    В директориях установки - нигде, Syn0psys не кладёт их туда.

    Если не нашли ничего полезного из того, что выдал гугл на первой странице поиска по запросу "design compiler reference manual filetype:pdf", скажите что конкретно нужно.

  2. На периферии. г.Воронеж. Тут найти работу по SoC вообще не реально, нет таких предприятий.

    А как же НИИЭТ?? Там же есть свой дизайн-центр. Проектируют ASIC, осваивают ARM'ы...

  3. А Вы пробовали так делать?

    Нет, не пробовал. Пока нахожусь на завершающем этапе разработки RTL и неспешно продумываю детали синтеза, DFT, BSD.

     

    Про иерархию в этой цитате нет ни слова.

    Когда пишут "top-level design", а не просто "design", волей-неволей представляется дизайн на конкретном уровене иерархии, в данном случае "верхнем".

     

    Я только с таким представлением и работаю.

    Думаю придётся и мне вытащить это в TOP, чтобы

    это было красиво и корректно

    Просто это очень криво, утапливать пады. Плохой стиль.

    Не спорю. На определенном этапе разработки при описании сущности модуля иногда удобно видеть пады, связанные с этой сущностью в этом же модуле. Не всегда этот модуль оказывается рядом с "топом", а пады при этом могут быть "продвинутыми", с большой кучей режимных входов (подтяжки к vdd, gnd, отключаемые глитч-фильтры, триггеры Шмитта и т.д.). Для управления всем этим приходится тащить шины наверх, перегружая промежуточные уровни иерархии вязанками проводов.

  4. 2. можно. Они ведь через hookup цепляются. Тул сам пробьет иерархию к ним, добавив новые порты и провода

    Еще можно принудительно указать иерархию, куда располагать Тар и BS

    Спасибо. В данном случае речь не только о JTAG-падах, но и об остальных функциональных.

    Можно ли через hookup рассказать о них BSD compiler'у, чтобы он их нашёл и правильно соединил с BS-ячейками? Если да, то как?

     

    В user guide на BSD Compiler в разделе Design Requirements есть пункт:

    2. The top-level design must have I/O pad cells for all functional ports. The pad cells must

    be linked to the core design pins. There must be a one-to-one correspondence to

    top-level ports and core pins

    В связи с этим и возник вопрос №2 из первого поста.

  5. День добрый!

     

    Собираюсь имплементировать проект. Применяю тулы syn0psys. Возникла пара вопросов.

     

    1. В какой очередности правильно выполнить DFT и BSD insertion?

    - если DFT ==> BSD, то сгенерированная BSD-логика будет несканируемой, что неизбежно снизит тестовое покрытие;

    - если BSD ==> DFT, то скан-цепи охватят всю логику, включая BSR + TAP, однако участие BSR ячеек в ATPG-тесте свалит его. Думаю в этом случае можно запретить логике BSR и(или) TAP участвовать в создании скан-цепей (dont_touch), но опять же ценой снижения тестового покрытия.

    Интересуют общепринятые подходы. Syn0psys предлагает user guides на каждый тул по отдельности, но информации об очередности их применения и нюансах не нашёл.

     

    2. Пады в дизайне собраны в отдельном модуле (не в TOP). Можно ли рассказать BSD Compiler о том, где они есть? Или же они обязательно должны быть в TOP?

     

    Спасибо!

  6. Здравствуйте! Подскажите, кто знает, как ведёт себя Keil в демо-режиме (тот что с ограничением в 32 Кб) при компиляции проекта, когда размер прошивки превышает 32 Кб? Что на выходе? Error? Или ущербный bin с предупреждением?

  7. upd:

    Вчера дошли до трассировки проекта. На этапе создания клокового дерева обнаружились невыправляемые виоляции по hold'у. Детальное рассмотрение кода заказчика показало, что в этом месте клок переходит в цепь данных (!!!) :maniac:

    Что-то мне подсказывает, такая "технология" не приведёт ни к чему хорошему.

    А это как-то можно диагностировать заранее??

     

  8. а там дальше в проекте переходы между этими 50 - 25 -12.5 производятся в каких условиях?

    если используется same edge, в расчете на деленный клок, - то это одно, если все развязано нормальными CDC-переходами - то другое.

    в ASIC-е все это будет сильно на клоковые деревья влиять.

     

    Дальше переходы между доменами производятся по rising edge. CDC-переходов нет, да и ни к чему они вроде бы при таком способе формирования клоков – источник клока один, сами клоки синхронные, задержка на триггерах при формировании 25 МГц и 12.5 МГц должна учитываться при STA, надо только правильно законстрейнить generated клоки.

  9. Приветствую!

    Вопрос знатокам. Помогите правильно задать SDC констрейн. В проекте есть 3 клоковых домена - 50 МГц, 25 МГц и 12.5 МГц. Частоты 25 МГц и 12.5 МГц получены путём деления исходной частоты 50 МГц со входа clk с помощью триггеров (см. картинку). С констрейном для частоты 25 МГц проблем нет, обычный generated клок. А для задания клока 12.5 МГц вижу 2 варианта:

     

    create_generated_clock -name i_clk_12_5MHz \
        -source [get_ports clk] \
        -divide_by 4 \
        [get_pins clk_12_5_reg/q]

     

    либо

     

    create_generated_clock -name i_clk_12_5MHz \
        -source [get_pins clk_25_reg/q] \
        -divide_by 2 \
        [get_pins clk_12_5_reg/q]

     

    Какой вариант правильнее?

     

    7113890.jpg

  10. Интересно, такие розработчики SDC передают, или у них проект както сам компилился и прошивался?

    к сожалению, никаких SDC, значение тактовой частоты и клоковый пин, указанные в ТЗ – всё что есть :) Самое интересное начинается когда случайно обнаруживаются внутренние generated-клоки, полученные делением основного клока, о которых никто из ПЛИСоводов, с кем я работал, обычно не считает нужным предупредить. В связи с этим вопрос - есть ли тул, позволяющий выявить и законстрэйнить эти штуки сразу на этапе согласования исходных данных без лишней головной боли и разъяснений автору RTL, что это необходимо?

     

    Понижайте Fmax или переходите на 0.18 :)

    Fmax диктует заказчик, проектные нормы - руководство. Так и работаем )

     

    ЗЫ

    "защёлкивании по rise или по fall разработчиком описания принимались неосознанно"

    а я смотрю технология "дизайн не приходя в сознание" становится всё популярнее :)

    в точку ;)

     

  11. Тут кстати перевод в ASIC нипричём - както-же в ПЛИС это работало.

     

    Не соглашусь. Простой пример – в ПЛИС начальное состояние триггера, в которое он устанавливается при подаче напряжения питания м/с может быть предопределено. Если функционал проекта завязан на это конкретное начальное состояние, то зашитая ПЛИС будет работать в приборе как положено. В ASIC начальное состояние несброшенного триггера не детерминировано. Типичная ситуация: многие ПЛИС-разработчики передают для миграции в ASIC проект без полноценных функциональных тестов, подкрепляя это тем, что "проект выверен и отработан на ПЛИС в составе приборе". В этом случае недетерминированное начальное состояние триггеров в кремнии приведёт к неработоспособности м/с в соответствии с задуманными алгоритмами.

     

    Ну и по поводу перевода в ASIC - незабудьте встроить тестовые структуры для производства.

     

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

     

    Тактирование по обеих фроттах - никаких поблем....

     

    Были и такие проблемы, когда переводили проект в ASIC 0.35 мкм. Не хватало быстродействия - виоляции по путям от rising edge до falling edge. Впоследствии выяснилось, что решения о защёлкивании по rise или по fall разработчиком описания принимались неосознанно и никакого влияния на функционал не оказывало. Проект был отправлен на переработку. Вывод: быстродействие современных зарубежных ПЛИС "прощает" эти ляпы в данном случае.

     

     

     

    ... ну и встроить схему их тестирования при производстве...

    Вывести интерфейс к блокам памяти для их тестирования снаружи? Или встроить логику для их тестирования внутри по заданным алгоритмам?

  12. Fat Robot, спасибо Вам за развёрнутый и подробный ответ! Передо мной стоит задача перевода чужого проекта, отработанного на ПЛИС, в ASIC. В ходе работы наткнулся на проблемы с отсутствием сброса многих триггеров, которые привели к неработоспособности дизайна уже на этапе моделирования нетлиста в базисе библиотеки. В этой связи стало интересно, есть ли кроме отсутствия сброса ещё какие-то моменты, типичные для ПЛИСоводов и неприемлемые для ASIC.
  13. Вопрос ко всем разработчикам проектов на FPGA, кому приходилось переводить проект на ASIC. С какими проблемами столкнулись и что пришлось исправить/доработать?

    Не случайно размещаю тему в этом разделе. Речь идёт не о применении встроенных мегафункций ПЛИС, требованиях к быстродействию или площади кристалла, а именно о походах к созданию поведенческого описания в части тактирования, сброса т.д.

  14. Вот у STM32 есть NVIC (в ядре) и EXTI (в периферийных устройствах). Второй контроллер отвечает за внешние прерывания, в нем есть настройки фронтов. Для ознакомления можно скачать руководство на конкретный микроконтроллер.

    Для других периферийных устройств устанавливается флаг прерывания, который стирается при входе в прерывание. Обычно программно.

    спасибо.

    в моём случае периферийное устройство - тоже стронний IP-блок, у которого, к сожалению, настройки вида прерываний нет :(

    В ядре имеется тот самый NVIC, думал что посредством его настройки можно ему как-то объяснить, что определённую линию прерываний нужно обрабатывать как "прерывание по перепаду"...

  15. Всем вечер добрый!

    Подскажите, пожалуйста, как работать с прерываниями не по уровню, а по перепаду. Ядро - Cortex-M4F. Прочитал документацию, не обнаружил настроечного регистра, который бы настроил линию прерывания для работы по перепаду...

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

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

    Необходимо сделать так, чтобы переход в обработчик прерывания происходил только по фронту сигнала прерывания.

     

  16. конкретнее, что за флеш - последовательная, параллельная, nand, nor? И к чему она подключена? К процессору, к ПЛИС, и т.п.?

    флеш параллельная 256Кх16, Am29LV400B, подключена к внешней системной шине процессора TMS320C546

  17. Всем привет! Проблема в кратце, возникла необходимость передать заказчику IP-блоки для интеграции в его систему, моделирования и отладки. Не хотелось бы светить rtl... Есть ли способы создать из rtl-описания некую зашифрованную модель, которую можно будет беспрепятственно промоделировать, но при этом сохранить в секрете реализацию и обеспечить непригодность для синтеза. Если есть, то в каких симуляторах работает? Есть ли универсальное средство, подходящее для всех симуляторов? Спасибо!

  18. На некоторых форумах рекламу линуха ужо административно запретили.

    в связи с чем интересно?

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

  19. Не видно конкретики в вашем вопросе, что хотите сделать и на какой результат нацелены? Универсальных волшебных решений не существует. Если проект готовый и отлаженый и сделан по канонам opencores, скорее всего в нем есть директория sim, поищите в ней скрипт запуска симуляции.

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