从大学到小硕,前后搞了 web->服务器->并行计算->SoC设计验证,语言 C->java->Verilog->SV->VHDL->C++,从软件到嵌入式,从嵌入式到硬件,从硬件又到软件。绕了个圈,越学越以为本身无知,CS太过强大,最近在某司又搞C++硬件验证,又接触一些新东西,学习验证平台。java
平台基于VPI实现C++与硬件Verilog实现信息流交互,是软件层面可见硬件信号。 配上新的方法又成一套新的验证路径,固然老美IBM有强大的FRM,其实前几作CPU的公司基本上都是一个套路。。。web
下面是搞平台时遇到的问题:服务器
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 ,因此上述动态连接库在加载的时候报格式错误,orm
32位VCS应用没法识别64位格式,解决方法两个:1. 编译平台时gcc加上参数 -m32,把动态连接库生成32位形式。 2. 给VCS加上 -full64 位运行选项;问题都能获得解决。编译
很久不碰软件的东西,不少东西略显生疏。 ->_-> , 加油啦。form