<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
  <title>bluespec.com</title>
  <link>http://www.bluespec.com/forum/index.php</link>
  <description>Bluespec Forums</description>
  <language>english</language>
  <copyright>(c) Copyright 2010 by bluespec.com</copyright>
  <managingEditor>support@bluespec.com</managingEditor>
  <webMaster>support@bluespec.com</webMaster>
  <pubDate>Wed Mar 10, 2010 11:30 am</pubDate>
  <lastBuildDate>Wed Mar 10, 2010 11:30 am</lastBuildDate>
  <docs>http://backend.userland.com/rss</docs>
  <generator>phpBB2 RSS Syndication Mod by Lucas</generator>
  <ttl>1</ttl>

  <image>
    <title>bluespec.com</title>
    <url></url>
    <link>http://www.bluespec.com/forum/</link>
    <description>Bluespec Forums</description>
  </image>

                                      <item>
                                        <title>Instruction set to memory</title>
                                        <link>http://www.bluespec.com/forum/viewtopic.php?p=747#747</link>
                                        <description>&lt;br /&gt;
                                      &lt;b&gt;Author:&lt;/b&gt; &lt;a href='http://www.bluespec.com/forum/profile.php?mode=viewprofile&amp;u=50'&gt;jnewbern&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      &lt;b&gt;Posted:&lt;/b&gt; Wed Mar 03, 2010 8:06 am&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      The interface methods of mkRegFileFullLoad are the same as mkRegFileFull.  The only difference is the initialization from the file.&lt;br /&gt;
&lt;br /&gt;
The file format is the standard Verilog memory file format, described in the manual I linked to earlier.  You can use @address to specify the address, but addresses are assumed to increment linearly, so it is enough to specify only the first address in a memory region.</description>
                                        <comments>http://www.bluespec.com/forum/viewtopic.php?p=747#747</comments>
                                        <author>jnewbern</author>
                                        <pubDate>Wed Mar 03, 2010 8:06 am</pubDate>
                                        <guid isPermaLink="true">http://www.bluespec.com/forum/viewtopic.php?p=747#747</guid>
                                      </item>
                                      <item>
                                        <title>TMax type function doesn't exist?</title>
                                        <link>http://www.bluespec.com/forum/viewtopic.php?p=741#741</link>
                                        <description>&lt;br /&gt;
                                      &lt;b&gt;Author:&lt;/b&gt; &lt;a href='http://www.bluespec.com/forum/profile.php?mode=viewprofile&amp;u=482'&gt;ietsanjay&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      &lt;b&gt;Posted:&lt;/b&gt; Thu Feb 25, 2010 10:51 am&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      If TMax/TMin is not going to be supported, is there a workaround to compute it?</description>
                                        <comments>http://www.bluespec.com/forum/viewtopic.php?p=741#741</comments>
                                        <author>ietsanjay</author>
                                        <pubDate>Thu Feb 25, 2010 10:51 am</pubDate>
                                        <guid isPermaLink="true">http://www.bluespec.com/forum/viewtopic.php?p=741#741</guid>
                                      </item>
                                      <item>
                                        <title>Bluesim linkage failure</title>
                                        <link>http://www.bluespec.com/forum/viewtopic.php?p=740#740</link>
                                        <description>&lt;br /&gt;
                                      &lt;b&gt;Author:&lt;/b&gt; &lt;a href='http://www.bluespec.com/forum/profile.php?mode=viewprofile&amp;u=492'&gt;kfleming&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      &lt;b&gt;Posted:&lt;/b&gt; Tue Feb 23, 2010 1:02 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      I edited my previous, highly unclear post. Sorry about that.</description>
                                        <comments>http://www.bluespec.com/forum/viewtopic.php?p=740#740</comments>
                                        <author>kfleming</author>
                                        <pubDate>Tue Feb 23, 2010 1:02 pm</pubDate>
                                        <guid isPermaLink="true">http://www.bluespec.com/forum/viewtopic.php?p=740#740</guid>
                                      </item>
                                      <item>
                                        <title>Multiple Resets</title>
                                        <link>http://www.bluespec.com/forum/viewtopic.php?p=733#733</link>
                                        <description>&lt;br /&gt;
                                      &lt;b&gt;Author:&lt;/b&gt; &lt;a href='http://www.bluespec.com/forum/profile.php?mode=viewprofile&amp;u=448'&gt;kirubi&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      &lt;b&gt;Posted:&lt;/b&gt; Thu Jan 28, 2010 5:18 am&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      Hello&lt;br /&gt;
&lt;br /&gt;
I have a question&lt;br /&gt;
&lt;br /&gt;
How do I do the following in BSV.&lt;br /&gt;
&lt;br /&gt;
A four bit register say n_reg whose reset values differ based on two different resets say a_rst and b_rst.Both are asynchronous resets.&lt;br /&gt;
&lt;br /&gt;
for example when a_rst is asserted n_reg will be 4'b0000 and b_rst is asserted n_reg 1ill be 4'b1111.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
best&lt;br /&gt;
Venkat</description>
                                        <comments>http://www.bluespec.com/forum/viewtopic.php?p=733#733</comments>
                                        <author>kirubi</author>
                                        <pubDate>Thu Jan 28, 2010 5:18 am</pubDate>
                                        <guid isPermaLink="true">http://www.bluespec.com/forum/viewtopic.php?p=733#733</guid>
                                      </item>
                                      <item>
                                        <title>Pack/Unpack functions</title>
                                        <link>http://www.bluespec.com/forum/viewtopic.php?p=732#732</link>
                                        <description>&lt;br /&gt;
                                      &lt;b&gt;Author:&lt;/b&gt; &lt;a href='http://www.bluespec.com/forum/profile.php?mode=viewprofile&amp;u=456'&gt;muem&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      &lt;b&gt;Posted:&lt;/b&gt; Wed Jan 27, 2010 11:44 am&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      &lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;jnewbern wrote:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;quote&quot;&gt;Incidentally, the declaration above actually specifies 4 registers, each holding 4 single-byte words.&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;
Maybe my description was a little bit irritating but that type is exactly what I wanted to create. With your suggestion (4x4 register array each holding a byte) I would have been able to &amp;quot;operate&amp;quot; on each byte separately but I am only operating on words. Hence the 4 registers each holding 4 single-byte words work perfectly for me.&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;jnewbern wrote:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;quote&quot;&gt;The Vector package's readVReg and writeVReg functions are useful for working with these kinds of vectors-of-register declarations, BTW.&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;
Thanks, I already found them in the reference guide. These are really useful functions when operating on vectors.&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;jnewbern wrote:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;quote&quot;&gt;As for the pack/unpack variations, these should all generate permutations of wires with no other logic, so I would not expect any area or performance differences between them.&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;
Thanks for confirming my assumptions,&lt;br /&gt;
Mike</description>
                                        <comments>http://www.bluespec.com/forum/viewtopic.php?p=732#732</comments>
                                        <author>muem</author>
                                        <pubDate>Wed Jan 27, 2010 11:44 am</pubDate>
                                        <guid isPermaLink="true">http://www.bluespec.com/forum/viewtopic.php?p=732#732</guid>
                                      </item>
                                      <item>
                                        <title>Mistake both doc &amp;amp; compiler in BVI port</title>
                                        <link>http://www.bluespec.com/forum/viewtopic.php?p=729#729</link>
                                        <description>&lt;br /&gt;
                                      &lt;b&gt;Author:&lt;/b&gt; &lt;a href='http://www.bluespec.com/forum/profile.php?mode=viewprofile&amp;u=166'&gt;quark&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      &lt;b&gt;Posted:&lt;/b&gt; Sun Jan 24, 2010 3:45 am&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      Thank you for bringing this to our attention.&lt;br /&gt;
&lt;br /&gt;
The syntax &amp;quot;1'b0&amp;quot; is equivalent to unpacking a Bit#(1) value into a value of another type.  In this code, the other type is not mentioned -- it could be Bool, UInt#(1), Int#(1), etc.  The error message indicates that the type is ambiguous.&lt;br /&gt;
&lt;br /&gt;
We will fix the documentation and consider improving BSC to default the type to Bit#(1) in this situation.</description>
                                        <comments>http://www.bluespec.com/forum/viewtopic.php?p=729#729</comments>
                                        <author>quark</author>
                                        <pubDate>Sun Jan 24, 2010 3:45 am</pubDate>
                                        <guid isPermaLink="true">http://www.bluespec.com/forum/viewtopic.php?p=729#729</guid>
                                      </item>
                                      <item>
                                        <title>problem about method</title>
                                        <link>http://www.bluespec.com/forum/viewtopic.php?p=728#728</link>
                                        <description>&lt;br /&gt;
                                      &lt;b&gt;Author:&lt;/b&gt; &lt;a href='http://www.bluespec.com/forum/profile.php?mode=viewprofile&amp;u=50'&gt;jnewbern&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      &lt;b&gt;Posted:&lt;/b&gt; Wed Jan 20, 2010 10:40 am&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      Hi,&lt;br /&gt;
&lt;br /&gt;
The issue here is one of aggressive conditions.&lt;br /&gt;
&lt;br /&gt;
If you look at your state_start_thread rule, it contains the statement:&lt;br /&gt;
&lt;br /&gt;
thread[counter_trd].start(1);&lt;br /&gt;
&lt;br /&gt;
This means that the rule can call the start method on either of the 2 thread instances.  Therefore, the rule will pick up the conditions from *both* instances' start methods -- it will only fire if state == 0 in both instances!  You can see this by looking at the WILL_FIRE_RL_state_start_thread signal in the generated Verilog.&lt;br /&gt;
&lt;br /&gt;
There is an option to bsc, which most people use all the time, called -aggressive-conditions.  It will cause the compiler to be more aggressive about qualifying the conditions for method calls in rules.  If you compile with -aggressive-conditions and look at the WILL_FIRE_RL_state_start_thread signal, you will see the resulting Verilog code now takes the counter_trd value into account.  And indeed, the simulation will behave as you expected, starting the second thread in parallel with the first.&lt;br /&gt;
&lt;br /&gt;
Jeff</description>
                                        <comments>http://www.bluespec.com/forum/viewtopic.php?p=728#728</comments>
                                        <author>jnewbern</author>
                                        <pubDate>Wed Jan 20, 2010 10:40 am</pubDate>
                                        <guid isPermaLink="true">http://www.bluespec.com/forum/viewtopic.php?p=728#728</guid>
                                      </item>
                                      <item>
                                        <title>a doubt in Register array</title>
                                        <link>http://www.bluespec.com/forum/viewtopic.php?p=727#727</link>
                                        <description>&lt;br /&gt;
                                      &lt;b&gt;Author:&lt;/b&gt; &lt;a href='http://www.bluespec.com/forum/profile.php?mode=viewprofile&amp;u=50'&gt;jnewbern&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      &lt;b&gt;Posted:&lt;/b&gt; Wed Jan 20, 2010 10:16 am&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      You would use a RegFile#(UInt#(6),Bit#(32)).  The UInt#(6) allows you to address registers 0-63, and each register will hold 32 bits.&lt;br /&gt;
&lt;br /&gt;
Jeff</description>
                                        <comments>http://www.bluespec.com/forum/viewtopic.php?p=727#727</comments>
                                        <author>jnewbern</author>
                                        <pubDate>Wed Jan 20, 2010 10:16 am</pubDate>
                                        <guid isPermaLink="true">http://www.bluespec.com/forum/viewtopic.php?p=727#727</guid>
                                      </item>
                                      <item>
                                        <title>SBOX with two indices</title>
                                        <link>http://www.bluespec.com/forum/viewtopic.php?p=724#724</link>
                                        <description>&lt;br /&gt;
                                      &lt;b&gt;Author:&lt;/b&gt; &lt;a href='http://www.bluespec.com/forum/profile.php?mode=viewprofile&amp;u=456'&gt;muem&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      &lt;b&gt;Posted:&lt;/b&gt; Tue Jan 12, 2010 5:20 am&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      Hi!&lt;br /&gt;
&lt;br /&gt;
I am currently implementing a substitution box (SBOX) which should be accessible by two indices (e.g. row - and column - index).&lt;br /&gt;
&lt;br /&gt;
Right now I am not sure what's the best way to realize this (just a 2 dimensional register array, a vector of registers, a register file, a ram, etc...?). Furthermore I was asking myself if there are any differences in performance in all these possibilities?&lt;br /&gt;
&lt;br /&gt;
tia, Mike</description>
                                        <comments>http://www.bluespec.com/forum/viewtopic.php?p=724#724</comments>
                                        <author>muem</author>
                                        <pubDate>Tue Jan 12, 2010 5:20 am</pubDate>
                                        <guid isPermaLink="true">http://www.bluespec.com/forum/viewtopic.php?p=724#724</guid>
                                      </item>
                                      <item>
                                        <title>Multiple-clocks and ancestor_of attributes</title>
                                        <link>http://www.bluespec.com/forum/viewtopic.php?p=722#722</link>
                                        <description>&lt;br /&gt;
                                      &lt;b&gt;Author:&lt;/b&gt; &lt;a href='http://www.bluespec.com/forum/profile.php?mode=viewprofile&amp;u=448'&gt;kirubi&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      &lt;b&gt;Posted:&lt;/b&gt; Tue Dec 29, 2009 10:56 am&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      Hello&lt;br /&gt;
&lt;br /&gt;
How do I go about doing this in blue-spec&lt;br /&gt;
&lt;br /&gt;
I have two clocks say clk1khz and clk100khz which are inputs.clk1khz can be treated as default_clock and I have reset input reset_in&lt;br /&gt;
&lt;br /&gt;
A counter is incremented based on clk1khz and when it reaches 999 it wraps around.&lt;br /&gt;
&lt;br /&gt;
During this counting there are two values of count when count is 10'b0000000000 or count is 10'b0111110101 a gate enable- say clk1_enable is set for a clock clock1.&lt;br /&gt;
&lt;br /&gt;
This clock1 is gated version of clk100khz.&lt;br /&gt;
&lt;br /&gt;
I have a second clock clock2 which is gated version of clock1 and the gate condition is enabled by clk2_enable which is a sample of clk1_enable at clk100khz.&lt;br /&gt;
&lt;br /&gt;
I have a third clock clock3 which is invertor of clock2.&lt;br /&gt;
&lt;br /&gt;
Only clock3 must be an output from the module.&lt;br /&gt;
&lt;br /&gt;
Rest of the clocks(clock1 and clock2) are generated and used internally.&lt;br /&gt;
&lt;br /&gt;
What could be the best way to code the above in blue-spec?&lt;br /&gt;
&lt;br /&gt;
More-specifically how do we use the ancestor_of_attributes.Is it necessary that all these must be available at the interface?&lt;br /&gt;
 &lt;br /&gt;
(If it must be so my basic requirement that the clocks generated inside must not appear as verilog ports get defeated.)&lt;br /&gt;
&lt;br /&gt;
How do I check the value of count and issue an enable when count is  incrementing based on certain count values.? Can I do that in a single rule? or Do I need to increment count in one rule and check the count value in another rule and get the enable? I could use two rules.My problem is passing the enable asserted in clock domain to another where it becomes a gate enable condition.&lt;br /&gt;
&lt;br /&gt;
Also How do I pass the values of various enables from one clock domain to the above.&lt;br /&gt;
&lt;br /&gt;
Can I use the same reset for all these enables/count etc?&lt;br /&gt;
&lt;br /&gt;
Will this be reported as warning by blue-spec owing to same reset being used across clock domains(even though if they are gated version of the other)?&lt;br /&gt;
 &lt;br /&gt;
best&lt;br /&gt;
Venkat</description>
                                        <comments>http://www.bluespec.com/forum/viewtopic.php?p=722#722</comments>
                                        <author>kirubi</author>
                                        <pubDate>Tue Dec 29, 2009 10:56 am</pubDate>
                                        <guid isPermaLink="true">http://www.bluespec.com/forum/viewtopic.php?p=722#722</guid>
                                      </item>
                                      <item>
                                        <title>Resets</title>
                                        <link>http://www.bluespec.com/forum/viewtopic.php?p=720#720</link>
                                        <description>&lt;br /&gt;
                                      &lt;b&gt;Author:&lt;/b&gt; &lt;a href='http://www.bluespec.com/forum/profile.php?mode=viewprofile&amp;u=166'&gt;quark&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      &lt;b&gt;Posted:&lt;/b&gt; Mon Dec 28, 2009 10:37 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      If you do not export the reset in the interface, then BSC should only emit a warning and not a an error.  So you should be able to leave the reset out of the interface and still be able to compile.&lt;br /&gt;
&lt;br /&gt;
The warning is there because unexpected behavior can happen when a rule involves state that is reset by different signals; if some state is in reset and some is not, the rule might still fire but only update some of the state.  But if you know that you are handling the rules and reset properly and you are sure that this situation will never happen, then you can ignore the warning.</description>
                                        <comments>http://www.bluespec.com/forum/viewtopic.php?p=720#720</comments>
                                        <author>quark</author>
                                        <pubDate>Mon Dec 28, 2009 10:37 pm</pubDate>
                                        <guid isPermaLink="true">http://www.bluespec.com/forum/viewtopic.php?p=720#720</guid>
                                      </item>
                                      <item>
                                        <title>Error</title>
                                        <link>http://www.bluespec.com/forum/viewtopic.php?p=718#718</link>
                                        <description>&lt;br /&gt;
                                      &lt;b&gt;Author:&lt;/b&gt; &lt;a href='http://www.bluespec.com/forum/profile.php?mode=viewprofile&amp;u=166'&gt;quark&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      &lt;b&gt;Posted:&lt;/b&gt; Mon Dec 28, 2009 3:11 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      This error comes from inside the module &amp;quot;mkNullCrossingWire&amp;quot;.  The input to this module must come from a registered value, that does not have implicit conditions. The value cannot come from the output of another rule, through a wire, for example.  The error is saying that there is another rule which has to happen first, which is not allowed.&lt;br /&gt;
&lt;br /&gt;
You can either try to adjust the rules so that a rule doesn't schedule first.  Or you might also try rewriting the design to not use mkNullCrossingWire -- in general, you should avoid using this module, unless you are doing something that requires working at this low-level.</description>
                                        <comments>http://www.bluespec.com/forum/viewtopic.php?p=718#718</comments>
                                        <author>quark</author>
                                        <pubDate>Mon Dec 28, 2009 3:11 pm</pubDate>
                                        <guid isPermaLink="true">http://www.bluespec.com/forum/viewtopic.php?p=718#718</guid>
                                      </item>
                                      <item>
                                        <title>What does this error mean?</title>
                                        <link>http://www.bluespec.com/forum/viewtopic.php?p=716#716</link>
                                        <description>&lt;br /&gt;
                                      &lt;b&gt;Author:&lt;/b&gt; &lt;a href='http://www.bluespec.com/forum/profile.php?mode=viewprofile&amp;u=166'&gt;quark&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      &lt;b&gt;Posted:&lt;/b&gt; Mon Dec 28, 2009 2:34 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      This error occurs when you misuse the mkNullCrossingWire module.  The input to the module must come from a registered value, that does not have implicit conditions.  The value cannot come from the output of another rule, through a wire, for example.&lt;br /&gt;
&lt;br /&gt;
You might also try rewriting the design to not use mkNullCrossingWire, unless you are doing something that requires working at this low-level.</description>
                                        <comments>http://www.bluespec.com/forum/viewtopic.php?p=716#716</comments>
                                        <author>quark</author>
                                        <pubDate>Mon Dec 28, 2009 2:34 pm</pubDate>
                                        <guid isPermaLink="true">http://www.bluespec.com/forum/viewtopic.php?p=716#716</guid>
                                      </item>
                                      <item>
                                        <title>bluesim segfault</title>
                                        <link>http://www.bluespec.com/forum/viewtopic.php?p=709#709</link>
                                        <description>&lt;br /&gt;
                                      &lt;b&gt;Author:&lt;/b&gt; &lt;a href='http://www.bluespec.com/forum/profile.php?mode=viewprofile&amp;u=69'&gt;patil.nikhil&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      &lt;b&gt;Posted:&lt;/b&gt; Fri Dec 18, 2009 5:25 pm&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      &lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;quark wrote:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;quote&quot;&gt;&lt;br /&gt;
I don't see why there would any side-effects, so I am not sure why the string versions of these functions have an Action component.  I can find out.  However ... this should not be a problem, because you should always be in an Action context when you need the value.  For instance, when using $display or $fopen etc, which have Action components.&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
Wholeheartedly agree. It just complicates code when passing a pseudo-String in module-level arguments through synthesis boundaries. In the general case I would need an always firing rule with a wire connected to the interface argument. But in most cases a register initialized in the first clock will suffice. Well anyway, I suppose all this can be encapsulated in a module.&lt;br /&gt;
&lt;br /&gt;
Please don't think I am complaining here &lt;img src=&quot;images/smiles/icon_biggrin.gif&quot; alt=&quot;Very Happy&quot; border=&quot;0&quot; /&gt;. I think I have already come up with a solution I am happy with, but removing the ActionValue constraint would make it even nicer.&lt;br /&gt;
&lt;br /&gt;
Basically, I define VString as Bit#(1024) and Twine as ActionValue#(VString) and use Twine everywhere. (I thought Noose would be morbid). There is a typeclass IsString, for which String, Fmt, VString and Twine all have instances. The class defines functions fromString, toTwine and strcat. The idea is to use Twine consistently everywhere. (Polymorphic modules can use type variable s, with an IsString#(s) provisos on the method.) AFAICT the only place Twine cannot be used fully transparently is a synthesis boundary and a BDPI function -- in either case, all I have to do is to appropriately pull out the inner VString.&lt;br /&gt;
&lt;br /&gt;
Bad things happen when I overflow the Bit#(1024) though; I will probably make this bigger.&lt;br /&gt;
&lt;br /&gt;
nikhil</description>
                                        <comments>http://www.bluespec.com/forum/viewtopic.php?p=709#709</comments>
                                        <author>patil.nikhil</author>
                                        <pubDate>Fri Dec 18, 2009 5:25 pm</pubDate>
                                        <guid isPermaLink="true">http://www.bluespec.com/forum/viewtopic.php?p=709#709</guid>
                                      </item>
                                      <item>
                                        <title>conv_integer</title>
                                        <link>http://www.bluespec.com/forum/viewtopic.php?p=702#702</link>
                                        <description>&lt;br /&gt;
                                      &lt;b&gt;Author:&lt;/b&gt; &lt;a href='http://www.bluespec.com/forum/profile.php?mode=viewprofile&amp;u=448'&gt;kirubi&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
                                      &lt;b&gt;Posted:&lt;/b&gt; Wed Dec 16, 2009 12:54 am&lt;br /&gt;&lt;br /&gt;
                                      &lt;br /&gt;&lt;br /&gt;
                                      Hello nikhil&lt;br /&gt;
&lt;br /&gt;
The discussion is about getting blue-spec equivalent of conv_integer library function in vhdl.&lt;br /&gt;
&lt;br /&gt;
There is no conv_integer in verilog and hence blue-spec yes.. but some $ functions like $bitstoreal are supported ..&lt;br /&gt;
&lt;br /&gt;
The issue is to generate a hardware from a blue-spec code similar to the one generated by a vhdl code that uses conv_integer function.&lt;br /&gt;
***************************&lt;br /&gt;
Hello quark&lt;br /&gt;
&lt;br /&gt;
I think I will re-visit the vhdl code *again* to see which part of the code contributed to a different hardware.&lt;br /&gt;
&lt;br /&gt;
best&lt;br /&gt;
Venkat</description>
                                        <comments>http://www.bluespec.com/forum/viewtopic.php?p=702#702</comments>
                                        <author>kirubi</author>
                                        <pubDate>Wed Dec 16, 2009 12:54 am</pubDate>
                                        <guid isPermaLink="true">http://www.bluespec.com/forum/viewtopic.php?p=702#702</guid>
                                      </item></channel></rss>