Программирование уже давно стало отдельной отраслью современной науки. Уже трудно представить электронное устройство, которое не нуждается в программной части.
Основная часть устройств реализуется с использованием микроконтроллера. Но существует огромное количество задач требующих экстремальных характеристик быстродействия, пропускной способности, энергопотребления.
С появлением ARM микроконтроллеров сфера использования ПЛИС несколько сузилась! Ведь зачем тратить 10$ на микросхему и ещё кучу денег на разработку, если можно купить за 1$ микроконтроллер, которые может работать на частотах до 70МГц и построить на нём устройство значительно проще. Но задачи построения цифровых фильтров, встраиваемых систем по прежнему проще и качественнее реализовать на ПЛИС (FPGA, CPLD).
Традиционное проектирование сводиться к построению логических схем устройства. К счастью в наше время уже не нужно формировать сложные логические функции и прибегать к методом поиска их минимальных форм для построения логических схем. Достаточно воспользоваться одним из языков описания цифровых схем (VHDL или Verilog).
VHDL — язык описания интегральных схем. Это необычный язык, как для программистов, так и для разработчиков аппаратуры. Прежде всего это связано с тем, что это — язык параллельного программирования. Начинающие программисты часто испытывают трудности при программировании на VHDL именно из-за не осознания, что всё написанное вами выполняется параллельно.
В ходе программирования на VHDL вам придётся создавать маленькие «микросхемы» — составные части будущего устройства. Вам раз за разом придётся создавать сущности (entity) и архитектуры каждой части устройства. В сущности описываются входы и выходы нашей микросхемы внутри микросхемы, архитектура же реализует его функции, выполняя таким образом основную задачу языка VHDL.
Первым шагом к освоению программирования ПЛИС на VHDL является установка САПР для разработки. Думаю просмотрев видео вы без проблем установите Quartus II в Linux, а в Windows и этого делать не придётся (всё работает «из коробки»).