Skip to main content

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

Project description

regmapGen

regmapGen_logo

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

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

regmapGen_flow

Особенности

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

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

Установка

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

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

python3 -m pip install -U regmapGen

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

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

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.1.3.tar.gz (216.6 kB view details)

Uploaded Source

File details

Details for the file regmapGen-1.1.3.tar.gz.

File metadata

  • Download URL: regmapGen-1.1.3.tar.gz
  • Upload date:
  • Size: 216.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.12

File hashes

Hashes for regmapGen-1.1.3.tar.gz
Algorithm Hash digest
SHA256 72542990e7a17e4df420e366544ed1551ae58ba4c1c5ec31746c00d1c64520bc
MD5 7f2a7cc5e82ee4a5108fd7b4dc65d725
BLAKE2b-256 9ecb7f7f0c254ae6930016f7c208fe5f1d95002521e5c5617c52696c54113c81

See more details on using hashes here.

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