Systolic-array-implementation-in-RTL-for-TPU 项目使用教程
1. 项目的目录结构及介绍
Systolic-array-implementation-in-RTL-for-TPU/
├── Pics/
│ └── 项目相关图片
├── Pre-Synthesis_Simulation/
│ └── 预综合仿真文件
├── pnr/
│ └── 布局布线相关文件
├── rtl/
│ └── 寄存器传输级(RTL)设计文件
├── syn/
│ └── 综合相关文件
├── LICENSE
├── README.md
└── 其他文件
目录结构介绍
- Pics: 存放项目相关的图片文件,如设计图、流程图等。
- Pre-Synthesis_Simulation: 存放预综合阶段的仿真文件,用于验证设计的正确性。
- pnr: 存放布局布线(Place and Route)阶段的文件,用于将设计映射到具体的硬件上。
- rtl: 存放寄存器传输级(RTL)设计文件,包括Verilog代码等。
- syn: 存放综合阶段的文件,用于将RTL设计转换为门级网表。
- LICENSE: 项目的许可证文件,本项目使用MIT许可证。
- README.md: 项目的介绍文件,包含项目的概述、使用方法等。
2. 项目的启动文件介绍
项目的启动文件主要位于rtl
目录下,包含主要的Verilog设计文件。以下是一些关键的启动文件:
- systolic_array.v: 这是项目的主要设计文件,定义了8x8的脉动阵列(Systolic Array)的结构和功能。
- cell.v: 定义了脉动阵列中的每个单元(Cell)的设计,包括数据和权重的处理逻辑。
- testbench.v: 这是项目的测试平台文件,用于验证设计的正确性。
启动文件介绍
- systolic_array.v: 该文件定义了整个脉动阵列的结构,包括64个单元(Cell)的连接方式和数据流动逻辑。
- cell.v: 每个单元(Cell)包含三个寄存器:一个ALU用于记录累积结果,一个权重寄存器用于存储矩阵A的数据并转发到下一行,一个数据寄存器用于存储矩阵B的数据并转发到下一列。
- testbench.v: 该文件包含三个矩阵乘法的测试用例,用于模拟三种不同的情况:初始进入脉动阵列、稳态运行和离开脉动阵列。
3. 项目的配置文件介绍
项目的配置文件主要用于定义设计的环境和约束条件,确保设计能够正确地综合和布局布线。以下是一些关键的配置文件:
- constraints.xdc: 这是项目的约束文件,定义了设计的时序约束和物理约束。
- synth_settings.tcl: 这是综合阶段的配置文件,定义了综合工具的参数和选项。
- pnr_settings.tcl: 这是布局布线阶段的配置文件,定义了布局布线工具的参数和选项。
配置文件介绍
- constraints.xdc: 该文件定义了设计的时序约束,如时钟周期、输入输出延迟等。还定义了物理约束,如引脚分配、区域约束等。
- synth_settings.tcl: 该文件定义了综合工具的参数,如目标器件、优化选项等。
- pnr_settings.tcl: 该文件定义了布局布线工具的参数,如布局布线策略、优化选项等。
通过以上配置文件,可以确保设计在FPGA上正确地实现,并满足时序和物理约束。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考