МАРСОХОД

Open Source Hardware Project

FPGA & CPLD Блогchips

САПР Altera Quartus II / Quartus Prime, язык Verilog HDL, ПЛИС Cyclone III, Cyclone IV, MAX II, MAX10.
Платы разработчика серии Марсоход, Марсоход2, Марсоход3.


Использование скриптов TCL для управления проектами Quartus II

tcl

Программное обеспечение Altera Quartus II предлагает дополнительные возможности разработки в ввиде скриптового языка TCL (Tool Command Language). Язык TCL позволяет писать скрипты для пакетной обработки, для управления проектами, для предварительной и пост обработки результатов компиляции проектов.

Давайте сделаем простой проект для платы Марсоход (давненько я не делал проектов для первой платы Марсоход!) и на примере этого проекта рассмотрим некоторые возможности скриптового языка TCL.

Представьте себе ситуацию, что мы разрабатываем некоторое устройство на базе ПЛИС и передаем это устройство заказчикам. Причем наших устройств, например, сделано уже много. Самое ужасное, что разные заказчики получили устройства кто раньше, кто позже с разными прошивками. Для службы поддержки очень важно знать какая прошивка стоит у конкретного пользователя. Звонит, например, пользователь в службу поддержки и жалуется, что у него что-то не работает. А служба поддержки спрашивает: "А у вас какая прошивка в ПЛИС стоит? Такая-то? А, ну этот баг уже починили! Вам нужно перешить устройство".

Я не знаю, как устройство отображает информацию о текущей версии прошивки, может у устройства дисплей есть или последовательный порт для подключения терминала. Важно, что мы хотим в проект ПЛИС вставлять информацию о дате сборки проекта и может быть о номере сборки.

Как это сделать?

Altera выпустила новую версию Quartus II v15.0

altera quartus ii v15, spectra q

Компания Альтера выпустила очередную версию среды разработки для ПЛИС Altera Quartus II v15.

Обещают 

  • 8x faster compile times using improved algorithms, incremental optimizations, and distributed compilations (более быструю компиляцию (до 8 раз) с помощью улучшенных алгоритмов, инкрементальной компиляции и распределенной компиляции на нескольких серверах. Не знаю точно, но думаю все эти плюшки будут доступны только в платной версии квартуса).
  • 10x reduction in design iterations using new tools and hierarchical design flows (новые инструменты и методы иерархического дизайна, которые позволят сократить время разработки до 10 раз - что-то не очень верится)
  • 5x faster design entry by raising the level of design abstraction (более быстрые способы описания проекта, вроде бы появился компилятор нового языка A++!??? -  A++ Compiler for HLS™ (high level synthesis) to create IP cores from C or C++ which significantly boosts productivity - вот это уже интересно! )

Новые возможности появились благодаря внедрению новой технологии Spectra-Q - что обозначает эта новая технология, новая engine - мне сейчас трудно сказать...

Вообще, сейчас в полной мере ощутил на себе понятие "сингулярность" - человечестно создает новые технологии быстрее, чем осваивает старые технологии. Я тут понимаешь еще не до конца на Quartus v14 перешел, а уже пятнадцатый на подходе... То же самое и с Microsoft Visual Studio, у меня стоит 2012, версию 2013 я только однажды попробовал, а уже выходит VS 2015, стандарт c++11 я еще не до конца осознал, а уже c++14.. В общем беда не приходит одна.

 

Последовательный порт для планшета с ОС Андроид

Программатор MBFTDI может быть использован в качестве переходника USB-Serial не только для персональных компьютеров, но и для планшетов с ОС Андроид.

На этом видео показано устройство с Embedded Linux. Устройство подключенно через последовательный порт ко второму каналу платы MBFTDI, а сама плата MBFTDI - через USB порт к планшету. На планшет из Google Play Market установлена программа FTDI UART Terminal. Программа позволяет настраивать параметры последовательного порта: скорость, число бит, четность, способ контроля потока и так далее. После подачи питания на устройство с Линукс видно, как на планшете появляется вывод консоли Linux и виден весь процесс загрузки ядра.

Таким образом, программатор MBFTDI может быть использован для простого подключения любых внешних устройств с последовательным интерфейсом к планшетам с Android OS.

Нестабильность проектов ПЛИС

Бывает, что есть проект, который вроде бы работает. Как только начинаешь добавлять в него новые модули или какие-то казалось бы небольшие изменения — перестает работать. В чем тут может быть дело? Каким правилам нужно следовать, чтобы получить стабильный проект? На мой взгляд правило есть только одно — проект не должен содержать асинхронной логики, все процессы должны быть только строго синхронными.

Что такое синхронный дизайн? В синхронном проекте для ПЛИС есть один дирижер для всех музыкантов, для всей логики - это сигнал тактовой частоты. По каждому активному фронту тактовой частоты все регистры проекта одновременно фиксируют сигналы на своих входах и передают их на свои выходы. Подключенные к выходам регистров логические функции начинают свое вычисление и у них, как правило, есть только один период тактовой частоты для этих вычислений. Новые вычисленные значения из логических функций подаются на входы регистров и должны быть готовы к очередному активному фронту тактовой частоты.

Логические функции — это сумматоры, вычитатели, умножители, мультиплексоры, дешифраторы и всякое другое. Выход логической функции зависит только от сигналов на входах. Внутри логической функции нет запоминающих элементов. Вычисление логической функции занимает время — чем сложнее логическая функция, тем дольше может считаться отклик. Например, сумматор 32х битных чисел является более сложной функцией, чем сумматор 4х битных чисел. Значит он будет вычислять дольше.

schema example 1

Посмотрите на рисунок выше. Здесь изображены несколько регистров и в овалах — логика. Например, есть блок логики который выполняется дольше всего, целых 18 наносекунд. Именно этот критический путь будет определять максимально возможную частоту на которой сможет работать проект. В данном случае: Fmax = 1/ max(t1,t2,t3...tn) = 1/18нс ~ 55МГц.

АМ радиопередатчик

Амплитудная модуляция радиосигнала из ПЛИС

В предыдущей статье я рассказывал, что такое амплитудная модуляция и проделал программные эксперименты по переносу спектра аудиосигнала на несущую частоту. Сейчас я хочу продемонстрировать проект в плате Марсоход2 - простой АМ передатчик из ПЛИС.


GitHub YouTube Twitter
Вы здесь: Начало