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

nice_vladi

Свой
  • Постов

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

  • Посещение

Весь контент nice_vladi


  1. У vsim есть ключик -G для переопределения всех параметров с таким именем в исходника, либо ключик -g, который перреопределяет параметр с таким именем в модуле верхнего уровня
  2. Прочитал тему, тоже очень хочу посмотреть на этот проект. С удовольствием приму экземпляр в лс.
  3. Цена вполне гуманна для готовой платы с СнК на борту. Вы в любом случае будете привязаны к железу. К stm32, к разъемам HDMI/VGA, производителю ПЛИС и т.д.... Можно попробовать отвзятаться от железа и производителя в каких-то пределах, но это точно не про ПЛИС. Везде и всегда вы обязаны будете пользоваться софтом производителя для компиляции, прошивки и отладки. Разве что для симуляции есть open-source решения, да и то, они пока оставляют желать лучшего. При использовании СнК у вас есть ПЛИС на которой вы вольны творить всё, что угодно, в т.ч. процессор и есть настоящий процессор, который может взять на себя роль всех остальных устройств на вашей картинке. Ну, либо берет кучу stm32 и упражняетесь. Результат не гарантируется) Тем более, если вы хотите +- скоростные интерфейсы между всеми устройствами системы. ЗЫ. В таких темах регулярно появлялся @iosifkи доступно разъяснял разницу между нацеленностью на результат и нацеленностью на процесс.
  4. Всё украдено до нас: https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=1046
  5. Вообще, т.н. hardware in the loop имеет место быть. Например: https://inspirehep.net/files/06c877a9ec568472aac84923dd0056a3 Правда затраты времени на организацию всего этого и написания тестов... Разве что для проектов с очень длительным сроком жизни. Что бы время, потраченное на организацию тестов и стенда равномерно размазалось на много лет
  6. Мне кажется RTFM: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/cfg/cfg_cf51001.pdf https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/cfg/cfg_ch11_vol2.pdf Ну и с осциллом смотреть, что там на конфигурационных ногах творится. Тем более, они у вас заведены на резисторы - можно удобно ткнуться щупами. Или даже распаять проводки и на многоканальном осцилле смотреть прям как в мануале - параллельно) Ну и JTAG тоже посмотреть, форму импульсов особенно.
  7. UPD: Есть обновление. Итак: 1. В настройках IP core снял чекпоинт SGMII PHY mode. Т.е. физика включается в режиме MAC. После этого IP core начало корректно показывать status_vector. 2. Процессор начал правильно определять скорость, состояние линка. Но при включении линукса с отключенным кабелем всё равно надо перезагружать интерфейс. Однако, при перепрошивке всё работает нормально. В общем, всё заработало почти так, как требуется.
  8. Всем здравствуйте, Поднимаем ZynqMP. Плата ZCU102 rev 1.1. Нужно подключить один из трансиверов SFP коробки к процессору через EMIO. С этим особых проблем не возникло, использовали мануалы от Xilinx. Поднялся трансивер, поднялся интерфейс в процессоре. Есть следующие ограничения: 1. Интерфейс работает только в режиме 1G, поэтому процессору нужно каждый раз это указывать. Команда из мануала от Xilinx: ethtool -s eth0 speed 1000 duplex full autoneg off Т.о. автосогласование не работает. В том числе после переподключения кабеля, нужно заново пинать процессор делая вкл/выкл автосогласование. 2. Следует из (1) при перепрошивке ПЛИС нужно опять пинать процессор. Всё это очень неудобно для разработки. Может быть, кто-то сталкивался и знает, как научить linux понимать автосогласование через EMIO? Что сделано: IP ядро PCS/PMA 1G/2.5G в режиме SGMII, Autonegotiation включено. Режим физики SGMII PHY mode. На процессор заведены MDIO и an_interrupt. status_vector IP ядра почему-то всегда показывает скорость 00 (10 Мб), вне зависимости от состояния подключенного линка. an_interrupt поднят в 1, процессор, почему-то, его не сбрасывает. Это то, что увидел chipscope. Процессор видит физику по MDIO и может читать/писать регистры IP core. ЗЫ. Добавленные патчи: 0001-net-xilinx_phy-Add-flag-to-reset-after-clock-enable.patch 0002-net-macb-Handle-phy-reset-for-PCS-PMA-IP.patch
  9. Неплохая статья https://medium.com/analytics-vidhya/discrete-time-design-using-python-filter-design-analysis-tool-e8dd432e490e
  10. Всем здравствуйте, Дошли руки причесать и выложить в репозиторий. Возможно кому-то будет полезным. https://pypi.org/project/vloginit/
  11. Мне нравится Sublime Merge. Использую вместе с редактором Sublime Text. У них друг в друга интеграция есть - оч удобно
  12. Итак, закончил упраженения с новой вивадой. Была установлена 2020.2. В ней создан проект с block design, ip. Всё это помещено в git. Опытным путем выяснил, что для корректной сборки проекта достаточно оставить в нём .xci файлы. В реузльтате получил вот такой gitignore: netlist/*.cache netlist/*.hw netlist/*.gen netlist/*.runs netlist/*.sim netlist/.Xil netlist/*.ip_user_files netlist/*.srcs/sources*/bd/** !netlist/*.srcs/sources*/bd/**/*.xci netlist/*.srcs/sources*/ip/** !netlist/*.srcs/sources*/ip/**/*.xci .ioplanning *.jou *.log sim/**/work sim/**/*.ini Единственное, что стало хуже - после выгрузки чистого проекта из git, Vivado оооочень долго его открывает. Последующие запуски - нормально.
  13. Как в 2020.2 пробовал. Без папок .gen и .ip_user_file проект не разворачивается - сыпет ошибки. Возможно, я где-то ошибся... Не подскажете полный алгоритм, даже если звучит очень просто? Да, проблема. Хочется однозначно и железно всегда складывать в гит определенный набор файлов, который обеспечит развертывание проекта "с чистого листа". Пока, как писал выше, приходится складывать огромное количество файлов. Особенно при наличии нескольких крупных IP cores. Лирика: в Quartus я точно знал, что сложу .qsys, .qsf, .sdc файлы, и при разворачивании проектов получу полностью готовое окружение. В vivado могу только мечтать и придумывать костыли.
  14. БД можно сохранить в .tcl. Но потом это нужно как-то развернуть и добавить в проект сам .bd и еще кучу файлов, которые будут сгенерированы после его синтеза. Я пока на этом месте застрял)
  15. Апну тему. Пытаюсь изменить привычки и начать работать со скриптами, вместо складывания в гит кучи файлов вивады. Столкнулся с несколькими непонятностями: 1. Как правильно добавлять и описывать block design в проекте? С учетом того, что всё хочется делать в скриптах, раз уж взялся. Кстати, ни один внешний фреймворк или мануал не учитывает bd файлы, насколько я вижу. 2. Что с автоматизацией? Имею в виду, нет никакого желания перед коммитом делать write_*_tcl, потом разбираться, куда сложились эти файлы и т.д. В общем, как минимизировать ручной труд при использовании вивады со скриптами?
  16. Тогда не знаю, гадать можно долго. Я бы просто пересоздал проект с самого начала, если уж совсем затычная ситуация.
  17. Попробуйте зайти в настройки проекта и ручками удалите ненужны .ip/.qsys и остальные файлы. ЗЫ. Project -> Add/Remove files in project -> выделяете ненужные -> Remove -> (!важно)OK
  18. +++ Пока дизайн не очень большой и сложный, я бы перетряхнул всё с чистого листа. Изначально задавшись ограничениями: - на передельную частоту: скажем, 200 МГц, хотя и это для циклона5 не сильно комфортно - на концепцию использования тактовой частоты: только положительный фронт, одна тактовая в проекте, в случае необходимости понижения - использовать clock enable Ну и как следует отсимулять всё это. Тогда соблюдайте парадигму: для 200 все сигналы формируйте на 200, для 100 - все сигналы на 100. Нужно понимать, как он соотносится с остальными сигналами в дизайне. Да и слепо верить TQ не стоит. Он показывает только то, о чем вы просите. Где-то у @des00 были годные статьи на эту тему. Зацепился взглядом за то, что вы входной сигнал (с пина) протащили через логику и только потом щелкнули в регистр. С учетом того, что у вас 100+ МГц в дизайне, я бы не стал так делать. Он есть, просто был очень глубоко в списке слаков. По умолчанию TQ показывает только первые 200 худших путей. ЗЫ. Либо, если "и так сойдёт" и не нужно будет всё это развивать и поддерживать, просто забить на все предупреждения TQ. Мб и не имеет смысл тратить время на перетряхивание проекта о котором больше вы никогда не вспомните...
  19. Тоже решил заглянуть, проходя мимо. Развернул проект - не нашел слаков, связанных со счетчиками. Только куча addr_mem_b[...], связанных с разными тактовыми доменами и т.д. А зачем на 200МГц по отрицательному фронту какие-то данные перекладывать? Там такая анархия творится... Мне кажется, дело не столько в счетчиках, сколько в этом. Перейдите в единый тактовый домен, уберите работу по заднему фронту тактовой. ЗЫ. Во всех RAM на порт А подана тактовая 100 МГц, а addr_mem_b защёлкивается на 200 МГц. mem0: RAM2P PORT map ( address_a => addr_mem_b, address_b => adr_b, --BUS clock_a => clk100_s, clock_b => nlk200_s,--clk200_s, --clk200_s, --BUS data_a => DATAspi_b, data_b => dat_b, --BUS wren_a => wsw0_s, wren_b => ww0_s, --BUS q_a => rim0_b, q_b => bus0_bus --BUS ); ... ... aaa: process (clk200_s) begin if clk200_s'event and clk200_s = '0' then addr_mem20t_b <= addr_mem200_b;--тут конвейер по адресу addr_mem2tt_b <= addr_mem20t_b; addr_mem_b <= addr_mem2tt_b; end if; end process aaa; Тоже самое с "address_b => adr_b, --BUS". Входной сигнал через комбинаторику засовывается в порты RAM на 200 МГц. Тоже самое с сигналом wt_s - формируется на 200 МГц, используется для записи в порт RAM, работающий на 100 МГц
  20. А на картинке импульса с конденсатора какая цена деления по оси Х? Объясню: тоже видел спектрометр на детекторе мощности. Примерно такая же схема, немного больше рассыпухи. Так вот, в нём импульс приходил на АЦП с частотой 1 МГц. И из-за маленькой длины импульса АЦП не всегда "попадало" на импульс. Период тактовой АЦП 1/1е6 = 1 мкс. Если пик импульса, приходящего на АЦП короче периода тактовой АЦП, то АЦП просто физически не может его всегда правильно оцифровывать, оно не видит пик. В вашем случае, для тактовой АЦП 500 кГц (худший случай) длина импульса должна быть не менее 2 мкс.
  21. Здравствуйте, Если аналоговый тракт в порядке - надо грешить на цифру. Осциллограмы импульса - это входной импульс? Или тот, который уже на входе АЦП? Какая тактовая у АЦП?
  22. Уже не первую вакансию вижу, где одновременно с требованием опыта работы 3+ лет предъявляют требования к оценкам в дипломе. Всегда думал, что при наличии релевантного опыта работы по специальности в диплом универа вообще никто никогда не смотрит. Это прям требование работодателя? Либо какая-то формальность от вашей фирмы?
×
×
  • Создать...