Fen1xL 0 April 23, 2014 Posted April 23, 2014 · Report post Здравствуйте. У меня вопрос, бьюсь уже несколько дней, может подскажете?! Плис Xilinx Spartan-6 lx150. Вот у меня есть частота, которая приходит на чип, потом через pll делается 200МГц и 30МГц (т.е. не кратные частоты). Написал логику, где требуется кросс-доменное взаимодействие этих частот, там из 30МГц триггера сигнал приходит на 200МГц. Это кусочек асинхронного fifo. Не могу развести дизайн, PAR берет между ними 1.6нс (это нереально), получает их 35(т.е. 1/200МГц * 7) - 33.333(т.е. 1/30МГц) = 1.6. Внимание вопрос, возможно ли нормально развести НЕ кратные частоты (если вместо 30МГц использовать 100МГц, то вопросов нет, но нужно именно 30)? Кусочек Trace report. Slack: -0.840ns (requirement - (data path - clock path skew + uncertainty)) Source: read_5 (FF) Destination: full (FF) Requirement: 1.667ns Data Path Delay: 1.781ns (Levels of Logic = 2)(Component delays alone exceeds constraint) Clock Path Skew: -0.436ns (2.136 - 2.572) Source Clock: s_clk30mhz rising at 33.333ns Destination Clock: s_clk200mhz rising at 35.000ns Clock Uncertainty: 0.290ns На форуме новичок. Честно пытался найти похожее. Quote Share this post Link to post Share on other sites More sharing options...
des00 26 April 23, 2014 Posted April 23, 2014 · Report post задать констрейны, где объявить частоты аснхронными Quote Share this post Link to post Share on other sites More sharing options...
Fen1xL 0 April 23, 2014 Posted April 23, 2014 · Report post Т.е. получается, все не кратные частоты, которые синтезируются pll или dcm невозможно развести по умолчанию?Тогда зачем среда использует такие значения, которые заведомо невозможно реализовать? Или здесь какая-то хитрость в работоспособности? Quote Share this post Link to post Share on other sites More sharing options...
FatRobot 5 April 23, 2014 Posted April 23, 2014 · Report post в SDC 1. Частоты асинхронные (независимые), т.е. для каждого домена делаете свой create_clock 2. Для сигналов между доменами делаете set_false_path. или set_clock_groups -asynchronous Потом вручную размещаете все, что относится к переходу между доменами. "развести по умолчанию" - это хороший юмор. Это не среда использует. Это вы используете. Вот и отвечайте, зачем. Quote Share this post Link to post Share on other sites More sharing options...
Fen1xL 0 April 23, 2014 Posted April 23, 2014 · Report post Всем спасибо, пока отделался: TIMESPEC ts_from30_to200 = FROM "grp_clk30mhz" TO "grp_clk200mhz" 5 ns DATAPATHONLY; TIMESPEC ts_from200_to30 = FROM "grp_clk200mhz" TO "grp_clk30mhz" 33 ns DATAPATHONLY; Quote Share this post Link to post Share on other sites More sharing options...
TRILLER 0 April 24, 2014 Posted April 24, 2014 · Report post Т.е. получается, все не кратные частоты, которые синтезируются pll или dcm невозможно развести по умолчанию?Тогда зачем среда использует такие значения, которые заведомо невозможно реализовать? Это почему же невозможно? Если между триггерами нет логики - очень даже легко. Зато в таком случае не нужно делать асинхронный переход. Quote Share this post Link to post Share on other sites More sharing options...