ivagor, закоммить диффы, и заодно файл .SDC. Думаю, многим будет интересно.
Вид для печати
ivagor, закоммить диффы, и заодно файл .SDC. Думаю, многим будет интересно.
Это ж был оффтоп, я на РК b2mа пробовал. Файл SDC скопировал по строчкам из той статьи, кроме последней строки set_multicycle_path, ну и имена в get_pins и get_ports изменил на те, которые в РКшном проекте.
В векторе то у меня "быстрый" сдрам и так работает. Мне показалось оправданным написать, как можно твикнуть тем, у кого не работает, хотя все и сами знают.
Дак, может, и вектор твикнуть правильно?
ivagor, в любом случае, выложи плиз SDC файл, чтобы людям не приходилось проходить увлекательный квест "скопировал, выкинул и изменил что-то где-то". Ну если тебе не жалко, конечно.
Чужого добра мне совсем не жалко. В каталоге v06cc sdc под ревизии 402-403 (которые, надеюсь, могут и без sdc у всех работать).
Строка
set_input_delay -clock sd1clk_pin -max 6.0 [get_ports DRAM_DQ*]
под мою сдрамину. На старых DE1 надо вернуть как у автора статьи 6.4
Ламерский вопрос. Как можно гладко переключаться между двумя частотами? Через ? : переключает, но не гладко. Через PLL переключает хорошо, но только между частотами, которые можно подать на PLL. Как делают подкованные люди?
Злостнейший оффтоп. Мало того, что не про вектор, так еще и не совсем про DE1.
Получил возможность сам убедиться, что более медленный (-7 вместо -6) сдрам на 120 МГц без принятия специальных мер не работает. На 60 работает.
У меня на DE1 стоит SDRAM 7нс и прекрасно работает на 133МГц. Тоже касается и Aeon'а где я гонял без косяков SDRAM от Samsung (тоже 7нс) до 140МГц.
Тут главное правильно написать SDC-файл и правильно сконфигурировать в PLL смещение фазы клока SDRAM по отношению к клоку дизайна.
Так я и написал "без принятия специальных мер". Как ни странно, та же сдрамина (-7), которая "просто так" работает со сбоями на 120, проходит все тесты на 150 МГц, при максимуме по даташиту 143.
Просто эти "специальные меры" как раз очень важны! Без них работа проекта будет зависеть от направления ветра, фазы луны и ещё не пойми от чего... Я в своё время достаточно промучался с этими проблемами. Было дело, имеешь рабочий дизайн... добавил что-то незначительное и всё... перестало работать. Без правильного задания ограничений синтезатор делает что ему захочится, так как эти ограничения ему становятся безразличны.
В качестве курьеза. Если кто будет адаптировать v06cc под платы с богатым внутренним рамом и захочет иметь 32 Кб загрузчик и загрузку с квазидиска, то (если не принять специальных мер) столкнется с явлением описанным Syntalом применительно к вектору. Некоторое время я не мог понять, что не так - содержимое КД правильное, загрузчик в эмуляторе работает, а потом вспомнил про пост Syntalа.