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

bogaev_roman

Свой
  • Постов

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

  • Посещение

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


  1. А что-нибудь из hight-speed интерфейсов посложнее - гигабитный изернет, DDR3 или трансиверов можно запилить в симулинке? Интересно для общего развития - от софтлайновцев так и не удалось получить внятного ответа пару лет назад.
  2. А, перепутал, извиняюсь. Крайний метод - прибить гвоздями поближе к пинам - Хотел вначале написать да, но на самом деле нет - входные данные меняются каждый такт и актуальны они только один такт. А вот путь между parallel_reg/load_ena_reg и out_fifo в обещем случае да (если частоты от одного источника). Если буфер сделан с хорошей защитой от метастабильности и чтение происходит спустя несколько таков после записи, то пересинхронизацию делать не нужно.
  3. На нескольких платах потребовалось завести все имеющиеся трансиверы (независимы). Для этой цели выбрал режим native с external pll в базовой конфигурации. Написал простейшую обвязку из логики сброса, подстройки и начальной синхронизации ну и генератора ПСП. В качестве CDR клока подаю входной клок на специальную ногу. Т. к. разные концы трансивера находятся на разных платах, то при отсутствии на входе сигнала rx_is_lockedtodata запускается сброс и начинается начальная синхронизация. Ну и, соответственно, в случае, если трансиверы питаются от одного генератора опорной частоты, после начальной синхронизации все работает стабильно, ошибок нет. Но если соединяю две платы (генераторы опорной частоты разные), то через некоторое время падает rx_is_lockedtodata. Соответственно вопрос - я неправильно понимаю логику работы CDR (я считал, что этот блок из входного потока данных благодаря кодированию 8b/10b выделяет опорную частоту -всегда)? Получается, что для правильной работы требуется периодически заново синхронизироваться?
  4. Мне тоже интересно, откуда такие цифры. Согласно документации https://www.altera.com/content/dam/altera-w...-v/av_51002.pdf Global clock and Regional clock 525MHz (1-43) SERDES factor J = 1 to 2, Uses DDR Registers (1-51, (79*) - The maximum ideal data rate is the SERDES factor (J) x the PLL maximum output frequency (fOUT), provided you can close the design timing and the signal integrity simulation is clean) Далее, кстати, на 1-44 fOUT_max=400MHz (This specification is limited by the lower of the two: I/O fMAX or FOUT of the PLL). Но это в случае без DPA, для DPA фактор сериализации начинается от 4. У Вас нет никакой пересинхронизации и т.к. фазовые соотношения между стробом на запись и частотой на чтение могут быть любые, в общем случае схема работать стабильно не будет. Кстати, а что там за временные ошибки timequest рисует, этот переход из одного клокового домена в другой там тоже скорее всего есть. Еще второй момент - канальная синхронизация - Вы пишете в отдельные буфера в общем случае в разные моменты времени, если чтение произойдет посредине между записями, то слово на канальном уровне разобьется на два такта ну или опять же будут временные ошибки.
  5. Посмотрите, что они советуют прописывать при разных настройках корки lvds serdes https://www.altera.com/content/dam/altera-w.../ug_altlvds.pdf На какой частоте пишете, на какой считываете - источник один, а фаза произвольная? Каким образом происходит пересинхронизация - банально пишете на одной, а считываете на другой?
  6. Насколько я помню, эти ограничения и не нужно задавать, почитайте документацию. Требуется только прописать входную частоту, а все остальное через set_false_patch. Узкое место - переход из одного клокового домена в другой (если дальше принятые данные работают на другой частоте) - там fifo с обвязкой ставить придется и, опять же, закрывать пути для анализа.
  7. Я правильно понимаю, что Вы использовали мегафункцию SERDES и к качестве входного клока использовали выход PLL?
  8. Вообще говоря, интересный метод составления рейтинга. Хотя касательно verilog/VHDL не совсем показательный - из 10 источников 2 - это вакансии и работа в штатах, а там всегда намного популярнее был верилог. ЗЫ. А так интересно было бы повторить опрос по типу https://electronix.ru/forum/index.php?showtopic=65 Сколько у нас там AHDL-щиков осталось со схемотехниками и ручным вводом .
  9. Ищите документ по ключевым словам Switching Characteristics для своего семейства. ЗЫ. Если не получится использовать сдвиг по фазе опорной частоты, то возможен еще вариант - задействовать delay chain во входном буфере (для разных семейств корка называется по-разному), там точность подстройки десятки ps.
  10. Ну теперь понятнее немного стало, у Вас клок идет по обычной сигнальной дорожке, отсюда при вычислении setup такой разброс Clock Setup Uncertainty получается. Попробуйте вытащить все-таки путь для расчета setup - в окне TQ запустить report setup summary (report/slack) и в выделенной частоте report timing (в окне data path путь клока clock path должен быть расписан полностью, включая clock uncertainty и clock pessimism). ЗЫ. А вообще смысл такого подробного анализа Вам для чего требуется? Компилятор вообще говоря работает по умолчанию при мерно так - временные ограничения выполняются во всех временных моделях, значит все будет работать. А запас 0.01нс или полпериода (5 нс в данном случае) не важен.
  11. Я к тому, что если сдвиговый регистр и счетчик реализованы на обычной логике, то это все и не заработает на частоте выше 450МГц.
  12. Письмо им напишите, вся документация у них есть (включая примеры по созданию базового проекта), что-то похожее по распиновке здесь http://www.radiant.su/files/images/vzpp/5576xc4t_d.pdf. Более подробную информацию ищите поиском по словам
  13. Почитайте статьи des00 - там понятно все и просто http://kit-e.ru/articles/plis/2010_12_38.php У меня принципиальный вопрос по схеме, приведенной Вами - там на входе отсутствует DDR-регистр, это так и задумано? Ну и, соответственно, эти значения частот взяты из документации - 800МГц? Я просто не видел таких частот для SDR-режима, может все-таки там 800Mb/s для DDR-режима (для arriav максимальные предельные внутренние частоты - региональные/периферийные/глобальные клоки 450-550МГц)?
  14. Вы выводили временную диаграмму от inst0 до inst1 и наоборот, там действительно есть путь и для клокового сигнала, но он нераскрыт (почему так для меня лично загадка) - только общее время. Интересен полный, подробный путь сигнала от пина до клокового входа триггера.
  15. Вообще, если это истинно синхронный интерфейс с стробирующим входным клоком, то можно еще попробовать воспользоваться ограничениями set_input_delay - max/min и Ваш период к этим значениям прибавить. Таким образом, временной анализатор будет считать, что данные в нулевой точке анализа будут задержаны на один период.
  16. В сообщении 4 я Вам описал, каким образом сам смотрю подробно задержки. Цифры, которые увидите, будут отличаться от тех, которые приведены при расчете setup/hold.
  17. С формальной точки зрения он делает все правильно, посмотрите в сторону мультициклов (как задать в вивадо - не знаю).
  18. Не помню, что именно за плисина была, но на двух экземплярах отладочной платы была проблема - прошивка не заливалась. После заливки первой прошивки в ПЗУ плата заработала в штатном режиме и проблема ушла. Дальше уже была наша плата и данной проблемы не было.
  19. Дело не в особенностях сигнал тапа, а в том, что у Вас не выполняются временные ограничения (либо они не заданы). Фактически сигнал обрабатывается на одной частоте, а захватывается и отображается на другой. Если все сделать правильно, то никаких тычков и провалов не будет. Соотношение частот, каким образом формируются, как происходит захват данных и пересинхронизация?
  20. Нет, прошивается все нормально, ошибок нет, config_done подымается в единицу. Но при этом алгоритм не работает. Ошибку исправил разработчик ПП - с его слов на какой-то ноге, отвечающей за конфигурацию стоял не тот транзистор (тут я не до конца понял - типа на выходе должно было быть 2.5V, а было 0.6V, разбираться времени не было), после перепайки все работает в штатном режиме.
  21. Имеется ввиду то, что у Вас сигнал C проходит через 8 последовательных логических блоков lcell перед тактированием inst1, которые должны добавить задержку (судя по отчету задержки для данных - там их такое же кол-во) порядка 4.5нс. В данном случае разница меньше 1нс. Вот здесь странность какая-то в отчете - timequest должен отобразить отсчет нулевой точки от входного пина и дальше расписать по каким ячейкам сигнал проходит до клокового входа триггера, а в отчете он как будто сразу заведен на клоковый вход с заданной начальной задержкой - первый раз такое вижу. Интересно было бы увидеть схему после синтеза и фиттера (RTL viewer/technology map viewer).
  22. В моем понимании попил бюджета заключается в получении денег и создании атмосферы деятельности с нулевым выходом. В ситуации конкретно с этим процессором выход был, и неплохой. При этом изначально и не ставилась цель создать чип для массового потребителя. Причем здесь микроконтроллеры, я писал о конкретном процессоре, Вы предлагаеге МЦСТ с intel конкурировать? Я, пожалуй, еще раз спрошу - Вы вообще в курсе сколько нужно времени и средств только на разработку процессора и его отладку? Мне кажется все банально просто - нет возможности собрать большое кол-во быстро, если Вы сейчас сделаете запрос, то уверен, что получите машину нескоро. Первая партия с фабрики была отгружена 4 года назад на отбраковку, даже если бы это был идеальный чип с низкой себестоимостью невозможно создать быстро с нуля процесс сборки и логистику. ЗЫ. Пожалуй, закончу бесполезный спор, дабы тема не свалилась в :bb-offtopic:
  23. Когда они клепаться миллионным тиражом будут, тогда и цена снизится. Вы вообще в курсе сколько нужно времени и средств только на разработку процессора и его отладку, о каком попиле речь идет?
  24. Возникла следующая проблема - получил плату с arria5 (в jtag-цепочке только она), подготовил тестовую прошивку (реализован счетчик, старшие разряды которого выводятся на диоды с частотой несколько единиц герц и кнопка, которая проходит без логики также на диод). Залил .sof-файл, programmer выдал сообщение об успехе, конфиг дан, подключенный к диоду, загорелся и все.... Логика не работает, кнопка не работает, сигнал тап не запускается и выводит сообщение и том, что данный инстанс не найден (примерно так). Вначале думал глюк ПО, но после смены версии квартуса и нескольких типов бластера застопорился. Может кто-нибудь сталкивался с подобным? Буду благодарен за любую наводку.
  25. Каким образом частота на схему идет и что Вы прописываете во временных ограничениях (кроме периода в 10МГц)?
×
×
  • Создать...