Commit Graph

1509 Commits

Author SHA1 Message Date
Nandor Licker 06c30ea634
Remove raw pointers from port address creation (#1309) 2022-11-30 15:36:41 -05:00
Fabian Schuiki 93bb65e64b
Move XDC circuit paths to config (#1308)
We would like to be able to tell what the pre- and post-link circuit
paths of the design are going to be without having to elaborate the
`PlatformShim` to get at the corresponding `XDCPathToCircuitAnnotation`.

This commit adds the two new config options `PreLinkCircuitPath` and
`PostLinkCircuitPath`, and moves the platform-specific paths out from
`F1Shim` and `VitisShim` and into the corresponding `F1Config` and
`VitisConfig`, respectively. This allows other parts of the codebase to
determine these paths purely from the config. Since the platform-
specific shim code now no longer has to specify these paths directly,
the `SpecifyXDCCircuitPaths` is moved up into the parent `PlatformShim`
class which annotates the paths provided by the config.
2022-11-29 08:51:42 -08:00
Benjamin Morse 7aa7ee22f0
adding a Plusargs Bridge, with unit tests and TutorialSuite tests (#1291)
* adding a Plusargs Bridge, with unit tests and TutorialSuite tests, scala docs and doxygen
2022-11-21 12:57:38 -08:00
Russell Horvath 95463d49c0
Add apply method that takes ReferenceTarget parameter in RAMStyleHint (#1306)
add apply method that takes ReferenceTarget in RAMStyleHint
2022-11-18 21:26:52 +00:00
David Biancolin 81ede47417
AutoCounter: Add cinttypes to autocounter.h for format specifier bug (#1304) 2022-11-17 18:21:18 +02:00
Nandor Licker 5ca41c33c6
Fix C++ compiler warnings (#1302) 2022-11-17 18:16:06 +02:00
Russell Horvath bb22f77423
Merge pull request #1298 from firesim/split-ila-passes
Fix MCRAMs optimization with more strict FPGA backend passes
2022-11-14 14:14:33 -08:00
Russell Horvath 4ba273a272
Update sim/midas/src/main/scala/midas/stage/GoldenGateCompilerPhase.scala
Co-authored-by: David Biancolin <david.biancolin@sifive.com>
2022-11-14 09:36:51 -08:00
Russell Horvath f9fdcaf6e7 split ila passes 2022-11-11 20:57:18 +00:00
David Biancolin 4cd74f89e9
Fix Reset Synchronizer For InitValues == 0 (#1296) 2022-11-11 01:33:04 +00:00
Nandor Licker 94ebd71b7b
Fix SimUtils tests (#1295) 2022-11-10 23:01:56 +00:00
David Biancolin 3ec6891b38 configs: Remove the DesiredHostFrequency ield 2022-10-30 20:01:36 -07:00
David Biancolin d8e98cb9c6 vitis: Support frequency settings provided at bitstream build 2022-10-30 20:01:36 -07:00
Nandor Licker 274fe7f55b
Relaxed restrictions on pipe channel types (#1263)
Eliminated ChLeafType and allowed pipe channels to carry arbitrary bundles.
In SimWrapper, pipe channels can be built from multiple reference targets.
When pipe channels are built by bridges, the logic is unchanged and bundles
are still split into their constituent channels to avoid any performance
degradation that might arise from the additional coupling.
2022-10-30 11:20:44 +02:00
David Biancolin 31c04d9c42 Fix bitrot in targetutils/midas scala tests 2022-10-26 23:36:57 +00:00
David Biancolin 3569acc17d bridges: renable direction checks in ChannelizedHostPort 2022-10-26 22:34:05 +00:00
Abraham Gonzalez 7a42fbf7ca
Merge pull request #1257 from firesim/abejgonzalez-patch-5
Localize Java temp directory + Revert to using `sbt-launch.jar`
2022-10-21 16:50:32 -07:00
Nandor Licker 8338d4fdd7
Match field order in channel info (#1264) 2022-10-21 12:12:06 +03:00
Russell Horvath ec69caaf2c
Merge pull request #1229 from firesim/expose-frequency
Expose frequency and strategy in the build_dcp script, plumb through to bitbuilder.
2022-10-20 21:20:35 -07:00
Tim Snyder 163b189ff7
Put instPath before label in AutoCounter output (#1274)
* Put instPath before label in AutoCounter output

In a design with many autocounters being output, it is often the case that the instPath can be:
* quite long
* have common substrings across many of the counters

To simplify post-processing, it is strongly preferred that the instPath is first so that common prefix algorithms
can be used to shorten the autocounter labels.

I think @davidbiancolin has other people who have complained about the consistency of name ordering
in other places as well.

* Fixup validation name generator as well.
2022-10-20 15:49:53 -05:00
mergify[bot] c51340dcd2
fix: remove unused import RocketTilesKey (#1279)
(cherry picked from commit 6a467e67e0ec871362cc076cbfe1706eeab7a5d8)

Co-authored-by: singularity <chency_singularity@163.com>
2022-10-20 13:23:30 -07:00
Abraham Gonzalez 9151faaa63
Use SBT launch jar 2022-10-12 18:09:28 -07:00
abejgonzalez 189f0c7535 Add .java_tmp dir 2022-10-08 16:50:23 -07:00
Abraham Gonzalez 99169182a1
Localize java tmpdir 2022-10-08 16:47:20 -07:00
Nandor Licker fabb54bdab
Make AutoCounterCoverModule target modules (#1252)
Instead of hard-wiring a module name, now the annotation is placed on a proper module target.
2022-10-07 08:25:49 +00:00
Nandor Licker a1d187b3a3
Allow CreateParametersInstancePhase.getParameters to be reused (#1251)
Turned the method static to allow its reuse by other passes.
2022-10-07 07:59:12 +00:00
Nandor Licker e97982e0d9
Use headOptions instead of pattern matching in SimWrapper (#1253) 2022-10-07 08:39:29 +03:00
David Biancolin 1ae5975308
tracerv: fix loop bounds in token processing (#1249) 2022-10-06 22:28:16 -07:00
Russell Horvath bdce5ae660
Merge branch 'main' into expose-frequency 2022-10-06 14:33:50 -07:00
Nandor Licker 34f2996a78
Added a method to the shim for the generation of .vh files (#1244)
Moved all verilog header generation logic to a method.

Co-authored-by: David Biancolin <david.biancolin@sifive.com>
2022-10-05 21:48:05 +00:00
Nandor Licker 760411bc93
Materialized bridge FCCAs in BridgeExtraction (#1225)
This patch moves the materialization of FCCAs connected to bridges to the BridgeExtraction stage.
Up to that point, information about channels connected to bridges is carried in the bridgeChannels field of the SerializableBridgeAnnotation. Bridges with IO towards the target must construct BridgeChannel decriptors
for the channels they want materialized instead of eagerly creating FCCAs.
2022-10-05 22:56:38 +03:00
Nandor Licker f9afbcceb8
Fix fasedtests with complex configs (#1243)
The parser for configurations was failing to split at underscores.
The underscores are substituted and names are expanded in the Makefrag.
2022-10-05 18:24:33 +03:00
Fabian Schuiki d305ef8d0e
Merge pull request #1235 from firesim/fschuiki-custom-xdc-test
Add XDCAnnotation type hints, end-to-end test, empty arg list support
2022-10-04 14:37:21 -07:00
Nandor Licker cf0cf21713
Allow dromajo to be provided as a non-conda dependency (#1246) 2022-10-04 10:39:30 +03:00
Nandor Licker a65151915a
Build PlatformShimElab from SimWrapperConfig (#1242)
Pass the entire object to platform shim elab to allow fields to be more easily added.
2022-10-04 10:39:12 +03:00
Fabian Schuiki dd56ffc1d1
Add XDCAnnotation type hints, end-to-end test, empty arg list support
This commit does three things:

- Add a `CustomAnnotations` test to the midasexamples test suite which
  is basically the shift register test with additional uses of the
  `XDC(...)` Chisel API. The test checks whether the expected files get
  generated and contain the expected lines.

- Add an early out to `WriteXDCFile.formatArguments` in case the format
  argument list is empty. This allows the user to specify an XDC
  constraint that contains no format arguments, which until now would
  cause an exception in `argumentList.head`. The end-to-end test checks
  for this.

- Add type hints to the `XDCAnnotation` such that the
  `XDCDestinationFile` case objects get serialized properly.
2022-09-28 20:52:18 -07:00
Nandor Licker 980e2cbbe4
Removed the clock bridge annotation (#1224)
Removed the specialised clock bridge annotation to fully re-use the
functionality provided by the serializable bridge annotation.
Pattern matching now needs to verify the widget constructor name.
2022-09-28 10:02:41 +00:00
Nandor Licker 85d869cbf6
Removed in-memory bridges (#1223)
In-memory bridges were used to simplify the construction of bridges in 3 midas transforms.
To simplify bridge annotation representation, this patch removes them and moves all uses
over to the `widgetClass`/`widgetConstructorKey` interface. As an added benefit, this
ensures that no user can construct bridge annotations that cannot be serialized. In intermediary
`.fir` dumps, now bridge parameters show up correctly serialized.
2022-09-28 11:14:53 +03:00
Russell Horvath 0283f95bcd remove env script + plumb through bitbuilder 2022-09-27 03:20:34 +00:00
David Biancolin 03e5047f2e Rename dma/pcis -> cpu_managed_axi4, fmaxi4 -> fpga_managed_axi4 2022-09-26 20:07:54 -07:00
Russell Horvath 9d8edec331 changed tcl -> sh 2022-09-22 21:53:40 +00:00
David Biancolin 343e06ca09 vitis: tie-off FPGA-managed AXI4 bus in PlatformShim 2022-09-22 21:32:13 +00:00
David Biancolin 7765a4d3b1 vitis: Refine config settings, provide context comments 2022-09-22 21:32:13 +00:00
David Biancolin 4a2a78ac8c metasim: add helper funcs to set/get variable width fields 2022-09-22 21:32:13 +00:00
David Biancolin 3927766a06 Plumb through FPGA-managed AXI4 FPGATop + metasim 2022-09-22 21:32:13 +00:00
Russell Horvath 0c3b8d0565 expose frequency in the build_dcp script 2022-09-22 13:22:53 -07:00
Nandor Licker b639257185
Introduced trait to represent the interface to channel ports (#1221)
`TargetChannelIO` now exposes the minimum required information bridges need to connect up to the `SimWrapper` and the target design.
2022-09-21 14:27:09 +03:00
Jerry Zhao 2fca0537ce Bump Rocketchip/chipyard/chisel/bloop 2022-09-19 16:45:47 +00:00
David Biancolin a881c8ee6a
mm: Properly comment post-#endif tokens #1211 2022-09-16 15:58:37 -07:00
Nandor Licker 6198d55c3e
Removed the Fame1Instances transformation (#1202)
The `Fame1Instances` transformation was used solely to clock gate the model within `FasedMemoryTimingModel`. Instead of the transformation which individually altered all memories and registers within the hierarchy, now a clock gate is used on the clock signal passed to the model.

Altered `HostSpecialization` for Xilinx to replace all modules which have `AbstractClockGate` in their name since the elaboration of the simulation wrapper generates the `AbstractClockGate_0` name to avoid duplication.
2022-09-16 20:22:49 +03:00
Abraham Gonzalez 2e485b7dae Misc. cleanup 2022-09-12 23:21:34 +00:00
Abraham Gonzalez 2f88d24206 Use conda sbt | Source CY env.sh when lib 2022-09-12 18:38:21 +00:00
Abraham Gonzalez a7ccd492b6 Merge remote-tracking branch 'origin/main' into refactor_conda_abe 2022-09-09 17:11:58 +00:00
Nandor Licker 81249667eb
Allocated memory using MAP_NORESERVE (#1204)
In `mm.c`, memory mappings are now created using `MAP_NORESERVE`.
By default, the call attempts to allocate petabytes, failing eagerly on some systems.
With `MAP_NORESERVE`, the oversized allocation succeeds, but a segfault occurs if
there is not enough backing physical memory as execution progresses.
2022-09-09 18:52:01 +03:00
Nandor Licker cb755ee969
Fixed compiler error caused by private destructor (#1199)
Changed virtual private base class to a virtual public base class to work around a clang compilation failure. Also marked other classes final to work around virtual-related compiler warnings.
2022-09-08 12:15:14 +03:00
David Biancolin 71ccb4c9a7 Clang-format mm.h, mm.cc
This to capture the diff between the original sources
and the formatted ones.
2022-09-07 20:07:05 -07:00
David Biancolin f6a1ee309e metasim: remove dramsim2 + move mm in-tree 2022-09-07 20:07:05 -07:00
David Biancolin 8a61065df7
Metasimulation: remove dependency on fesvr for ucontext (#1196) 2022-09-07 19:54:03 +00:00
Abraham Gonzalez 43e3de6a34
Merge pull request #1160 from firesim/libelfdwarf_to_conda
Use libelf and libdwarf from conda
2022-09-01 10:50:16 -07:00
David Biancolin 46df328744
bridges: Remove references to DMA_X in driver sources (#1184)
Instead provide an implementation-agnostic constexpr in a
BridgeConstants namespace
2022-09-01 04:40:07 +00:00
Tim Snyder 3d27b797d1 libelf and libdwarf from conda 2022-08-29 16:48:59 +00:00
David Biancolin d725a6eb96
Resolve some common spelling mistakes (#1186) 2022-08-28 17:25:13 -07:00
David Biancolin 459f064ab7
ci: remove termination bridge test until it is fixed (#1185) 2022-08-28 03:40:17 +00:00
David Biancolin 43a1bfea98
Fix various VCS metasimulation breakages (#1177)
* Add no as-needed to workaround vcs link-time issues

* metasim: clean up handling of inter-context pointers

Management of master, dma mm_t structures has been a source of
considerable pain. These are globals that are used facillate
communication between the driver and RTL simulator contexts.

This commit an insidious dynamic_cast (which segfaults under modern
versions of VCS), and converts the underlying
pointers to raw pointers, to avoid double free behavior that has been
observed running under VCS at sifive.

Long term, these globals can be removed when the driver context is pushed
behind a single DPI invocation.

* makefrag: push platform-specific CXXFLAGS/LDFLAGS into driver target

* makefrag: move dead comments about libfesvr linkage

Co-authored-by: Tim Snyder <timothy.snyder@sifive.com>
2022-08-25 10:15:49 -07:00
Tim Snyder 1a5811ac04 driver: define __STDC_FORMAT_MACROS
newer versions of inttypes.h do not define the std C formatting
macros unless __STDC_FORMAT_MACROS is defined before inttypes.h
is included.  Defining it via cmdline until we rewrite the driver
I/O to use C++.
2022-08-24 18:43:09 +00:00
Tim Snyder 5576fb5606 adjust dromajo includes halfway for conda
first cut of https://anaconda.org/ucb-bar/dromajo has the
libdromajo_cosim.a but doesn't have libdromajo_cosim.h

To work around, I add the source directory back into the -I paths
for the header until the package is fixed
2022-08-24 18:40:10 +00:00
Tim Snyder 51ff511d18 libelf and libdwarf from conda 2022-08-06 19:27:25 +00:00
David Biancolin dbd1d3081b
Merge pull request #1151 from firesim/printf-annotator-update
Annotate Printf statements instead of intercepting parameters.
2022-08-04 20:31:53 -07:00
Nandor Licker 2e205dce13
Enabled clang-format on C++ sources (#1139)
* Enabled clang-format on C++ sources

Ran clang-format on sources committed to the repository and added a CI job to ensure sources are properly formatted on each commit.
Clang-format can be installed using Linux package managers and the `git clang-format` command can be used to format all files that change with a commit.

* Update docs/Developer-Docs/GoldenGate-and-Driver-Development.rst

Co-authored-by: Tim Snyder <timothy.snyder@sifive.com>

* Update scripts/machine-launch-script.sh

Co-authored-by: Tim Snyder <timothy.snyder@sifive.com>

Co-authored-by: David Biancolin <david.biancolin@sifive.com>
Co-authored-by: Tim Snyder <timothy.snyder@sifive.com>
2022-08-02 23:12:13 -07:00
David Biancolin 32014a916b midasexamples: update printf tests to use new annotator
Change some hardcoded "linesToDrop" values to reflect
the removal of a now extraneous printf testing name handing.
2022-08-02 20:08:58 +00:00
David Biancolin 969e2fd093 printf: Annotate printf statements not parameters
Now that printf statements are named, and thus annotatable
remove a long-standing hack that has the PrintfAnnotation label
the parameters to the statement instead of the statement itself
2022-08-02 20:08:58 +00:00
Nandor Licker 5e8682c50b Allowed bridge parameters to be serialized
Bridge annotations can now can be serialized and constructed using `widgetConstructorKey`.
2022-07-22 18:00:04 +03:00
Nandor Licker bfae611e2e Fix UB in TracerV
Function was not returning a value, resulting in a fall-through to an unrelated function.
2022-07-12 11:12:50 +03:00
David Biancolin a7ee1af697
vitis: Use XPM for reset synchronizer (#1100) 2022-06-25 03:07:51 +00:00
Tim Snyder edc850846c
Merge pull request #1064 from firesim/fix-fpga-backend-ordering
Ensure FPGA Backend passes run before final optimizations
2022-06-23 14:40:28 +00:00
abejgonzalez 5ccd3b6e1b Remove extra DesiredHostFrequency 2022-06-16 00:55:58 -07:00
abejgonzalez b638ac00d5 Scalafmt run 2022-06-16 00:50:38 -07:00
abejgonzalez c0d346aa8a Add Vitis CI 2022-06-15 21:35:37 -07:00
abejgonzalez 758da8f6ea Boot Linux w/ manager 2022-06-14 00:19:21 -07:00
abejgonzalez 740ce1ec16 Merge remote-tracking branch 'origin/what-to-build-v2' into local-fpga-conda-b-abe 2022-06-13 23:19:14 -07:00
abejgonzalez 5da1327eb5 Working Linux boot 2022-06-13 01:10:39 -07:00
Sagar Karandikar ba10ef5981 replace LD_LIBRARY_PATH usage with rpath 2022-06-12 03:13:34 +00:00
abejgonzalez c1d322cc63 Revert "revert me: workaround verilator timescale"
This reverts commit ece9d12844.
2022-06-11 11:11:15 -07:00
abejgonzalez 7bea44b4ea Revert "revertme: AutoILA on mem / ctrl bus"
This reverts commit 76577dd7c3.
2022-06-11 11:11:02 -07:00
abejgonzalez 5d36ccbc1e Revert "revertme: Update PLATFORM_CONFIG to set WithAutoILA"
This reverts commit 27f5f8cd98.
2022-06-11 11:10:59 -07:00
David Biancolin 27f5f8cd98 revertme: Update PLATFORM_CONFIG to set WithAutoILA 2022-06-10 18:59:30 +00:00
David Biancolin 76577dd7c3 revertme: AutoILA on mem / ctrl bus 2022-06-10 18:58:48 +00:00
David Biancolin ece9d12844 revert me: workaround verilator timescale
Verilator complains about instances of modules with no definitions that
are in the Shim and not part of the metasimulation module hierarchy.
This temporarily silences that.
2022-06-10 18:17:50 +00:00
David Biancolin f4b473cdcc vitis: register GG-generated XDC constraints 2022-06-10 17:51:09 +00:00
David Biancolin c905d3c5c2 xdc: label VitisShim async reset synchronizer 2022-06-10 12:56:25 +00:00
David Biancolin ef9b56d401 make: scan CONDA_PREFIX libs first when buidling vitis driver 2022-06-09 20:10:05 +00:00
David Biancolin 729769cb66 Revert "Revert vitis-specific changes to firesim target Makefrag"
This reverts commit 1f11d7ec0bb5172bed64794ef43f1e744f31e74f.
2022-06-09 19:58:34 +00:00
David Biancolin 46f6dbd93a ipgen: Remove hardcoded path to ip elaboration dest 2022-06-09 19:58:34 +00:00
David Biancolin 5b56e4fbae Revert vitis-specific changes to firesim target Makefrag 2022-06-09 19:58:34 +00:00
David Biancolin 0030c56f59 Merge remote-tracking branch 'origin/main' into local-fpga-conda 2022-06-09 19:58:34 +00:00
Sagar Karandikar a5d140e1d8 metasimulation support in manager 2022-06-09 09:10:02 +00:00
David Biancolin 390b733cfd Workaround transform ordering bug that breaks FPGA backend passes 2022-06-08 13:44:00 +00:00
Tim Snyder 4a3eec3318 add empty impl for host_init and host_finish in simif_vitis
also use the override keyword to ensure that we're overriding the virtual member of the base class
2022-06-07 23:10:08 +00:00
Tim Snyder cdf7de6747 add XDC path mapping for VitisShim 2022-06-07 23:10:08 +00:00
David Biancolin 78824fb168 Move C++ implementation of bridge streams behind simif_t 2022-06-06 18:52:53 +00:00
David Biancolin 44cafe8680
Update Termination Bridge to remove use of data_t #1065 2022-06-03 00:44:07 +00:00
David Biancolin 04b36bb106 Add a crude test for AutoILATransform 2022-06-02 15:58:58 +00:00
David Biancolin 7a2ef20955 scalatests: Fix midas subproject scalatests 2022-06-02 15:58:58 +00:00
David Biancolin 5fd6c5b065 Remove ILATopWiring 2022-06-02 15:58:58 +00:00
David Biancolin e68059e374 midasexamples: Add FpgaDebug to GCD as a sanity check 2022-06-02 15:58:58 +00:00
David Biancolin 21731d1edc Register the new ILA transform 2022-06-02 15:58:58 +00:00
David Biancolin dcd50ada66 Add an autoILA pass that instantiates the ILA in IR 2022-06-02 15:58:58 +00:00
David Biancolin 3e9b7f1c3a Add HostClockWiring to post-GG transform list 2022-06-02 15:58:58 +00:00
David Biancolin 8813b9243f passes: Add a pass to wire host clock in final lowering 2022-06-02 15:58:58 +00:00
David Biancolin 382d0f83e9
Merge pull request #1060 from firesim/scalafmt
Scala Source Formatting via Scalafmt
2022-05-31 18:40:18 -04:00
David Biancolin e3e8d459bc
Merge pull request #1050 from firesim/remove-datat
Remove the data_t type alias + unused macros in generated header
2022-05-31 18:14:37 -04:00
David Biancolin 0ed96d1c9f scalafmt MultiWidthFifo as an example 2022-05-31 20:07:34 +00:00
David Biancolin 89be5929eb make: Add phony targets for scala formatting 2022-05-31 20:07:34 +00:00
David Biancolin 4fecf9a234 Add scalafmt configuration and SBT plugin.
Excludes all existing files.
2022-05-31 20:07:34 +00:00
David Biancolin 2bb4212a70
Merge pull request #1056 from firesim/vscode-integration
VSCode Integration for Scala Development
2022-05-24 14:11:48 -04:00
Rahul Bodduna aabd06b596
Adding Termination Bridge with target defined conditions and messaging. (#1031)
* Adding Test Finisher Bridge

* Nits and moving TerminationBridge to midas/widgets

* assert for out of bounds error checks on termination conditions
2022-05-24 21:54:26 +05:30
David Biancolin 95cbbf94c9 Merge remote-tracking branch 'origin/main' into vitis-integration 2022-05-17 23:19:21 +00:00
David Biancolin a8f894629b vscode: Use sbt on PATH to launch sbt 2022-05-17 15:42:09 -07:00
David Biancolin 62124a0819 Support VSCode under sim/ 2022-05-17 15:40:21 -07:00
David Biancolin d224b1df23 config: Support the AREA strategy from PLATFORM_CONFIG 2022-05-16 22:50:59 +00:00
David Biancolin 3d9c6238a1
Merge pull request #1021 from firesim/ram-hints
XDC-Driven Memory Hints for Xilinx FPGAs
2022-05-16 15:45:36 -07:00
David Biancolin 8e1608a89b
passes: better error messaging in target clock analysis (#1053) 2022-05-11 15:33:32 -07:00
David Biancolin ed807a7bc4 Add docs for RAMStyleHint under Advanced-Usage/Targets 2022-05-09 21:09:49 -07:00
David Biancolin 61b905c7a5 streams: prefix engine RTL with channel name 2022-05-10 00:26:33 +00:00
David Biancolin e5f8dd1921 streams: Annotate queues in engine with XDC RAM hints 2022-05-10 00:26:33 +00:00
David Biancolin 8b841d7300 Update imports in RAMStyleHints 2022-05-10 00:26:15 +00:00
David Biancolin 8c1915059c [targetutils] Add XDC-Driven Memory Hints for Xilinx FPGAs 2022-05-10 00:26:15 +00:00
David Biancolin 12fbc6fbc0 header: Remove data_t type alias (macro) -> uint32_t 2022-05-03 06:18:40 +00:00
David Biancolin 4e85d6bcd2 header: Remove unused PLATFORM_TYPE MACRO 2022-05-03 05:43:28 +00:00
David Biancolin ad334964ff Move ElaborateChiselSubCircuit into targetutils 2022-05-02 23:49:45 +00:00
David Biancolin 0f5d83e376 Factor bridge stream / DMA implementation into StreamEngine module 2022-04-22 04:45:44 +00:00
David Biancolin 65c80b5266 Implement count in BRAMQueue 2022-04-22 04:45:44 +00:00
David Biancolin 50151c12d4 FPGATop: Ensure insertion order = iteration order on WidgetMap 2022-04-22 04:45:44 +00:00
David Biancolin 433ccf4c96 Print a MMIO memory map summary during elaboration 2022-04-22 04:45:44 +00:00
David Biancolin 873298c156 [widgets] Allow additional header emission without overloading 2022-04-22 04:45:44 +00:00
David Biancolin 9ab3abc17f [targetutils] Provide scaladoc for SynthesizePrintf 2022-04-20 17:14:54 +00:00
Tim Snyder 6bd99b2b8c Merge remote-tracking branch 'origin/main' into use_conda 2022-04-13 00:22:58 +00:00
Tim Snyder bd38d6f164 copy local libs for switch also
* moves get_local_shared_librares into runtools.utils so that same helper
  can be used for switch and driver
* stop setting LD_LIBRARY_PATH for FireSim-f1 when running, instead
  add $ORIGIN to the beginning of RPATH for both driver and switch
* cleaned up a TODO that was TODONE by Sagar a long time ago
* switch makefile updated to use standard env vars (so that it is easier
  to tweak the build in standard ways). The only actual change is addition
  of $ORIGIN at front of rpath
2022-04-06 15:40:37 +00:00
abejgonzalez c107b35090 Fix target-agnostic.mk 2022-04-05 23:54:09 +00:00
Abraham Gonzalez 12df0cb741 Apply suggestions from code review 2022-04-04 16:50:32 -07:00
Tim Snyder d53f8a0357 include <string> if you use it bro 2022-04-04 20:31:19 +00:00
abejgonzalez b53422702d Merge remote-tracking branch 'origin/local-fpga' 2022-04-02 22:29:06 -07:00
Tim Snyder 5eed280437 Merge remote-tracking branch 'origin/main' into use_conda 2022-03-31 03:18:05 +00:00
David Biancolin 6ac0329a7a
Hoist enables out of printfs and stops (#999) 2022-03-29 15:57:49 -07:00
David Biancolin a1e139c64c Force SV emitter to run last in a separate compiler 2022-03-23 22:37:55 +00:00
Albert Magyar b72089e99e Use FIRRTL 'FPGA backend' passes in the GG compiler for better BRAM use
(cherry picked from commit 38d6c19ef93826a6d7b398d01a1782a193557ec6)
2022-03-23 22:37:43 +00:00
Tim Snyder c94e838172 consistently use CXXFLAGS for FireSim C++
There was a mixture of using CXXFLAGS and CFLAGS in the FireSim driver makefiles
this led to needing to pass both of them to VCS and Verilator.  However, everything
we're building is C++ and so is Verilator, so we should only need to use CXXFLAGS.

This cuts down on the size of the compile commandlines and makes them much easier to reason about.
2022-03-22 04:51:10 +00:00
Tim Snyder 39fc66d0f4 fix some makefile typos 2022-03-22 04:48:11 +00:00
abejgonzalez e87cd4ac56 Test and fix build dir errors | Address PR issues 2022-03-08 08:29:34 +00:00
abejgonzalez a77a1ed965 Fix non-Vitis builds 2022-02-24 00:27:21 +00:00
abejgonzalez a0b3667ce7 Merge remote-tracking branch 'origin/local-fpga' into where-to-build 2022-02-22 13:53:59 -08:00
abejgonzalez 4face87d79 Merge remote-tracking branch 'origin/main' into local-fpga-w-main 2022-02-19 14:13:17 -08:00
David Biancolin ddbf6e9685 Call fpga_mgmt_init inplace of fpga_pci_init 2022-02-17 17:38:58 +00:00
abejgonzalez ab1df7a293 Change references to dev/master [ci skip] 2022-02-15 11:07:37 -08:00
Abraham Gonzalez 72b51474ea
Merge dev into local-fpga (#933) 2022-02-14 10:50:32 -08:00
abejgonzalez f48ca77bac Merge remote-tracking branch 'origin/local-fpga' into where-to-build 2022-02-12 00:22:47 +00:00
Abraham Gonzalez d0ec8ea544
Merge `dev` into `local-fpga` (#930)
* Implement PerfCounter.identity + CSV Output Format (#876)

* [autocounter] Implement PerfCounter.Identity + CSV format + improved testing

* [midasexamples] Make sure to always wait on unstable peeks

* [midasexamples] Always enable log

* Workaround `rsync_project` `exclude` flag issue (#921)

* Workaround rsync_project exclude issue

* Use `rsync_project` `exclude` option

Co-authored-by: David Biancolin <david.biancolin@gmail.com>
Co-authored-by: David Biancolin <biancolin@berkeley.edu>
2022-02-10 19:05:50 -08:00
Abraham Gonzalez 382ba4eb34
Initial sim/ support for Vitis platform (#918)
* Initial sim/ support for Vitis platform

* Try to make CI work nicely with local-fpga testing

* Fix MIDAS compile | Bump CY

* Remove extra pci_init | Remove extra import
2022-02-10 09:51:48 -08:00
David Biancolin f7980ed076 Merge remote-tracking branch 'origin/dev' into chisel-3.5-published 2022-02-09 22:41:04 +00:00
David Biancolin e89532fb37 [midasexamples] Always enable log 2022-02-09 18:53:33 +00:00
David Biancolin 7243b94301 [midasexamples] Make sure to always wait on unstable peeks 2022-02-09 18:18:43 +00:00
abejgonzalez 792940a0a7 Merge remote-tracking branch 'origin/local-fpga' into where-to-build 2022-02-08 17:28:42 +00:00
abejgonzalez e3fb3b6b28 Bump to Chisel 3.5.1 2022-02-08 09:18:17 -08:00
Abraham Gonzalez 3ed01c35e8
Implement PerfCounter.identity + CSV Output Format (#876) (#925)
* [autocounter] Implement PerfCounter.Identity + CSV format + improved testing

Co-authored-by: David Biancolin <david.biancolin@gmail.com>
2022-02-08 08:22:17 -08:00
abejgonzalez 696568d981 Switch pci_init to mgmt_init 2022-02-08 00:34:41 +00:00
David Biancolin de2ea34bea Merge remote-tracking branch 'origin/dev' into chisel-3.5-published 2022-02-08 00:29:35 +00:00
David Biancolin 5b62907400 Merge remote-tracking branch 'origin/dev' into chisel-3.5-published 2022-02-08 00:23:30 +00:00
David Biancolin a22ba50d69
Implement PerfCounter.identity + CSV Output Format (#876)
* [autocounter] Implement PerfCounter.Identity + CSV format + improved testing
2022-02-04 17:42:28 -08:00
abejgonzalez f7815452db Merge remote-tracking branch 'origin/local-fpga' into where-to-build 2022-02-04 10:54:14 -08:00
David Biancolin a573288f25 [sbt] Use slash syntax for scoping 2022-02-03 04:39:10 +00:00
David Biancolin 934cfbdeaa
Merge pull request #910 from firesim/fix-driver-rc
Fix Driver Return Code
2022-01-26 13:37:38 -08:00
David Biancolin 35e45c9b76 [asserts] Convert assert nodes to stop + print early 2022-01-25 20:46:37 +00:00
David Biancolin bdec8d667d Catch new assertion nodes that would present to Synthesis and fail 2022-01-25 20:45:30 +00:00
David Biancolin 56e853dadd Remove WithAutoILA from default recipes
Users should explicitly mix this in like other debug features
2022-01-25 00:50:58 +00:00
David Biancolin 351054c971 Fix Driver Return Code 2022-01-25 00:29:32 +00:00
David Biancolin d2aad96215
Merge pull request #889 from firesim/fased-reset-intialized-config
Bake-in FASED default runtime configuration into hardware
2022-01-21 16:59:16 -08:00
Abraham Gonzalez 9c778b6cd7 Re-add cloneType to more record types 2022-01-21 16:06:36 -08:00
abejgonzalez 1bf9ece693 Fix warnings and some errors 2022-01-21 14:20:45 -08:00
abejgonzalez beba926290 Merge branch 'chisel-3.5-fixes' into chisel-3.5-published 2022-01-20 20:29:20 -08:00
abejgonzalez 4d36e5ba44 Bump build.sbt for Chisel fix 2022-01-20 20:28:20 -08:00
Abraham Gonzalez 0ed1e42df8
Port to Python3 + Switch to GH-A CI (#878)
* First pass at porting to python3

* Fix import errors | Setup user argcomplete

* Update awstools CLI with user data file | Bump CI to use it

* Wait until launch is complete

* Add userdata as string | Use sudo for machine-launch-script

* Remove execute permissions on machine-launch-script

* Better match on machine-launch-script complete

* Revert python-devel removal

* Use python3 for pytests

* Update more python3 items

* Remove extra shebang

* Port docs to python3 and add to CI

* Add ISCA experiments to CI build check

* Use yum not apt-get

* Add make to doc section

* Bump multilate-loadgen for sysroot fix

* For BW test build don't use shebang

* Fix docs Makefile options

* Fix more doc warnings

* Add first set of regression tests

* Fix raw_input

* Regression bump | Run workload fix

* Add functools to topology

* Fix linux poweroff test (nic still has issues)

* Update regression scripts

* Ignore machine-launch-script.sh in regression area

* Fix map python3 issues

* Get rid of shebangs

* Fix more regressions

* Print machine-launch.log on fail | More clarification on user_data

* Transfer to CI some shorter regressions

* Add a manual approval to fpga based tests

* Fix indentation in config.yml

* Fix test symlink

* Use spot for CI manager instance | Try to use python3 for aws CI container | Version all pip packages

* Make run-ini-api-tests an executable

* Fix CI terminaterunfarm arg

* Add firesim.pem file to manager

* Bump python in CI instance

* Bump pip in CI container

* Remove pip sudo in CI container

* Fix launch script pip version equals

* Ini converted into strings

* Properly pass test_dir to opts in CI

* First pass at GH-A

* Round 2 CI fixes

* Try changes

* Remove CircleCI | Switch to fancy GH-A

* Rename self-host setup script

* Update chmod

* Use - instead of _ for env. vars

* Rename some defs | Remove extra imports

* Small comment updates

* Forgot to import in ini-api tests | Small comment on Fabric timeouts

* Add sys to linux poweroff

* Update linux timeout, fix small imports

* Update comment

* Fix-up workflow-monitor.py

* Avoid excessive logging in run-linux | Terminate spot instances after max-runtime

* Add more workflow-monitor states | Add pty=False to running workloads

* Update CI documentation | Add CI badge [ci skip]

* Don't use spot instances

* Update CI readme

* Determine runner version from remote repo and check for runner setup

* Address PR comments

* Update CI_README location of where to find IPs | Forgot ret_code

* Only run CI on prs/pushes to dev/main/master

* Fix terminate_workflow_instances in init-manager.py

* Cleanup FireSim repo cloning | Only run CI on PRs (since its runs on merge commit)
2022-01-20 11:03:37 -08:00
abejgonzalez 5f27114ade Remove deprecated cloneTypes 2022-01-17 21:43:09 -08:00
abejgonzalez 0a68c1b24a Bump to Chisel 3.5.0 2022-01-17 15:52:09 -08:00
James Dunn 82c5a87c27
Merge pull request #900 from firesim/james-dev
WithAutoILA by default
2021-12-17 12:30:32 -08:00
David Biancolin 111e47a96f Pare down sbt plugins 2021-12-14 23:53:50 +00:00
David Biancolin 09aba77d8b Bump to SBT 1.5.5 2021-12-14 23:53:30 +00:00
David Biancolin ba479a669a Bump to 3.5.0-RC1 2021-12-14 23:53:13 +00:00
Cloud User 431de3104a Appending WithAutoILA mixin to BaseF1Config. Adding note about WithAutoILA and WithILATopWiringTransform to AutoILA docs. 2021-12-14 23:52:25 +00:00
David Biancolin fce4cab59d Bump fix: Ensure added Print statements have names 2021-12-14 22:30:44 +00:00
David Biancolin b77f427faf [midasexamples] Use RC generator to avoid depenency on chipyard 2021-12-14 22:30:35 +00:00
David Biancolin 0cc4a17ed8
Merge pull request #864 from firesim/factor-out-peek-poke
Factor peek/poke out of simif_t
2021-12-14 13:31:29 -08:00
David Biancolin 1e6d786158 Bump to Chisel 3.4.4 2021-12-08 07:01:23 +00:00
David Biancolin 61a329b4e8 Remove Sriracha 2021-12-08 06:48:11 +00:00
David Biancolin 28bb6f2a9b Correct multicycle hold-time constraint 2021-12-06 23:16:26 +00:00
David Biancolin 335a9cc217 Revert "Workaround treadle firrtl-dependency management using sys.prop (#887)"
This reverts commit 626c8e9fc6.
2021-12-02 00:23:55 +00:00
David Biancolin 7591ff12cf Copy in FIRRTL testutils into midas 2021-12-01 23:56:58 +00:00
David Biancolin 395d40b98c [WIP] Used published dependencies for Chisel + FIRRTL 2021-12-01 23:31:33 +00:00
David Biancolin 5e6d32fe66 [fased] Pipeline an input to an LLC assert for new initialization 2021-12-01 20:56:29 +00:00
David Biancolin 7200729adf [fasedtests] Test reset-intialized configuration registers 2021-12-01 20:56:29 +00:00
David Biancolin 2d88f2cbec [fased] Add support for reset-initialized configuration registers 2021-12-01 20:56:29 +00:00
David Biancolin 2ea09c9cc9 [fased] Add assertions for some LBP overflow conditions 2021-12-01 20:56:29 +00:00
David Biancolin a1adec5d44 [fasedtests] Support more general runtime configuration handling in scalatests 2021-12-01 20:56:29 +00:00
David Biancolin 3b65793a25 [fasedtests] Allow the user to specify logfile / waves file
This to match midasexamples
2021-12-01 20:56:29 +00:00
David Biancolin 5aa7129c62 [midasexamples] Factor out some testutils from TutorialSuite 2021-12-01 20:56:29 +00:00
mergify[bot] 321a98f9f7
remove unused(deprecated) APIs. (#892)
(cherry picked from commit 06398cb49a78276599f2a54f877dd30fc967d205)

Co-authored-by: Jiuyang Liu <liu@jiuyang.me>
2021-12-01 12:36:37 -08:00
David Biancolin 626c8e9fc6
Workaround treadle firrtl-dependency management using sys.prop (#887) 2021-12-01 09:39:11 -08:00
David Biancolin 889d49b046
fased: Use right NastiKey to calculate TLError address (#881) 2021-11-19 13:53:58 -08:00
Abraham Gonzalez 962f935790 Copy changes from PR #848 2021-11-18 21:28:49 +00:00
David Biancolin 71c3ecda7d Hack together replace-rtl for vitis 2021-11-14 09:40:23 -08:00
David Biancolin be56c29dc0 Hardcode DRAM channel 0 offsets 2021-11-14 09:38:07 -08:00
David Biancolin e233745faa Comment out debug prints in vitis driver 2021-11-14 09:37:31 -08:00
David Biancolin 93d73a1a2b Change default platform to vitis 2021-11-14 09:36:34 -08:00
David Biancolin 3500497a16
[targetutils] Check annotators expect hardware types where appropriate (#865)
* [targetutils] Check annotators expect hardware types where appropriate

* Update annotations.scala

[ci skip]
2021-11-11 15:25:41 -08:00
David Biancolin 16029e66dd Add first DRAM channel to Vitis Shell 2021-11-11 12:14:42 -08:00
David Biancolin ee5e2d3ebb Update Vitis shell to use Xilinx IP 2021-11-09 16:03:52 -08:00
David Biancolin 8a6ba5f8b8 xilinx:Add black box modules for MMCMs + Axi4 CDC 2021-11-09 16:02:47 -08:00
David Biancolin 5fa8404706 junctions: Inline AXI4<>Nasti assigner modules 2021-11-09 16:01:46 -08:00
David Biancolin e51c3ff69d config: Move desiredHostFrequency out of FireSim lib 2021-11-09 16:00:39 -08:00
David Biancolin 7423958d5d [SimMapping] Let blackboxes propogate through linking 2021-11-05 09:39:20 -07:00
David Biancolin 6935b34285 More cleanly separate init/finish from host IF 2021-10-28 21:01:36 +00:00
David Biancolin 60310c6b8a Factor peek/poke out of simif_t 2021-10-28 16:14:52 +00:00
David Biancolin 1f17b5fc83
Remove all zynq-related code. (#863) 2021-10-27 14:25:02 -04:00
David Biancolin a469544bee
Convert MMIO word addresses -> byte addresses (#857)
* Convert MMIO word addresses -> byte addresses

This makes address handling more uniform across the RTL and driver, leading to fewer points of confusion, and making it simpler to debug waveforms.

* Fix wide peeks and pokes
2021-10-26 16:46:25 -04:00
abejgonzalez c7c514be9a Change top-level io | Don't exit immediately 2021-10-22 15:24:00 -07:00
mergify[bot] 015dc8d784
patching widht-mismatch lints (#860)
(cherry picked from commit b344810d00b9c5ec7e105fdb0f3552ee0c733c7a)

Co-authored-by: rahulb10 <rahul.bodduna@gmail.com>
2021-10-22 13:03:23 -07:00
abejgonzalez 8f1b2a4de1 add everything 2021-10-18 15:53:25 -07:00
David Biancolin 52198f6f16 [stage] Have runtime config generator use the checks phase 2021-10-15 18:06:37 -07:00
David Biancolin 636f356c75 stage: Ban use of -o, -E. Introduce AddDerivedAnnotations Phase 2021-10-15 18:06:37 -07:00
David Biancolin c29acaf619 [stage] Add a checks phase + test 2021-10-15 18:06:37 -07:00
abejgonzalez 77e5dfe3e7 Working Vitis shim 2021-10-11 10:11:47 -07:00
mergify[bot] e4a77639b7
remove property (#847)
(cherry picked from commit 95adc9a8cae268b4c22252d81992c724fc8f8db9)

Co-authored-by: Jiuyang Liu <liu@jiuyang.me>
2021-10-07 22:20:33 -07:00
abejgonzalez 8ed52fb137 Remove some VCS deprecation warnings 2021-10-06 14:49:52 -07:00
abejgonzalez 28825f04c1 Temp 2021-10-06 00:14:41 -07:00
abejgonzalez da70bc3d6d Put comment to avoid whitespace issue 2021-10-05 17:40:28 -07:00
abejgonzalez c6d9e53760 Add vitis support in the driver 2021-10-05 16:45:28 -07:00
David Biancolin 1f015341c2 Emit multi-cycle clock constraints on target domains 2021-09-25 01:49:10 +00:00
David Biancolin d010640a79
Apply suggestions from code review
[ci skip]

Co-authored-by: Tim Snyder <timothy.snyder@sifive.com>
2021-09-15 16:35:50 -07:00
David Biancolin 97d3ed8ad2 Apply suggestions from code review
Co-authored-by: Jack Koenig <jack.koenig3@gmail.com>
2021-09-15 22:28:11 +00:00
David Biancolin 0a6fe70da4 fixup! Add mechanism for hierarchy-mutation robust XDC generation 2021-09-15 22:28:11 +00:00
David Biancolin 977c467167 Add tests for XDC emission 2021-09-15 22:28:11 +00:00
David Biancolin 2aa454b7a5 Add mechanism for hierarchy-mutation robust XDC generation 2021-09-15 22:28:11 +00:00
David Biancolin 7f773ea991 Update AnnotationWiringTransform to support missing sinks 2021-09-09 19:44:14 +00:00
David Biancolin 785f84e62f Remove call to target_reset in firesim_top 2021-09-08 21:22:37 +00:00
David Biancolin 9598f1efe9
Merge pull request #816 from firesim/selective-dram-utilization
Selective DRAM Channel Instantiation
2021-08-27 18:09:24 -04:00
mergify[bot] 9e27ccd2b6
Correct a typo in simif_f1.cc (#821)
(cherry picked from commit 3dd82c248ca30d33f69f52ddca297fa451419317)

Co-authored-by: Felix Yan <felixonmars@archlinux.org>
2021-08-11 16:03:46 -04:00
David Biancolin 1130d03656 Selectively instantiate DRAM controllers based on required memory 2021-08-10 15:26:46 +00:00
David Biancolin aac5710fbe [ci] Add GlobalResetCondition tests to CI 2021-08-06 20:20:54 +00:00
David Biancolin bc23896c56 [midasexamples] Add tests for GlobalResetCondition 2021-08-06 20:20:54 +00:00
David Biancolin 09770c3f94 [midasexamples] Helper func for checking a log is empty 2021-08-06 20:20:54 +00:00
David Biancolin 4914a66905 Implement globalResetCondition support 2021-08-06 20:20:54 +00:00