diff options
author | Gabe Black <gabeblack@google.com> | 2018-05-24 01:37:55 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-08-08 10:09:54 +0000 |
commit | 16fa8d7cc8c92f5ab879e4cf9c6c0bbb3567860f (patch) | |
tree | 7b6faaacb4574a555e561534aa4a8508c0624c32 /src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes | |
parent | 7235d3b5211d0ba8f528d930a4c1e7ad62eec51a (diff) | |
download | gem5-16fa8d7cc8c92f5ab879e4cf9c6c0bbb3567860f.tar.xz |
systemc: Import tests from the Accellera systemc distribution.
Change-Id: Iad76b398949a55d768a34d027a2d8e3739953da6
Reviewed-on: https://gem5-review.googlesource.com/10845
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc/tests/systemc/misc/cae_test/general/arith/subtract/datatypes')
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 |