Цитата(Boris_TS @ Feb 3 2007, 09:55)

Ознакомившись с архитектурой Xilinx CoolRunner (XPLA3 CPLD)
http://direct.xilinx.com/bvdocs/publications/ds012.pdf, вы обнаружите, что логика в XPLA3 реализуется на PLA и XOR (который может быть использован перед триггегом). Если в опциях XST поставить Preserv XOR, то XOR не будет преврашен в логику на AND и OR, а Fitter точно положит XOR на место.
(с особенностями логических матриц PAL и PLA можно ознакомиться тут:
http://direct.xilinx.com/bvdocs/publications/xapp444.pdf)А слона-то я и не заметил... То есть что речь идет про CPLD.
В CPLD другая модель тайминга, поэтому и методы борьбы с метастабильностью IMHO должны быть несколько иными. Главное - что все соединения между триггерами производятся через ZIA. То есть путь для метастабильного сигнала (выход D1 - вход D2) все равно большой, почти равен периоду клока, и слабо зависит от того, сколько логики на нем висит. А значит, вблизи максимальной рабочей частоты кристалла (а именно этот случай особо интересен) простой синхронизатор из двух триггеров может работать ненадежно.
Как с этим можно бороться?
Первое - можно увеличивать период глобального клока, на время, достаточное для восстановления после метастабильности. При этом не будет важно, какая логика висит между триггерами
Второе - проанализировать модель тайминга и использовать короткий путь (единственный P-term), полагая, что разница между длиной короткого пути и обычного пути в логике (порядка 0.5 нс) будет достаточна для восстановления из метастабильного состояния. Это именно Ваш метод. Кстати, почему именно аппаратный XOR, а не T-вход триггера? И Вы, случайно, не исследовали параметры метастабильности для этого кристалла, чтобы можно было оценить вероятность сбоя при таком методе?
Третий, причем, вероятно железный путь - можно организовать работу синхронизатора на половинной частоте. В этом случае будет еще дополнительный период клока для выхода D1 из метастабильности. Но, конечно, это решение может потребовать пару дополнительных триггеров - делитель и формирователь выходного импульса.