МАРСОХОД

Open Source Hardware Project

FPGA & CPLD блог

Все о плате Марсоход, Марсоход2, программировании ПЛИС, о Verilog HDL и среде проектирования Altera Quartus II

 

Использование скриптов 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
Вы здесь: Начало