Jump to content
zareie.ehsan

problem with constructor

Recommended Posts

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()
     {
         ///
     }
};

 

 

 

Share this post


Link to post
Share on other sites

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.

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

×