SV-EC Meeting Minutes 10 March 2003 11:00 am. Monday Voting Members (3/4 or > 75%) (rrrrrrrrrrrrrrrxrxrrxrr) (-----a----aaaaaaaaaaaaa) Arturo Salz (Synopsys) (-----aa-aaaaaaaaa-a--aa) Brad Pierce (Synopsys) (a-aaaa-aaa-aaaa-a-aa---) Cliff Cummings (IEEE 1364) (aaaaa-aaaa-aaaaaaaaaaaa) David Smith (Synopsys) (-aaa-a-aaaa---a-aaaa-aa) Dennis Brophy (ModelTech) (---aaa-a-aaaaaaaaaaaaaa) Francoise Martinolle (Cadence) (------------aaaaaaaa-aa) Jay Lawrence (Cadence) (-------------------a-aa) Jeff Freedman (ModelTech) (-------------------aaa-) Michael Burns (Motorola) (aaaapaaaaaaaaaaaaaaaaaa) Mehdi Mohtashemi (Synopsys) (-aaaaaaaa-aaaaaaaaaaaaa) Neil Korpusik (Sun) (-aaaaaaa-aaaaaa-aaaa-aa) Stefen Boyd (IEEE 1364) Non-Voting Members (attendance based) (----------------a------) Chris Spear (Synopsys) (----------------a------) Jayant Nagda (Synopsys) (aaaaaaaaaaaa-------a---) Karen Pieper (Synopsys) (---a-aa-----a----------) Kurt Takara (0-in) (aapaa----------ma----a-) Peter Flake (Synopsys) (--------aa-a-a-aaa-a--a) Stu Sutherland (IEEE 1364) Guests (non-voting) (--a--------------------) Adam Krolnik (LSI Logic) (---a-a----------a------) Alec Stanculescu (Fintronic) (----------------a------) Alex Zamfirescu (ASC) (---------aa-a-aa-a-a---) Don Mills (LCDM Engineering) (aa-aa------------------) Heath Chambers (HMC) (aaa-aaaaaaaaaaaaaaaaaaa) Kevin Cameron (National) (-----a-a-a-a-----------) Tim Corcoran (WHDL) Inactive Members (Missed last 4 meetings) (-aaa-------------------) Dave Kelf (Synopsys) (--a--a-a---------------) Michael McNamara (Verisity) (aaa--------------------) Paul Graham (Cadence) (a----------------------) Roy Armoni (Intel) (aapa-a---------------a-) Simon Davidmann (IEEE) (aa---a-----------------) Steven Sharp (Cadence) (-----a-----------------) Stephen Meier (Synopsys) (-aaaaa--a--------------) Tom Fitzpatrick (Synopsys) (-----a-----------------) Zeev Kirshenbaum (Verisity) r => Regular meeting x => Extra meeting (Presence counts for attendance, absence does not) a => Attended p => Attended by proxy - => Missed Action Items: 74. David: Move section 20 to between 11 and 12. 75. Stu/Stefen: In section 20, consolidate the BNF, all the wordage to use the consolidated BNF in the entire section. 76. David: Renumber Sections 20.5 -20.12 20.4.1 to 20.4.8, move 20.17 to 20.4.9, renumber 20.13,14,15,16, and 18. 77. Arturo: Move last paragraph of 20.6 to section 20.13.2 78. David: Reword the sentence in Section 20.7 that uses MUST to remove implication of error. 79. David: Section 3.7 add the case for testing the value, boolean based on null or handle legal value, test for boolean clause has to be included here [need to look at other places?] 80. Arturo: In section 20.15.1 and 20.16.1 for syntax of disabling constraints and random variables constraint methods, or system task take a look at this in more detail. 81. David: Section 13.14.2 make correction for pe.nibble and using the <= operator 82. Arturo: Section 13.14.2 add clarification on drive mechanism indicating that the output drive creates a driver etc.... 83. Arturo: Section 8.9, add the use of just a clocking domain name 84. David: Deal with the editors note at the end of 13.2 to clarify the type of step. 85. David: Request Synopsys to provide the C code implementation for $srandom and $urandom. Minutes 2/10/03 taken by Mehdi Mohtashemi Neil: there seems to be an error, last meeting, voting result, says failed, but it passed. Initial motion showing as failing, the amendments done. David: put a new version of the minutes, fix the voting result, It should be down as passed. With that amendment, Neil: makes motion to accept the minutes, Arturo: seconds, No one abstains, No one against, minutes passed. Meeting on Friday starts at 10:00 am, to 1:00 pm on 3/14/03. David: start with review of random constraint, with the update that was sent out earlier today. Some initial questions from Arturo, Neil: have given feedback to Arturo and Mehdi on this. David: all of your comments/issues have been addressed on this latest, CH116 has all the other edits from stefen and yours, typos, etc. Jay: I sent out two items on the constraint issues [slow on the reflector] Stefen: move it to new section 12. Jay: i think it is important to outside, as David: next issue, Stefen felt to define the random algorithm. Stefen: the same benefit as to get $random to get consistent across simulator. better chance to get the random generation same sequence. Jay: that may not be the case, can you replace all your $random with $srandom, to give you random number base, used to seed the constraint solver, agree to produce the consistent sequence. Arturo: yes. Stefen: it would be nice to have things to operate the same way with no constraint. Arturo: but that depends on many other things as well, such as when processes get scheduled. David: there is no uninomity, also since we do not have implementation of random number, concern to get it finalized/concensus. time and procedure, even if we agree to do it, where does it come from...does it have to be there absolutely Arturo: using the $urandom number to retrieve the random numbers, as a user they can replace their own versions. Stu: which is most users did with $random, untill 2001, still used David: we can note the desire for this, for 3.2 or some one donates the implementation. Jay: from cadence viewpoint, problems with $random, so we will see this as well with the const.solver, etc. Arturo: we are using the public domain random number generator. David: we could put a pointer that this is the public domain Stefen: then it is easy to publicize it, ... : what is the point of this, what would this provide for users. David: can we come to agreements on these. Jay: if it is easy to put the pointer to the way the random number genetor is. Arturo: but it is not as simple, it is the mathematical paper for this. Stefen: give us the c-code for it... Jay: we never gave the c-code for $random. Stu: from editor's point of view, all we say that editor will get it in the LRM. Arturo: this does not exist, the code may not be out there, but public algorithm. David: we will not be getting it, public domain source, implementation is not public domain. Stefen: i am looking for the implemenation, it has to be your implementation. Francoise: why is the algorithm not sufficient. Stefen: i want to know what is being done, Francoise: section 17.9.3 (?) algorithm for probablisitic distribution funciton, c-code for it. Stefen: the only thing i am interested, is what will be implemented in the standard David: not unanimity if it is needed here, Stu: i would be happy if we can include the algorithm in the appendix. David: we can put in what we want and ask for, and see if Synopsys will donate it. implementation of it, and Stu is asking for fallback position to include the c-code as an appendix. the third point we are hypothesizing it is a real issue, but maynot. Stefen: i am just asking for the donation from Synopsys. that is the motion. Stu: i need to ask Stefen to rephrase it. Mehdi: Motion we will leave this for the future. Arturo: i second it. Abstain: Dennis, Jay, Francoise, Jeff [3abstain] Objection: Stefen, Neil, Stu For: Stefen: request from synopsys c-code, or implementation, for $srandom and $urandom. David: are you asking for linear usage, suspect what you are asking does not exists. Jay: i think we should just request similar to what $random algorithm. Arturo: we can not donate the implementation of a public algorithm. David: the vote is that the comittee. Neil: definitley want to say c-code Stefen: Motion request synopsys provide the c-code for $urandom and $srandom. David: any second for motion. Neil: seconded. No one abstain, Objection: Arturo, Mehdi Motion passes. David: next, Neil raised a question being able to plug in constraint solver. Arturo responded., any other questions. David: Stefen's comment, the CH116 should be. looking at the random-constraint review sent out this morning. Stefen's comment on scalar -- to -- singular.. ch116. Jay's email, why rand/randc are part of class structure. Jay: it appears, you want to have a base class with data without the random attribute, then inherit it for randomization, why it should be part of the declaration, Arturo: you have functions to turn on/off. Jay: simply by calling the randomizating. we can eliminate rand/randc and then turn on the randomization as we need it. Stefen: question from Neil, how often you would know. Neil: you would know it upfront. Mehdi: it is usually known, more for testbench heirarchical development. Jay: if we had such thing as rand_mode, Arturo: the way we are doing it, Jay: it is not consistent with scv(?) Kevin: not consistent with AMS. David: but the AMS does not do constraint solving. Kevin: you just place what the data will be valid in ranges. Arturo: you can not change a cyclic one to non-cyclic one, threr is alot of performance optimization on these. David: any other discussion on this. Francoise: question, are these classes done, are part of testbench, Jay: in Vera was like that., testbench. David: no motion then on this, we move on. Stefen: i just had a chance to what is on the BNF., more of a matter, of modifying section 20 [or the new 12] place it in 20.4, David: how about if we put it in 20.2 Stefen: ... one large syntax box. David: so in 20.2, syntax box BNF for constraint elements. Stefen: i would pull all of the syntax in one location, large syntax. Arturo: what is not like BNF about it. Stefen: i am looking from editorial stand-point, David: you do not want to have it all over, maintenance issue, the issue of big picture we can have it in 20.2, the question is to leave them in other places, vs. maintenance issue. Jay: had question on how the BNF ... David: the question is not that, the question is to leave it in the rest of section or not. Stefen's comment is the bnf should not be duplicated any other place. Stefen: it is possible after changes it would be to the old style. Stu: a subsection for the BNF, then replace the bnf with example Neil: like the bnf in one place and examples for the places. David: is the text where how it is used BNF, psuedo-BNF, or example it is maintenacne problem. Arturo: the bnf should be in the section for bnf. Stefen: problem is what to do with the sub-sections. Arturo: put the bnf in one section and copy the ones you need in the subsection. Stefen: pseudo-bnf has to be turned into bnf. Arturo: there is semantic checking that is not going to be part of bnf. where does the semantic definition go to. David: have we not done this in other sections. Stu, in 1364, there is no section bnf in two places. what is the fix. Stefen: similar to section 10, syntax box for task, syntax box for function, Stu: the least error-prone is to keep BNF if one place, in one section. sub-sections only give examaples. David: semantic content has to refer back to the table, Arturo: not much problem with constraint definition, but with implication operator, how would you point to the line that refers to implication operator.... who is going to rewrite all of this. Stu: i was going to put the BNF in one place any way. with editor's note. David: whe are going to be done Stefen with all BNF to deliver to Stu which is a time concern, this has to go to accellera member companies by April 1st. Jay: the april 1st depends on the issues resolved. David: just to make sure the implications are clear. David: the next section, re-wording done on 20.2, 20.3 Neil raised some questions on dynamic array content, 20.4 restriction on the class [removed] 20.5 suggestion to re-order Neil: agree with Stefen's suggestion, 20.5 to 20.12 to make it subsection to 20.4 Arturo: do not know how it makes it more appropriate, at least 20.18 should be stand-alone. David: so 20.5-20.12 to make it subsection to 2.4. Stefen: do you feel 20.13-20.20 are summary. goal is to group it together. Jay: grouping it makes more sense. David: question is for 20.16 to 20.18, should they be grouped together under 20.4 Arturo: these are system task, want to create a new section. David: to take 16-17-18, to 20.4, after 12 Neil: take 20.16 and 20.18 after 12 [in 20.4] David: present 20.6 [will be renumbered] Stefen's comment to move them to 20.13.2, Arturo: methods are not the same as constraint, there maybe some overlap, it should be as part of constratint, the above changes should be sufficient. Stefen: maybe i got it misnumbered. David: do you agree with that. David: 20.7 stefen's comment, do we get error. Arturo: has responded with the .... Stefen: 'shall be' or 'must be'... David: if we repharse the wording, Stefen: the tool is going to protect you. David: typo Neil found inside array, ch116 Arturo: translation made it incorrect, original one was correct. Francoise: example is array initialization, for the ch116. first constraint c1. x{3.. Arturo: it looks similar to it., but constraint. the typo: type should be integer. David: this would be fixed, 20.7 20.8 typo, missing out of the document. dist as expression 20.9 Implications: two changes. Jay: is this really bi-directional. Arturo: not in the sense of data flow, each affecting the other. Neil: do not like bidirectional. Jay: a => b , same as if (a) then b. Arturo: if a then b, can constraint b to 5, then a, bidirectional in that way. implication is boolean. ... : no direction to implication. Arturo: the solver can solve for both or first one, then other. ... : implication is not directional. Arturo: boolean logic operator... Jay: is there is a reason to have this, Arturo: if else can give you the negate clause, users like the implication. Franciose: i like the implication but do not like the bi-directional Arturo: none of these are bi-directional. Brad: where is that syntax come from Arturo: multiple symbols used, imply etc... David: is there a change needed here, Arturo: bi-directional needs to be changed, David: it does say it though in the second paragraph.... ......... boolean third paragraph from the bottom. Arturo: it will be true only when a or b true and a or b not true. if part is true implied is false, if part if false and implied true. umberela example: we need to work on the word. Jay: the problem is with the operator, that it does not work with the directiona. also check the assertion syntax so it does not collide with it. David: even if the word implies then the direction. need to create examples to show the exact meaning. Arturo: it does not collide with the assertion. David: finished implication 20.9, to... 20.10: 20.11: got changed, question about sub-tree/subtree. hyphenated it is. 20.12: circular dependencies... page 208. Neil: any error message in here. Arturo: constraint will fail, whatever implementation must catch it, could not solve it and why it failed. David: 20.13.1, change in wording 20.13.2 Stefen: in 3.7, == != leaving off for handles. Arturo: null was defined to have a value of 0. Stefen: need to make it clear in 3.7, David: in 1364, how does the test of equality defined, why different here. you want add one more clause for implicit test. Stefen: if used by itself, gives a value of true, David: notes becomes 20.13.3 changes are done 20.14: what do we do with conceptual on/off Stefen: why not p.v.constraint_mode(.), method on the constraint, not the object, not ambiguious, Arturo: it is ambigious, is this a virtual semantics, Stefen: i am trying to make it look at $constraint_mode, Arturo: the constraint system task works on all variables., making the constraint_mode virtual. Neil: i like the suggestion David: 20.16, wa also on the change. David: with the exception of action item, is there enough understaning of this section 20, are we able to vote on the overall section. Motion to accept chapter/section 20, change list, and action items Arturo: second the motion. Jay: i would like to see the new revised version. David: of course i would go through the changes and vote on those changes after all. Stefen: correct to not accetp any more changes. David: i am looking at accepting the semantics, heard first and second and the discussion. No Abstain, No against, unanimous acceptance. For document sent on Open Issues David: sent a pdf file of all the changes that did not get voted on, want to go through them. all the changes. ch113 list of all the changes that have been proposed, it accepts all that have been resolved before. Ch 60: input sampling section 13.13 reworded Neil: what happens when sampling signal within expression, Arturo: statement uses the value that clocked smapled has. David: no one has objection on 60? Neil: solved. David: Anyone has objection with all changes, if no one calls a vote on it then, on each one. Ch 60: No objection, Accepted Ch 84: No comments/issues: Accepted Ch 98: Francoise: the drive in reactive region? ... : after NBA is reactive region. no more issues/questions issues/problems? Accepted Ch 101: covers 13.14.1,2,3 Jay: ternary operator, condition is x, 'MAMBO', same clock domain, vs different clock domain, last one wins. non-deterministic, no need to add notes... No issues/questions Accepted Ch 102: change handle to clarify for chandle No issues/questions Accepted Ch 96: Arturo: clocking drives are NBAs, and change the syntax to show, should match with what assertion looks. Francoise: 13.14.2, pe.nibble <= is the correct No more issues/questions Accepted Ch 97: multiple clocking domain drive assignment to clock domain at the same time. Add the clarifications for the drive mechanism No more issues/questions Accepted Ch 99: No more issues/questions Accepted Ch 100: David: separate discussion with separate mechanism Kevin: disable_block is sufficient. Arturo: disable_fork is needed to kill all spawed threads. Stefen: having disable_fork helps with all the 'child' threads that are part, apply with the children spawned with specific fork thread. $terminate, it seems more clear that it applied to all processes.... lets hold to $terminate ... Arturo: several items, fine grain control, as well as terminating the processes spawned within the scope. Jay: we could essentially do the same thing, ... David: is there a motion to change what is in ch100,.. Stefen: just wanted to see the path, satisfied so far. No more issues/questions Accepted [suspend_thread is removed, one liner in c113] Ch 93, 94: together modify 13.12 Jay: new syntax for events? Arturo: there is no new event syntax, just semantics Jay: can you put the name of clocking domain ? Arturo: can put it, resolution to provide the semantics for clock domain section No more issues/questions Accepted Ch 47: step definition Jay: discussion on 1step/ time literals. Arturo: change 81 on page 105 second paragraph... step is a special time unit.... Jay: are we allowed to use this 1step in other places. Arturo: it appears that the concept is defined someother places. David: Francoise/Neil had objections on this, still Neil: ok with that, ... Jay: as soon as it is introduced as time-literals users will start to use it. Arturo: we could choose to limit other operators not to use step. to restrict it or allow it. Jay: it will cause problems if things are used, get the verilog global precision, all the time, even with vhdl. David: discussion is related to the editor's note, not ch 47, lets get 47 resolved and then the editor's note. Francoise needs to make a decsion on this. Francoise: looking for definition on skews delay value and/or step. David: it states here, plus the removal of redundant paragraph. Francoise: skew must be delay value of bnf construct equivalent Arturo: it has to be constant expression., delay value does not show time unit, a bug, it should add time-literals. we can not use delay value, it has to be constant expression. David: constant delay value ok?, any issue, need the vote on accepting Francoise: Motion to change it to: skew must be a constant delay value. David: second? Arturo: delay value? is it a constant expression, such as 1+3, Stefen: it has to be in (), or very simple. Arturo: Motion: change the wording ch 47: the skew must be a constant expression, can be specified as a parameter or a delay value. David: lets vote on ch 47, Motion to accept as it is, Arturo: second Against Francoise Abstain none ch 47 Passed. David: anyone not looked at include from Jay, Jay: response, corrected the c intepretaion, David: change would be first at system area, then Jay: " ", syntax in current directory and parents, and <> system directory. Arturo: i would leave "" alone, backward compatability. if enough demand, proper verilog header files will be placed in the system. Kevin: my proposal was the same to AMS last year, can collide, Jay: will respond to the reflector. David: for Friday's meeting, re-arrange system include event handling feedaback on Annex D. [get the discussion on reflector] Jay: in event discussion, event trigger, proposal in chapter 11 issues, add NBA triggering for events. David: would like to separate the two, get a vote on the event and then have the above. put out changes 111-116 email vote, closing on thursday and clocking domain. Stefen: i have put out the re-usability issue, clocking domain syntax, Neil: this is the re-usability item discussed Arturo: valuable to add, David: is there dependency on what we do now. Stefen: syntactic conflict, wrong solution to put in. David: can we vote on it now and then bring yours. Friday start at 10:00, will go on for whatever length to finish all items. Meeting adjourned at 2:35 PST.