asic_wang的个人空间 http://blog.eetop.cn/828160 [收藏] [复制] [分享] [RSS]

日志

VCS中SystemC/C++的动态链接库的使用

已有 2744 次阅读2015-1-21 10:13 |个人分类:Design Verification

在这个问题上需要分两种情况来说明:
1、动态链接库由纯C/C++文件编译而成,即不含有任何SC部分
    
      在此情况下,一般verilog/SV中只使用DPI技术来使用动态链接库中的某些函数,那么主要是用如下几步命令:
      1)gcc  -fPIC a.c b.c .........
      2)  gcc -shared  -o  libxxx.so
      3)  vcs  ... -LDFLAGS "-Lpath -lxxx"  xxx.v......
      4)  simv
     
      在此情况下,如果改变C/C++的部分,则只需要重新执行1和2,然后直接执行4即可,3一般是一个相当耗时的过程,这个时候动态链接库的好处就出来了。

2、不止有C/C++,还有SC
     
      在此情况下,通过需要使用不同的命令来达到效果,因为对SC部分需要特殊处理。
      一般来说,这种情形是top是verilog的,然后sc的module在verilog下被例化。
      1)syscan  a.cpp:a b.cpp:b
      2)  syscan   -shared
      3)  vcs .....
      4)  simv

      可以看出,单纯是使用gcc命令已经不能工作,至于原因和每一步的命令是做什么用的,在VCS的user guide的Using SystemC章节的Incremental Comile of SystemC Source Files条目中有清晰的示例。
       当有SC的文件改动之后,只需要重新执行1和2,然后执行4即可。

       另外需要注意的是,sc的端口列表不能变,否则需要执行全编译;不过一般来说SC主要作为reference model,需要经常变动端口的情况不多见,在初期主要是修改reference model的内部处理过程,端口应该很早就确定好了。

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

关闭

站长推荐上一条 /3 下一条

小黑屋| 关于我们| 联系我们| 在线咨询 |  ET创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2019-12-13 12:23 , Processed in 0.028666 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部