Sorry, but after more thoughts, it makes sense since a local variable formal argument, or even a local variable cannot write an event. However, a formal argument can be used as a trigger in the sequence or a property (not sure if formal argument of a property can be an event). Ben On Sun, May 10, 2009 at 12:13 AM, ben cohen <hdlcohen@gmail.com> wrote: > An errata to my last comment: It strikes me as odd, particularly, the way > I view it, a formal argument, by default of direction input, acts the same > as a local variable formal argument of direction input. Yet, type argument > of type event is legal if formal argument is not declared as a local > variable formal argument. > I meant to say, It strikes me as odd, particularly, the way I view it, a > non-local formal argument, by default of direction input, acts as a local > variable formal argument of direction input it is it not written into it > (i.e., can write into a local variable formal argument, but not into a > non-local formal argument). Yet, type argument of type event is legal if > formal argument is not declared as a local variable formal argument. > Ben > > On Sat, May 9, 2009 at 10:01 PM, ben cohen <hdlcohen@gmail.com> wrote: > >> Reading draft 8, (same in draft 7), I found the following, which sounds >> like contradictions in that type event, declared as illegal in 16.6.1Operand types, is used as formal argument, but is >> illegal in local variable formal argument. Specifically: >> 16.8.1 Typed formal arguments in sequence declarations >> If a formal argument of a named sequence is typed, then the type shall be >> sequence, event, or one of the >> types allowed in 16.6.1 >> [Ben Cohen] Interestingly, 16.6.1 specifies "event" as illegal. Thus, >> this is an exception. >> p321 >> The following shows an example of a formal argument with event type: >> sequence event_arg_example (event ev); >> @(ev) x ##1 y; >> endsequence >> >> 16.8.2 Local variable formal arguments in sequence declarations >> p322 >> sequence illegal_loc_var_formal ( >> output logic a, // illegal: local must be specified with >> ... >> local event e, // illegal: event is a type disallowed in >> // 16.6.1 >> --- >> 16.6.1 Operand types >> The following types are not allowed: >> Noninteger types (shortreal, real, and realtime) >> string >> event >> chandle >> class >> Associative arrays >> Dynamic arrays >> [Ben Cohen] So, If I understand this correctly, a typed formal argument >> that is declared with local is illegal, but if declared without the local >> is legal. >> Thus, updating the example on page 321, I can say the following: >> sequence event_arg_example_Ben ( >> local inout logic a, >> logic e, f, >> local event evt, // illegal: event is a type disallowed >> in 16.6.1 >> event ev); // Legal: Exception to rules in 16.6.1, as >> per 16.8.1 >> @(ev) a ##1 e; >> endsequence >> It strikes me as odd, particularly, the way I view it, a formal argument, >> by default of direction input, acts the same as a local variable formal >> argument of direction input. Yet, type argument of type event is legal if >> formal argument is not declared as a local variable formal argument. >> Where am wet here? >> Ben >> >> >> > -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Sun May 10 00:38:41 2009
This archive was generated by hypermail 2.1.8 : Sun May 10 2009 - 00:40:00 PDT