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

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

日志

Matlab和Modelsim联合仿真

已有 1551 次阅读| 2017-4-16 19:14 |个人分类:数字验证|系统分类:芯片设计

最近在做本科毕业设计,内容是关于存储器自修复的。在验证的时候觉得用Matlab模拟随机过程,再改写verilog文件,再编译、仿真实在是太麻烦了,无法做很多次的仿真,而且发现错误的概率也大大降低了,在Windows操作系统中想利用Matlab和Modelsim联合仿真到底有没有什么好方法?我前几天也是在百度上苦苦搜寻,但是并没有发现什么好的方法。(也可能是我看的不是很认真)有几篇文章讲了利用输出文件和读取文件的方法,但是也无法解决自动编译、仿真的问题。
由于本人接触过tcl和perl等脚本语言和simvision仿真软件,知道在linux操作系统下这些是很容易实现的。由此我想到了windows自带的命令提示符,以及Matlab中可以调用DOS命令。于是我尝试了在命令提示符中输入和linux中启动Modelsim相同的命令
vsim
果然奏效。
于是思路就来了,可以利用Matlab的fopen和fwrite函数实现故障注入后verilog文件的修改。再用Matlab的dos函数执行Modelsim的脚本:vsim -c -do sim.do
至于verilog仿真结果的分析,可以通过verilog的$fopen和$fdisplay函数将需要的结果输出到文本文件当中,再通过Matlab中的fread函数读取文件中的内容,即可实现整个联合仿真。
伪代码如下:
Matlab产生随机数;
随机故障注入(用Matlab产生的随机数改写verilog文件);
运行vsim脚本(dos("vsim -c  -do sim,do")-)
sim.do内容下:
vlib work 
vmap work 
vlog -incr  *.v
vsim work.测试平台名 -novopt -L
run
exit

利用matlab的fread或者DOS的type命令读取输出变量的;
将输出变量值与理想值比较;

点赞

评论 (0 个评论)

facelist

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

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

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 1068

    访问数
关闭

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

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

GMT+8, 2024-3-28 19:43 , Processed in 0.026950 second(s), 15 queries , Gzip On, Redis On.

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