FPGA & Verilog БлогFPGA chips

САПР Altera Quartus II / Intel Quartus Prime, язык Verilog HDL и кое-что про VHDL, FPGA Cyclone III, Cyclone IV, MAX II, MAX10. Платы разработчика серии Марсоход, Марсоход2, Марсоход3.


Нравятся мне телескопы, ну и все, что с ними связано. Я даже как-то писал, как с семьей ездили в Архыз искать большой телескоп. Ну у меня, конечно, есть и свой, маленький телескоп. Называется Celestron Powerseeker 127EQ. Мне его жена подарила на день рождения. Простой недорогой рефлектор Ньютона на экваториальной монтировке. Для начинающих любителей астрономии - пожалуй хороший выбор.

Телескоп Celestron Powerseeker 127EQ

Вообще с телескопами беда. Во-первых, какой бы у вас не был телескоп им нужно пользоваться ночью, а ночью обычно хочется спать. Во-вторых, лучше всего вести наблюдения зимой в морозные прозрачные ночи. Чтоб было где-то -20С или -15С хотя бы. Представляете? Обычно, когда я кого нибудь приглашаю присоединиться ко мне понаблюдать небо зимой - люди отказываются. Летом же все гораздо хуже. Раскаленная за день земля даже ночью греет воздух - он поднимается вверх неравномерными потоками и изображение в окуляре колышится. В-третьих, лучше всего вести наблюдения за городом. В городе звезд нет. Как это ни печально. Да вообще-то люди живущие в городе давно забыли, что такое звезды. Другое дело в деревне, подальше от города, от огней, от пыли и угарных газов, застилающих улицы. Вот там, глянешь на небо в россыпях звезд - вот это красота! Ну и в-четвертых, какой бы у вас не был телескоп, вам непременно хочется другой, лучший. Ну или хотя бы усовершенствовать тот что есть. Вот я хочу рассказать про попытку усовершенствовать мой телескоп.

Сделаем простой проект для платы Марсоход. Проект будет состоять всего из пары модулей, да и делать он будет не очень много - он будет складывать два двухбитных числа. На самом деле, на плате у нас есть 4 кнопочки. Две кнопки - одно двухбитное число, еще две кнопки - второе двухбитное число. Отображать результат сложения будем на светодиодах платы Марсоход. Конечно, не бог весть что. Зато мы научимся рисовать схемы пользуясь средой программирования Quartus II. Этой работой мы проверим все, что было написано в предыдущей статье.

Уроки Verilog

Мы уже знаем, что такое модуль.

В проекте, особенно сложном, бывает много модулей, соединенных между собой. Прежде всего, нужно заметить, что в проекте всегда есть один модуль самого верхнего уровня (top level). Он состоит из нескольких других модулей. Те в свою очередь могут содержать еще модули и так далее. Не обязательно, чтобы все модули были написаны на одном языке описания аппаратуры. Совсем наоборот. Довольно удобно и наглядно иметь модуль самого верхнего уровня выполненным в виде схемы, состоящей из модулей более низкого уровня. Эти модули могут быть написаны разными людьми, на разных языках (Verilog, VHDL, AHDL, и даже выполнены в виде схемы). На самом деле – это все дело вкуса и возможностей компилятора (синтезатора), а так же требований заказчика.

В этой статье я расскажу, как создать новый проект в среде Altera Quartus II, как его откомпилировать и как прошить плату Марсоход.

В предыдущей статье "Введение в Verilog, урок первый" я писал о простых "программах" на языке Verilog. Мы изучили простое понятие провод (wire) и регистр (reg). Я хочу сделать совсем простой проект - соединить проводами кнопочки и светодиоды на плате Марсоход. Чтоб было не совсем скучно, добавим совсем простую логику в наш проект - две логические функции И и ИЛИ.

Соединить проводами - это не значит, что мы будем что-то паять. Мы напишем "программу" на языке Verilog, откомпилируем ее средствами среды разработки Quartus II и зашьем в плату Марсоход.

Вот какая у меня будет программа на Verilog:


module test_wires(
     input wire key0,
     input wire key1,
     input wire key2,
     input wire key3,
     output wire led0,
     output wire led1
     );

assign led0 = key0 & key1;
assign led1 = key2 | key3;

endmodule


Светодиод led0 будет гореть если от кнопочек key0 И key1 будет приходить сигнал единица.

Светодиод led1 будет гореть если от кнопочек key2 ИЛИ key3 будет приходить сигнал единица.

Посмотрим, что у нас получится (внимание траффик - более 30 картинок - очень подробная инструкция).

Шаг 1.

Шаг 1 - делаем простой проект для ПЛИС Altera в Quartus II

Запускаем среду разработки Altera Quartus II Web Edition и выбираем пункт меню File/New Project Wizard. (Нажмите на картинку, чтобы посмотреть крупнее).

Verilog

Verilog - язык описания цифровых схем. На первом уроке познакомимся с базовыми типами источников сигнала используемыми в языке.