Jump to content

    

Restinstage

Участник
  • Content Count

    52
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Restinstage

  • Rank
    Участник
  1. - Есть ПЛИС в которой зашит старый проект, выполненный в схематике ( не мной). - Доработка для этого проекта выполнена в виде отдельного многофайлового Верилог проекта. - Проект на верилоге отмоделирован, зашит в ту же ПЛИС для проверки работы в железе. Занимаемый объем как старым проектом, так и новым, так и обоими, сильно меньше 50%. ПЛИС - аналог древнего FLEX10K, никаких умножителей, PLL, никаких IP ядер, тупая логика. Используется Quartus II 9.0 - Генерируется символ из верилог проекта, добавляется в схему старого проекта-схемы способом, описанным выше. Добавленная часть проекта не работает(нет изменений сигналов на выходах). - Весь код верилог проекта скидывается в один файл, генерируется символ вышеописанным способом, добавляется в старый проект - все работает. Вопрос: Почему получается генерить рабочий символ из проета на верилог с одним файлом и не получается из проекта с многими? Точнее не описать.
  2. Вообще я в первый раз сделал то же самое, за исключением пункта 2. Я просто скидывал файл *.bsf непосредственно в папку проекта. Сделал по вашей инструкции, результат тот же.
  3. Если бы вы прочитали что я писал выше, было бы понятно. То есть та часть, которую нужно добавить работает в железе(выполняет необходимые функции), да и функциональное моделирование разумеется проводил. Проблема только в том, чтобы сгенерить и добавить в старый проект символ. Повторюсь, проект на верилоге многофайловый, если весь код пихнуть в один файл и сгенерить символ, все работает. Проект выложить не могу, но суть ясна и без него, проблема не в коде и не в функционале.
  4. Смотря что вы понимаете под оберткой. Есть топ модуль на том же верилоге, почти без функционала кроме пары счетчиков, к нему подключены остальные. Я писал, что компилировал отдельно этот проект и заливал в рабочую ПЛИС чтоб проверить. Из него создавал символ, да.
  5. Да, все файлы проекта на verilog добавлены в библиотеку проекта block diagram. Technology map viewer показывает примерно одно и то же для обоих скомпилированных проектов. Но этот символ не работает. Только если запихать весь код в один файл, сгенерить символ схематик и воткнуть в bdf. Тогда работает. Меня интересует вопрос - принципиально нельзя создать рабочий символ файл из verilog проекта с множеством файлов и уровней вложений?
  6. Так ошибок нет, проект в виде block diagram компилируется с добавленным сгенеренным символом, просто на выходе именно этого нового блока ничего нет. Я делаю Create a Symbol File for Current File в проекте на верилоге и добавляю получившийся символ в библиотеку квартуса, а потом подключаю его на общей схеме.
  7. Есть старый проект в виде block diagram. Нужно было добавить функционала и кое-что поменять, сделал проект на верилоге, проверил его отдельно на этой же пустой ПЛИС. В проекте глубина вложения - 2. Всего 4 файла *.v. Для преобразования кода в символ есть всего одна функция - Create a Symbol File for Current File. И она по идее должна создавать символ только из единичного файла. Но для проверки сделал простенький проект с делителем во вложенном инстансе, преобразовал в схематик и он работал. А вот мой проект работать отказывается. Только если весь код накидать в один файл. Что-то можно с этим сделать?
  8. Забыл отписаться. Все завелось, проблема была в кварце, из-за ошибки в компоненте. Мониторится в 0x000C Internal Fault Bits, периодически вставал XAXB_ERR, не хватало амплитуды скорее всего. Еще есть нюанс работы этой микросхемы, может кому пригодится. При отсутствии входного сигнала она входит в режим Holdover, параметры которого настраиваются в визарде во вкладке DSPLL, в нем она будет циклично выдавать копию сохраненного входного сигнала (до 120 с), используя опорный генератор или кварц. Выйдет она из этого режима только при появлении входного сигнала, генерить начинает даже после сброса питания. Это не отключается из визарда, нужно вручную изменить рег 0x0142 Output Disable Loss of Lock PLL.
  9. Про LOS написал же, показывает что DSPLL работает и есть захват.
  10. Ноль там я видел, выглядит как повер даун. Поэтому и проверил все сбросы, аппаратные и программные. OE0b, OE1b как раз дисейбл выходов. То что я записываю, я проверил, не думаю что он может часть регистров записать, а часть нет. При таком огромном количестве регистров я все-таки надеялся на спецсофт, который их генерит и что все нужные там есть, преабула и постамбула тоже, проверил. Буду смотреть OUT0_DIS_STATE как доберусь до платы, спасибо за подсказку.
  11. Полярность выходных клоков имеете в виду? Можно, но у меня ж проблема что их вообще нет. Выходных тактовых. И я менял в визарде, эффекта нет
  12. Да, конечно первым делом я почитал с нее регистры, как статуса, так и записанные, все читалось. Тестовых сигналов из нее никаких не выведешь, кроме собственно клоков и статуса DSPLL (LOL, LOS), который показывает что все ОК и частота захвачена.
  13. Да, аппаратные сбросы, которых там аж три, ( RSTb, OE0b, OE1b) проверял и во время конфигурации и после, все по даташиту. Алгоритм прошивки "в устройстве пользователя" как здесь https://www.skyworksinc.com/-/media/Skyworks/SL/documents/public/application-notes/an926-reading-writing-registers-spi-i2c.pdf
  14. Jitter Attenuator Si5346 от Silicon Labs (теперь уже Skyworks). Кто-нибудь работал с ним или аналогичным из этого семейства? На вход даю 100 MHz LVDS или CML, с выхода хочу снять тоже 100. Данные для прошивки формируются в визарде ClockBuilder Pro, проект прикрепил. SPI и управление с ПЛИС, данные по юарту передаю с компа. После прошивки на выходе ничего, но микруха теплеет, значит что-то работает. То что сдохла маловероятно, проверял на двух одинаковых платах. Может быть есть какие-то нюансы, подводные камни? Алгоритм прошивки, последовательность регистров, выданный ClockBuilder Pro, сверял с даташитом, все сходится. Si5346-RevD-Des_100M-Project_ver4_0.slabtimeproj Si5346-RevD100-Registers.txt