Цитата(fpganoob @ Dec 15 2017, 16:57)

Всем привет!
Постепенно осваиваю ПЛИС и запиливаю нужную мне математику. Математика работает с 256-битными числами. Сложение, вычитание, битовый сдвиг. Есть и умножение где получается 512-битное число, которое затем понижается по модулю до 256-битного. алгоритм реализовал, работает и считает всё верно.
Работаю с карточкой de0-nano-soc на базе циклона пятого. На карте есть генератор 50Мгц. Хочу ускорить вычисления насколько это возможно. Пробую подключать PLL от альтеры. В IP каталоге выбираю Altera Pll, задаю вот такие настройки -
https://screencast.com/t/RD0qNJ9uHn2N , то есть хочу разогнать до 100Мгц. В идеале, конечно еще выше))
В рефклок отдаю свой 50Мгц клок, а выходной отдаю в модули. Алгоритм выполняется, но вот результаты совсем неверные получаются и всегда разные. locked сигнал я использую в топ модуле для того чтобы стартовать вычисления ( if(locked) begin ..начать вычислять.. end)
Блокирующие назначения нигде не использую.
Подскажите, я что-то делаю не так, или это нормально что плис не тянет работу с 256-битными числами быстрее чем 50Мгц? Может нужно locked протягивать по всем модулям и только если он == 1 проходить цикл?
Еще у меня нет файла для таймквеста, еще не познал эту магию, может ли это влиять?
Спасибо за рекомендации!
Надобно констрейны всё же задать, иначе глюки наблюдаете вполне закономерные.
Locked тянуть не надо, он должен просто установиться, и тогда валидный clock есть.
Разгонять до 100 МГц можно, но констрейны должны выполняться или немного сыпаться (но только немного!)
PS. И да, обычный сумматор на 256 бит едва ли будет быстрым, скорее наоборот.