Commit Graph
2372 Commits
Author SHA1 Message Date
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
Blaise Tine c1e168fdbe Vortex 2.0 changes:
+ Microarchitecture optimizations
+ 64-bit support
+ Xilinx FPGA support
+ LLVM-16 support
+ Refactoring and quality control fixes

minor update

minor update

minor update

minor update

minor update

minor update

cleanup

cleanup

cache bindings and memory perf refactory

minor update

minor update

hw unit tests fixes

minor update

minor update

minor update

minor update

minor update

minor udpate

minor update

minor update

minor update

minor update

minor update

minor update

minor update

minor updates

minor updates

minor update

minor update

minor update

minor update

minor update

minor update

minor updates

minor updates

minor updates

minor updates

minor update

minor update
2023-11-10 02:47:05 -08:00
Blaise Tine 6e93787e59 minor update 2023-11-06 00:16:24 -08:00
Blaise Tine e0becb1599 minor update 2023-11-05 20:03:31 -08:00
Blaise Tine d13c5f2986 hw unit tests fixes 2023-11-05 18:51:31 -08:00
Blaise Tine 1fd5a95f5a minor update 2023-11-03 18:04:05 -04:00
Blaise Tine 9f1f1ecaa3 minor update 2023-11-03 08:36:28 -04:00
Blaise Tine c9e6518e05 cache bindings and memory perf refactory 2023-11-03 08:18:18 -04:00
Blaise Tine 69f9ae778d cleanup 2023-11-03 08:12:03 -04:00
Blaise Tine 970cbf066a cleanup 2023-11-03 08:09:59 -04:00
Blaise Tine 1c100c4cf5 minor update 2023-10-22 23:31:58 -07:00
Blaise Tine cb7d6b964c minor update 2023-10-22 02:25:34 -07:00
Blaise Tine 8cf833b7eb minor update 2023-10-21 19:12:07 -07:00
Blaise Tine 8fe373891f minor update 2023-10-21 17:55:29 -07:00
Blaise Tine 3cacb4f80f minor update 2023-10-20 02:21:20 -07:00
Blaise Tine 65ca0fff3a minor update 2023-10-20 00:48:05 -07:00