XILINX ISE устанавливает маркер ввода-вывода как часы

Я использую Xilinx ISE IDE и редактор схем.

Схема (нажмите, чтобы открыть новое окно)

Файл ограничений выглядит следующим образом:

NET "A" LOC = M18;
NET "F" LOC = P15;
NET "B" LOC = M16;


NET "A" PULLUP;
NET "B" PULLUP;
NET "F" DRIVE = 8;

Но когда я хочу скомпилировать свою программу, возникает эта ошибка:

ERROR:Place:1108 - A clock IOB / BUFGMUX clock component pair have been found
   that are not placed at an optimal clock IOB / BUFGMUX site pair. The clock
   IOB component <B> is placed at site <M16>. The corresponding BUFG component
   <B_BUFGP/BUFG> is placed at site <BUFGMUX_X2Y3>. There is only a select set
   of IOBs that can use the fast path to the Clocker buffer, and they are not
   being used. You may want to analyze why this problem exists and correct it.
   If this sub optimal condition is acceptable for this design, you may use the
   CLOCK_DEDICATED_ROUTE constraint in the .ucf file to demote this message to a
   WARNING and allow your design to continue. However, the use of this override
   is highly discouraged as it may lead to very poor timing results. It is
   recommended that this error condition be corrected in the design. A list of
   all the COMP.PINs used in this clock placement rule is listed below. These
   examples can be used directly in the .ucf file to override this clock rule.
   < NET "B" CLOCK_DEDICATED_ROUTE = FALSE; >
ERROR:Pack:1654 - The timing-driven placement phase encountered an error.

Как это исправить?


person Martin Fischer    schedule 19.07.2015    source источник
comment
Как называется ваша плата FPGA? Расположение вашего тактового штифта не оптимально.   -  person Paebbels    schedule 19.07.2015


Ответы (1)


Хотя теоретически любой сигнал можно использовать в качестве тактового генератора, для FPGA это не так; по крайней мере не оптимально. Часы требуют особых соображений, которые приводят к ограничению того, какой вывод FPGA может быть направлен в сеть часов.

Я подозреваю, что в вашем случае вы использовали кнопку, чтобы действовать как тактовый сигнал, который будет работать только на очень маленьком дизайне (например, вашем) из-за устранения дребезга и того факта, что это не входной порт с поддержкой часов.

Вы можете указать инструменту, что вам нужен неоптимальный и потенциально ошибочный путь синхронизации, добавив следующее ограничение в ваш .ucf:

NET "B" CLOCK_DEDICATED_ROUTE = FALSE;

Имейте в виду, что вы не должны делать это, не будучи уверенным, что ваш дизайн в порядке с ним ... Я рекомендую вам выполнить дальнейший дизайн с «настоящими» часами, подключенными к порту часов на вашей FPGA, каждая плата имеет один. Это ограничение заставит ваш проект работать, но более крупный и быстрый проект может стать источником проблем.

person Jonathan Drolet    schedule 19.07.2015