Почему-то на нашем сайте не было подробной информации, как все же программировать Cyclone IV платы Марсоход2bis. Вся информация всегда касалась только платы Марсоход2, на которой стоит Cyclone III.
Попробую внести ясность..
На самом деле сами печатные платы Марсоход2 и Марсоход2bis абсолютно одинаковые. А что разное - так это тип установленной ПЛИС. На плате Марсоход2 стоит Cyclone III EP3C10E144C8, а на плате Марсоход2bis стоит EP4CE6E22C8. Микросхемы совместимые по типу корпуса и даже по назначениям.
Проведем вот такой эксперимент.
Скачаем первый проект для Марсоход2:
Его схема, схема топ модуля проекта выглядит вот так:
Откомпилируем проект как есть.
Подсоединяем плату Марсоход2bis кабелем USB к нашему компьютеру.
Запустим из меню Quartus II программатор Tools => Programmer. Если драйвер программатора MBFTDI уже установлен, то с помощью кнопки Hardware Setup можно будет выбрать для использования "MBFTDI-Blaster".
Теперь можно попробовать загрузить только что откомпилированный проект в плату несмотря на то, что у нас другая микросхема ПЛИС.
Зашиваем и... ничего не происходит...
Действительно так и должно быть. Несмотря на то, что микросхемы FPGA EP3C10E144C8 и EP4CE6E22C8 совместимы, во второй микросхеме нет двух IO выводов - для наших плат эти выводы попадают на KEY1 и LED[3].
Исправим схему проекта вот так:
Теперь счетчик не будет сбрасываться по нажатию кнопки платы, но будет считать, пока разрешен счет. Счет будет останавливаться по нажатию KEY0. Так же я сократил количество выводов на LED. Теперь на светодиоды выводится только три бита q[25..23] со счетчика.
Компилирую, запускаю программатор и опять, не взирая на то, что у меня ПЛИС Cyclone IV, загружаю проект от Cyclone III.
Теперь светодиоды моргают! Проект работает!
Не будем на этом останавливаться. Это не совсем здоровый путь компилировать для одного типа микросхем, а загружать в другой тип микросхем. Так я думаю еще будет работать пока размер проекта мал. Для больших проектов скорее всего программатор будет выдавать ошибку.
Сменим в нашем проекте тип микросхемы. Для этого идем в меню Quartus II пункт Assignment => Device.
Выбираем другое семейство ПЛИС, а именно Cyclone IV E. Сразу же квартус говорит, что хорошо бы удалить все ранее существовавшие назначения расположения пинов в проекте:
На это предложение твердо отвечаем "No".
Теперь выбираем именно нашу микросхему EP4CE6E22C8:
И опять квартус просит разрешения удалить все назначения в проекте. Опять отвечаем "No".
Теперь "OK" и компилируем проект.
Во время компиляции проекта в предупреждениях можно увидеть вот такое сообщение:
Это предупреждение как раз о том, что назначены два лишних пина, но они будут проигнорированы. Их просто нет в нашем четвертом циклоне.
Зато теперь отчет о компиляции выглядит правильно, для Cyclone IV E:
Можно звпускать программатор и с чистой совестью загружать наш проект для Cyclone IV в плату Марсоход2bis с Cyclone IV:
Надеюсь эта статья внесла ясность по поводу того, как программировать плату Марсоход2bis.
Подробнее...