Здравствуйте, уважаемые гуры.
Собираю проект под Spartan-6, а точнее XC6SLX150T.
Микросхема большая, текущая версия проекта занимает ее примерно наполовину (в будущем хотелось бы заполнить под завязку).
При компиляции (синтез Synplify, остальное ISE 12.3) проект не проходит по времянкам.
В отчете по ошибкам времянок классическая картина следующая:
Код
------------------------------------------------- -------------------
SLICE_X52Y115.CQ Tcko 0.447
SLICE_X48Y99.A3 net (fanout=8) 1.571
SLICE_X48Y99.CMUX Topac 0.537
SLICE_X51Y97.C5 net (fanout=2) 0.573
SLICE_X51Y97.C Tilo 0.259
SLICE_X85Y58.B4 net (fanout=12) 3.898
SLICE_X85Y58.B Tilo 0.259
SLICE_X113Y49.C4 net (fanout=68) 2.203
SLICE_X113Y49.C Tilo 0.259
SLICE_X116Y49.C4 net (fanout=16) 0.727
SLICE_X116Y49.C Tilo 0.204
SLICE_X105Y54.A3 net (fanout=1) 1.158
SLICE_X105Y54.A Tilo 0.259
SLICE_X105Y54.B6 net (fanout=1) 0.118
SLICE_X105Y54.B Tilo 0.259
SLICE_X85Y54.D6 net (fanout=1) 1.236
SLICE_X85Y54.CLK Tas 0.322
------------------------------------------------- ---------------------------
Total 14.289ns (2.805ns logic, 11.484ns route)
(19.6% logic, 80.4% route)
Можно видеть, что:
1) потери на "путь" гораздо больше, чем потери на логику.
2) fanout части цепей достигает больших значений (68 например), что по моему мнению не может не сказываться на задержках в этой цепи. Кстати, в настройках Synplify ставлю Max fanout = 30, что не мешает появляться цифрам типа вышеуказанного 68.
Собственно, вопросов 2:
1) Прав ли я в том, что большой fanout цепей увеличивает их задержки. Если да - то как его уменьшить.
2) Если синтез производится силами Synplify, какие оптимизации Map в ISE нужно включать, а какие - лучше не надо? Например, в настройках и того, и того есть возможность включить Retiming.
Ну или пошлите, где на эту тему почитать.
Заранее спасибо.
Сообщение отредактировал Koluchiy - Dec 22 2010, 15:50