对于项目,我试图将从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
我虽然做了逐案影响,但我并不完全确定。
有什么想法吗?
答案 0 :(得分:0)
这是一个警告,它会注意到4值到2值的转换,它会丢失信息。所以警告很有可能让你觉得
答案 1 :(得分:0)
同意魔法师。 但是,在没有任何警告的情况下编译程序是一个好习惯,换句话说,警告是一个问题,您应该通过使用显式强制转换修改代码来回答:
sc_uint<8> temp = static_cast< sc_uint<8> >( data_in->read() );