微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > systemc编译遇到的几个错误,急求

systemc编译遇到的几个错误,急求

时间:10-02 整理:3721RD 点击:
有几个错误,总是不知道怎么回事,求点拨1.if( ~( (xa_t.or_reduce())|(ya_t.or_reduce()) ) )
这里xa_t和ya_t都是sc_bv<256>变量

出错
error C2666: '|' : 10 overloads have similar conversions

2.divide_negya_t = (1,~ya_t) + 1;
divide_negya_t和ya_t都是sc_biguint类型

出错
error C2678: binary '+' : no operator defined which takes a left-hand operand of type 'class sc_dt::sc_unsigned_concref_r<class sc_dt::sc_unsigned,class sc_dt::sc_unsigned>' (or there is no acceptable conversion)

这个error C2678还有好几处同样的问题
比如
gety_resultxac_t = (0,gety_xa_t) + gety_negxc_t;
这个_t都是sc_biguint型,是由信号赋值过来的

3.multi_datax_t = ( 0,0,multi_x_t );
_t也是sc_biguint,并由信号赋值过来

出错
error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class sc_dt::sc_unsigned_concref_r<class sc_dt::sc_unsigned,class sc_dt::sc_unsigned>' (or there is no acceptable conversion)
这个错也有好几处

困扰好几天了,也不知道怎么回事

基本都是强制类型转换出错,我觉得是你的括号操作出了问题。
SC不像verilog等语言那样数据类型少,而是有多种类型。
你不要想当然的认为各种数据间的操作都是自然而然的,最好参考SC的2011标准,里面有些例子。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top