SV-EC Committee Meeting Monday September 25 2006 11:00am - 1:00pm PST [Minutes distributed for approval at next (sv-ec) committee meeting] (1212) Day (4815) (0000) Month (8899) (0000) Year (6666) --------- Attendees ---------- (-AAA) Arturo Salz (--AA) Cliff Cummings (AAAA) Dave Rich (AA-A) Francoise Martinolle (-AAA) Mehdi Mohtashemi (AAAA) Neil Korpusik (AAAA) Ray Ryan (----) Surrendra Dudani (AAAA) Gordon Vreugdenhil (AAAA) Steven Sharp (--AA) Phil Moorby (---A) Doug Warmke (AAAA) Stu Sutherland (-AAA) Heath Chambers (-AAA) Don Mills (--AA) Jonathan Bromley (--A-) Logie (NOTE: 3 meeting for voting rights ended Sep 11, 2006) NOTE: The following people will have voting rights at the next meeting. They all meet the "2 out of last 3 meeting" requirement. Arturo Salz Cliff Cummings Dave Rich Francoise Martinolle Neil Korpusik Ray Ryan Gordon Vreugdenhil Steven Sharp Phil Moorby Stu Sutherland Heath Chambers Don Mills Jonathan Bromley ** Minutes taken by Neil Korpusik and Mehdi Mohtashemi ////////////////// September 25th 2006 ///////////////////////// Agenda: 1. IEEE patent policy ref: http://standards.ieee.org/board/pat/pat-slideset.ppt Move: Cliff - Assume that the patent policy was read Second: Heath Abstain: none Opposed: none passed 2. Review Meeting minutes, of and September 11th 2006 Not yet available, for next meeting 3. Action items review ----------------------------- AI/Neil - fix 1308 [DONE] AI/Mehdi - 1308 add to agenda for next meeting. AI/Steven - open a new mantis item for this issue. AI/Mehdi - contact the svac - that we want to have some time to review this. [DONE] AI/Dave - add a note to the proposal for 1437, that it should be applied to the LRM after 978 has been applied. [DONE] AI/Arturo - 1459 create a new mantis item if there is still an issue with new() being able to return null. AI/Ray - 1454 put together a proposal AI/Neil - 1552 add a proposal. Previous meetings ----------------------------- AI: follow-up to mantis 978 Neil - rewrite unique(), the first 2 sentences appear to be contradictory. - Make sure that it is clear that array elements are returned. - Add some examples for unique(). Neil - Array reduction methods can operate on arrays of non-integral values when a with clause is specified, as long as the type of the expression is an integral value. Gord - re-write section 5.15.4 - only the default argument value makes sense. Dave - what order is used for find and find_index (e.g. traversal is left to right of the bounds, associative is min to max) - 5.15.1 - change last sentence in first paragraph. All - can anyone come up with a realistic example? (last example 5.15.4) - not only where you would need it but also what does it mean. 4. Name Resolution sub-group update ------------------------------------ Gord - very minor variant of new proposal passed. There were a couple of no votes. AI/SVEC - review 1323, any feedback should go to the champions. 5. New voting rules -------------------- We have held 3 meetings since the committees were reset. Voting is now based on having attended the last 2 out of 3 meetings. 6. P1800 working group meeting - 09/21/06 ------------------------------------------ - Voting for new officers will close Sept 25 Johny will no longer be the chair. Karen Pieper and Victor Berman are running for the chair position. - All of the mantis items that have been approved by the committees were approved by the P1800. - Faisal is the chair of the SVAC but has been inactive for some time now. A new chair will be elected. - There are 3 potential candidates for the editor position. Bids are being requested. - Verilog-AMS - Karen will contact the Verilog-AMS committee to determine what they would like to do in the area of SystemVerilog interoperability. - VHDL - Karen will come up with a proposal on this. Both Cadence and Synopsys have expressed an interest in this area. - Separate sub-groups may form for Verilog-AMS and VHDL interoperability. 7. Review mantis item list -------------------------------- 1584 - problems with default arguments in virtual methods (spin-off from 1308) Steven - it isn't clear what the proposal should be. - one possibility is to not allow defaults except from the base class. Gord - is in favor of the default coming from the base. Arturo - allow from the base today, otherwise it could be complex. It sounds like no one has worked out all of the details yet. 890 08-31-06 clarifications in program and clocking blocks (Doug) (Most of the meeting was spent on this discussion) Mantis 1604 was created to deal with the portions of 890 that deal with the program block. Cliff - Sent a proposal out on Sunday before our meeting (Sept 24). He had a proposed modification in section 15.1 "Thus, the timing for sampling and driving clocking block signals can be implicit.." It used to say "... is implicit ..." Arturo - 'can be' - this change would not be correct. - let's also stick with semantics first, before talking about examples. Cliff - will retrack the "can be" proposal for now (section 15.1) Arturo - "clocking block signals" - term for elements within a clocking block - Proposes that we use the following terms for our discussion: These terms are described in the email from Arturo (Sept 24) time slot - A time for which there are events to process. The scheduled events at a specific time define a time slot time step - The time between time slots: The step that takes the simulator from one slot to the next (not necessarily fixed) A time during which there are no events. From Postponed region of one time slot to the Preponed region of the next time slot. time unit - The physical units (s, ms, us, ns, ps, fs) associated with a time literal plus the unit step Arturo - if we use a box to represent a clocking block - input - into clocking block (value sampled by program block) - output - out of clocking block (value driven by program block) Jonathan- wants it to be clearly defined (doesn't particularly care about names) - target lvalue - is an output of a clocking block - cb.name - "clocking block signals" - wants to refer to the things they are bound to as inputs or outputs Dave - a clocking block creates a scope. - inputs and outputs create variables in that scope. Arturo - "signals" means wires or variables in LRM today - inside the clocking block - those are variables. Steven - this is not done consistently Dave - signal is anything that holds a value. Ray - clocking block input - inside or outside a cb? Dave - expression bound to a clocking block input. - don't need to refer to it very often in the write-up. - "clocking block bound target" Arturo - clockvar the term was what he was thinking of using. - we need a new noun to use here to simplify the wording Jonathan- likes clockvar in order to move on. clocking cb: input foo; // source of clocking blocks clockvar output bar; // target inout c; // source and target endclocking cb.foo, cb.bar - both are clockvars Dave - clockvar shouldn't go into the lrm, but can be used to make progress. - inout - is this 2 clockvars? Cliff - during the meeting Cliff sent out a few versions of a diagram that contains his understanding of this "mental image" of a clocking block. Version 4 is where we ended up. Doug - do we have a generic term for all of the stuff on the left? (in the diagram) Steven - clocking connections Ray - what about connection to a port? Steven - hicon and locon from a PLI perspective Dave - they are separate objects Gord - a connection does not need to go to a port - main point is that this is outside of the clocking block Dave - a connection can be to any type... Doug - let's hit the main issues first, could possibly put a merged proposal together. 1. ambiguity in LRM for ##1 ##1 - count cycles or edges? (most in committee want edges) Doug was just picking one way Thinking of time units is not the correct thing to do here... Arturo - we only have events Dave - period from one clocking event to the next - does ##1 need to wait for one full span? Gord - If ##1 occurs at any point in the time slot of the clocking event, is ##1 delayed to next clock edge? - The concern is with the big loop (in the scheduling semantics) - What about glitch behavior on the clocking_event? - For N > 0, Arturo's orange box holds true (from Arturo 9/24 email) ##N <==> repeat N @(posedge clk); - Happy with simple case, just wants to ensure we are ok with others. Arturo - It is a bad practice to put a clock generator in the program block. Jonathan- 1. clocking_event in 1 time slot 2. somehow do a ##1 in that time slot before finding next event - users get what they deserve if they do either of these. Arturo - We don't make this distinction WRT to drives and samples. Neil - agrees with Arturo's proposal for the meaning of ##N Jonathan- ##0 sync to next edge if not at an edge. - you are busy generating bus cycles, don't want a dead cycle by doing ##1, there is where you use ##0 Gord - what about races? Heath, Neil - both agree with this proposal for ##0 (being a sync) Neil - Threads within the same program block could cause interactions. Gord - the orange box is useful to include. - the first point in the box should be added to the text. it clarifies a couple of the weird race cases. Jonathan- it won't be completely equivalent. Heath - ##0 if clocking_event has already occurred in current time slot, do nothing if no clocking_event seen yet, it will wait for next clocking_event Stu - not defined yet, so just a clarification. Doug - 890.4 won't be the final proposal.... Straw poll - no objection to ##0, definition as discussed today. Gord - if clocking_event was triggered do nothing, otherwise ##1. Dave - what about LRM, saying something about when check clocking_event? Steven - ##2 could also see two clocking events in the same time slot Gord - makes it clear to users that glitches on the clock will cause problems. AI/Arturo - 15.10 - add details on ##0 - keep first item in "orange" box. Arturo, Cliff, Doug - proposal needs to be re-written for the final vote. Doug - possibly add the "taxonomy" from Arturo to section 15.2 Gord - an input clockvar can not be driven (versus input signal) Arturo - drive is not defined for a target or source (just for clockvar) Cliff - cb.a, cb.b can be sampled (see Cliff's diagram) target c can be assigned <--- rest of language defined this Gord - what you do with the variable on the other side is independent of what you do with the clockvars. Dave - target that is a wire vs. a variable. continuous versus a procedural assignment issues Doug 2. Next big topic in mantis 890 - 15.12 Input sampling There was some ambiguity in the LRM Arturo - Part of Doug's proposal is an enhancement Gord - There are 2 conceptual operations in the example clocking cb @(negedge clk); input v; endclocking always @(cb) $display(cb.v); always @(negedge clk); $display(cb.v); a. Event on negedge clk b. Update of clockvar (cb.v) Will clockvar be updated before @(cb) can finish? (possible race) Jonathan- The proposal supports those people that would like to use clocking blocks in modules. Arturo - There can be races when using clocking blocks a. clocking block in program, trigger clocking_event from program b. clocking block in module, trigger clocking_event from module Doug - what Gord said is true but the text needs to be changed so that it doesn't sound so bad, in the normal usage there is no race. The part about a race should be more clear. Dave - The only thing that we can guarantee is that the sample is done before the clocking event. Cliff - example needs to be updated since an always block can't be in a program block. Doug - add the definition of the clock to example. AI/Cliff - update the example in 15.12 8. Next meetings: October 9, 2006 October 23, 2006 Face-to-face meeting - Decide on this at the end of the Oct 9th, 2006 meeting IEEE rules require a 30-day notice for a face-to-face meeting. Nov 2,3(Thurs, Fri) Possibly meet then in place of a Nov 6th conference call. Stu prefers Mondays. If it is a non-voting meeting we may not need to have a 30-day notice. 9. Adjourn Cliff - Move - adjourn Steven second ========== ADDITION TO the minutes, not part of regular ========= ========== meeting discussions, informational purposes ========= ========== Action Items updated based on September 25 2006 ==== Action items: September 25, 2006 ------------------------- AI: 1323 (name resolution) SVEC - review it, any feedback should go to the champions. Related to 890: AI: Arturo - 15.10 - add details on ##0 - keep first item in "orange" box. AI: Cliff - update the example in 15.12 AI: Arturo, Cliff, Doug and Jonathan ; re-write the proposal for final discussion and vote