Странно...
Для чего может понадобиться «пустой проект»?
Ну, во-первых, не «пустой», а «почти пустой». Это значит, что в нем уже кое что есть. А во-вторых, с чего-то же нужно начинать?
Среда разработки компании Altera QuartusII позволяет создавать проекты совершенно разной сложности и основываясь на разных микросхемах и FPGA и CPLD. Про FPGA (Field Programmable Gate Array) можно прочитать здесь https://ru.wikipedia.org/wiki/FPGA. А про CPLD (Complex Programmable Logic Device) можно прочитать здесь https://ru.wikipedia.org/wiki/ПЛИС. Микросхемы обоих типов производят несколько компаний, но мы сделали свой выбор в пользу Altera.
Проблема начинающих разработчиков состоит в том, что для того, чтобы начать что-то делать нужно провести очень много подготовительной работы. Нужно развести и изготовить плату, поставить, припаять на нее микросхему, создать проект для среды программирования QuartusII. Все это требует и знаний и умений и времени. Мы же предлагаем простой путь для начинающих разработчиков, студентов и даже школьников. Мы предлагаем очень простую готовую плату «Марсоход». И мы предлагаем уже готовую «заготовку» для Вашего проекта.
Итак откроем «почти пустой проект» программой Quatrus II. Вот что мы увидим:
Только не пугайтесь!
Наш «почти пустой проект» оказался совсем не пустым и кажется ничего не понятно здесь.
Сделаем необходимые пояснения. На нашей плате стоит микросхема компании Altera EPM240T100C5. Ее ножки уже разведены специальным образом на плате и подключены к четырем кнопкам, восьми светодиодам и еще всяким дополнительным разъемчикам. В нашем проекте для микросхемы CPLD мы уже сделали соответствующие назначения и это, пожалуй, самое важное. От каждого входа или выхода тянется линия-указатель к прямоугольной табличке, в которой написаны соответствующие им номера контактов микросхемы.
Вот что у нас здесь есть:
- Четыре входа key[3..0] – к ним подлючены четыре кнопки на плате. Специальные назначения в «проекте-заготовке» делают эти входы триггерами Шмидта. Это позволяет уменьшить «дребезг» контактов при нажатии на кнопки. Кроме того, на эти четыре входа мы уже назначили «weak pull-up resistors». Это слабые подтягивающие к напряжению питания резисторы. Таким образом на входе не нажатой кнопки будет логическая единица, а на входе нажатой кнопки – логический ноль.
- Входы pt_left и pt_right сейчас у нас не используются в «проекте-заготовке». Мы планировали в будущем подключать к ним опто-транзисторы. Если мы надумаем когда нибудь делать робота с глазами – это нам поможет.
- Двунаправленные входы (BIDIR) dp и dn сейчас тоже не используются. Они тоже зарезервированы. Надеюсь мы сможем сделать в будущем USB подключение нашей платы к компьютеру.
- Восемь выходов led[7..0] – к ним на плате подключены светодиоды. На них можно делать какую нибудь простую индикацию.
- Выходы f0[9..0], f1[9..0], f2[9..0] и f3[9..0], f4[9..0], f5[9..0]. На самом деле это шесть групп по 10 выходов. В каждой группе десять выходов соединены вместе, чтобы сделать шесть «сильных» выходов. Сильные выходы нам могут понадобиться в самых разных проектах. Например, мы будем подключать моторчики или шаговые двигатели роботов или машинок.
- Компонент с именем ALTUFM_NONE. Это довольно сложная часть микросхемы Altera EPM240T100С5. Она уже содержит в себе и ПЗУ (Постоянное Запоминающее Устройство) и простейший тактовый генератор. В нашем «пустом» проекте этот генератор дает нам частоту 5МГц.
- Компонент counter. Этот компонент мы создали сами в среде программы QuartusII (Вы и сами скоро сможете делать это). Это счетчик импульсов со входом разрешения тактовых импульсов и входом сброса. Мы поставили этот компонент в проект, чтобы он (проект) хоть что нибудь делал, чтобы была какая нибудь польза от него. Вход разрешения тактовых импульсов мы подключили к кнопке key[3], а вход сброса счетчика мы подключили к кнопке key[2]. Сам счетчик здесь 32-х разрядный, а светодиодов у нас всего восемь. Поэтому светодиоды подключены у нас к линиям счетчика с 20-й по 27-ю включительно. Если подключить к самым младшим линиям счетчика, то светодиоды будут моргать слишком часто. Если подключить их к самым старшим линиям счетчика, то слишком медленно. Так что мы выбрали где-то примерно в середине.
Теперь откомпилируем этот проект в среде QuartusII и прошьем плату. Вот что у нас получилось:
На видео видно, что счетчик обнуляется (светодиоды не горят) в момент сброса, и что счетчик не работает, когда нажимаем кнопку подключенную к clk_en модуля counter.
Скачать этот проект можно здесь:
Теперь Вы можете брать этот проект и исправлять его по своему усмотрению! Это, пожалуй, самый простой способ начать что-то проектировать самому.
Удачи!
Подробнее...