Jump to content

Recommended Posts

Hi,

I am new to system c.

I am trying to learn it step by step,but getting messed up with arrival of every new topic.

Any suggestions for good book ?

Currently i am studying system c primer by J.Bhasker.

Please, help me out.

Thank you.

Share this post


Link to post
Share on other sites

First, make sure that you are proficient in C++ as SystemC is a C++ library, which makes extensively use of advanced C++ features! Then, read a good introductory book on SystemC. I am personally not familiar with the SystemC Primer so cannot judge it. I found the book "SystemC from the Ground Up" by David C. Black, Jack Donovan et al. very helpful to learn SystemC.

Share this post


Link to post
Share on other sites

As of now,i am familiar with oops concepts and have an intermediate level c++ knowledge.

Is it enough or do i need to get much more knowledge regarding c++.

Because everytime,i am starting afresh and ending up with more and more doubts.  

Thank you.

Share this post


Link to post
Share on other sites

Here is a short list of topics in no particular order you need to be comfortable with in order to be have an easier time learning SystemC:

[Note: Others might chime in with variations on this list (add/subtract), and this is not necessarily a complete list, but I am fairly certain if you are able to comfortably use the topics I list below, you will have very little trouble syntactically with learning SystemC. In addition to C++, it helps if you have some familiarity with event driven simulation (e.g. SystemVerilog or VHDL). Also, if you have deep knowledge in another OO language (e.g. Java or SystemVerilog), you might have an easier time learning the C++ part.]

  1. Difference between declaration and definition
  2. Pass by value vs pass by reference
  3. Use of const (5 distinct cases)
  4. Casting C++ style (4 types)
  5. Implicit vs explicit conversions
  6. Use of function overloading and how to deal with ambiguity issues
  7. Use of std::string
  8. Use of streaming I/O
  9. How to declare, define and use classes
  10. Definition of default constructor
  11. Purpose and syntax of copy constructor
  12. How to declare and use namespaces
  13. Operator overloading as member functions and global functions.
  14. The difference between overloading and overriding.
  15. Relationship between class and struct
  16. How to extend classes and multiple inheritance
  17. Purpose of public and private
  18. Storage types and lifetimes: static, automatic, dynamic
  19. How to properly use new and delete
  20. Use of pointers and understanding of issues with pointer arithmetic
  21. Use of arrays and issues
  22. Advantages and use of std::vector<>
  23. Use of try-catch and throw
  24. Use of initializer list in constructor and a proper understanding of the order of construction
  25. Polymorphism and RTTI
  26. RAII
  27. Rule of 4 (6 if using C++11 or later)
  28. How and where to define templates/generic programming (does not need to be deep knowledge - just the basics)
  29. Use of templates and nested templates.
  30. Definition of full and partial template specialization.
  31. Different types of constructors and destructors
  32. Use of virtual inheritance (hint: it's not polymorphism)

Extra topics:

  1. More STL including at least std::map<>, std::set<>
  2. Boost

Modern C++ users (2011 onward) should know about:

  1. nullptr
  2. Uniform initialization
  3. Use of auto
  4. Use of ranged for
  5. Lambda definition, binding and use
  6. constexpr
  7. std::unique_ptr<>m std::shared_ptr<>

Share this post


Link to post
Share on other sites

Seriously david,

Thanks a ton. 🙂

Thank you for letting me know the aspects which i need to cover.

Presently i am working with counter and flip flop examples,which are good enough to be carried with intermediate c++ knowledge i think.

But the moment, when i will be starting with prim and hierarchial channels, i believe i will be needing the advanced topics.

Please ,correct me if i am wrong.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×