Skip to main content

Генератор Регистровой Карты

Project description

regmapGen

regmapGen_logo

Статус документации PyPI версия

regmapGen - это инструмент, который упрощает создание и поддержку Регистровой Карты для любого проекта на языке описания аппаратуры (HDL). Он позволяет описать карту регистров в одном файле, а затем сгенерировать HDL код, Header файлы, документацию и другие элементы. Это позволяет эффективно устранять расхождения между различными аспектами разработки ИС - hardware, software и документацией, а также автоматизировать процесс разработки, верификации и переиспользования кода IP-блока.

regmapGen_flow

Особенности

  • Человеко-читаемые форматы ввода: JSON, YAML или простая текстовая таблица
  • Генерация YAML файл с описанием регистров из Excel таблицы
  • Генерация IP-XACT XML описания регистров из Excel таблицы
  • Генерация HDL кода: SystemVerilog модуль с картой регистров, SystemVerilog header или SystemVerilog package с define-макросами или параметрами, соответственно
  • Генерация UVM регистровой модели и окружения для верификации
  • Поддержка нескольких протоколов: APB, AXI-Lite, Avalon-MM, SPI
  • Генерация документации: Markdown, AsciiDoc, Docx
  • Генерация файлов, относящихся к software-части: C header, Python модуль
  • Расширяемость: поддержка внешних генераторов
  • API: cоздание пользовательского рабочего процесса с помощью API regmapGen

regmapGen документация доступна в ReadTheDocs.io.

Установка

В зависимости от вашей систем, исполняемый файл Python 3 может быть python или python3. Если имеются ограничения с правами, можно использовать ключ --user при установке.

Для установки последней версии:

python3 -m pip install -U regmapGen

Быстрый старт

Лучший способ быстро начать — создать шаблоны. Вы можете создать карту регистров в удобном для вас формате (выберите один из json, yaml, txt) :

regmapGen -t yaml

Сгенерируется два файла: один файл с описанием регистров в выбранном формате regs.yaml, и второй файл конфигурации - config.

Карта регистров состоит из набора регистров, отображенных в память (также называемых как Control and Status Regiser - CSR), а регистры в свою очередь состоят из битовых полей. Например, карта регистров одного регистра в YAML выглядит так:

regmap:
-   name: CTRL
    description: Control register
    address: 8
    bitfields:
    -   name: BAUD
        description: Baudrate value
        reset: 0
        width: 2
        lsb: 0
        access: rw
        hardware: o
        enums:
        -   name: B9600
            description: 9600 baud
            value: 0
        -   name: B38400
            description: 38400 baud
            value: 1
        -   name: B115200
            description: 115200 baud
            value: 2

YAML файл также может быть сгенерирован из Excel таблица. Детали доступны в примере.

Чтобы узнать больше о регистрах, битовых полях и их атрибутах, пожалуйста, ознакомьтесь с документацией на странице Регистровая карта.

regmapGen - это инструмент, ориентированный на файлы конфигурации. По умолчанию он использует ini-файл конфигурации под названием config. В этом файле указываются все необходимые параметры для генерации: входной файл карты регистров, глобальные параметры и выходной файл (таргет). Вот пример:

[globcfg]
data_width = 32
address_width = 16
register_reset = sync_pos

[sv_module]
path = regs.sv
interface = axil
generator = SystemVerilog

[c_header]
path = regs.h
generator = CHeader

Для получения более подробной информации о файле config, посмотрите страницу Конфигурационный файл, а для более общей информации о процессе ознакомтесь с разделом Введение.

config также действует как сценарий сборки для regmapGen, поэтому просто запустите его в директории с файлом config:

regmapGen

И далее произойдет "магия".

Есть дополнительные опции для замены рабочей директории, карты регистров или файла конфигурации - для получения справки просто запустите:

regmapGen -h

Если вы ищете дополнительные примеры, пожалуйста, проверьте директорию examples.

Разработка

Пожалуйста, ознакомьтесь с Руководством разработчика.

Для PyPi:

rm -rf dist
pip3 install -e .
python3 setup.py sdist
twine upload dist/*

Лицензия

regmapGen лицензирован под Лицензией MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

regmapGen-1.0.3.tar.gz (38.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page