Skip to content

KyleMao2023/LoongArch

Repository files navigation

Synapse-X4 Loongarch CPU

简介

本作品为2025龙芯杯个人赛参赛作品,获得了总决赛二等奖。整体架构为乱序四发射(ALU0,ALU1,MEM,MUL),常规流水线深度为10级。使用Chisel编写主要模块。

特性关键词:超标量,乱序执行(Tomasulo),分支预测(局部历史+BTB+RAS),背靠背唤醒,ICache,WriteBuffer

CPU在不产生时序为例的情况下,最高运行在70MHz。在评测中,最高能稳定运行在109MHz,运行时间如下:

Stream Matrix Cryptonight Final
0.036s 0.058s 0.165s 0.036s

更多介绍与设计思路请参照设计文档 design.pdf

编译与运行

编译项目

  • Scala版本:2.3.15
  • Chisel版本:6.6.0

确保已安装sbt,然后在项目根目录下执行:

sbt run

编译设计文档

进入 report 目录,使用 Typst 编译。

typst c experiment.typ

声明

由于时间和个人精力原因,维护这一个项目已经力不从心,即使到决赛,也很有可能存在潜在的Bug;有一些特性对于个人赛而言也是未必需要的。因此,希望后续的参赛者不要照搬这里的代码,而是理解流程后,做出更适合个人赛要求的优化。希望在今后的赛场上见到更优秀的作品!

致谢

  • 感谢两位学长以及他们去年参加团队赛的项目 NoAXI Loongarch CPU,对我理解乱序的工作原理起到了关键的帮助。

  • 项目 XUCPU 提供的测试脚本,对我的调试至关重要。

  • 仍有其他列举不尽的项目,我从中学习了UART串口设计、了解了决赛出题形式等。在此一并感谢它们的作者!

About

2025龙芯杯个人赛(NSCSSC 2025)LA赛道参赛作品。决赛二等奖,乱序四发射。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors