Jump to content

Recommended Posts

Posted
I wanna take an 4digit integer value and make the equivalent BCD value. I try this code but it has an error at red line
 
error: 'decimal' : no appropriate default constructor available

it mean the class constructor? is the constructor of  class decimal wrong?

 
class decimal
{
public:
sc_int<4> dec0;
sc_int<4> dec1;
sc_int<4> dec2;
sc_int<4> dec3;
decimal(sc_int<4> d0,sc_int<4> d1,sc_int<4> d2,sc_int<4> d3)
{
dec3=d3;
dec2=d2;
dec1=d1;
dec0=d0;
}
 
 
SC_MODULE (seprate_digit)
{
sc_in <sc_int<16>> in;
sc_in <bool> clk;
sc_out <decimal> d;
 
decimal dtmp;
 
     SC_CTOR (seprate_digit)
     {
           SC_METHOD(process3);
           sensitive << in;
      }
     void process3()
     {
         ///
     }
};

 

 

 

Posted

Your question is more C++ than SystemC-related. I suggest you to read a good introduction book to C++!

 

Your class decimal is not default constructible, as you have defined a constructor, which takes 4 arguments. Either provide a also default destructor without any arguments or provide default values to all four of its current arguments.

 

In your module seprate_digit, you should also initialize all member variables via the initializer list of the constructor to give names to the ports in, clk, and d as well as maybe initialize you dtmp.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...