在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3528|回复: 6

请问在c++程序中如何调用NCVerilog程序

[复制链接]
发表于 2008-2-13 18:57:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
现在手上正在做一个硬件加速的项目,其实就是利用 controller 和 datapath 翻译一段 C++ 程序。 希望在PC 上验证该硬件模块能不能正常工作,所以希望软件运行一部分,然后到了断点 调用硬件verilog文件,执行该硬件文件程序,得到结果然后交还给c++程序,然后c++继续执行。

请问论坛上各位大虾具体应该怎么实现?或者能否指点一下应该从哪个方向入手? 谢谢!!
 楼主| 发表于 2008-2-14 10:03:26 | 显示全部楼层
可能是我没有描述清楚,我所希望的是c++ 运行一段程序后,存储一些数据到文本文件中,该文件中的数据作为verilog程序的input,然后verilog程序执行运算,得到结果后存储于另一文本,返回给 c++,然后c++继续后面的处理。

现在的一个难办的地方我觉得就是 当verilog程序执行的时候,怎么让c++停止,实现 a->b->c  成为 a->B(verilog)->c 这种效果。

望高人能给予指点,谢谢!!
发表于 2008-2-14 12:11:26 | 显示全部楼层
试试在C++里面使用系统调用,调用Verilog,Verilog程序运行完后返回。理论上是可行的。

要是不行的话:如果前后两段C++程序没有必然联系(比如说共用变量之类的),一个简单的方法可以把一个C++程序拆成两个。然后写个perl脚本先后运行C++1,Verilog,C++2
 楼主| 发表于 2008-2-14 16:49:16 | 显示全部楼层
好像有点眉目,但是,在verilog程序中能否象 c 一样的 fprintf() 出某些寄存器的结果?  还有一个问题就是怎么让c++ 暂停然后让 verilog 程序 运算,然后 再让 c++ 执行后面的程序? c 程序_1 -->verilog_2--->c程序_3   ?

请指点,我是新手。
发表于 2008-2-14 18:37:14 | 显示全部楼层
Verilog中有$display调用,可以输出你想看到的东西
一般来说C++是执行完一条语句再执行下一条的,所以:

... //C++ 语句
system("...") //Verilog调用
... //C++ 语句

会顺序执行,就相当于在调用Verilog时C++暂停了

如果用perl写脚本的话:
... //执行C++程序1
... //执行Verilog程序
... //执行C++程序2
 楼主| 发表于 2008-2-14 19:13:28 | 显示全部楼层
多谢 多谢 ,越来越清晰自己应该往哪方面想了!
发表于 2010-2-8 10:10:59 | 显示全部楼层
大牛!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-17 14:26 , Processed in 0.025453 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表