Мне по роду своей деятельности приходится программировать микроконтроллеры и FPGA. Если работа с МК не сложная, то с программированием FPGA возникают сложности, которые хотелось бы разобрать в данной статье.
О существовании FPGA я узнал тогда, когда получил ПО вместе с установочной платой. На мониторе компьютера появилось достаточное количество незнакомых ярлыков незнакомых программ. Сразу необходимо сообщить, что речь идет о продукции Xilinx отладочной плате с чипом Spartan 3A DSP 1800A.
Следует запомнить, что языки программирования Verilog/VHDL не так банальны, как кому – то может показаться и чтобы их понять, необходим иной подход. С помощью FPGA можно сделать весьма быстро функционирующее устройство, а модули DSP дают совершенно неимоверные преимущества для современной обработки сигналов. Однако все это требует значительной трудоемкости. Раньше все было гораздо проще – шина, память, процессор и какое – то количество информации. На сегодня существует большое количество различной периферии, применение которой ограничено лишь возможностями FPGA. Можно попробовать на шину обмена с периферией присоединить самостоятельно сделанные модули при условии, что они будут согласованы.
Надо прояснить по – поводу создания программ для MicroBlaze. Вместе с программным обеспечением Xilinx существует Software Development Kit (SDK), который позволяет писать программы на «старинном» С/С++. Вот такая метаморфоза! Данный язык программирования большая редкость для аппаратного обеспечения. SDK у нас Eclipse-based, в связи с этим тут есть и content assist, и понятное изменение внутренней структуры программы, и еще много всяких плюсов и плюсиков. Компилятором здесь используется GCC, который понимает потребности процессора, возможно применение XilKernel, которая является POSIX-совместимой. Из этого следует, что если пользователь не понаслышке знает про треды и семафоры в UNIX-based системах, то разобраться в XilKernel ему будет проще простого.
FPGA – современный инструмент, с помощь которого можно решать многие сложные компьютерные задачи. Однако, использование FPGA, не единственный способ решения сложных компьютерных задач. Некоторые задачи уверенно решаются с помощью микросхем, что является более дешевым и доступным способом. Но все - таки, приятно заменить большое количество устаревшего железа на одну маленькую микросхему и получить при этом, несказанное удовлетворение.