Гоночки на FPGA

Всем доброго времени суток! Не так давно я занялся изучением ПЛИС и программированием на языке VHDL. В своё распоряжение получил отладочную плату фирмы “Terasic” DE2-70, на базе 2 циклона. Сразу же встал вопрос, что же начать реализовывать, чтобы бы было интересно и наглядно учиться. Поигравшись кнопками, диодами и индикаторами решил подключить монитор через VGA. Труда это не составило, так как в интернете полно статей по данному вопросу. В итоге, возникла идея создать простенькую игру. Выбор остановился на гоночках.




Читать дальше

Опыт заказа платки DE0-Nano с Altera Cyclone IV у производителя

Сегодня прихала мне Федексом замечательная платка с мощной довольно FPGA Altera Cyclone IV. Сама платка описана и продается тут.
Попробовал заказать в ЭФО, но оказалось крайне неудобно — безналом платить нужно, да еще и $145 просят, т.е. в два конца. Попробовал прямо с сайта производителя заказать, благо можно. Всем бы было хорошо, если бы не стоимость пересылки в без малого $80, которая по умолчанию появляется при попытке заказать напрямую. Кто-то уже в форуме упоминал, что удавалось заказывать с более дешевой пересылкой. Решил попробовать и написал в Terasic.
Не прошло и часа, как откликнулась замечательная барышня по имени Christine Chang. Поимо удивления, что в России они известны, дала и полезную информацию:
We've found a solution for you-FedEx International Economic Service, of which the shipping costs of one DE0-Nano to Russia is USD$48.5(importing tax/tariff not included).
The delivery might take 6-8 business days, we hope this can resolve your concern about the shipping fees.
We used to offer postal service options for the shipping and the products were lost or damaged several times. As a result, currently we only provide express service to ensure that the product's delivered in time and in a perfect status. Thank you for your understanding.
Закинул данные, через час получил от нее копию счета для проверки и ссылку на страницу, где можно оплатить либо картой, либо через PayPal (через него я и послал деньги).
На другой день получил от Кристины спасибо за оплату и официальное письмо с номером посылки для отслеживания. 6 дней прошло — и вот оно :)
В принципе, у Terasic есть разные интересные платки с FPGA, и дорогие и подешевле. Может кому будет интересно. На всякий случай электронный адрес мадам, с которой я вел переписку: Christine Chang sales06@terasic.com

Altera dev board. Проблемы с GPIO

Думаю, что владельцы альтеровских плат разработчика либо сталкивались с такой проблемой, либо уже знают ее решение.
Итак, имеется отладочная плата DE2, на нее выведен 40 пиновый разъем GPIO (general purpose inout ).
Создаю проект, импортирую pin assignments из csv файла. Сам GPIO — Это 38 проводная шина.
Мой проект содержит приемник и передатчик uart. формируем байт для передатчика с помощью свитчей, что распаяны на плату, индицируем принятый байт светодиодами. Загвоздка приключилась вот с чем. Выход передатчика хотел подцепить на GPIO[26], вход приемника на GPIO[28], но квартус пишет ошибку: «port GPIO is declared more than once».
Собсно проблему решил переобозначением в Assignment Editon конкретно этих пинов на TxOut и RxIn.

А теперь вопрос: есть ли возможность часть бит разъема GPIO использовать как входы, а часть как выходы не меняя их имен в Pin Assignment? И если да, то как? Вроде у Petrovich'а есть DE nano?

кусочек toplevel файла:

module uart(CLOCK_50, SW, KEY, LEDG, LEDR, GPIO);
input CLOCK_50;
input [17:0] SW;
input [3:0] KEY;
output [17:0] LEDR;
output [8:0] LEDG;
input [26:26]GPIO;
output [28:28]GPIO;

...

endmodule

Геморрой под названием Modelsim Altera Starter Edition

Небольшое философское вступление. Я окончательно понял, что Человечество действительно идет к концу света. И это произойдет не от падения какого-то там офонаревшего метеорита, или вдруг очнувшегося супер-мега-гига-вулкана. А просто потому, что мы начали отходить от важнейшего принципа: «надежно и просто работающее в усовершенствовании не нуждается». Это хорошо видно во всем: от современных автомобилей, которые осталось только оснастить ракетами «автомобиль-автомобиль», что бы по сложности они догнали истребители, до средств разработки.

Яркий пример тому – это попу_лярная среда разработки Quartus (в среде отечественных разработчиков-остряков «крякус», «кактус», «<вставить собственное созвучие>» и т.п.) от легендарной Altera.

Читать дальше

Инициализация RAM в FPGA Altera

Эмм, читал сейчас Recommended HDL coding styles в книжке по Квартусу и вот что не совсем понятно:

1) в секции про RAM в примерах они используют инициализацию ячеек памяти при включении питания. Используется конструкция с блоком initial и еще директива $readmemh(b) с загрузкой содержимого из файла. Причем вроде как говорится, что эти конструкции подходят не только для симуляции, но и для синтеза. Для меня это пока странно, т.к. во многих учебниках по Verilog указано, что initial — это чисто симуляционная директива, типо тестбенчи писать. НО если уж все реально синтезится, то интересно еще и понимать как это реализовано физически. Что, создается таблица ROM и из нее уже данные читаются?

2) снова инициализация, но уже триггеров.
такой код тоже немножко удивил, ведь не привык, что он используется для синтеза. Типо reg myreg = 1'b1. И утверждается, что его значение при инициализации будет 1, а не 0, как по умолчанию на Альтеровских девайсах. Недопонял вот что — единицей будет инициализироваться всегда — и при power-on, и при синхронном или асинхронном сбросе. Все верно?

Почти L297 на Почти Verilog -e

Статья посвящена контроллеру шаговых двигателей L297. А также попытки оправдать свою лень и не идти покупать L297.
А заменить на ПЛИС которая у меня валяется без дела. Да и не только, также экономия играет свою роль, вместо покупки 3 драйверов установить одну ПЛИС при почти той же стоимости.



Читать дальше
  • +4
  • 05 ноября 2011, 04:57
  • letni
  • 1

Оптический мультиплексор

Сообщили мне, что у нас на работе перестал работать оптический мультиплексор. Ну и по случаю ремонта данного аппарата решил сделать небольшой фотоотчетик, вдруг кого заинтересует.

Под катом много картинок.


Читать дальше

USB программатор для ПЛИС Altera

Загорелся я попробовать что же такое ПЛИС и купил CPLD EPM240T100, но потом как то не сложилось. Сейчас появилось желание, но вот имеющийся у меня в наличии LPT Byte Blaster уже бесполезен, так как у меня не осталось ни одного компьютера с LPT портом. Покапавших в интернете было найдено приемлемое решение читать.



Читать дальше
  • 0
  • 13 августа 2011, 16:24
  • ZiB

Демо платка для CPLD EPM240T100

Боюсь сказать сколько лет прошло с момента покупки данной плиски, но как говорится: лучше поздно, чем ни когда :)

Это уже исправленная плата, первый вариант был с ошибками (перепутал нумерацию выводов). Проверена в работе.



Читать дальше
  • 0
  • 13 августа 2011, 16:14
  • ZiB

Кастомная прошивка ПЛИС

Для чего все это?
Начав изучать ПЛИС ALTRA EPM240 я сделал отладочную плату с надеждой получить модуль способный выполнить множество задач при объединении преимуществ двух разных архитектур (высокую скорость и параллелизм обработки с гибкостью и многофункциональностью).


Читать дальше