DCM – архиважный элемент в ПЛИС. Часть четвертая

В этой статье хотелось бы немного рассказать  о достаточно интересной особенности блока DCM в плис xilinx типа FPGA. Иногда бывает, что блок DCM инициализируется неправильно при подаче питающих напряжений на ПЛИС. Это ведет к тому, что атрибуты блока DCM, которые вы выставили в вашей конфигурации в проекте xilinx ise (например, коэффициенты деления/умножения), фактически не задействуются в вашем проекте. 

плис xilinx

Например, вместо коэффициента умножения 3 в DCM прописывается 6 или еще какой-нибудь информационный мусор. С чем это связано, сказать трудно. Возможно, с проблемами ЭМС (электро-магнитной совместимости) устройств, и проблемы эти сказываются при включении питания. Возможно, влияет дребезг контактов тумблеров питания.

У этой проблемы теоретически есть два пути решения. На практике пока мною испытано первое.  Вход RST блока DCM не нужнопривязывать к нулю в проекте. На вход RST при подаче питающих напряжений следует подавать логическую единицу в течении определенного периода времени. На практике это время составляет не менее 100 ms от момента включения, но чем дольше, тем надежнее. За это время питающие напряжения установятся, и блок DCM войдет в режим, соответствующий атрибутам, определенным в конфигурационном файле. После инициализации DCM на вход RST постоянно подается логический ноль, и так вплоть до момента отключения питания. На рисунке 1 показана схема реализации сброса блока DCM плис xilinx в начальное состояние. Схема состоит из счетчика с асинхронным сбросом, делителя частоты, D-триггера и инвертора. В нашем примере на вход подается сигнал с частотой 10 Мгц, который делится на 20 до 500 кГц. Сигнал с частотой 500 кГц подается на тактовый вход 16-разрядного счетчика. Примерно через 120 мс фронт сигнала с выхода TC счетчика (Terminal Count, переполнение) переключает D-триггер в состояние «единица».Логическая единица с выхода D-триггера сбрасывает в нулевое состояние счетчик, а также, проинвертированная, подается на вход RST. Все элементы схемы находятся в таком состоянии до отключения питания. На рисунке 2 показано моделирование работы описанного устройства в xilinx isim

плис xilinx

Второе решение этой проблемы может быть следующее. В атрибутах блока DCM имеется параметр STARTUP_WAIT. Судя по описанию, стоит выставить значение этого параметра TRUE, и проблема с некорректной инициализацией блока DCM плис xilinx решится сама собой.

плис xilinx

Как только попробую на железе, обязательно укажу в статье.

 

Об авторе admin

Инженер. Окончил НГТУ по специальности "Радиосвязь, телевидение и радиовещание". С 2003 г. занимаюсь разработкой электронной начинки различных радиотехнических устройств и приборов.
Запись опубликована в рубрике Все статьи, Начинающему с метками . Добавьте в закладки постоянную ссылку.

Один комментарий на «DCM – архиважный элемент в ПЛИС. Часть четвертая»

  1. Евгений говорит:

    Предложу не менее надежный, но более сложный в реализации вариант – задействовать порт динамической реконфигурации DRP у компонента DCM.
    таким образом можно гарантированно задать коэффициенты и параметры блока DCM спустя те же 100 мс после старта прошивки.

Оставить комментарий