Двоичный счетчик на плате MA3128

К каждой нашей FPGA или CPLD плате мы всегда делаем самый первый проект очень простым. Обычно это что-то вроде двоичного счетчика, отображающего биты на светодиодах платы. Не будет исключением и плата MA3128 на базе CPLD Altera серии MAX3000 EPM3128ATC100. Все-таки начинать изучение чего-то нового, новой платы всегда лучше с чего-то простого.

Весь этот проект находится в папке counter нашего репозитория на github: https://github.com/marsohod4you/MA3128
Главный модуль двоичного счетчика для платы MA3128 написан на Verilog HDL.

Тут всё просто:


module max(
  input wire CLK,
  input wire CLK2,
  output wire [7:0]LED,
  input wire [1:0]KEY,
  inout wire [3:0]MA,
  inout wire [3:0]MB,
  inout wire [3:0]MC,
  inout wire [3:0]MD,
  inout wire [9:0]IOA,
  inout wire [9:0]IOB,
  //Raspberry GPIO pins
  inout wire [27:0]GPIO
);

reg [31:0]counter;
always @(posedge CLK)
  if( KEY[0]==1'b0 )
    counter <= 0;
  else
  if( KEY[1]==1'b1 )
    counter <= counter+1;
  else
    counter <= counter-1;

assign LED = counter[27:20];

endmodule


По нажатию кнопки платы KEY[0] счетчик сбрасывается, а по нажатию второй кнопки KEY[1] меняется направление счета. Хоть на плате всего 8 светодиодов, счетчик объявлен 32х разрядным. Используются же реально только старшие биты с 20го по 27й. Так сделано из-за того, что кварцевый генератор, установленный на плате, имеет частоту 80МГц. Это довольно высокая частота. Чтобы мерцание светодиодов было различимым частоту нужно значительно понизить счетчиком.

Вообще-то плата предназначалась для установки на Raspberry Pi3 или Pi4, но для такой простой задачи микрокомпьютер не нужен. На демонстрационном видео в начале статьи показывается работа двоичного счетчика в CPLD.

Проект компилируется в среде Altera Quartus Web 13.0sp1 и прошивается программатором, например, MBFTDI или UsbBlaster.

Ценность этого проекта заключается еще в том, что в нем выполнены все назначения выводов CPLD в файле max.qsf (Quartus Settings File). Теперь проект легко менять, добавлять новые функции.

 

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