diff options
Diffstat (limited to 'src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes')
11 files changed, 1128 insertions, 0 deletions
diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/common.h b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/common.h new file mode 100644 index 000000000..1af56c523 --- /dev/null +++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/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/addition/datatypes/datatypes.cpp b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/datatypes.cpp new file mode 100644 index 000000000..753647536 --- /dev/null +++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/datatypes.cpp @@ -0,0 +1,134 @@ +/***************************************************************************** + + 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" +#define true 1 +#define false 0 + +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]; + // int tmp9[2]; + int* tmp9; + +// define sc_bool_vector + sc_bv<4> tmp10; + tmp10[3] = 0; tmp10[2] = 1; tmp10[1] = 0; tmp10[0] = 1; + +// define 2 dimentional array + sc_bv<1> tmp11[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] = 'S'; + tmp8[1] = 'C'; + tmp9 = tmp7; + tmp11[0][0] = "1"; + tmp11[1][0] = "0"; + + + 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 addition operations + tmp1r = tmp1 + tmp2 + (sc_bigint<1>)tmp1.range(0, 0) ; // #### + // tmp2r = tmp6 + tmp1 + int(tmp10[2]); // treat tmp10[2] as carry in + tmp2r = tmp6 + tmp1 + tmp10[2].to_bool(); // treat tmp10[2] as carry in + tmp3r = tmp4 + tmp6; + tmp4r = ++tmp5; + // tmp4r -= int(tmp11[0][0]); + tmp4r -= tmp11[0][0].to_bool(); + tmp5r = tmp6 + tmp4; + tmp6r = tmp8[0] + tmp9[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/addition/datatypes/datatypes.f b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/datatypes.f new file mode 100644 index 000000000..64f4c05f1 --- /dev/null +++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/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/addition/datatypes/datatypes.h b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/datatypes.h new file mode 100644 index 000000000..7ce8039e3 --- /dev/null +++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/datatypes.h @@ -0,0 +1,123 @@ +/***************************************************************************** + + 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/addition/datatypes/display.cpp b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/display.cpp new file mode 100644 index 000000000..ef7667e69 --- /dev/null +++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/display.cpp @@ -0,0 +1,49 @@ +/***************************************************************************** + + 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() { + + while(true){ + 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); + } + +} +// EOF diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/display.h b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/display.h new file mode 100644 index 000000000..7804753f9 --- /dev/null +++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/display.h @@ -0,0 +1,86 @@ +/***************************************************************************** + + 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/addition/datatypes/golden/datatypes.log b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/golden/datatypes.log new file mode 100644 index 000000000..db69787de --- /dev/null +++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/golden/datatypes.log @@ -0,0 +1,203 @@ +SystemC Simulation +Stimuli: 0 1 12345678 -123456 20000 +Display: 00000001 01010011 -123374 20000 7698 _ +Stimuli: 1 3 12345683 -123453 20006 +Display: 00000011 01011000 -123367 20006 7705 _ +Stimuli: 2 5 12345688 -123450 20012 +Display: 00000111 01011101 -123360 20012 7712 _ +Stimuli: 3 7 12345693 -123447 20018 +Display: 00001001 01100010 -123353 20018 7719 _ +Stimuli: 4 9 12345698 -123444 20024 +Display: 00001101 01100111 -123346 20024 7726 _ +Stimuli: 5 11 12345703 -123441 20030 +Display: 00001111 01101100 -123339 20030 7733 _ +Stimuli: 6 13 12345708 -123438 20036 +Display: 00010011 01110001 -123332 20036 7740 _ +Stimuli: 7 15 12345713 -123435 20042 +Display: 00010101 01110110 -123325 20042 7747 _ +Stimuli: 8 17 12345718 -123432 20048 +Display: 00011001 01111011 -123318 20048 7754 _ +Stimuli: 9 19 12345723 -123429 20054 +Display: 00011011 10000000 -123311 20054 7761 _ +Stimuli: 10 21 12345728 -123426 20060 +Display: 00011111 10000101 -123304 20060 7768 _ +Stimuli: 11 23 12345733 -123423 20066 +Display: 00100001 10001010 -123297 20066 7775 _ +Stimuli: 12 25 12345738 -123420 20072 +Display: 00100101 10001111 -123546 20072 7526 _ +Stimuli: 13 27 12345743 -123417 20078 +Display: 00100111 10010100 -123539 20078 7533 _ +Stimuli: 14 29 12345748 -123414 20084 +Display: 00101011 10011001 -123532 20084 7540 _ +Stimuli: 15 31 12345753 -123411 20090 +Display: 00101101 10011110 -123525 20090 7547 _ +Stimuli: 16 33 12345758 -123408 20096 +Display: 00110001 10100011 -123518 20096 7554 _ +Stimuli: 17 35 12345763 -123405 20102 +Display: 00110011 10101000 -123511 20102 7561 _ +Stimuli: 18 37 12345768 -123402 20108 +Display: 00110111 10101101 -123504 20108 7568 _ +Stimuli: 19 39 12345773 -123399 20114 +Display: 00111001 10110010 -123497 20114 7575 _ +Stimuli: 20 41 12345778 -123396 20120 +Display: 00111101 10110111 -123490 20120 7582 _ +Stimuli: 21 43 12345783 -123393 20126 +Display: 00111111 10111100 -123483 20126 7589 _ +Stimuli: 22 45 12345788 -123390 20132 +Display: 01000011 11000001 -123476 20132 7596 _ +Stimuli: 23 47 12345793 -123387 20138 +Display: 01000101 11000110 -123469 20138 7603 _ +Stimuli: 24 49 12345798 -123384 20144 +Display: 01001001 11001011 -123462 20144 7610 _ +Stimuli: 25 51 12345803 -123381 20150 +Display: 01001011 11010000 -123455 20150 7617 _ +Stimuli: 26 53 12345808 -123378 20156 +Display: 01001111 11010101 -123448 20156 7624 _ +Stimuli: 27 55 12345813 -123375 20162 +Display: 01010001 11011010 -123441 20162 7631 _ +Stimuli: 28 57 12345818 -123372 20168 +Display: 01010101 11011111 -123434 20168 7638 _ +Stimuli: 29 59 12345823 -123369 20174 +Display: 01010111 11100100 -123427 20174 7645 _ +Stimuli: 30 61 12345828 -123366 20180 +Display: 01011011 11101001 -123420 20180 7652 _ +Stimuli: 31 63 12345833 -123363 20186 +Display: 01011101 11101110 -123413 20186 7659 _ +Stimuli: 32 65 12345838 -123360 20192 +Display: 01100001 11110011 -123406 20192 7666 _ +Stimuli: 33 67 12345843 -123357 20198 +Display: 01100011 11111000 -123399 20198 7673 _ +Stimuli: 34 69 12345848 -123354 20204 +Display: 01100111 11111101 -123392 20204 7680 _ +Stimuli: 35 71 12345853 -123351 20210 +Display: 01101001 00000010 -123385 20210 7687 _ +Stimuli: 36 73 12345858 -123348 20216 +Display: 01101101 00000111 -123378 20216 7694 _ +Stimuli: 37 75 12345863 -123345 20222 +Display: 01101111 00001100 -123371 20222 7701 _ +Stimuli: 38 77 12345868 -123342 20228 +Display: 01110011 00010001 -123364 20228 7708 _ +Stimuli: 39 79 12345873 -123339 20234 +Display: 01110101 00010110 -123357 20234 7715 _ +Stimuli: 40 81 12345878 -123336 20240 +Display: 01111001 00011011 -123350 20240 7722 _ +Stimuli: 41 83 12345883 -123333 20246 +Display: 01111011 00100000 -123343 20246 7729 _ +Stimuli: 42 85 12345888 -123330 20252 +Display: 01111111 00100101 -123336 20252 7736 _ +Stimuli: 43 87 12345893 -123327 20258 +Display: 10000001 00101010 -123329 20258 7743 _ +Stimuli: 44 89 12345898 -123324 20264 +Display: 10000101 00101111 -123322 20264 7750 _ +Stimuli: 45 91 12345903 -123321 20270 +Display: 10000111 00110100 -123315 20270 7757 _ +Stimuli: 46 93 12345908 -123318 20276 +Display: 10001011 00111001 -123308 20276 7764 _ +Stimuli: 47 95 12345913 -123315 20282 +Display: 10001101 00111110 -123301 20282 7771 _ +Stimuli: 48 97 12345918 -123312 20288 +Display: 10010001 01000011 -123294 20288 7778 _ +Stimuli: 49 99 12345923 -123309 20294 +Display: 10010011 01001000 -123287 20294 7785 _ +Stimuli: 50 101 12345928 -123306 20300 +Display: 10010111 01001101 -123280 20300 7792 _ +Stimuli: 51 103 12345933 -123303 20306 +Display: 10011001 01010010 -123273 20306 7799 _ +Stimuli: 52 105 12345938 -123300 20312 +Display: 10011101 01010111 -123266 20312 7806 _ +Stimuli: 53 107 12345943 -123297 20318 +Display: 10011111 01011100 -123259 20318 7813 _ +Stimuli: 54 109 12345948 -123294 20324 +Display: 10100011 01100001 -123252 20324 7820 _ +Stimuli: 55 111 12345953 -123291 20330 +Display: 10100101 01100110 -123245 20330 7827 _ +Stimuli: 56 113 12345958 -123288 20336 +Display: 10101001 01101011 -123238 20336 7834 _ +Stimuli: 57 115 12345963 -123285 20342 +Display: 10101011 01110000 -123231 20342 7841 _ +Stimuli: 58 117 12345968 -123282 20348 +Display: 10101111 01110101 -123224 20348 7848 _ +Stimuli: 59 119 12345973 -123279 20354 +Display: 10110001 01111010 -123217 20354 7855 _ +Stimuli: 60 121 12345978 -123276 20360 +Display: 10110101 01111111 -123210 20360 7862 _ +Stimuli: 61 123 12345983 -123273 20366 +Display: 10110111 10000100 -123203 20366 7869 _ +Stimuli: 62 125 12345988 -123270 20372 +Display: 10111011 10001001 -123196 20372 7876 _ +Stimuli: 63 127 12345993 -123267 20378 +Display: 10111101 10001110 -123189 20378 7883 _ +Stimuli: 64 -127 12345998 -123264 20384 +Display: 11000001 10010011 -123182 20384 7890 _ +Stimuli: 65 -125 12346003 -123261 20390 +Display: 11000011 10011000 -123175 20390 7897 _ +Stimuli: 66 -123 12346008 -123258 20396 +Display: 11000111 10011101 -123168 20396 7904 _ +Stimuli: 67 -121 12346013 -123255 20402 +Display: 11001001 10100010 -123161 20402 7911 _ +Stimuli: 68 -119 12346018 -123252 20408 +Display: 11001101 10100111 -123154 20408 7918 _ +Stimuli: 69 -117 12346023 -123249 20414 +Display: 11001111 10101100 -123147 20414 7925 _ +Stimuli: 70 -115 12346028 -123246 20420 +Display: 11010011 10110001 -123140 20420 7932 _ +Stimuli: 71 -113 12346033 -123243 20426 +Display: 11010101 10110110 -123133 20426 7939 _ +Stimuli: 72 -111 12346038 -123240 20432 +Display: 11011001 10111011 -123126 20432 7946 _ +Stimuli: 73 -109 12346043 -123237 20438 +Display: 11011011 11000000 -123119 20438 7953 _ +Stimuli: 74 -107 12346048 -123234 20444 +Display: 11011111 11000101 -123112 20444 7960 _ +Stimuli: 75 -105 12346053 -123231 20450 +Display: 11100001 11001010 -123105 20450 7967 _ +Stimuli: 76 -103 12346058 -123228 20456 +Display: 11100101 11001111 -123354 20456 7718 _ +Stimuli: 77 -101 12346063 -123225 20462 +Display: 11100111 11010100 -123347 20462 7725 _ +Stimuli: 78 -99 12346068 -123222 20468 +Display: 11101011 11011001 -123340 20468 7732 _ +Stimuli: 79 -97 12346073 -123219 20474 +Display: 11101101 11011110 -123333 20474 7739 _ +Stimuli: 80 -95 12346078 -123216 20480 +Display: 11110001 11100011 -123326 20480 7746 _ +Stimuli: 81 -93 12346083 -123213 20486 +Display: 11110011 11101000 -123319 20486 7753 _ +Stimuli: 82 -91 12346088 -123210 20492 +Display: 11110111 11101101 -123312 20492 7760 _ +Stimuli: 83 -89 12346093 -123207 20498 +Display: 11111001 11110010 -123305 20498 7767 _ +Stimuli: 84 -87 12346098 -123204 20504 +Display: 11111101 11110111 -123298 20504 7774 _ +Stimuli: 85 -85 12346103 -123201 20510 +Display: 11111111 11111100 -123291 20510 7781 _ +Stimuli: 86 -83 12346108 -123198 20516 +Display: 00000011 00000001 -123284 20516 7788 _ +Stimuli: 87 -81 12346113 -123195 20522 +Display: 00000101 00000110 -123277 20522 7795 _ +Stimuli: 88 -79 12346118 -123192 20528 +Display: 00001001 00001011 -123270 20528 7802 _ +Stimuli: 89 -77 12346123 -123189 20534 +Display: 00001011 00010000 -123263 20534 7809 _ +Stimuli: 90 -75 12346128 -123186 20540 +Display: 00001111 00010101 -123256 20540 7816 _ +Stimuli: 91 -73 12346133 -123183 20546 +Display: 00010001 00011010 -123249 20546 7823 _ +Stimuli: 92 -71 12346138 -123180 20552 +Display: 00010101 00011111 -123242 20552 7830 _ +Stimuli: 93 -69 12346143 -123177 20558 +Display: 00010111 00100100 -123235 20558 7837 _ +Stimuli: 94 -67 12346148 -123174 20564 +Display: 00011011 00101001 -123228 20564 7844 _ +Stimuli: 95 -65 12346153 -123171 20570 +Display: 00011101 00101110 -123221 20570 7851 _ +Stimuli: 96 -63 12346158 -123168 20576 +Display: 00100001 00110011 -123214 20576 7858 _ +Stimuli: 97 -61 12346163 -123165 20582 +Display: 00100011 00111000 -123207 20582 7865 _ +Stimuli: 98 -59 12346168 -123162 20588 +Display: 00100111 00111101 -123200 20588 7872 _ +Stimuli: 99 -57 12346173 -123159 20594 +Display: 00101001 01000010 -123193 20594 7879 _ + +Info: /OSCI/SystemC: Simulation stopped by user. diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/golden/datatypes.log.linuxaarch64 b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/golden/datatypes.log.linuxaarch64 new file mode 100644 index 000000000..27e506ff1 --- /dev/null +++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/golden/datatypes.log.linuxaarch64 @@ -0,0 +1,203 @@ +SystemC Simulation +Stimuli: 0 1 12345678 -123456 20000 +Display: 00000001 01010011 -123374 20000 7698 _ +Stimuli: 1 3 12345683 -123453 20006 +Display: 00000011 01011000 -123367 20006 7705 _ +Stimuli: 2 5 12345688 -123450 20012 +Display: 00000111 01011101 -123360 20012 7712 _ +Stimuli: 3 7 12345693 -123447 20018 +Display: 00001001 01100010 -123353 20018 7719 _ +Stimuli: 4 9 12345698 -123444 20024 +Display: 00001101 01100111 -123346 20024 7726 _ +Stimuli: 5 11 12345703 -123441 20030 +Display: 00001111 01101100 -123339 20030 7733 _ +Stimuli: 6 13 12345708 -123438 20036 +Display: 00010011 01110001 -123332 20036 7740 _ +Stimuli: 7 15 12345713 -123435 20042 +Display: 00010101 01110110 -123325 20042 7747 _ +Stimuli: 8 17 12345718 -123432 20048 +Display: 00011001 01111011 -123318 20048 7754 _ +Stimuli: 9 19 12345723 -123429 20054 +Display: 00011011 10000000 -123311 20054 7761 _ +Stimuli: 10 21 12345728 -123426 20060 +Display: 00011111 10000101 -123304 20060 7768 _ +Stimuli: 11 23 12345733 -123423 20066 +Display: 00100001 10001010 -123297 20066 7775 _ +Stimuli: 12 25 12345738 -123420 20072 +Display: 00100101 10001111 -123290 20072 7782 _ +Stimuli: 13 27 12345743 -123417 20078 +Display: 00100111 10010100 -123283 20078 7789 _ +Stimuli: 14 29 12345748 -123414 20084 +Display: 00101011 10011001 -123276 20084 7796 _ +Stimuli: 15 31 12345753 -123411 20090 +Display: 00101101 10011110 -123269 20090 7803 _ +Stimuli: 16 33 12345758 -123408 20096 +Display: 00110001 10100011 -123262 20096 7810 _ +Stimuli: 17 35 12345763 -123405 20102 +Display: 00110011 10101000 -123255 20102 7817 _ +Stimuli: 18 37 12345768 -123402 20108 +Display: 00110111 10101101 -123248 20108 7824 _ +Stimuli: 19 39 12345773 -123399 20114 +Display: 00111001 10110010 -123241 20114 7831 _ +Stimuli: 20 41 12345778 -123396 20120 +Display: 00111101 10110111 -123234 20120 7838 _ +Stimuli: 21 43 12345783 -123393 20126 +Display: 00111111 10111100 -123227 20126 7845 _ +Stimuli: 22 45 12345788 -123390 20132 +Display: 01000011 11000001 -123220 20132 7852 _ +Stimuli: 23 47 12345793 -123387 20138 +Display: 01000101 11000110 -123213 20138 7859 _ +Stimuli: 24 49 12345798 -123384 20144 +Display: 01001001 11001011 -123206 20144 7866 _ +Stimuli: 25 51 12345803 -123381 20150 +Display: 01001011 11010000 -123199 20150 7873 _ +Stimuli: 26 53 12345808 -123378 20156 +Display: 01001111 11010101 -123192 20156 7880 _ +Stimuli: 27 55 12345813 -123375 20162 +Display: 01010001 11011010 -123185 20162 7887 _ +Stimuli: 28 57 12345818 -123372 20168 +Display: 01010101 11011111 -123178 20168 7894 _ +Stimuli: 29 59 12345823 -123369 20174 +Display: 01010111 11100100 -123171 20174 7901 _ +Stimuli: 30 61 12345828 -123366 20180 +Display: 01011011 11101001 -123164 20180 7908 _ +Stimuli: 31 63 12345833 -123363 20186 +Display: 01011101 11101110 -123157 20186 7915 _ +Stimuli: 32 65 12345838 -123360 20192 +Display: 01100001 11110011 -123150 20192 7922 _ +Stimuli: 33 67 12345843 -123357 20198 +Display: 01100011 11111000 -123143 20198 7929 _ +Stimuli: 34 69 12345848 -123354 20204 +Display: 01100111 11111101 -123136 20204 7936 _ +Stimuli: 35 71 12345853 -123351 20210 +Display: 01101001 00000010 -123129 20210 7943 _ +Stimuli: 36 73 12345858 -123348 20216 +Display: 01101101 00000111 -123122 20216 7950 _ +Stimuli: 37 75 12345863 -123345 20222 +Display: 01101111 00001100 -123115 20222 7957 _ +Stimuli: 38 77 12345868 -123342 20228 +Display: 01110011 00010001 -123108 20228 7964 _ +Stimuli: 39 79 12345873 -123339 20234 +Display: 01110101 00010110 -123101 20234 7971 _ +Stimuli: 40 81 12345878 -123336 20240 +Display: 01111001 00011011 -123094 20240 7978 _ +Stimuli: 41 83 12345883 -123333 20246 +Display: 01111011 00100000 -123087 20246 7985 _ +Stimuli: 42 85 12345888 -123330 20252 +Display: 01111111 00100101 -123080 20252 7992 _ +Stimuli: 43 87 12345893 -123327 20258 +Display: 10000001 00101010 -123073 20258 7999 _ +Stimuli: 44 89 12345898 -123324 20264 +Display: 10000101 00101111 -123322 20264 7750 _ +Stimuli: 45 91 12345903 -123321 20270 +Display: 10000111 00110100 -123315 20270 7757 _ +Stimuli: 46 93 12345908 -123318 20276 +Display: 10001011 00111001 -123308 20276 7764 _ +Stimuli: 47 95 12345913 -123315 20282 +Display: 10001101 00111110 -123301 20282 7771 _ +Stimuli: 48 97 12345918 -123312 20288 +Display: 10010001 01000011 -123294 20288 7778 _ +Stimuli: 49 99 12345923 -123309 20294 +Display: 10010011 01001000 -123287 20294 7785 _ +Stimuli: 50 101 12345928 -123306 20300 +Display: 10010111 01001101 -123280 20300 7792 _ +Stimuli: 51 103 12345933 -123303 20306 +Display: 10011001 01010010 -123273 20306 7799 _ +Stimuli: 52 105 12345938 -123300 20312 +Display: 10011101 01010111 -123266 20312 7806 _ +Stimuli: 53 107 12345943 -123297 20318 +Display: 10011111 01011100 -123259 20318 7813 _ +Stimuli: 54 109 12345948 -123294 20324 +Display: 10100011 01100001 -123252 20324 7820 _ +Stimuli: 55 111 12345953 -123291 20330 +Display: 10100101 01100110 -123245 20330 7827 _ +Stimuli: 56 113 12345958 -123288 20336 +Display: 10101001 01101011 -123238 20336 7834 _ +Stimuli: 57 115 12345963 -123285 20342 +Display: 10101011 01110000 -123231 20342 7841 _ +Stimuli: 58 117 12345968 -123282 20348 +Display: 10101111 01110101 -123224 20348 7848 _ +Stimuli: 59 119 12345973 -123279 20354 +Display: 10110001 01111010 -123217 20354 7855 _ +Stimuli: 60 121 12345978 -123276 20360 +Display: 10110101 01111111 -123210 20360 7862 _ +Stimuli: 61 123 12345983 -123273 20366 +Display: 10110111 10000100 -123203 20366 7869 _ +Stimuli: 62 125 12345988 -123270 20372 +Display: 10111011 10001001 -123196 20372 7876 _ +Stimuli: 63 127 12345993 -123267 20378 +Display: 10111101 10001110 -123189 20378 7883 _ +Stimuli: 64 -127 12345998 -123264 20384 +Display: 11000001 10010011 -123182 20384 7890 _ +Stimuli: 65 -125 12346003 -123261 20390 +Display: 11000011 10011000 -123175 20390 7897 _ +Stimuli: 66 -123 12346008 -123258 20396 +Display: 11000111 10011101 -123168 20396 7904 _ +Stimuli: 67 -121 12346013 -123255 20402 +Display: 11001001 10100010 -123161 20402 7911 _ +Stimuli: 68 -119 12346018 -123252 20408 +Display: 11001101 10100111 -123154 20408 7918 _ +Stimuli: 69 -117 12346023 -123249 20414 +Display: 11001111 10101100 -123147 20414 7925 _ +Stimuli: 70 -115 12346028 -123246 20420 +Display: 11010011 10110001 -123140 20420 7932 _ +Stimuli: 71 -113 12346033 -123243 20426 +Display: 11010101 10110110 -123133 20426 7939 _ +Stimuli: 72 -111 12346038 -123240 20432 +Display: 11011001 10111011 -123126 20432 7946 _ +Stimuli: 73 -109 12346043 -123237 20438 +Display: 11011011 11000000 -123119 20438 7953 _ +Stimuli: 74 -107 12346048 -123234 20444 +Display: 11011111 11000101 -123112 20444 7960 _ +Stimuli: 75 -105 12346053 -123231 20450 +Display: 11100001 11001010 -123105 20450 7967 _ +Stimuli: 76 -103 12346058 -123228 20456 +Display: 11100101 11001111 -123098 20456 7974 _ +Stimuli: 77 -101 12346063 -123225 20462 +Display: 11100111 11010100 -123091 20462 7981 _ +Stimuli: 78 -99 12346068 -123222 20468 +Display: 11101011 11011001 -123084 20468 7988 _ +Stimuli: 79 -97 12346073 -123219 20474 +Display: 11101101 11011110 -123077 20474 7995 _ +Stimuli: 80 -95 12346078 -123216 20480 +Display: 11110001 11100011 -123070 20480 8002 _ +Stimuli: 81 -93 12346083 -123213 20486 +Display: 11110011 11101000 -123063 20486 8009 _ +Stimuli: 82 -91 12346088 -123210 20492 +Display: 11110111 11101101 -123056 20492 8016 _ +Stimuli: 83 -89 12346093 -123207 20498 +Display: 11111001 11110010 -123049 20498 8023 _ +Stimuli: 84 -87 12346098 -123204 20504 +Display: 11111101 11110111 -123042 20504 8030 _ +Stimuli: 85 -85 12346103 -123201 20510 +Display: 11111111 11111100 -123035 20510 8037 _ +Stimuli: 86 -83 12346108 -123198 20516 +Display: 00000011 00000001 -123028 20516 8044 _ +Stimuli: 87 -81 12346113 -123195 20522 +Display: 00000101 00000110 -123021 20522 8051 _ +Stimuli: 88 -79 12346118 -123192 20528 +Display: 00001001 00001011 -123014 20528 8058 _ +Stimuli: 89 -77 12346123 -123189 20534 +Display: 00001011 00010000 -123007 20534 8065 _ +Stimuli: 90 -75 12346128 -123186 20540 +Display: 00001111 00010101 -123000 20540 8072 _ +Stimuli: 91 -73 12346133 -123183 20546 +Display: 00010001 00011010 -122993 20546 8079 _ +Stimuli: 92 -71 12346138 -123180 20552 +Display: 00010101 00011111 -122986 20552 8086 _ +Stimuli: 93 -69 12346143 -123177 20558 +Display: 00010111 00100100 -122979 20558 8093 _ +Stimuli: 94 -67 12346148 -123174 20564 +Display: 00011011 00101001 -122972 20564 8100 _ +Stimuli: 95 -65 12346153 -123171 20570 +Display: 00011101 00101110 -122965 20570 8107 _ +Stimuli: 96 -63 12346158 -123168 20576 +Display: 00100001 00110011 -122958 20576 8114 _ +Stimuli: 97 -61 12346163 -123165 20582 +Display: 00100011 00111000 -122951 20582 8121 _ +Stimuli: 98 -59 12346168 -123162 20588 +Display: 00100111 00111101 -122944 20588 8128 _ +Stimuli: 99 -57 12346173 -123159 20594 +Display: 00101001 01000010 -122937 20594 8135 _ + +Info: /OSCI/SystemC: Simulation stopped by user. diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/main.cpp b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/main.cpp new file mode 100644 index 000000000..ab653c040 --- /dev/null +++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/main.cpp @@ -0,0 +1,108 @@ +/***************************************************************************** + + 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: Stan Liao, Synopsys, Inc., 1999-09-21 + + *****************************************************************************/ + +/***************************************************************************** + + 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/addition/datatypes/stimulus.cpp b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/stimulus.cpp new file mode 100644 index 000000000..79a2d896a --- /dev/null +++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/stimulus.cpp @@ -0,0 +1,84 @@ +/***************************************************************************** + + 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; + + int counter = 0; + tmp1 = "00000000"; + tmp2 = "00000001"; + tmp3 = 12345678; + tmp4 = -123456; + tmp5 = 20000; + tmp6 = 'R'; + + + while(counter<100){ + 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); + counter++; + wait(); + } + sc_stop(); +} +// EOF diff --git a/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/stimulus.h b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/stimulus.h new file mode 100644 index 000000000..689995a6a --- /dev/null +++ b/src/systemc/tests/systemc/misc/cae_test/general/arith/addition/datatypes/stimulus.h @@ -0,0 +1,89 @@ +/***************************************************************************** + + 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 |