Домашний сервер, контроллер умного дома, ONT от МГТС и прочая чувствительная аппаратура у меня уже давно подключены через UPS от APC. Всё бы хорошо, но родные (довольно недешевые) аккумуляторы в нём служат года два-три, а потом необратимо деградируют. Кроме того, даже новых аккумуляторов хватает в лучшем случае минут на 15. Когда подошла пора очередной замены аккумуляторов, я решил найти более долговременное решение.
Не могу сказать, что замена аккумулятора — это какой-то rocket science, но вопросов с неочевидными ответами было несколько:
Какие аккумуляторы взять и на какое напряжение?
Будут ли аккумуляторы нормально заряжаться?
Проработает ли UPS не 15 минут, а несколько часов?
Как объяснить UPSу, что у него теперь аккумуляторы другой ёмкости?
Первая часть
Если вы уже успели поработать с блочным дизайном в Vivado, то могли увидеть, что внешний вид многих стандартных IP изменяется в зависимости от настраиваемых параметров. Например, модуль AXI-GPIO может быть одноканальным или двухканальным в зависимости от параметра «Enable dual channel»:
Для проекта БК-0010 нам тоже будет удобно воспользоваться этой технологией и сегодня мы узнаем, как это сделать.
Также в этой части мы:
Рассмотрим общие сведения об архитектуре БК-0010
Поговорим об интерфейсах, о том, как их создавать и как с ними работать.
Создадим несколько вспомогательных IP, внешний вид и характеристики которых меняются в зависимости от параметров.
Большинство любительских проектов FPGA, опубликованных на Хабре, сделаны на оборудовании фирмы Altera (теперь Intel). Давайте для разнообразия посмотрим, что можно сделать на продукции его основного конкурента – Xilinx. Мы возьмём и сделаем достаточно большой и сложный проект, в процессе реализации которого нам понадобится:
Выбрать Development board и необходимые PMOD к ней
Определиться с дизайном проекта, выбрать clock domains и правила перехода между ними
Освоить основные функции Xilinx Vivado – создание проекта, работу с блочными схемами, компиляцию, симуляцию, отладку
Сделать несколько IP с интерфейсом AXI4
Поработать с внешними устройствами
Сделать с нуля собственный процессор с контроллером шины и обработкой прерываний
Написать модуль для верификации
Наконец собрать всё вместе и получить реализацию на FPGA легендарного (как минимум для тех, кто тогда жил) компьютера середины 80-х – БК-0010
Планируется цикл статей, в которых всё это будет подробно описано, сегодня первая из них. Проект написан на System Verilog с небольшими вставками Verilog и VHDL в тех местах, где это необходимо. От читателя требуется понимание базовых принципов языков Verilog/VHDL на уровне книжки Харрис&Харрис.