Commit Graph

13 Commits

Author SHA1 Message Date
Yinan Xu 61a56a412b
ibuffer: optimize read timing (#1652)
* ibuf: optimize register namings

* ibuffer: re-write data read logic
2022-07-14 08:38:00 +08:00
Yinan Xu fd09b64ad1
dispatch2: optimize slow path and enqPtr matching timing (#1650)
* dpq: add slow path for non-critical registers

This commit separates the data module in Dispatch to slow and fast path.
Slow path stores the data with a bad timing at Dispatch but a good timing
at Dispatch2. Thus should benefit the timing at Dispatch, such as the LFST.

For now, we merge the slow and fast data module. Chisel DCE does not
eliminate the dead registers. We manully merge the two data modules
for now.

* dpq: optimize timing for enqPtr/deqPtr matching

This commit optimizes the matching timing between enqPtr and deqPtr,
which is used further for bypassing enqData to deqData.

Now enqOffset and deqPtr/enqPtr matching work in parallel.
2022-07-13 21:27:51 +08:00
Yinan Xu 00210c34f2
dpq: optimize read and write timing of data module (#1610)
This commit changes the data modules in Dispatch Queue. We use one-hot
indices to read and write the data array.
2022-07-06 16:28:53 +08:00
Yinan Xu e9ae4a3b76
queuePtr: set isAfter when different flags and same value (#1396)
For 0:x and 1:x, 1:x should be after 0:x.
2021-12-27 15:21:08 +08:00
Yinan Xu f320e0f01b
misc: update PCL information (#899)
XiangShan is jointly released by ICT and PCL.
2021-07-24 23:26:38 +08:00
Lemover c6d439803a
Add MulanPSL-2.0 License (#824)
In this commit, we add License for XiangShan project.
2021-06-04 09:06:35 +08:00
Jiawei Lin 2225d46ebb
Refactor parameters, SimTop and difftest (#753)
* 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: Yinan Xu <xuyinan1997@gmail.com>
Co-authored-by: William Wang <zeweiwang@outlook.com>
2021-04-19 21:19:20 +08:00
ljw b7b0d6c1ab
CircularQueuePtr: use F-bounded polymorphism instead of implicit helper (#750) 2021-04-05 15:38:15 +08:00
William Wang e70312e7ac LoadQueue: fix rollback gen logic
Former rollback will now cancel later rollback correctly
2021-02-21 16:23:14 +08:00
Yinan Xu 6bb8546461 storeQueue: let deqPtr and enqPtr update as instructions denqueue and dequeue 2020-12-17 15:55:38 +08:00
Yinan Xu 42707b3b5e roqIdx: use CircularQueuePtr 2020-10-21 18:52:10 +08:00
Yinan Xu 968988f05b circular queue ptr: fix ptr update bug 2020-10-21 15:55:31 +08:00
LinJiawei f7fec07df8 Abstract circular queue ptr 2020-10-20 12:49:36 +08:00