Jump to content

    

Search the Community

Showing results for tags 'tcl'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Сайт и форум
    • Новости и обсуждения сайта и форума
    • Другие известные форумы и сайты по электронике
    • В помощь начинающему
    • International Forum
    • Образование в области электроники
    • Обучающие видео-материалы и обмен опытом
  • Cистемный уровень проектирования
    • Вопросы системного уровня проектирования
    • Математика и Физика
    • Операционные системы
    • Документация
    • Системы CAD/CAM/CAE/PLM
    • Разработка цифровых, аналоговых, аналого-цифровых ИС
    • Электробезопасность и ЭМС
    • Управление проектами
    • Neural networks and machine learning (NN/ML)
  • Программируемая логика ПЛИС (FPGA,CPLD, PLD)
    • Среды разработки - обсуждаем САПРы
    • Работаем с ПЛИС, области применения, выбор
    • Языки проектирования на ПЛИС (FPGA)
    • Системы на ПЛИС - System on a Programmable Chip (SoPC)
  • Цифровая обработка сигналов - ЦОС (DSP)
    • Сигнальные процессоры и их программирование - DSP
    • Алгоритмы ЦОС (DSP)
  • Микроконтроллеры (MCs)
    • Cредства разработки для МК
    • ARM
    • AVR
    • MSP430
    • Все остальные микроконтроллеры
    • Отладочные платы
  • Печатные платы (PCB)
    • Разрабатываем ПП в САПР - PCB development
    • Работаем с трассировкой
    • Изготовление ПП - PCB manufacturing
  • Сборка РЭУ
  • Аналоговая и цифровая техника, прикладная электроника
  • Силовая Электроника - Power Electronics
  • Интерфейсы
  • Поставщики компонентов для электроники
  • Майнеры криптовалют и их разработка, BitCoin, LightCoin, Dash, Zcash, Эфир
  • Дополнительные разделы - Additional sections

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Город


Код проверки


skype


Facebook


Vkontakte


LinkedIn


Twitter


G+


Одноклассники

Found 7 results

  1. Как известно, tcl-шелл Synopsys DC имеет свое мнение по поводу обработок ошибок. А именно: произошла или нет ошибка в результате исполнения команды можно понять, проанализировав то, что эта самая команда выдала (0 -- ошибка, 1 -- успех). Обработку такого рода ошибок писать очень накладно (это считай каждую команду надо во что-то оборачивать, типа такого proc try {cmd} { set r [uplevel $cmd] if { $r != 1 } { error "Error in $cmd" } } и вызывать уже команды так: try {connect_net netname portname}) А вот нельзя ли как-то указать интерпретатору, что надо останавливать выполнение при первой возникшей ошибке? Иными словами, чтобы команды синопсиса не выделывались, а использовали стандартные тиклевские исключения (error -- catch).
  2. Приветствую! Пытаюсь вот вникнуть в нюансы скриптинга под Qu. Но что то туго идет - видать грибы в наше местности не такие забористые как у разработчиков . Хочу сваять скрип который делает билд несколькими этапами с модификацией настроек между билдами. Для этого используя qurtus_sh и в соответствии с наставлениями "Quartus II Scripting Reference Manual" создаю пустой проект. Теперь надо бы наполнит его содержимым, но чтобы опять не набивать лишние пару тысяч строк настроек можно же использовать source готовых настроек project_new -overwrite -revision $rev $prj source "project_all_setings.qsf" project_close Вроде все ок, проект создался - но портянка получающаяся в project.qsf удручает. Думаю, можно же сделать и так project_new -overwrite -revision $rev $prj set_global_assignment -name FAMILY "Stratix V" set_global_assignment -name DEVICE 5SGXEABK2H40C2 set_global_assignment -name NUM_PARALLEL_PROCESSORS 4 project_close set fou [open "$rev.qsf" "a"] puts $fou "\n" puts $fou "#==============================================================================" puts $fou "source \"./project_all_setings.qsf\"" puts $fou "#==============================================================================" close $fou ... Тогда в qsf проекта будет только ссылка/source со всеми настройками - красота! В GUI это работает и позволяет контролировать бардак в головах qsf. И действительно - на диске получается красивый qsf ... set_global_assignment -name TOP_LEVEL_ENTITY top set_global_assignment -name ORIGINAL_QUARTUS_VERSION 19.1.0 set_global_assignment -name PROJECT_CREATION_TIME_DATE "02:12:09 SEPTEMBER 18, 2020" set_global_assignment -name LAST_QUARTUS_VERSION "19.1.0 Standard Edition" set_global_assignment -name NUM_PARALLEL_PROCESSORS 4 #============================================================================== source "./project_all_setings.qsf" #============================================================================== Как бы ни так (подумали разработчики Qu) - потому как последующее ... ... project_open -revision $rev $prj set_global_assignment -name PARTITION_NETLIST_TYPE EMPTY -section_id id_some_parttion ... project_close ... приводит к тому что добавленные строки с source удаляются! Получается что в qurtus_sh в этом случае команда project_close ничего не закрывает хотя файл qsf и обновляется после "закрытия". А команда project_open соответсвенно не читает реальное содержимое qsf (а зачем, раз не закрыто то вот же оно, в кэше лежит)? Может кто проверить, такое поведение повторяется? Удачи! Rob.
  3. Всем привет. Мы проводим стримы по FPGA/ПЛИС тематике на твиче по адресу twitch.tv/fpgasystems Обычно, это среда и суббота в 20:00. Записи прошедших стримов лежат на youtube: youtube.com/c/fpgasystems Ждём Вас на стриме. Анонсы предстоящих эфиров в группе в телеграм @fpgasystems (https://t.me/fpgasystems) и VK и FB
  4. Всем добра! Исполняю в командной строке ModelSim-а ModelSim> if {1} {puts "111"} Получаю, как и ожидал # 111 Исполняю тоже самое в командной строке Active-HDL-а: if {1} {puts "111"} Получаю # Error: missing endif for if in line 1 Причём всякие добавления endif в виде if {1} {puts "111"} endif Дают ту же самую ошибку. ЧЯДНТ?!
  5. Доброго времени суток. Итак за пол года изучения Vivado/SystemVerilog добрался вуршины ещё одного холма. В проекте стоит задача передать параметр конфигурации из Block Design в tcl скрипт, который формирует placement констрейны. Ниже скидываю пример тестового проекта. В данном примере для корректной работы нужно прокинуть в папку ip_repo/CSA_1.0 ссылку на sources из корня с именем src иначе ip ядро может не собираться и дико глючить (на линукс машинах уже всё готово). Собственно проблема в том, что я конфигурирую в BD параметр Integer_Resolution компонента CSA (carry save adder), который формирует разное количество триггеров. Дялее мне нужно разложить эти триггеры по плате в конкретной последовательности, для чего в констрейнах прописан скрипт floorplanning.tcl. Вся проблема заключается в автоматической передаче значения Integer_Resolution в переменную component_num в скрипте. Сейчас приходится всё прописывать руками. Возможно ли это сделать в автоматическом режиме? p.s. Любые замечания по проекту также приветствуются, которые позволят оптимизировать/улучшить компоненты или в целом. test_proj.tar
  6. Хочу тут немного свой велосипед попиарить. Репорты dc_shell по площади читать уж больно неудобно -- так сразу непонятно, кто больше всего ее отъедает. Наваял тут мелкий инструмент, немного упрощающий жизнь. https://github.com/dmitrodem/sizefs Состоит из двух скриптов. Тот, что на tcl -- запускается из top-level дизайна в dc_shell, на выходе получается json-файл с иерархией (с отмеченными площадями "листьев" -- блоков из библиотеки). Далее этот файл используется питоновским скриптом, реализующим sizefs -- файловую систему в FUSE, единственное назначение которой -- показывать структуру директорий и размеры файлов. Что мне понравилось -- на смонтированную ФС можно натравить утилиты для анализа дискового пространства (мне нравится кдеешный Filelight, но годится и xdiskusage. Да даже обычный du).
  7. Приветствую!.. По теме были изучены следующие материалы: https://www.xilinx.com/content/dam/xilinx/support/documentation/sw_manuals/xilinx2018_3/ug907-vivado-power-analysis-optimization.pdf https://www.xilinx.com/content/dam/xilinx/support/documentation/sw_manuals/xilinx2018_3/ug997-vivado-power-analysis-optimization-tutorial.pdf На основании которых создан tcl-скрипт из следующей последовательности: read_edif link_design read_saif set_operating_conditions ... report_power На этом этапе выяснил, что саиф у меня неправильный и правильный саиф - это тот, который пишется по нетлисту (ок, как появится новый - перезапущу, ибо новый саиф по нетлисту с обеда пишется всё не запишется). На что обратил внимание особенности работы report_power в старом SAIF: были аннотированы только клок, входы и выходы, дале он пытался сделать Activity Propagation, но по иерархическому репорту по потреблению, видно было что по какой-то причине этого не получилось, лишь финальный модуль конвейера (с которого собственно снимается выход) показал какое-то аномально-высокое потребление. Ok, пока новый SAIF пишется решил поиграться с set_switching_activity, чтобы хоть какие-то начальные результаты были, т.е. вместо read_saif делаю магические последовательности из set_switching_activity. Соответственно, report_power бодро рапортует о том, что честно делает Running Vector-less Activity Propagation... Сначала я подошёл творчески, описал все входы максимально приближенно к реальной картине мира, но затем заметил, что чтобы я не менял - получаю абсолютно одинаковую цифру потребления, в итоге это было протестировано двумя краевыми случаями (шина din[] - единственный вход 512бит, ресета нету): worst_case: set_switching_activity -default_static_probability 0.5 -default_toggle_rate 0 set_switching_activity -static_probability 0.5 -toggle_rate 100 [get_ports din[*]] best_case: set_switching_activity -default_static_probability 0.5 -default_toggle_rate 0 set_switching_activity -static_probability 0.5 -toggle_rate 0 [get_ports din[*]] Вопросы: Почему в случае с аннотированными входами-выходами report_power безобразно пропагирует активность? ЧЯДН? Почему цифры потребления неизменны для абсолютно разных set_switching_activity? ЧЯДН? Протестировано на Вивадо 2018.1 и 2018.3