Skip to content

0x676e616c63/Compiling-Toolchain-Presentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Brief

这是电子科技大学信息与软件工程学院卓中卓方向第五学期综合设计成果汇报的测试和展示仓库 (2026.1.11)

ToolChain

  • gnalc: 能进行高度优化的编译器,本次将主要展示riscv64-gc后端
  • riscv-as: 可配置可拓展的汇编器,现已支持riscv64-gc所有指令
  • linker: riscv 专用链接器
  • riscv64i: 软核CPU,支持riscv64-i裸机程序运行

Runtime

  • qemu-riscv64-static: Linux用户态riscv模拟器
  • verilator: SystemVerilog仿真工具,搭配其他GUI工具
  • DE2-115: 用于实机测试的FPGA开发板

Files And Dirs

  • lib: 依赖库文件, sylib_standalone.o 库实现比较简单,并且没有计时相关的函数体。
  • RISCV64i-softIPcore: 指向riscv64i工程文件夹的软链接文件夹
  • testcase: 测试集
  • toolchain: 存放编译器,汇编器和链接器 ELF 文件
  • glibc: 存放 toolchain 的依赖库和加载器,来自于 Fedora 42

Makefile Args

  • CCG: 指定编译器
  • ASM: 指定汇编器
  • LINKER: 指定链接器
  • TC: 指定测例
  • QEMU: 指定模拟器
  • GDB_PORT: 指定调试时的gdbserver开放端口
  • SYLIB: 指定测例在lib/中的依赖库

Makefile Cmd

  • compile: 仅测试编译器
  • assemble: 测试编译器和汇编器
  • link: 测试编译器、汇编器和链接器
  • run: 通过模拟器测试工具链正确性
  • debug: 通过模拟器和调试器对ELF进行调试
  • sim: 进行带有GUI的SystemVerilog仿真(需要自行配置riscv64i
  • sim-debug: 进行CLI下的SystemVerilog单步调试(需要自行配置riscv64i

Dependencies And SoftWare

请参见 gnalcriscv64i

3rd-party

  • github.com/0x676e616c63/gnalc
  • github.com/0x676e616c63/riscv-as
  • github.com/0x676e616c63/linker
  • github.com/Leakbox258/riscv64i

Warning

  • ToolChainRISCV64i-softIPcore 中的内容均为作者本地构建完成,可能会对复现造成一定困难
  • 为了避免对系统本身动态库的依赖,打包了依赖库,同时对工具链的依赖路径进行修改
  • 接上,由于依赖路径被修改为相对路径,故对ToolChain的调用必须在该项目的顶级路径下进行,建议通过 make 进行使用
  • 由于综合和烧写工具闭源,开发板上的测试难以集成至测试脚本中,需要手动进行相关工作。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •