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

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for regmapGen-1.0.6.tar.gz
Algorithm Hash digest
SHA256 347e8b4d94c610095dd9075324f3a05293f64f3f9a97e146f87662f14e3f9dea
MD5 1fee461d831f904d10774b1c4aa01dbc
BLAKE2b-256 6957a242932c6657aecab8c876bcf08bb53c7c6fdd8022cfa7de0aa9a75a8787

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