清华大学计算机系《计算机组成原理》课程 NPU 挑战实验的参考软硬件代码。本仓库仅供清华大学《计算机组成原理》课程使用。
本仓库提供一套基于 4x4 脉动阵列(systolic array)的 NPU 硬件实现(SystemVerilog 版本和 Chisel 版本),以及用 C 语言开发的配套软件。NPU 作为 Wishbone Slave 挂到 CPU 总线上,CPU 通过 MMIO 向 L0A/L0B 写入数据、触发 LDTILE/TMUL 指令,并从 L0C 读回结果。
仓库地址:https://github.com/thu-cs-lab/cod-npu
下表路径均相对于本仓库根目录。
| 目录 | 内容 |
|---|---|
rtl/sv/ |
SystemVerilog 版 NPU 源码 |
rtl/chisel/ |
Chisel 版 NPU 源码 |
software/ |
用 C 语言编写的 NPU 配套软件 |
见课程实验文档(需登录清华账号后访问):
https://lab.cs.tsinghua.edu.cn/cod-lab-docs/labs/ex2/npu-overview/