從大學到小碩,前後搞了 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