Здравствуйте!
Есть простейший модуль на верилоге - только умножитель 32x32. Использую lpm_mult через мегавизард квартуса (11sp2).
Хочу, естественно, добиться максимальной скорости. Использую аппаратные умножители и оптимизацию по скорости:
lpm_hint = "DEDICATED_MULTIPLIER_CIRCUITRY=YES,MAXIMIZE_SPEED=5"
Пробую разные значения lpm_pipeline = 3, 4, 5, 6, 8.
Максимальное значение (222 МГц) при 4.
При остальных - меньше. Я могу представить, почему уменьшается f_max при lpm_pipeline = 3, но почему он также уменьшается при 6 или 8?
Заметил, что при использовании беззнакового умножения скорость растет. Почему - также не совсем понятно.
Подскажите, в какую сторону искать?