从大学到小硕,先后搞了 web->服务器->并行计算->SoC设计验证,语言 C->java->Verilog->SV->VHDL->C++,从软件到嵌入式,从嵌入式到硬件,从硬件又到软件。绕了个圈,越学越觉得自己无知,CS太过强大,最近在某司又搞C++硬件验证,又接触一些新东西,学习验证平台。
平台基于VPI实现C++与硬件Verilog实现信息流交互,是软件层面可见硬件信号。 配上新的方法又成一套新的验证路径,当然老美IBM有强大的FRM,其实前几做CPU的公司基本上都是一个套路。。。
下面是搞平台时遇到的问题:
xxx_xxx.vcs.so: could not read symbols: File in wrong format
就是生成一个动态链接库,vcs加载时出错,问题的根源在于CentOS是64系统,GCC生成动态链接库时是64位形式,但是vcs 编译默认加载使用32形式,
g++ -o ../simv -melf_i386 -m32 -Wl,-whole-archive -Wl,-no-whole-archive _vcsobj_1_1.o ,所以上述动态链接库在加载的时候报格式错误,
32位VCS应用无法识别64位格式,解决方法两个:1. 编译平台时gcc加上参数 -m32,把动态链接库生成32位形式。 2. 给VCS加上 -full64 位运行选项;问题都能得到解决。
好久不碰软件的东西,很多东西略显生疏。 ->_-> , 加油啦。