I've finally gotten a few cycles to work on this again, and I am getting a weird error message:
::import "DPI" function void Note( string const &msg); :: | ::ncvlog: *E,CNSTRF (topmodule.v,2|46): The keyword 'const' must :: be followed by 'ref' in formal argument lists. The import "DPI" thing is how I'm supposed to tell my verilog simulator what the C functions will look like. This might be a problem with the verilog simulator (which is being a bear to work with) but I just wanted to check if anyone recognized the "'const' must be followed by 'ref'" message and saw something stupid that I was missing? Thanks, Greg > Are you sure about that Jerry? I've never seen the ampersand after the > variable name... > > Look at the examples here: > http://www.parashift.com/c++-faq/overview-refs.html > > > On 11/20/2012 04:17 PM, Jerry Feldman wrote: >> No, after msg. That means call by reference in C++ >> >> On 11/20/2012 03:33 PM, Greg London wrote: >>> Should I put the "&" in front of msg? i.e. >>> >>> void _say(const string &msg){ >>> >>> >>>> Almost perfect. I would make a few minor changes. >>>> >>>> void _say(const string msg&){ >>>> cout<<msg; >>>> } >>>> >>>> >>>> void Note(const string msg&){ >>>> _say("Note: "+msg); >>>> } >>>> >>>> Minor efficiencies. In your code in when note() is called the string >>>> is >>>> copied so msg is a copy of the input. In _say("Note: "+msg); >>>> you are creating a new string, but that string is also copied. >>>> Setting up >>>> a call by reference saves 2 copies in this case. The compiler can >>>> optimize the _say function to where the call by reference does not >>>> matter, but not the note() function which is external. >>>> >>>> >>>> -- >>>> Jerry Feldman <[email protected]> >>>> Boston Linux and Unix >>>> PGP key id:3BC1EB90 >>>> PGP Key fingerprint: 49E2 C52A FC5A A31F 8D66 C0AF 7CEA 30FC 3BC1 >>>> EB90 >>>> >>>> >>>> _______________________________________________ >>>> Hardwarehacking mailing list >>>> [email protected] >>>> http://lists.blu.org/mailman/listinfo/hardwarehacking >>>> >>> >> >> >> >> >> _______________________________________________ >> Hardwarehacking mailing list >> [email protected] >> http://lists.blu.org/mailman/listinfo/hardwarehacking >> > > _______________________________________________ > Hardwarehacking mailing list > [email protected] > http://lists.blu.org/mailman/listinfo/hardwarehacking > -- _______________________________________________ Hardwarehacking mailing list [email protected] http://lists.blu.org/mailman/listinfo/hardwarehacking
