Hello world для ПЛИС на языке Verilog

Наконец-то пришла макетная плата с ПЛИС. Вот ссылка  на нее на ebay. Называется она EP4CE6E22 FPGA Dev Board + USB Blaster Programmer.

Это мой первый опыт с ПЛИС`ами так, что взял по совету именно эту макетку.

Что здесь есть

  • программатор
  • плата
    • 8 светодиодов
    • 2 кнопки
    • питание от USB
    • выведенные все ноги
    • 3 регулятора напряжения
    • резонатор на 25 МГц
  • 2 USB кабеля

Ниже показана обратная сторона платы.

С чего начать

Если подключить плату к USB, то запустится стартовая прошивка. Вы увидите как 1 светящийся СД продвигается вправо. При нажатии на кнопки будет происходить смена направления движения.

И все же хотелось бы сделать что-то свое.

Hello world.

Анализ мной интернетов привел к выводам, что все придумывают слишком сложный стартовый пример.

Так как это программируемая логика, то я бы хотел просто реализовать какой нибудь логический элемент, например И или ИЛИ.

Я все делал по инструкции в последней ссылке за исключением некоторых моментов:

  • Шаг 9. Код программы я адаптировал под свою плату. Хочу чтобы один СД светился, когда нажимаешь хотя бы одну кнопку из двух (ИЛИ), а второй когда обе нажаты (И).
module test_wires(
     input wire key1,
     input wire key2,
     output wire led1,
     output wire led2
     );
assign led1 = key1 & key2;
assign led2 = key1 | key2;

endmodule

На деле все получилось наоборот. Они светились по умолчанию и когда нажимаешь соответствующее комбо гасли.

  • Шаг 22 – 24. Вместо непонятной таблички использовал красивую картинку Assignment/Pin Planner (Ctrl+Shift+N)

С ней намного проще. Просто нажимаешь на вывод который хочешь использовать и  в окне (справа) указываешь провод или регистр который хочешь подцепить.

После этого в табличке снизу заполняется соответствующая строка. Все. Можно закрывать.

  • Шаг 26-28. Вообще странно. Как-то все по другому. + Драйвера пришлось искать непонятно где.

Открываем этот Programmer делаем поиск оборудования, все норм, а вот потом надо найти нашу плату. Это делается нажатием на кнопку Auto Detect.

После этого появляется список возможных устройств. Похоже он не может распознать его однозначно.

Это не все. После этого появится какая-то строка в табличке а столбец – файл будет пуст. Надо его заполнить. Я делаю это так:

В папке с проектом есть папка output_files. Именно в ней лежит нужный файл.

Ну и все. После того как все графы заполнены ставим галку Programm/… Нажимаем Start. Все!

Про прошивку в ОЗУ и в EEPROM

http://we.easyelectronics.ru/plis/osvoenie-plis-s-ispolzovaniem-yazyka-verilog.html

Должно работать.

Дальше будем разбираться с работой регистров, тем как обрабатывать тактирование от резонатора, как сделать делитель частоты и как сделать ШИМ.

Ставим софт под Altera Cyclone 4

В общем многие ругаются, что новые версии не поддерживают старые железки. Описываю способ подключения.

1.Качаем Web Edition отсюда http://dl.altera.com/14.0/?edition=web

В какой то момент будет такое окно:

Нужно убедиться, что в Devices стоят галки напротив Cyclone в моем случае. Скачиваем файлы.

ОК.

Запускаем Quartus II открываем закладку tools->Install Devices…

Открывается диалоговое окно, где выбираем место куда вы загружали все. (В частности файлы с расширением .qdz ).

Next – Next – Next… Устанавливается вся эта хрень.

И вуаля. Создаем новый прожект:

Теперь можно выбрать необходимый девайс.

На этом все.

 

Следовал этой статье: http://we.easyelectronics.ru/plis/quartus-ii-nachalo-znakomstva.html

 

Еще полезная ссылка “Hello world”: http://we.easyelectronics.ru/plis/chto-takoe-vhdl-prosteyshiy-primer-sozdaniya-logicheskogo-elementa-v-plis.html