nabbla (nabbla1) wrote,
nabbla
nabbla1

Categories:

Я у мамы оверклокер

Мне тут справедливо заметили, что я в Quartus'е выбрал кристалл EPF10K200SRC240-1, при работе с 5576ХС4Т1, тогда как согласно документации эта воронежская ПЛИС является функциональным аналогом кристалла EPF10K200SRC240-3.

У них одинаковое количество логических элементов, одинаковый объём памяти, всё отличие - в скорости. По сути, делается отбраковка кристаллов - самые быстрые маркируют как -1, самые медленные - как -3, так называемый speed grade.

Сейчас попробовал всё те же модули синтезировать при новых настройках - и в нескольких модулях нарвался на Critical Warning - мои перемножители с шириной аккумулятора 23 бита и выше (вплоть до 32) провалили тайминги, показывая максимальную частоту надёжной работы 57 .. 69 МГц вместо требуемых 80 МГц (именно такой генератор тактовой частоты установлен на отладочной плате!). То же самое случилось с делителями частоты вплоть до секунды, т.е ширше 16 бит что счётчики, что сумматоры (те, что синтезирует квартус, как из lpm_counter / lpm_add_sub, так и из "чистого" верилога, где мы прибавляем единицу или прибавляем число) работать на такой частоте не хотят!


Ну и Adler32 тоже оказался капризным - хотя там два сумматора по 16 бит, но комбинаторная логика немножко заковыристая, нельзя её такой длинной делать, нужно всё осуществлять "короткими перебежками" между регистрами.

Я так подозреваю, что проблемы реально начинаются на краю рабочих характеристик - вот если я разогрею кристалл до 60 °С, да ещё при этом напряжение ядра просядет с 1,8 вольт на "допустимые" 5% вниз - вот тут-то и начнутся глюки! Да и то не у всех кристаллов, а где-нибудь у 5-10% от всех (Воронеж их вообще по быстродействию не сортирует!). Пока я питал свою ПЛИС законными 1,800 вольтами (хорошая LDO-шка стоит!) и при комнатной температуре - всё замечательно - она вполне соответствовала speed grade -1: если Timing Analysis говорит, что всё хорошо - всё хорошо. Если ругается - то всё плохо :)

В общем-то, я изначально предполагал, что моя система будет работать не на 80 МГц, а пониже, на 50 МГц, просто уж что дали на отладочной плате - с тем и работаю. Но можно и поиграться будет с нашими модулями - переписать их ещё разок, так, чтобы они смогли работать даже на таких "тормознутых" кристаллах на высокой частоте. Где-то надо комбинаторную логику разбить, кое-где - внедрить схемы ускоренного переноса - и заработают как миленькие!

PS. Попробовал свои модули на speed grade -2 - и перемножители, и счётчики, и целые готовые проекты (передача показаний АЦП на компьютер, а также передача PNG-изображения) проблем с таймингами не имеют. Т.е самую чуточку не хватает быстродействия при -3. А вот Adler32 даже на -2 ругается, надо над ним ещё поразмыслить...
Tags: ПЛИС, работа, странные девайсы
Subscribe

  • Нахождение двух самых отдалённых точек

    Пока компьютер долго и упорно мучал симуляцию, я пытался написать на ассемблере алгоритм захвата на ближней дистанции. А сейчас на этом коде можно…

  • Слишком общительный счётчик

    Вчера я чуть поторопился отсинтезировать проект,параметры не поменял: RomWidth = 8 вместо 7, RamWidth = 9 вместо 8, и ещё EnableByteAccess=1, чтобы…

  • Балансируем конвейер QuatCore

    В пятницу у нас всё замечательно сработало на симуляции, первые 16 миллисекунд полёт нормальный. А вот прошить весь проект на ПЛИС и попробовать "в…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 1 comment