# 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 код, документацию, и другие элементы. Это позволяет эффективно устранять расхождения между различными аспектами разработки ИС - hardware, software и документацией, а также автоматизировать процесс разработки, верификации и переиспользования кода IP-блока.
![regmapGen_flow](docs/img/regmapGen_flow.png)
## Особенности
- Человеко-читаемые форматы ввода: 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](https://regmapGen.readthedocs.io).
## Установка
В зависимости от вашей систем, исполняемый файл Python 3 может быть `python` или `python3`.
Если имеются ограничения с правами, можно использовать ключ `--user` при установке.
Для установки последней версии:
```sh
python3 -m pip install -U regmapGen
```
## Быстрый старт
Лучший способ быстро начать — создать шаблоны. Вы можете создать карту регистров в удобном для вас формате (выберите один из `json`, `yaml`, `txt`, `xls`) :
```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/regmap_xls).
Чтобы узнать больше о регистрах, битовых полях и их атрибутах, пожалуйста, ознакомьтесь с документацией на странице [Регистровая карта](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/9e/cb/7f7f0c254ae6930016f7c208fe5f1d95002521e5c5617c52696c54113c81/regmapGen-1.1.3.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, \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, EXCEL \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \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 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, SV-Header \u0438\u043b\u0438 SV-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- \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438: Markdown, AsciiDoc, Docx, HTML\n- \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f IP-XACT XML \u0438 CMSIS SVD \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\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- \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, SPI, Avalon-MM\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`, `xls`) :\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\u044b. \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/regmap_xls).\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": "MIT",
"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.1.3",
"project_urls": {
"Documentation": "https://regmapGen.readthedocs.io",
"Homepage": "https://github.com/paulmsv/regmapGen"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9ecb7f7f0c254ae6930016f7c208fe5f1d95002521e5c5617c52696c54113c81",
"md5": "7f2a7cc5e82ee4a5108fd7b4dc65d725",
"sha256": "72542990e7a17e4df420e366544ed1551ae58ba4c1c5ec31746c00d1c64520bc"
},
"downloads": -1,
"filename": "regmapGen-1.1.3.tar.gz",
"has_sig": false,
"md5_digest": "7f2a7cc5e82ee4a5108fd7b4dc65d725",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 216562,
"upload_time": "2024-07-03T14:42:12",
"upload_time_iso_8601": "2024-07-03T14:42:12.537297Z",
"url": "https://files.pythonhosted.org/packages/9e/cb/7f7f0c254ae6930016f7c208fe5f1d95002521e5c5617c52696c54113c81/regmapGen-1.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-03 14:42:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "paulmsv",
"github_project": "regmapGen",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "regmapgen"
}