1. 19 4月, 2021 1 次提交
    • J
      Refactor parameters, SimTop and difftest (#753) · 2225d46e
      Jiawei Lin 提交于
      * difftest: use DPI-C to refactor difftest
      
      In this commit, difftest is refactored with DPI-C calls.
      There're a few reasons:
      (1) From Verilator's manual, DPI-C calls should be more efficient than accessing from dut_ptr.
      (2) DPI-C is cross-platform (Verilator, VCS, ...)
      (3) difftest APIs are splited from emu.cpp to possibly support more backend platforms
      (NEMU, Spike, ...)
      
      The performance at this commit is quite slower than the original emu.
      Performance issues will be fixed later.
      
      * [WIP] SimTop: try to use 'XSTop' as soc
      
      * CircularQueuePtr: ues F-bounded polymorphis instead implict helper
      
      * Refactor parameters & Clean up code
      
      * difftest: support basic difftest
      
      * Support diffetst in new sim top
      
      * Difftest; convert recode fmt to ieee754 when comparing fp regs
      
      * Difftest: pass sign-ext pc to dpic functions && fix exception pc
      
      * Debug: add int/exc inst wb to debug queue
      
      * Difftest: pass sign-ext pc to dpic functions && fix exception pc
      
      * Difftest: fix naive commit num limit
      Co-authored-by: NYinan Xu <xuyinan1997@gmail.com>
      Co-authored-by: NWilliam Wang <zeweiwang@outlook.com>
      2225d46e
  2. 18 4月, 2021 1 次提交
  3. 16 4月, 2021 2 次提交
  4. 05 4月, 2021 2 次提交
  5. 04 4月, 2021 4 次提交
  6. 03 4月, 2021 2 次提交
  7. 02 4月, 2021 3 次提交
  8. 01 4月, 2021 4 次提交
    • Y
      ResetGen: generate reset signals for different modules (#740) · 94c92d92
      Yinan Xu 提交于
      * Add ResetRegGen module to generate reset signals for different modules
      
      To meet physical design requirements, reset signals for different modules
      need to be generated respectively. This commit adds a ResetRegGen module
      to automatically generate reset registers and connects different reset
      signals to different modules, including l3cache, l2cache, core.
      L1plusCache, MemBlock, IntegerBlock, FloatBlock, CtrlBlock, Frontend are
      reset one by one.
      94c92d92
    • Y
      Makefile: enable SRAM randomization for verilator simulation (#739) · 2b3df3d4
      Yinan Xu 提交于
      * ICache: set holdRead to true for meta and data SRAMs
      
      SyncReadMem generates the verilog behavior model whose output rdata is always
      mem(RegNext(raddr)). Accidentally, ICache will not change meta and data
      SRAMs' raddr if the second pipeline stage is stalled (and ren is false).
      Thus, the SRAMs seem to have the holdRead property.
      Obviously, it will cause errors on real SRAMs. We set holdRead to true to fix the bug.
      
      * L1plusCache: set holdRead to true for SRAMs
      
      * Makefile: enable SRAM randomization for verilator simulation
      
      Previously we don't use the --infer-rw and --repl-seq-mem flags for simulation verilog.
      However, the SyncReadMem fails to generate random read data when ren is not set.
      In this commit, SyncReadMem is changed to blackboxes and generated by the vlsi_mem_gen script.
      RANDOMIZE_GARBAGE_ASSIGN flag is defined to enable randomization.
      2b3df3d4
    • Y
      ICache: set holdRead to true for meta and data SRAMs (#736) · 88951dca
      Yinan Xu 提交于
      SyncReadMem generates the verilog behavior model whose output rdata is always
      mem(RegNext(raddr)). Accidentally, ICache will not change meta and data
      SRAMs' raddr if the second pipeline stage is stalled (and ren is false).
      Thus, the SRAMs seem to have the holdRead property.
      Obviously, it will cause errors on real SRAMs. We set holdRead to true to fix the bug.
      88951dca
    • Y
      L1plusCache: set holdRead to true for SRAMs (#738) · 53260d5b
      Yinan Xu 提交于
      53260d5b
  9. 31 3月, 2021 5 次提交
  10. 30 3月, 2021 5 次提交
  11. 29 3月, 2021 1 次提交
  12. 28 3月, 2021 1 次提交
  13. 27 3月, 2021 1 次提交
  14. 26 3月, 2021 7 次提交
  15. 25 3月, 2021 1 次提交
    • A
      Refactor XSPerf, now we have three XSPerf Functions. · 408a32b7
      Allen 提交于
      XSPerfAccumulate: sum up performance values.
      XSPerfHistogram: count the occurrence of performance values, split them
      into bins, so that we can estimate their distribution.
      XSPerfMax: get max of performance values.
      408a32b7