Commit Graph

73 Commits

Author SHA1 Message Date
209e6bb34f fix(generator): honor minAddress and maxAddress 2025-11-27 14:18:28 +01:00
db74e7549a Update to SystemC 3.0.1
Fix some of the deprecation warnings introduced in the new version such
as the removal of SC_HAS_PROCESS.
2025-10-10 09:39:13 +02:00
7e10f627c0 Fix various compile warnings 2025-09-24 15:58:54 +02:00
6af3dd5b28 Use trace file stem as SystemC module name
There were many reports of users worrying about the warning message.
2025-09-24 15:58:54 +02:00
7e77593f23 Use integer address in decode function again 2025-09-24 15:58:54 +02:00
cc85eefaf6 Add common MemoryManager 2025-09-24 15:58:54 +02:00
Thomas Zimmermann
ce1332ca81 Feature: Rewrote AddressDecoder 2025-09-22 12:00:49 +00:00
11049f6a26 Fix StlPlayer crash at end 2025-08-06 09:37:12 +02:00
565e725cf6 Make dataLength parameter required for initiators 2025-08-06 09:37:12 +02:00
caba023964 Update the simulator readme 2025-08-06 09:35:07 +02:00
8c861d81c9 Decouple initiator clock from memory responses
Previously, the initiators were implicitly coupled to the responses of
the memory, calculating each new initiator clock relatively based on the
time of the BEGIN_RESP phase. This lead to an implicit coupling as
same rounding error of the initiator clock to the memory clock was
applied each time again.

Now, initiators are in itself self-clocked and only send requests based
on backpressure.
2025-08-06 09:35:07 +02:00
marcomoerz
bc8274433a Deserialize std::variant without throwing exception 2025-05-09 16:45:54 +02:00
939fc90f98 Remove hard-coded subdirectory paths for configs
Previously, the subdirectories in which the sub-json files were searched
in were hardcoded. Now, DRAMSys simply searches in the directory of the
base config, making this approach more flexible.
2025-04-15 14:56:35 +02:00
a97b676b92 Remove the concept of a resource directory
The concept of a resource directory was confusing, error-prone and
was only used to specify the directory of the base config json anyway.
Therefore, remove the concept of the resource directory and use the
parent directory of the base config directly.
2025-04-15 14:56:35 +02:00
c1f4655d19 Fix delays in traffic generators 2025-03-26 09:59:51 +01:00
e57ce9cc86 Use controller clock as interface clock in initiators 2025-01-24 15:55:40 +01:00
ba94d9fd84 Have a one cycle END_RESP delay in the standard initiator 2025-01-24 14:43:06 +01:00
007c55e878 Use think delay as miminum END_REQ delay
When the controller accepts requests in the same clock cycle as it
handles them, undeterministic simulations can occur as the outcome
depends on if the new request is accepted before the controllerMethod
is called or not.

Therefore, a minimum delay of one clock cylce should be used to always
handle request only in the next clock cycle, removing the disambiguity.
2025-01-24 14:18:39 +01:00
d71e649447 Fix the verification of generator parameters
Also, clamp the read write ratio instead of generating an error
2025-01-14 14:55:11 +01:00
83cc41e318 Minor refactorings of CMakeList files 2025-01-09 08:12:49 +00:00
6d6c8c595f Clean up private/public linking 2024-12-20 17:40:16 +01:00
ca9ef16d0d Remove unnecessary project() calls
project() should only be called if the subdirectory, in fact, can be
built standalone.
2024-12-20 17:40:15 +01:00
e1b8bbf12d Clean up and refactor CMakeLists 2024-12-20 17:40:15 +01:00
a37171c6fd Remove file globs from CMakeLists
Fix build
2024-12-20 17:40:15 +01:00
703ee81d7e Introduce SimulationTime config
Use SimulationTime to forcefully stop simulation at a specified point in
time.
2024-12-10 10:04:59 +01:00
5dd7c22a74 Refactor CMakeLists and GitLab CI/CD pipeline
- Remove nested minimum required to supress warnings.
- Declare SystemC as system library to supress warnings in headers.
- Add a BUILD_SHARED_LIBS option
- Remove hardcoded STATIC in various add_library calls to honor the
  BUILD_SHARED_LIBS option
- Remove _deps/ directory from the build directory in GitLab pipeline
- Remove *.tdb files after test stage in pipeline
- Set Ninja as the default generator for the dev preset and re-enable
  colored diagnostics
2024-06-28 11:07:56 +02:00
59cf73fe9c Clean up public API (DRAMSys.h)
Remove DRAMSysRecordable.h/cpp as the functionality has been incorporated into
DRAMSys.h/cpp. The databaseRecording config is now completely handled by
DRAMSys itself without needing the user of the library to instanciate DRAMSys
or DRAMSysRecordable depending on this config.
2024-02-23 11:54:51 +01:00
454cb00ddb Refactor: remove monolithic configuration class 2024-02-23 11:54:51 +01:00
7b743db820 Add simple benchmark of full DDR3 simulation 2023-12-14 10:04:45 +01:00
692ac5e566 Fix StlPlayer to store real data 2023-08-31 09:34:35 +02:00
c07d09f392 Format all files 2023-08-29 09:26:25 +02:00
a0f93a75e2 Merge develop 2023-08-21 10:01:08 +02:00
Lukas Steiner
962cc5cf30 Merge branch 'bugfix_includes' into 'develop'
Fix includes that cause build errors on some platforms

See merge request ems/astdm/modeling.dram/dram.sys.5!38
2023-08-14 11:36:57 +00:00
Lukas Steiner
766e12fff1 Merge branch 'bugfix/initiator' into 'develop'
Fix a timing issue in the traffic initiator

See merge request ems/astdm/modeling.dram/dram.sys.5!37
2023-08-14 09:14:50 +00:00
a6e1f83570 Remove unnecessary includes from Cache 2023-08-09 16:00:43 +02:00
a064f46413 Fix includes that cause build errors on some platforms 2023-08-03 15:04:39 +02:00
24654be952 Fix a timing issue in the traffic initiator
When the generator clock did not match the memory clock,
the generator always created a constant delay to the
next transaction.

This is not correct as due to rounding, the delay should be
one cycle more or less depending on the current simulation time.
2023-07-27 11:02:45 +02:00
14ecc64ed0 Introduce Simulator class 2023-07-14 14:31:03 +02:00
Lukas Steiner
f3f9f9e8cd Merge branch 'bug/stl_exceptions' into 'develop'
Add checks for empty trace and catch conversion exceptions.

See merge request ems/astdm/modeling.dram/dram.sys.5!30
2023-06-15 14:45:09 +00:00
Lukas Steiner
6e582907c0 Add checks for empty trace and catch conversion exceptions. 2023-06-15 11:32:51 +02:00
20f4f111ac Align next request to initiator clock period 2023-06-15 10:59:29 +02:00
Lukas Steiner
ec731888a3 Remove check to issue first transaction at zero time. 2023-06-12 10:29:25 +02:00
55bbaf632d Fix incorrect copyright disclaimer in Cache 2023-06-09 11:29:35 +02:00
32e828d254 Fix cppcoreguidelines-special-member-functions warnings 2023-06-09 11:29:35 +02:00
a9759f51fa Enable warnings in dev preset and fix them 2023-06-09 11:29:15 +02:00
ad96e3ba14 Apply default clang-tidy fixes 2023-06-09 11:29:12 +02:00
5d8d7c197e Apply clang-tidy readability-* fixes 2023-06-09 11:17:57 +02:00
79a54f11f6 Apply clang-tidy modernize-use-* fixes 2023-06-09 11:17:57 +02:00
Lukas Steiner
71172f9545 Remove old files, move pct to extensions. 2023-05-26 15:39:06 +02:00
Lukas Steiner
b3955d6d02 Update TUK to RPTU. 2023-05-25 15:15:52 +02:00