# OpenTPG
**Repository Path**: xingquan-li/OpenTPG
## Basic Information
- **Project Name**: OpenTPG
- **Description**: 基于MapReduce架构的ATPG算法
- **Primary Language**: C++
- **License**: MulanPSL-2.0
- **Default Branch**: race-icisc-2021
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 15
- **Created**: 2021-08-11
- **Last Updated**: 2022-05-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 目录
[概述](#summary)
- [竞赛](#summary-race)
- [参与贡献](#summary-join)
[安装说明](#install)
- [基本要求](#install-required)
- [构建](#install-build)
- [部署](#install-deploy)
- [小测验](#install-test)
[快速入门](#quickstart)
# 概述
OpenTPG 项目的目标是构建开源的 TPG 工具集。
## 竞赛
关于 2021 年 ICISC 竞赛相关的信息,参见:[doc/race-icisc-2021.md](doc/race-icisc-2021.md)
## 参与贡献
我们非常欢迎,您通过下面的方式参与贡献:
- 通过 [提交 issue](https://gitee.com/openeda/opentpg/issues/new) 给项目提意见或者建议
- 通过 [发起 Pull Request](https://gitee.com/openeda/opentpg/pull/new) 直接给项目贡献代码
- 参与 issue 或者 Pull Request 的评审或者评论
# 安装说明
## 基本要求
----------------------
* 外部依赖
| 需求项 | 版本 |
|--- |--- |
| boost | 1.76 |
| cmdline | 3.2.1 |
* 构建工具链
- gcc 7, C++11
- cmake 3.12 及以上
* 支持的操作系统
- Linux 4.9 及以上
* 支持硬件环境
- amd64
- ARM64
## 构建
----------------------
```bash
mkdir build
cd build
cmake ../
make
```
# 快速入门
## 一键流程
```shell
./HiAtpg -n bench/s17.bench -c bench/s17.cfg -u ./s17.cube
```
启动之后,HiAtpg将自动从 `bench/s17.bench` 和 `bench/s17.cfg` 读取输入,并将生成的 Cube 写入文件 `./s17.cube`。
# 系统接口
## 约定
合适的约定将极大简化项目成员之间的沟通。根据不同的用途和场景,这里列出本项目涉及到的主要的约定:
* 文件名后缀约定
| 后缀名 | 用途 | 文件格式 |
|--- |--- |--- |
| `*.bench` | 网表输入文件 | |
| `*.cfg` | 网表配置文件 | |
| `*.gate` | 导出的 Gate 列表 | |
| `*.fault` | 导出的 Fault 列表 | |
| `*.cube` | 导出的 Cube 列表 | |
* 命令行接口约定
一个命令行的参数,有两种两种组织形式 ` ` 和 ``。其中,`` 必须以符号 `-` 或者 `--` 开头。特殊情况下,使用 `--` 对下一个参数进行转义。
* 代码工程约定
`约定1`:我们约定一个类的文件名总是和该文件中的主要类的类名或相同(包括大小写)。
`约定2`:如果一个文件不设计主要类,那么该文件名必须为全小写字母
## 命令行接口定义
可以通过 `HiAtpg --help` 来查看所有的命令行定义。
下面将列出主要的命令行接口:
| 参数定义 | 是否必选 | 参数含义 |
|--- |--- |--- |
| `-n|--netlist ` | Yes | 指定网表文件 |
| `-c|--config ` | Yes | 执行网表配置文件 |
| `-f|--fault ` | No | 执行导出 Fault 列表功能, 为指定输出的 FaultList 文件 |
| `-g|--gate ` | No | 执行导出 Gate 列表功能, 为指定输出 Gate 信息文件 |
| `-u|--cube ` | No | 执行导出 Cube 列表功能指定输出 Cube 信息文件 |