传统的嵌入式系统软件的开发分为需求定义、功能设计、代码编写和测试等几个阶段,测试、找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转灰度)。
图1 添加Simulink模型做为IP
此时我们在Vivado工程管理器中,看到刚刚添加的模型,前面有SysGen的图标,十分醒目,如图2所示。
图2 工程管理器中的模型
Vivado这点做的很好,各种各样的图示让人一目了然;还比如我们前面硬件在线调试的时候,待观测的信号图示里就有个小虫子的标志,马上就明白是debug状态的信号了。
图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等流程,一个设计就这样轻松完成了。欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |