[sv-bc] RE: [sv-ec] !, && and || operators allowed for virtual interface or event or chandle variables

From: Rich, Dave <Dave_Rich_at_.....>
Date: Mon Mar 10 2008 - 23:22:37 PDT
That e-mail was suggesting the change to the LRM that would be needed to
make those operators legal.

 

So yes, it is currently illegal behavior by the LRM, but is not
irrational behavior by the simulator.

 

Dave

 

 

________________________________

From: Moumita [mailto:moumita@cal.interrasystems.com] 
Sent: Monday, March 10, 2008 10:20 PM
To: Rich, Dave
Cc: sv-bc; sv-ec
Subject: Re: [sv-ec] !, && and || operators allowed for virtual
interface or event or chandle variables

 

Hi Dave,

In the sv-bc mail list (subject: List of operators allowed on class
object) I have found
a mail where you mentioned that !,&& and || logical operators are valid
for class handle variable .
But it is contradicting the table 11-1 in draft 4.
Most of the simulators are passing  !,&& and || logical operators for
class handle variable .
So  simulator behavior is illegal in this context?

Thanks and regards,
Moumita


Rich, Dave wrote: 

Those operators are currently not legal any for data type that accepts
null as a value. See table 11-1 in draft 4. For example, you must write
your first expression as
 
initial begin
         if ((vi3!=null) || (vi1!=null))
 
There has been some discussion about the meaning of
 
if (vi3)
 
which the LRM says is equivalent to
 
if (vi3 !=0)
 
and would clearly be illegal, but most implementations already accept
that.
 
Dave
 
 
 
  

	-----Original Message-----
	From: owner-sv-ec@server.eda.org
[mailto:owner-sv-ec@server.eda.org]
	    

On
  

	Behalf Of Moumita
	Sent: Monday, March 10, 2008 12:51 AM
	To: sv-bc; sv-ec
	Subject: [sv-ec] !, && and || operators allowed for virtual
interface
	    

or
  

	event or chandle variables
	 
	Hi,
	 
	!, && and || operators are allowed for class handle variable as
null
	    

can
  

	be
	assigned to any class handle variable.
	 
	And null can also be assigned to any virtual interface or event
or
	    

chandle
  

	variable
	So  !, && and || operators should be allowed for these variables
too.
	So if we have a testcase -
	    I1 i1();
	    virtual i1 vi1 = null;
	    virtual i1 vi3 = null;
	    chandle d, a   ;
	    event e1, e2 = null;
	 
	    initial begin
	        if (vi3 || vi1)  //|| operaor is used with virtual
interface
	variable
	 begin
	 end
	        if( d && a)  //&& operator is used with chandle variable
	 begin
	        end
	        if(!e1) // ! operator is used with event varaible
	        begin
	        end
	    end
	endmodule
	 
	interface I1;
	endinterface
	 
	 
	Is there any issue for these cases?
	 
	Thanks and regards,
	Moumita
	 
	 
	 
	 
	 
	--
	This message has been scanned for viruses and
	dangerous content by MailScanner, and is
	believed to be clean.
	    

 
 
 
 
 
  

 


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Mon Mar 10 23:24:35 2008

This archive was generated by hypermail 2.1.8 : Mon Mar 10 2008 - 23:27:37 PDT