HDL组件管理器

hcm的Python项目详细描述


将hdl代码作为组件管理,以便它们可以作为ip共享。

Github ReleasePyPI VersionBuild StatusTest CoverageRead The DocsCodacyMaintainabilitydocs/img/hcm_overview.gif

概述

hcm是在一次令人沮丧的尝试之后创建的,它试图将一个程序中的更改合并到另一个程序中。 即使在仔细执行合并之后,仍然存在一些问题。

仅仅在多个并发运行的程序之间传递更新就变成了一场噩梦。 我的灵感来自pip,以及安装python包是多么容易。 我想给hdl设计带来同样的便利。

主要优点

  • 提供控制IP版本的方法
  • 控制HDL代码的分发
  • 遵循版本控制的major.minor.patch方法
  • 与语言无关(vhdl、verilog、systemverilog)
  • 可用于控制供应商IP

主要功能

  • 使用SVN存储库
  • 自动将代码发布到中心位置
  • 自动安装和升级代码
  • 支持多个IP存储库
  • 支持组件之间的依赖关系

安装

您可以通过pip获得最新版本的hcm。

pip install hcm

最新的开发版本可以克隆…

git clone https://github.com/jeremiah-c-leary/hdl-component-manager.git

…然后在本地安装…

python setup.py install

用法

可以通过在命令行提示符下发出hcm来调用hcm

$ hcm
usage: hcm [-h]{browse,create,download,install,uninstall,list,publish,show,validate,version}
           ...

Provides configuration management for HDL components.

positional arguments:
  {browse,create,download,install,uninstall,list,publish,show,validate,version}
    browse              List components available for installation.
    create              Creates a component repo
    download            Downloads components without installing them.
    install             Adds a component from the component repo
    uninstall           Removes installed components
    list                Lists components and their versions
    publish             Adds components to the component repo
    show                Displays information about installed components
    validate            Verifies manifest of installed component
    version             Displays HCM version information

optional arguments:
  -h, --help            show this help message and exit

hcm有八个子命令:browse、create、install、uninstall、list、publish、show和validate。

浏览

使用browse子命令列出可用于安装的组件。

docs/img/hcm_browse_subcommand.gif

子命令的参数可以使用-h选项列出:

$ hcm browse -h
usage: hcm browse [-h][component]

positional arguments:
  component   Component to browse

optional arguments:
  -h, --help  show this help message and exit

创建

使用create子命令在存储库中创建组件目录。

docs/img/hcm_create_subcommand.gif

子命令的参数可以使用-h选项列出:

$ hcm create -h
usage: hcm create [-h] url

positional arguments:
  url         location to create the base component repo

optional arguments:
  -h, --help  show this help message and exit

下载

使用download子命令从存储库中提取一个版本,而不安装它。

docs/img/hcm_download_subcommand.gif

安装

使用install子命令添加或升级存储库中的组件。

docs/img/hcm_install_subcommand.gif

子命令的参数可以使用-h选项列出:

$ bin/hcm install -h
usage: hcm install [-h][--version VERSION][--url URL][--force][--external][--dependencies][--upgrade]
                   component

positional arguments:
  component          Component name to install

optional arguments:
  -h, --help         show this help message and exit
  --version VERSION  Major.Minor.Patch version of component to install.
  --url URL          location of component directory in repo
  --force            Install component ignoring any local changes
  --external         Install as an external
  --dependencies     Install dependencies
  --upgrade          Upgrade dependencies to latest version

卸载

使用uninstall子命令删除已安装的组件。

docs/img/hcm_uninstall_subcommand.gif

子命令的参数可以使用-h选项列出:

$ hcm uninstall -h
usage: hcm uninstall [-h] component

positional arguments:
  component   Installed Component name to install

optional arguments:
  -h, --help  show this help message and exit

列表

使用list子命令检查已安装组件的版本。

docs/img/hcm_list_subcommand.gif

子命令的参数可以使用-h选项列出:

$ hcm list -h
usage: hcm list [-h][--all]

optional arguments:
  -h, --help  show this help message and exit
  --all       Includes directories that are not under HCM control

发布

使用publish子命令将组件的版本推送到存储库。

docs/img/hcm_publish_subcommand.gif

子命令的参数可以使用-h选项列出:

$ hcm publish -h
usage: hcm publish [-h](-m M | -f F)[--url URL] component version

positional arguments:
  component   Component name to publish
  version     Major.Minor.Patch version to publish

optional arguments:
  -h, --help  show this help message and exit
  -m M        Commit message
  -f F        File to use as commit message
  --url URL   Base URL of the component repository

显示

使用show子命令显示有关已安装组件的信息。

docs/img/hcm_show_subcommand.gif

子命令的参数可以使用-h选项列出:

$ hcm show -h
usage: hcm show [-h][--manifest][--upgrades][--updates][--modifications]
                component

positional arguments:
  component        Component to display information

optional arguments:
  -h, --help       show this help message and exit
  --manifest       Displays manifest for all files in component
  --upgrades       Lists upgrade versions and their log entries
  --updates        Lists versions with newer publishes and their log entries
  --modifications  Lists committed modifications for component

验证

使用validate子命令将组件清单与当前安装的组件清单进行比较。

docs/img/hcm_validate_subcommand.gif

子命令的参数可以使用-h选项列出:

$ hcm validate -h
usage: hcm validate [-h][--report] component

positional arguments:
  component   Component to display information

optional arguments:
  -h, --help  show this help message and exit
  --report    Reports differences

环境变量

hcm将使用hcm url路径环境变量替换–url命令行选项。 hcm使用变量中的路径来知道要与哪个组件存储库交互。

文档

hcm的所有文档都托管在read-the-docs

贡献

我欢迎对这个项目的任何贡献。 无论大小。

有几种方法可供选择:

  • 错误报告
  • 代码库改进
  • 功能请求
  • 拉取请求

请参阅read-the-docs上的文档,了解有关投稿的更多详细信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
serversocket Java服务器socket中断如何   java通过随机类和排序为数组生成数据   @Column length大于255个字符的java实体   java在使用NIO2 API时消除检查异常   java使用用户凭据通过Microsoft Graph API上的控制台应用程序发送电子邮件   java将2个ArrayList一个接一个地显示到jTextArea中,根据输入的数据多次显示   java无法使用导入的库。安卓工作室。谷歌云端点jar   spring boot Neo4j Apoc在java中获取结果摘要时的情况   转义特殊字符javajson   无法在java中使用OpenCV读取图像,涉及unicode路径   swing Document Listener java“无法实例化DocumentListener类型”   java Piglatin,难以理解如何移动“.”一串   java映射请求基于一个可观察对象中的每个元素,使用改进?   java在可扩展字符串中搜索时,如何忽略字符的大小写?   在包中分组类的java约定   python为Java应用程序创建Ubuntu指示小程序   java Camunda:如何通过processInstanceId获取所有已完成的任务