vortex/doc/Codebase.md
2021-06-13 17:42:04 -07:00

2 KiB

Vortex Codebase

The directory/file layout of the Vortex codebase is as followed:

  • hw:
    • unit_tests: contains unit test for RTL of cache and queue
    • syn: contains all synthesis scripts (quartus and yosys)
      • quartus: contains synthesis scripts for Intel Quartus toolchain
      • opae: contains synthesis scripts for Intel OPAE FPGA
    • simulate: contains RTL simulator (verilator)
    • rtl: contains rtl source code
      • cache: contains cache subsystem code
      • fp_cores: contains floating point unit code
      • interfaces: contains code that handles communication for each of the units of the microarchitecture
      • libs: contains general-purpose modules (i.e., buffers, encoders, arbiters, pipe registers)
  • driver: contains driver software implementation (software that is run on the host to communicate with the vortex processor)
    • include: contains vortex.h which has the vortex API that is used by the drivers
    • opae: contains code for driver that runs on FPGA
    • rtlsim: contains code for driver that runs on local machine (driver built using verilator which converts rtl to c++ binary)
    • simx: contains code for driver that runs on local machine (vortex)
  • runtime: contains software used inside kernel programs to expose GPGPU capabilities
    • include: contains vortex API needed for runtime
    • linker: contains linker file for compiling kernels
    • src: contains implementation of vortex API (from include folder)
  • simX: contains simX, the cycle approximate simulator for vortex
    • tests: contains tests suite
      • runtime: contains vortex runtime tests
      • driver: contains vortex driver tests
      • opencl: contains opencl tests and benchmarks
      • riscv: contains official riscv tests
      • regression: contains regression tests
      • vector: tests for vector instructions (not yet implemented)
    • ci: contain tests to be run during continuous integration (Travis CI)
    • miscs: contains miscellaneous stuffs