1. 09 11月, 2022 3 次提交
    • J
      ICache: separate meta/data to 4 2-way banks · adc7b752
      Jenius 提交于
      * add ICachPartWayArray to wrap a part-way module
      
      * SRAM array array_0 array_1: width × 1/4 and depth stay unchanged
      adc7b752
    • J
      [WIP]FTQ: add icache req port · c5c5edae
      Jenius 提交于
      * separate ifu req and icache req for timing optimization
      
      * both ifu ftq_req_ready and icache ftq_req_ready depend on each other
      
      * ifu and icache has pc_mem register
      
      [WIP]ICacheMainPipe: add copied registers
      
      [WIP]ftq: read ftq_pc_mem one cycle ahead, reqs to be copied
      
      [WIP] FTQ:  delete outside bypass
      c5c5edae
    • Y
      ftq,ctrl: add copies for pc and jalr_target data modules (#1661) · 700e90ab
      Yinan Xu 提交于
      * ftq, ctrl: remove pc/target backend read ports, and remove redirectGen in ftq
      
      * ctrl: add data modules for pc and jalr_target
      
      This commit adds two data modules for pc and jalr_target respectively.
      They are the same as data modules in frontend. Should benefit timing.
      
      * jump: reduce pc and jalr_target read latency
      
      * ftq: add predecode redirect update target interface, valid only on ifuRedirect
      
      * ftq, ctrl: add second write port logic of jalrTargetMem, and delay write of pc/target mem for two cycles
      Co-authored-by: NLingrui98 <goulingrui19s@ict.ac.cn>
      700e90ab
  2. 08 11月, 2022 2 次提交
  3. 02 11月, 2022 21 次提交
  4. 01 11月, 2022 1 次提交
  5. 31 10月, 2022 1 次提交
  6. 29 10月, 2022 1 次提交
  7. 21 10月, 2022 1 次提交
  8. 20 10月, 2022 1 次提交
    • G
      Add FST waveform support (#1804) · 40f31726
      good-circle 提交于
      Usage:
      
      When make emu, please use EMU_TRACE=1, EMU_TRACE=vcd or EMU_TRACE=VCD
      to dump waveform of vcd format, and use EMU_TRACE=fst or EMU_TRACE=FST
      to dump waveform of fst format.
      
      When use xiangshan.py, please add --trace to dump waveform of vcd format,
      and add --trace-fst to dump waveform of fst format.
      40f31726
  9. 15 10月, 2022 1 次提交
  10. 13 10月, 2022 1 次提交
  11. 30 9月, 2022 2 次提交
    • H
      Sync timing modification of #1681 and #1793 (#1793) · 03efd994
      happy-lx 提交于
      * ldu: optimize dcache hitvec wiring
      
      In previous design, hitvec is generated in load s1, then send to dcache
      and lsu (rs) side separately. As dcache and lsu (rs side) is far in real
      chip, it caused severe wiring problem.
      
      Now we generate 2 hitvec in parallel:
      
      * hitvec 1 is generated near dcache.
      To generate that signal, paddr from dtlb is sent to dcache in load_s1
      to geerate hitvec. The hitvec is then sent to dcache to generate
      data array read_way_en.
      
      * hitvec 2 is generated near lsu and rs in load_s2, tag read result
      from dcache, as well as coh_state, is sent to lsu in load_s1,
      then it is used to calcuate hitvec in load_s2.  hitvec 2 is used
      to generate hit/miss signal used by lsu.
      
      It should fix the wiring problem caused by hitvec
      
      * ldu: opt loadViolationQuery.resp.ready timing
      
      An extra release addr register is added near lsu to speed up the
      generation of loadViolationQuery.resp.ready
      
      * l1tlb: replace NormalPage data module and add duplicate resp result
      
      data module:
      add BankedSyncDataMoudleWithDup data module:
      divided the data array into banks and read as Async, bypass write data.
      RegNext the data result * #banks. choose from the chosen data.
      
      duplicate:
      duplicate the chosen data and return to outside(tlb).
      tlb return (ppn+perm) * #DUP to outside (for load unit only)
      
      TODO: load unit use different tlb resp result to different module.
      one for lsq, one for dcache.
      
      * l1tlb: Fix wrong vidx_bypass logic after using duplicate data module
      
      We use BankedSyncDataMoudleWithDup instead of SyncDataModuleTemplate,
      whose write ports are not Vec.
      Co-authored-by: NWilliam Wang <zeweiwang@outlook.com>
      Co-authored-by: NZhangZifei <1773908404@qq.com>
      Co-authored-by: Ngood-circle <fenghaoyuan19@mails.ucas.ac.cn>
      03efd994
    • H
      AtomicsUnit: refactor FSM in AtomicsUnit (#1792) · 52180d7e
      happy-lx 提交于
      * AtomicsUnit: refactor FSM in AtomicsUnit
      
      * send tlb req and sbuffer flush req at the same time
      * remove s_cache_resp_latch state
      * change `data_valid` logic: do not send dcache req until `data_valid`
      is true
      
      * Atomicsunit: add `s_cache_resp_latch` state back
      52180d7e
  12. 24 9月, 2022 1 次提交
  13. 23 9月, 2022 1 次提交
  14. 18 9月, 2022 2 次提交
    • H
      lq: fix load load violation check logic (#1764) · 9bb2ac0f
      happy-lx 提交于
      * lq: fix load to load check logic
      
      * when a load instruction missed in dcache and then refilled by dcache, waiting to be written back, if the block is released by dcache, it also needs to be marked as released
      
      * lq: refix load-load violation check logic
      9bb2ac0f
    • H
      dcache, atomicUnit: remove Atomicsreplayunit (#1767) · 62cb71fb
      happy-lx 提交于
      * dcache, atomicUnit: remove Atomicsreplayunit
      
      mvoe functions and replay feature in Atomicsreplayunit to Atomicsunit
      
      * Atomicsunit: fix difftest check signals
      62cb71fb
  15. 15 9月, 2022 1 次提交