模型驱动设计和统一建模语言有什么作用
扫描二维码
随时随地手机看文章
近年来,模型驱动设计和统一建模语言(UML :Unified Modeling Language)作为一种与平台无关的建模方法,在电子系统设计中得到了广泛的关注。现存的几种UML配置文件在UML级别建模硬件组件,并自动生成代码。其中实时和嵌入式系统的建模和分析[15](MARTE:Modeling and Analysis of Real-time and Embedded Systems),在UML图中使用了时序的属性。在实时嵌入式系统建模中最常用的UML图之一是序列图。序列图表示应用程序功能、不同组件之间的交互,并允许指定“时间不变量”。图3-2中为基于UML/MARTE建模、验证和代码生成流程。
Simulink是建立在Matlab之上的系统级建模仿真基本环境,是一个图形化的建模工具,从某种意义上讲,凡是能够用数学方式描述的系统,都可以用Simulink建模,容易搭建的包括:通信系统物理层和数据链路层,控制系统,数字信号处理系统,动力学系统。Real-Time Workshop(RTW)是基于Simulink的目标代码生成工具。HDL Verifier是用于验证的工具套件,提供的验证功能主要关注在模型仿真与生成HDL代码的仿真结果一致性比对。在MATLAB开发环境中,要自动生成面向FPGA的目标代码,需要使用simulink搭建算法或者系统的模型,然后通过RTW或者RTW提供给第三方代码自动生成工具(如HDL Coder、Xilinx System Generator、Altera DSP Builder等)的开放接口。
起点是UML/MARTE序列图,它描述了系统的行为(在组件之间的数据交换)和时序约束。从这个描述中,生成了SystemC/TLM和VHDL模型,包含检查约束的断言调用。因为序列图指定实体之间的数据交换,但不指定实体内部的处理代码;因此,生成的代码要用于仿真还需要链接到可用的知识产权(IP)核心库。仿真输入一组合适的测试台,并生成一个约束报告。验证过程产生的结果,一方面,将仿真中获得的新的信息反馈,用于细化UML模型及其约束。另一方面,将生成的VHDL代码合成为硬件组件(如FPGA),从而获得UML应用的实际实现。GenERTiCA工具支持从UML模型自动生成VHDL代码。

图3-2 基于UML/MARTE建模、验证和代码生成流程
Matlab/Simulink是目前在对全流程支持最完整的一套工具,能够提供高性能动态系统的仿真、分析和测试,并能够完成从模型到代码的转换。通过图形界面和基于语言的方法,使系统设计变得灵活易懂,易于开发和测试人员设计和调试,在国内也有大量的技术支持并提供解决方案,因此本章节重点介绍基于Matlab/Simulink的建模和HDL代码自动生成应用技术。目前,基于Matlab/Simulink的模型驱动开发和HDL代码生成技术已成功应用于航天、航空、航海、医疗、电力、红外成像、固态存储、机器人控制等众多领域,具体应用包括无线数字收发器、音视频处理、编解码器、雷达信号处理、闪存控制器等,从原型设计到代码实现平均开发时间缩短50%,典型的成功应用情况如下:
1) Reutech 雷达系统公司采用基于模型的设计流程,开发舰载海空搜索雷达核心信号处理子系统,完成系统级的仿真,自动生成75,000多行HDL代码,节省了两个工程师人年,该雷达系统最后完成了探索性的海上试验。
2)美国的红外热成像技术领导企业FLIR在红外摄像机的热成像算法中应用了模型驱动开发的方法,从概念到现场可测试原型的时间减少了60%,重大算法更改从重新部署到代码实现,由几周缩短为几小时,HDL代码重用从零增加到30%。
3) Semtech通过基于模型的设计生成VHDL代码,加快了无线RF设备优化的数字接收器链的开发,验证时间从数周缩短为几天,并且最终交付的代码性能更佳。
4)日本半导体生产商Siglead使用HDL Coder从定点Simulink模型生成VHDL代码,并将其部署在Xilinx Spartan-6FPGA上,开发时间由4个月变为1个月,缩短了75%,设计迭代修改从三天变为三个多小时,设计人员能够把更多的时间花在富有成效的算法开发和探索优化设计上。
5)为了帮助心脏病学家检测脂质核心斑块LCP(患有LCP更容易罹患冠心病),红外线公司开发了TVC成像系统。美国的Infraredx使用Matlab/Simulink和HDL编码器加速TVC成像系统中IVUS信号和图像处理算法的开发和FPGA实现,自动生成的代码与手写的代码使用了相同数量的乘法器,同时使用的逻辑减少了9%,使用的内存减少了3%。
6) Philips Healthcare的工程师使用Simulink来建模由数字RF接收机、比较器、RF波形发生器和放大器组成的架构。引入基于模型的设计方案后,使设计问题能够早发现早解决,由于HDL Coder生成代码具有很好的规范性,使代码生成相对于手工编写代码的不一致性风险降低。
7)Renesas半导体的工程师为图像处理算法开发和实施采用了基于模型的设计,探索了多个设计优化和替代方案并生成了高效的HDL代码,该公司的工程师称:“在进行优化后,自动生成的代码与我们最好的手工编写代码相比,基本上具有相同的区域和速度特性。由 HDL Coder生成的HDL代码与手工编写的同等HDL代码相比,在120 MHz和275 MHz目标时钟频率上使用的资源稍微少一些。并且,通过使用Simulink和HDL Coder,早前没有硬件经验的工程师在大概六个月内学会了RTL设计。”