1. 06 6月, 2022 2 次提交
    • J
      fix bugs in IFU and delete 500-cycle ready · 625ecd17
      Jenius 提交于
      * fix mmio_resend_af wrong assignment
      * fix wb_half_flush missOffset(using wb_lastIdx instead of PredictWidth
      -1)
      * change pipeline ready condition (this_ready =  this_stage_fire || this_stage_empty)
      * delete 500-cycle ready condition (toICache(*).ready means the SRAM has
      been reset and ready for read)
      625ecd17
    • L
      util.sram: rm a r/w hazard mux which is not needed. bump huancun (#1571) · 8f15385a
      Lemover 提交于
      * bump huancun, update Chisel3, revert sram hazard enhancement
      
      * util.sram: rm a r/w hazard mux which is not needed. bump huancun
      8f15385a
  2. 31 5月, 2022 2 次提交
  3. 29 5月, 2022 1 次提交
  4. 27 5月, 2022 1 次提交
    • Y
      soc: fix implementation of rtc_clock (#1565) · 88ca983f
      Yinan Xu 提交于
      Previously we made a mistake to connect rtc_clock to rtcTick for CLINT.
      
      rtcTick should be on io_clock clock domain and asserted only one
      clock cycle in io_clock for every cycle in rtc_clock. We add sampling
      registers in this commit to fix this.
      88ca983f
  5. 26 5月, 2022 1 次提交
  6. 25 5月, 2022 1 次提交
  7. 24 5月, 2022 1 次提交
  8. 22 5月, 2022 1 次提交
  9. 21 5月, 2022 1 次提交
  10. 12 5月, 2022 1 次提交
  11. 11 5月, 2022 3 次提交
  12. 09 5月, 2022 4 次提交
  13. 07 5月, 2022 1 次提交
  14. 06 5月, 2022 4 次提交
  15. 05 5月, 2022 5 次提交
  16. 04 5月, 2022 2 次提交
  17. 29 4月, 2022 1 次提交
  18. 28 4月, 2022 2 次提交
    • Y
      intrGen: delay interrupts for 1000 cycles · 964c1fbc
      Yinan Xu 提交于
      To test WFI, we delay the interrupts for more cycles.
      964c1fbc
    • Y
      core,rob: support the WFI instruction · b6900d94
      Yinan Xu 提交于
      The RISC-V WFI instruction is previously decoded as NOP. This commit
      adds support for the real wait-for-interrupt (WFI).
      
      We add a state_wfi FSM in the ROB. After WFI leaves the ROB, the next
      instruction will wait in the ROB until an interrupt.
      b6900d94
  19. 26 4月, 2022 1 次提交
    • J
      Bump difftest for init flash bug (#1540) · 0c69e7c2
      Jay 提交于
      *** Description ***
      - During multi-thread verilator emulation, the
      reset_ncycle(size_t cycles) function will trigger the flash_read()
      function where a NULL pointer *flash_base will be used since we init
      flash after the reset_ncycle.
      
      - This bug is triggered in some seeds, while others runs in a normal
      way.
      
      *** Solution ***
      - init flash before reset_cycles()
      0c69e7c2
  20. 25 4月, 2022 3 次提交
  21. 14 4月, 2022 1 次提交
    • L
      mmu.l2tlb: divide missqueue into 'missqueue' and llptw (#1522) · 92e3bfef
      Lemover 提交于
      old missqueue: cache req miss slot and mem access-er
      Problem: these two func are totally different, make mq hard to handle in a single select policy.
      Solution: divide these two funciton into two module.
        new MissQueue: only hold reqs that page cache miss and need re-req cache, a simple flushable queue
        llptw: Last level ptw, only access ptes, priorityMux queue
      
      * mmu: rename PTW.scala to L2TLB.scala
      
      * mmu: rename PTW to L2TLB
      
      * mmu: rename PtwFsm to PTW
      
      * mmu.l2tlb: divide missqueue into 'missqueue' and llptw
      
      old missqueue: cache req miss slot and mem access-er
      Problem: these two func are totally different, make mq hard to handle
        in single select policy.
      Solution: divide these two funciton into two module.
        new MissQueue: only hold reqs that page cache miss and new re-req
        cache
        llptw: Last level ptw, only access ptes
      
      * mmu.l2tlb: syntax bug that misses io assign
      
      * mmu.l2tlb: fix bug that mistakes ptw's block signal
      92e3bfef
  22. 02 4月, 2022 1 次提交
    • W
      mem: reduce refill to use latency (#1401) · 09203307
      William Wang 提交于
      * mem: optimize missq reject to lq timing
      
      DCache replay request is quite slow to generate, as it need to compare
      load address with address in all valid miss queue entries.
      
      Now we delay the usage of replay request from data cache.
      Now replay request will not influence normal execuation flow until
      load_s3 (1 cycle after load_s2, load result writeback to RS).
      
      It is worth mentioning that "select refilling inst for load
      writeback" will be disabled if dcacheRequireReplay in the
      last cycle.
      
      * dcache: compare probe block addr instead of full addr
      
      * mem: do not replay from RS when ldld vio or fwd failed
      
      ld-ld violation or forward failure will let an normal load inst replay
      from fetch. If TLB hit and ld-ld violation / forward failure happens,
      we write back that inst immediately. Meanwhile, such insts will not be
      replayed from rs.
      
      It should fix "mem: optimize missq reject to lq timing"
      
      * mem: fix replay from rs condition
      
      * mem: reduce refill to use latency
      
      This commit update lq entry flag carefully in load_s3 to avoid extra
      refill delay. It will remove the extra refill delay introduced by #1375
      without harming memblock timing.
      
      In #1375, we delayed load refill when dcache miss queue entry fails
      to accept a miss. #1375 exchanges performance for better timing.
      
      * mem: fix rs feedback priority
      
      When dataInvalid && mshrFull, a succeed refill should not cancel
      rs replay.
      09203307