SV-BC Meeting Date: Monday, August 16, 2010 Time: 9:00am-11:00am PDT Toll Free Dial In Number in North America: 1-888-813-5316 Caller Paid Dial In Number: 1-650-584-6338 Meeting ID: 7839818 101 Day 629 000 Month 887 111 Year 000 a-a Matt Maidment - Intel aaa Brad Pierce - Synopsys aaa Mark Hartoog - Synopsys -aa Dave Rich - Mentor Graphics aaa Gordon Vreugdenhil - Mentor Graphics a-a Alex Gran - Mentor Graphics -aa Heath Chambers - Consultant/Trainer a-a Tom Alsop - Intel aaa Cliff Cummings - Sunburst Design aaa Shalom Bresticker - Intel aaa Don Mills - LCDM Engineering aaa Arnab Saha - Mentor Graphics -aa Daniel Schostak - ARM -aa Kaiming Ho - Fraunhofer Institute aa- Steven Sharp - Cadence aaa Francoise Martinolle - Cadence -aa Eric Coffin - Mentor Graphics --- David Gates - AMD --a Peter Flake - Elda Technology --- Scott Little - Freescale --- John Havlicek - Freescale --- Rishiyur Nikhil - BlueSpec --a Jonathan Bromley - Verilab -a- Greg Jaxon - Synopsys Agenda + Review IEEE patent policy http://standards.ieee.org/board/pat/pat-slideset.ppt Reviewed. + Previous Meeting Minutes http://www.eda.org/sv-bc/minutes/sv-bc_10_08_02.txt Cliff moves to accept minutes as posted. Gord seconds. No opposed. Abstain: Alex & Tom (did not attend). Motion passes. + Mantis 696 Based on a discussion thread for this topic, static methods in parameterized classes is close to providing sufficient capability: class F #(parameter type T = logic); static function logic [$bits(T)-1:0] f_inv (T in); logic [$bits(T)-1:0] in_vec; in_vec = {>>{in}}; return ~in_vec; endfunction endclass module statclass(output logic [31:0] out, input logic [31:0] in); always_comb out = F#(.T(type(in)))::f_inv(bar); endmodule A limitation for this solution is the lack of static parameterized functions. Discuss this as the potential solution. Steven: Users can declare static variables inside. Likely not a big issue for such usage. Gord: Cannot use a hierarchical reference to call such a function. Steven: Can use a class handle to point a specialization of the class. Francoise: Can declare a typedef of the parameterized class with the parameter specialization as shorthard for F#(.T(typein))). Intent to make these functions legal for constant expressions if they meet requirements of a constant function (Mantis 1527). For synthesis, implementations may adopt some restrictions on the class declarations. Steven: Do we want to put some examples of this in the LRM? Tom: Yes. Steven: Can use generate to declare tasks and functions in generate loops to create many specializations quickly. Shalom: Can use macros to call with different specializations. Brad: What about doing this with inheritance? Tom: Sounds interesting. Steven: Derived class can set parameterized values. Gord posted some examples of class static function usage: http://www.eda.org/sv-bc/hm/10499.html AI: For 696 Tom will write up some examples of class static methods and explanation to elaborate on feature. Information should be included in Clause 8 (Classes) as well as a reference in Clause 13 (tasks and functions) pointing to Clause 8. Should have a section header so it shows up in TOC. Might also be mentioned in 3.8. Brad would like to see 1527 resolved as well. This is currently an SV-EC issue. + Mantis 210 Please review Matt's note in Mantis: http://www.eda.org/svdb/view.php?id=210 Steven: Unsure of complications of implementation. Mark: Interfaces already introduce this concept. Francoise: Do not like use of generation for module instantiation. Gord: Assuming similar limitations as other generate features, the port connection concepts are feasible. Mark: What about interface ports? Gord: Forbidding upward defparams should be ok for making it to work. Gord: For instantiations, would restrict input to implicit names and port connections. Scope of implicit names would be scope of instatiation. Steven: Does not like implicit names. Mark: Would like to name this features something other than 'generate' to avoid confusion. Gord: For-loops would need more investigation. Gord: Instance side is something to move forward. Declaration needs more investigation. Steven: If port no longer exists, connection by order can be problematic. Gord: Suggest making configurations more expressive instead of embedding this in the code or using a library. AI: Matt to rethink 210 in terms of configuration and alias. Shalom: Synthesis tools may not support aliases. Brad: If not, perhaps it was never pursued with implementors. + Port Declaration Issues 2315 Originally covered all port issues. Port connections now associated with 2315. New issue, 3178, now covers port declaration issues Reviewed summary of 3178 as posted here: Francoise: For ref and interface ports, can they be done using both ANSI and non-ANSI style? Does the LRM permit non-ANSI style? Shalom: Need more rules for non-ANSI style. This feature is under-specified. Francoise: Are there advantages to non-ANSI style? Steven: Internal port connections but unclear if it was resolved or partially resolved in 1800-2009. Gord: Partially resolved. See 23.2.2.2 Mark: Declaring a data type inside a module and using it to declare a port. Shalom: Of those issues that are resolve are not adequately described. Combination of inherited and additional properties can conflict. Needs more clarification. AI: Send Shalom requests feedback about prioritizing the issues raised by his document and offers to volunteer to help address the issues. 11:00am: Cliff moves to adjourn. + Progress/Discussion for Top 10 Looking for proposal sketches or discussion for any of these issues. 696 - Champion: Tom 2310(1084, 1201) - Participants: Eric, Tom, Shalom, Steven, Wilson Snyder 3053 - Participants: Francoise, Mark, Alex, Kaiming 3055 - Participants: Gord, Mark 2991 - Champion: Tom, Participants: Steven 1566 - For future discussion 2114 - Similar to 3053. Have same group look at it. 210 - Participants: Shalom, Matt 3056 - Champion: Shalom, Participants: Steven, Francoise Action Items Outstanding 05/10/10 Matt create Master Issue for WG-approved SV-BC Top-25 07/19/10 Matt follow-up about voting rules for technical sub-committee. Is there a limit on the number of reps from 1 entity? 07/19/10 Dave to post request to reflectors for clarification of 2108 07/19/10 Jonathan post some items for discussion related to 2114 to reflector. 08/02/10 Brad give SV-BC feedback on Mantis 2992 to Mehdi 08/02/10 Eric start reflector thread on Mantis 2310 08/02/10 Gord meet F2F with Mark when in Bay Area 08/16/10 Tom write up class static method examples and explanation for inclusion in clause 8 and reference in clause 13 and 3.8. 08/16/10 Brad update Mantis items passed by email vote. 08/16/10 Matt to rethink 210 in terms of configuration and alias. 08/16/20 All send Shalom feedback about prioritizing the issues raised in port declaration issue summary: http://www.eda.org/sv-bc/hm/10498.html Complete 06/21/10 Matt add a note about his input for 210 07/19/10 Shalom to present update on 3056 in Aug 16 meeting.