Jump to content

    

BSACPLD

Свой
  • Content Count

    558
  • Joined

  • Last visited

Community Reputation

0 Обычный

2 Followers

About BSACPLD

  • Rank
    Знающий
  • Birthday 06/16/1986

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

4512 profile views
  1. Коллеги, пытаюсь запустить тестбенч с моделью M95XXX с сайта ST. Файлы компилируются без ошибок, но при запуске моделирования получаю кучу ошибок вида: (vopt-7063) Failed to find 'M95XXX_SIM' in hierarchical name 'M95XXX_SIM.M95XXX_Macro_mux.tHLQZ'. Моделирование запускаю через: vsim -gui -voptargs="+acc" work.test ModelSim SE-64 2019.2 Можно ли как-то победить данную проблему?
  2. Дело в том, что в некоторых моделях для симуляции той же DDR, timescale может стоять отличным от того что хотите Вы и он переопределит шаг временного моделирования во всех нижестоящих файлах. Если это память программ, то да. Ее нужно инициализировать. А во всех остальных случаях это лишь потенциальное место для некорректного состояния системы из которого она может никогда не выйти. Вот X как раз и нужны для проверки того как система выходит из некорректных состояний.
  3. Так ведь нехороший человек может и не вписать себя в шапку ;) Для таких случаев как раз и есть svn / git и другие системы контроля версий.
  4. Коллеги, существует ли литература / сайты где подробно описаны основные правила хорошего тона при проектировании под FPGA? - что рекомендуется делать. - что не рекомендуется. - за что бить по рукам. Самому как-то лень писать, да и я тоже могу чего-нибудь не знать... Лично для себя я выработал следующий набор правил: - полностью синхронный проект, асинхронные блоки допускаются только если я точно понимаю как это будет работать, как обконстрейнить и их количество должно стремится к нулю. - чем меньше разных тактовых доменов, тем лучше. - для понижения частоты работы блоков использовать clock enable, а не generated clock. - асинхронный сброс при отпускании должен быть синхронизирован с тактовой частотой триггеров которые он сбрасывает. - все переменные объявляются в начале файла, а не по мере их использования. - все переменные объявляются явно. - для знаковых чисел указывается их знаковость (signed). - аппаратно зависимые блоки оборачиваются во врапперы. - никаких LPM в проекте (Altera/Intel). - никакой схематики и устаревших языков (исключение Block Design в Xilinx и QSYS в Altera). - по возможности использовать стандартные шины (APB, AXI, Avalon, Wishbone). - код пишется максимально кроссплатформенным и параметризованным. - в начале файла обязательно налиличе timescale. - все переменные инициализируются X при моделировании. - код проверяется на соответствие стандарту в ModelSim/NCSim. Это так сказать набор правил выработанный за долгие годы работы, но не факт что он полный / достаточный. Хотелось бы почитать подходящую литературу и узнать мнение знающих людей.
  5. Поставил VX2.7 есть пара вопрсов. - как переключить язык на Английский? В схемном редакторе нашел, а вот Layout никак не могу найти :( - куда пропали кнопки переключения режима выделения Place, Route, Draw и как включить их отображение?
  6. Под 1G есть стандартные покупные свичи под тот же CompactPCI, например. https://www.kontron.com/products/boards-and-standard-form-factors/cpci/6u-switches/cp6925.html И там стандартизована разводка (какие дифпары на какие пины). См. стандарт PICMG 2.16. Сам Ethernet обычный 1000Base-T на медь через трасформатор. Я делал платы как раз для такого форм-фактора. PHY был 88E1111. Работало на ура без каких-либо проблем.
  7. Да там не только плату, а саму идеологию передачи данных нужно переделывать :(
  8. У меня тоже получалось достичь нормальных частот на той же ПЛИС на другом проекте. Разница только в распиновке и количестве каналов. UPD. Да даже на этом проекте. Один из каналов укладывается во времянки (задержка 1,5 нс), а остальные нет (задержка 3,4 нс).
  9. Так ведь там PLL для этого отдельный нужен. У меня 8 каналов. Нет у меня столько PLL... Вся загвоздка в том, что нельзя ее подобрать. У разных типов плат подключаемых к данному коммутатору она будет разной. А платы нужно иметь возможность подключать в любом порядке.
  10. Разместил вручную прямо рядом с DDIO. Все равно задержка от DDIO до триггера больше 3 нс.
  11. Да. Но только если память объявлена как двумерный массив. Если сделать трехмерный, то получим кучу логики. Причем это давняя проблема: https://www.xilinx.com/support/answers/53507.html