summaryrefslogtreecommitdiff
path: root/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes')
-rw-r--r--src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/common.h45
-rw-r--r--src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/datatypes.cpp119
-rw-r--r--src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/datatypes.f4
-rw-r--r--src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/datatypes.h126
-rw-r--r--src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/display.cpp51
-rw-r--r--src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/display.h87
-rw-r--r--src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/golden/datatypes.log204
-rw-r--r--src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/golden/datatypes.log.linuxaarch64204
-rw-r--r--src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/main.cpp109
-rw-r--r--src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/stimulus.cpp82
-rw-r--r--src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/stimulus.h90
11 files changed, 1121 insertions, 0 deletions
diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/common.h b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/common.h
new file mode 100644
index 000000000..1af56c523
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/common.h
@@ -0,0 +1,45 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ common.h --
+
+ Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+#ifndef COMMON_H
+#define COMMON_H
+
+#include "systemc.h"
+
+typedef sc_signal<sc_bv<8> > sc_signal_bool_vector;
+
+#endif
diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/datatypes.cpp b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/datatypes.cpp
new file mode 100644
index 000000000..d3e2cd1e1
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/datatypes.cpp
@@ -0,0 +1,119 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ datatypes.cpp --
+
+ Original Author: Rocco Jonack, Synopsys, Inc., 1999-07-14
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+
+#include "datatypes.h"
+
+void datatypes::entry()
+
+{
+
+ sc_bigint<8> tmp1;
+ sc_bigint<8> tmp1r;
+ sc_biguint<8> tmp2;
+ sc_biguint<8> tmp2r;
+ long tmp3;
+ long tmp3r;
+ int tmp4;
+ int tmp4r;
+ short tmp5;
+ short tmp5r;
+ char tmp6;
+ char tmp6r;
+
+// define 1 dimensional array
+ int tmp7[2];
+ char tmp8[2];
+
+// reset_loop
+ if (reset.read() == true) {
+ out_valid.write(false);
+ out_ack.write(false);
+ wait();
+ } else wait();
+
+//
+// main loop
+//
+
+// initialization of sc_array
+
+ tmp7[0] = 3;
+ tmp7[1] = 12;
+ tmp8[0] = 'R';
+ tmp8[1] = 'G';
+
+
+ while(1) {
+ while(in_valid.read()==false) wait();
+
+ //reading the inputs
+ tmp1 = in_value1.read();
+ tmp2 = in_value2.read();
+ tmp3 = in_value3.read();
+ tmp4 = in_value4.read();
+ tmp5 = in_value5.read();
+ tmp6 = in_value6.read();
+
+ out_ack.write(true);
+
+ //execute mixed data type subtraction operations
+ tmp1r = tmp1 - tmp2;
+ tmp2r = tmp6 - tmp1;
+ tmp3r = tmp4 - tmp6;
+ tmp4r = --tmp5;
+ tmp4r -= 1;
+ tmp5r = tmp6 - tmp4;
+ tmp6r = tmp8[0] - tmp7[1];
+
+ //write outputs
+ out_value1.write(tmp1r);
+ out_value2.write(tmp2r);
+ out_value3.write(tmp3r);
+ out_value4.write(tmp4r);
+ out_value5.write(tmp5r);
+ out_value6.write(tmp6r);
+
+ out_valid.write(true);
+ wait();
+ out_ack.write(false);
+ out_valid.write(false);
+
+ }
+
+} // End
+
diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/datatypes.f b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/datatypes.f
new file mode 100644
index 000000000..64f4c05f1
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/datatypes.f
@@ -0,0 +1,4 @@
+datatypes/stimulus.cpp
+datatypes/display.cpp
+datatypes/datatypes.cpp
+datatypes/main.cpp
diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/datatypes.h b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/datatypes.h
new file mode 100644
index 000000000..b7e6f7a00
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/datatypes.h
@@ -0,0 +1,126 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ datatypes.h --
+
+ Original Author: Rocco Jonack, Synopsys, Inc., 1999-07-14
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+
+#include "common.h"
+
+SC_MODULE( datatypes )
+{
+ SC_HAS_PROCESS( datatypes );
+
+ sc_in_clk clk;
+
+ //====================================================================
+ // [C] Always Needed Member Function
+ // -- constructor
+ // -- entry
+ //====================================================================
+
+ const sc_signal<bool>& reset ;
+ const sc_signal_bool_vector& in_value1; // Input port
+ const sc_signal_bool_vector& in_value2; // Input port
+ const sc_signal<long>& in_value3; // Input port
+ const sc_signal<int>& in_value4; // Input port
+ const sc_signal<short>& in_value5; // Input port
+ const sc_signal<char>& in_value6; // Input port
+ const sc_signal<bool>& in_valid; // Input port
+ sc_signal<bool>& out_ack; // Output port
+ sc_signal_bool_vector& out_value1; // Output port
+ sc_signal_bool_vector& out_value2; // Output port
+ sc_signal<long>& out_value3; // Output port
+ sc_signal<int>& out_value4; // Output port
+ sc_signal<short>& out_value5; // Output port
+ sc_signal<char>& out_value6; // Output port
+ sc_signal<bool>& out_valid; // Output port
+
+ //
+ // Constructor
+ //
+
+ datatypes(
+ sc_module_name NAME, // referense name
+ sc_clock& CLK, // clock
+ const sc_signal<bool>& RESET,
+ const sc_signal_bool_vector& IN_VALUE1,
+ const sc_signal_bool_vector& IN_VALUE2,
+ const sc_signal<long>& IN_VALUE3,
+ const sc_signal<int>& IN_VALUE4,
+ const sc_signal<short>& IN_VALUE5,
+ const sc_signal<char>& IN_VALUE6,
+ const sc_signal<bool>& IN_VALID,
+
+ sc_signal<bool>& OUT_ACK,
+ sc_signal_bool_vector& OUT_VALUE1,
+ sc_signal_bool_vector& OUT_VALUE2,
+ sc_signal<long>& OUT_VALUE3,
+ sc_signal<int>& OUT_VALUE4,
+ sc_signal<short>& OUT_VALUE5,
+ sc_signal<char>& OUT_VALUE6,
+ sc_signal<bool>& OUT_VALID
+ )
+ :
+ reset (RESET),
+ in_value1 (IN_VALUE1),
+ in_value2 (IN_VALUE2),
+ in_value3 (IN_VALUE3),
+ in_value4 (IN_VALUE4),
+ in_value5 (IN_VALUE5),
+ in_value6 (IN_VALUE6),
+ in_valid (IN_VALID),
+ out_ack (OUT_ACK),
+ out_value1 (OUT_VALUE1),
+ out_value2 (OUT_VALUE2),
+ out_value3 (OUT_VALUE3),
+ out_value4 (OUT_VALUE4),
+ out_value5 (OUT_VALUE5),
+ out_value6 (OUT_VALUE6),
+ out_valid (OUT_VALID)
+
+ {
+ clk (CLK);
+ SC_CTHREAD( entry, clk.pos() );
+ reset_signal_is(reset,true);
+ };
+
+//Process Functionality: Described in the member function below
+ void entry();
+};
+
+// EOF
+
+
+
diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/display.cpp b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/display.cpp
new file mode 100644
index 000000000..a8037ef4f
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/display.cpp
@@ -0,0 +1,51 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ display.cpp --
+
+ Original Author: Rocco Jonack, Synopsys, Inc., 1999-07-14
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+
+#include "display.h"
+
+void display::entry() {
+
+ int counter = 0;
+ while(counter++<100){
+ do { wait(); } while ( in_valid == false);
+ cout << "Display: " << in_value1.read() << " " << in_value2.read() << " " << in_value3.read() << " " << in_value4.read() << " " << in_value5.read() << " " << in_value6.read() << endl;
+ do { wait(); } while ( in_valid == true);
+ }
+ sc_stop();
+}
+// EOF
diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/display.h b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/display.h
new file mode 100644
index 000000000..2e1149286
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/display.h
@@ -0,0 +1,87 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ display.h --
+
+ Original Author: Rocco Jonack, Synopsys, Inc., 1999-07-14
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+
+#include "common.h"
+
+SC_MODULE( display )
+{
+ SC_HAS_PROCESS( display );
+
+ sc_in_clk clk;
+
+ const sc_signal_bool_vector& in_value1; // Output port
+ const sc_signal_bool_vector& in_value2; // Output port
+ const sc_signal<long>& in_value3; // Output port
+ const sc_signal<int>& in_value4; // Output port
+ const sc_signal<short>& in_value5; // Output port
+ const sc_signal<char>& in_value6; // Output port
+ const sc_signal<bool>& in_valid; // Output port
+
+ //
+ // Constructor
+ //
+
+ display(
+ sc_module_name NAME, // reference name
+ sc_clock& CLK, // clock
+ const sc_signal_bool_vector& IN_VALUE1,
+ const sc_signal_bool_vector& IN_VALUE2,
+ const sc_signal<long>& IN_VALUE3,
+ const sc_signal<int>& IN_VALUE4,
+ const sc_signal<short>& IN_VALUE5,
+ const sc_signal<char>& IN_VALUE6,
+ const sc_signal<bool>& IN_VALID
+ )
+ :
+ in_value1 (IN_VALUE1),
+ in_value2 (IN_VALUE2),
+ in_value3 (IN_VALUE3),
+ in_value4 (IN_VALUE4),
+ in_value5 (IN_VALUE5),
+ in_value6 (IN_VALUE6),
+ in_valid (IN_VALID)
+ {
+ clk (CLK);
+ SC_CTHREAD( entry, clk.pos() );
+ };
+
+
+ void entry();
+};
+
+// EOF
diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/golden/datatypes.log b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/golden/datatypes.log
new file mode 100644
index 000000000..afdff5743
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/golden/datatypes.log
@@ -0,0 +1,204 @@
+SystemC Simulation
+Stimuli: 0 1 12345678 -123456 20000
+Display: 11111111 01010010 -123538 19998 -7534 F
+Stimuli: 1 3 12345683 -123453 20006
+Display: 11111110 01010101 -123539 20004 -7533 F
+Stimuli: 2 5 12345688 -123450 20012
+Display: 11111101 01011000 -123540 20010 -7532 F
+Stimuli: 3 7 12345693 -123447 20018
+Display: 11111100 01011011 -123541 20016 -7531 F
+Stimuli: 4 9 12345698 -123444 20024
+Display: 11111011 01011110 -123542 20022 -7530 F
+Stimuli: 5 11 12345703 -123441 20030
+Display: 11111010 01100001 -123543 20028 -7529 F
+Stimuli: 6 13 12345708 -123438 20036
+Display: 11111001 01100100 -123544 20034 -7528 F
+Stimuli: 7 15 12345713 -123435 20042
+Display: 11111000 01100111 -123545 20040 -7527 F
+Stimuli: 8 17 12345718 -123432 20048
+Display: 11110111 01101010 -123546 20046 -7526 F
+Stimuli: 9 19 12345723 -123429 20054
+Display: 11110110 01101101 -123547 20052 -7525 F
+Stimuli: 10 21 12345728 -123426 20060
+Display: 11110101 01110000 -123548 20058 -7524 F
+Stimuli: 11 23 12345733 -123423 20066
+Display: 11110100 01110011 -123549 20064 -7523 F
+Stimuli: 12 25 12345738 -123420 20072
+Display: 11110011 01110110 -123294 20070 -7778 F
+Stimuli: 13 27 12345743 -123417 20078
+Display: 11110010 01111001 -123295 20076 -7777 F
+Stimuli: 14 29 12345748 -123414 20084
+Display: 11110001 01111100 -123296 20082 -7776 F
+Stimuli: 15 31 12345753 -123411 20090
+Display: 11110000 01111111 -123297 20088 -7775 F
+Stimuli: 16 33 12345758 -123408 20096
+Display: 11101111 10000010 -123298 20094 -7774 F
+Stimuli: 17 35 12345763 -123405 20102
+Display: 11101110 10000101 -123299 20100 -7773 F
+Stimuli: 18 37 12345768 -123402 20108
+Display: 11101101 10001000 -123300 20106 -7772 F
+Stimuli: 19 39 12345773 -123399 20114
+Display: 11101100 10001011 -123301 20112 -7771 F
+Stimuli: 20 41 12345778 -123396 20120
+Display: 11101011 10001110 -123302 20118 -7770 F
+Stimuli: 21 43 12345783 -123393 20126
+Display: 11101010 10010001 -123303 20124 -7769 F
+Stimuli: 22 45 12345788 -123390 20132
+Display: 11101001 10010100 -123304 20130 -7768 F
+Stimuli: 23 47 12345793 -123387 20138
+Display: 11101000 10010111 -123305 20136 -7767 F
+Stimuli: 24 49 12345798 -123384 20144
+Display: 11100111 10011010 -123306 20142 -7766 F
+Stimuli: 25 51 12345803 -123381 20150
+Display: 11100110 10011101 -123307 20148 -7765 F
+Stimuli: 26 53 12345808 -123378 20156
+Display: 11100101 10100000 -123308 20154 -7764 F
+Stimuli: 27 55 12345813 -123375 20162
+Display: 11100100 10100011 -123309 20160 -7763 F
+Stimuli: 28 57 12345818 -123372 20168
+Display: 11100011 10100110 -123310 20166 -7762 F
+Stimuli: 29 59 12345823 -123369 20174
+Display: 11100010 10101001 -123311 20172 -7761 F
+Stimuli: 30 61 12345828 -123366 20180
+Display: 11100001 10101100 -123312 20178 -7760 F
+Stimuli: 31 63 12345833 -123363 20186
+Display: 11100000 10101111 -123313 20184 -7759 F
+Stimuli: 32 65 12345838 -123360 20192
+Display: 11011111 10110010 -123314 20190 -7758 F
+Stimuli: 33 67 12345843 -123357 20198
+Display: 11011110 10110101 -123315 20196 -7757 F
+Stimuli: 34 69 12345848 -123354 20204
+Display: 11011101 10111000 -123316 20202 -7756 F
+Stimuli: 35 71 12345853 -123351 20210
+Display: 11011100 10111011 -123317 20208 -7755 F
+Stimuli: 36 73 12345858 -123348 20216
+Display: 11011011 10111110 -123318 20214 -7754 F
+Stimuli: 37 75 12345863 -123345 20222
+Display: 11011010 11000001 -123319 20220 -7753 F
+Stimuli: 38 77 12345868 -123342 20228
+Display: 11011001 11000100 -123320 20226 -7752 F
+Stimuli: 39 79 12345873 -123339 20234
+Display: 11011000 11000111 -123321 20232 -7751 F
+Stimuli: 40 81 12345878 -123336 20240
+Display: 11010111 11001010 -123322 20238 -7750 F
+Stimuli: 41 83 12345883 -123333 20246
+Display: 11010110 11001101 -123323 20244 -7749 F
+Stimuli: 42 85 12345888 -123330 20252
+Display: 11010101 11010000 -123324 20250 -7748 F
+Stimuli: 43 87 12345893 -123327 20258
+Display: 11010100 11010011 -123325 20256 -7747 F
+Stimuli: 44 89 12345898 -123324 20264
+Display: 11010011 11010110 -123326 20262 -7746 F
+Stimuli: 45 91 12345903 -123321 20270
+Display: 11010010 11011001 -123327 20268 -7745 F
+Stimuli: 46 93 12345908 -123318 20276
+Display: 11010001 11011100 -123328 20274 -7744 F
+Stimuli: 47 95 12345913 -123315 20282
+Display: 11010000 11011111 -123329 20280 -7743 F
+Stimuli: 48 97 12345918 -123312 20288
+Display: 11001111 11100010 -123330 20286 -7742 F
+Stimuli: 49 99 12345923 -123309 20294
+Display: 11001110 11100101 -123331 20292 -7741 F
+Stimuli: 50 101 12345928 -123306 20300
+Display: 11001101 11101000 -123332 20298 -7740 F
+Stimuli: 51 103 12345933 -123303 20306
+Display: 11001100 11101011 -123333 20304 -7739 F
+Stimuli: 52 105 12345938 -123300 20312
+Display: 11001011 11101110 -123334 20310 -7738 F
+Stimuli: 53 107 12345943 -123297 20318
+Display: 11001010 11110001 -123335 20316 -7737 F
+Stimuli: 54 109 12345948 -123294 20324
+Display: 11001001 11110100 -123336 20322 -7736 F
+Stimuli: 55 111 12345953 -123291 20330
+Display: 11001000 11110111 -123337 20328 -7735 F
+Stimuli: 56 113 12345958 -123288 20336
+Display: 11000111 11111010 -123338 20334 -7734 F
+Stimuli: 57 115 12345963 -123285 20342
+Display: 11000110 11111101 -123339 20340 -7733 F
+Stimuli: 58 117 12345968 -123282 20348
+Display: 11000101 00000000 -123340 20346 -7732 F
+Stimuli: 59 119 12345973 -123279 20354
+Display: 11000100 00000011 -123341 20352 -7731 F
+Stimuli: 60 121 12345978 -123276 20360
+Display: 11000011 00000110 -123342 20358 -7730 F
+Stimuli: 61 123 12345983 -123273 20366
+Display: 11000010 00001001 -123343 20364 -7729 F
+Stimuli: 62 125 12345988 -123270 20372
+Display: 11000001 00001100 -123344 20370 -7728 F
+Stimuli: 63 127 12345993 -123267 20378
+Display: 11000000 00001111 -123345 20376 -7727 F
+Stimuli: 64 -127 12345998 -123264 20384
+Display: 10111111 00010010 -123346 20382 -7726 F
+Stimuli: 65 -125 12346003 -123261 20390
+Display: 10111110 00010101 -123347 20388 -7725 F
+Stimuli: 66 -123 12346008 -123258 20396
+Display: 10111101 00011000 -123348 20394 -7724 F
+Stimuli: 67 -121 12346013 -123255 20402
+Display: 10111100 00011011 -123349 20400 -7723 F
+Stimuli: 68 -119 12346018 -123252 20408
+Display: 10111011 00011110 -123350 20406 -7722 F
+Stimuli: 69 -117 12346023 -123249 20414
+Display: 10111010 00100001 -123351 20412 -7721 F
+Stimuli: 70 -115 12346028 -123246 20420
+Display: 10111001 00100100 -123352 20418 -7720 F
+Stimuli: 71 -113 12346033 -123243 20426
+Display: 10111000 00100111 -123353 20424 -7719 F
+Stimuli: 72 -111 12346038 -123240 20432
+Display: 10110111 00101010 -123354 20430 -7718 F
+Stimuli: 73 -109 12346043 -123237 20438
+Display: 10110110 00101101 -123355 20436 -7717 F
+Stimuli: 74 -107 12346048 -123234 20444
+Display: 10110101 00110000 -123356 20442 -7716 F
+Stimuli: 75 -105 12346053 -123231 20450
+Display: 10110100 00110011 -123357 20448 -7715 F
+Stimuli: 76 -103 12346058 -123228 20456
+Display: 10110011 00110110 -123102 20454 -7970 F
+Stimuli: 77 -101 12346063 -123225 20462
+Display: 10110010 00111001 -123103 20460 -7969 F
+Stimuli: 78 -99 12346068 -123222 20468
+Display: 10110001 00111100 -123104 20466 -7968 F
+Stimuli: 79 -97 12346073 -123219 20474
+Display: 10110000 00111111 -123105 20472 -7967 F
+Stimuli: 80 -95 12346078 -123216 20480
+Display: 10101111 01000010 -123106 20478 -7966 F
+Stimuli: 81 -93 12346083 -123213 20486
+Display: 10101110 01000101 -123107 20484 -7965 F
+Stimuli: 82 -91 12346088 -123210 20492
+Display: 10101101 01001000 -123108 20490 -7964 F
+Stimuli: 83 -89 12346093 -123207 20498
+Display: 10101100 01001011 -123109 20496 -7963 F
+Stimuli: 84 -87 12346098 -123204 20504
+Display: 10101011 01001110 -123110 20502 -7962 F
+Stimuli: 85 -85 12346103 -123201 20510
+Display: 10101010 01010001 -123111 20508 -7961 F
+Stimuli: 86 -83 12346108 -123198 20516
+Display: 10101001 01010100 -123112 20514 -7960 F
+Stimuli: 87 -81 12346113 -123195 20522
+Display: 10101000 01010111 -123113 20520 -7959 F
+Stimuli: 88 -79 12346118 -123192 20528
+Display: 10100111 01011010 -123114 20526 -7958 F
+Stimuli: 89 -77 12346123 -123189 20534
+Display: 10100110 01011101 -123115 20532 -7957 F
+Stimuli: 90 -75 12346128 -123186 20540
+Display: 10100101 01100000 -123116 20538 -7956 F
+Stimuli: 91 -73 12346133 -123183 20546
+Display: 10100100 01100011 -123117 20544 -7955 F
+Stimuli: 92 -71 12346138 -123180 20552
+Display: 10100011 01100110 -123118 20550 -7954 F
+Stimuli: 93 -69 12346143 -123177 20558
+Display: 10100010 01101001 -123119 20556 -7953 F
+Stimuli: 94 -67 12346148 -123174 20564
+Display: 10100001 01101100 -123120 20562 -7952 F
+Stimuli: 95 -65 12346153 -123171 20570
+Display: 10100000 01101111 -123121 20568 -7951 F
+Stimuli: 96 -63 12346158 -123168 20576
+Display: 10011111 01110010 -123122 20574 -7950 F
+Stimuli: 97 -61 12346163 -123165 20582
+Display: 10011110 01110101 -123123 20580 -7949 F
+Stimuli: 98 -59 12346168 -123162 20588
+Display: 10011101 01111000 -123124 20586 -7948 F
+Stimuli: 99 -57 12346173 -123159 20594
+Display: 10011100 01111011 -123125 20592 -7947 F
+Stimuli: 100 -55 12346178 -123156 20600
+
+Info: /OSCI/SystemC: Simulation stopped by user.
diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/golden/datatypes.log.linuxaarch64 b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/golden/datatypes.log.linuxaarch64
new file mode 100644
index 000000000..013c30264
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/golden/datatypes.log.linuxaarch64
@@ -0,0 +1,204 @@
+SystemC Simulation
+Stimuli: 0 1 12345678 -123456 20000
+Display: 11111111 01010010 -123538 19998 -7534 F
+Stimuli: 1 3 12345683 -123453 20006
+Display: 11111110 01010101 -123539 20004 -7533 F
+Stimuli: 2 5 12345688 -123450 20012
+Display: 11111101 01011000 -123540 20010 -7532 F
+Stimuli: 3 7 12345693 -123447 20018
+Display: 11111100 01011011 -123541 20016 -7531 F
+Stimuli: 4 9 12345698 -123444 20024
+Display: 11111011 01011110 -123542 20022 -7530 F
+Stimuli: 5 11 12345703 -123441 20030
+Display: 11111010 01100001 -123543 20028 -7529 F
+Stimuli: 6 13 12345708 -123438 20036
+Display: 11111001 01100100 -123544 20034 -7528 F
+Stimuli: 7 15 12345713 -123435 20042
+Display: 11111000 01100111 -123545 20040 -7527 F
+Stimuli: 8 17 12345718 -123432 20048
+Display: 11110111 01101010 -123546 20046 -7526 F
+Stimuli: 9 19 12345723 -123429 20054
+Display: 11110110 01101101 -123547 20052 -7525 F
+Stimuli: 10 21 12345728 -123426 20060
+Display: 11110101 01110000 -123548 20058 -7524 F
+Stimuli: 11 23 12345733 -123423 20066
+Display: 11110100 01110011 -123549 20064 -7523 F
+Stimuli: 12 25 12345738 -123420 20072
+Display: 11110011 01110110 -123550 20070 -7522 F
+Stimuli: 13 27 12345743 -123417 20078
+Display: 11110010 01111001 -123551 20076 -7521 F
+Stimuli: 14 29 12345748 -123414 20084
+Display: 11110001 01111100 -123552 20082 -7520 F
+Stimuli: 15 31 12345753 -123411 20090
+Display: 11110000 01111111 -123553 20088 -7519 F
+Stimuli: 16 33 12345758 -123408 20096
+Display: 11101111 10000010 -123554 20094 -7518 F
+Stimuli: 17 35 12345763 -123405 20102
+Display: 11101110 10000101 -123555 20100 -7517 F
+Stimuli: 18 37 12345768 -123402 20108
+Display: 11101101 10001000 -123556 20106 -7516 F
+Stimuli: 19 39 12345773 -123399 20114
+Display: 11101100 10001011 -123557 20112 -7515 F
+Stimuli: 20 41 12345778 -123396 20120
+Display: 11101011 10001110 -123558 20118 -7514 F
+Stimuli: 21 43 12345783 -123393 20126
+Display: 11101010 10010001 -123559 20124 -7513 F
+Stimuli: 22 45 12345788 -123390 20132
+Display: 11101001 10010100 -123560 20130 -7512 F
+Stimuli: 23 47 12345793 -123387 20138
+Display: 11101000 10010111 -123561 20136 -7511 F
+Stimuli: 24 49 12345798 -123384 20144
+Display: 11100111 10011010 -123562 20142 -7510 F
+Stimuli: 25 51 12345803 -123381 20150
+Display: 11100110 10011101 -123563 20148 -7509 F
+Stimuli: 26 53 12345808 -123378 20156
+Display: 11100101 10100000 -123564 20154 -7508 F
+Stimuli: 27 55 12345813 -123375 20162
+Display: 11100100 10100011 -123565 20160 -7507 F
+Stimuli: 28 57 12345818 -123372 20168
+Display: 11100011 10100110 -123566 20166 -7506 F
+Stimuli: 29 59 12345823 -123369 20174
+Display: 11100010 10101001 -123567 20172 -7505 F
+Stimuli: 30 61 12345828 -123366 20180
+Display: 11100001 10101100 -123568 20178 -7504 F
+Stimuli: 31 63 12345833 -123363 20186
+Display: 11100000 10101111 -123569 20184 -7503 F
+Stimuli: 32 65 12345838 -123360 20192
+Display: 11011111 10110010 -123570 20190 -7502 F
+Stimuli: 33 67 12345843 -123357 20198
+Display: 11011110 10110101 -123571 20196 -7501 F
+Stimuli: 34 69 12345848 -123354 20204
+Display: 11011101 10111000 -123572 20202 -7500 F
+Stimuli: 35 71 12345853 -123351 20210
+Display: 11011100 10111011 -123573 20208 -7499 F
+Stimuli: 36 73 12345858 -123348 20216
+Display: 11011011 10111110 -123574 20214 -7498 F
+Stimuli: 37 75 12345863 -123345 20222
+Display: 11011010 11000001 -123575 20220 -7497 F
+Stimuli: 38 77 12345868 -123342 20228
+Display: 11011001 11000100 -123576 20226 -7496 F
+Stimuli: 39 79 12345873 -123339 20234
+Display: 11011000 11000111 -123577 20232 -7495 F
+Stimuli: 40 81 12345878 -123336 20240
+Display: 11010111 11001010 -123578 20238 -7494 F
+Stimuli: 41 83 12345883 -123333 20246
+Display: 11010110 11001101 -123579 20244 -7493 F
+Stimuli: 42 85 12345888 -123330 20252
+Display: 11010101 11010000 -123580 20250 -7492 F
+Stimuli: 43 87 12345893 -123327 20258
+Display: 11010100 11010011 -123581 20256 -7491 F
+Stimuli: 44 89 12345898 -123324 20264
+Display: 11010011 11010110 -123326 20262 -7746 F
+Stimuli: 45 91 12345903 -123321 20270
+Display: 11010010 11011001 -123327 20268 -7745 F
+Stimuli: 46 93 12345908 -123318 20276
+Display: 11010001 11011100 -123328 20274 -7744 F
+Stimuli: 47 95 12345913 -123315 20282
+Display: 11010000 11011111 -123329 20280 -7743 F
+Stimuli: 48 97 12345918 -123312 20288
+Display: 11001111 11100010 -123330 20286 -7742 F
+Stimuli: 49 99 12345923 -123309 20294
+Display: 11001110 11100101 -123331 20292 -7741 F
+Stimuli: 50 101 12345928 -123306 20300
+Display: 11001101 11101000 -123332 20298 -7740 F
+Stimuli: 51 103 12345933 -123303 20306
+Display: 11001100 11101011 -123333 20304 -7739 F
+Stimuli: 52 105 12345938 -123300 20312
+Display: 11001011 11101110 -123334 20310 -7738 F
+Stimuli: 53 107 12345943 -123297 20318
+Display: 11001010 11110001 -123335 20316 -7737 F
+Stimuli: 54 109 12345948 -123294 20324
+Display: 11001001 11110100 -123336 20322 -7736 F
+Stimuli: 55 111 12345953 -123291 20330
+Display: 11001000 11110111 -123337 20328 -7735 F
+Stimuli: 56 113 12345958 -123288 20336
+Display: 11000111 11111010 -123338 20334 -7734 F
+Stimuli: 57 115 12345963 -123285 20342
+Display: 11000110 11111101 -123339 20340 -7733 F
+Stimuli: 58 117 12345968 -123282 20348
+Display: 11000101 00000000 -123340 20346 -7732 F
+Stimuli: 59 119 12345973 -123279 20354
+Display: 11000100 00000011 -123341 20352 -7731 F
+Stimuli: 60 121 12345978 -123276 20360
+Display: 11000011 00000110 -123342 20358 -7730 F
+Stimuli: 61 123 12345983 -123273 20366
+Display: 11000010 00001001 -123343 20364 -7729 F
+Stimuli: 62 125 12345988 -123270 20372
+Display: 11000001 00001100 -123344 20370 -7728 F
+Stimuli: 63 127 12345993 -123267 20378
+Display: 11000000 00001111 -123345 20376 -7727 F
+Stimuli: 64 -127 12345998 -123264 20384
+Display: 10111111 00010010 -123346 20382 -7726 F
+Stimuli: 65 -125 12346003 -123261 20390
+Display: 10111110 00010101 -123347 20388 -7725 F
+Stimuli: 66 -123 12346008 -123258 20396
+Display: 10111101 00011000 -123348 20394 -7724 F
+Stimuli: 67 -121 12346013 -123255 20402
+Display: 10111100 00011011 -123349 20400 -7723 F
+Stimuli: 68 -119 12346018 -123252 20408
+Display: 10111011 00011110 -123350 20406 -7722 F
+Stimuli: 69 -117 12346023 -123249 20414
+Display: 10111010 00100001 -123351 20412 -7721 F
+Stimuli: 70 -115 12346028 -123246 20420
+Display: 10111001 00100100 -123352 20418 -7720 F
+Stimuli: 71 -113 12346033 -123243 20426
+Display: 10111000 00100111 -123353 20424 -7719 F
+Stimuli: 72 -111 12346038 -123240 20432
+Display: 10110111 00101010 -123354 20430 -7718 F
+Stimuli: 73 -109 12346043 -123237 20438
+Display: 10110110 00101101 -123355 20436 -7717 F
+Stimuli: 74 -107 12346048 -123234 20444
+Display: 10110101 00110000 -123356 20442 -7716 F
+Stimuli: 75 -105 12346053 -123231 20450
+Display: 10110100 00110011 -123357 20448 -7715 F
+Stimuli: 76 -103 12346058 -123228 20456
+Display: 10110011 00110110 -123358 20454 -7714 F
+Stimuli: 77 -101 12346063 -123225 20462
+Display: 10110010 00111001 -123359 20460 -7713 F
+Stimuli: 78 -99 12346068 -123222 20468
+Display: 10110001 00111100 -123360 20466 -7712 F
+Stimuli: 79 -97 12346073 -123219 20474
+Display: 10110000 00111111 -123361 20472 -7711 F
+Stimuli: 80 -95 12346078 -123216 20480
+Display: 10101111 01000010 -123362 20478 -7710 F
+Stimuli: 81 -93 12346083 -123213 20486
+Display: 10101110 01000101 -123363 20484 -7709 F
+Stimuli: 82 -91 12346088 -123210 20492
+Display: 10101101 01001000 -123364 20490 -7708 F
+Stimuli: 83 -89 12346093 -123207 20498
+Display: 10101100 01001011 -123365 20496 -7707 F
+Stimuli: 84 -87 12346098 -123204 20504
+Display: 10101011 01001110 -123366 20502 -7706 F
+Stimuli: 85 -85 12346103 -123201 20510
+Display: 10101010 01010001 -123367 20508 -7705 F
+Stimuli: 86 -83 12346108 -123198 20516
+Display: 10101001 01010100 -123368 20514 -7704 F
+Stimuli: 87 -81 12346113 -123195 20522
+Display: 10101000 01010111 -123369 20520 -7703 F
+Stimuli: 88 -79 12346118 -123192 20528
+Display: 10100111 01011010 -123370 20526 -7702 F
+Stimuli: 89 -77 12346123 -123189 20534
+Display: 10100110 01011101 -123371 20532 -7701 F
+Stimuli: 90 -75 12346128 -123186 20540
+Display: 10100101 01100000 -123372 20538 -7700 F
+Stimuli: 91 -73 12346133 -123183 20546
+Display: 10100100 01100011 -123373 20544 -7699 F
+Stimuli: 92 -71 12346138 -123180 20552
+Display: 10100011 01100110 -123374 20550 -7698 F
+Stimuli: 93 -69 12346143 -123177 20558
+Display: 10100010 01101001 -123375 20556 -7697 F
+Stimuli: 94 -67 12346148 -123174 20564
+Display: 10100001 01101100 -123376 20562 -7696 F
+Stimuli: 95 -65 12346153 -123171 20570
+Display: 10100000 01101111 -123377 20568 -7695 F
+Stimuli: 96 -63 12346158 -123168 20576
+Display: 10011111 01110010 -123378 20574 -7694 F
+Stimuli: 97 -61 12346163 -123165 20582
+Display: 10011110 01110101 -123379 20580 -7693 F
+Stimuli: 98 -59 12346168 -123162 20588
+Display: 10011101 01111000 -123380 20586 -7692 F
+Stimuli: 99 -57 12346173 -123159 20594
+Display: 10011100 01111011 -123381 20592 -7691 F
+Stimuli: 100 -55 12346178 -123156 20600
+
+Info: /OSCI/SystemC: Simulation stopped by user.
diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/main.cpp b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/main.cpp
new file mode 100644
index 000000000..baafeba5d
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/main.cpp
@@ -0,0 +1,109 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ main.cpp --
+
+ Original Author: Rocco Jonack, Synopsys, Inc., 1999-07-14
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+
+#include "stimulus.h"
+#include "display.h"
+#include "datatypes.h"
+
+int sc_main (int argc , char *argv[]) {
+ sc_clock clock;
+ sc_signal<bool> reset;
+ sc_signal_bool_vector stimulus_line1;
+ sc_signal_bool_vector stimulus_line2;
+ sc_signal<long> stimulus_line3;
+ sc_signal<int> stimulus_line4;
+ sc_signal<short> stimulus_line5;
+ sc_signal<char> stimulus_line6;
+ sc_signal<bool> input_valid;
+ sc_signal<bool> ack;
+ sc_signal<bool> output_valid;
+ sc_signal_bool_vector result_line1;
+ sc_signal_bool_vector result_line2;
+ sc_signal<long> result_line3;
+ sc_signal<int> result_line4;
+ sc_signal<short> result_line5;
+ sc_signal<char> result_line6;
+
+ output_valid = 0;
+
+ stimulus stimulus1("stimulus_block",
+ clock,
+ reset,
+ stimulus_line1,
+ stimulus_line2,
+ stimulus_line3,
+ stimulus_line4,
+ stimulus_line5,
+ stimulus_line6,
+ input_valid,
+ ack);
+
+ datatypes datatypes1( "process_body",
+ clock,
+ reset,
+ stimulus_line1,
+ stimulus_line2,
+ stimulus_line3,
+ stimulus_line4,
+ stimulus_line5,
+ stimulus_line6,
+ input_valid,
+ ack,
+ result_line1,
+ result_line2,
+ result_line3,
+ result_line4,
+ result_line5,
+ result_line6,
+ output_valid);
+
+ display display1( "display_block",
+ clock,
+ result_line1,
+ result_line2,
+ result_line3,
+ result_line4,
+ result_line5,
+ result_line6,
+ output_valid);
+
+ sc_start();
+ return 0;
+}
+
+// EOF
diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/stimulus.cpp b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/stimulus.cpp
new file mode 100644
index 000000000..ebcfe7bf0
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/stimulus.cpp
@@ -0,0 +1,82 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ stimulus.cpp --
+
+ Original Author: Rocco Jonack, Synopsys, Inc., 1999-07-14
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+
+#include "stimulus.h"
+
+void stimulus::entry() {
+
+ reset.write(true);
+ wait();
+ reset.write(false);
+
+ sc_signed tmp1(8);
+ sc_signed tmp2(8);
+ long tmp3;
+ int tmp4;
+ short tmp5;
+ char tmp6;
+
+ tmp1 = "00000000";
+ tmp2 = "00000001";
+ tmp3 = 12345678;
+ tmp4 = -123456;
+ tmp5 = 20000;
+ tmp6 = 'R';
+
+
+ while(true){
+ out_valid.write(true);
+ out_value1.write(tmp1);
+ out_value2.write(tmp2);
+ out_value3.write(tmp3);
+ out_value4.write(tmp4);
+ out_value5.write(tmp5);
+ out_value6.write(tmp6);
+ cout << "Stimuli: " << tmp1 << " " << tmp2 << " " << tmp3 << " " << tmp4 << " " << tmp5 << endl;
+ tmp1 = tmp1 + 1;
+ tmp2 = tmp2 + 2;
+ tmp3 = tmp3 + 5;
+ tmp4 = tmp4 + 3;
+ tmp5 = tmp5 + 6;
+ tmp6 = tmp6 + 4;
+ do { wait(); } while (in_ack==false);
+ out_valid.write(false);
+ wait();
+ }
+}
+// EOF
diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/stimulus.h b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/stimulus.h
new file mode 100644
index 000000000..cf0a3e621
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes/stimulus.h
@@ -0,0 +1,90 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ stimulus.h --
+
+ Original Author: Rocco Jonack, Synopsys, Inc., 1999-07-14
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+
+#include "common.h"
+
+SC_MODULE( stimulus )
+{
+ SC_HAS_PROCESS( stimulus );
+
+ sc_in_clk clk;
+
+ sc_signal<bool>& reset;
+ sc_signal_bool_vector& out_value1; // Output port
+ sc_signal_bool_vector& out_value2; // Output port
+ sc_signal<long>& out_value3; // Output port
+ sc_signal<int>& out_value4; // Output port
+ sc_signal<short>& out_value5; // Output port
+ sc_signal<char>& out_value6; // Output port
+ sc_signal<bool>& out_valid; // Output port
+ const sc_signal<bool>& in_ack;
+
+ //
+ // Constructor
+ //
+
+ stimulus(
+ sc_module_name NAME, // reference name
+ sc_clock& CLK, // clock
+ sc_signal<bool>& RESET,
+ sc_signal_bool_vector& OUT_VALUE1,
+ sc_signal_bool_vector& OUT_VALUE2,
+ sc_signal<long>& OUT_VALUE3,
+ sc_signal<int>& OUT_VALUE4,
+ sc_signal<short>& OUT_VALUE5,
+ sc_signal<char>& OUT_VALUE6,
+ sc_signal<bool>& OUT_VALID,
+ const sc_signal<bool>& IN_ACK
+ )
+ :
+ reset (RESET),
+ out_value1 (OUT_VALUE1),
+ out_value2 (OUT_VALUE2),
+ out_value3 (OUT_VALUE3),
+ out_value4 (OUT_VALUE4),
+ out_value5 (OUT_VALUE5),
+ out_value6 (OUT_VALUE6),
+ out_valid (OUT_VALID),
+ in_ack (IN_ACK)
+ {
+ clk (CLK);
+ SC_CTHREAD( entry, clk.pos() );
+ };
+ void entry();
+};
+// EOF