这是电子科技大学信息与软件工程学院卓中卓方向第五学期综合设计成果汇报的测试和展示仓库 (2026.1.11)
gnalc: 能进行高度优化的编译器,本次将主要展示riscv64-gc后端riscv-as: 可配置可拓展的汇编器,现已支持riscv64-gc所有指令linker:riscv专用链接器riscv64i: 软核CPU,支持riscv64-i裸机程序运行
qemu-riscv64-static: Linux用户态riscv模拟器verilator:SystemVerilog仿真工具,搭配其他GUI工具DE2-115: 用于实机测试的FPGA开发板
- lib: 依赖库文件,
sylib_standalone.o库实现比较简单,并且没有计时相关的函数体。 - RISCV64i-softIPcore: 指向
riscv64i工程文件夹的软链接文件夹 - testcase: 测试集
- toolchain: 存放编译器,汇编器和链接器 ELF 文件
- glibc: 存放
toolchain的依赖库和加载器,来自于 Fedora 42
CCG: 指定编译器ASM: 指定汇编器LINKER: 指定链接器TC: 指定测例QEMU: 指定模拟器GDB_PORT: 指定调试时的gdbserver开放端口SYLIB: 指定测例在lib/中的依赖库
compile: 仅测试编译器assemble: 测试编译器和汇编器link: 测试编译器、汇编器和链接器run: 通过模拟器测试工具链正确性debug: 通过模拟器和调试器对ELF进行调试sim: 进行带有GUI的SystemVerilog仿真(需要自行配置riscv64i)sim-debug: 进行CLI下的SystemVerilog单步调试(需要自行配置riscv64i)
github.com/0x676e616c63/gnalcgithub.com/0x676e616c63/riscv-asgithub.com/0x676e616c63/linkergithub.com/Leakbox258/riscv64i
ToolChain和RISCV64i-softIPcore中的内容均为作者本地构建完成,可能会对复现造成一定困难- 为了避免对系统本身动态库的依赖,打包了依赖库,同时对工具链的依赖路径进行修改
- 接上,由于依赖路径被修改为相对路径,故对
ToolChain的调用必须在该项目的顶级路径下进行,建议通过make进行使用 - 由于综合和烧写工具闭源,开发板上的测试难以集成至测试脚本中,需要手动进行相关工作。