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

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

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

已有 7664 次阅读| 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

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

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 11

    粉丝
  • 7

    好友
  • 2

    获赞
  • 0

    评论
  • 911

    访问数
关闭

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


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 05:05 , Processed in 0.015071 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部