John/Lisa, Yes it might very well be that declaring properties/sequences there is poor coding. But as far as the clocking blocks goes see the motivation for them in the LRM and what their function is -- group and *declare* clocking/synchronization separate from function. It would be quite inadequate, not to mention the mess and headache, to add executing statements back into a construct intended to orthogonalize clocking/sampling definition (declaration) from structure/behavior. Putting asserts in there is undesirable, and would open the door to other statements. Thx. -Bassam. -----Original Message----- From: John Havlicek [mailto:john.havlicek@freescale.com] Sent: Friday, June 09, 2006 11:32 AM To: Bassam.Tabbara@synopsys.COM Cc: piper@cadence.com; sv-ac@verilog.org Subject: Re: [sv-ac] question on clocking blocks Hi Bassam: I agree with Lisa on this point. I have never advocated using putting sequence or property declarations within a clocking block for our users because it forces poor code locality. J.H. > X-Authentication-Warning: server.eda.org: majordom set sender to > owner-sv-ac@verilog.org using -f > X-MimeOLE: Produced By Microsoft Exchange V6.5 > Content-class: urn:content-classes:message > Date: Fri, 9 Jun 2006 14:17:26 -0400 > X-MS-Has-Attach: > X-MS-TNEF-Correlator: > Thread-Topic: [sv-ac] question on clocking blocks > Thread-Index: AcaLz3r4qJY88CKzQoaWm2Egj+Ct8gAF66MgAAJfRtA= > From: "Lisa Piper" <piper@cadence.com> > X-Received: By mx-sanjose.cadence.com as k59IHRWV026144 at Fri Jun 9 > 11:17:28 2006 > X-Virus-Status: Clean > Sender: owner-sv-ac@verilog.org > X-OriginalArrivalTime: 09 Jun 2006 18:19:34.0083 (UTC) > FILETIME=[4235A930:01C68BF1] > > This is a multi-part message in MIME format. > > ------_=_NextPart_001_01C68BF0.F6B91EE9 > Content-Type: text/plain; > charset="us-ascii" > Content-Transfer-Encoding: quoted-printable > > But what is the purpose of this restriction? Is there a reason that > it cannot be changed? I am one of those that likes to keep related > things together, so if I define a property in my clocking block, I > want to assert it there too. > > =20 > > Lisa > > =20 > > ________________________________ > > From: Bassam Tabbara [mailto:Bassam.Tabbara@synopsys.com]=20 > Sent: Friday, June 09, 2006 1:11 PM > To: Lisa Piper; sv-ac@verilog.org > Subject: RE: [sv-ac] question on clocking blocks > > =20 > > Hi Lisa, > > =20 > > It's because the clocking block is used for *declaration* only. > > =20 > > Thx. > > -Bassam. > > =20 > > =20 > > ________________________________ > > From: owner-sv-ac@verilog.org [mailto:owner-sv-ac@verilog.org] On > Behalf Of Lisa Piper > Sent: Friday, June 09, 2006 7:18 AM > To: sv-ac@verilog.org > Subject: [sv-ac] question on clocking blocks > > Why is it that concurrent_assertion_statements are not allowed in > clocking blocks? If you can define properties and sequences in a > clocking block, then why can't you assert them too? I think it is > better to be able to keep related components together. I should not > need to do hierarchical referencing to assert my property or use my > sequence. > > =20 > > Lisa > > =20 > > =20 > > =20 > > =20 > > clocking_declaration ::=3D > > [ default ] clocking [ clocking_identifier ] clocking_event ; > > { clocking_item } > > endclocking [ : clocking_identifier ] > > =20 > > clocking_item ::=3D > > default default_skew ; > > | clocking_direction list_of_clocking_decl_assign ; > > | { attribute_instance } concurrent_assertion_item_declaration > > =20 > > concurrent_assertion_item_declaration ::=3D > > property_declaration > > | sequence_declaration > > =20 > > > ------_=_NextPart_001_01C68BF0.F6B91EE9 > Content-Type: text/html; > charset="us-ascii" > Content-Transfer-Encoding: quoted-printable > > <html xmlns:v=3D"urn:schemas-microsoft-com:vml" = > xmlns:o=3D"urn:schemas-microsoft-com:office:office" = > xmlns:w=3D"urn:schemas-microsoft-com:office:word" = > xmlns=3D"http://www.w3.org/TR/REC-html40"> > > <head> > <META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; = > charset=3Dus-ascii"> <meta name=3DGenerator content=3D"Microsoft Word > 11 (filtered medium)"> <!--[if !mso]> <style> > v\:* {behavior:url(#default#VML);} > o\:* {behavior:url(#default#VML);} > w\:* {behavior:url(#default#VML);} > .shape {behavior:url(#default#VML);} > </style> > <![endif]--> > <style> > <!-- > /* Font Definitions */ > @font-face > {font-family:"MS Mincho"; > panose-1:2 2 6 9 4 2 5 8 3 4;} > @font-face > {font-family:Tahoma; > panose-1:2 11 6 4 3 5 4 4 2 4;} > @font-face > {font-family:"\@MS Mincho"; > panose-1:2 2 6 9 4 2 5 8 3 4;} > @font-face > {font-family:TimesNewRoman; > panose-1:0 0 0 0 0 0 0 0 0 0;} > /* Style Definitions */ > p.MsoNormal, li.MsoNormal, div.MsoNormal > {margin:0in; > margin-bottom:.0001pt; > font-size:12.0pt; > font-family:"Times New Roman";} > a:link, span.MsoHyperlink > {color:blue; > text-decoration:underline;} > a:visited, span.MsoHyperlinkFollowed > {color:purple; > text-decoration:underline;} > p.Heading1withNumbers, li.Heading1withNumbers, div.Heading1withNumbers > {margin-top:0in; > margin-right:0in; > margin-bottom:3.0pt; > margin-left:.25in; > text-indent:-.25in; > page-break-after:avoid; > mso-list:l0 level1 lfo1; > font-size:14.0pt; > font-family:Arial; > font-weight:bold;} > p.heading1withnumbers0, li.heading1withnumbers0, = > div.heading1withnumbers0 > {margin-top:0in; > margin-right:0in; > margin-bottom:3.0pt; > margin-left:.25in; > text-indent:-.25in; > mso-list:l1 level1 lfo3; > font-size:14.0pt; > font-family:Arial; > font-weight:bold;} > span.EmailStyle19 > {mso-style-type:personal; > font-family:Arial; > color:windowtext;} > span.EmailStyle20 > {mso-style-type:personal-reply; > font-family:Arial; > color:navy;} > @page Section1 > {size:8.5in 11.0in; > margin:1.0in 1.25in 1.0in 1.25in;} > div.Section1 > {page:Section1;} > /* List Definitions */ > @list l0 > {mso-list-id:1547140741; > mso-list-type:hybrid; > mso-list-template-ids:-47279520 227593638 67698713 67698715 67698703 > = > 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 > {mso-level-style-link:"Heading1 with Numbers"; > mso-level-tab-stop:.25in; > mso-level-number-position:left; > margin-left:.25in; > text-indent:-.25in;} > @list l1 > {mso-list-id:1875999139; > mso-list-template-ids:2102002450;} > @list l1:level1 > {mso-level-tab-stop:.5in; > mso-level-number-position:left; > text-indent:-.25in;} > @list l1:level2 > {mso-level-tab-stop:1.0in; > mso-level-number-position:left; > text-indent:-.25in;} > @list l1:level3 > {mso-level-tab-stop:1.5in; > mso-level-number-position:left; > text-indent:-.25in;} > @list l1:level4 > {mso-level-tab-stop:2.0in; > mso-level-number-position:left; > text-indent:-.25in;} > @list l1:level5 > {mso-level-tab-stop:2.5in; > mso-level-number-position:left; > text-indent:-.25in;} > @list l1:level6 > {mso-level-tab-stop:3.0in; > mso-level-number-position:left; > text-indent:-.25in;} > @list l1:level7 > {mso-level-tab-stop:3.5in; > mso-level-number-position:left; > text-indent:-.25in;} > @list l1:level8 > {mso-level-tab-stop:4.0in; > mso-level-number-position:left; > text-indent:-.25in;} > @list l1:level9 > {mso-level-tab-stop:4.5in; > mso-level-number-position:left; > text-indent:-.25in;} > ol > {margin-bottom:0in;} > ul > {margin-bottom:0in;} > --> > </style> > > </head> > > <body lang=3DEN-US link=3Dblue vlink=3Dpurple> > > <div class=3DSection1> > > <p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span = > style=3D'font-size: > 10.0pt;font-family:Arial;color:navy'>But what is the purpose of this > restriction? Is there a reason that it cannot be changed? I am > one = of those that likes to keep related things together, so if I > define a property in my = clocking block, I want to assert it there > too.<o:p></o:p></span></font></p> > > <p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span = > style=3D'font-size: > 10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></ > p> > > <p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span = > style=3D'font-size: > 10.0pt;font-family:Arial;color:navy'>Lisa<o:p></o:p></span></font></p> > > <p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span = > style=3D'font-size: > 10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></ > p> > > <div> > > <div class=3DMsoNormal align=3Dcenter = > style=3D'margin-left:.5in;text-align:center'><font > size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'> > > <hr size=3D2 width=3D"100%" align=3Dcenter tabindex=3D-1> > > </span></font></div> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><b><font size=3D2 = > face=3DTahoma><span > style=3D'font-size:10.0pt;font-family:Tahoma;font-weight:bold'>From:</ > spa= > n></font></b><font > size=3D2 face=3DTahoma><span = > style=3D'font-size:10.0pt;font-family:Tahoma'> Bassam Tabbara > [mailto:Bassam.Tabbara@synopsys.com] <br> <b><span > style=3D'font-weight:bold'>Sent:</span></b> Friday, June 09, = > 2006 1:11 > PM<br> > <b><span style=3D'font-weight:bold'>To:</span></b> Lisa Piper; = > sv-ac@verilog.org<br> <b><span > style=3D'font-weight:bold'>Subject:</span></b> RE: [sv-ac] = question > on clocking blocks</span></font><o:p></o:p></p> > > </div> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D3 = > face=3D"Times New Roman"><span > style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > color=3Dblue face=3DArial><span > style=3D'font-size:10.0pt;font-family:Arial;color:blue'>Hi = > Lisa,</span></font><o:p></o:p></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D3 = > face=3D"Times New Roman"><span > style=3D'font-size:12.0pt'> <o:p></o:p></span></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > color=3Dblue face=3DArial><span > style=3D'font-size:10.0pt;font-family:Arial;color:blue'>It's because > the = clocking block is used for *declaration* > only.</span></font><o:p></o:p></p> > > <div> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D3 = > face=3D"Times New Roman"><span > style=3D'font-size:12.0pt'> <o:p></o:p></span></font></p> > > </div> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > face=3DArial><span > style=3D'font-size:10.0pt;font-family:Arial'>Thx.</span></font><o:p></ > o:p= > ></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > face=3DArial><span > style=3D'font-size:10.0pt;font-family:Arial'>-Bassam.</span></font><o: > p><= > /o:p></p> > > <div> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D3 = > face=3D"Times New Roman"><span > style=3D'font-size:12.0pt'> <o:p></o:p></span></font></p> > > </div> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D3 = > face=3D"Times New Roman"><span > style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> > > <div class=3DMsoNormal align=3Dcenter = > style=3D'margin-left:.5in;text-align:center'><font > size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'> > > <hr size=3D2 width=3D"100%" align=3Dcenter tabIndex=3D-1> > > </span></font></div> > > <p class=3DMsoNormal = > style=3D'mso-margin-top-alt:0in;margin-right:0in;margin-bottom: > 12.0pt;margin-left:.5in'><b><font size=3D2 face=3DTahoma><span = > style=3D'font-size: > 10.0pt;font-family:Tahoma;font-weight:bold'>From:</span></font></b><fo > nt > size=3D2 face=3DTahoma><span = > style=3D'font-size:10.0pt;font-family:Tahoma'> > owner-sv-ac@verilog.org [mailto:owner-sv-ac@verilog.org] <b><span > style=3D'font-weight:bold'>On Behalf Of </span></b>Lisa Piper<br> > <b><span style=3D'font-weight:bold'>Sent:</span></b> Friday, June 09, > = > 2006 7:18 > AM<br> > <b><span style=3D'font-weight:bold'>To:</span></b> > sv-ac@verilog.org<br> <b><span > style=3D'font-weight:bold'>Subject:</span></b> [sv-ac] question = on > clocking blocks</span></font><o:p></o:p></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > face=3DTimesNewRoman><span > style=3D'font-size:10.0pt;font-family:TimesNewRoman'>Why is it that > concurrent_assertion_statements are not allowed in clocking = > blocks? If you can define properties and sequences in a clocking > block, then why can’t you assert them too? I think it is > better to be able = to keep related components together. I > should not need to do = hierarchical referencing to assert my property > or use my = sequence.<o:p></o:p></span></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > face=3DTimesNewRoman><span > style=3D'font-size:10.0pt;font-family:TimesNewRoman'><o:p> </o:p> > </s= > pan></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > face=3DTimesNewRoman><span > style=3D'font-size:10.0pt;font-family:TimesNewRoman'>Lisa<o:p></o:p></ > spa= > n></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > face=3DTimesNewRoman><span > style=3D'font-size:10.0pt;font-family:TimesNewRoman'><o:p> </o:p> > </s= > pan></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > face=3DTimesNewRoman><span > style=3D'font-size:10.0pt;font-family:TimesNewRoman'><o:p> </o:p> > </s= > pan></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > face=3DTimesNewRoman><span > style=3D'font-size:10.0pt;font-family:TimesNewRoman'><o:p> </o:p> > </s= > pan></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > face=3DTimesNewRoman><span > style=3D'font-size:10.0pt;font-family:TimesNewRoman'><o:p> </o:p> > </s= > pan></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > color=3Dblack face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family:TimesNewRoman; > color:black'>clocking_declaration ::=3D<o:p></o:p></span></font></p> > > <p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 = > color=3Dblack face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family:TimesNewRoman; > color:black'>[ </span></font><b><font size=3D2 color=3Dred = > face=3DTimesNewRoman><span > style=3D'font-size:10.0pt;font-family:TimesNewRoman;color:red;font-wei > ght= > :bold'>default > </span></font></b><font size=3D2 color=3Dblack = > face=3DTimesNewRoman><span > style=3D'font-size:10.0pt;font-family:TimesNewRoman;color:black'>] = > </span></font><b><font > size=3D2 color=3Dred face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family: > TimesNewRoman;color:red;font-weight:bold'>clocking = > </span></font></b><font > size=3D2 color=3Dblack face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family: > TimesNewRoman;color:black'>[ clocking_identifier ] clocking_event = > </span></font><b><font > size=3D2 color=3Dred face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family: > TimesNewRoman;color:red;font-weight:bold'>;<o:p></o:p></span></font></ > b><= > /p> > > <p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 = > color=3Dblack face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family:TimesNewRoman; > color:black'>{ clocking_item }<o:p></o:p></span></font></p> > > <p class=3DMsoNormal style=3D'margin-left:1.0in'><b><font size=3D2 = > color=3Dred face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family:TimesNewRoman; > color:red;font-weight:bold'>endclocking </span></font></b><font > size=3D2 color=3Dblack face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family:TimesNewRoman; > color:black'>[ </span></font><b><font size=3D2 color=3Dred = > face=3DTimesNewRoman><span > style=3D'font-size:10.0pt;font-family:TimesNewRoman;color:red;font-wei > ght= > :bold'>: > </span></font></b><font size=3D2 color=3Dblack = > face=3DTimesNewRoman><span > style=3D'font-size:10.0pt;font-family:TimesNewRoman;color:black'>clock > ing= > _identifier > ]<o:p></o:p></span></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > color=3Dblack face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family:TimesNewRoman; > color:black'><o:p> </o:p></span></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > color=3Dblack face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family:TimesNewRoman; > color:black'>clocking_item ::=3D<o:p></o:p></span></font></p> > > <p class=3DMsoNormal style=3D'margin-left:1.0in'><b><font size=3D2 = > color=3Dred face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family:TimesNewRoman; > color:red;font-weight:bold'>default </span></font></b><font size=3D2 = > color=3Dblack face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family:TimesNewRoman; > color:black'>default_skew </span></font><b><font size=3D2 color=3Dred > face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family:TimesNewRoman; > color:red;font-weight:bold'>;<o:p></o:p></span></font></b></p> > > <p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 = > color=3Dblack face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family:TimesNewRoman; > color:black'>| clocking_direction list_of_clocking_decl_assign = > </span></font><b><font > size=3D2 color=3Dred face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family: > TimesNewRoman;color:red;font-weight:bold'>;<o:p></o:p></span></font></ > b><= > /p> > > <p class=3DMsoNormal style=3D'margin-left:1.0in'><font size=3D2 = > color=3Dblack face=3DTimesNewRoman><span = > style=3D'font-size:10.0pt;font-family:TimesNewRoman; > color:black'>| { attribute_instance } = > concurrent_assertion_item_declaration<o:p></o:p></span></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > face=3DTimesNewRoman><span > style=3D'font-size:10.0pt;font-family:TimesNewRoman'><o:p> </o:p> > </s= > pan></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > face=3DTimesNewRoman><span > style=3D'font-size:10.0pt;font-family:TimesNewRoman'>concurrent_assert > ion= > _item_declaration > ::=3D<o:p></o:p></span></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > face=3DTimesNewRoman><span > style=3D'font-size:10.0pt;font-family:TimesNewRoman'>   > ;&n= > bsp; > property_declaration<o:p></o:p></span></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > face=3DTimesNewRoman><span > style=3D'font-size:10.0pt;font-family:TimesNewRoman'>   > ;&n= > bsp; > | sequence_declaration<o:p></o:p></span></font></p> > > <p class=3DMsoNormal style=3D'margin-left:.5in'><font size=3D2 = > face=3DArial><span > style=3D'font-size:10.0pt;font-family:Arial'><o:p> </o:p></span>< > /fo= > nt></p> > > </div> > > </body> > > </html> > > ------_=_NextPart_001_01C68BF0.F6B91EE9--Received on Fri Jun 9 11:37:48 2006
This archive was generated by hypermail 2.1.8 : Fri Jun 09 2006 - 11:37:52 PDT