Двоичный счетчик на плате MCY112, 7ми сегментный индикатор и последовательный порт

 mcy112 leds

Самый простой проект, который можно придумать для любой FPGA платы это мигание светодиодами. Это своего рода минимальная программа "Hello World!", которую пишут начинающие программисты на C/C++. Для всех наших плат ранее мы делали подобные проекты. Не будет исключением и плата MCY112 построенная на ПЛИС Cyclone EP1C12Q240C8.

Я было даже подумал снять демонстрационное видео про этот проект, но снимать там особо нечего.
Видео-то я снял, только смотреть я думаю его будет скучно. Поэтому просто сделал простую GIF анимацию.

Возьмите проект на гитхаб https://github.com/marsohod4you/MCY112.git
В проекте есть разные папки, зайдите в папку Leds7Seg. Это и есть проект для мигания светодиодами.
Откройте проект в среде Altera Quartus Web Edition v9.1sp2 и откомпилируйте.
Запустите программатор квартуса.
Я использую плату совместно с нашим программатором MBFTDI, но и UsbBlaster должен работать.
Загружаю проект в плату. В проекте есть двоичный счетчик старшие биты которого отображаются на 8 светодиодов платы. Так же, эти же 8 бит отображаются на старшем байте семисегментного индикатора.

В проекте установлен модуль динамической индикации для семисегментного индикатора.


// 7-Segment Dynamic display
wire [7:0]seg;
seg4x7 seg4x7_inst(
  .clk( clk50 ),
  .in( { counter[31:24], rxbyte } ),
  .digit_sel( seg_sel ),
  .out( seg )
);

// 7-Segment pins: bAfCgD.e
assign seg_b = seg[7];
assign seg_a = seg[6];
assign seg_f = seg[5];
assign seg_c = seg[4];
assign seg_g = seg[3];
assign seg_d = seg[2];
assign seg_p = seg[1];
assign seg_e = seg[0];


На модуль 7-ми сегментного индикатора подается 16ти битное число: старший байт с двоичного счетчика, те же биты, что и на светодиоды, а младший это выход примемопередатчика последовательного порта.

Так что если на компьютере запустить программу терминала и там открыть порт на скорости 115200, то передаваемый из компьютера байты будут отображаться на семисегментном индикаторе.
Конечно, всё это справедливо только для нашего программатора MBFTDI у которого два канала: первый канал это JTAG, а второй это последовательный порт.

Вот такой простейший проект.
Ценность этого проекта, тем не менее, заключается в том, что в нём прописаны все I/O сигналы разведенные из ПЛИС Cyclone по плате согласно её схемы.
Такой проект удобно использовать как отправную точку для всех последующих проектов.

 

Добавить комментарий