From 16fa8d7cc8c92f5ab879e4cf9c6c0bbb3567860f Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Thu, 24 May 2018 01:37:55 -0700 Subject: systemc: Import tests from the Accellera systemc distribution. Change-Id: Iad76b398949a55d768a34d027a2d8e3739953da6 Reviewed-on: https://gem5-review.googlesource.com/10845 Reviewed-by: Giacomo Travaglini Maintainer: Gabe Black --- .../sc_clock/test01/golden/test01.log | 70 +++++++++++++++++ .../communication/sc_clock/test01/test01.cpp | 89 ++++++++++++++++++++++ .../sc_clock/test02/golden/test02.log | 20 +++++ .../communication/sc_clock/test02/test02.cpp | 83 ++++++++++++++++++++ .../sc_clock/test03/golden/test03.log | 9 +++ .../communication/sc_clock/test03/test03.cpp | 59 ++++++++++++++ .../sc_clock/test04/golden/test04.log | 3 + .../communication/sc_clock/test04/test04.cpp | 62 +++++++++++++++ 8 files changed, 395 insertions(+) create mode 100644 src/systemc/tests/systemc/communication/sc_clock/test01/golden/test01.log create mode 100644 src/systemc/tests/systemc/communication/sc_clock/test01/test01.cpp create mode 100644 src/systemc/tests/systemc/communication/sc_clock/test02/golden/test02.log create mode 100644 src/systemc/tests/systemc/communication/sc_clock/test02/test02.cpp create mode 100644 src/systemc/tests/systemc/communication/sc_clock/test03/golden/test03.log create mode 100644 src/systemc/tests/systemc/communication/sc_clock/test03/test03.cpp create mode 100644 src/systemc/tests/systemc/communication/sc_clock/test04/golden/test04.log create mode 100644 src/systemc/tests/systemc/communication/sc_clock/test04/test04.cpp (limited to 'src/systemc/tests/systemc/communication/sc_clock') diff --git a/src/systemc/tests/systemc/communication/sc_clock/test01/golden/test01.log b/src/systemc/tests/systemc/communication/sc_clock/test01/golden/test01.log new file mode 100644 index 000000000..68fd7fe24 --- /dev/null +++ b/src/systemc/tests/systemc/communication/sc_clock/test01/golden/test01.log @@ -0,0 +1,70 @@ +SystemC Simulation + +name = clock_0 +period = 1 ns +duty_cycle = 0.5 + +name = c2 +period = 1 ns +duty_cycle = 0.5 + +name = c3 +period = 8 ns +duty_cycle = 0.5 + +name = c4 +period = 8 ns +duty_cycle = 0.1 + +name = c5 +period = 8 ns +duty_cycle = 0.1 + +name = c6 +period = 8 ns +duty_cycle = 0.1 + +name = c7 +period = 8 ns +duty_cycle = 0.5 + +name = c8 +period = 8 ns +duty_cycle = 0.1 + +name = c9 +period = 8 ns +duty_cycle = 0.1 + +name = cA +period = 8 ns +duty_cycle = 0.1 + +Info: (I804) /IEEE_Std_1666/deprecated: + sc_clock(const char*, double, double, double, bool) + is deprecated use a form that includes sc_time or + sc_time_unit + +name = cB +period = 8 ns +duty_cycle = 0.5 + +name = cC +period = 8 ns +duty_cycle = 0.1 + +name = cD +period = 8 ns +duty_cycle = 0.1 + +name = cE +period = 8 ns +duty_cycle = 0.1 + +Info: (I804) /IEEE_Std_1666/deprecated: You can turn off warnings about + IEEE 1666 deprecated features by placing this method call + as the first statement in your sc_main() function: + + sc_core::sc_report_handler::set_actions( "/IEEE_Std_1666/deprecated", + sc_core::SC_DO_NOTHING ); + diff --git a/src/systemc/tests/systemc/communication/sc_clock/test01/test01.cpp b/src/systemc/tests/systemc/communication/sc_clock/test01/test01.cpp new file mode 100644 index 000000000..0d6e81174 --- /dev/null +++ b/src/systemc/tests/systemc/communication/sc_clock/test01/test01.cpp @@ -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. + + *****************************************************************************/ + +/***************************************************************************** + + test01.cpp -- + + 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: + + *****************************************************************************/ + +// test of the sc_clock constructors + +#include "systemc.h" + +#define CLOCK_INFO(clk) \ + cout << endl; \ + cout << "name = " << clk.name() << endl; \ + cout << "period = " << clk.period() << endl; \ + cout << "duty_cycle = " << clk.duty_cycle() << endl; + +int +sc_main( int, char*[] ) +{ + sc_time t1( 8, SC_NS ); + sc_time t2( 2, SC_NS ); + + sc_clock c1; + CLOCK_INFO( c1 ); + + sc_clock c2( "c2" ); + CLOCK_INFO( c2 ); + + sc_clock c3( "c3", t1 ); + CLOCK_INFO( c3 ); + sc_clock c4( "c4", t1, 0.1 ); + CLOCK_INFO( c4 ); + sc_clock c5( "c5", t1, 0.1, t2 ); + CLOCK_INFO( c5 ); + sc_clock c6( "c6", t1, 0.1, t2, false ); + CLOCK_INFO( c6 ); + + sc_clock c7( "c7", 8, SC_NS ); + CLOCK_INFO( c7 ); + sc_clock c8( "c8", 8, SC_NS, 0.1 ); + CLOCK_INFO( c8 ); + + sc_clock c9( "c9", 8, SC_NS, 0.1, 2, SC_NS ); + CLOCK_INFO( c9 ); + sc_clock cA( "cA", 8, SC_NS, 0.1, 2, SC_NS, false ); + CLOCK_INFO( cA ); + + sc_clock cB( "cB", 8 ); + CLOCK_INFO( cB ); + sc_clock cC( "cC", 8, 0.1 ); + CLOCK_INFO( cC ); + sc_clock cD( "cD", 8, 0.1, 2 ); + CLOCK_INFO( cD ); + sc_clock cE( "cE", 8, 0.1, 2, false ); + CLOCK_INFO( cE ); + + return 0; +} diff --git a/src/systemc/tests/systemc/communication/sc_clock/test02/golden/test02.log b/src/systemc/tests/systemc/communication/sc_clock/test02/golden/test02.log new file mode 100644 index 000000000..568507d71 --- /dev/null +++ b/src/systemc/tests/systemc/communication/sc_clock/test02/golden/test02.log @@ -0,0 +1,20 @@ +SystemC Simulation +m_cur_val for c1( "c1", t1, 0.1, t2 ) is: 0 +m_cur_val for c2( "c2", t1, 0.1, t2, false ) is: 1 +m_cur_val for c3( "c3", t1, 0.1, t2 ) is: 0 + +Info: (I804) /IEEE_Std_1666/deprecated: + sc_clock(const char*, double, double, double, bool) + is deprecated use a form that includes sc_time or + sc_time_unit +m_cur_val for c4( "c4", t1, 0.1, t2, false ) is: 1 +m_cur_val for c5( "c5", t1, 0.1, t2 ) is: 0 +m_cur_val for c6( "c6", t1, 0.1, t2, false ) is: 1 + +Info: (I804) /IEEE_Std_1666/deprecated: You can turn off warnings about + IEEE 1666 deprecated features by placing this method call + as the first statement in your sc_main() function: + + sc_core::sc_report_handler::set_actions( "/IEEE_Std_1666/deprecated", + sc_core::SC_DO_NOTHING ); + diff --git a/src/systemc/tests/systemc/communication/sc_clock/test02/test02.cpp b/src/systemc/tests/systemc/communication/sc_clock/test02/test02.cpp new file mode 100644 index 000000000..1d95b2a90 --- /dev/null +++ b/src/systemc/tests/systemc/communication/sc_clock/test02/test02.cpp @@ -0,0 +1,83 @@ +/***************************************************************************** + + 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. + + *****************************************************************************/ + +/***************************************************************************** + + test02.cpp -- + + Original Author: Ucar Aziz, Synopsys, Inc., 2002-02-15 + 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: + + *****************************************************************************/ + +// test of the sc_clock::print + +#include "systemc.h" + + +int +sc_main( int, char*[] ) +{ + sc_time t1( 8, SC_NS ); + sc_time t2( 2, SC_NS ); + + + sc_clock c1( "c1", t1, 0.1, t2 ); + cout << "m_cur_val for c1( \"c1\", t1, 0.1, t2 ) is: "; + c1.print(cout); + cout << "\n"; + + sc_clock c2( "c2", t1, 0.1, t2, false ); + cout << "m_cur_val for c2( \"c2\", t1, 0.1, t2, false ) is: "; + c2.print(cout); + cout << "\n"; + + + sc_clock c3( "c3", 8, SC_NS, 0.1 ); + cout << "m_cur_val for c3( \"c3\", t1, 0.1, t2 ) is: "; + c3.print(cout); + cout << "\n"; + + sc_clock c4( "c4", 8, SC_NS, 0.1, false ); + cout << "m_cur_val for c4( \"c4\", t1, 0.1, t2, false ) is: "; + c4.print(cout); + cout << "\n"; + + sc_clock c5( "c5", 8, SC_NS, 0.1, 2, SC_NS ); + cout << "m_cur_val for c5( \"c5\", t1, 0.1, t2 ) is: "; + c5.print(cout); + cout<< "\n"; + + sc_clock c6( "c6", 8, SC_NS, 0.1, 2, SC_NS, false ); + cout << "m_cur_val for c6( \"c6\", t1, 0.1, t2, false ) is: "; + c6.print(cout); + cout<< "\n"; + + return 0; +} diff --git a/src/systemc/tests/systemc/communication/sc_clock/test03/golden/test03.log b/src/systemc/tests/systemc/communication/sc_clock/test03/golden/test03.log new file mode 100644 index 000000000..e77ee4ca8 --- /dev/null +++ b/src/systemc/tests/systemc/communication/sc_clock/test03/golden/test03.log @@ -0,0 +1,9 @@ +SystemC Simulation + name = c1 + value = 0 +new value = 0 + + name = c2 + value = 1 +new value = 1 + diff --git a/src/systemc/tests/systemc/communication/sc_clock/test03/test03.cpp b/src/systemc/tests/systemc/communication/sc_clock/test03/test03.cpp new file mode 100644 index 000000000..3f82ef7f1 --- /dev/null +++ b/src/systemc/tests/systemc/communication/sc_clock/test03/test03.cpp @@ -0,0 +1,59 @@ +/***************************************************************************** + + 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. + + *****************************************************************************/ + +/***************************************************************************** + + test03.cpp -- + + Original Author: Ucar Aziz, Synopsys, Inc., 2002-02-15 + 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: + + *****************************************************************************/ + +// test of sc_clock::dump( ostream& os ) const + +#include "systemc.h" + + +int +sc_main( int, char*[] ) +{ + sc_time t1( 8, SC_NS ); + sc_time t2( 2, SC_NS ); + + sc_clock c1( "c1", t1, 0.1, t2 ); + c1.dump(cout); + cout << "\n"; + + sc_clock c2( "c2", t1, 0.1, t2, false ); + c2.dump(cout); + cout << "\n"; + + return 0; +} diff --git a/src/systemc/tests/systemc/communication/sc_clock/test04/golden/test04.log b/src/systemc/tests/systemc/communication/sc_clock/test04/golden/test04.log new file mode 100644 index 000000000..37da64982 --- /dev/null +++ b/src/systemc/tests/systemc/communication/sc_clock/test04/golden/test04.log @@ -0,0 +1,3 @@ +SystemC Simulation +current time is: 8 ns +now, the current time is: 10 ns diff --git a/src/systemc/tests/systemc/communication/sc_clock/test04/test04.cpp b/src/systemc/tests/systemc/communication/sc_clock/test04/test04.cpp new file mode 100644 index 000000000..759fc48fb --- /dev/null +++ b/src/systemc/tests/systemc/communication/sc_clock/test04/test04.cpp @@ -0,0 +1,62 @@ +/***************************************************************************** + + 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. + + *****************************************************************************/ + +/***************************************************************************** + + test04.cpp -- + + Original Author: Ucar Aziz, Synopsys, Inc., 2002-02-15 + 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: + + *****************************************************************************/ + +// test of sc_clock::time_stamp() + +#include "systemc.h" + + +int +sc_main( int, char*[] ) +{ + sc_time t1( 8, SC_NS ); + sc_time t2( 2, SC_NS ); + + sc_clock c1( "c1", t1, 0.1, t2 ); + sc_start(t1); + cout << "current time is: "; + cout << c1.time_stamp(); + cout << endl; + + sc_start(t2); + cout << "now, the current time is: "; + cout << c1.time_stamp(); + cout << endl; + + return 0; +} -- cgit v1.2.3