regmapGen


NameregmapGen JSON
Version 1.0.2 PyPI version JSON
download
home_pagehttps://github.com/paulmsv/regmapGen
SummaryГенератор Регистровой Карты
upload_time2024-04-03 19:40:44
maintainerNone
docs_urlNone
authorpaulmsv
requires_python>=3.6
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # regmapGen

![regmapGen_logo](docs/img/logo.png)

[![Статус документации](https://readthedocs.org/projects/regmapGen/badge/?version=latest)](https://regmapGen.readthedocs.io/ru/latest/?badge=latest)
[![PyPI версия](https://badge.fury.io/py/regmapGen.svg)](https://badge.fury.io/py/regmapGen)


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

![regmapGen_flow](docs/img/regmapGen_flow.png)

## Особенности

- Человеко-читаемые форматы ввода: 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](https://regmapGen.readthedocs.io).

## Установка

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

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

```sh
python3 -m pip install -U regmapGen
```

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

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

```sh
regmapGen -t yaml
```

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

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

```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 таблица. Детали доступны в [примере](https://github.com/PaulMSV/regmapGen/example/excel).

Чтобы узнать больше о регистрах, битовых полях и их атрибутах, пожалуйста, ознакомьтесь с документацией на странице [Регистровая карта](https://regmapGen.readthedocs.io/en/latest/regmap.html).


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

```ini
[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`, посмотрите страницу [Конфигурационный файл](https://regmapGen.readthedocs.io/en/latest/config.html), а для более общей информации о процессе ознакомтесь с разделом [Введение](https://regmapGen.readthedocs.io/en/latest/introduction.html).

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

```sh
regmapGen
```

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

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

```sh
regmapGen -h
```

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

## Разработка

Пожалуйста, ознакомьтесь с [Руководством разработчика](https://regmapGen.readthedocs.io/en/latest/contributing.html).

Для PyPi:

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

## Лицензия

regmapGen лицензирован под [Лицензией MIT](LICENSE).



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/paulmsv/regmapGen",
    "name": "regmapGen",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": null,
    "author": "paulmsv",
    "author_email": "bobkovpg@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/6f/c2/2213e664bc2f6b8aa78df132db81d55a7c0c053554aad196c3b8518d5a2c/regmapGen-1.0.2.tar.gz",
    "platform": null,
    "description": "# regmapGen\n\n![regmapGen_logo](docs/img/logo.png)\n\n[![\u0421\u0442\u0430\u0442\u0443\u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438](https://readthedocs.org/projects/regmapGen/badge/?version=latest)](https://regmapGen.readthedocs.io/ru/latest/?badge=latest)\n[![PyPI \u0432\u0435\u0440\u0441\u0438\u044f](https://badge.fury.io/py/regmapGen.svg)](https://badge.fury.io/py/regmapGen)\n\n\n**regmapGen** - \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u043e\u0439 \u041a\u0430\u0440\u0442\u044b \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0443\u0440\u044b (HDL). \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0432 \u043e\u0434\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435, \u0430 \u0437\u0430\u0442\u0435\u043c \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c HDL \u043a\u043e\u0434, Header \u0444\u0430\u0439\u043b\u044b, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0418\u0421 - hardware, software \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 IP-\u0431\u043b\u043e\u043a\u0430.\n\n![regmapGen_flow](docs/img/regmapGen_flow.png)\n\n## \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438\n\n- \u0427\u0435\u043b\u043e\u0432\u0435\u043a\u043e-\u0447\u0438\u0442\u0430\u0435\u043c\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0432\u0432\u043e\u0434\u0430: JSON, YAML \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430\n- \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f YAML \u0444\u0430\u0439\u043b \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438\u0437 Excel \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n- \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f IP-XACT XML \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438\u0437 Excel \u0442\u0430\u0431\u043b\u0438\u0446\u044b\n- \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f HDL \u043a\u043e\u0434\u0430: SystemVerilog \u043c\u043e\u0434\u0443\u043b\u044c \u0441 \u043a\u0430\u0440\u0442\u043e\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, SystemVerilog header \u0438\u043b\u0438 SystemVerilog package \u0441 define-\u043c\u0430\u043a\u0440\u043e\u0441\u0430\u043c\u0438 \u0438\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\n- \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f UVM \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438\n- \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432: APB, AXI-Lite, Avalon-MM, SPI\n- \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438: Markdown, AsciiDoc, Docx\n- \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f  \u0444\u0430\u0439\u043b\u043e\u0432, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0445\u0441\u044f \u043a software-\u0447\u0430\u0441\u0442\u0438: C header, Python \u043c\u043e\u0434\u0443\u043b\u044c\n- \u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c: \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432\n- API: c\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e API regmapGen\n\nregmapGen \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432 [ReadTheDocs.io](https://regmapGen.readthedocs.io).\n\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n\u0412 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0432\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c, \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b Python 3 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c `python` \u0438\u043b\u0438 `python3`.\n\u0415\u0441\u043b\u0438 \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447 `--user` \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435.\n\n\u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438:\n\n```sh\npython3 -m pip install -U regmapGen\n```\n\n## \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\n\n\u041b\u0443\u0447\u0448\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u2014 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d\u044b. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0443 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0432 \u0443\u0434\u043e\u0431\u043d\u043e\u043c \u0434\u043b\u044f \u0432\u0430\u0441 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 (\u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043e\u0434\u0438\u043d \u0438\u0437 `json`, `yaml`, `txt`) :\n\n```sh\nregmapGen -t yaml\n```\n\n\u0421\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430: \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0432 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 `regs.yaml`, \u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 - `config`.\n\n\u041a\u0430\u0440\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044b\u0445 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c (\u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u043a\u0430\u043a Control and Status Regiser - CSR), \u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u0431\u0438\u0442\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u0440\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0432 YAML \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:\n\n```yaml\nregmap:\n-   name: CTRL\n    description: Control register\n    address: 8\n    bitfields:\n    -   name: BAUD\n        description: Baudrate value\n        reset: 0\n        width: 2\n        lsb: 0\n        access: rw\n        hardware: o\n        enums:\n        -   name: B9600\n            description: 9600 baud\n            value: 0\n        -   name: B38400\n            description: 38400 baud\n            value: 1\n        -   name: B115200\n            description: 115200 baud\n            value: 2\n```\n\nYAML \u0444\u0430\u0439\u043b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0438\u0437 Excel \u0442\u0430\u0431\u043b\u0438\u0446\u0430. \u0414\u0435\u0442\u0430\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 [\u043f\u0440\u0438\u043c\u0435\u0440\u0435](https://github.com/PaulMSV/regmapGen/example/excel).\n\n\u0427\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0445, \u0431\u0438\u0442\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u044f\u0445 \u0438 \u0438\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u0445, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 [\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430](https://regmapGen.readthedocs.io/en/latest/regmap.html).\n\n\nregmapGen - \u044d\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0444\u0430\u0439\u043b\u044b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 ini-\u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c config. \u0412 \u044d\u0442\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438: \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0444\u0430\u0439\u043b \u043a\u0430\u0440\u0442\u044b \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432, \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0444\u0430\u0439\u043b (\u0442\u0430\u0440\u0433\u0435\u0442). \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440:\n\n```ini\n[globcfg]\ndata_width = 32\naddress_width = 16\nregister_reset = sync_pos\n\n[sv_module]\npath = regs.sv\ninterface = axil\ngenerator = SystemVerilog\n\n[c_header]\npath = regs.h\ngenerator = CHeader\n```\n\n\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0444\u0430\u0439\u043b\u0435 `config`, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 [\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b](https://regmapGen.readthedocs.io/en/latest/config.html), \u0430 \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u043e\u0431\u0449\u0435\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0442\u0435\u0441\u044c \u0441 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u043c [\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435](https://regmapGen.readthedocs.io/en/latest/introduction.html).\n\n`config` \u0442\u0430\u043a\u0436\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043a\u0430\u043a \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0441\u0431\u043e\u0440\u043a\u0438 \u0434\u043b\u044f regmapGen, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0435\u0433\u043e \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441 \u0444\u0430\u0439\u043b\u043e\u043c `config`:\n\n```sh\nregmapGen\n```\n\n\u0418 \u0434\u0430\u043b\u0435\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 \"\u043c\u0430\u0433\u0438\u044f\".\n\n\u0415\u0441\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u043f\u0446\u0438\u0438 \u0434\u043b\u044f \u0437\u0430\u043c\u0435\u043d\u044b \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u043a\u0430\u0440\u0442\u044b \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432 \u0438\u043b\u0438 \u0444\u0430\u0439\u043b\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 - \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u043f\u0440\u0430\u0432\u043a\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435:\n\n```sh\nregmapGen -h\n```\n\n\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0449\u0435\u0442\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e `examples`.\n\n## \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430\n\n\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 [\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430](https://regmapGen.readthedocs.io/en/latest/contributing.html).\n\n\u0414\u043b\u044f PyPi:\n\n```bash\nrm -rf dist\npip3 install -e .\npython3 setup.py sdist\ntwine upload dist/*\n```\n\n## \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\n\nregmapGen \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u043e\u0434 [\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT](LICENSE).\n\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "\u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u043e\u0439 \u041a\u0430\u0440\u0442\u044b",
    "version": "1.0.2",
    "project_urls": {
        "Documentation": "https://regmapGen.readthedocs.io",
        "Homepage": "https://github.com/paulmsv/regmapGen"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6fc22213e664bc2f6b8aa78df132db81d55a7c0c053554aad196c3b8518d5a2c",
                "md5": "da393e1dd79d77fe80a45a2dde6bae98",
                "sha256": "afa093f4f83cf6cd8179c166e554ce2173237d910925e798414f330139ac784d"
            },
            "downloads": -1,
            "filename": "regmapGen-1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "da393e1dd79d77fe80a45a2dde6bae98",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 38224,
            "upload_time": "2024-04-03T19:40:44",
            "upload_time_iso_8601": "2024-04-03T19:40:44.958540Z",
            "url": "https://files.pythonhosted.org/packages/6f/c2/2213e664bc2f6b8aa78df132db81d55a7c0c053554aad196c3b8518d5a2c/regmapGen-1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-03 19:40:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "paulmsv",
    "github_project": "regmapGen",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "regmapgen"
}
        
Elapsed time: 0.21179s