0

对于一个项目,我试图将从sc_lv<8>类型输入端口接收的值转换为sc_uint<8>类型信号。顺便说一下,输入端口连接到一个sc_signal_rv<8>通道。

我尝试使用此行转换输入数据:

sc_in< sc_lv<8> > data_in;

// Other declarations

sc_signal< sc_uint<8> > tx_data;

// Other declarations
// Assume that all else is properly declared

sc_uint<8> temp;
temp = (sc_uint<8>)data_in->read(); // Casting
tx_data.write(temp);

但是我在模拟过程中收到了这个警告:

Warning: (W211) sc_logic value 'Z' cannot be converted to bool

我虽然想做一个个案的影响,但我不完全确定。

有任何想法吗?

4

2 回答 2

0

同意魔法师。但是,让您的程序在没有任何警告的情况下编译是一个好习惯,换句话说,警告是一个问题,您应该通过使用显式强制转换修改您的代码来回答:

sc_uint<8> temp = static_cast< sc_uint<8> >( data_in->read() );
于 2013-12-05T09:48:14.540 回答
0

这是一个警告,它会通知您关于 4 值到 2 值的转换,它会丢失信息。所以警告很好让你意识到这一点

于 2013-12-02T22:44:12.140 回答