SystemC std_logic resolved type

Z

zoro

Guest
Hi,
I have encountred a problem while working with resolved sc_logic type.
Considering using resolved sc_logic even for signals, when I assign a
new value to such signals their value change to 'X'.

for example in the following code, "sa" signal gets 'X' at 25 ns
instead of '1'; This case doesn't happen for a,b,c signals.

-------Header
SC_MODULE (testbench) {

sc_signal_rv<8> a;
sc_signal_rv<8> b;
sc_signal_rv<8> c;
sc_signal_resolved sa;
sc_signal_resolved sb;
sc_signal_resolved sc;

sc_signal_rv<8> z;

void p1 ();
....
SC_CTOR(testbench) {

sa = (sc_logic )'0';
SC_THREAD(p1);

SC_THREAD(p2);
....
};
#endif
---------CPP
void testbench::p1(){
while(true){
sa = (sc_logic )'0';
wait(25,SC_NS);
sa = (sc_logic )'1';
wait(25,SC_NS);
}
}
 
"zoro" <zkarimi_ut@yahoo.com> wrote in message
news:6e16d7ce.0307022217.5e321d95@posting.google.com...
Hi,
I have encountred a problem while working with resolved
sc_logic type.
Considering using resolved sc_logic even for signals, when
I assign a
new value to such signals their value change to 'X'.

for example in the following code, "sa" signal gets 'X' at
25 ns
instead of '1'; This case doesn't happen for a,b,c
signals.

-------Header
SC_MODULE (testbench) {

sc_signal_rv<8> a;
sc_signal_rv<8> b;
sc_signal_rv<8> c;
sc_signal_resolved sa;
sc_signal_resolved sb;
sc_signal_resolved sc;

sc_signal_rv<8> z;

void p1 ();
...
SC_CTOR(testbench) {

sa = (sc_logic )'0';
SC_THREAD(p1);

SC_THREAD(p2);
...
};
#endif
---------CPP
void testbench::p1(){
while(true){
sa = (sc_logic )'0';
wait(25,SC_NS);
sa = (sc_logic )'1';
wait(25,SC_NS);
}
}
I don't think we can answer that question without
knowing what happens in process p2().

I suggest you post the complete code to the "SystemC Help"
web forum at www.systemc.org,

kind regards

Alan


--
Alan Fitch
Consultant

DOULOS - Developing Design Know-how
VHDL * Verilog * SystemC * Perl * Tcl/Tk * Verification *
Project Services

Doulos Ltd. Church Hatch, 22 Market Place, Ringwood,
Hampshire, BH24 1AW, UK
Tel: +44 (0)1425 471223 mail:
alan.fitch@doulos.com
Fax: +44 (0)1425 471573 Web:
http://www.doulos.com

The contents of this message may contain personal views
which are not the
views of Doulos Ltd., unless specifically stated.
 
The problem might be that you should typecast 1 in stead of '1'.

/Nicolai

zoro wrote:
Hi,
I have encountred a problem while working with resolved sc_logic type.
Considering using resolved sc_logic even for signals, when I assign a
new value to such signals their value change to 'X'.

for example in the following code, "sa" signal gets 'X' at 25 ns
instead of '1'; This case doesn't happen for a,b,c signals.

-------Header
SC_MODULE (testbench) {

sc_signal_rv<8> a;
sc_signal_rv<8> b;
sc_signal_rv<8> c;
sc_signal_resolved sa;
sc_signal_resolved sb;
sc_signal_resolved sc;

sc_signal_rv<8> z;

void p1 ();
...
SC_CTOR(testbench) {

sa = (sc_logic )'0';
SC_THREAD(p1);

SC_THREAD(p2);
...
};
#endif
---------CPP
void testbench::p1(){
while(true){
sa = (sc_logic )'0';
wait(25,SC_NS);
sa = (sc_logic )'1';
wait(25,SC_NS);
}
}
 

Welcome to EDABoard.com

Sponsor

Back
Top