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

dvladim

Свой
  • Постов

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

  • Посещение

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


  1. А вот так вот с наскока: не может ли это быть проблемой big/little endian вместе с разной разрядностью шин Avalon и UFM?
  2. 1) так как всё делается за 1 такт, то valid каждый такт. Т.е. корректный результат на каждом тактк. Т.е. valid не важен. Рассматривайте свою схему как начинающуюся и заканчивающуюся регистрами. 2) "естественно" потому что 15 нс < 25 нс. Другого смысла я не вкладывал.
  3. Вы видимо не совсем понимаете работу форума: если заплатить - то Вам в раздел предлагаю работу; если готов учиться - то объясняйте что Вы делали и почему не пролучилось. Вам помогут. А выполнять роль преподавателя (кроме г-на Каршенбойма (которго я лично уважаю)) ИМХО вряд ли кто будет. PS. Извините, если получилось довольно грубо.
  4. Итак проблема в двух разных типах в одной цепочке. Можете отдельно запрограммировать каждую схему? Не все одновременно, а по 1-й схеме за раз? Я больше думал о старых версиях (типа 13.1 и т.п.) но вряд ли это применимо ((. Работа с JTAG сводится к работе с двумя последовательными регистрами: регистром инструкций (IRSCAN) и регистром данных (DRSCAN). Работа с этими регистрами сводится к небольшому количеству команд которые описаны в стандартах (и соответственно форматах файлов): JESD71 и SVF. Для формата jam stapl Quartus имеет интерпретатор, который используется примерно так: quartus_jli -a program project.jam Ваша задача сводится к тому чтобы вместо непосредственно программирования получить jam файл, а затем выполнить его в интерпретаторе. Речь шла непосредственно о командах PREIR POSTIR PREDR POSTDR. Изменив эти параметры интерпретатор в команды IRSCAN и DRSAN автоматически добавляет нужное количество незначащих бит и это позволяет без изменения остального jam применить его для любой схемы в цепочке.
  5. А что значит по отдельности программируются? И пробовали ли квартус другой версии? Впринципе всегда можно сделать jam файл для одной схемы и вручную поменять значения для PRE/POST IR/DR.
  6. Т.е. фактически вам нужно получить результат за 3 такта на частоте 200 МГц - те. за 15 нс. Однако в 1-м случае результат получается минимум за 25.3 нс. И как вы собираетесь получить его быстрее? Конвейеризация - это способ увеличить пропускную способность, а не снизить задержку. Теперь по результатам ваших вариантов: 1-й - задержка 25.3 нс (и это видимо минимальная), а сигнал valid в этом случае значения не имеет. 2-й - задержка 3 такта и это естественно не укладывается во временные ограничения. 3-й - задержка 22 такта и во временные ограничения вполне укладывается. Чтобы оценить минимальную задержку, поставьте по 1-му варианту регистры по входу и выходу и посмотрите минимальную частоту. Если она не устраивает, меняйте схему: переводите вычисления на таблицы, снижайте разрядность и т.п. Конвейер вам задержку не снизит.
  7. Таймквест - это средство временного анализа. Именно по его результатам и можно понять, будет ли проект работать на требуемой частоте или нет. И файл временных ограничений - это файл зависящий не от карты, а от проекта. И для карты такого универсального файла быть не может по определению.
  8. Скорее всего вы видите код, который прошел обфускацию. Он синтезируем, но совершенно не понятен и не модифицируем.
  9. А не проще ли формировать эти сигналы на самой CPLD? Несколько счетчиков и шаг 100нс.
  10. ИМХО никак. SPICE модели не предоставляют потому что это практически полностью раскрывает внутреннюю реализацию. А IBIS модель это фактически отклик SPICE модели с паразитами в разных условиях.
  11. MSEL должны стоять в режиме PS (ваше значение не проверял), данные захватываются ПЛИС по переднему фронту, т.е. изменять их желательно по заднему фронту DCLK. На один фронт клока должен быть один бит данных, т.е. никаких стартовых бит, битов четности и т.п. nCE дожен быть в 0. Проверьте LSB/MSB в байте rbf. Не обязательно. Для начала в данных должен быть идентификатор начала. Если ПЛИС его не видит, то и дальнейшие данные не воспринимает. Иногда в данных может случайно встретиться идентификатор начала прошивки, тогда nSTATUS упадет в 0.
  12. Выставьте вручную множитель и делитель PLL. Таким образом сможете повысить частоту VCO и разрешение сдвига фаз.
  13. По-умолчанию он должен быть в Z. Так что тут проблемы быть не должно.
  14. ИМХО то, что такого бита нет ни у ПЛИС ну у ПЗУ, а кристаллы ради этого переделывать очень дорого.
  15. Т.С. желает xilinx. А так есть не только Актел. В этом отношении Lattice хороши, Mach Family например. Где-то уже обсуждалось. Вроде бы прошивку можно вычитать штатными средствами.
  16. Тема старая, но новых подходов пока не придумали. Так что я ее считаю актуальной. Вы сравниваете контроллеры с flash памятью с ПЛИС, где память сделана на ОЗУ. И при включении всегда будет загружаться извне. При этом всегда можно встать на конфигурационные ноги с содрать прошивку. Варианов защиты в этом случае не так уж и много: шифрованная прошивка с ключём в ПЛИС или открытая прошивка, а внутри автомат проверяющий подлинность устройства. Один из вариантов - это внешняя DS2432 Secure EEPROMs. Пример показан в xapp780.pdf
  17. UPD: Решение третье: заведите клок на PLL, выход c PLL один. Изменение фазы можно сделать за счет Dynamic phase shift. Ну например: входная 30 МГц, выходная 30 МГц. Счетчики умножение/деление на PLL - 40, Fvco = 1200 МГц. Изменение фазы кратно 1/8 Tvco. Т.е. для сдвига на 45 градусов нужно подать 80 раз сигнал сдвига по 1/8 Tvco. Легко делается простеньким автоматом.
  18. Решение первое: заведите 4 клока на ALTCLKCTRL. Там возможен выбор 1-го из 4-х. Два клока заведите с выделенных пинов, два других с PLL. Насчет PLL - на вход заведите 3-й клок (или любой на самом деле), выходов сделайте два - каждый с нужным сдвигом по фазе. Решение второе: заведите клок на PLL, выход c PLL один. Выбор нужного клока осуществляйте изменением конфигурации PLL на лету. В этом случае вариантов можно сделать значительно больше 4-х.
  19. Аккуратнее с ними. Вот именно эти (на силабс) работают не совсем корректно. А именно: короткие DRSCAN проходят нормально, а длинные (>1Mbit примерно) сбоят. Может буфер какой переполняется, может ещё что-нибудь.
  20. Вообще похоже что Power on reset у флешки уже отрабатывает, а питание еще до номинального не доросло. Может питание медленно поднимается? И еще: когда вы написали, что JTAG отключили и все заработало - я первым делом подумал о разных потенциалах на землях (отсутствии развязки).
  21. Или память описать не в виде модуля а на языке.
  22. А я вот подумал, что цифровые осциллографы и генераторы сигналов станут совсем другими.
  23. С вашими карандашом и бумагой какие ответы получаются?
×
×
  • Создать...