Перейти к содержанию
    

Как заставить ISE с или без Sinplify

Здравствуйте, уважаемые гуру.

 

Есть множество (десятки-сотни) сигналов, имеющих вид: {Data[7:0], DataValid}.

Все эти множество сигналов надо передать на большой частоте из одного куска большой FPGA в другой кусок.

 

Чтобы эти все сигналы нормально дошли, ставлю между источником (блок А) и приемником (блок Б) на каждый сигнал цепочку триггеров, чтобы поделить путь на куски, которые могут быть пройдены за 1 такт.

 

Проблема с сигналами DataValid. Она заключается в том, что сигналы эти одинаковые (совсем), соответственно синтезатор выкидывает все сигналы кроме одного.

И вот этот вот сигнал приходит на все многочисленные подблоки блока Б. Поскольку подблоков Б много, блок Б очень большой, и один сигнал не может успеть во все его концы - нужно дерево триггеров, на выходе штук хотя бы 20.

 

Собственно, вопрос - как заставить Sinplify это дерево сделать нормально, ну или хотя бы не выкидывать его, когда делаю ручками? syn_keep, syn_preserve пробовал - ожидаемо не помогает (Synplify вообще по моему опыту очень странно реагирует на эти директивы).

Можно, конечно, работать с XST - он на директивы сохранения сигналов реагирует предсказуемо. Но XST, конечно, не хотелось бы.

 

Можно попробовать навтыкать глобальных буферов, но они дифицит.

 

В общем, любые мысли велкам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема с сигналами DataValid. Она заключается в том, что сигналы эти одинаковые (совсем), соответственно синтезатор выкидывает все сигналы кроме одного.

И вот этот вот сигнал приходит на все многочисленные подблоки блока Б. Поскольку подблоков Б много, блок Б очень большой, и один сигнал не может успеть во все его концы - нужно дерево триггеров, на выходе штук хотя бы 20.

Не может или реально не успевает? "Вы это знаете или вы в это верите?" Пусть синтезатор выкидывает. При разводке map и par его продублируют, если будет необходимость.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделано для синплифая. Ничего не сокращает и не выкидывает.rst_controll.vhd

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не может или реально не успевает? "Вы это знаете или вы в это верите?" Пусть синтезатор выкидывает. При разводке map и par его продублируют, если будет необходимость.

Не дублируют, потом par жалуется, что времянки не сходятся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как вы все это дерево обконстрейнили? И еще - я не понял из вашего объяснения, вы дерево в явном виде в RTL описали, или что-то отдали на откуп синтезатору и P&R?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как вы все это дерево обконстрейнили? И еще - я не понял из вашего объяснения, вы дерево в явном виде в RTL описали, или что-то отдали на откуп синтезатору и P&R?

Пока - никак.

 

Пробовал 2 варианта:

1) Не писать дерево в явном виде и надеяться, что само разберется (не разбирается).

2) Написать дерево в явном виде с syn_preserve. Но на эти директивы синплифаю пофик.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Собственно, вопрос - как заставить Sinplify это дерево сделать нормально, ну или хотя бы не выкидывать его, когда делаю ручками? syn_keep, syn_preserve пробовал - ожидаемо не помогает (Synplify вообще по моему опыту очень странно реагирует на эти директивы).

Можно, конечно, работать с XST - он на директивы сохранения сигналов реагирует предсказуемо. Но XST, конечно, не хотелось бы.

syn_maxfan для Синплифая либо MAX_FANOUT для XST спасут отца русской демократии...

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...