# ic1001 **Repository Path**: cioo_cpu/ic1001 ## Basic Information - **Project Name**: ic1001 - **Description**: IC1001是中国集成电路开源组织(CIOO)的一个非营利性的开源项目,此项目目前是为后续的第一个RISC-V开源项目而建。 - **Primary Language**: Verilog - **License**: MulanPSL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-10-11 - **Last Updated**: 2026-01-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RISC-V 异构计算平台 [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) [![iverilog](https://img.shields.io/badge/iverilog-compatible-green.svg)](https://github.com/steveicarus/iverilog) [English](README.en.md) | 中文 高性能RISC-V异构计算平台,采用big.LITTLE架构、领域专用加速器和先进内存子系统。专为AI/ML工作负载、网络处理和存储应用设计。 ## 特性 - **异构CPU架构** - 性能核心(4发射超标量、乱序执行) - 效率核心(2发射顺序流水线) - 核心类型间动态任务调度 - **领域专用加速器** - AI/ML张量处理器,支持INT8/FP16/BF16 - 网络处理器,100Gbps线速处理 - 存储控制器,支持NVMe和RAID - GPU接口控制器,PCIe 5.0 - **先进内存子系统** - 三级缓存层次(L1/L2/L3) - HBM3内存控制器 - MESI缓存一致性协议 - 内存保护单元 - **高性能互连** - 4x4 Mesh NoC拓扑 - QoS感知路由 - 一致性控制器 ## 架构概览 ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ RISC-V 异构计算平台 │ ├─────────────────────────────────────────────────────────────────────────┤ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ 性能核心 │ │ 性能核心 │ │ 效率核心 │ │ 效率核心 │ │ │ │ Core 0 │ │ Core 1 │ │ Core 0 │ │ Core 1 │ │ │ │ (4发射 OoO) │ │ (4发射 OoO) │ │ (2发射 IO) │ │ (2发射 IO) │ │ │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ │ │ │ │ │ ┌──────┴───────┐ ┌──────┴───────┐ ┌──────┴───────┐ ┌──────┴───────┐ │ │ │ L1 I/D $ │ │ L1 I/D $ │ │ L1 I/D $ │ │ L1 I/D $ │ │ │ │ 各32KB │ │ 各32KB │ │ 各16KB │ │ 各16KB │ │ │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ └──────────────────┴─────────────────┴──────────────────┘ │ │ │ │ │ ┌─────────┴─────────┐ │ │ │ 共享 L2 缓存 │ │ │ │ 512KB │ │ │ └─────────┬─────────┘ │ │ │ │ │ ┌─────────────────────────────────┴─────────────────────────────────┐ │ │ │ 4x4 Mesh NoC │ │ │ │ (QoS感知, 一致性) │ │ │ └───┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬───┘ │ │ │ │ │ │ │ │ │ │ │ ┌───┴───┐ ┌───┴───┐ ┌───┴───┐ ┌───┴───┐ ┌───┴───┐ ┌───┴───┐ ┌───┴───┐ │ │ │ L3 │ │ 张量 │ │ 网络 │ │ 存储 │ │ GPU │ │ HBM │ │ 平台 │ │ │ │ 缓存 │ │ 处理器│ │ 处理器│ │ 控制器│ │ 接口 │ │ 控制器│ │ 控制器│ │ │ │ 8MB │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └───────┘ └───────┘ └───────┘ └───────┘ └───────┘ └───────┘ └───────┘ │ └─────────────────────────────────────────────────────────────────────────┘ ``` ## 目录结构 ``` risc-v-platform/ ├── src/ │ ├── common/ # 共享包和定义 │ ├── components/ # 基础组件(ALU、FPU、寄存器堆) │ ├── cores/ │ │ ├── performance_core/ # 高性能乱序核心 │ │ └── efficiency_core/ # 低功耗顺序核心 │ ├── cache/ │ │ ├── l1_cache/ # L1指令和数据缓存 │ │ ├── l2_cache/ # 共享L2缓存(带一致性) │ │ └── l3_cache/ # 末级缓存 │ ├── memory/ # 内存控制器(HBM、DDR) │ ├── interconnect/ # NoC路由器和网格 │ ├── coprocessors/ │ │ ├── ai_accelerator/ # 张量处理器 │ │ ├── network_processor/ # 数据包处理引擎 │ │ ├── storage_controller/# NVMe和RAID │ │ └── gpu_interface/ # PCIe 5.0 GPU接口 │ └── system/ # 平台控制器和调度器 ├── tb/ │ ├── unit_tests/ # 模块级测试平台 │ └── property_tests/ # 属性验证 ├── common/ │ └── design/ │ └── ip/ # 通用IP库(子模块) ├── docs/ # 文档 └── Makefile # 构建自动化 ``` ## 快速开始 ### 环境要求 - **iverilog** >= 10.3 - **gtkwave** >= 3.3.100(可选,用于波形查看) - **make** >= 3.81 - **git**(用于子模块管理) ### 克隆仓库 ```bash git clone https://gitee.com/cioo/ic1001.git cd ic1001 git submodule update --init --recursive ``` ### 编译和测试 ```bash # 编译所有模块 make compile # 运行所有测试 make test # 运行特定组件测试 make test_alu make test_cache make test_core # 查看波形(需要gtkwave) make wave ``` ## 模块状态 | 组件 | 状态 | 测试 | |------|------|------| | ALU | ✅ 完成 | 通过 | | 寄存器堆 | ✅ 完成 | 通过 | | FPU | ✅ 完成 | 通过 | | L1 I-Cache | ✅ 完成 | 通过 | | L1 D-Cache | ✅ 完成 | 通过 | | L2 Cache | ✅ 完成 | 通过 | | L3 Cache | ✅ 完成 | 通过 | | 效率核心 | ✅ 完成 | 通过 | | 性能核心 | ✅ 完成 | 通过 | | NoC路由器 | ✅ 完成 | 通过 | | NoC网格 | ✅ 完成 | 通过 | | 张量处理器 | ✅ 完成 | 通过 | | 网络处理器 | ✅ 完成 | 通过 | | 存储控制器 | ✅ 完成 | 通过 | | GPU接口 | ✅ 完成 | 通过 | | HBM控制器 | ✅ 完成 | 通过 | | 平台控制器 | ✅ 完成 | 通过 | ## 通用IP库 本项目包含一个完整的通用IP库,作为git子模块位于`common/design/ip/`。提供80+可复用IP核心,包括: - 缓冲器和FIFO(同步/异步) - 跨时钟域模块 - 仲裁器(优先级、轮询、加权) - 存储块(RAM、ROM、CAM、TCAM) - 纠错码(SECDED、BCH、RS、LDPC) - 线路编码(8b/10b、64b/66b、128b/130b) 详见 [通用IP库README](common/design/ip/README.md)。 ## 设计规范 所有RTL代码遵循以下规范: - **iverilog兼容** - 使用`-g2012 -Wall`测试 - **可综合RTL** - 无仅仿真结构 - **英文注释** - 所有代码文档使用英文 - **参数化设计** - 灵活配置 - **一致命名** - `module_name`、`signal_name_i/o` ## 参与贡献 1. Fork本仓库 2. 创建特性分支(`git checkout -b feature/my-feature`) 3. 提交更改(`git commit -am 'Add new feature'`) 4. 推送到分支(`git push origin feature/my-feature`) 5. 创建Pull Request ## 许可证 本项目采用Apache License 2.0许可证 - 详见[LICENSE](LICENSE)文件。 ## 致谢 - 中国集成电路开源组织(CIOO) - RISC-V International - 开源EDA社区 ## 联系方式 - **组织**: 中国集成电路开源组织(CIOO) - **仓库**: https://gitee.com/cioo/ic1001 - **问题**: https://gitee.com/cioo/ic1001/issues