Commit Graph

2437 Commits

Author SHA1 Message Date
Blaise Tine
e5b41bcd66 wctl unit bug fix 2023-12-05 04:57:52 -08:00
Blaise Tine
1912f52bee profiling bug fix 2023-12-05 04:56:46 -08:00
root
900a1efaca BUFFER_EX refactoring 2023-12-05 04:55:50 -08:00
root
d288fb360c Merge branch 'develop' of https://github.com/vortexgpgpu/vortex into develop 2023-12-05 04:50:20 -08:00
Hyesoon Kim
63a4ccef16 Merge pull request #95 from Udit8348/develop-documentation
Documentation for Testing and Contributing
2023-12-01 09:20:21 -05:00
Udit Subramanya
0d5887b938 Merge branch 'develop' into develop-documentation
Attempted to directly push to develop, but permission was denied.
Therefore, I moved my changes to my development branch located on my fork.
I have permission to commit changes to my fork, and I can open a PR to bring those changes into main repo
2023-12-01 08:56:17 -05:00
Udit Subramanya
a43b7432a0 add environment setup readme 2023-12-01 08:55:01 -05:00
Udit Subramanya
af94d24963 Merge branch 'develop' into develop-documentation 2023-12-01 08:49:46 -05:00
Udit Subramanya
b20320236d adding documemtation for contributing and documentation 2023-12-01 08:22:44 -05:00
Hansung Kim
5825680303 [BUGFIX] Revert way_idx fix
The added code results in width mismatch for NUM_WAYS = 4.
2023-11-28 18:44:47 -08:00
Hansung Kim
c3c9a4b5d8 [BUGFIX] Fix wrong bitwidth of way_idx when NUM_WAYS=1
When NUM_WAYS=1, CLOG2(NUM_WAYS)-1 becomes -1, setting the MSB of
way_idx to a wrong value.
2023-11-28 16:05:41 -08:00
Hansung Kim
9a8020a683 Force-include gpu_pkg in VX_cache_define.vh 2023-11-28 13:55:11 -08:00
Blaise Tine
9c2916f3fc minor update 2023-11-28 12:03:48 -08:00
Blaise Tine
e8d56dc013 minor update 2023-11-27 22:16:36 -08:00
Hansung Kim
5e5c625759 Write 0 instead of x for VX_CSR_MPM_RESERVED
Otherwise it makes verification hard with tools that don't process x's
well.
2023-11-27 16:06:16 -08:00
Hansung Kim
f41b50fc07 Define DBG_TRACE_CORE_PIPELINE_VCS for selective debug trace 2023-11-27 16:05:15 -08:00
Blaise Tine
24973ffca0 scoreboard optimization & profiling 2023-11-27 05:53:36 -08:00
Blaise Tine
4b68235389 fixed simx dispatcher bug 2023-11-27 04:50:55 -08:00
Blaise Tine
9dc5793046 minor udpate 2023-11-27 02:21:47 -08:00
Blaise Tine
1271c9c03f minor update 2023-11-27 02:12:12 -08:00
Blaise Tine
ebec982434 minor update 2023-11-27 02:04:53 -08:00
Blaise Tine
2f1171ca76 minor update 2023-11-27 02:04:22 -08:00
Hansung Kim
99207c862c Revert PutPartial -> PutFull spoofing 2023-11-19 17:48:38 -08:00
Blaise Tine
11752b2562 Merge branch 'develop' of https://github.com/vortexgpgpu/vortex into develop 2023-11-18 00:27:46 -08:00
Hansung Kim
e2d4894343 Add missing valid bit check for write acks 2023-11-17 20:32:53 -08:00
Hansung Kim
bc71c126ef Fix STORE HEAP trace print in verilog wrapper 2023-11-17 20:25:01 -08:00
Hansung Kim
faf5fe3838 Assert ready when write response is coming back
Since the core's response ready signal depends on response valid, but core does
not accept write ACKs, we need to manually assert ready when there is a valid
response coming in for a write regardless of the core's ready state (which would
be 0).
2023-11-17 19:08:32 -08:00
Hansung Kim
90e21e8e58 [CHANGE] Work around uninitialized signal issue with === operator
It seems many of the initial arch/uarch states, including the GPR, are
uninitialized in the VCS simulation, which results in functional errors caused
by propagated X's.  In this particular case it resulted in a dcache request not
being fired due to the rs1 data for an lw instruction having values as X,
causing the smem_unit to not arbitrate the request correctly.

A workaround of this issue is to stop the X propagation by using the
===-operation instead of == in the GPR unit, which had been the main source of X
propagation into the raddr port of the GPR.

Also, we run the simulation with GSR_RESET set to 1 so that the contents of the
GPR are initialized at the beginning of the simulation (however, this alone does
not prevent reading in X's, hence this fix.)

FIXME: This is a slight deviation from the upstream code; ideally, we want to do
clean & full initialization of microarchitectural states.
2023-11-17 17:20:54 -08:00
Hansung Kim
9651cc6bc5 Fix wrong dcache tag width in wrapper
Need to use DCACHE_NOSM_TAG_WIDTH instead of DCACHE_TAG_WIDTH; otherwise, the
`ASSIGN_VX_MEM_BUS_IF macro in VX_smem_unit.sv does assignment of packed structs
with different widths for the tag field, resulting in misaligned bit error.
This results in wrong memory addresses for the core requests.
2023-11-17 17:12:41 -08:00
Blaise Tine
43154cf738 minor updates 2023-11-16 23:41:59 -08:00
Hansung Kim
e2d3d93dea Properly initialize DCR in wrapper code 2023-11-16 17:59:57 -08:00
Blaise Tine
d65cc61df5 minor update 2023-11-16 12:00:37 -08:00
Hansung Kim
963c2765d9 Move force-include of gpu_pkg to non-cache modules 2023-11-15 22:02:44 -08:00
Hansung Kim
448a253af3 Add Verilog wrapper module for VX_core 2023-11-15 20:09:53 -08:00
Hansung Kim
bbacf9a25e Remove verilated vpi code, add missing includes for C++
Vortex rtlsim defines sim_trace_enabled... functions in the Verilated
C++ code for use in dpi_trace, which we don't need.
2023-11-15 20:06:58 -08:00
Hansung Kim
d9cb14d6e4 Fix include path in rvfloats.cpp to work with Chisel addResources
addResource() in Chisel flattens everything to gen-collateral/ dir, so
cannot use relative path for includes.
2023-11-15 20:06:18 -08:00
Hansung Kim
7e0b63a3b3 Change result type for dpi calls from wire -> reg
VCS requires the output of the dpi calls to be of a type that can come
at the LHS of a procedural assignment, i.e. reg type.  Seems to be a
different requirement from Verilator.
2023-11-15 19:26:12 -08:00
Hansung Kim
d2d7ee61bb Define SIMULATION for VCS in VX_platform.vh 2023-11-15 19:14:58 -08:00
Blaise Tine
547d916ae2 minor update 2023-11-15 13:00:06 -08:00
Blaise Tine
2c94e358b8 perf counter bug fix 2023-11-15 00:52:39 -08:00
Blaise Tine
ede5e1c311 minor update 2023-11-15 00:28:26 -08:00
Hansung Kim
512fc0da1c Copy VX_platform macros for VCS from VERILATOR 2023-11-15 00:20:18 -08:00
Hansung Kim
20a9e6d102 Force include VX_gpu_pkg as compile order workaround
addResource() calls in Chisel BlackBox does not preserve order of the
files being included; the actual compile order for these files are
re-arranged to be in alphabetical order.

Therefore, while VX_gpu_pkg.sv has to be compiled before all the other
modules because it holds the top-level package definition, that order
cannot be ensured from Chisel.  As a hacky workaround, simply `include
this file in some of the sv files whose name starts earlier than
VX_gpu_pkg in lexicographical order.
2023-11-14 23:00:43 -08:00
Blaise Tine
61e3442ef8 adding opencl convolution benchmark 2023-11-14 22:31:30 -08:00
Blaise Tine
4e7a536918 adding tensor regression test. 2023-11-14 05:37:46 -08:00
Blaise Tine
ecf546bc4a minor update 2023-11-13 20:00:39 -08:00
Blaise Tine
b274b8cc21 minor updates 2023-11-13 00:23:15 -08:00
Blaise Tine
a08d3ebd42 minor update 2023-11-12 23:40:59 -08:00
Blaise Tine
62cdd8e993 minor update 2023-11-11 15:49:39 -08:00
Blaise Tine
64dc5e1667 Merge branch 'develop' 2023-11-10 02:57:42 -08:00