2013-09-09 3 views
0

Я новичок в системе c, и я пытаюсь работать с преобразованиями данных типа c.Преобразования типов данных SystemC

У меня есть inport, у которого есть система с утипким типом, и мне нужно изменить ее на тип bool на outport.

Я пробовал следующий код.

SC_MODULE(convert) 
{ 
sc_in<sc_ufixed < 1, 1, SC_TRN, SC_SAT > > din; 
sc_out<bool> dout; 

bool i; 

void conversion1() { 

i = din.to_bool(); 
dout.write(i); 

} 
SC_CTOR(convert) 
{ 
SC_METHOD(conversion); 
sensitive<< din; 
} 
}; 

Правильный ли приведенный выше код? мне нужно использовать метод процесса для преобразования типа inport в другой тип данных в outport?

И не могли бы вы сослаться на мою полезную ссылку для преобразований типа данных системы c.

Большое спасибо

ответ

0

Ваш код неверен :

  • Как упоминалось Ивановым, преобразование функции члена1 должно быть преобразователем, как вы определили как SC_METHOD.
  • sc_in < ...> не имеет метода, называемого to_bool(). Вы должны использовать din.read(), чтобы сначала получить значение sc_ufixed, а затем преобразовать значение в bool.
SC_MODULE(convert) 
{ 
    sc_in<sc_ufixed < 1, 1, SC_TRN, SC_SAT > > din; 
    sc_out<bool> dout; 

    void conversion() { 
     dout.write(din.read()); 
    } 
    SC_CTOR(convert) 
    { 
     SC_METHOD(conversion); 
     sensitive<< din; 
    } 
}; 
0

Этот код не является корректным. Имя вашей поведенческой функции не совпадает с именем функции, которое рег. как SC_METHOD в конструкторе. Измените имя вашей функции «convecrsion1» на «conversion».

Хорошие учебники: web page www.asic-world.com

Также я рекомендую вам хорошую книгу, которая может дать вам глубокую информацию о библиотеке: SystemC с нуля