Steven, It is legal for a program to call a function or task that is not defined in a program. I think the term "design module" should be replaced with "outside a program block" since you can have task defined in an interface, a package, or $unit. The LRM or BNF never explicitly limited $exit to be inside program blocks. It only loosely defined their behavior when call from a program block. Anyway, the new proposal should hopefully clarify a few of those issues. Dave > -----Original Message----- > From: Steven Sharp [mailto:sharp@cadence.com] > Sent: Friday, March 10, 2006 2:38 PM > To: sharp@cadence.com; sv-ec@eda.org; Rich, Dave > Subject: RE: [sv-ec] opinions on $exit > > > >The case I was thinking about is when a task with a $exit call is > >defined inside a package, and then called from a module or program > >block. The $exit would only have an effect when called from a program > >block. > > From section 16.5: "Calling program tasks or functions from within > design modules is illegal and shall result in an error." > > So it is not legal for a module to call a program task. If it is > not legal to put $exit anywhere except in a program, then it is > not possible to call $exit from a module thread. > > I would expect that for a task inside a package to contain $exit, > it would have to be declared in an anonymous program block. That > would make it a program task, and illegal to call from a module. > So again, it is impossible to call $exit from a module thread. > > Steven Sharp > sharp@cadence.comReceived on Fri Mar 10 21:17:02 2006
This archive was generated by hypermail 2.1.8 : Fri Mar 10 2006 - 21:19:08 PST