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

    

Inanity

Участник
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о Inanity

  • Звание
    Местный

Посетители профиля

2 691 просмотр профиля
  1. Сэмплировать висящие в воздухе ножки бессмысленно. Сделайте счётчик на плате с циклоном, выведите пару бит и заведите их обратно в ПЛИС (кольцо) и посмотрите что получится.
  2. Перечитал всё ещё раз. Всё таки не туда копаем. Если CE в единице и мы наблюдаем такую картину, то тут что-то на физическом уровне не так. На примере CE как будто что-то наводит помеху на него. А банки обеих ПЛИС реально (в железе) питаются от 3.3V ? Можете это подтвердить? С землёй как я понял всё в порядке?
  3. Чёрт, прошу прощения, впредь буду внимательнее. Если вы с помощью одной PLL создаёте эти два клока, они как раз синхронны, тем более для такого периода. Хотя как заметил MegaVolt на высоких частотах из-за разницы пути следования сигнала в ПЛИС возможны проблемы.
  4. Без инвертирования на целевой плате вы пытаетесь защёлкнуть данные в тот момент, когда они меняются. При инвертировании тактового сигнала у вас появляется большой запас.
  5. На обоих платах сделайте тактирование по фронту (posedge/rising_edge). И передаваемый тактовый сигнал нужно инвертировать! И всё будет работать и не только на 2МГц.
  6. Naixrim, я думаю, что у вас просто линия не согласована. Таким образом возникают отражения, которые портят ваш меандр. Для Spartan-6 попробуйте включить последовательный терминатор на буфере через OUT_TERM. Начните с 25 ом, мне кажется это поможет. NET <NET NAME> OUT_TERM = <NONE/ UNTUNED_25 / UNTUNED_50 / UNTUNED_75>;
  7. Хм...проверил, действительно ворнинга нет. Не знал, что `include *.vh можно сделать внутрь модуля. Спасибо, коллега!
  8. Да, можно, но если модулей пара, один конфигурирует таймер другому, а если иерархия, то нужно считать суммы задержек, а сумматор ставить - не дело, лучше уж handshake. Спасибо, в общем, примерно так и представлял себе. Но вроде как функцию объявлять вне модуля в Verilog (не SystemVerilog) нельзя, разве нет?
  9. Если это будет провод, то железо будет фиксировано, а если параметр, то я смогу с помощью generate играться настройками железа, убавляя/добавляя и тд... Рад, что вы меня поняли. А можно немного подробнее?
  10. Да, спасибо, я всё это прекрасно понимаю. Ок, раскрою идею чуть шире, чтобы развеять недопонимание. На самом деле единственный параметр, который я хотел бы прочитать от нижнего модуля это его латентность в тактах. И, согласитесь, это параметр, который невозможно (если не невозможно, то странно) генерировать сверху вниз. Я понимаю, что эту проблему можно решить стробами вроде ready/valid между модулями, но в данном случае мне это показалось избыточным, т.к. задержка фиксированная. И у меня возникла мысль, зачем тратить логику на организацию handshake, если задержка фиксирована и её нужно просто указать в виде числа. А, поскольку я имею иерархию модулей, нужно всю иерархию настроить относительно латентности модулей, которые ниже уровнем.
  11. Приветствую! Для синтеза. Хотелось, чтобы модуль верхнего уровня читал некоторые параметры подчинённого модуля и таким образом изменял принцип работы с ним. Просто эти параметры сверху вниз передавать как-то странно и бессмысленно. Т.е. я изменяю нижний модуль, а верхний, читая его параметры, подстраивается под его работу. Таким образом не нужно делать изменения в обоих модулях (или иерархии, если их много).
  12. Есть ли возможность считать параметр модуля, который ниже в иерархии? Тут пишут, что можно, но что-то как-то не работает. Или там имеется ввиду System Verilog? https://electronics.stackexchange.com/quest...ance-in-verilog
  13. Последовательные AC coupling конденсаторы на линиях имеются?