В этом примере проекта демонстрируется работорговля интерфейс WIRE* AXI*-3 на простом компоненте пользовательской памяти Verilog для систем Qsys. Вы можете использовать этот пример в качестве основы для ваших собственных пользовательских подчиненных интерфейсов AXI. Компонент также включает дополнительный интерфейс Avalon® Streaming (Avalon-ST) и интерфейс Avalon® Memory-Mapped (Avalon-MM), демонстрируя, как можно использовать несколько стандартов интерфейса в одном компоненте.
В справочнике Quartus® II используется этот пример для иллюстрации процесса упаковки компонента интеллектуальной собственности (IP) с помощью редактора компонентов и пользовательских команд Tcl аппаратного обеспечения. Вы можете использовать файлы HDL в этом примере, чтобы узнать, как использовать редактор компонентов для создания собственного простого аппаратного файла Tcl (_hw.tcl), как описано в разделе Создание компонентов Qsys (PDF). Вы также можете ознакомиться с включенным файлом _hw.tcl для отображения расширенных вариантов использования аппаратных команд Tcl, включая полученные параметры, подтверждение вызова и отказоустойчивую возможность вызова для настройки пользовательского интерфейса параметризации в Qsys и использования интерфейсов в качестве опциональной. Для получения информации о аппаратных командах Tcl см. раздел Ссылки на компонентный интерфейс Tcl (PDF).
Для получения дополнительной информации об использовании Qsys для создания системы, в которую входят пользовательские компоненты, см. раздел «Создание системы с Qsys» (PDF) в Справочнике Quartus II.
Использование этого примера проектирования
Загрузите файл demo_axi3_memory.zip и извлеките содержимое. Для этого примера проектирования необходимо использовать Altera® AcDS вер. 13.0 или новее.
Файл ZIP содержит следующие файлы компонентов IP в подуправлении /ip:
-
Файлы проектирования demo_axi_memory.sv и single_clock_ram.sv
- Пользовательский файл аппаратного обеспечения Tcl demo_axi_memory_hw.tcl для упаковки компонента для Qsys
- Файл пакета SystemVerilog, используемый для создания сообщений на выходе моделирования, /verification_lib/verbosity_pkg.sv (также можно найти в каталоге установки программного обеспечения Quartus II как /ip/altera/sopc_builder_ip/verification/lib/verbosity_pkg.sv)
Чтобы использовать этот компонент в своей собственной системе Qsys, скопируйте папку /ip subdirectory из извлеченного файла ZIP в каталог проекта Quartus II. При создании или запуске системы Qsys в проекте Qsys обнаруживает IP-компонент в подуправлении /ip и добавляет компонент в список в разделе Проект библиотеки подкатегорией «Контроллеры памяти и памяти/Микросхема».
Файл ZIP также содержит следующие файлы для симуляции автономного компонента в подсистеме /ip/simulation:
- Файл теста tb_mem.sv
- Сценарий run_sim.tcl для выполнения симуляции в Mentor Graphics® ModelSim* с mem.do для отображения форм сигналов, демонстрирующих работу компонента
Для запуска симуляции в ModelSim установите рабочий каталог в папку /ip/simulation subdirectory из извлеченного файла ZIP. Введите run_sim.tcl.
Кроме того, файл ZIP содержит следующие файлы программного обеспечения Quartus II:
- Простой тест Qsys system test.qsys, чтобы иллюстрировать моментацию компонента в системе Qsys
- Файл проекта программного обеспечения Quartus II для создания и компиляции тестовой системы Qsys: test.qpf, test.qsf, test.sdc
Чтобы просмотреть компонент, мгновенно указанный в тесте системы Qsys, откройте файл проекта test.qpf в программном обеспечении Quartus II и откройте файл test.qsys в Qsys. Дважды нажмите на компонент в столбце «Имя» или «Описание» на вкладке «Содержание системы» (или нажмите правой кнопкой мыши на компонент и выберите «Редактировать»для просмотра редактора параметров.
Использование этой конструкции регулируется положениями и условиями лицензионного соглашения об использовании образца проекта Intel®.
Подробная информация о дизайне
В примере компонента Qsys представлены следующие интерфейсы:
Подчиненный интерфейс AXI-3
Подчиненный интерфейс AXI — это интерфейс с распределением памяти на блок памяти на микросхеме. Этот интерфейс должен контролироваться интерфейсом AXI или Avalon-MM, который может записывать и читать из блока памяти. Параметры указывают ширину сигнала AXI, ширину адреса подчиненного устройства и ширину данных.
Avalon-ST Interface
При мгновенном выводе этого компонента в Qsys вы можете включить или выключить дополнительный исходный интерфейс Avalon-ST. Этот интерфейс был вдохновлен приложениями телефонии, в которых тоны (DTMF, загружены, сигналы набора частот, ringback и т. д.) хранятся как повторяемые потоки байт, которые можно переключить по мере необходимости на определенный порт. Порт Avalon-ST обеспечивает один такой поток, который определяется адресом запуска, стоп-адресом и данными, которые хранятся в оперативной памяти между этими двумя адресами включительно. Слова приведены для вывода в порядке от адреса запуска до стоп-адреса; каждое слово сначала выводит MSB. Эта демонстрационная версия предполагает, что стоп-адрес больше, чем адрес пуска.
Например, рассмотрите следующую информацию о памяти:
адрес запуска: 0xbeef_0742
0xdace_32f7
стоп-адрес: 0xb0de_13ef
В результате байтовая трансляция будет: be-ef-07-42-da-ce-32-f7-b0-de-13-ef-be-ef-07...
интерфейс CSR Avalon-MM
Интерфейс Avalon-MM — это простой интерфейс реестра управления и состояния (CSR) для управления описанным выше портом потоковой трансляции. Этот интерфейс необходим только тогда, когда Avalon-ST активирован и выключен, Avalon интерфейс Avalon-ST выключен. Параметры указывают ширину Avalon® адреса и ширину данных.
Регистры управления находятся в диапазоне адресов, отдельном от диапазона адресов памяти. Базовый адрес может быть назначен в любом удобном месте на карте системной памяти. В следующей таблице перечислены цели для каждого реестра управления:
(Слово) Адрес |
Описание |
|---|---|
Base_addr + 2 |
Запустите [0] |
Base_addr + 1 |
Стоп-адрес [AV_DATA_W-1:0] |
Base_addr + 0 |
Адрес пуска [AV_DATA_W-1:0] |
Редактор параметров Qsys
На следующем снимке экрана показан пользовательский интерфейс редактора параметров компонента памяти Demo AXI в Qsys.