# 前言
OpenLA500（齐物）是一款实现了`龙芯架构32位精简版指令集（LoongArch32 Reduced）`的处理器核。OpenLA500的架构为经典的单发射静态五级流水，配备两路组相连的指令/数据Cache，32项全相连的tlb实现虚实地址映射，以及BTB及RAS实现分支预测。基本按照国科大体系结构实验课程逐步设计得到。FPGA运行频率为50M。

OpenLA500经过全面验证，已处于稳定状态。并于2023年龙芯全流程平台项目中，在SMIC 180um工艺下流片。

以下将从8个方面介绍OpenLA500的设计细节。

- [设计概述](./设计概述.md)：基于顶层框图，介绍各级流水的划分和各级流水之间的交互，以及流水线与其他模块的交互。
- [分支预测](./分支预测.md)：BTB及RAS两个分支预测器的具体设计，以及在流水线中的工作原理。
- [流水线的发射部分]()：流水线发射阶段（译码级）操作数准备、前递网络、阻塞控制的设计。
- [流水线的执行部分]()：alu、mul、div运算部件在流水线中的实现。
- [MMU]()：虚实地址映射逻辑，tlb维护。
- [例外实现]()：流水线中例外的判断及处理。
- [访存子系统]()：指令/数据Cache及AXI总线接口的实现。
- [调试部分]()：UART在线调试系统与OpenLA500的交互逻辑。


