Pull to refresh

Comments 8

Нисколько не принижая трудоёмкость процесса разработки, хочу заметить что использовать модель памяти куда проще чем с осциллографом или SignalTap-ом возиться. Производители предоставляют достаточно полные модели, которые исправно ругаются на нарушение всевозможных таймингов и прочая. Так что добавив в симуляцию задержки пинов ПЛИС и дорожек на плате получаем практически полное покрытие штатных режимов функционирования.
Искать подозрительные несоответствия ожидаемой и реальной производительности, понятно что проще на реальном железе. Но найдя конкретный режим, где что-то не то происходит, опять же проще в симуляции его воспроизвести и покурить wave-ы чем весьма ограниченный по времени выборки вывод того же SignalTap-а.

Моделирование - это только первый этап отладки. Но проблема в том, что 1 секунда моделирования занимает несколько минут реального времени. Много не намоделировать. А в железе - прогон можно запускать на часы или даже дни. Подтверждать работоспособность нужно в железе на практике.

Поэтому методика отладки должна быть такая:

  1. Моделирование отдельных модулей.

  2. Моделирование всей сборки (IP-блока)

  3. Прогон в железе.

Без третьего пункта - в серию изделия пускать нельзя.

С такой последовательностью я конечно согласен. Просто из вашей фразы

Подключать отладчик (а может даже и осциллограф), искать баги и сбои

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

Само-собой вначале моделирование. Здесь вы полностью правы. В первом пункте статьи я это кратко упомянул. Просто не стал подробно расписывать, иначе объем статьи был бы слишком большим.

А про осциллограф - это наша железячная реальность :) В серии каких только косяков не встречал. Проблемы с питанием, лишние дорожки на плате. Не те номиналы или даже элементы, непропаи и прочее...

У Вас проект открытый ? Умеет ли контроллер работать с DDR ? Вы не пробовали собирирать свой проект с помощью Yosys (OSS CAD) ?

Проект может быть выложу у себя на сайте. но пока не уверен. Если он на текущем месте работы будет использоваться, тогда не смогу выложить
Это только для SDR SDRAM. Может быть чуть позже DDR буду смотреть

Yosys (OSS CAD)

с этой вещью дела никогда не имел

OSS CAD это опенсорсный набор тулов для синтеза на базе Yosys. Если есть задача сделать проект независимым от производителя микросхем, то не плохо бы портировать его на Yosys.

Я почему спросил. В микросхемах ПЛИС от Gowin GW1NR (платки серии Tang Nano) есть встроенная SDRAM на 64 Мбит. Хочу задействовать эту SDRAM. Есть проприетарный блок SDRAM контроллера от производителя, но я использую Yosys и проприетарных IP-блоков стараюсь всячески избегать.

Интересная статья, было приятно прочитать. Жаль что нет однозначного решения об размещения исходников контроллера памяти.
Есть ряд вопросов и мыслей:

  1. Я когда то тоже делал контроллер SDRAM, но как показала практика он работает только с той микросхемой под которую ее делал, несмотря на то что основные параметры между собой схожи. Полагаю у вас так же?

  2. Реализовать текстовый режим на экране наверное сложно было? картинка генерировалась налету или сначала в буфере ПЛИС(хотя откуда там столько места под 800х600)?

  3. Вы упомянули что весь проект работает на 50МГц, или я не правильно понял и на этой частоте только VGA ? Если весь проект на 50МГц то и sdram тоже?

  4. У вас в контроллере количество потоков 2, но SDRAM одна.... зачем два потока если все равно сводить все в один канал? Или у вас заложен механизм независимой работы с двумя микросхемами?

  5. Вы написали что микросхема не может работать выше 143МГц, но вы пробовали поднять частоту и прогнать тесты? были ли ошибки? Я в своей статье делал подобный тест и память справлялась, хотя для нее(моего варианта) рабочая частота была заявлена в 133МГц, я же запускал на 150МГц, но чисто ради эксперимента.

Sign up to leave a comment.

Articles