Добавление нового компонента в систему

В этом разделе рассматривается пример подключения аппаратного модуля, описанного на языке VHDL, к библиотеке готовых компонентов SOPC Builder, взятый из [7].

Чтобы быть подключенным, аппаратный модуль должен состоять, как минимум, из двух частей – блока, описывающего функционирование модуля и блока, реализующего интерфейс с шиной Avalon. Шина Avalon имеет достаточно широкий набор интерфейсов. Один аппаратный модуль может использовать несколько подобных интерфейсов. В рассматриваемом примере созданы блоки с использованием языка VHDL, описания которых приведено ниже. Блок my_register.vhd, представленный в листинге 1, реализует простой 32-битный регистр, а модуль my_register_slave_interface.vhd, представленный в листинге 2, описывает интерфейсную часть создаваемого компонента. Он подключает регистр через шину Avalon к процессорной системе с одной стороны, и соединяет выход регистра со светодиодами, содержащимися на стенде, с другой стороны. Следует отметить, что подключение к процессорной системе аппаратных модулей, реализующих специализированные инструкции, осуществляется похожим образом. Отличие состоит в использовании вместо интерфейсного модуля с шиной Avalonинтерфейсного модуля с шиной nios custom instruction slave.

В представленном ниже примере интерфейсный модуль предназначен для создания соединения с шиной Avalon посредством интерфейса Avalon-MM Slave[8].