Koluchiy 0 2 ноября, 2016 Опубликовано 2 ноября, 2016 · Жалоба Здравствуйте, уважаемые гуру. Есть множество (десятки-сотни) сигналов, имеющих вид: {Data[7:0], DataValid}. Все эти множество сигналов надо передать на большой частоте из одного куска большой FPGA в другой кусок. Чтобы эти все сигналы нормально дошли, ставлю между источником (блок А) и приемником (блок Б) на каждый сигнал цепочку триггеров, чтобы поделить путь на куски, которые могут быть пройдены за 1 такт. Проблема с сигналами DataValid. Она заключается в том, что сигналы эти одинаковые (совсем), соответственно синтезатор выкидывает все сигналы кроме одного. И вот этот вот сигнал приходит на все многочисленные подблоки блока Б. Поскольку подблоков Б много, блок Б очень большой, и один сигнал не может успеть во все его концы - нужно дерево триггеров, на выходе штук хотя бы 20. Собственно, вопрос - как заставить Sinplify это дерево сделать нормально, ну или хотя бы не выкидывать его, когда делаю ручками? syn_keep, syn_preserve пробовал - ожидаемо не помогает (Synplify вообще по моему опыту очень странно реагирует на эти директивы). Можно, конечно, работать с XST - он на директивы сохранения сигналов реагирует предсказуемо. Но XST, конечно, не хотелось бы. Можно попробовать навтыкать глобальных буферов, но они дифицит. В общем, любые мысли велкам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 2 ноября, 2016 Опубликовано 2 ноября, 2016 · Жалоба Проблема с сигналами DataValid. Она заключается в том, что сигналы эти одинаковые (совсем), соответственно синтезатор выкидывает все сигналы кроме одного. И вот этот вот сигнал приходит на все многочисленные подблоки блока Б. Поскольку подблоков Б много, блок Б очень большой, и один сигнал не может успеть во все его концы - нужно дерево триггеров, на выходе штук хотя бы 20. Не может или реально не успевает? "Вы это знаете или вы в это верите?" Пусть синтезатор выкидывает. При разводке map и par его продублируют, если будет необходимость. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TRILLER 0 2 ноября, 2016 Опубликовано 2 ноября, 2016 · Жалоба Сделано для синплифая. Ничего не сокращает и не выкидывает.rst_controll.vhd Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 2 ноября, 2016 Опубликовано 2 ноября, 2016 · Жалоба Не может или реально не успевает? "Вы это знаете или вы в это верите?" Пусть синтезатор выкидывает. При разводке map и par его продублируют, если будет необходимость. Не дублируют, потом par жалуется, что времянки не сходятся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Raven 8 2 ноября, 2016 Опубликовано 2 ноября, 2016 · Жалоба А как вы все это дерево обконстрейнили? И еще - я не понял из вашего объяснения, вы дерево в явном виде в RTL описали, или что-то отдали на откуп синтезатору и P&R? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 3 ноября, 2016 Опубликовано 3 ноября, 2016 · Жалоба А как вы все это дерево обконстрейнили? И еще - я не понял из вашего объяснения, вы дерево в явном виде в RTL описали, или что-то отдали на откуп синтезатору и P&R? Пока - никак. Пробовал 2 варианта: 1) Не писать дерево в явном виде и надеяться, что само разберется (не разбирается). 2) Написать дерево в явном виде с syn_preserve. Но на эти директивы синплифаю пофик. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Bad0512 2 6 ноября, 2016 Опубликовано 6 ноября, 2016 · Жалоба Собственно, вопрос - как заставить Sinplify это дерево сделать нормально, ну или хотя бы не выкидывать его, когда делаю ручками? syn_keep, syn_preserve пробовал - ожидаемо не помогает (Synplify вообще по моему опыту очень странно реагирует на эти директивы). Можно, конечно, работать с XST - он на директивы сохранения сигналов реагирует предсказуемо. Но XST, конечно, не хотелось бы. syn_maxfan для Синплифая либо MAX_FANOUT для XST спасут отца русской демократии... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться