summaryrefslogtreecommitdiff
path: root/src/systemc/tests/systemc/misc/communication/signals
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/tests/systemc/misc/communication/signals')
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/aggregate/golden/rgb.log1
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/aggregate/rgb.cpp77
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/aggregate/rgb.h80
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/bool/bool.f3
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/bool/golden/bool.log50
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/bool/main.cpp60
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/bool/proc1.cpp50
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/bool/proc1.h65
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/bool/proc2.cpp50
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/bool/proc2.h65
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/float/float.f3
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/float/golden/float.log50
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/float/main.cpp60
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/float/proc1.cpp50
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/float/proc1.h65
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/float/proc2.cpp50
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/float/proc2.h65
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/int/golden/int.log50
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/int/int.f3
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/int/main.cpp60
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/int/proc1.cpp50
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/int/proc1.h65
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/int/proc2.cpp50
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/int/proc2.h65
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/unsigned/golden/unsigned.log50
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/unsigned/main.cpp60
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/unsigned/proc1.cpp49
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/unsigned/proc1.h65
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/unsigned/proc2.cpp50
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/unsigned/proc2.h65
-rw-r--r--src/systemc/tests/systemc/misc/communication/signals/unsigned/unsigned.f3
31 files changed, 1529 insertions, 0 deletions
diff --git a/src/systemc/tests/systemc/misc/communication/signals/aggregate/golden/rgb.log b/src/systemc/tests/systemc/misc/communication/signals/aggregate/golden/rgb.log
new file mode 100644
index 000000000..6d243dcc5
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/aggregate/golden/rgb.log
@@ -0,0 +1 @@
+SystemC Simulation
diff --git a/src/systemc/tests/systemc/misc/communication/signals/aggregate/rgb.cpp b/src/systemc/tests/systemc/misc/communication/signals/aggregate/rgb.cpp
new file mode 100644
index 000000000..4d77eb316
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/aggregate/rgb.cpp
@@ -0,0 +1,77 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ rgb.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:
+
+ *****************************************************************************/
+
+#include "systemc.h"
+#include "rgb.h"
+
+void sc_trace(sc_trace_file* tf,const rgb_t& s, const std::string& NAME) {
+ sc_trace(tf, s.red, NAME + ".red");
+ sc_trace(tf, s.green, NAME + ".green");
+ sc_trace(tf, s.blue, NAME + ".blue");
+}
+
+void
+some_process::entry()
+{
+ rgb_t clin;
+ rgb_t clout;
+
+ while( true ) {
+ clin = color_in.read();
+ clout = clin;
+ clout.red >>= 1;
+ clout.green >>= 2;
+ clout.blue <<= 1;
+ color_out.write( clout );
+ wait();
+ }
+}
+
+int
+sc_main( int, char*[] )
+{
+ sc_signal<rgb_t> in;
+ sc_signal<rgb_t> out;
+
+ sc_clock clk( "CLK" );
+
+ some_process foo( "FOO", clk, in, out );
+
+ sc_start( 1000, SC_NS );
+
+ return 0;
+}
diff --git a/src/systemc/tests/systemc/misc/communication/signals/aggregate/rgb.h b/src/systemc/tests/systemc/misc/communication/signals/aggregate/rgb.h
new file mode 100644
index 000000000..4feb1e275
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/aggregate/rgb.h
@@ -0,0 +1,80 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ rgb.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:
+
+ *****************************************************************************/
+
+struct rgb_t
+{
+ unsigned red;
+ unsigned green;
+ unsigned blue;
+
+ bool operator == ( const rgb_t& rhs ) const
+ {
+ return ( red == rhs.red && green == rhs.green && blue == rhs.blue );
+ }
+};
+
+inline
+ostream&
+operator << ( ostream& os, const rgb_t& a )
+{
+ os << a.red << " " << a.green << " " << a.blue;
+ return os;
+}
+
+SC_MODULE( some_process )
+{
+ SC_HAS_PROCESS( some_process );
+
+ sc_in_clk clk;
+ sc_in<rgb_t> color_in;
+ sc_out<rgb_t> color_out;
+
+ // Constructor
+
+ some_process( sc_module_name NAME,
+ sc_clock& CLK,
+ sc_signal<rgb_t>& COLOR_IN,
+ sc_signal<rgb_t>& COLOR_OUT)
+ {
+ clk( CLK );
+ color_in( COLOR_IN );
+ color_out( COLOR_OUT );
+ SC_CTHREAD( entry, clk.pos() );
+ }
+
+ void entry();
+};
diff --git a/src/systemc/tests/systemc/misc/communication/signals/bool/bool.f b/src/systemc/tests/systemc/misc/communication/signals/bool/bool.f
new file mode 100644
index 000000000..f5262a45b
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/bool/bool.f
@@ -0,0 +1,3 @@
+bool/proc1.cpp
+bool/proc2.cpp
+bool/main.cpp
diff --git a/src/systemc/tests/systemc/misc/communication/signals/bool/golden/bool.log b/src/systemc/tests/systemc/misc/communication/signals/bool/golden/bool.log
new file mode 100644
index 000000000..c2c0e4e87
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/bool/golden/bool.log
@@ -0,0 +1,50 @@
+SystemC Simulation
+if( signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
diff --git a/src/systemc/tests/systemc/misc/communication/signals/bool/main.cpp b/src/systemc/tests/systemc/misc/communication/signals/bool/main.cpp
new file mode 100644
index 000000000..cea23cb69
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/bool/main.cpp
@@ -0,0 +1,60 @@
+/*****************************************************************************
+
+ 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: 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:
+
+ *****************************************************************************/
+
+#include "proc1.h"
+#include "proc2.h"
+
+int
+sc_main( int, char*[] )
+{
+ sc_signal<bool> ack;
+ sc_signal<bool> ready;
+
+ ack = true;
+ ready = true;
+
+ sc_clock clk( "Clock", 20, SC_NS, 0.5, 0.0, SC_NS );
+
+ proc1 P1( "P1", clk, ack, ready );
+ proc2 P2( "P2", clk, ready, ack );
+
+ sc_start( 500, SC_NS );
+
+ return 0;
+}
+
+
diff --git a/src/systemc/tests/systemc/misc/communication/signals/bool/proc1.cpp b/src/systemc/tests/systemc/misc/communication/signals/bool/proc1.cpp
new file mode 100644
index 000000000..8eff2df8f
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/bool/proc1.cpp
@@ -0,0 +1,50 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc1.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:
+
+ *****************************************************************************/
+
+#include "proc1.h"
+
+void
+proc1::entry()
+{
+ while( true ) {
+ if( ready ) {
+ ack.write( false );
+ cout << "if( signal ) works" << endl;
+ }
+ wait();
+ }
+}
diff --git a/src/systemc/tests/systemc/misc/communication/signals/bool/proc1.h b/src/systemc/tests/systemc/misc/communication/signals/bool/proc1.h
new file mode 100644
index 000000000..561fb30d2
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/bool/proc1.h
@@ -0,0 +1,65 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc1.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 PROC1_H
+#define PROC1_H
+
+#include "systemc.h"
+
+SC_MODULE( proc1 )
+{
+ SC_HAS_PROCESS( proc1 );
+
+ sc_in_clk clk;
+ sc_in<bool> ready;
+ sc_out<bool> ack;
+
+ proc1( sc_module_name NAME,
+ sc_clock& CLK,
+ sc_signal<bool>& READY,
+ sc_signal<bool>& ACK )
+ {
+ clk( CLK);
+ ready( READY );
+ ack( ACK );
+ SC_CTHREAD( entry, clk.pos() );
+ }
+
+ void entry();
+};
+
+#endif
diff --git a/src/systemc/tests/systemc/misc/communication/signals/bool/proc2.cpp b/src/systemc/tests/systemc/misc/communication/signals/bool/proc2.cpp
new file mode 100644
index 000000000..dbe1f4004
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/bool/proc2.cpp
@@ -0,0 +1,50 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc2.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:
+
+ *****************************************************************************/
+
+#include "proc2.h"
+
+void
+proc2::entry()
+{
+ while( true ) {
+ if( ! ready.read() ) {
+ ack.write( true );
+ cout << "if( !signal ) works" << endl;
+ }
+ wait();
+ }
+}
diff --git a/src/systemc/tests/systemc/misc/communication/signals/bool/proc2.h b/src/systemc/tests/systemc/misc/communication/signals/bool/proc2.h
new file mode 100644
index 000000000..fbc62a02d
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/bool/proc2.h
@@ -0,0 +1,65 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc2.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 PROC2_H
+#define PROC2_H
+
+#include "systemc.h"
+
+SC_MODULE( proc2 )
+{
+ SC_HAS_PROCESS( proc2 );
+
+ sc_in_clk clk;
+ sc_in<bool> ready;
+ sc_out<bool> ack;
+
+ proc2( sc_module_name NAME,
+ sc_clock& CLK,
+ sc_signal<bool>& READY,
+ sc_signal<bool>& ACK )
+ {
+ clk( CLK );
+ ready( READY );
+ ack( ACK );
+ SC_CTHREAD( entry, clk.pos() );
+ }
+
+ void entry();
+};
+
+#endif
diff --git a/src/systemc/tests/systemc/misc/communication/signals/float/float.f b/src/systemc/tests/systemc/misc/communication/signals/float/float.f
new file mode 100644
index 000000000..c435b03ff
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/float/float.f
@@ -0,0 +1,3 @@
+float/proc1.cpp
+float/proc2.cpp
+float/main.cpp
diff --git a/src/systemc/tests/systemc/misc/communication/signals/float/golden/float.log b/src/systemc/tests/systemc/misc/communication/signals/float/golden/float.log
new file mode 100644
index 000000000..c2c0e4e87
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/float/golden/float.log
@@ -0,0 +1,50 @@
+SystemC Simulation
+if( signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
diff --git a/src/systemc/tests/systemc/misc/communication/signals/float/main.cpp b/src/systemc/tests/systemc/misc/communication/signals/float/main.cpp
new file mode 100644
index 000000000..df88153d0
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/float/main.cpp
@@ -0,0 +1,60 @@
+/*****************************************************************************
+
+ 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: 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:
+
+ *****************************************************************************/
+
+#include "proc1.h"
+#include "proc2.h"
+
+int
+sc_main( int, char*[] )
+{
+ sc_signal<float> ack;
+ sc_signal<float> ready;
+
+ ack = 1.0;
+ ready = 1.0;
+
+ sc_clock clk( "Clock", 20, SC_NS, 0.5, 0.0, SC_NS );
+
+ proc1 P1( "P1", clk, ack, ready );
+ proc2 P2( "P2", clk, ready, ack );
+
+ sc_start( 500, SC_NS );
+
+ return 0;
+}
+
+
diff --git a/src/systemc/tests/systemc/misc/communication/signals/float/proc1.cpp b/src/systemc/tests/systemc/misc/communication/signals/float/proc1.cpp
new file mode 100644
index 000000000..7af23deaf
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/float/proc1.cpp
@@ -0,0 +1,50 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc1.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:
+
+ *****************************************************************************/
+
+#include "proc1.h"
+
+void
+proc1::entry()
+{
+ while( true ) {
+ if( ready.read() ) {
+ ack.write( 0.0 );
+ cout << "if( signal ) works" << endl;
+ }
+ wait();
+ }
+}
diff --git a/src/systemc/tests/systemc/misc/communication/signals/float/proc1.h b/src/systemc/tests/systemc/misc/communication/signals/float/proc1.h
new file mode 100644
index 000000000..6258013dd
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/float/proc1.h
@@ -0,0 +1,65 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc1.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 PROC1_H
+#define PROC1_H
+
+#include "systemc.h"
+
+SC_MODULE( proc1 )
+{
+ SC_HAS_PROCESS( proc1 );
+
+ sc_in_clk clk;
+ sc_in<float> ready;
+ sc_out<float> ack;
+
+ proc1( sc_module_name NAME,
+ sc_clock& CLK,
+ sc_signal<float>& READY,
+ sc_signal<float>& ACK )
+ {
+ clk( CLK );
+ ready( READY );
+ ack( ACK );
+ SC_CTHREAD( entry, clk.pos() );
+ }
+
+ void entry();
+};
+
+#endif
diff --git a/src/systemc/tests/systemc/misc/communication/signals/float/proc2.cpp b/src/systemc/tests/systemc/misc/communication/signals/float/proc2.cpp
new file mode 100644
index 000000000..b92097761
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/float/proc2.cpp
@@ -0,0 +1,50 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc2.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:
+
+ *****************************************************************************/
+
+#include "proc2.h"
+
+void
+proc2::entry()
+{
+ while( true ) {
+ if( ! ready .read() ) {
+ ack.write( 1.0 );
+ cout << "if( !signal ) works" << endl;
+ }
+ wait();
+ }
+}
diff --git a/src/systemc/tests/systemc/misc/communication/signals/float/proc2.h b/src/systemc/tests/systemc/misc/communication/signals/float/proc2.h
new file mode 100644
index 000000000..23607104f
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/float/proc2.h
@@ -0,0 +1,65 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc2.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 PROC2_H
+#define PROC2_H
+
+#include "systemc.h"
+
+SC_MODULE( proc2 )
+{
+ SC_HAS_PROCESS( proc2 );
+
+ sc_in_clk clk;
+ sc_in<float> ready;
+ sc_out<float> ack;
+
+ proc2( sc_module_name NAME,
+ sc_clock& CLK,
+ sc_signal<float>& READY,
+ sc_signal<float>& ACK )
+ {
+ clk( CLK );
+ ready( READY );
+ ack( ACK );
+ SC_CTHREAD( entry, clk.pos() );
+ }
+
+ void entry();
+};
+
+#endif
diff --git a/src/systemc/tests/systemc/misc/communication/signals/int/golden/int.log b/src/systemc/tests/systemc/misc/communication/signals/int/golden/int.log
new file mode 100644
index 000000000..c2c0e4e87
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/int/golden/int.log
@@ -0,0 +1,50 @@
+SystemC Simulation
+if( signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
diff --git a/src/systemc/tests/systemc/misc/communication/signals/int/int.f b/src/systemc/tests/systemc/misc/communication/signals/int/int.f
new file mode 100644
index 000000000..baac075a8
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/int/int.f
@@ -0,0 +1,3 @@
+int/proc1.cpp
+int/proc2.cpp
+int/main.cpp
diff --git a/src/systemc/tests/systemc/misc/communication/signals/int/main.cpp b/src/systemc/tests/systemc/misc/communication/signals/int/main.cpp
new file mode 100644
index 000000000..2b51e2fe9
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/int/main.cpp
@@ -0,0 +1,60 @@
+/*****************************************************************************
+
+ 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: 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:
+
+ *****************************************************************************/
+
+#include "proc1.h"
+#include "proc2.h"
+
+int
+sc_main( int, char*[] )
+{
+ sc_signal<int> ack;
+ sc_signal<int> ready;
+
+ ack = 1;
+ ready = 1;
+
+ sc_clock clk( "Clock", 20, SC_NS, 0.5, 0.0, SC_NS );
+
+ proc1 P1( "P1", clk, ack, ready );
+ proc2 P2( "P2", clk, ready, ack );
+
+ sc_start( 500, SC_NS );
+
+ return 0;
+}
+
+
diff --git a/src/systemc/tests/systemc/misc/communication/signals/int/proc1.cpp b/src/systemc/tests/systemc/misc/communication/signals/int/proc1.cpp
new file mode 100644
index 000000000..f81b89806
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/int/proc1.cpp
@@ -0,0 +1,50 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc1.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:
+
+ *****************************************************************************/
+
+#include "proc1.h"
+
+void
+proc1::entry()
+{
+ while( true ) {
+ if( ready ) {
+ ack.write( 0 );
+ cout << "if( signal ) works" << endl;
+ }
+ wait();
+ }
+}
diff --git a/src/systemc/tests/systemc/misc/communication/signals/int/proc1.h b/src/systemc/tests/systemc/misc/communication/signals/int/proc1.h
new file mode 100644
index 000000000..213623915
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/int/proc1.h
@@ -0,0 +1,65 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc1.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 PROC1_H
+#define PROC1_H
+
+#include "systemc.h"
+
+SC_MODULE( proc1 )
+{
+ SC_HAS_PROCESS( proc1 );
+
+ sc_in_clk clk;
+ sc_in<int> ready;
+ sc_out<int> ack;
+
+ proc1( sc_module_name NAME,
+ sc_clock& CLK,
+ sc_signal<int>& READY,
+ sc_signal<int>& ACK )
+ {
+ clk( CLK );
+ ready( READY );
+ ack( ACK );
+ SC_CTHREAD( entry, clk.pos() );
+ }
+
+ void entry();
+};
+
+#endif
diff --git a/src/systemc/tests/systemc/misc/communication/signals/int/proc2.cpp b/src/systemc/tests/systemc/misc/communication/signals/int/proc2.cpp
new file mode 100644
index 000000000..9dbe9bbd1
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/int/proc2.cpp
@@ -0,0 +1,50 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc2.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:
+
+ *****************************************************************************/
+
+#include "proc2.h"
+
+void
+proc2::entry()
+{
+ while( true ) {
+ if( ! ready.read() ) {
+ ack.write( 5 );
+ cout << "if( !signal ) works" << endl;
+ }
+ wait();
+ }
+}
diff --git a/src/systemc/tests/systemc/misc/communication/signals/int/proc2.h b/src/systemc/tests/systemc/misc/communication/signals/int/proc2.h
new file mode 100644
index 000000000..dde150122
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/int/proc2.h
@@ -0,0 +1,65 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc2.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 PROC2_H
+#define PROC2_H
+
+#include "systemc.h"
+
+SC_MODULE( proc2 )
+{
+ SC_HAS_PROCESS( proc2 );
+
+ sc_in_clk clk;
+ sc_in<int> ready;
+ sc_out<int> ack;
+
+ proc2( sc_module_name NAME,
+ sc_clock& CLK,
+ sc_signal<int>& READY,
+ sc_signal<int>& ACK )
+ {
+ clk( CLK );
+ ready( READY );
+ ack( ACK );
+ SC_CTHREAD( entry, clk.pos() );
+ }
+
+ void entry();
+};
+
+#endif
diff --git a/src/systemc/tests/systemc/misc/communication/signals/unsigned/golden/unsigned.log b/src/systemc/tests/systemc/misc/communication/signals/unsigned/golden/unsigned.log
new file mode 100644
index 000000000..c2c0e4e87
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/unsigned/golden/unsigned.log
@@ -0,0 +1,50 @@
+SystemC Simulation
+if( signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
+if( signal ) works
+if( !signal ) works
diff --git a/src/systemc/tests/systemc/misc/communication/signals/unsigned/main.cpp b/src/systemc/tests/systemc/misc/communication/signals/unsigned/main.cpp
new file mode 100644
index 000000000..463d1a50b
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/unsigned/main.cpp
@@ -0,0 +1,60 @@
+/*****************************************************************************
+
+ 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: 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:
+
+ *****************************************************************************/
+
+#include "proc1.h"
+#include "proc2.h"
+
+int
+sc_main( int, char*[] )
+{
+ sc_signal<unsigned int> ack;
+ sc_signal<unsigned int> ready;
+
+ ack = 1;
+ ready = 1;
+
+ sc_clock clk( "Clock", 20, SC_NS, 0.5, 0.0, SC_NS );
+
+ proc1 P1( "P1", clk, ack, ready );
+ proc2 P2( "P2", clk, ready, ack );
+
+ sc_start( 500, SC_NS );
+
+ return 0;
+}
+
+
diff --git a/src/systemc/tests/systemc/misc/communication/signals/unsigned/proc1.cpp b/src/systemc/tests/systemc/misc/communication/signals/unsigned/proc1.cpp
new file mode 100644
index 000000000..ac2f11150
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/unsigned/proc1.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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc1.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:
+
+ *****************************************************************************/
+
+#include "proc1.h"
+
+void proc1::entry()
+{
+ while( true ) {
+ if( ready ) {
+ ack.write( 0 );
+ cout << "if( signal ) works" << endl;
+ }
+ wait();
+ }
+}
diff --git a/src/systemc/tests/systemc/misc/communication/signals/unsigned/proc1.h b/src/systemc/tests/systemc/misc/communication/signals/unsigned/proc1.h
new file mode 100644
index 000000000..6f27bffbe
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/unsigned/proc1.h
@@ -0,0 +1,65 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc1.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 PROC1_H
+#define PROC1_H
+
+#include "systemc.h"
+
+SC_MODULE( proc1 )
+{
+ SC_HAS_PROCESS( proc1 );
+
+ sc_in_clk clk;
+ sc_in<unsigned int> ready;
+ sc_out<unsigned int> ack;
+
+ proc1( sc_module_name NAME,
+ sc_clock& CLK,
+ sc_signal<unsigned int>& READY,
+ sc_signal<unsigned int>& ACK )
+ {
+ clk( CLK );
+ ready( READY );
+ ack( ACK );
+ SC_CTHREAD( entry, clk.pos() );
+ }
+
+ void entry();
+};
+
+#endif
diff --git a/src/systemc/tests/systemc/misc/communication/signals/unsigned/proc2.cpp b/src/systemc/tests/systemc/misc/communication/signals/unsigned/proc2.cpp
new file mode 100644
index 000000000..9dbe9bbd1
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/unsigned/proc2.cpp
@@ -0,0 +1,50 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc2.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:
+
+ *****************************************************************************/
+
+#include "proc2.h"
+
+void
+proc2::entry()
+{
+ while( true ) {
+ if( ! ready.read() ) {
+ ack.write( 5 );
+ cout << "if( !signal ) works" << endl;
+ }
+ wait();
+ }
+}
diff --git a/src/systemc/tests/systemc/misc/communication/signals/unsigned/proc2.h b/src/systemc/tests/systemc/misc/communication/signals/unsigned/proc2.h
new file mode 100644
index 000000000..d6c37637e
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/unsigned/proc2.h
@@ -0,0 +1,65 @@
+/*****************************************************************************
+
+ 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.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ proc2.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 PROC2_H
+#define PROC2_H
+
+#include "systemc.h"
+
+SC_MODULE( proc2 )
+{
+ SC_HAS_PROCESS( proc2 );
+
+ sc_in_clk clk;
+ sc_in<unsigned int> ready;
+ sc_out<unsigned int> ack;
+
+ proc2( sc_module_name NAME,
+ sc_clock& CLK,
+ sc_signal<unsigned int>& READY,
+ sc_signal<unsigned int>& ACK )
+ {
+ clk( CLK );
+ ready( READY );
+ ack( ACK );
+ SC_CTHREAD( entry, clk.pos() );
+ }
+
+ void entry();
+};
+
+#endif
diff --git a/src/systemc/tests/systemc/misc/communication/signals/unsigned/unsigned.f b/src/systemc/tests/systemc/misc/communication/signals/unsigned/unsigned.f
new file mode 100644
index 000000000..26547bc07
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/communication/signals/unsigned/unsigned.f
@@ -0,0 +1,3 @@
+unsigned/proc1.cpp
+unsigned/proc2.cpp
+unsigned/main.cpp