Skip to content

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LoongArch LA32R CPU · 120 MHz 工程

这是用于龙芯杯 NSCSCC 个人赛的 LoongArch LA32R 单核 SoC 工程。该分支以稳定的 120 MHz CPU 配置为基线,仅保留 RTL、Xilinx IP、XDC 约束、Vivado 脚本与必要的汇编构建文件;Vivado 自动生成目录、实现结果和 bitstream 不纳入版本库。

工程配置

  • FPGA:xc7a200tfbg676-2
  • 顶层模块:thinpad_top
  • 输入时钟:50 MHz
  • CPU 时钟:120 MHz
  • SRAM 控制时钟:60 MHz
  • UART 时钟:25 MHz
  • CPU 指令集:LoongArch LA32R 子集

时钟配置由 src/soc/xilinx_ip/clk_pll/clk_pll.xci 管理。实际可达频率与 WNS 必须以后续 Vivado post-route 时序报告为准,不应仅以 PLL 配置值判断。本仓库当前源码锚点在 Vivado 2019.2 / xc7a200tfbg676-2 上已取得 post-route setup WNS +0.006 ns、hold WHS +0.079 ns;适用范围、关键路径和资源利用率见 docs/RELEASE_120MHZ.md

微架构概览

  • 分级取指、译码、寄存器读取、执行、访存、写回数据通路;关键模块位于 src/soc/ip/myCPU/
  • 有序完成与退休、数据相关跟踪、结果旁路和流水乘法支持。
  • I-Cache、write-through D-Cache、store queue、写合并缓冲和原生内存仲裁。
  • BaseRAM、ExtRAM、UART、confreg 通过片上原生内存通路连接。
  • 顶层时钟、复位与板级接口在 src/soc/thinpad_top.v 中集成。

目录说明

路径 内容
src/soc/ 可综合 RTL;顶层必须为 thinpad_top
src/soc/ip/myCPU/ CPU 核心流水线、Cache、旁路、分支与内存控制逻辑。
src/soc/xilinx_ip/ 已提交的 Xilinx IP 配置文件(.xci / .xcix)。
run_vivado/constraints/ 板级引脚、时钟与时序约束(XDC)。
run_vivado/flow/ 默认 Vivado 工程创建、实现与 bitstream 脚本。
run_vivado/simulation/ 仿真相关模型与测试平台文件。
asm/ 用户汇编程序及其构建规则;不属于 CPU RTL 实现本体。
src/vivado_cannot/ 不直接参与 Vivado 综合的仿真或说明文件。
design.pdf 设计说明文档。

Vivado 构建

使用 Vivado 2019.2,在仓库根目录执行:

cd run_vivado
vivado -mode batch -source flow/create_vivado_project.tcl
vivado -mode batch -source flow/implement_design.tcl
vivado -mode batch -source flow/generate_bitstream.tcl

实现完成后,重点检查:

run_vivado/project/thinpad_top.runs/impl_1/timing_summary.rpt
run_vivado/project/thinpad_top.runs/impl_1/utilization.rpt

只有 post-route WNS 为正、功能回归通过时,才应将该实现视为可交付版本。

汇编构建

asm/ 用于生成监督程序可装载的 user-sample.bin

make -C asm clean all

该命令会检查入口地址和 CPU 支持的指令集合。汇编程序与 CPU RTL 分开维护;修改汇编不等同于修改 CPU 架构。

仓库规范

  • 提交 RTL、XDC、.xci、Tcl、源代码、文档和必要的汇编源文件。
  • 不提交 run_vivado/project/.Xil/*.runs/*.cache/、bitstream、网表、检查点及日志。
  • 每次修改 RTL 或 XDC 后,重新执行综合、布局布线、时序检查和功能验证。
  • 不用时序例外掩盖真实关键路径;以 post-route 报告作为时序结论。

当前分支定位

该 GitHub main 分支用于保存 120 MHz CPU 的干净、可复现源码基线。后续实验性优化应从新的分支开展,避免污染该基线。

交付边界、复现命令和待记录的实现证据见 docs/RELEASE_120MHZ.md;提交 RTL、XDC 或 Vivado 脚本前的验证要求见 CONTRIBUTING.md。GitHub Actions 只检查源码卫生,不在云端宣称完成 Vivado 实现或功能验证。

About

LoongArch LA32R CPU for XC7A200T FPGA with a documented 120 MHz source baseline.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages