1.什么是ESL设计
?电子系统级(Electronic System Level)设计方法从算法建模演变而来。ESL设计为SoC、FPGA、板上系统(SoP)提供软硬件设计,验证和调试的方法。ESL设计以抽象的方式描述系统,提供一个虚拟的硬件原型平台,进行硬件架构的探索和软件程序的开发,可以实现快速的系统建模和仿真分析。ESL设计支持整个软件和硬件协同设计的流程。
- ESL设计验证平台的好处:传统的RTL仿真验证平台不能提供较快的仿真速度与较大的仿真规模,FPGA平台则不能提供详细的性能分析指标。ESL工具能提供强大的建模能力和系统分析能力。
- ESL工具包括的功能:高层次的建模,软硬件的划分,系统架构的探索,验证调试,性能分析,高级综合等方面。目前常用的工具有synopsys的Platform Architect和Processor Designer。
2.ESL设计流程
?ESL的设计流程包括系统级描述,体系架构设计,软硬件划分,软硬件协同设计和验证。 ?系统级描述+体系结构设计+软硬件划分:设计工程师根据设计的要求,完成算法的开发,提出一种系统的架构,用ESL语言描述这种系统架构,即系统级描述或系统级建模。然后在此基础上完成软硬件的初步划分。 ? 软硬件协同设计:开始进行软件和系统级硬件的设计,系统级硬件设计是指对功能单元在高抽象层次上进行建模,并完成功能设计。用SystemC完成事务级的建模,用C/C++或汇编语言完成应用软件的设计。 ? 软硬件协同验证:软件运行在系统的虚拟平台上,根据协同验证的结果反馈给系统架构和软硬件划分,软硬件划分根据性能、成本等因素重新进行调整。
3.ESL的核心——事务级建模(Transaction level modeling)
? 事务层的引出:算法层次上建立的功能模型(Algorithm Function)没有时序的概念,没有办法进行进一步的性能分析。RTL层次关注电路在寄存器,连线层次上的细节,模型的建立和仿真时间过长。故在两个层次之间引入一个抽象层次。 ? 事务:模块之间的数据和事件的交互。数据交换可以是一个字或多个字,或者是一种数据架构,同步或者中断则属于事件的交互。 ? 事物级建模的核心:在系统建模过程中将运算功能和通信功能分开,模块之间的通信透过函数调用来实现。
- 接口:包含通信协议,由一组纯虚函数组成,可定义为一个C++抽象类。
- 通道:继承一个或多个接口,实现虚函数,即接口通信协议的具体实现。
- 虚函数:virtual关键字修饰的成员函数,就是虚函数。
?用法格式为:virtual 函数返回类型 函数名(参数表){函数体};实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。
|