Hi, I will get back to you on this Saturday nite or Sunday. At first glance, though, Mantis 1119 does address this. Shalom > -----Original Message----- > From: owner-verilog-ams@server.eda.org [mailto:owner-verilog- > ams@server.eda.org] On Behalf Of Geoffrey.Coram > Sent: Friday, November 03, 2006 3:24 PM > To: Marq Kole > Cc: verilog-ams > Subject: Re: compiler directive with formal arguments > > Marq - > I had a look in mantis and see that Shalom is assigned a few related > items, but I don't see your question addressed in 1119, 1053, nor 1333. > > I'm not sure what the bit about identifiers means, but one could > twist it to mean that the formal arguments are not replaced in a > string, just as > parameter real mypar = 1.0; > > $strobe("mypar = ", mypar); > > doesn't give you 1.0 = 1.0, because the identifier is not replaced > inside the string. > > -Geoffrey > > > > Marq Kole wrote: > > > > All, > > > > At least one simulator has a different interpretation of a compiler > directive with formal arguments than any of the others (known to me) do. > Consider the macro definition: > > > > `define UPDATE_XML_ELEMENT(file,param,value,delta) \ > > if (delta) \ > > $fwrite(file, " <instance name=\"%M\">\n <parameter name=\"%s\" > value=\"%1.8g\" delta=\"%1.8g\"/>\n </instance>\n", param, value, > delta); > > > > Now I would expect that a call > > > > `UPDATE_XML_ELEMENT(update_file, "vth0", Vth, -delta_vth) > > > > to be expanded to: > > > > if ( -delta_vth) \ > > $fwrite(update_file, " <instance name=\"%M\">\n <parameter > name=\"%s\" value=\"%1.8g\" delta=\"%1.8g\"/>\n </instance>\n", "vth0", > Vth, -delta_vth); > > > > Instead this tool expands it to: > > > > if ( -delta_vth) \ > > $fwrite(update_file, " <instance name=\"%M\">\n <parameter > name=\"%s\" Vth=\"%1.8g\" -delta_vth=\"%1.8g\"/>\n </instance>\n", > "vth0", Vth, -delta_vth); > > > > So it replaces also the occurrences of "value" and "delta" inside the > format string of the $fwrite system task. > > > > The weird thing is that the LRM 2.2 standard according to section > 11.3.1 only states that the scope of formal arguments extends to the end > of the line and that a formal argument can be used in the same manner as > an identifier. It nowhere exempts the contents of strings from formal > argument replacement. It is my feeling that this should be added to the > text. > > > > Then, on the other hand the text in 1364-2005 (section 19.3.1) is > exactly the same. Should we take the lead here? > > > > Marq KoleReceived on Fri Nov 3 06:17:57 2006
This archive was generated by hypermail 2.1.8 : Fri Nov 03 2006 - 06:18:06 PST