Commit Graph

1509 Commits

Author SHA1 Message Date
abejgonzalez f7cd3cba7a Fix mypy errors + formatting 2023-05-17 22:19:17 -07:00
abejgonzalez fab8c26703 Generalize XDMA driver 2023-05-17 21:55:52 -07:00
abejgonzalez 761e4d36ae Merge remote-tracking branch 'origin' into ntnu-extended 2023-05-15 14:37:21 -07:00
Jerry Zhao b000772990 Bump to latest rocketchip 2023-05-14 16:35:39 -07:00
abejgonzalez b08ce56202 Fix formatting 2023-05-13 10:35:51 -07:00
abejgonzalez d9afa05df9 Revert some files | Delete old files 2023-05-12 21:28:27 -07:00
abejgonzalez ee9ca40f50 More U250/U280 Fixes 2023-05-12 21:23:55 -07:00
Sagar Karandikar d5c8f3edc3 Revert "Merge remote-tracking branch 'origin/fix-trigger-system-common-case-perf' into vcu118"
This reverts commit 2a10f3e9af, reversing
changes made to 375435ec47.
2023-05-12 14:20:27 -07:00
Sagar Karandikar 2a10f3e9af Merge remote-tracking branch 'origin/fix-trigger-system-common-case-perf' into vcu118 2023-05-11 10:11:22 -07:00
Sagar Karandikar 375435ec47 Merge remote-tracking branch 'origin/main' into vcu118 2023-05-11 10:10:36 -07:00
Sagar Karandikar da63aae5de Merge remote-tracking branch 'origin/main' into fix-trigger-system-common-case-perf 2023-05-11 09:48:35 -07:00
Sagar Karandikar e2a1766bc9
Merge pull request #1458 from firesim/buildbitstream-cis
Buildbitstream CI
2023-05-11 09:46:43 -07:00
Sagar Karandikar 2e77fb0ffb Merge remote-tracking branch 'origin/main' into vcu118 2023-05-11 08:24:26 -07:00
Sagar Karandikar cdc2c869fd fix TraceRV trigger performance regression for common case where trigger is permanently true or false 2023-05-11 08:22:31 -07:00
abejgonzalez 21928f7e8d Rename .ini -> .yaml 2023-05-11 00:24:55 -07:00
Sagar Karandikar cccf19138e fix main.o build dependency on generated const.h 2023-05-10 14:31:55 -07:00
Sagar Karandikar 4f10f91555 Merge remote-tracking branch 'origin/main' into vcu118 2023-05-10 11:48:44 -07:00
Jerry Zhao 966e09907c
Merge pull request #1500 from firesim/renameserial
Rename SerialBridge to TSIBridge
2023-05-10 11:37:26 -07:00
Abraham Gonzalez 0c1a7a6339
Merge pull request #1471 from firesim/bump-verilator
Bump Verilator to 5.006
2023-05-09 13:12:44 -07:00
Jerry Zhao 73ad11a969 Fix tsibridge cc/h linting 2023-05-09 10:47:49 -07:00
Jerry Zhao 5f9bf2b42b Rename SerialBridge to TSIBridge 2023-05-08 15:21:38 -07:00
Sagar Karandikar 872c99e827 cleanup 2023-05-08 13:53:07 -07:00
Sagar Karandikar 84bf370c87 Merge remote-tracking branch 'origin/ntnu-integration' into vcu118 2023-05-08 13:48:17 -07:00
Sagar Karandikar 5aa5c255a5 both mem channels working 2023-05-08 13:42:46 -07:00
abejgonzalez b99c0bfcc0 Small CI fixes 2023-05-07 21:50:11 -07:00
abejgonzalez 779f9a9b51 Try new clang-format ci check | Fix Scala test path 2023-05-07 20:50:43 -07:00
abejgonzalez 33578662d3 Merge remote-tracking branch 'og/main' into ntnu-integration 2023-05-07 16:50:50 -07:00
Abraham Gonzalez 5999fbec14
Merge pull request #1474 from firesim/fix-scala-test
Fix Scala test on machines with multiple simulators
2023-05-07 16:18:57 -07:00
Sagar Karandikar a4a7811298 Merge remote-tracking branch 'origin/ntnu-integration' into vcu118 2023-05-06 18:39:04 -07:00
Sagar Karandikar 4646a90832 fixes 2023-05-06 18:38:47 -07:00
abejgonzalez 49392505f6 Fix some CI issues 2023-05-06 17:56:45 -07:00
abejgonzalez fa882bc8ad Fix Makefile paths 2023-05-06 17:30:34 -07:00
Sagar Karandikar d6de4ab565 vcu118 support throughout firesim 2023-05-06 17:09:18 -07:00
abejgonzalez f6fc4ccfec Intermediate changes [ci skip] 2023-05-04 23:35:56 -07:00
abejgonzalez c231ca15f4 First attempt at bare Xilinx U250 support
Co-authored-by: Abraham Gonzalez <abe.gonzalez@berkeley.edu>
Co-authored-by: Björn Gottschall <info@gottschall.no>
Co-authored-by: David Metz <david.c.metz@ntnu.no>
2023-05-03 01:07:15 -07:00
Sagar Karandikar 53c7bcaf40 update assert in timingmodel to allow BURST_FIXED w/len=0 2023-04-27 23:46:44 +00:00
Jerry Zhao 6f2175635a Bump to chisel 3.5.6 2023-04-05 19:22:06 -07:00
Jerry Zhao a4a36ca6ce Update package for config 2023-04-05 19:22:06 -07:00
Abraham Gonzalez 6fb10976ab
Update Makefile to be non-parallel 2023-03-30 05:39:53 -07:00
abejgonzalez 4d54d40122 Merge remote-tracking branch 'origin/main' into local-fpga-docs 2023-03-21 23:07:46 -07:00
abejgonzalez 66fce79be5 Fix duplicated testnames if running on machine with both VCS/Verilator 2023-03-18 14:48:18 -07:00
abejgonzalez 18d68946f3 Change to C++20, Fix clock gating in Verilator 2023-03-18 12:39:44 -07:00
Benjamin Morse 0e77b74a1a
Expand TracerV to support more than 7 IPC (#1383)
TracerV now uses a variable number of beats to send traces over to C++. This allows FireSim and TracerV to work with cores that have more than 7 IPC.
2023-03-13 09:36:23 -07:00
abejgonzalez cbfc9a6430 Merge remote-tracking branch 'origin/main' into local-fpga-docs 2023-03-11 15:49:21 -08:00
Abraham Gonzalez ab9adbc77d
Merge pull request #1466 from firesim/bump-chipyard
Bump Chipyard + Update Vitis Xclbin + AWS AGFIs
2023-03-11 14:09:50 -08:00
Abraham Gonzalez d91d8049d9 Fix clang comment 2023-03-10 22:33:20 +00:00
Abraham Gonzalez 90420d58e2 Rework comment 2023-03-10 21:54:06 +00:00
Abraham Gonzalez 159e949e6d Fix forward progress in driver | Add more checks for correct profile-interval 2023-03-10 18:50:51 +00:00
Abraham Gonzalez e209b89b97
Update .gitignore for .ivy2/.sbt 2023-03-09 19:59:06 -08:00
abejgonzalez 5d979ed4bd Revert to UInt64 for offsetConst in SerialBridge 2023-03-08 18:07:02 -08:00
abejgonzalez 69e428f010 Local .ivy2/.sbt 2023-03-05 22:39:45 -08:00
abejgonzalez d826776d6c Update docs w/ fixes 2023-03-05 17:40:33 -08:00
abejgonzalez 2f13158e0e Initial support for fat jars 2023-03-03 17:17:16 -08:00
abejgonzalez 31049aae1e Remove SBT thin client 2023-03-02 23:18:28 -08:00
Nandor Licker a81e3725c1
Removed test_harness_bridge and simplified harnesses (#1442)
* Removed test_harness_bridge and simplified harnesses

Instead, the test is now performed by `fasedtests_top`, in line with other tests.
Also slightly simplified the test harnessed for both FASED and FireSim.

* Update sim/midas/src/main/cc/core/systematic_scheduler.h

Co-authored-by: David Biancolin <david.biancolin@sifive.com>

---------

Co-authored-by: David Biancolin <david.biancolin@sifive.com>
2023-03-01 23:42:43 +00:00
abejgonzalez 22143b6580 Bump SBT to 1.8.2 2023-02-28 17:32:33 -08:00
Nandor Licker c7dbbe2724
Move bridge init/finish handling into the simulation base (#1441)
The changes exposed a problem in the `AXI4Buffer` done signal. To avoid relying on latencies,
the done signal is now gated with reset.
2023-02-28 23:44:04 +00:00
Nandor Licker 38a02b3b90
Converted FASEDMemoryTimingModel into a bridge (#1440)
This PR slightly cleans up the bridge interface by provding default implementation of the methods.
The FASED bridge is now a full bridge and requires no special handling in the widget registry.
De-duplicating initialisation/finalization logic in harnesses.
2023-02-28 19:47:14 +00:00
Nandor Licker e0569ff124
Fix replace-rtl ordering problem (#1444)
Not all sub-rules build the directory and replace-rtl failed if trying to copy the driver first.
2023-02-28 17:01:46 +02:00
Nandor Licker 0755382dae
Extends tests to work with post-synth RTL (#1439)
Includes improvements to post-synth simulations:

- Added a `QUICK` strategy which tries to get Vivado to run fast, yet still helps us reproduce failures
- Limited Vivado to 1 thread to mitigate flakyness from parallel synthesis
- The harness now explicitly waits for GSR
- Integrated post-synth metasims with the harness. Setting `TEST_DISABLE_VIVADO=1` in the environment disables these tests even if Vivado is available.

Co-authored-by: Nandor Licker <nandorl@sifive.com>
2023-02-27 18:20:01 +02:00
Nandor Licker fc759f29f1
VCS post-synthesis RTL simulators (#1438)
This PR adds make rules to get the post-synth RTL out of vivado and build a VCS simulator out of it.
On VCS, a 150ns startup delay is hard-wired on all simulation modes to yield identical waveforms.
The delay is required to initialize vivado gate-level libraries.

Co-authored-by: Nandor Licker <nandorl@sifive.com>
2023-02-24 08:06:50 +02:00
Nandor Licker 6e993f5089
Fix wiring of unused ports (#1437)
A previous PR set the values to 0, which is incorrect, however CI auto-merged the changes without blocking on the failure.
2023-02-22 10:57:29 +00:00
Nandor Licker 4b5840fca8
Do not materialize memory connections if the target does not use them (#1431)
In line with the omission of managed stream engines and their associated connections
to the top-level, this PR also eliminates unused memory connections. The top-level
ports to the platform hardware are left unchanged. If no memories are used in the
target, the `LoadMem` widget is omitted.
2023-02-21 18:45:38 +00:00
Nandor Licker 84b1c3f900
Add option to F1 driver to load an AGFI (#1434)
If the `+agfi=` option points to an AGFI, the image is loaded before the simulation starts.
2023-02-21 19:00:34 +02:00
Nandor Licker 797e6e41bc
Introduced a full verilator/vcs/debug matrix (#1435)
This PR moves the paramterization of test harnesses to the toplevel.
Slightly re-wrote tests to avoid duplication of running logic.
2023-02-19 11:31:03 +00:00
Nandor Licker 9818dbcae3
Added a test for memory accesses (#1433)
This PR fixes the invocation to `LoadMem` and adds a test for it.

The test performs memory read accesses through a TileLink node which goes to DRAM through a trivial FASED bridge.
Read requests from the driver are received through the `PeekPokeBridge` and are sent back to be printed to a file.
The test harness compares the file passed to loadmem with the results produced by this bridge, which should read all data back.
2023-02-18 20:14:42 +02:00
Nandor Licker c6f72296aa
Do not materialize a stream engine if no streams are used (#1430)
The stream engine is omitted from the design and the driver if there are no bridges relying on it.
This is very useful for debugging as it eliminates a lot of SystemVerilog generated from most small
designs and reduces the amount of gates synthesized for smaller tests.
2023-02-11 09:37:30 +02:00
Benjamin Morse bec25aaf19
Tests for existing TracerV bridge including trigger modes (#1426)
* Tests for mode 0,1,2
* Test for mode 3 disabled until Issue #1428 is resolved
2023-02-09 11:40:04 -08:00
Nandor Licker d194593ece
Enabled scalafmt on more sources (#1429) 2023-02-09 09:25:39 -08:00
Nandor Licker 30fd72bc7f
Remove `constructor.h` and replace it with a Scala-generated header (#1398) 2023-02-08 00:52:51 +02:00
Nandor Licker abed23be29
Restored the runtime config generation phase (#1425) 2023-02-03 09:06:04 +02:00
Nandor Licker 6420252509
Removed auxiliary functions from simif_t (#1424) 2023-02-02 22:25:40 +02:00
Abraham Gonzalez 9d3462ed13
Merge pull request #1392 from firesim/scala213
Bump to latest rocket-chip/scala2.13
2023-02-01 14:30:09 -08:00
Nandor Licker bf051c785f
Re-enabled timeout detection for harnesses (#1423)
The changes got lost in rebases. This PR re-introduces them.
2023-02-01 19:21:02 +00:00
Nandor Licker 2889818e7d
Removed the compiler-generated runtime config (#1422)
The default arguments to FASED memory models are now passed alongside other FASED bridge arguments.
These defaults can be overriden by other args passed to the bridge driver or disabled when the raw hardware configuration is requested.
The manager can still pass an optional runtime config to the design to override arguments.
2023-02-01 19:19:00 +02:00
Nandor Licker 9ae4ed7f52
Passed memory offsets to genHeader (#1416)
Instead of emitting a constant and referencing it by name in the header for
a bridge constructor, the memory mapping is passed alongside the base offset
for MMIO for bridge header emission to reference.
2023-02-01 10:47:14 +00:00
Nandor Licker 4d1876334e
Introduced a unique main to the simulation. (#1368)
The main method centralizes more of the lifecycle of a simulation.
2023-02-01 10:40:08 +02:00
Jerry Zhao 2a5f0cfe70 Revert changing testOnly behavior 2023-01-30 23:30:17 -08:00
Jerry Zhao a1981c11ec Merge remote-tracking branch 'origin/main' into scala213 2023-01-30 17:24:06 -08:00
Jerry Zhao 9bebd0a294 Bump CI log tail length to 300 lines 2023-01-30 14:16:20 -08:00
Jerry Zhao b191677aa4 Fix undriven signals in BlockDevDUT 2023-01-30 09:39:23 -08:00
Nandor Licker 0c2e8dd6bc
Fixed missing array include (#1417)
Some versions of GCC/Clang complain, some do not. This includes the header.
2023-01-30 08:24:32 +02:00
abejgonzalez 7af5bd9f67 Run Scala formatting 2023-01-27 13:52:18 -08:00
Jerry Zhao a6de5dd121 Fix midas AutoILA to not depend on set traversal ordering 2023-01-27 13:52:18 -08:00
Jerry Zhao 96ef6200fe Bump chipyard.mk to scala 2.13 2023-01-27 13:52:18 -08:00
Jerry Zhao d384fc52bc Fix testOnly rule 2023-01-27 13:52:18 -08:00
Jerry Zhao 0882cc2715 Fix AXI4Tieoff missing import 2023-01-27 13:52:18 -08:00
Jerry Zhao 3670816922 Bump scalafix 2023-01-27 13:52:18 -08:00
Jerry Zhao 697b5a59d9 Remaining fixes to bump to scala 2.13 2023-01-27 13:52:18 -08:00
Jerry Zhao a560cd1b8e Bump to scala 2.13/chisel 3.5.5 2023-01-27 13:52:18 -08:00
Nandor Licker ad7d0f009e Fix drivers 2023-01-27 18:00:48 +00:00
abejgonzalez 240875234d Fix Vitis driver compile | Fix CY-as-top issues 2023-01-27 18:00:48 +00:00
Nandor Licker 6d39766d6d
Fix incremental builds triggered by scala changes (#1408)
Fixed the DRY'd grep pattern. Incremental builds should work now.
2023-01-26 09:56:13 -08:00
Jerry Zhao 0b8289acd8
Merge pull request #1401 from firesim/jerryz123-patch-3
Fix loadmem bug in firesim_tsi.cc
2023-01-25 16:48:15 -08:00
Jerry Zhao 1b03338a47
Update sim/firesim-lib/src/main/cc/fesvr/firesim_tsi.h
Co-authored-by: David Biancolin <david.biancolin@sifive.com>
2023-01-25 14:20:37 -08:00
Abraham Gonzalez 56790ead95
Merge pull request #1396 from firesim/add-vcs-metasims
Add VCS metasimulation to CI
2023-01-25 11:14:52 -08:00
Benjamin Morse a513c0ef58
Add scalaFix (#1393)
* adding scalaFix to the projecting, using two make targets, `scala-lint` and `scala-lint-check`
* adding documentation

Co-authored-by: David Biancolin <david.biancolin@sifive.com>
2023-01-25 10:34:10 -08:00
Nandor Licker cdb46619d9
Moved simulation step control to the PeekPoke bridge (#1399)
The STEP and DONE fields of the simulation master were fully determined by the behaviour of the peek poke bridge.
Since that stepping logic is closely tied to peek-poke logic, this PR moves it into that bridge.
Temporarily, the `firesim_top` harness now uses PeekPoke to drive the simulation. This will be removed in a future PR.
2023-01-25 19:12:44 +02:00
Jerry Zhao 64ea141ecc Fix bug in fesvr loadmem path
chunk_align has to match the loadmem-DRAM interface width
Hardcode this for now
2023-01-24 15:45:53 -08:00
Nandor Licker c2204d6593
Added a bridge registry to own all bridge instances (#1369) 2023-01-24 23:08:59 +00:00