当前位置: 首页 > news >正文

执行matlab后进行RTL功能仿真check

1 背景简介

最近在做算法的RTL实现,算法是通过matlab来写的,但RTL设计做完了还需要进行多场景仿真,和算法进行一一比对,由于功能case较多,每跑一次仿真都要先手动跑一次算法,然后再跑一次功能仿真,效率很低,想着能不能一个命令算法和功能仿真一起执行了,因此就有了这个笔记整理,写记录一下,后续进步了再来修改。

2 整理思路

仿真命令是通过makefile来实现的,因此也想通过makefile来之行matlab,同时并将需要配置的参数传递给matlab,让matlab根据具体的配置来执行。

因此以前的RTL功能仿真的命令不变,只需要在makefile里加一个matlab的命令即可。下面记录一种方法,肯定还有其他更好的方法,以后找到了再补充修改吧……

3 脚本简记

makefile中的命令如下:

reg1 = 32
reg2 = 10
reg3 = crc_on
reg4 = 1matlab:@matlab_test.csh "$(reg1)" "$(reg2)" "'$(reg3)'" "$(reg4)"

说明一下,matlab_test.csh是用shell写的一个脚本文件,用来执行matlab,reg1/reg2/'reg3'/reg4都是要传参给matlab的参数,传递的参数可能是纯数字,也可能是字符串,如果是字符或者字符串需要加上单引号,如'reg3'一样。

执行matlab时只需要把需要的参数通过make命令传递则可以,如下所示。

make matlab reg1=9+reg2=10+reg3=crc_off+reg4=0

matlab_test.csh这个文件比较关键,不仅要接收外面传进来的参数,还需要带参数运行matlab,该文件的大致内容如下:

#!/bin/cshset v1 = “$1”
set v2 = “$2”
set v3 = “$3”
set v4 = “$4”echo "===========config data============="
echo "           v1: $v1                 "
echo "           v2: $v2                 "
echo "           v3: $v3                 "
echo "           v4: $v4                 "
echo "==================================="matlab -nojvm -noFigureWindows -nodisplay -nodesktop -nosplash -batch "matlab_main $v1 $v2 $v3 $v4;exit"

需要注意的是此处提到的matlab_main是一个matlab的函数,后面跟的$v1/$v2/$v3/$v4分别指的是参数reg1/reg2/'reg3'/reg4,都是需要传递给matlab的参数。把我们之前执行的matlab主函数改写成matlab函数即可,但需要注意的是在打印输出相关的数据文件时需要把打开文件、写入文件、关闭文件的都行在同一行,这是由shell语法决定的。

4 写在最后

简单整理到这里,后面有机会再做修改补充……

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【数学二】极限概念与性质
  • C++——类和对象(3)
  • ppt文件怎么压缩变小一些?8种压缩PPT文件的方法推荐
  • 网络安全应急响应概述
  • 配置Red Hat Enterprise Linux 7 YUM源
  • 免费音乐剪辑软件大揭秘:2024 大学生的音乐创作利器
  • CTFshow--爆破靶场全攻略
  • Python 课程14-TensorFlow
  • 张养浩,文坛政坛的双重巨匠
  • string类(C++)
  • 轴对齐包围盒(AABB)和有向包围盒(OBB)介绍
  • oracle停止当前运行的JOB或kill会话
  • synchronized和ReentrantLock区别?
  • 图论篇--代码随想录算法训练营第六十一天打卡| Floyd 算法,A*算法
  • css实现居中的方法
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • axios 和 cookie 的那些事
  • HTML-表单
  • HTTP那些事
  • Java的Interrupt与线程中断
  • Java深入 - 深入理解Java集合
  • vue的全局变量和全局拦截请求器
  • 电商搜索引擎的架构设计和性能优化
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 对象引论
  • 飞驰在Mesos的涡轮引擎上
  • 今年的LC3大会没了?
  • 线上 python http server profile 实践
  • 小而合理的前端理论:rscss和rsjs
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 原生 js 实现移动端 Touch 滑动反弹
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • (12)Hive调优——count distinct去重优化
  • (3)STL算法之搜索
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)计算机毕业设计ssm电影分享网站
  • (论文阅读40-45)图像描述1
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • .Net 8.0 新的变化
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET Micro Framework初体验(二)
  • .Net 代码性能 - (1)
  • .net2005怎么读string形的xml,不是xml文件。
  • ::
  • @RequestBody与@ResponseBody的使用
  • [ SNOI 2013 ] Quare