首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Vivado高效设计案例分享大赛---10. 体验基于模型的设计思想-让设计效率提高数百倍

Vivado高效设计案例分享大赛---10. 体验基于模型的设计思想-让设计效率提高数百倍

传统的嵌入式系统软件的开发分为需求定义、功能设计、代码编写和测试等几个阶段,测试、找bug和解决bug往往要花费很多的精力,特别是越是隐藏的深的bug越难发现和解决,其导致的发布延时会造成整个修复成本的指数级上升。采用基于模型的设计(model based design,MBD),则可以在设计的早期通过仿真等手段保证模型的正确性,并在开发的各个阶段都可以进行验证与确认(Validation & Verification,V&V),即使是在火星车、第四代战斗机这样的高精尖项目里也广泛使用了MBD设计方法。System Generator作为在FPGA开发中使用MBD方法的领头羊,本身的开发效率就已经很高了。

       在全新的FPGA设计中,以Vivado IP Integrator (IPI)为设计中心,再结合System Generator的简单、高效的设计与验证方法,就能实现1+1>2的设计效率。它们直接的沟通并不复杂,那就是一切都围绕IP展开。下面我们就用简单的几步体验一下如何在Vivado里面使用基于模型的设计方法轻松完成一个复杂的运算(RGB转灰度)。
       首先,我们先在System Generator里面完成模型的搭建和仿真验证(必要的话还可以进行FPGA在回路测试)。然后回到Vivado,新建一个RTL工程,并添加或者编写必要的顶层文件、其它的HDL、测试脚本、约束文件等。那System Generator的模型是怎么加入到Vivado里面的呢?只要把它作为一个IP调入工程里面就行了:在以前使用ISE和SysGen一起工作的时候,SysGen会生成几十个上百个的文件,我们需要把它里面的顶层文件,例如一个HDL文件通过例化加入到ISE的工程里,编辑与关联都不是特别快速。现在好了,只要把mdl文件直接作为IP加入Vivado工程里面,如图1所示。



图1 添加Simulink模型做为IP

       此时我们在Vivado工程管理器中,看到刚刚添加的模型,前面有SysGen的图标,十分醒目,如图2所示。



图2 工程管理器中的模型

       Vivado这点做的很好,各种各样的图示让人一目了然;还比如我们前面硬件在线调试的时候,待观测的信号图示里就有个小虫子的标志,马上就明白是debug状态的信号了。
       当然,顶层文件和被调用的SysGen模块是不能直接读取信息的,既然SysGen模块作为IP被调用,那基本的模型例化语句还是要有的,如图3所示。



图3 例化System Generator模型

       双击图2里面的System Generator模型,或者点击Vivado设计流导航器中的RTL分析,Vivado会自动调用Matlab/Simulink打开模型,并生成HDL代码,然后返回;一个RGBtoGrey的代码只用十几秒的时间就产生完成了,相比老版本Sysgen,这个时间是极大地缩短了,看来Vivado使用的System Generator也是使用了新的处理算法,如图4所示。



图4 System Generator中产生代码

       Vivado版本的System Generator生成的文件也很少,与老版本System Generator产生的一大堆文件形成了鲜明对比(产生的文件少了许多,自然画的时间也少了),如图5所示。



图5 System Generator生成的文件

       在Vivado工程管理器中,相关的文件被自动添加了,方便我们的查看与分析,如图6所示。



图6 在Vivado工程管理器中管理生成的文件

       进行RTL分析,稍等片刻之后看到被调用的System Generator模块的信息,如图7所示。



图7 SysGen模块的RTL视图

       接下来再进行布局布线、实现、烧写FPGA等流程,一个设计就这样轻松完成了。
记录学习中的点点滴滴,让每一天过的更加有意义!
共同努力,共同学习!----------中电网技术论坛
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表