Compare commits
	
		
			452 Commits
		
	
	
		
			ub_coverag
			...
			478d1d4ac5
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 478d1d4ac5 | |||
| 5f43bb9c0f | |||
| d9706c58f9 | |||
| 45b55d5c24 | |||
| bacc9a8296 | |||
| b6e22e863a | |||
| aad4a27516 | |||
| e6b34cfad9 | |||
| 3fb45df48c | |||
| 3489fd1516 | |||
| 8d199ba7ca | |||
| 30dd1044b0 | |||
| d27cbcc05b | |||
| 020a4d793f | |||
| ed08913f26 | |||
| 17773cf9b1 | |||
| ae71682920 | |||
| 5cfbbbc9ca | |||
| 7d71ebca30 | |||
| 0b7969becf | |||
| 5bb29d2d3a | |||
| 46128e395f | |||
| 3dc80460ac | |||
| 5d9d146aa2 | |||
| a4ac323306 | |||
| 97190a133c | |||
| c09fda3f25 | |||
| 47d7357ed9 | |||
| 78245ec817 | |||
| 4058eed106 | |||
| 1fee44c084 | |||
| 497b1d33d4 | |||
| db0d125651 | |||
| c365d4f822 | |||
| 6ce8eada3e | |||
| 6ee4840d8d | |||
| 2a0899a671 | |||
| c0e557316f | |||
| c4a746d4c8 | |||
| 45e5ab6133 | |||
| 8811f13d1c | |||
| c2056c30f3 | |||
| 3da38170ff | |||
| 5c31d06a58 | |||
| 99e36acbae | |||
| 21ca5aee7a | |||
| c99a7982b7 | |||
| 3d657d42bc | |||
| 8de84ca4be | |||
| fa1c960247 | |||
| ab4a0eeb6e | |||
| cc61e0b476 | |||
| 856e251be4 | |||
| b118b43988 | |||
| e8037b9c27 | |||
| c0bae483c1 | |||
| d7d072bb0b | |||
| d488581e3a | |||
| 97b52b9e05 | |||
| 6dbce5cb23 | |||
| c19e7c6a46 | |||
| bfea2374b4 | |||
| 2825646edc | |||
| c1e0379f7b | |||
| d602c61dfe | |||
| 4b65d31b89 | |||
| bbe7e7525e | |||
| ac23db44cf | |||
| 4964fe3f79 | |||
| bea38f761d | |||
| 405bae926c | |||
| 9c0cb351fe | |||
| 3b6f7b5e83 | |||
| dc8e631824 | |||
| e67306b781 | |||
| f8152e8ca5 | |||
| 2dc4409928 | |||
| 558d5849a6 | |||
| aa69088189 | |||
| 92283be000 | |||
| 73c9934708 | |||
| ff649a9d97 | |||
| 4c2d8f2d97 | |||
| 6e3bbad01b | |||
| ae03038323 | |||
| b8fa095940 | |||
| d4a2e133eb | |||
| 17b8e4a7fc | |||
| ddec62b3a3 | |||
| 5a7ab89f43 | |||
| 36487d1b75 | |||
| c65cf3a804 | |||
| e03001dd91 | |||
| 3d216107d9 | |||
| ff1fe0f1af | |||
| 493b8be2ed | |||
| b347393ff6 | |||
| bdb7cbd36d | |||
| 646452e0ea | |||
| f41056924c | |||
| bc1e82952a | |||
| 03bb12efdb | |||
| 7b6c0291b2 | |||
| bd30872ed3 | |||
| 74abd3032a | |||
| 2e14223e1e | |||
| 4a09f1c634 | |||
| d322c7c9d8 | |||
| bc6eed67e8 | |||
| 57ce6aab92 | |||
| 734522f6c3 | |||
| 9c7b95ae23 | |||
| cf8472f2fc | |||
| cc23e02b89 | |||
| f21461e1ab | |||
| 13094e78ce | |||
| 7bb4c283a3 | |||
| 86f58adaa4 | |||
| 4efcbfbd35 | |||
| ac08908336 | |||
| 60e6fec07d | |||
| 061b21ed51 | |||
| 406cec6d27 | |||
| 95096fe98a | |||
| 5bbdb3bfa2 | |||
| 6c304055bf | |||
| 6ef27d8c58 | |||
| 4c64d076fc | |||
| 538406e9f3 | |||
| 0d5eb6c1ce | |||
| c785b0e33c | |||
| dd47d9d9d1 | |||
| c9ce22379b | |||
| 607aca574c | |||
| 247bed12ee | |||
| b7ee50dc21 | |||
| 417921fc55 | |||
| e0e9a207e8 | |||
| de56a5c5a3 | |||
| 1baed20dbb | |||
| 246fbdefb6 | |||
| afff028374 | |||
| 070f179ca8 | |||
| b157d916cb | |||
| eb98e7525f | |||
| a817b7b47b | |||
| 5545f58f85 | |||
| 11d7a731ce | |||
| 37a47b0f83 | |||
| cbdf6aab01 | |||
| 0050dfd523 | |||
| 262df83e8e | |||
| 5c6732f1ae | |||
| 4c107e03a0 | |||
| 862b852f96 | |||
| 7a70f103f2 | |||
| 9d647b72d7 | |||
| bd23b776bd | |||
| fa79e3f0c9 | |||
| 17f9f06dae | |||
| 8393aa568f | |||
| e4ee3fc7d8 | |||
| 5bc46da768 | |||
| 6c0d7d91aa | |||
| 3c6c0337e5 | |||
| 4bcad78a22 | |||
| 5a121af14a | |||
| e38d3e3b13 | |||
| d4f71de938 | |||
| 6418867a28 | |||
| 8902d96ad4 | |||
| c8d6537fde | |||
| 0690f07fca | |||
| 5e0c19f7a0 | |||
| 940b05e71d | |||
| a9d2b5b564 | |||
| a8c9b5fe18 | |||
| 9b1f8de430 | |||
| d5f5eae880 | |||
| d07614989e | |||
| 614c8702bf | |||
| 5bec3c33b0 | |||
| 9235848c6a | |||
| 4ef49674ec | |||
| a703188c8b | |||
| 864ccd9165 | |||
| b48d2b76d2 | |||
| b1c78c19bd | |||
| eda55ae93e | |||
| bff845d5dc | |||
| 9560956e8d | |||
| fbcabc4fd5 | |||
| edb8c6ef5b | |||
| 9fa17e41e5 | |||
| 6a00ef075d | |||
| 49165b2120 | |||
| 4f67fd47c2 | |||
| 74f8d71645 | |||
| 292bc1d92a | |||
| 4cb8ca3f61 | |||
| 73476e4c90 | |||
| 92d96af651 | |||
| b7c3379e19 | |||
| 5198c5f91b | |||
| b406743206 | |||
| d29c2bca04 | |||
| 5493c3030c | |||
| 2b15c90bc1 | |||
| 31fdf14b23 | |||
| e17e463cf3 | |||
| 4061cde25c | |||
| 20a4706289 | |||
| f85825c3cd | |||
| 5883ef1e8d | |||
| 4c508e218a | |||
| 7e3b296201 | |||
| cd256bbf69 | |||
| 5e35336825 | |||
| 55a0846dc7 | |||
| 6ee7159ee7 | |||
| af015e0fe8 | |||
| b12da49384 | |||
| 79073759d3 | |||
| 2e21148f37 | |||
| ef9f479b43 | |||
| 02169317fd | |||
| dd43191eb3 | |||
| 56ce60318b | |||
| 75935ff9c4 | |||
| d68ad400cc | |||
| a21c59868d | |||
| d8b64a32a8 | |||
| 4c7410c06b | |||
| 32c5bd4989 | |||
| 087a1af261 | |||
| 10db99f130 | |||
| 77dc5b9f52 | |||
| 329818adf3 | |||
| f56cad7148 | |||
| f9082e70d4 | |||
| 3a5d549f46 | |||
| d4eef1060f | |||
| c4460dfeee | |||
| b8645312eb | |||
| e6e3dc3f13 | |||
| cac68ac8c2 | |||
| 97538fce12 | |||
| ca0d7da4fc | |||
| af2473b7a4 | |||
| 02abdbfe7f | |||
| f2cc43c226 | |||
| 78026158d1 | |||
| 70006f7b5f | |||
| 7f04090efe | |||
| 1fad8b6e04 | |||
| 671ab49353 | |||
| e65af50c39 | |||
| 6b9d52ff80 | |||
| bd6a864bc5 | |||
| 46607eb4c2 | |||
| 0b01677bcb | |||
| 033fa1eede | |||
| 1e73127950 | |||
| 1437c3b3e6 | |||
| f7350d7b3d | |||
| 460863d7a1 | |||
| 01b0b2231d | |||
| 33aa2339c8 | |||
| 0529275428 | |||
| 5c9b33f65f | |||
| ef6d996045 | |||
| b4a1e2273f | |||
| 30e67eb0e0 | |||
| d987681e88 | |||
| 060706c61f | |||
| 93d3810a7f | |||
| 1ed5c228bf | |||
| 824700bd1b | |||
| 312cf3c4da | |||
| e2cb1697ec | |||
| bf46e5eec7 | |||
| a7f4e93c1d | |||
| c22e85d30d | |||
| f8306b2473 | |||
| 8c00e89bf5 | |||
| 3ec2934fe1 | |||
| 4bd81ca676 | |||
| 0bdda6182b | |||
| 4e86e71771 | |||
| 76657668fc | |||
| 65a5d6b7c1 | |||
| 4fe8b02f56 | |||
| a933105f08 | |||
| 9341523103 | |||
| 8a9d1e2b46 | |||
| 561bb598f7 | |||
| 255b8e5d71 | |||
| 0d97d02da1 | |||
| ad88a71797 | |||
| 520b4313ae | |||
| c055515f0b | |||
| ccc3253844 | |||
| 6b28548fef | |||
| fb8aabb31c | |||
| 8a51b233ef | |||
| 616ea16991 | |||
| ef1856957a | |||
| d1db9825c9 | |||
| 7cf08b9c7b | |||
| 015f03e312 | |||
| d0b7560c0b | |||
| bc2bf6143b | |||
| 4a911a3bd3 | |||
| 0a49b91436 | |||
| e166fd4b9e | |||
| a4216facfc | |||
| 63faebadc5 | |||
| e5854d1707 | |||
| 5b0b2b1d58 | |||
| a5887d015d | |||
| 8196778453 | |||
| 436ed6ca08 | |||
| e4d1bb1224 | |||
| 76e58eee1c | |||
| 43c1c5be88 | |||
| 151cc8cb7c | |||
| 84ca04427d | |||
| bfbd4ad271 | |||
| 1e5ddbf1cc | |||
| 4a0ad84621 | |||
| 6e0cbcfdd7 | |||
| 1e11b401f8 | |||
| da05ec4478 | |||
| 91a3a35dff | |||
| 6ec8a1b9cb | |||
| 0dee6cc485 | |||
| 0d1b7a5cdb | |||
| a987e1a12f | |||
| 8da2a7881b | |||
| 5c908a29f5 | |||
| 20ae2af4e5 | |||
| cb6af695b9 | |||
| 0fd9c94067 | |||
| 41116a975e | |||
| 17241844f8 | |||
| fb12440c83 | |||
| 2c8cc745c8 | |||
| f0bdfbe970 | |||
| 9108da6b4a | |||
| 8dd499a88f | |||
| cc9a94c3b8 | |||
| 9200a3bbef | |||
| 8da5dc278d | |||
| 56435e44ec | |||
| cf7ed3e752 | |||
| 8f1cadfacf | |||
| 4661129b8b | |||
| fd037c1b40 | |||
| 6cec3f1634 | |||
| e4c2d3083b | |||
| 6f1813d153 | |||
| d9986b66c9 | |||
| 1a8566be34 | |||
| b4ac62ab5a | |||
| 60d0cef378 | |||
| 933747abb7 | |||
| d1fdd972e0 | |||
| a51173c4a8 | |||
| 92d3c75db0 | |||
| a66d15e69e | |||
| 4bcf6ebc08 | |||
| f5d4598162 | |||
| 74e08ae011 | |||
| 34dd7db4fe | |||
| 20cf5796ad | |||
| 64e55dc7d5 | |||
| aa2fc8c99b | |||
| 80f8da4e31 | |||
| 8564228d46 | |||
| 9465b2c7e3 | |||
| a02492db51 | |||
| 5ed197ef1b | |||
| 825e2afd4d | |||
| 9ee6d6f09b | |||
| 6d4bc98651 | |||
| 4dc6de3625 | |||
| 47e6582498 | |||
| fe0e4571ec | |||
| c2484b8ec8 | |||
| 557829a975 | |||
| 6c47979039 | |||
| 69131bb324 | |||
| 40d93d5df4 | |||
| 41f1b30d42 | |||
| 0f9deb24c7 | |||
| 6566148975 | |||
| 1ed351f199 | |||
| b5d154c04d | |||
| 28da255535 | |||
| d7ef4b4728 | |||
| bf3e5fab4d | |||
| 0a931d4f0f | |||
| c87b68e006 | |||
| d3fab7306c | |||
| 6beef03e5f | |||
| 705e100bb0 | |||
| f829d18635 | |||
| 42f8642234 | |||
| f84ada1347 | |||
| e95a5782ce | |||
| da76464bd2 | |||
| 7e45a0afe2 | |||
| ba8be555ec | |||
| 91e2329abb | |||
| cdae9e75f8 | |||
| f13ac8e652 | |||
| 4b0c42c1bf | |||
| 3dc98ed21e | |||
| c15fef05d0 | |||
| d2ca747507 | |||
| 4619016f01 | |||
| 248cb2ac21 | |||
| b5d6a0e4d3 | |||
| 9523b275a6 | |||
| b64ac814c1 | |||
| db3a373abb | |||
| c62a633685 | |||
| 300e3d86d6 | |||
| e62a67cfdb | |||
| c842327546 | |||
| dd483ccc22 | |||
| e7a84e2afe | |||
| e9baa5be0f | |||
| f0bce2fc13 | |||
| 48d925a229 | |||
| fda630a893 | |||
| 81aa30224b | |||
| ec831d2da1 | |||
| cdf6954ee5 | |||
| 2d8acfdbe1 | |||
| aed35a1c25 | |||
| c4a6a77002 | |||
| 552a4a1be6 | |||
| 1781adc5c7 | |||
| 04ebd82f18 | |||
| 8200b5d948 | |||
| d0cae79b35 | |||
| 7ccc443ee4 | |||
| 8e8ca9e2e7 | |||
| d92fa7813e | |||
| 9659d17496 | |||
| 163d9406d1 | 
							
								
								
									
										96
									
								
								.clang-format
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								.clang-format
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,96 @@
 | 
			
		||||
Language:        Cpp
 | 
			
		||||
# BasedOnStyle:  LLVM
 | 
			
		||||
# should be in line with IndentWidth
 | 
			
		||||
AccessModifierOffset: -4
 | 
			
		||||
AlignAfterOpenBracket: Align
 | 
			
		||||
AlignConsecutiveAssignments: false
 | 
			
		||||
AlignConsecutiveDeclarations: false
 | 
			
		||||
AlignEscapedNewlinesLeft: false
 | 
			
		||||
AlignOperands:   true
 | 
			
		||||
AlignTrailingComments: true
 | 
			
		||||
AllowAllParametersOfDeclarationOnNextLine: true
 | 
			
		||||
AllowShortBlocksOnASingleLine: false
 | 
			
		||||
AllowShortCaseLabelsOnASingleLine: false
 | 
			
		||||
AllowShortFunctionsOnASingleLine: All
 | 
			
		||||
AllowShortIfStatementsOnASingleLine: false
 | 
			
		||||
AllowShortLoopsOnASingleLine: false
 | 
			
		||||
AlwaysBreakAfterDefinitionReturnType: None
 | 
			
		||||
AlwaysBreakAfterReturnType: None
 | 
			
		||||
AlwaysBreakBeforeMultilineStrings: false
 | 
			
		||||
AlwaysBreakTemplateDeclarations: false
 | 
			
		||||
BinPackArguments: true
 | 
			
		||||
BinPackParameters: true
 | 
			
		||||
BraceWrapping:   
 | 
			
		||||
  AfterClass:      false
 | 
			
		||||
  AfterControlStatement: false
 | 
			
		||||
  AfterEnum:       false
 | 
			
		||||
  AfterFunction:   false
 | 
			
		||||
  AfterNamespace:  false
 | 
			
		||||
  AfterObjCDeclaration: false
 | 
			
		||||
  AfterStruct:     false
 | 
			
		||||
  AfterUnion:      false
 | 
			
		||||
  BeforeCatch:     false
 | 
			
		||||
  BeforeElse:      false
 | 
			
		||||
  IndentBraces:    false
 | 
			
		||||
BreakBeforeBinaryOperators: None
 | 
			
		||||
BreakBeforeBraces: Attach
 | 
			
		||||
BreakBeforeTernaryOperators: true
 | 
			
		||||
BreakConstructorInitializersBeforeComma: true
 | 
			
		||||
BreakAfterJavaFieldAnnotations: false
 | 
			
		||||
BreakStringLiterals: true
 | 
			
		||||
ColumnLimit:     140
 | 
			
		||||
CommentPragmas:  '^( IWYU pragma:| @suppress)'
 | 
			
		||||
ConstructorInitializerAllOnOneLineOrOnePerLine: false
 | 
			
		||||
ConstructorInitializerIndentWidth: 0
 | 
			
		||||
ContinuationIndentWidth: 4
 | 
			
		||||
Cpp11BracedListStyle: true
 | 
			
		||||
DerivePointerAlignment: false
 | 
			
		||||
DisableFormat:   false
 | 
			
		||||
ExperimentalAutoDetectBinPacking: false
 | 
			
		||||
ForEachMacros:   [ foreach, Q_FOREACH, BOOST_FOREACH ]
 | 
			
		||||
IncludeCategories: 
 | 
			
		||||
  - Regex:           '^"(llvm|llvm-c|clang|clang-c)/'
 | 
			
		||||
    Priority:        2
 | 
			
		||||
  - Regex:           '^(<|"(gtest|isl|json)/)'
 | 
			
		||||
    Priority:        3
 | 
			
		||||
  - Regex:           '.*'
 | 
			
		||||
    Priority:        1
 | 
			
		||||
IncludeIsMainRegex: '$'
 | 
			
		||||
IndentCaseLabels: false
 | 
			
		||||
IndentWidth:     4
 | 
			
		||||
IndentWrappedFunctionNames: false
 | 
			
		||||
JavaScriptQuotes: Leave
 | 
			
		||||
JavaScriptWrapImports: true
 | 
			
		||||
KeepEmptyLinesAtTheStartOfBlocks: true
 | 
			
		||||
MacroBlockBegin: ''
 | 
			
		||||
MacroBlockEnd:   ''
 | 
			
		||||
MaxEmptyLinesToKeep: 1
 | 
			
		||||
NamespaceIndentation: None
 | 
			
		||||
ObjCBlockIndentWidth: 2
 | 
			
		||||
ObjCSpaceAfterProperty: false
 | 
			
		||||
ObjCSpaceBeforeProtocolList: true
 | 
			
		||||
PenaltyBreakBeforeFirstCallParameter: 19
 | 
			
		||||
PenaltyBreakComment: 300
 | 
			
		||||
PenaltyBreakFirstLessLess: 120
 | 
			
		||||
PenaltyBreakString: 1000
 | 
			
		||||
PenaltyExcessCharacter: 1000000
 | 
			
		||||
PenaltyReturnTypeOnItsOwnLine: 60
 | 
			
		||||
PointerAlignment: Left
 | 
			
		||||
ReflowComments:  true
 | 
			
		||||
SortIncludes:    true
 | 
			
		||||
SpaceAfterCStyleCast: false
 | 
			
		||||
SpaceAfterTemplateKeyword: true
 | 
			
		||||
SpaceBeforeAssignmentOperators: true
 | 
			
		||||
SpaceBeforeParens: Never
 | 
			
		||||
SpaceInEmptyParentheses: false
 | 
			
		||||
SpacesBeforeTrailingComments: 1
 | 
			
		||||
SpacesInAngles:  false
 | 
			
		||||
SpacesInContainerLiterals: true
 | 
			
		||||
SpacesInCStyleCastParentheses: false
 | 
			
		||||
SpacesInParentheses: false
 | 
			
		||||
SpacesInSquareBrackets: false
 | 
			
		||||
Standard:        Cpp11
 | 
			
		||||
TabWidth:        4
 | 
			
		||||
UseTab:          Never
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										163
									
								
								.cproject
									
									
									
									
									
								
							
							
						
						
									
										163
									
								
								.cproject
									
									
									
									
									
								
							@@ -14,11 +14,14 @@
 | 
			
		||||
			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
 | 
			
		||||
				<configuration buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.1336041151" name="Debug" optionalBuildProperties="" parent="org.eclipse.cdt.build.core.emptycfg">
 | 
			
		||||
					<folderInfo id="cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914" name="/" resourcePath="">
 | 
			
		||||
						<toolChain id="cdt.managedbuild.toolchain.gnu.base.1297474963" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
 | 
			
		||||
						<toolChain id="cdt.managedbuild.toolchain.gnu.base.1297474963" name="Linux GCC" nonInternalBuilderId="cmake4eclipse.mbs.builder" superClass="cdt.managedbuild.toolchain.gnu.base">
 | 
			
		||||
							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="cdt.managedbuild.target.gnu.platform.base.1141103737" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
 | 
			
		||||
							<builder buildPath="/TGC-ISS/build/Debug" id="de.marw.cdt.cmake.core.genscriptbuilder.1100382234" keepEnvironmentInBuildfile="false" name="CMake Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="de.marw.cdt.cmake.core.genscriptbuilder"/>
 | 
			
		||||
							<builder buildPath="/TGC-ISS/build/Debug" id="cmake4eclipse.mbs.builder.1295402556" keepEnvironmentInBuildfile="false" name="CMake Builder" superClass="cmake4eclipse.mbs.builder"/>
 | 
			
		||||
							<tool id="cdt.managedbuild.tool.gnu.archiver.base.740869785" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
 | 
			
		||||
							<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1934077203" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
 | 
			
		||||
								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.preprocessor.def.1599133325" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false" valueType="definedSymbols">
 | 
			
		||||
									<listOptionValue builtIn="false" value="CWR_SYSTEMC=1"/>
 | 
			
		||||
								</option>
 | 
			
		||||
								<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.17118862" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
 | 
			
		||||
							</tool>
 | 
			
		||||
							<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1699395860" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
 | 
			
		||||
@@ -42,10 +45,135 @@
 | 
			
		||||
			<storageModule buildDir="build/${ConfigName}" moduleId="de.marw.cdt.cmake.core.settings">
 | 
			
		||||
				<options/>
 | 
			
		||||
				<defs>
 | 
			
		||||
					<def name="ENABLE_CODEGEN" type="BOOL" val="ON"/>
 | 
			
		||||
					<def name="CMAKE_BUILD_TYPE" type="STRING" val="${ConfigName}"/>
 | 
			
		||||
				</defs>
 | 
			
		||||
			</storageModule>
 | 
			
		||||
			<storageModule buildDir="build/${ConfigName}" dirtyTs="1698593487517" moduleId="de.marw.cmake4eclipse.mbs.settings">
 | 
			
		||||
				<options/>
 | 
			
		||||
				<defs>
 | 
			
		||||
					<def name="CMAKE_BUILD_TYPE" type="STRING" val="Debug"/>
 | 
			
		||||
					<def name="CMAKE_INSTALL_PREFIX" type="FILEPATH" val="${ProjDirPath}/install"/>
 | 
			
		||||
					<def name="WITH_TCC" type="BOOL" val="ON"/>
 | 
			
		||||
					<def name="BUILD_COMMON_FW" type="BOOL" val="ON"/>
 | 
			
		||||
					<def name="ENABLE_CLANG_TIDY" type="BOOL" val="ON"/>
 | 
			
		||||
				</defs>
 | 
			
		||||
			</storageModule>
 | 
			
		||||
		</cconfiguration>
 | 
			
		||||
		<cconfiguration id="cdt.managedbuild.toolchain.gnu.base.1336041151.1436777338">
 | 
			
		||||
			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.base.1336041151.1436777338" moduleId="org.eclipse.cdt.core.settings" name="Debug-PA">
 | 
			
		||||
				<externalSettings/>
 | 
			
		||||
				<extensions>
 | 
			
		||||
					<extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
 | 
			
		||||
					<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 | 
			
		||||
					<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 | 
			
		||||
					<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 | 
			
		||||
				</extensions>
 | 
			
		||||
			</storageModule>
 | 
			
		||||
			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
 | 
			
		||||
				<configuration buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.1336041151.1436777338" name="Debug-PA" optionalBuildProperties="" parent="org.eclipse.cdt.build.core.emptycfg">
 | 
			
		||||
					<folderInfo id="cdt.managedbuild.toolchain.gnu.base.1336041151.1436777338." name="/" resourcePath="">
 | 
			
		||||
						<toolChain id="cdt.managedbuild.toolchain.gnu.base.1293780030" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
 | 
			
		||||
							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="cdt.managedbuild.target.gnu.platform.base.1970512769" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
 | 
			
		||||
							<builder buildPath="/TGC-ISS/_build/Debug-PA" id="cmake4eclipse.mbs.builder.928900702" keepEnvironmentInBuildfile="false" name="CMake Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cmake4eclipse.mbs.builder"/>
 | 
			
		||||
							<tool id="cdt.managedbuild.tool.gnu.archiver.base.207730824" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
 | 
			
		||||
							<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1262643605" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
 | 
			
		||||
								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.preprocessor.def.766346102" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false" valueType="definedSymbols">
 | 
			
		||||
									<listOptionValue builtIn="false" value="CWR_SYSTEMC=1"/>
 | 
			
		||||
								</option>
 | 
			
		||||
								<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1887588287" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
 | 
			
		||||
							</tool>
 | 
			
		||||
							<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.934550669" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
 | 
			
		||||
								<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.435160258" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
 | 
			
		||||
							</tool>
 | 
			
		||||
							<tool id="cdt.managedbuild.tool.gnu.c.linker.base.1246571083" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
 | 
			
		||||
							<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1000595204" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base">
 | 
			
		||||
								<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1443403714" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
 | 
			
		||||
									<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
 | 
			
		||||
									<additionalInput kind="additionalinput" paths="$(LIBS)"/>
 | 
			
		||||
								</inputType>
 | 
			
		||||
							</tool>
 | 
			
		||||
							<tool id="cdt.managedbuild.tool.gnu.assembler.base.1058800350" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
 | 
			
		||||
								<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1915245436" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
 | 
			
		||||
							</tool>
 | 
			
		||||
						</toolChain>
 | 
			
		||||
					</folderInfo>
 | 
			
		||||
				</configuration>
 | 
			
		||||
			</storageModule>
 | 
			
		||||
			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
 | 
			
		||||
			<storageModule buildDir="build/${ConfigName}" moduleId="de.marw.cdt.cmake.core.settings">
 | 
			
		||||
				<options/>
 | 
			
		||||
				<defs>
 | 
			
		||||
					<def name="CMAKE_BUILD_TYPE" type="STRING" val="${ConfigName}"/>
 | 
			
		||||
				</defs>
 | 
			
		||||
			</storageModule>
 | 
			
		||||
			<storageModule dirtyTs="1681455316836" moduleId="de.marw.cmake4eclipse.mbs.settings">
 | 
			
		||||
				<options/>
 | 
			
		||||
				<defs>
 | 
			
		||||
					<def name="CMAKE_BUILD_TYPE" type="STRING" val="Debug"/>
 | 
			
		||||
					<def name="USE_CWR_SYSTEMC" type="BOOL" val="ON"/>
 | 
			
		||||
					<def name="BUILD_SHARED_LIBS" type="BOOL" val="ON"/>
 | 
			
		||||
					<def name="CMAKE_INSTALL_PREFIX" type="FILEPATH" val="${ProjDirPath}/install"/>
 | 
			
		||||
					<def name="FW_BUILD" type="BOOL" val="ON"/>
 | 
			
		||||
				</defs>
 | 
			
		||||
			</storageModule>
 | 
			
		||||
		</cconfiguration>
 | 
			
		||||
		<cconfiguration id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382">
 | 
			
		||||
			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382" moduleId="org.eclipse.cdt.core.settings" name="RelWithDebInfo">
 | 
			
		||||
				<externalSettings/>
 | 
			
		||||
				<extensions>
 | 
			
		||||
					<extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
 | 
			
		||||
					<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 | 
			
		||||
					<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 | 
			
		||||
					<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 | 
			
		||||
				</extensions>
 | 
			
		||||
			</storageModule>
 | 
			
		||||
			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
 | 
			
		||||
				<configuration artifactName="${ProjName}" buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382" name="RelWithDebInfo" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=" parent="org.eclipse.cdt.build.core.emptycfg">
 | 
			
		||||
					<folderInfo id="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382." name="/" resourcePath="">
 | 
			
		||||
						<toolChain id="cdt.managedbuild.toolchain.gnu.base.1009994445" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
 | 
			
		||||
							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="cdt.managedbuild.target.gnu.platform.base.1023431687" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
 | 
			
		||||
							<builder buildPath="/TGC-ISS/_build/Debug" id="cmake4eclipse.mbs.builder.87414385" keepEnvironmentInBuildfile="false" name="CMake Builder" parallelBuildOn="true" parallelizationNumber="unlimited" superClass="cmake4eclipse.mbs.builder"/>
 | 
			
		||||
							<tool id="cdt.managedbuild.tool.gnu.archiver.base.40272694" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
 | 
			
		||||
							<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.288344887" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
 | 
			
		||||
								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="gnu.cpp.compiler.option.preprocessor.def.1881910565" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false" valueType="definedSymbols">
 | 
			
		||||
									<listOptionValue builtIn="false" value="CWR_SYSTEMC=1"/>
 | 
			
		||||
								</option>
 | 
			
		||||
								<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1745748578" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
 | 
			
		||||
							</tool>
 | 
			
		||||
							<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1398015713" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
 | 
			
		||||
								<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1810687689" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
 | 
			
		||||
							</tool>
 | 
			
		||||
							<tool id="cdt.managedbuild.tool.gnu.c.linker.base.120562679" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
 | 
			
		||||
							<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1158166201" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base">
 | 
			
		||||
								<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.120238241" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
 | 
			
		||||
									<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
 | 
			
		||||
									<additionalInput kind="additionalinput" paths="$(LIBS)"/>
 | 
			
		||||
								</inputType>
 | 
			
		||||
							</tool>
 | 
			
		||||
							<tool id="cdt.managedbuild.tool.gnu.assembler.base.1253632883" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
 | 
			
		||||
								<inputType id="cdt.managedbuild.tool.gnu.assembler.input.502601048" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
 | 
			
		||||
							</tool>
 | 
			
		||||
						</toolChain>
 | 
			
		||||
					</folderInfo>
 | 
			
		||||
				</configuration>
 | 
			
		||||
			</storageModule>
 | 
			
		||||
			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
 | 
			
		||||
			<storageModule buildDir="build/${ConfigName}" moduleId="de.marw.cdt.cmake.core.settings">
 | 
			
		||||
				<options/>
 | 
			
		||||
				<defs>
 | 
			
		||||
					<def name="CMAKE_BUILD_TYPE" type="STRING" val="${ConfigName}"/>
 | 
			
		||||
				</defs>
 | 
			
		||||
			</storageModule>
 | 
			
		||||
			<storageModule buildDir="build/${ConfigName}" dirtyTs="1698593290265" moduleId="de.marw.cmake4eclipse.mbs.settings">
 | 
			
		||||
				<options/>
 | 
			
		||||
				<defs>
 | 
			
		||||
					<def name="CMAKE_BUILD_TYPE" type="STRING" val="RelWithDebInfo"/>
 | 
			
		||||
					<def name="CMAKE_INSTALL_PREFIX" type="FILEPATH" val="${ProjDirPath}/install"/>
 | 
			
		||||
					<def name="WITH_TCC" type="BOOL" val="ON"/>
 | 
			
		||||
					<def name="FW_BUILD" type="BOOL" val="ON"/>
 | 
			
		||||
					<def name="ENABLE_CLANG_TIDY" type="BOOL" val="ON"/>
 | 
			
		||||
				</defs>
 | 
			
		||||
			</storageModule>
 | 
			
		||||
		</cconfiguration>
 | 
			
		||||
	</storageModule>
 | 
			
		||||
	<storageModule moduleId="cdtBuildSystem" version="4.0.0">
 | 
			
		||||
@@ -53,6 +181,10 @@
 | 
			
		||||
	</storageModule>
 | 
			
		||||
	<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
 | 
			
		||||
	<storageModule moduleId="refreshScope" versionNumber="2">
 | 
			
		||||
		<configuration configurationName="Debug-PA">
 | 
			
		||||
			<resource resourceType="PROJECT" workspacePath="/TGC-ISS"/>
 | 
			
		||||
		</configuration>
 | 
			
		||||
		<configuration configurationName="RelWithDebInfo"/>
 | 
			
		||||
		<configuration configurationName="Default">
 | 
			
		||||
			<resource resourceType="PROJECT" workspacePath="/TGC-ISS"/>
 | 
			
		||||
		</configuration>
 | 
			
		||||
@@ -60,14 +192,37 @@
 | 
			
		||||
			<resource resourceType="PROJECT" workspacePath="/TGC-ISS"/>
 | 
			
		||||
		</configuration>
 | 
			
		||||
	</storageModule>
 | 
			
		||||
	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
 | 
			
		||||
	<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
 | 
			
		||||
	<storageModule cmakelistsFolder="" moduleId="de.marw.cmake4eclipse.mbs.settings">
 | 
			
		||||
		<targets>
 | 
			
		||||
			<target name=""/>
 | 
			
		||||
		</targets>
 | 
			
		||||
	</storageModule>
 | 
			
		||||
	<storageModule moduleId="scannerConfiguration">
 | 
			
		||||
		<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
 | 
			
		||||
		<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151;cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914;cdt.managedbuild.tool.gnu.c.compiler.base.1699395860;cdt.managedbuild.tool.gnu.c.compiler.input.1583122935">
 | 
			
		||||
			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
 | 
			
		||||
		</scannerConfigBuildInfo>
 | 
			
		||||
		<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382;cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382.;cdt.managedbuild.tool.gnu.cpp.compiler.base.288344887;cdt.managedbuild.tool.gnu.cpp.compiler.input.1745748578">
 | 
			
		||||
			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
 | 
			
		||||
		</scannerConfigBuildInfo>
 | 
			
		||||
		<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151;cdt.managedbuild.toolchain.gnu.base.1336041151.1615713914;cdt.managedbuild.tool.gnu.cpp.compiler.base.1934077203;cdt.managedbuild.tool.gnu.cpp.compiler.input.17118862">
 | 
			
		||||
			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
 | 
			
		||||
		</scannerConfigBuildInfo>
 | 
			
		||||
		<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382;cdt.managedbuild.toolchain.gnu.base.1336041151.1605951382.;cdt.managedbuild.tool.gnu.c.compiler.base.1398015713;cdt.managedbuild.tool.gnu.c.compiler.input.1810687689">
 | 
			
		||||
			<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
 | 
			
		||||
		</scannerConfigBuildInfo>
 | 
			
		||||
	</storageModule>
 | 
			
		||||
	<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
 | 
			
		||||
		<buildTargets>
 | 
			
		||||
			<target name="format" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
 | 
			
		||||
				<buildCommand>make</buildCommand>
 | 
			
		||||
				<buildArguments>$<cmake4eclipse_dyn></buildArguments>
 | 
			
		||||
				<buildTarget>format</buildTarget>
 | 
			
		||||
				<stopOnError>true</stopOnError>
 | 
			
		||||
				<useDefaultCommand>true</useDefaultCommand>
 | 
			
		||||
				<runAllBuilders>true</runAllBuilders>
 | 
			
		||||
			</target>
 | 
			
		||||
		</buildTargets>
 | 
			
		||||
	</storageModule>
 | 
			
		||||
</cproject>
 | 
			
		||||
							
								
								
									
										10
									
								
								.envrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.envrc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
module load ./Modulefile
 | 
			
		||||
distro=`/bin/lsb_release -i -s`
 | 
			
		||||
if [ $distro == "CentOS" ]; then 
 | 
			
		||||
    . /opt/rh/devtoolset-8/enable
 | 
			
		||||
    . /opt/rh/rh-python38/enable
 | 
			
		||||
elif [ $distro == "Rocky" ]; then
 | 
			
		||||
    . /opt/rh/gcc-toolset-11/enable
 | 
			
		||||
fi
 | 
			
		||||
layout python3
 | 
			
		||||
[ -f .envrc.$USER ] && . .envrc.$USER
 | 
			
		||||
							
								
								
									
										23
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +1,24 @@
 | 
			
		||||
/build/
 | 
			
		||||
/Debug/
 | 
			
		||||
.settings
 | 
			
		||||
/.venv*
 | 
			
		||||
/Debug-PA/
 | 
			
		||||
/_build/
 | 
			
		||||
/install/
 | 
			
		||||
/analysis_results
 | 
			
		||||
.vscode
 | 
			
		||||
*.log
 | 
			
		||||
*tcc_jit*.c
 | 
			
		||||
*.disass
 | 
			
		||||
*.dis
 | 
			
		||||
*.objdump
 | 
			
		||||
*.asm
 | 
			
		||||
*.signature
 | 
			
		||||
*.elf
 | 
			
		||||
*.trc
 | 
			
		||||
/*.core_desc
 | 
			
		||||
/fasterDecoding/
 | 
			
		||||
*.ll
 | 
			
		||||
/dbt-rise-plugins
 | 
			
		||||
/.direnv
 | 
			
		||||
/TGC_C_XRB/
 | 
			
		||||
/.envrc.eyck
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										15
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							@@ -1,12 +1,9 @@
 | 
			
		||||
[submodule "scc"]
 | 
			
		||||
	path = scc
 | 
			
		||||
	url = https://github.com/Minres/SystemC-Components.git
 | 
			
		||||
[submodule "tgfs"]
 | 
			
		||||
	path = tgfs
 | 
			
		||||
	url = https://git.minres.com/DBT-RISE/DBT-RISE-TGFS.git
 | 
			
		||||
[submodule "dbt-core"]
 | 
			
		||||
	path = dbt-core
 | 
			
		||||
	url = https://git.minres.com/DBT-RISE/DBT-RISE-Core.git
 | 
			
		||||
[submodule "coredsl"]
 | 
			
		||||
	path = coredsl
 | 
			
		||||
	url = https://git.minres.com/DBT-RISE/CoreDSL.git
 | 
			
		||||
[submodule "dbt-rise-core"]
 | 
			
		||||
	path = dbt-rise-core
 | 
			
		||||
	url = https://github.com/Minres/DBT-RISE-Core.git
 | 
			
		||||
[submodule "dbt-rise-tgc"]
 | 
			
		||||
	path = dbt-rise-tgc
 | 
			
		||||
	url = https://git.minres.com/DBT-RISE/DBT-RISE-TGC.git
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								.project
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								.project
									
									
									
									
									
								
							@@ -30,4 +30,15 @@
 | 
			
		||||
		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
 | 
			
		||||
		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
 | 
			
		||||
	</natures>
 | 
			
		||||
	<filteredResources>
 | 
			
		||||
		<filter>
 | 
			
		||||
			<id>1683227853345</id>
 | 
			
		||||
			<name></name>
 | 
			
		||||
			<type>10</type>
 | 
			
		||||
			<matcher>
 | 
			
		||||
				<id>org.eclipse.ui.ide.multiFilter</id>
 | 
			
		||||
				<arguments>1.0-name-matches-false-false-install</arguments>
 | 
			
		||||
			</matcher>
 | 
			
		||||
		</filter>
 | 
			
		||||
	</filteredResources>
 | 
			
		||||
</projectDescription>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										285
									
								
								CMakeLists.txt
									
									
									
									
									
								
							
							
						
						
									
										285
									
								
								CMakeLists.txt
									
									
									
									
									
								
							@@ -1,65 +1,240 @@
 | 
			
		||||
cmake_minimum_required(VERSION 3.12)
 | 
			
		||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_CURRENT_SOURCE_DIR}/scc/cmake)
 | 
			
		||||
cmake_minimum_required(VERSION 3.20)
 | 
			
		||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/scc/cmake)
 | 
			
		||||
 | 
			
		||||
project(TGFS-ISS VERSION 1.0.0 LANGUAGES CXX)
 | 
			
		||||
project(TGC-ISS VERSION 1.0.0 LANGUAGES CXX)
 | 
			
		||||
 | 
			
		||||
set(CORE_NAME TGC_C CACHE STRING "The core to build the ISS for" )
 | 
			
		||||
set(WITH_LLVM FALSE CACHE BOOL "Build LLVM based backend")
 | 
			
		||||
if(CMAKE_PROJECT_NAME STREQUAL "TGC-ISS")
 | 
			
		||||
    ###########################################################################
 | 
			
		||||
    # stand alone build settings
 | 
			
		||||
    ###########################################################################
 | 
			
		||||
    set(CORE_NAME TGC5C CACHE STRING "The core to build the ISS for" )
 | 
			
		||||
    option(BUILD_COMMON_FW "Enable the automatic download and build of some firmware to run on the ISS" OFF)
 | 
			
		||||
    option(ENABLE_SANITIZER "Enable address sanitizer" OFF)
 | 
			
		||||
    option(ENABLE_CLANG_TIDY "Add clang-tidy and clang-format automatically to builds" OFF)
 | 
			
		||||
    option(WITH_TCC "Build TCC backend" OFF)
 | 
			
		||||
    option(WITH_LLVM "Build LLVM backend" OFF)
 | 
			
		||||
    option(WITH_ASMJIT "Build ASMJIT backend" OFF)
 | 
			
		||||
    
 | 
			
		||||
include(GNUInstallDirs)
 | 
			
		||||
include(Conan)
 | 
			
		||||
    set(CMAKE_CXX_STANDARD 17)
 | 
			
		||||
    set(CMAKE_CXX_STANDARD_REQUIRED ON)
 | 
			
		||||
    set(CMAKE_CXX_EXTENSIONS OFF)
 | 
			
		||||
    set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 | 
			
		||||
    set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
 | 
			
		||||
    set(CMAKE_INSTALL_RPATH "${ORIGIN}")
 | 
			
		||||
    include(CheckCXXCompilerFlag)
 | 
			
		||||
    CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
 | 
			
		||||
    if(COMPILER_SUPPORTS_MARCH_NATIVE)
 | 
			
		||||
        if("${CMAKE_BUILD_TYPE}" STREQUAL "") 
 | 
			
		||||
            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
 | 
			
		||||
        elseif(NOT(${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo"))
 | 
			
		||||
            set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
 | 
			
		||||
        endif()
 | 
			
		||||
    endif()
 | 
			
		||||
    
 | 
			
		||||
set(CMAKE_CXX_STANDARD 14)
 | 
			
		||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
 | 
			
		||||
set(CMAKE_CXX_EXTENSIONS OFF)
 | 
			
		||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 | 
			
		||||
include(CheckCXXCompilerFlag)
 | 
			
		||||
 | 
			
		||||
CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
 | 
			
		||||
if(COMPILER_SUPPORTS_MARCH_NATIVE)
 | 
			
		||||
	if("${CMAKE_BUILD_TYPE}" STREQUAL "") 
 | 
			
		||||
	    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
 | 
			
		||||
	elseif(NOT(${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo"))
 | 
			
		||||
	    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
 | 
			
		||||
	endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
 | 
			
		||||
    set(warnings "-Wall -Wextra -Werror")
 | 
			
		||||
    #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
 | 
			
		||||
    set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
 | 
			
		||||
    set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
 | 
			
		||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
 | 
			
		||||
    set(warnings "/W4 /WX /EHsc")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
setup_conan(TARGETS)
 | 
			
		||||
 | 
			
		||||
# This line finds the boost lib and headers. 
 | 
			
		||||
set(Boost_NO_BOOST_CMAKE ON) #  Don't do a find_package in config mode before searching for a regular boost install.
 | 
			
		||||
set(BOOST_ROOT ${CONAN_BOOST_ROOT})
 | 
			
		||||
find_package(Threads)
 | 
			
		||||
find_package(ZLIB)
 | 
			
		||||
 | 
			
		||||
include(clang-format)
 | 
			
		||||
set(ENABLE_CLANG_TIDY OFF CACHE BOOL "Add clang-tidy automatically to builds")
 | 
			
		||||
if (ENABLE_CLANG_TIDY)
 | 
			
		||||
    find_program (CLANG_TIDY_EXE NAMES "clang-tidy" PATHS /usr/local/opt/llvm/bin )
 | 
			
		||||
    if (CLANG_TIDY_EXE)
 | 
			
		||||
        message(STATUS "clang-tidy found: ${CLANG_TIDY_EXE}")
 | 
			
		||||
        set(CLANG_TIDY_CHECKS "-*,modernize-*")
 | 
			
		||||
        set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_EXE};-checks=${CLANG_TIDY_CHECKS};-header-filter='${CMAKE_SOURCE_DIR}/*';-fix"
 | 
			
		||||
            CACHE STRING "" FORCE)
 | 
			
		||||
    if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
 | 
			
		||||
        set(warnings "-Wall -Wextra -Werror")
 | 
			
		||||
        set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
 | 
			
		||||
        set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
 | 
			
		||||
    elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
 | 
			
		||||
        set(warnings "/W4 /WX /EHsc")
 | 
			
		||||
    endif()
 | 
			
		||||
    if(ENABLE_SANITIZER)
 | 
			
		||||
        set(CMAKE_C_FLAGS             "${CMAKE_C_FLAGS} -fsanitize=address")
 | 
			
		||||
        set(CMAKE_CXX_FLAGS           "${CMAKE_CXX_FLAGS} -fsanitize=address")
 | 
			
		||||
        set(CMAKE_EXE_LINKER_FLAGS    "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
 | 
			
		||||
        set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fsanitize=address")
 | 
			
		||||
    endif()
 | 
			
		||||
    include(GNUInstallDirs)
 | 
			
		||||
    include(ConanInline)
 | 
			
		||||
    if(BUILD_SHARED_LIBS)
 | 
			
		||||
        set(SHARED_FLAG "True")
 | 
			
		||||
    else()
 | 
			
		||||
        message(AUTHOR_WARNING "clang-tidy not found!")
 | 
			
		||||
        set(CMAKE_CXX_CLANG_TIDY "" CACHE STRING "" FORCE) # delete it
 | 
			
		||||
        set(SHARED_FLAG "False")
 | 
			
		||||
    endif()
 | 
			
		||||
    
 | 
			
		||||
    set(CONAN_BOOST_OPTIONS
 | 
			
		||||
    boost:fPIC=True
 | 
			
		||||
    boost:shared=False
 | 
			
		||||
    boost:header_only=False 
 | 
			
		||||
    boost:without_contract=True
 | 
			
		||||
    boost:without_graph=True
 | 
			
		||||
    boost:without_graph_parallel=True
 | 
			
		||||
    boost:without_iostreams=True
 | 
			
		||||
    boost:without_json=True
 | 
			
		||||
    boost:without_locale=True
 | 
			
		||||
    boost:without_log=True
 | 
			
		||||
    boost:without_math=True
 | 
			
		||||
    boost:without_mpi=True
 | 
			
		||||
    boost:without_nowide=True
 | 
			
		||||
    boost:without_python=True
 | 
			
		||||
    boost:without_random=True
 | 
			
		||||
    boost:without_regex=True
 | 
			
		||||
    boost:without_stacktrace=True
 | 
			
		||||
    boost:without_test=True
 | 
			
		||||
    boost:without_timer=True
 | 
			
		||||
    boost:without_type_erasure=True
 | 
			
		||||
    boost:without_wave=True
 | 
			
		||||
    )
 | 
			
		||||
    
 | 
			
		||||
    set(B2_VERSION 4.9.6)
 | 
			
		||||
    set(CM_VERSION 3.20.5)
 | 
			
		||||
    set(LLVM_VERSION 13.0.0)
 | 
			
		||||
    set(CONAN_PACKAGE_LIST 
 | 
			
		||||
        fmt/8.0.1
 | 
			
		||||
        spdlog/1.9.2
 | 
			
		||||
        boost/1.75.0 
 | 
			
		||||
        gsl-lite/0.37.0 
 | 
			
		||||
        elfio/3.12 
 | 
			
		||||
        lz4/1.9.3 
 | 
			
		||||
        yaml-cpp/0.7.0 
 | 
			
		||||
        jsoncpp/1.9.5
 | 
			
		||||
        zlib/1.2.12
 | 
			
		||||
    )
 | 
			
		||||
    set(CONAN_PACKAGE_OPTIONS fmt:header_only=True ${CONAN_BOOST_OPTIONS})
 | 
			
		||||
 | 
			
		||||
    if(WITH_LLVM)
 | 
			
		||||
        list(APPEND CONAN_PACKAGE_LIST llvm-core/${LLVM_VERSION})
 | 
			
		||||
        list(APPEND CONAN_PACKAGE_OPTIONS libiconv:shared=True)
 | 
			
		||||
    endif()
 | 
			
		||||
    if(WITH_ASMJIT)
 | 
			
		||||
        list(APPEND CONAN_PACKAGE_LIST asmjit/cci.20240531)
 | 
			
		||||
        list(APPEND CONAN_PACKAGE_OPTIONS asmjit:shared=False)
 | 
			
		||||
    endif()
 | 
			
		||||
    if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dbt-rise-plugins)
 | 
			
		||||
         list(APPEND CONAN_PACKAGE_OPTIONS lua:compile_as_cpp=False)
 | 
			
		||||
         list(APPEND CONAN_PACKAGE_LIST lua/5.4.3)
 | 
			
		||||
    endif()
 | 
			
		||||
 | 
			
		||||
    conan_check()
 | 
			
		||||
    conan_add_remote(NAME minres URL https://git.minres.com/api/packages/Tooling/conan)
 | 
			
		||||
    ###########################################################################
 | 
			
		||||
    # Boost on CentOS 7 quirks: the b2 of conan-center is build against a newer libstdc++ and therefore does not run
 | 
			
		||||
    # with the oooooold libs on CentOS 7. Therefore we build our own version of b2 if it is not there
 | 
			
		||||
    ###########################################################################
 | 
			
		||||
    find_program(LSB_RELEASE_EXEC lsb_release)
 | 
			
		||||
    if(NOT LSB_RELEASE_EXEC-NOTFOUND)
 | 
			
		||||
        execute_process(COMMAND "${LSB_RELEASE_EXEC}" --short --id OUTPUT_VARIABLE LSB_RELEASE_ID_SHORT OUTPUT_STRIP_TRAILING_WHITESPACE)
 | 
			
		||||
	    if(LSB_RELEASE_ID_SHORT MATCHES "CentOS")
 | 
			
		||||
	        set(B2_META   $ENV{HOME}/.conan/data/b2/${B2_VERSION}/_/_/metadata.json)
 | 
			
		||||
	        set(CM_META   $ENV{HOME}/.conan/data/cmake/${CM_VERSION}/_/_/metadata.json)
 | 
			
		||||
	        set(LLVM_META $ENV{HOME}/.conan/data/llvm-core/${LLVM_VERSION}/_/_/metadata.json)
 | 
			
		||||
	        if(DEFINED ENV{CONAN_USER_HOME})
 | 
			
		||||
                set(B2_META    $ENV{CONAN_USER_HOME}/.conan/data/b2/${B2_VERSION}/_/_/metadata.json)
 | 
			
		||||
                set(CMAKE_META $ENV{CONAN_USER_HOME}/.conan/data/cmake/${CM_VERSION}/_/_/metadata.json)
 | 
			
		||||
	            set(LLVM_META  $ENV{CONAN_USER_HOME}/.conan/data/llvm-core/${LLVM_VERSION}/_/_/metadata.json)
 | 
			
		||||
            endif()
 | 
			
		||||
            if(NOT EXISTS ${B2_META})
 | 
			
		||||
                conan_configure(REQUIRES b2/${B2_VERSION})
 | 
			
		||||
                conan_cmake_autodetect(settings BUILD_TYPE Release)
 | 
			
		||||
                conan_cmake_install(PATH_OR_REFERENCE . BUILD b2 SETTINGS ${settings})
 | 
			
		||||
            endif()
 | 
			
		||||
            if(NOT EXISTS ${CM_META})
 | 
			
		||||
                conan_configure(REQUIRES cmake/${CM_VERSION})
 | 
			
		||||
                conan_cmake_autodetect(settings BUILD_TYPE Release)
 | 
			
		||||
                conan_cmake_install(PATH_OR_REFERENCE . BUILD cmake SETTINGS ${settings})
 | 
			
		||||
            endif()
 | 
			
		||||
            if(NOT EXISTS ${LLVM_META})
 | 
			
		||||
                conan_configure(REQUIRES llvm-core/13.0.0)
 | 
			
		||||
                conan_cmake_autodetect(settings BUILD_TYPE Release)
 | 
			
		||||
                conan_cmake_install(PATH_OR_REFERENCE . BUILD llvm-core SETTINGS ${settings})
 | 
			
		||||
            endif()
 | 
			
		||||
        endif()
 | 
			
		||||
    endif()
 | 
			
		||||
    ###########################################################################
 | 
			
		||||
    # Boost on CentOS 7 quirks end
 | 
			
		||||
    ###########################################################################
 | 
			
		||||
    conan_cmake_configure(REQUIRES ${CONAN_PACKAGE_LIST}
 | 
			
		||||
                          GENERATORS cmake_find_package
 | 
			
		||||
                          OPTIONS ${CONAN_PACKAGE_OPTIONS}
 | 
			
		||||
                          )
 | 
			
		||||
    conan_cmake_autodetect(settings)
 | 
			
		||||
    conan_install()
 | 
			
		||||
    set(CONAN_CMAKE_SILENT_OUTPUT ON)               
 | 
			
		||||
    
 | 
			
		||||
    find_package(fmt)
 | 
			
		||||
    find_package(spdlog)
 | 
			
		||||
    find_package(lz4)
 | 
			
		||||
    find_package(gsl-lite)
 | 
			
		||||
    find_package(yaml-cpp)
 | 
			
		||||
    set(Boost_NO_BOOST_CMAKE ON) #  Don't do a find_package in config mode before searching for a regular boost install.
 | 
			
		||||
    set(BOOST_ROOT ${CONAN_BOOST_ROOT})
 | 
			
		||||
    find_package(Threads)
 | 
			
		||||
    find_package(ZLIB)
 | 
			
		||||
    
 | 
			
		||||
    if(USE_CWR_SYSTEMC)
 | 
			
		||||
        include(SystemCPackage)
 | 
			
		||||
    endif()
 | 
			
		||||
    ###############################################################################
 | 
			
		||||
    # setup clang-format and clang-tidy
 | 
			
		||||
    ###############################################################################
 | 
			
		||||
    if (ENABLE_CLANG_TIDY)
 | 
			
		||||
        set(CLANG_FORMAT_EXCLUDE_PATTERNS "scc" "install")
 | 
			
		||||
        find_package(ClangFormat)
 | 
			
		||||
        find_program (CLANG_TIDY_EXE NAMES "clang-tidy" PATHS /usr/bin )
 | 
			
		||||
        if (CLANG_TIDY_EXE)
 | 
			
		||||
            message(STATUS "clang-tidy found: ${CLANG_TIDY_EXE}")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "-*")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-avoid-bind.PermissiveParameterList")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-loop-convert.*")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-make-shared.")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-make-unique.")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-pass-by-value.*")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-raw-string-literal.*")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-replace-auto-ptr.IncludeStyle")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-replace-disallow-copy-and-assign-macro.MacroName")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-replace-random-shuffle.IncludeStyle")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-auto.*")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-bool-literals.IgnoreMacros")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-default-member-init.*")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-emplace.*")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-equals-default.IgnoreMacros")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-equals-delete.IgnoreMacros")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-nodiscard.ReplacementString")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-noexcept.*")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-nullptr.NullMacros")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-override.*")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-transparent-functors.SafeMode")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},modernize-use-using.IgnoreMacros")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors")
 | 
			
		||||
            #set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},cppcoreguidelines-*")
 | 
			
		||||
            set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},clang-diagnostic-*,clang-analyzer-*")
 | 
			
		||||
            set(DO_CLANG_TIDY "${CLANG_TIDY_EXE};-checks=${CLANG_TIDY_CHECKS};-header-filter='${CMAKE_SOURCE_DIR}/*';-fix"
 | 
			
		||||
                CACHE STRING "" FORCE)
 | 
			
		||||
        else()
 | 
			
		||||
            message(WARNING "clang-tidy not found!")
 | 
			
		||||
            set(CMAKE_CXX_CLANG_TIDY "" CACHE STRING "" FORCE) # delete it
 | 
			
		||||
        endif()
 | 
			
		||||
    endif()
 | 
			
		||||
    
 | 
			
		||||
    if(FW_BUILD)
 | 
			
		||||
        include(FetchContent)
 | 
			
		||||
        set(FETCHCONTENT_BASE_DIR ${CMAKE_CURRENT_BINARY_DIR}/..)
 | 
			
		||||
        FetchContent_Declare(
 | 
			
		||||
              riscvfw
 | 
			
		||||
              GIT_REPOSITORY https://git.minres.com/Firmware/Firmwares.git
 | 
			
		||||
              GIT_TAG        main
 | 
			
		||||
              GIT_SHALLOW OFF
 | 
			
		||||
              UPDATE_DISCONNECTED ON
 | 
			
		||||
        )
 | 
			
		||||
        FetchContent_GetProperties(riscvfw)
 | 
			
		||||
        if(NOT riscvfw_POPULATED)
 | 
			
		||||
              FetchContent_Populate(riscvfw)
 | 
			
		||||
        endif()
 | 
			
		||||
         add_subdirectory(${riscvfw_SOURCE_DIR})
 | 
			
		||||
    endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
include(CodeGen)
 | 
			
		||||
gen_coredsl(${CORE_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/tgfs/gen_input/TGFS.core_desc interp)
 | 
			
		||||
 | 
			
		||||
add_subdirectory(dbt-core)
 | 
			
		||||
add_subdirectory(scc)
 | 
			
		||||
add_subdirectory(tgfs)
 | 
			
		||||
if(CMAKE_PROJECT_NAME STREQUAL "TGC-ISS" AND NOT USE_CWR_SYSTEMC)
 | 
			
		||||
    set(SCC_CMAKE_CONFIG_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/scc)
 | 
			
		||||
    add_subdirectory(scc/src/common)
 | 
			
		||||
else()
 | 
			
		||||
    add_subdirectory(scc)
 | 
			
		||||
endif()
 | 
			
		||||
add_subdirectory(dbt-rise-core)
 | 
			
		||||
add_subdirectory(dbt-rise-tgc)
 | 
			
		||||
if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dbt-rise-plugins)
 | 
			
		||||
    add_subdirectory(dbt-rise-plugins)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
include(CTest)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										113
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,113 @@
 | 
			
		||||
void checkout_project(String repoUrl, String branch = 'develop') {
 | 
			
		||||
    checkout([
 | 
			
		||||
        $class: 'GitSCM',
 | 
			
		||||
        branches: [
 | 
			
		||||
            [name: "*/${branch}"]
 | 
			
		||||
        ],
 | 
			
		||||
        extensions: [
 | 
			
		||||
            [$class: 'CleanBeforeCheckout'],
 | 
			
		||||
            [$class: 'SubmoduleOption', disableSubmodules: false, parentCredentials: true, recursiveSubmodules: true, reference: '', trackingSubmodules: false, shallow: true]
 | 
			
		||||
        ],
 | 
			
		||||
        submoduleCfg: [],
 | 
			
		||||
        userRemoteConfigs: [
 | 
			
		||||
            [credentialsId: 'gitea-jenkins', url: repoUrl]
 | 
			
		||||
        ]
 | 
			
		||||
    ])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pipeline {
 | 
			
		||||
    agent any
 | 
			
		||||
    stages {
 | 
			
		||||
        stage("Checkout and build"){
 | 
			
		||||
            agent {docker { image 'ubuntu-riscv' }}
 | 
			
		||||
            stages{
 | 
			
		||||
                stage("Checkout TGC-Compliance and TGC-GEN"){
 | 
			
		||||
                    steps {
 | 
			
		||||
                        sh 'rm -rf * .??* '
 | 
			
		||||
                        checkout_project("https://git.minres.com/TGFS/TGC-ISS.git", "develop")
 | 
			
		||||
                        dir("TGC-COMPLIANCE"){
 | 
			
		||||
                            checkout_project("https://git.minres.com/TGFS/TGC-COMPLIANCE.git", "master")
 | 
			
		||||
                        }
 | 
			
		||||
                        dir("TGC-GEN"){
 | 
			
		||||
                            checkout_project("https://git.minres.com/TGFS/TGC-GEN.git", "develop")
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                stage("Generate cores and build TGC-ISS"){
 | 
			
		||||
                    steps {
 | 
			
		||||
                        sh '''
 | 
			
		||||
                            for core in TGC5A TGC5B TGC5D TGC5E TGC5F RV32GC; do 
 | 
			
		||||
                                for backend in interp llvm tcc asmjit; do 
 | 
			
		||||
                                    TGC-GEN/scripts/generate_iss.sh -o dbt-rise-tgc/ -c $core -b ${backend} TGC-GEN/CoreDSL/${core}.core_desc
 | 
			
		||||
                                done
 | 
			
		||||
                            done
 | 
			
		||||
                            for core in TGC6B TGC6C TGC6D TGC6E RV64GC; do
 | 
			
		||||
                                for backend in interp llvm asmjit; do 
 | 
			
		||||
                                    TGC-GEN/scripts/generate_iss.sh -o dbt-rise-tgc/ -c $core -b ${backend} TGC-GEN/CoreDSL/${core}.core_desc
 | 
			
		||||
                                done
 | 
			
		||||
                            done
 | 
			
		||||
                            '''
 | 
			
		||||
                        sh 'conan profile new default --detect --force'
 | 
			
		||||
                        sh 'cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DWITH_ASMJIT=ON -DWITH_TCC=ON -DWITH_LLVM=ON'
 | 
			
		||||
                        sh 'cmake --build build -j'
 | 
			
		||||
                        sh 'build/dbt-rise-tgc/tgc-sim --isa ?'
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        stage("Run test suite") {
 | 
			
		||||
            agent {
 | 
			
		||||
                docker { 
 | 
			
		||||
                    image 'git.minres.com/tooling/riscof_sail:latest'
 | 
			
		||||
                    args ' -e CONAN_USER_HOME=/var/jenkins_home/workspace/riscof_sail'
 | 
			
		||||
                } 
 | 
			
		||||
            }
 | 
			
		||||
            stages {
 | 
			
		||||
                stage('ACT 32bit') {
 | 
			
		||||
                    matrix {
 | 
			
		||||
                        axes {
 | 
			
		||||
                            axis {
 | 
			
		||||
                                name 'CORE'
 | 
			
		||||
                                values 'TGC5A', 'TGC5B', 'TGC5C', 'TGC5D', 'TGC5E', 'TGC5F', 'RV32GC'
 | 
			
		||||
                            }
 | 
			
		||||
                            axis {
 | 
			
		||||
                                name 'BACKEND'
 | 
			
		||||
                                values 'interp', 'llvm', 'tcc', 'asmjit'
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        stages {
 | 
			
		||||
                            stage('Run riscof') {
 | 
			
		||||
                                steps {
 | 
			
		||||
                                    sh "mkdir -p ${BACKEND}"
 | 
			
		||||
                                    sh "python3 TGC-COMPLIANCE/run_act.py -core ${CORE} -sim build/dbt-rise-tgc/tgc-sim -w ${BACKEND} --local --backend ${BACKEND}"
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                stage('ACT 64bit') {
 | 
			
		||||
                    matrix {
 | 
			
		||||
                        axes {
 | 
			
		||||
                            axis {
 | 
			
		||||
                                name 'CORE'
 | 
			
		||||
                                    values 'TGC6B', 'TGC6C', 'TGC6D', 'TGC6E', 'RV64GC'
 | 
			
		||||
                            }
 | 
			
		||||
                            axis {
 | 
			
		||||
                                name 'BACKEND'
 | 
			
		||||
                                values 'interp', 'llvm', 'asmjit'
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        stages {
 | 
			
		||||
                            stage('Run riscof') {
 | 
			
		||||
                                steps {
 | 
			
		||||
                                    sh "mkdir -p ${BACKEND}"
 | 
			
		||||
                                    sh "python3 TGC-COMPLIANCE/run_act.py -core ${CORE} -sim build/dbt-rise-tgc/tgc-sim -w ${BACKEND} --local --backend ${BACKEND}"
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										29
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
BSD 3-Clause License
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2016, MINRES Technologies GmbH
 | 
			
		||||
All rights reserved.
 | 
			
		||||
 | 
			
		||||
Redistribution and use in source and binary forms, with or without
 | 
			
		||||
modification, are permitted provided that the following conditions are met:
 | 
			
		||||
 | 
			
		||||
* Redistributions of source code must retain the above copyright notice, this
 | 
			
		||||
  list of conditions and the following disclaimer.
 | 
			
		||||
 | 
			
		||||
* Redistributions in binary form must reproduce the above copyright notice,
 | 
			
		||||
  this list of conditions and the following disclaimer in the documentation
 | 
			
		||||
  and/or other materials provided with the distribution.
 | 
			
		||||
 | 
			
		||||
* Neither the name of the copyright holder nor the names of its
 | 
			
		||||
  contributors may be used to endorse or promote products derived from
 | 
			
		||||
  this software without specific prior written permission.
 | 
			
		||||
 | 
			
		||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
			
		||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
			
		||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | 
			
		||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 | 
			
		||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
			
		||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 | 
			
		||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 | 
			
		||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 | 
			
		||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
			
		||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
							
								
								
									
										19
									
								
								Modulefile
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								Modulefile
									
									
									
									
									
								
							@@ -13,21 +13,10 @@ if { $distro == "CentOS" && ![info exists ::env(PROJECT)] && ![info exists ::env
 | 
			
		||||
    puts stderr     "Don't forget to execute 'scl enable devtoolset-7 bash'"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if {![info exists ::env(PROJECT)] && [file exists $::env(HOME)/.sdkman/candidates/java/11.0.9.hs-adpt/] != 1} { 
 | 
			
		||||
    puts stderr "Please install java via 'sdk install java 11.0.9.hs-adpt'!"
 | 
			
		||||
    prereq java/11.0.9
 | 
			
		||||
} else {
 | 
			
		||||
    prepend-path PATH $::env(HOME)/.sdkman/candidates/java/11.0.9.hs-adpt/bin
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if {![info exists ::env(PROJECT)] && [file exists $::env(HOME)/.sdkman/candidates/maven/3.6.3] != 1} { 
 | 
			
		||||
    puts stderr "Please install mvn via 'sdk install maven 3.6.3'!"
 | 
			
		||||
    prereq maven/3.6.3
 | 
			
		||||
} else {
 | 
			
		||||
    prepend-path PATH $::env(HOME)/.sdkman/candidates/sbt/1.4.4/bin
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module load tools/cmake  tools/gcc-riscv64/9.2.0
 | 
			
		||||
module load tools/utilities
 | 
			
		||||
module load tools/cmake
 | 
			
		||||
module load tools/clang
 | 
			
		||||
module load tools/gcc-riscv64-unknown-elf/13
 | 
			
		||||
 | 
			
		||||
setenv PROJECT TGFS-ISS
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										87
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,87 @@
 | 
			
		||||
# TGC-ISS
 | 
			
		||||
 | 
			
		||||
The ISS for the cores of The Good Folk Series (TGFS) of MINRES.
 | 
			
		||||
 | 
			
		||||
This ISS is based in DBT-RISE, a library to allow rapid ISS creation.
 | 
			
		||||
 | 
			
		||||
## Quick start
 | 
			
		||||
 | 
			
		||||
* you need to have a C++14 capable compiler, make or ninja, python, and cmake installed
 | 
			
		||||
 
 | 
			
		||||
### common setup
 | 
			
		||||
 | 
			
		||||
* install conan.io (see also http://docs.conan.io/en/latest/installation.html):
 | 
			
		||||
  
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  pip3 install --user 'conan<2.0'
 | 
			
		||||
 | 
			
		||||
  ```
 | 
			
		||||
  
 | 
			
		||||
  Another option is to use a Python VENV to isolate the used models from the system.
 | 
			
		||||
  In case of please run:
 | 
			
		||||
  
 | 
			
		||||
  ```sh
 | 
			
		||||
 | 
			
		||||
  python -mvenv .venv
 | 
			
		||||
  source .venv/bin/activate
 | 
			
		||||
  pip3 install conan==1.59
 | 
			
		||||
 | 
			
		||||
  ``` 
 | 
			
		||||
  
 | 
			
		||||
  Using conan for the first time you need to create a profile:
 | 
			
		||||
  
 | 
			
		||||
  ```sh  
 | 
			
		||||
 | 
			
		||||
  conan profile new --detect default
 | 
			
		||||
  conan remote add gitea https://git.minres.com/api/packages/Tooling/conan
 | 
			
		||||
 | 
			
		||||
  ```
 | 
			
		||||
  
 | 
			
		||||
* checkout source from git
 | 
			
		||||
 | 
			
		||||
  ```sh
 | 
			
		||||
 | 
			
		||||
  git clone --recursive -b develop https://git.minres.com/TGFS/TGC-ISS.git
 | 
			
		||||
 | 
			
		||||
  ``` 
 | 
			
		||||
 | 
			
		||||
### Standalone (C++) build
 | 
			
		||||
 | 
			
		||||
* start an out-of-source build:
 | 
			
		||||
  
 | 
			
		||||
  ```
 | 
			
		||||
 | 
			
		||||
  cd TGC-ISS
 | 
			
		||||
  cmake -S . -B build/Debug
 | 
			
		||||
  cmake --build build/Debug -j10
 | 
			
		||||
 | 
			
		||||
  ```
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
### Synopsys Platform Architect build
 | 
			
		||||
 | 
			
		||||
Assuming environment for Platform Architect is properly set up.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
  cd TGC-ISS/
 | 
			
		||||
  export TGFS_INSTALL_ROOT=`pwd`/install
 | 
			
		||||
  export SNPS_ENABLE_MEM_ON_DEMAND_IN_GENERIC_MEM=1
 | 
			
		||||
  source $COWAREHOME/SLS/linux/setup.sh pae
 | 
			
		||||
  export CC=$COWAREHOME/SLS/linux/common/bin/gcc
 | 
			
		||||
  export CXX=$COWAREHOME/SLS/linux/common/bin/g++
 | 
			
		||||
  cmake -S . -B build/PA -DCMAKE_BUILD_TYPE=Debug -DUSE_CWR_SYSTEMC=ON \
 | 
			
		||||
    -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=${TGFS_INSTALL_ROOT}
 | 
			
		||||
  cmake --build build/PA --target install -j16
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
The Synopsys PA installation requirements may vary on your system.
 | 
			
		||||
Now you may change to the directory dbt-rise-tgc/contrib to import the core model
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
cd dbt-rise-tgc/contrib
 | 
			
		||||
pct tgc_import.tcl
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										13
									
								
								build.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								build.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
export TGFS_INSTALL_ROOT=`pwd`/install
 | 
			
		||||
module load tools/pa/T-2022.06
 | 
			
		||||
module load tools/cmake
 | 
			
		||||
export SNPS_ENABLE_MEM_ON_DEMAND_IN_GENERIC_MEM=1
 | 
			
		||||
export CC=$COWAREHOME/common/bin/gcc
 | 
			
		||||
export CXX=$COWAREHOME/common/bin/g++
 | 
			
		||||
cmake -S . -B build/PA -DCMAKE_BUILD_TYPE=Debug -DUSE_CWR_SYSTEMC=ON -DBUILD_SHARED_LIBS=ON \
 | 
			
		||||
    -DCODEGEN=OFF -DCMAKE_INSTALL_PREFIX=${TGFS_INSTALL_ROOT}
 | 
			
		||||
cmake --build build/PA --target install -j16
 | 
			
		||||
#cd dbt-rise-tgc/contrib
 | 
			
		||||
# import the TGC core itself
 | 
			
		||||
#pct tgc_import.tcl
 | 
			
		||||
 | 
			
		||||
@@ -1,110 +0,0 @@
 | 
			
		||||
cmake_minimum_required(VERSION 3.11)
 | 
			
		||||
option(ENABLE_CODEGEN "Enable code generation for supported cores" ON)
 | 
			
		||||
 | 
			
		||||
set(ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/..)
 | 
			
		||||
set(DBT_CORE_TGC_DIR ${ROOT_DIR}/tgfs)
 | 
			
		||||
 | 
			
		||||
#helper to setup code generation and generate outputs
 | 
			
		||||
set(GENERATOR_JAR ${ROOT_DIR}/coredsl/com.minres.coredsl.generator.repository/target/com.minres.coredsl.generator-2.0.0-SNAPSHOT.jar)
 | 
			
		||||
 | 
			
		||||
if(EXISTS ${ROOT_DIR}/coredsl/pom.xml AND NOT EXISTS ${GENERATOR_JAR})
 | 
			
		||||
    execute_process(
 | 
			
		||||
   		COMMAND mvn package
 | 
			
		||||
   		WORKING_DIRECTORY ${ROOT_DIR}/coredsl
 | 
			
		||||
   		OUTPUT_VARIABLE StdOut
 | 
			
		||||
   		ERROR_VARIABLE StdErr
 | 
			
		||||
	    RESULT_VARIABLE Status
 | 
			
		||||
	    ERROR_QUIET)
 | 
			
		||||
    if(Status AND NOT Status EQUAL 0)
 | 
			
		||||
        message(STATUS "mvn package call failed: ${Status}, ${StdOut}, ${StdErr}")
 | 
			
		||||
    endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
set(JAVA_OPTS --add-modules ALL-SYSTEM --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED
 | 
			
		||||
  --add-opens=java.base/java.lang.annotation=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.lang.module=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.math=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.net.spi=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.nio.channels=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.nio.channels.spi=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.nio.charset.spi=ALL-UNNAMED --add-opens=java.base/java.nio.file=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.nio.file.attribute=ALL-UNNAMED --add-opens=java.base/java.nio.file.spi=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.security.acl=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.security.cert=ALL-UNNAMED --add-opens=java.base/java.security.interfaces=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.security.spec=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.text.spi=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.time.chrono=ALL-UNNAMED --add-opens=java.base/java.time.format=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.time.temporal=ALL-UNNAMED --add-opens=java.base/java.time.zone=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
 | 
			
		||||
  --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.util.function=ALL-UNNAMED --add-opens=java.base/java.util.jar=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.util.regex=ALL-UNNAMED --add-opens=java.base/java.util.spi=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.base/java.util.stream=ALL-UNNAMED --add-opens=java.base/java.util.zip=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.datatransfer/java.awt.datatransfer=ALL-UNNAMED --add-opens=java.desktop/java.applet=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.desktop/java.awt.color=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.desktop/java.awt.desktop=ALL-UNNAMED --add-opens=java.desktop/java.awt.dnd=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.desktop/java.awt.dnd.peer=ALL-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.desktop/java.awt.geom=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.desktop/java.awt.im=ALL-UNNAMED --add-opens=java.desktop/java.awt.im.spi=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.desktop/java.awt.image=ALL-UNNAMED --add-opens=java.desktop/java.awt.image.renderable=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.desktop/java.awt.peer=ALL-UNNAMED --add-opens=java.desktop/java.awt.print=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.desktop/java.beans=ALL-UNNAMED --add-opens=java.desktop/java.beans.beancontext=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.instrument/java.lang.instrument=ALL-UNNAMED --add-opens=java.logging/java.util.logging=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.management/java.lang.management=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.rmi/java.rmi=ALL-UNNAMED --add-opens=java.rmi/java.rmi.activation=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.rmi/java.rmi.dgc=ALL-UNNAMED --add-opens=java.rmi/java.rmi.registry=ALL-UNNAMED 
 | 
			
		||||
  --add-opens=java.rmi/java.rmi.server=ALL-UNNAMED --add-opens=java.sql/java.sql=ALL-UNNAMED)
 | 
			
		||||
set(GENERATOR java ${JAVA_OPTS} -jar ${GENERATOR_JAR})
 | 
			
		||||
 | 
			
		||||
set(INPUT_DIR ${DBT_CORE_TGC_DIR}/gen_input)
 | 
			
		||||
set(REPO_DIR ${DBT_CORE_TGC_DIR}/gen_input/CoreDSL-Instruction-Set-Description)
 | 
			
		||||
set(TMPL_DIR ${DBT_CORE_TGC_DIR}/gen_input/templates/)
 | 
			
		||||
 | 
			
		||||
if(ENABLE_CODEGEN AND EXISTS ${GENERATOR_JAR})
 | 
			
		||||
    	macro(gen_coredsl CORE_NAME INPUT_FILE BACKEND)
 | 
			
		||||
            message(STATUS "Adding generation steps for ${CORE_NAME} in ${DBT_CORE_TGC_DIR} for ${BACKEND}")
 | 
			
		||||
            
 | 
			
		||||
    		string(TOUPPER ${BACKEND} BE_UPPER)
 | 
			
		||||
    		string(TOLOWER ${CORE_NAME} CORE_NAMEL)
 | 
			
		||||
 | 
			
		||||
            if(EXISTS ${DBT_CORE_TGC_DIR}/generate.sh AND NOT EXISTS ${DBT_CORE_TGC_DIR}/incl/iss/arch/${CORE_NAMEL}.h)
 | 
			
		||||
                # make sure source file exist initially 
 | 
			
		||||
                execute_process(
 | 
			
		||||
                    COMMAND /bin/bash ${DBT_CORE_TGC_DIR}/../generate.sh $CORE_NAME $BACKEND
 | 
			
		||||
                    WORKING_DIRECTORY ${DBT_CORE_TGC_DIR}/..
 | 
			
		||||
                    RESULT_VARIABLE return_code)
 | 
			
		||||
            endif()
 | 
			
		||||
 | 
			
		||||
    		list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME.h.gtl:${DBT_CORE_TGC_DIR}/incl/iss/arch/${CORE_NAMEL}.h")
 | 
			
		||||
    		list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/CORENAME.cpp.gtl:${DBT_CORE_TGC_DIR}/src/iss/${CORE_NAMEL}.cpp")
 | 
			
		||||
    		list(APPEND ${CORE_NAME}_MAPPING -m "${TMPL_DIR}/${BACKEND}/CORENAME.cpp.gtl:${DBT_CORE_TGC_DIR}/src/vm/interp/vm_${CORE_NAMEL}.cpp")
 | 
			
		||||
    		set(${CORE_NAME}_OUTPUT_FILES ${DBT_CORE_TGC_DIR}/incl/iss/arch/${CORE_NAMEL}.h ${DBT_CORE_TGC_DIR}/src/iss/${CORE_NAMEL}.cpp ${DBT_CORE_TGC_DIR}/src/vm/interp/vm_${CORE_NAMEL}.cpp)
 | 
			
		||||
    		#add_custom_command(
 | 
			
		||||
    		#    COMMAND ${GENERATOR} -b ${BE_UPPER} -c ${CORE_NAME} -r ${REPO_DIR} ${${CORE_NAME}_MAPPING} ${INPUT_FILE}
 | 
			
		||||
    		#    DEPENDS ${GENERATOR_JAR} ${INPUT_FILE} ${TMPL_DIR}/CORENAME.h.gtl ${TMPL_DIR}/CORENAME.cpp.gtl ${TMPL_DIR}/${BACKEND}/CORENAME.cpp.gtl
 | 
			
		||||
    		#    OUTPUT ${${CORE_NAME}_OUTPUT_FILES}
 | 
			
		||||
    		#    COMMENT "Generating code for ${CORE_NAME}."
 | 
			
		||||
    		#    USES_TERMINAL VERBATIM
 | 
			
		||||
    		#)    		
 | 
			
		||||
    		#add_custom_target(${CORE_NAME}_cpp DEPENDS ${${CORE_NAME}_OUTPUT_FILES})
 | 
			
		||||
    		add_custom_target(${CORE_NAME}_cpp
 | 
			
		||||
                COMMAND ${GENERATOR} -b ${BE_UPPER} -c ${CORE_NAME} -r ${REPO_DIR} ${${CORE_NAME}_MAPPING} ${INPUT_FILE}
 | 
			
		||||
                WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
 | 
			
		||||
                COMMENT "Generating ISS sources"
 | 
			
		||||
                BYPRODUCTS ${${CORE_NAME}_OUTPUT_FILES}
 | 
			
		||||
                USES_TERMINAL
 | 
			
		||||
            )
 | 
			
		||||
            execute_process(
 | 
			
		||||
                COMMAND ${GENERATOR} -b ${BE_UPPER} -c ${CORE_NAME} -r ${REPO_DIR} ${${CORE_NAME}_MAPPING} ${INPUT_FILE}
 | 
			
		||||
                WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
 | 
			
		||||
                RESULT_VARIABLE return_code)
 | 
			
		||||
    	endmacro()
 | 
			
		||||
else()
 | 
			
		||||
	macro(gen_coredsl CORE_NAME INPUT_FILE BACKEND)
 | 
			
		||||
		add_custom_target(${CORE_NAME}_cpp)
 | 
			
		||||
        message(STATUS "Not adding generation steps for ${CORE_NAME}(${ENABLE_CODEGEN}, ${GENERATOR_JAR})")
 | 
			
		||||
        if(NOT EXISTS ${GENERATOR_JAR})
 | 
			
		||||
            message(STATUS "CoreDSL Generator ${GENERATOR_JAR} does not exists")
 | 
			
		||||
        endif()
 | 
			
		||||
	endmacro()
 | 
			
		||||
endif()
 | 
			
		||||
@@ -1,16 +0,0 @@
 | 
			
		||||
[requires]
 | 
			
		||||
    fmt/6.1.2
 | 
			
		||||
    zlib/1.2.11
 | 
			
		||||
    boost/1.75.0
 | 
			
		||||
    gsl-lite/0.37.0
 | 
			
		||||
	elfio/3.8
 | 
			
		||||
    tcc/0.9.27
 | 
			
		||||
	
 | 
			
		||||
[generators]
 | 
			
		||||
    cmake
 | 
			
		||||
 | 
			
		||||
[options]
 | 
			
		||||
    boost:fPIC=True
 | 
			
		||||
    boost:shared=False
 | 
			
		||||
    boost:header_only=False
 | 
			
		||||
    fmt:header_only=True
 | 
			
		||||
							
								
								
									
										1
									
								
								coredsl
									
									
									
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								coredsl
									
									
									
									
									
								
							 Submodule coredsl deleted from 62d95f8b3c
									
								
							
							
								
								
									
										1
									
								
								dbt-core
									
									
									
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								dbt-core
									
									
									
									
									
								
							 Submodule dbt-core deleted from 95267382cf
									
								
							
							
								
								
									
										1
									
								
								dbt-rise-core
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								dbt-rise-core
									
									
									
									
									
										Submodule
									
								
							 Submodule dbt-rise-core added at 99cf6823a9
									
								
							
							
								
								
									
										1
									
								
								dbt-rise-tgc
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								dbt-rise-tgc
									
									
									
									
									
										Submodule
									
								
							 Submodule dbt-rise-tgc added at ad60449073
									
								
							
							
								
								
									
										5
									
								
								docs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								docs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
*.log
 | 
			
		||||
*.dis
 | 
			
		||||
*.asm
 | 
			
		||||
*.ll
 | 
			
		||||
*tcc_*
 | 
			
		||||
							
								
								
									
										43
									
								
								docs/offsets.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								docs/offsets.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
X0         (zero) : 0  (0x00)
 | 
			
		||||
X1         (ra)   : 4  (0x04)
 | 
			
		||||
X2         (sp)   : 8  (0x08)
 | 
			
		||||
X3         (gp)   : 12 (0x0c)
 | 
			
		||||
X4         (tp)   : 16 (0x10)
 | 
			
		||||
X5         (t0)   : 20 (0x14)
 | 
			
		||||
X6         (t1)   : 24 (0x18)
 | 
			
		||||
X7         (t2)   : 28 (0x1c)
 | 
			
		||||
X8         (s0/fp): 32 (0x20)
 | 
			
		||||
X9         (s1)   : 36 (0x24)
 | 
			
		||||
X10        (a0)   : 40 (0x28)
 | 
			
		||||
X11        (a1)   : 44 (0x2c)
 | 
			
		||||
X12        (a2)   : 48 (0x30)
 | 
			
		||||
X13        (a3)   : 52 (0x34)
 | 
			
		||||
X14        (a4)   : 56 (0x38)
 | 
			
		||||
X15        (a5)   : 60 (0x3c)
 | 
			
		||||
X16        (a6)   : 64 (0x40)
 | 
			
		||||
X17        (a7)   : 68 (0x44)
 | 
			
		||||
X18        (s2)   : 72 (0x48)
 | 
			
		||||
X19        (s3)   : 76 (0x4c)
 | 
			
		||||
X20        (s4)   : 80 (0x50)
 | 
			
		||||
X21        (s5)   : 84 (0x54)
 | 
			
		||||
X22        (s6)   : 88 (0x58)
 | 
			
		||||
X23        (s7)   : 92 (0x5c)
 | 
			
		||||
X24        (s8)   : 96 (0x60)
 | 
			
		||||
X25        (s9)   : 100 (0x64)
 | 
			
		||||
X26        (s10)  : 104 (0x68)
 | 
			
		||||
X27        (s11)  : 108 (0x6c)
 | 
			
		||||
X28        (t3)   : 112 (0x70)
 | 
			
		||||
X29        (t4)   : 116 (0x74)
 | 
			
		||||
X30        (t5)   : 120 (0x78)
 | 
			
		||||
X31        (t6)   : 124 (0x7c)
 | 
			
		||||
PC                : 128 (0x80)
 | 
			
		||||
NEXT_PC           : 132 (0x84)
 | 
			
		||||
PRIV              : 136 (0x88)
 | 
			
		||||
DPC               : 137 (0x89)
 | 
			
		||||
trap_state        : 141 (0x8d)
 | 
			
		||||
pending_trap      : 145 (0x91)
 | 
			
		||||
icount            : 149 (0x95)
 | 
			
		||||
cycle             : 157 (0x9d)
 | 
			
		||||
instret           : 165 (0xa5)
 | 
			
		||||
instruction       : 173 (0xad)
 | 
			
		||||
last_branch       : 177 (0xb1)
 | 
			
		||||
							
								
								
									
										25
									
								
								generate.sh
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								generate.sh
									
									
									
									
									
								
							@@ -1,25 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
##
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
JAVA_OPTS="--add-modules ALL-SYSTEM --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.annotation=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.module=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.math=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.net.spi=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.nio.channels=ALL-UNNAMED --add-opens=java.base/java.nio.channels.spi=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.nio.charset.spi=ALL-UNNAMED --add-opens=java.base/java.nio.file=ALL-UNNAMED --add-opens=java.base/java.nio.file.attribute=ALL-UNNAMED --add-opens=java.base/java.nio.file.spi=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.security.acl=ALL-UNNAMED --add-opens=java.base/java.security.cert=ALL-UNNAMED --add-opens=java.base/java.security.interfaces=ALL-UNNAMED --add-opens=java.base/java.security.spec=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.text.spi=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.base/java.time.chrono=ALL-UNNAMED --add-opens=java.base/java.time.format=ALL-UNNAMED --add-opens=java.base/java.time.temporal=ALL-UNNAMED --add-opens=java.base/java.time.zone=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED --add-opens=java.base/java.util.function=ALL-UNNAMED --add-opens=java.base/java.util.jar=ALL-UNNAMED --add-opens=java.base/java.util.regex=ALL-UNNAMED --add-opens=java.base/java.util.spi=ALL-UNNAMED --add-opens=java.base/java.util.stream=ALL-UNNAMED --add-opens=java.base/java.util.zip=ALL-UNNAMED --add-opens=java.datatransfer/java.awt.datatransfer=ALL-UNNAMED --add-opens=java.desktop/java.applet=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.desktop/java.awt.color=ALL-UNNAMED --add-opens=java.desktop/java.awt.desktop=ALL-UNNAMED --add-opens=java.desktop/java.awt.dnd=ALL-UNNAMED --add-opens=java.desktop/java.awt.dnd.peer=ALL-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.desktop/java.awt.geom=ALL-UNNAMED --add-opens=java.desktop/java.awt.im=ALL-UNNAMED --add-opens=java.desktop/java.awt.im.spi=ALL-UNNAMED --add-opens=java.desktop/java.awt.image=ALL-UNNAMED --add-opens=java.desktop/java.awt.image.renderable=ALL-UNNAMED --add-opens=java.desktop/java.awt.peer=ALL-UNNAMED --add-opens=java.desktop/java.awt.print=ALL-UNNAMED --add-opens=java.desktop/java.beans=ALL-UNNAMED --add-opens=java.desktop/java.beans.beancontext=ALL-UNNAMED --add-opens=java.instrument/java.lang.instrument=ALL-UNNAMED --add-opens=java.logging/java.util.logging=ALL-UNNAMED --add-opens=java.management/java.lang.management=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.rmi/java.rmi=ALL-UNNAMED --add-opens=java.rmi/java.rmi.activation=ALL-UNNAMED --add-opens=java.rmi/java.rmi.dgc=ALL-UNNAMED --add-opens=java.rmi/java.rmi.registry=ALL-UNNAMED --add-opens=java.rmi/java.rmi.server=ALL-UNNAMED --add-opens=java.sql/java.sql=ALL-UNNAMED"
 | 
			
		||||
 | 
			
		||||
GENERATOR="java $JAVA_OPTS -jar coredsl/com.minres.coredsl.generator.repository/target/com.minres.coredsl.generator-2.0.0-SNAPSHOT.jar "
 | 
			
		||||
 | 
			
		||||
CORE_NAME=$1
 | 
			
		||||
BACKEND=$2
 | 
			
		||||
CORE_NAME_LC=`echo $CORE_NAME | tr '[:upper:]' '[:lower:]' `
 | 
			
		||||
INPUT_FILE=tgfs/gen_input/TGFS.core_desc
 | 
			
		||||
 | 
			
		||||
REPO_DIR=tgfs/gen_input/CoreDSL-Instruction-Set-Description 
 | 
			
		||||
TMPL_DIR=tgfs/gen_input/templates/interp
 | 
			
		||||
 | 
			
		||||
MAPPING=""
 | 
			
		||||
MAPPING="$MAPPING -m ${TMPL_DIR}/CORENAME.h.gtl:tgfs/incl/iss/arch/${CORE_NAME_LC}.h"
 | 
			
		||||
MAPPING="$MAPPING -m ${TMPL_DIR}/CORENAME.cpp.gtl:tgfs/src/iss/${CORE_NAME_LC}.cpp"
 | 
			
		||||
MAPPING="$MAPPING -m ${TMPL_DIR}/vm_CORENAME.cpp.gtl:tgfs/src/vm/${BACKEND}/vm_${CORE_NAME_LC}.cpp"
 | 
			
		||||
 | 
			
		||||
[ -f coredsl/com.minres.coredsl.generator.repository/target/com.minres.coredsl.generator-2.0.0-SNAPSHOT.jar ] || (cd coredsl; mvn package)
 | 
			
		||||
 | 
			
		||||
$GENERATOR -c $CORE_NAME -r $REPO_DIR $MAPPING $INPUT_FILE
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								requirements.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								requirements.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
conan==1.59
 | 
			
		||||
							
								
								
									
										2
									
								
								scc
									
									
									
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										2
									
								
								scc
									
									
									
									
									
								
							 Submodule scc updated: 9919e5a350...2c3c85ad83
									
								
							
							
								
								
									
										75
									
								
								scripts/annotate_addr_to_signature.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								scripts/annotate_addr_to_signature.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,75 @@
 | 
			
		||||
import argparse
 | 
			
		||||
import os
 | 
			
		||||
import subprocess
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_address_from_objdump(elf_file, symbol):
 | 
			
		||||
    result = subprocess.run(
 | 
			
		||||
        ["riscv64-unknown-elf-objdump", "-t", elf_file], capture_output=True, text=True
 | 
			
		||||
    )
 | 
			
		||||
    for line in result.stdout.splitlines():
 | 
			
		||||
        if symbol in line:
 | 
			
		||||
            return int(line.split()[0], 16)
 | 
			
		||||
    return None
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def annotate_dump(signature_file, elf_file):
 | 
			
		||||
    begin_signature = get_address_from_objdump(elf_file, "begin_signature")
 | 
			
		||||
    end_signature = get_address_from_objdump(elf_file, "end_signature")
 | 
			
		||||
 | 
			
		||||
    if begin_signature is None or end_signature is None:
 | 
			
		||||
        print(f"Symbols not found in {elf_file}")
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    address = begin_signature
 | 
			
		||||
    annotated_lines = []
 | 
			
		||||
 | 
			
		||||
    with open(signature_file, "r") as sig_file:
 | 
			
		||||
        for line in sig_file:
 | 
			
		||||
            annotated_lines.append(f"{hex(address)}: {line.strip()}")
 | 
			
		||||
            address += 4
 | 
			
		||||
 | 
			
		||||
    output_file = signature_file + ".annotated"
 | 
			
		||||
    with open(output_file, "w") as out_file:
 | 
			
		||||
        out_file.write("\n".join(annotated_lines))
 | 
			
		||||
    print(f"Annotated file created: {output_file}")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def process_directory(root_dir):
 | 
			
		||||
    for subdir, _, files in os.walk(root_dir):
 | 
			
		||||
        elf_file = None
 | 
			
		||||
        signature_file = None
 | 
			
		||||
 | 
			
		||||
        for file in files:
 | 
			
		||||
            if file.endswith(".elf"):
 | 
			
		||||
                elf_file = os.path.join(subdir, file)
 | 
			
		||||
            elif file.endswith(".signature"):
 | 
			
		||||
                signature_file = os.path.join(subdir, file)
 | 
			
		||||
 | 
			
		||||
        if elf_file and signature_file:
 | 
			
		||||
            annotate_dump(signature_file, elf_file)
 | 
			
		||||
        elif signature_file:
 | 
			
		||||
            print(f"No ELF file found for {signature_file}")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    parser = argparse.ArgumentParser(
 | 
			
		||||
        description="""
 | 
			
		||||
        Annotate memory dumps with addresses. Parses all subdirectories from the given root.
 | 
			
		||||
        Expects a .signature with a corresponding .elf in the same directory.
 | 
			
		||||
        Designed to annotate riscof signatures."""
 | 
			
		||||
    )
 | 
			
		||||
    parser.add_argument(
 | 
			
		||||
        "root_dir", type=str, help="Root directory to search for .signature files"
 | 
			
		||||
    )
 | 
			
		||||
    args = parser.parse_args()
 | 
			
		||||
 | 
			
		||||
    if not os.path.isdir(args.root_dir):
 | 
			
		||||
        print("Invalid root directory")
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    process_directory(args.root_dir)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    main()
 | 
			
		||||
							
								
								
									
										157
									
								
								scripts/create_reg_traces.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										157
									
								
								scripts/create_reg_traces.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,157 @@
 | 
			
		||||
import argparse
 | 
			
		||||
import os
 | 
			
		||||
import shutil
 | 
			
		||||
import subprocess
 | 
			
		||||
from pathlib import Path
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def validate_elf_file(filepath: str) -> str:
 | 
			
		||||
    if not os.path.isfile(filepath):
 | 
			
		||||
        raise argparse.ArgumentTypeError(f"{filepath} is not a valid file.")
 | 
			
		||||
 | 
			
		||||
    # Use the 'file' command to check if it's an ELF file
 | 
			
		||||
    result = subprocess.run(
 | 
			
		||||
        ["file", filepath], capture_output=True, text=True, check=False
 | 
			
		||||
    )
 | 
			
		||||
    if "ELF" not in result.stdout:
 | 
			
		||||
        raise argparse.ArgumentTypeError(f"{filepath} is not a valid ELF file.")
 | 
			
		||||
 | 
			
		||||
    return filepath
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def run_test_and_move_output(elf_file: str, backend: str, isa: str = "tgc5c") -> None:
 | 
			
		||||
    # Call 'test' with the specified backend mode
 | 
			
		||||
    os.chdir(Path(__file__).parent.parent)
 | 
			
		||||
    sim_path = "build/Debug/dbt-rise-tgc/tgc-sim"
 | 
			
		||||
    run_command = [
 | 
			
		||||
        sim_path,
 | 
			
		||||
        "-f",
 | 
			
		||||
        elf_file,
 | 
			
		||||
        "--backend",
 | 
			
		||||
        backend,
 | 
			
		||||
        "--isa",
 | 
			
		||||
        isa,
 | 
			
		||||
        "-p",
 | 
			
		||||
        "build/Debug/dbt-rise-plugins/pctrace/pctrace.so=dbt-rise-tgc/contrib/instr/TGC5C_instr.yaml",
 | 
			
		||||
        "-i",
 | 
			
		||||
        "10000",
 | 
			
		||||
    ]
 | 
			
		||||
    print(f"Running: \n{' '.join(run_command)}")
 | 
			
		||||
    try:
 | 
			
		||||
        subprocess.run(run_command, check=False, timeout=10)
 | 
			
		||||
    except subprocess.TimeoutExpired:
 | 
			
		||||
        print("Execution timed out")
 | 
			
		||||
 | 
			
		||||
    # Move the output.trc file
 | 
			
		||||
    if os.path.exists("output.trc"):
 | 
			
		||||
        shutil.move("output.trc", f"Debug/{backend}.trc")
 | 
			
		||||
    else:
 | 
			
		||||
        print(
 | 
			
		||||
            f"output.trc does not exist after running with backend {backend}, so it cannot be renamed."
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def create_shortened_diff_files(backend: str) -> None:
 | 
			
		||||
    file1_path = "Debug/interp.trc"
 | 
			
		||||
    file2_path = f"Debug/{backend}.trc"
 | 
			
		||||
 | 
			
		||||
    def validate_file(filepath: str) -> str:
 | 
			
		||||
        if not os.path.isfile(filepath):
 | 
			
		||||
            raise ValueError(f"{filepath} is not a valid file.")
 | 
			
		||||
        return filepath
 | 
			
		||||
 | 
			
		||||
    file1_path = validate_file(file1_path)
 | 
			
		||||
    file2_path = validate_file(file2_path)
 | 
			
		||||
 | 
			
		||||
    with open(file1_path, "r", encoding="utf8") as file1, open(
 | 
			
		||||
        file2_path, "r", encoding="utf8"
 | 
			
		||||
    ) as file2:
 | 
			
		||||
        lines1 = file1.readlines()
 | 
			
		||||
        lines2 = file2.readlines()
 | 
			
		||||
 | 
			
		||||
    diff_index = -1
 | 
			
		||||
    for index, (line1, line2) in enumerate(zip(lines1, lines2)):
 | 
			
		||||
        if line1 != line2:
 | 
			
		||||
            diff_index = index
 | 
			
		||||
            break
 | 
			
		||||
 | 
			
		||||
    if diff_index == -1:
 | 
			
		||||
        print("The files are identical.")
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    start_index = max(0, diff_index - 5)
 | 
			
		||||
    end_index = min(len(lines1), diff_index + 6)
 | 
			
		||||
 | 
			
		||||
    shortened_lines1 = lines1[start_index:end_index]
 | 
			
		||||
    shortened_lines2 = lines2[start_index:end_index]
 | 
			
		||||
 | 
			
		||||
    with open("Debug/short_interp.trc", "w", encoding="utf8") as short_file1:
 | 
			
		||||
        short_file1.writelines(shortened_lines1)
 | 
			
		||||
 | 
			
		||||
    with open(f"Debug/short_{backend}.trc", "w", encoding="utf8") as short_file2:
 | 
			
		||||
        short_file2.writelines(shortened_lines2)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def create_disassembly(elf_file_path: str) -> None:
 | 
			
		||||
    def validate_file(filepath: str) -> str:
 | 
			
		||||
        if not os.path.isfile(filepath):
 | 
			
		||||
            raise ValueError(f"{filepath} is not a valid file.")
 | 
			
		||||
        return filepath
 | 
			
		||||
 | 
			
		||||
    elf_file_path = validate_file(elf_file_path)
 | 
			
		||||
 | 
			
		||||
    output_file_path = "Debug/dut.dis"
 | 
			
		||||
    with open(output_file_path, "w", encoding="utf8") as output_file:
 | 
			
		||||
        subprocess.run(
 | 
			
		||||
            [
 | 
			
		||||
                "riscv64-unknown-elf-objdump",
 | 
			
		||||
                "-d",
 | 
			
		||||
                "-Mnumeric",
 | 
			
		||||
                "-Mno-aliases",
 | 
			
		||||
                elf_file_path,
 | 
			
		||||
            ],
 | 
			
		||||
            stdout=output_file,
 | 
			
		||||
            check=True,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main(args: argparse.Namespace) -> None:
 | 
			
		||||
    elf_file = args.elf_file
 | 
			
		||||
    backend = args.backend
 | 
			
		||||
    isa = args.isa
 | 
			
		||||
 | 
			
		||||
    # Set environment variable
 | 
			
		||||
    os.environ["REGDUMP"] = "True"
 | 
			
		||||
 | 
			
		||||
    # Run the tests and move the output files
 | 
			
		||||
    run_test_and_move_output(elf_file, "interp", isa)
 | 
			
		||||
    run_test_and_move_output(elf_file, backend, isa)
 | 
			
		||||
    create_shortened_diff_files(backend)
 | 
			
		||||
    create_disassembly(elf_file)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    # sys.exit(
 | 
			
		||||
    #    "This script needs to be adapted, it assumed to be in a directory named 'Debug'"
 | 
			
		||||
    # )
 | 
			
		||||
    parser = argparse.ArgumentParser(
 | 
			
		||||
        description="Process an ELF file with a specified backend. Generates register traces for interp and the specified backend"
 | 
			
		||||
    )
 | 
			
		||||
    parser.add_argument(
 | 
			
		||||
        "elf_file", type=validate_elf_file, help="The ELF file to be processed."
 | 
			
		||||
    )
 | 
			
		||||
    parser.add_argument(
 | 
			
		||||
        "--backend",
 | 
			
		||||
        type=str,
 | 
			
		||||
        default="asmjit",
 | 
			
		||||
        help="The backend to be used. Default is asmjit.",
 | 
			
		||||
        required=False,
 | 
			
		||||
    )
 | 
			
		||||
    parser.add_argument(
 | 
			
		||||
        "--isa",
 | 
			
		||||
        type=str,
 | 
			
		||||
        default="tgc5c",
 | 
			
		||||
        help="The isa to be used. Default 'tgc5c'",
 | 
			
		||||
        required=False,
 | 
			
		||||
    )
 | 
			
		||||
    main(args=parser.parse_args())
 | 
			
		||||
							
								
								
									
										26
									
								
								scripts/makeJitOutputReadable.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								scripts/makeJitOutputReadable.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
import re
 | 
			
		||||
import os
 | 
			
		||||
'''
 | 
			
		||||
This script takes all files that get dumped by the tcc backend when using the --dump-ir
 | 
			
		||||
option and replaces the Integers of addresses with their hex representation to allow
 | 
			
		||||
for easier debugging.
 | 
			
		||||
'''
 | 
			
		||||
current_dir = os.getcwd()  # Get the current directory
 | 
			
		||||
 | 
			
		||||
files_with_tcc_jit = [file for file in os.listdir(current_dir) if"jit" in file and not file.startswith("readable")]
 | 
			
		||||
 | 
			
		||||
for each in files_with_tcc_jit:  
 | 
			
		||||
    readable_file = f"readable_{each}"
 | 
			
		||||
    if os.path.exists(readable_file):
 | 
			
		||||
        os.remove(readable_file)
 | 
			
		||||
    with open(each, "r") as file:
 | 
			
		||||
        content = file.read()
 | 
			
		||||
for each in files_with_tcc_jit:
 | 
			
		||||
    with open(each, "r") as file:
 | 
			
		||||
        content = file.read()
 | 
			
		||||
 | 
			
		||||
    # Replace numbers ending with "U" by their hex representation
 | 
			
		||||
    content = re.sub(r'\b(\d+)U\b(?=U)?', lambda m: hex(int(m.group(1))), content)
 | 
			
		||||
 | 
			
		||||
    with open(f"readable_{each}", "w") as file:
 | 
			
		||||
        file.write(content)
 | 
			
		||||
							
								
								
									
										91
									
								
								scripts/run_riscv_tests.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										91
									
								
								scripts/run_riscv_tests.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,91 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
##
 | 
			
		||||
 | 
			
		||||
# Absolute path to this script, e.g. /home/user/bin/foo.sh
 | 
			
		||||
SCRIPT=`readlink -f "$0"`
 | 
			
		||||
# Absolute path this script is in, thus /home/user/bin
 | 
			
		||||
SCRIPTDIR=`dirname "$SCRIPT"`
 | 
			
		||||
SCRIPTNAME=`basename "$SCRIPT"`
 | 
			
		||||
function print_help {
 | 
			
		||||
    echo "Usage: $SCRIPTNAME [-b <backend>] [-s <sim args>]}"
 | 
			
		||||
    echo "Run UCB risc-v compliance test suite on backends"
 | 
			
		||||
    echo "Optional cli arguments:"
 | 
			
		||||
    echo "  -b              backend type, default all"
 | 
			
		||||
    echo "  -s <args>       simulator arguments"
 | 
			
		||||
    echo "  -h              print help"
 | 
			
		||||
    echo "  -v              increase verbosity"
 | 
			
		||||
    echo "  -t             set build type"
 | 
			
		||||
}
 | 
			
		||||
SIM_ARGS="-v1"
 | 
			
		||||
BACKENDS=("interp" "tcc" "llvm" "asmjit")
 | 
			
		||||
DEBUG=0
 | 
			
		||||
BUILD_TYPE=Debug
 | 
			
		||||
while getopts 'b:s:hvt:' c
 | 
			
		||||
do
 | 
			
		||||
  case $c in
 | 
			
		||||
    b) BACKENDS=($OPTARG);;
 | 
			
		||||
    s) SIM_ARGS=$OPTARG ;;
 | 
			
		||||
    h) print_help; exit 0 ;;
 | 
			
		||||
    v) DEBUG=1 ;;
 | 
			
		||||
    t) BUILD_TYPE = $OPTARG;;
 | 
			
		||||
    ?)
 | 
			
		||||
      print_help >&2
 | 
			
		||||
      exit 1
 | 
			
		||||
      ;;
 | 
			
		||||
  esac
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
 | 
			
		||||
ROOT_DIR="$(dirname "$DIR")"
 | 
			
		||||
 | 
			
		||||
RISCV_TEST=$ROOT_DIR/build/riscv-tests
 | 
			
		||||
# prepare riscv-test binaries
 | 
			
		||||
if [ ! -d $RISCV_TEST ]; then
 | 
			
		||||
    mkdir -p $ROOT_DIR/build; cd $ROOT_DIR/build
 | 
			
		||||
    git clone --recursive https://github.com/riscv/riscv-tests.git
 | 
			
		||||
    cd $RISCV_TEST
 | 
			
		||||
    autoconf
 | 
			
		||||
    ./configure --with-xlen=32
 | 
			
		||||
    cd $ROOT_DIR
 | 
			
		||||
    make -C $RISCV_TEST -j -k 
 | 
			
		||||
fi
 | 
			
		||||
# check that we have an executable
 | 
			
		||||
RISCV_EXE=$ROOT_DIR/build/${BUILD_TYPE}/dbt-rise-tgc/tgc-sim
 | 
			
		||||
if [ ! -x $RISCV_EXE ]; then
 | 
			
		||||
    mkdir -p build/${BUILD_TYPE}
 | 
			
		||||
    echo "running cmake -B build/${BUILD_TYPE} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DWITH_TCC=ON -DWITH_LLVM=ON "
 | 
			
		||||
    cmake -S . -B build/${BUILD_TYPE} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DWITH_TCC=ON -DWITH_LLVM=ON ../.. || exit 1
 | 
			
		||||
    cmake --build build/${BUILD_TYPE} -j 20 || exit 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
test_ui_list=`find ${RISCV_TEST}/isa -type f -name rv32ui-p-\* -executable | grep -v fence | grep -v ma_data |sort`
 | 
			
		||||
test_uc_list=`find ${RISCV_TEST}/isa -type f -name rv32uc-p-\* -executable | grep -v fence | sort`
 | 
			
		||||
test_um_list=`find ${RISCV_TEST}/isa -type f -name rv32um-p-\* -executable | grep -v fence | sort`
 | 
			
		||||
test_list="$test_ui_list $test_uc_list $test_um_list $test_mmode_list"
 | 
			
		||||
 | 
			
		||||
for backend in "${BACKENDS[@]}"; do
 | 
			
		||||
    failed_list=()
 | 
			
		||||
    for elf in $test_list; do
 | 
			
		||||
    	[ $DEBUG -eq 0 ] || echo Running "${RISCV_EXE} $SIM_ARGS -f $elf --backend $backend"
 | 
			
		||||
        ${RISCV_EXE} $SIM_ARGS -f $elf --backend $backend
 | 
			
		||||
        if [ $? != 0 ]; then
 | 
			
		||||
            failed_list+="$backend:$elf "
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
    tcount=`echo $test_list | wc -w`
 | 
			
		||||
    if [ ! -z "$failed_list" ]; then
 | 
			
		||||
        fcount=`echo $failed_list | wc -w`
 | 
			
		||||
        echo "($backend) $fcount of $tcount test(s) failed:" 
 | 
			
		||||
        echo $failed_list | tr ' ' '\n'
 | 
			
		||||
    else
 | 
			
		||||
        echo
 | 
			
		||||
        echo "($backend) All $tcount tests passed." 
 | 
			
		||||
        if [ $DEBUG -eq 1 ];then
 | 
			
		||||
        echo "List of executed tests:"
 | 
			
		||||
        for t in $test_list; do
 | 
			
		||||
            name=`basename $t`
 | 
			
		||||
            echo "  $name"
 | 
			
		||||
        done
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
done
 | 
			
		||||
							
								
								
									
										29
									
								
								scripts/simplify_sail_trace.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								scripts/simplify_sail_trace.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
import argparse
 | 
			
		||||
import re
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def simplify_trace(input_file, output_file):
 | 
			
		||||
    with open(input_file, "r") as infile, open(output_file, "w") as outfile:
 | 
			
		||||
        for line in infile:
 | 
			
		||||
            # Enhanced regex to match the instruction number, mode, and PC
 | 
			
		||||
            match = re.search(r"\[\d+\] \[[MI]\]: (0x[0-9A-Fa-f]+)", line)
 | 
			
		||||
            if match:
 | 
			
		||||
                pc = match.group(1).lower()
 | 
			
		||||
                outfile.write(f"{pc}\n")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    parser = argparse.ArgumentParser(
 | 
			
		||||
        description="Simplify a trace from an instruction set simulator."
 | 
			
		||||
    )
 | 
			
		||||
    parser.add_argument("input_file", type=str, help="The input trace file")
 | 
			
		||||
    parser.add_argument(
 | 
			
		||||
        "output_file", type=str, help="The output file for the simplified trace"
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    args = parser.parse_args()
 | 
			
		||||
    simplify_trace(args.input_file, args.output_file)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    main()
 | 
			
		||||
							
								
								
									
										26
									
								
								scripts/simplify_tgc_trace.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								scripts/simplify_tgc_trace.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
import argparse
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def simplify_trace(input_file, output_file):
 | 
			
		||||
    with open(input_file, "r") as infile, open(output_file, "w") as outfile:
 | 
			
		||||
        for line in infile:
 | 
			
		||||
            # Split the line by the first comma and take the PC part
 | 
			
		||||
            pc = line.split(",")[0].strip().lower()
 | 
			
		||||
            outfile.write(f"{pc}\n")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    parser = argparse.ArgumentParser(
 | 
			
		||||
        description="Simplify traces from instruction set simulators."
 | 
			
		||||
    )
 | 
			
		||||
    parser.add_argument("input_file", type=str, help="The input trace file")
 | 
			
		||||
    parser.add_argument(
 | 
			
		||||
        "output_file", type=str, help="The output file for the simplified trace"
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    args = parser.parse_args()
 | 
			
		||||
    simplify_trace(args.input_file, args.output_file)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    main()
 | 
			
		||||
							
								
								
									
										1
									
								
								tgfs
									
									
									
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								tgfs
									
									
									
									
									
								
							 Submodule tgfs deleted from 9c8b72693e
									
								
							
		Reference in New Issue
	
	Block a user