<?xml version="1.0"?><!-- generator="bbPress" -->

<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
>

<channel>
<title>Trusster Forums &#187; Topic: error occurs when running Teal sv in Questasim6.5c</title>
<link>http://forums.trusster.com/</link>
<description>Trusster Forums &#187; Topic: error occurs when running Teal sv in Questasim6.5c</description>
<language>en</language>
<pubDate>Thu, 09 Sep 2010 10:55:54 +0000</pubDate>

<item>
<title>Mike Mintz on "error occurs when running Teal sv in Questasim6.5c"</title>
<link>http://forums.trusster.com/topic/error-occurs-when-running-teal-sv-in-questasim65c#post-17</link>
<pubDate>Thu, 18 Feb 2010 11:34:22 +0000</pubDate>
<dc:creator>Mike Mintz</dc:creator>
<guid isPermaLink="false">17@http://forums.trusster.com/</guid>
<description>&#60;p&#62;Hi Desperado,&#60;/p&#62;
&#60;p&#62;(Are you the same Desperado as on the Verification Guild?)&#60;/p&#62;
&#60;p&#62;Sorry for the delay in responding. Our normal notification system failed.&#60;/p&#62;
&#60;p&#62;SV certainly has the *required* features to allow verification to&#60;br /&#62;
succeed. It's just not good at encouraging good programming practices&#60;br /&#62;
and has lots of &#34;sharp corners&#34; in its language definition.&#60;/p&#62;
&#60;p&#62;By far, the primary wart on the SV language is the difficulty in&#60;br /&#62;
separation of interface versus implementation. This is a staple of&#60;br /&#62;
good languages since the 1970s. You can separate *most* symbols (data,&#60;br /&#62;
methods, classes), but it requires significant work on the coders&#60;br /&#62;
part. There are tons of glitches in this process like the poor&#60;br /&#62;
definition of a forwarded class type, how prototypes can vary between&#60;br /&#62;
declaration and definition, and the initialization of statics.&#60;/p&#62;
&#60;p&#62;A second major flaw is that SV is derived from Verilog. This brings a&#60;br /&#62;
host of issues and encumbrances, but the main one is that Verilog is&#60;br /&#62;
designed to build real physical entities. The ways that that warps a&#60;br /&#62;
language design are numerous. Just look at compilation versus&#60;br /&#62;
elaboration and what are the scope resolution rules for a.b .  Now C++&#60;br /&#62;
is weaker in some regards, such as threading, 4/8 state computations&#60;br /&#62;
and connection to the DUT, but these can be overcome with relative&#60;br /&#62;
ease (i.e. Teal).&#60;/p&#62;
&#60;p&#62;A third major flaw is that it does not integrate well with c and&#60;br /&#62;
c++. These are the two primary languages of software.  Yes, I know&#60;br /&#62;
about DPI and PLI, they are quite weak for real model integration.&#60;/p&#62;
&#60;p&#62;Here's a partial list of lesser flaws. I am just rattling them off in&#60;br /&#62;
no particular order.&#60;/p&#62;
&#60;p&#62;C++ has the std namespace and the template library. This alone is a&#60;br /&#62;
major piece of good work and provides a good base for both novice and&#60;br /&#62;
expert programmers.  Many books have been written on the Template&#60;br /&#62;
Library and much though has gone into those templates/algorithms. I&#60;br /&#62;
know and have used all of SVs container classes, but they are a weak&#60;br /&#62;
shadow of the template library.&#60;/p&#62;
&#60;p&#62;Packages versus namespaces: There are two major faults. The first is&#60;br /&#62;
that when you end a package, all the methods and classes must be fully&#60;br /&#62;
defined. This breaks the separation of interface and implementation.&#60;br /&#62;
Add to that the fact that the parser and language definition are weak&#60;br /&#62;
and you end up with files like teal_vout_pre and teal_vout_post.&#60;br /&#62;
Another fault is that the package cannot be added to in another file.&#60;br /&#62;
This may seem silly, but I do not want everything associated with a&#60;br /&#62;
specific functional area to be in one file. How would users add they&#60;br /&#62;
own derivations and have them look like there are &#34;inside&#34; the package&#60;br /&#62;
?&#60;/p&#62;
&#60;p&#62;A small nit is the fact that a function cannot take time. Either that&#60;br /&#62;
or methods should be allowed to return a value.&#60;/p&#62;
&#60;p&#62;C++ has automatic construction and destruction. This is of great use&#60;br /&#62;
for managing entry/exit tasks, such a mutex sentries, scratch RAM&#60;br /&#62;
allocation, and resource reservation.  It is invaluable in these&#60;br /&#62;
situations within a function with many return points.  Now I realize&#60;br /&#62;
SV has pointer management, but (1) this can be added to C++ easily&#60;br /&#62;
using smart pointers, (2) is often not really an issue and (3) causes&#60;br /&#62;
great confusion as to when to new and when to copy. The fact that the&#60;br /&#62;
language does not support a copy constructor leaves us to write error&#60;br /&#62;
prone and clumsy code (with down casts).&#60;/p&#62;
&#60;p&#62;C++ is known by millions of programmers and hundreds of books are&#60;br /&#62;
available. SV has maybe 20 thousand programmers and a handful of&#60;br /&#62;
books.&#60;/p&#62;
&#60;p&#62;The inheritance model if SV is very weak. It does not support&#60;br /&#62;
protected or private inheritance or multiple inheritance. It's model&#60;br /&#62;
of function resolution follows the pointer type which is just wrong.&#60;/p&#62;
&#60;p&#62;Parametrization versus templating: There is only a superficial&#60;br /&#62;
comparison and SV has not real facility for meta-programming&#60;br /&#62;
(templating).  Good templating is critical to the design of good&#60;br /&#62;
container classes and generic algorithms. We do a lot of similar&#60;br /&#62;
things in verification, it's real hard to express this commonality.&#60;br /&#62;
Now I realize this is used in perhaps only 1% of your code (with the&#60;br /&#62;
major exception of container classes and algorithms)&#60;/p&#62;
&#60;p&#62;parameters in SV versus constants in c++: Just looking at the ability&#60;br /&#62;
one has to specify constants for reusable code, SV is weak. There is&#60;br /&#62;
still discussion as to whether there can be global parameters. The&#60;br /&#62;
initialization of parameters is very weak compared to c++. Finally the&#60;br /&#62;
type checking in parameters is weak.&#60;/p&#62;
&#60;p&#62;bind versus operator overloading: As far as I know, no vendor has&#60;br /&#62;
implemented bin for the purpose of overloading mathematical operators.&#60;/p&#62;
&#60;p&#62;Sorry this post was so long; I just got going.&#60;/p&#62;
&#60;p&#62;To me SV is like playing a concert on a toy piano. Sure you can try,&#60;br /&#62;
but your range, sound and general talent is limited to, well playing&#60;br /&#62;
like a child.
&#60;/p&#62;</description>
</item>
<item>
<title>desperadoo on "error occurs when running Teal sv in Questasim6.5c"</title>
<link>http://forums.trusster.com/topic/error-occurs-when-running-teal-sv-in-questasim65c#post-16</link>
<pubDate>Mon, 08 Feb 2010 06:45:51 +0000</pubDate>
<dc:creator>desperadoo</dc:creator>
<guid isPermaLink="false">16@http://forums.trusster.com/</guid>
<description>&#60;p&#62;Hi All,&#60;/p&#62;
&#60;p&#62;Robert Ekendahl Wrote:&#60;/p&#62;
&#60;p&#62;&#34;&#34;This is why I think our C++ solutions is far superior. You get a mature language with tons of more features then SV and you don't have to go through all of these hoops to make it work across simulators.&#34;&#34;&#60;/p&#62;
&#60;p&#62;Hi Robert, can you name a few features as you say, c++ has rich features than SV,,,,??&#60;/p&#62;
&#60;p&#62;As SV language supports all what available to verify an RTL design, what extra do you require to verify the RTL design!!!&#60;/p&#62;
&#60;p&#62;Can you suggest some few major feature which you C++ solutions provide over the SV !! so that would be helpful to know about the same!!&#60;/p&#62;
&#60;p&#62;Thanks,&#60;br /&#62;
Desperado --&#38;gt; Keen on Teal/Truss solutions
&#60;/p&#62;</description>
</item>
<item>
<title>Robert Ekendahl on "error occurs when running Teal sv in Questasim6.5c"</title>
<link>http://forums.trusster.com/topic/error-occurs-when-running-teal-sv-in-questasim65c#post-9</link>
<pubDate>Thu, 08 Oct 2009 08:42:06 +0000</pubDate>
<dc:creator>Robert Ekendahl</dc:creator>
<guid isPermaLink="false">9@http://forums.trusster.com/</guid>
<description>&#60;p&#62;Cool,&#60;/p&#62;
&#60;p&#62;I'm glad that it's working. We also found that our code was working up to 6.4 with MTI and this is an issue we have been going back and forth with them on. They are probably the closest to the LRM, but the LRM is bad and many standard coding practices cannot be used if you follow the LRM. VCS and others choose to ignore the LRM. Not sure that is good either. &#60;/p&#62;
&#60;p&#62;This is why I think our C++ solutions is far superior. You get a mature language with tons of more features then SV and you don't have to go through all of these hoops to make it work across simulators.&#60;/p&#62;
&#60;p&#62;Our C++ solution also avoids the pitfall that SystemC and it's templating mess.&#60;/p&#62;
&#60;p&#62;That all said, we have an exiting solution in the works where we merge Teal/Truss with SystemC. Hiding most of the ugliness of SystemC and allowing verification to be more efficient while still connecting in other SystemC IP blocks. I hope Mike will be ready to show this soon.
&#60;/p&#62;</description>
</item>
<item>
<title>hanibian on "error occurs when running Teal sv in Questasim6.5c"</title>
<link>http://forums.trusster.com/topic/error-occurs-when-running-teal-sv-in-questasim65c#post-8</link>
<pubDate>Wed, 07 Oct 2009 22:31:02 +0000</pubDate>
<dc:creator>hanibian</dc:creator>
<guid isPermaLink="false">8@http://forums.trusster.com/</guid>
<description>&#60;p&#62;Hi Mike and Robert, &#60;/p&#62;
&#60;p&#62;Thanks for your both replies. I can proceed the simulation after removing &#34;= 0&#34;, although there are still some warnings.&#60;/p&#62;
&#60;p&#62;Yes, sv is still under developing and not all the features are supported by EDA vendors, even some features have been interpretated differently by different vendors, or by the same vendor in its different S/W versions. Anyway I believed this is not an error of Teal, since I ran it on VCS-2008.x and there's no warnings or errors.&#60;/p&#62;
&#60;p&#62;Thanks again for your efforts.&#60;/p&#62;
&#60;p&#62;Best regards,&#60;br /&#62;
Hanibian
&#60;/p&#62;</description>
</item>
<item>
<title>Mike Mintz on "error occurs when running Teal sv in Questasim6.5c"</title>
<link>http://forums.trusster.com/topic/error-occurs-when-running-teal-sv-in-questasim65c#post-7</link>
<pubDate>Wed, 07 Oct 2009 16:29:12 +0000</pubDate>
<dc:creator>Mike Mintz</dc:creator>
<guid isPermaLink="false">7@http://forums.trusster.com/</guid>
<description>&#60;p&#62;Hi Hanibian,&#60;/p&#62;
&#60;p&#62;Sorry about that.&#60;/p&#62;
&#60;p&#62;Line 70 looks like this:&#60;/p&#62;
&#60;p&#62;int j = 0;&#60;/p&#62;
&#60;p&#62;Just remove the &#34;= 0&#34; and Teal will compile and run fine.&#60;/p&#62;
&#60;p&#62;Internally I am testing with 6.4b. I will go up to 6.5 now.&#60;/p&#62;
&#60;p&#62;We will re-release Teal soon.&#60;/p&#62;
&#60;p&#62;The SystemVerilog language is still in major evolution mode.  This particular &#34;feature&#34; was discussed between me and the SV committee. I thought we had left it as a warning not an error, but I could have been mistaken.&#60;/p&#62;
&#60;p&#62;The other warnings you see on compile are also under debate.&#60;/p&#62;
&#60;p&#62;Take Care,&#60;br /&#62;
Mike
&#60;/p&#62;</description>
</item>
<item>
<title>Robert Ekendahl on "error occurs when running Teal sv in Questasim6.5c"</title>
<link>http://forums.trusster.com/topic/error-occurs-when-running-teal-sv-in-questasim65c#post-6</link>
<pubDate>Wed, 07 Oct 2009 13:19:35 +0000</pubDate>
<dc:creator>Robert Ekendahl</dc:creator>
<guid isPermaLink="false">6@http://forums.trusster.com/</guid>
<description>&#60;p&#62;Thanks for bringing this to our attention Hanibian.&#60;/p&#62;
&#60;p&#62;We were not aware of this error as we currently do not use that combination of languages and tools. We're looking into the error now and will post an update as soon as possible. &#60;/p&#62;
&#60;p&#62;We should know more within a day or so.&#60;/p&#62;
&#60;p&#62;/Robert&#60;br /&#62;
-updated for clarification
&#60;/p&#62;</description>
</item>
<item>
<title>hanibian on "error occurs when running Teal sv in Questasim6.5c"</title>
<link>http://forums.trusster.com/topic/error-occurs-when-running-teal-sv-in-questasim65c#post-5</link>
<pubDate>Tue, 06 Oct 2009 22:52:30 +0000</pubDate>
<dc:creator>hanibian</dc:creator>
<guid isPermaLink="false">5@http://forums.trusster.com/</guid>
<description>&#60;p&#62;Hi,&#60;/p&#62;
&#60;p&#62;I found some errors when I tried to simulate teal sv test in Questasim 6.5c. Can anyone help?&#60;/p&#62;
&#60;p&#62;Here is the log:&#60;br /&#62;
QuestaSim vlog 6.5c Compiler 2009.08 Aug 27 2009&#60;br /&#62;
-- Compiling package teal&#60;br /&#62;
** Error: ../teal_vout_pre.sv(70): (vlog-2244) Initialization of 'j' requires that a lifetime (stati&#60;br /&#62;
c/automatic) be specified.&#60;br /&#62;
** Warning: ../teal_vout_post.sv(40): (vlog-2217) No default specified for 'initial_show_level'.  De&#60;br /&#62;
fault must match the value specified in class at ../teal_vout.svh(99) for strict LRM compliance.&#60;br /&#62;
** Warning: ../teal_vout_post.sv(156): (vlog-2217) No default specified for 'also_to_screen'.  Defau&#60;br /&#62;
lt must match the value specified in class at ../teal_vout.svh(82) for strict LRM compliance.&#60;br /&#62;
** Warning: ../teal_dictionary.sv(71): (vlog-2217) No default specified for 'replace_existing'.  Def&#60;br /&#62;
ault must match the value specified in class at ../teal_dictionary.svh(47) for strict LRM compliance&#60;br /&#62;
.&#60;br /&#62;
** Warning: ../teal_memory.sv(91): (vlog-2217) No default specified for 'size'.  Default must match&#60;br /&#62;
the value specified in class at ../teal_memory.svh(61) for strict LRM compliance.&#60;br /&#62;
** Warning: ../teal_memory.sv(115): (vlog-2217) No default specified for 'size'.  Default must match&#60;br /&#62;
 the value specified in class at ../teal_memory.svh(62) for strict LRM compliance.&#60;br /&#62;
-- Compiling program verification_top&#60;br /&#62;
-- Importing package teal&#60;br /&#62;
** Warning: vout_test.sv(48): (vlog-2240) Treating stand-alone use of function 'show_debug_level' as&#60;br /&#62;
 an implicit VOID cast.&#60;br /&#62;
** Warning: vout_test.sv(52): (vlog-2240) Treating stand-alone use of function 'show_debug_level' as&#60;br /&#62;
 an implicit VOID cast.&#60;br /&#62;
** Warning: vout_test.sv(55): (vlog-2240) Treating stand-alone use of function 'show_debug_level' as&#60;br /&#62;
 an implicit VOID cast.&#60;br /&#62;
** Warning: vout_test.sv(58): (vlog-2240) Treating stand-alone use of function 'show_debug_level' as&#60;br /&#62;
 an implicit VOID cast.&#60;br /&#62;
** Warning: vout_test.sv(62): (vlog-2240) Treating stand-alone use of function 'show_debug_level' as&#60;br /&#62;
 an implicit VOID cast.&#60;br /&#62;
-- Compiling module interfaces_dut&#60;br /&#62;
-- Compiling module top
&#60;/p&#62;</description>
</item>

</channel>
</rss>
