Commit Graph

49 Commits

Author SHA1 Message Date
Hansung Kim
15c3c55cb6 Make empty sharedmem diplomacy nodes 2024-01-01 00:46:01 -08:00
Hansung Kim
2879108804 Accept coalescer enable at WithCoalescer config 2023-12-01 19:01:06 -08:00
Hansung Kim
4efe9cb93f Instantiate separate VortexL1Cache for imem and dmem 2023-11-28 19:22:11 -08:00
Hansung Kim
d45cf835cf Remove dedicated icache bank from VortexBank 2023-11-28 18:42:58 -08:00
Hansung Kim
b66be6c3ae Respect VX_cache's MEM_TAG_WIDTH; rename coalToVxCacheNode 2023-11-28 16:54:50 -08:00
Hansung Kim
8ed82e8261 Remove unclear size width requirement in tl adapter 2023-11-27 16:42:07 -08:00
Hansung Kim
ccd6582991 Set correct mask for PutPartial for core writes
Previously byte-partial writes such as `sh` would not work correctly.
2023-11-19 17:54:08 -08:00
Hansung Kim
765c8ef1b0 Remove unnecessary write ack filtering logic in VortexTLAdapter 2023-11-17 19:12:35 -08:00
Hansung Kim
ecfa18ce69 Rename to VortexBank 2023-11-10 17:46:04 -08:00
Hansung Kim
78e09160a2 Rename L1System -> VortexL1; do not expose bank Xbar from L1 2023-11-10 16:11:43 -08:00
Hansung Kim
d51ce4cfa8 Reformat 2023-11-10 14:46:33 -08:00
Hansung Kim
17a39a369f Cleanup conditional L1 instantiation 2023-11-10 14:42:33 -08:00
Hansung Kim
a0c15b2cc3 Use separate {imem,dmem}SourceWidth to fix deadlock
imemSourceWidth cannot be larger than the ibuffer size.
2023-11-08 20:20:17 -08:00
Vamber Yang
61aad0315c L1 FatBank Integration, multi-bank working with 4 dcache banks, 1 icache bank
Merge remote-tracking branch 'remotes/origin/graphics' into local-graphics-dev
2023-11-06 21:56:11 -08:00
Vamber Yang
e958ede277 multi-bank working when nBanks=2, encountered a putPartial error, need to pull latest change 2023-11-06 20:51:23 -08:00
Vamber Yang
be5134cd8a L1 fatbank works with 2^5 source bits in SourceGen, failed with < 2^4 source bits in SourceGen 2023-11-01 23:48:24 -07:00
Hansung Kim
635f4e42ff Add detailed doc on source allocation/filtering 2023-10-25 20:55:01 -07:00
Hansung Kim
6371cdc03c Use edge.hasData instead of TLUtils in adapter 2023-10-25 20:28:01 -07:00
Hansung Kim
d70cbc8e58 Do matchingSources filtering using Vortex tag instead of TL source
Since we do source generation independently for each lane, if we use TL
source for filtering, it becomes possible that lane 0's source happens
to match lane 1/2/3's source even when they don't belong to the same
warp.  Since Vortex uses dcache req ID that is unique across
instructions, using that for filtering prevents this bug.  A better
solution would be to do source generation for all lanes at a time
though.
2023-10-25 19:48:21 -07:00
Hansung Kim
78e193db42 Add safety assert on sourceWidth
See commit 0d92eb65.
2023-10-25 18:17:03 -07:00
Hansung Kim
09f512fda7 Don't reply write requests from Vortex core 2023-10-25 13:08:18 -07:00
Hansung Kim
e9c206dfa2 Properly handle upstream and downstream backpressure for respQueues 2023-10-24 11:36:18 -07:00
Hansung Kim
8e0904a1ad Fix matchingSources logic when all lanes are invalid
When all lanes are invalid so that arb.io.valid is 0, we should not
deassert d_ready.
2023-10-23 22:10:10 -07:00
Hansung Kim
a14d8b6814 Properly handle TL dataWidth mismatch for core-to-sbus configs
... using yet another TLWidthWidget
2023-10-23 20:33:41 -07:00
Hansung Kim
0f9896e001 Instantiate coalescer inside VortexTile
Currently runtime errors with unhandled D opcode inside coalescer.
2023-10-23 15:01:37 -07:00
Hansung Kim
105bb37421 Make VortexCoreParams; bring VortexTile into rocketchip.tile
Reduces duplicate declarations.  Need to properly split it out of
rocket-chip later.
2023-10-23 13:04:48 -07:00
Richard Yan
2a9f2f8421 fix typo 2023-10-19 17:10:56 -07:00
Richard Yan
77e3ad4934 Merge branch 'graphics' of https://github.com/hansungk/rocket-chip into graphics 2023-10-19 16:16:24 -07:00
Richard Yan
9d8e9de8d0 differentiate addresses for different harts 2023-10-19 16:14:35 -07:00
Hansung Kim
ff302c1ba5 Use VortexTLAdapter for useVxCache = true as well 2023-10-18 20:04:31 -07:00
Hansung Kim
0d92eb65d4 Increase sourceWidth to fix vx_wspawn sync bug
With sourceWidth = 1, we hit an unsynchronized vx_wspawn bug, where the
previously spawned warps get killed and overridden by a new vx_wspawn
call before all the warps complete execution.  Setting sourceWidth = 1
somehow slows down the progress of the spawned warps in relation to warp
0 (presumably because fetch stalls, but not sure why they would slow
down more than warp 0) and results in this bug.   sourceWidth = 4 seems
to work for vecadd.
2023-10-18 15:19:11 -07:00
Hansung Kim
fb97bd3c2b Decouple Vortex imem bundle from TL 2023-10-17 12:18:58 -07:00
Hansung Kim
8ab0529354 Move VortexBundleA/D to Core; resolve TODOs 2023-10-16 17:54:12 -07:00
Hansung Kim
eb9772b750 Decouple Vortex dmem bundle from TL
Previously VortexBundle was being instantiated using the parameters of
the TileLink bundle from VortexTile.  This results in tight coupling
between Vortex interface parameters and downstream TileLink parameters.
This change adds a standalone Bundle used by the VortexCore wrapper
and is independently instantiated from the TL params, i.e. different
source widths.  Ideally we want to move away from using TL-like
structures for VortexBundle and handling adapter logic completely
outside the core blackbox.
2023-10-16 17:42:17 -07:00
Hansung Kim
630d76461c Do proper TL sourceId allocation for Vortex dmem requests
This fixes sourceId collision that occurs when naively re-using tag bit
of a Vortex dmem request as TL source, which happens because Vortex core
does not allocate a new LSU entry for writes.

`VortexSourceGen` module acts as a Vortax tag <-> new TL source ID
converter, where it allocates a new ID for every new Vortex request, and
restores its original tag bits from the metadata embedded in the
SourceGenerator module.

TODO:
- Decouple sourceWidth of downstream TL nodes from Vortex's tag bit
  width; they are set to be the same for convenience as of now
- Apply this to imem requests as well
2023-10-16 01:19:55 -07:00
Hansung Kim
ff4fc66c56 Reformat 2023-10-15 13:36:55 -07:00
Richard Yan
8d479438b1 Merge branch 'graphics' of https://github.com/hansungk/rocket-chip into graphics 2023-10-13 14:04:20 -07:00
Richard Yan
dfae96ec9d add wait register 2023-10-13 13:31:14 -07:00
Hansung Kim
dab1d907d6 Comment out hartid and fpu from VortexBundle
These are mostly copied from Rocket and we're not sure they're necessary
for Vortex.
2023-10-11 20:29:15 -07:00
joshua
c403156127 fix merge errors (?) 2023-09-25 23:40:29 -07:00
Richard Yan
0f47ae078e add operand roms, bump vortex 2023-09-25 21:27:13 -07:00
joshua
c5bfb66ee5 it works 2023-09-24 17:43:00 -07:00
joshua
6a6f7fcaf0 still not working 2023-09-24 13:28:29 -07:00
joshua
63aee46908 still not sure what error is 2023-09-23 17:52:02 -07:00
joshua
e3f85da12c add vortex cache temporarily 2023-09-23 13:03:53 -07:00
Richard Yan
7c5281cd0e multilane support, args.bin ROM, verilog sources cleanup and vortex bump 2023-09-15 11:16:55 -07:00
Richard Yan
d392d76608 bump vortex and increase source ids 2023-09-11 14:06:08 -07:00
Richard Yan
43f95175f1 bump verilog sources, remove files and mem changes 2023-09-09 01:55:02 -07:00
Richard Yan
8cef2ae135 integrate vortex as tile 2023-09-08 14:25:37 -07:00