Skip to content

weekly_report_notes

David Metz edited this page Sep 28, 2020 · 1 revision

#14.09. - 20.09.

  • finally got bank account and submitted it + summer job hours to hr -> can finally get employee account + get paid

  • firesim

    • got firesim repo to build and software to run on lobo
      • qemu can't be built
        • requires newer gthread and glib versions than available
        • only necessary for FireMarshal -> test linux images elsewhere -> needs to be commented out in firesim/target-design/chipyard/scripts/build-toolchains.sh
      • make dromajo compile
        • Makfile should be generated by cmake -> no use for pull request -> add -D__STDC_FORMAT_MACROS to CXXFLAGS in firesim/target-design/chipyard/tools/dromajo/dromajo-src/src/Makefile -> lobo now usable
    • adjusted firesim makefiles to provide targets fpga and convey-app for PLATFORM=convey
      • fpga generates files for convey toolchain and builds fpga image
      • convey-app compiles host application for firesim (new host application for every image because bridge addresses can change)
    • firesim hangs in initialisation phase
      • communication with convey to axi shell works from firesim binary -> builds correctly
      • communication with bridge registers over AXI fails -> get verilator simulation of wolverine to work for firesim
        • WolverineShim as top verilog
        • simif_convey_emul
        • found out that I was using word addresses instead of byte addresses... -> simulation is now at least starting
        • implement + check memory next -> turns out that the maximum transaction size what set too large -> dhrystone works in simulation
      • firesim works for ibda.elf
        • hangs every second time - some reset not working?
          • quickfix: don't let dispatch complete -> fpga bitstream is reloaded for every execution -> slow startup -> reset csr in convey harness?
      • doesn't work for dhrystone
        • run individual instruction tests
          • something broken for amo instructions -> difference between real and simulation memory interface?
        • create simple tracer to find out which insn fails
          • TracerS

###Objectives for last week

  • get firesim to work ###Accomplishments last week
  • finally got bank account and submitted it + summer job hours to hr -> can finally get employee account + get paid
  • got firesim to build on lobo
  • integrated convey bitstream build process into firesim
  • implemented verilator simulation of convey interface for firesim ###Problems and solutions
  • fixed some memory interface issues with the simulator
  • firesim currently fails for programs with amo instructions
    • works in simulator
    • simple tracer to find out exact failing point (TracerV without DMA) ###Next week's objectives
  • get amo instructions to work on firesim
    • finish implementing tracer
    • improve simulation model once source is found
  • improve firesim makefile to make usage easier
  • run simulations on firesim ###Long-term plan
  • get thesis work running on new firesim
  • improve critical path
  • investigate OpenRoad ASIC toolflow
  • decide what to do next

#21.09. - 27.09.

  • firesim
    • got TracerS to work
    • failing applications either stop right after bootloader or at 0x8000003E - last before 0x80000040 -> elf loading does not work
      • disabled loadmem interface because it does not work propperly
        • replacing with wolverine
          • memcopy does not work while accelerator is running -> doesn't work
        • use TSI instead
          • TSI is too slow
            • adjust +fesvr-step-size and let serial act without blocking
            • rework serial bridge to have bigger buffers + better interface
    • applications work
    • linux hangs during boot
      • update FireMarshall + generate new image -> linux boots and works

###Objectives for last week

  • get amo instructions to work on firesim
    • finish implementing tracer
    • improve simulation model once source is found
  • improve firesim makefile to make usage easier
  • run simulations on firesim ###Accomplishments last week
  • got firesim to work
    • working TracerS (currently 1-wide only)
    • working linux
    • decent speeds
    • experimented a bit with FASED memory model ###Problems and solutions
  • failing applications either stop right after bootloader or at 0x8000003E - last before 0x80000040 -> elf loading does not work
    • disabled loadmem interface because it does not work propperly
      • replacing with wolverine
        • memcopy does not work while accelerator is running -> doesn't work
      • use TSI instead
        • TSI is too slow
          • adjust +fesvr-step-size and let serial act without blocking
          • rework serial bridge to have bigger buffers + better interface ###Next week's objectives
  • improve firesim makefile to make usage easier
  • run simulations on firesim
  • find out how to decouple FASED memory freq. from system freq.
    • old method deprecated and not replaced yet? ###Long-term plan
  • get thesis work running on new firesim
  • improve critical path
  • investigate OpenRoad ASIC toolflow
  • decide what to do next
Clone this wiki locally