论文部分内容阅读
随着集成电路工艺的高速发展,单块集成电路上的晶体管数目越来越多,更多地以复杂的片上系统(SoC)形式出现。集成电路设计也从原来的寄存器传输级(RTL)转向系统级(ESL),由此系统级设计语言也适时而生。这是一种有能力在多个设计抽象级上描述电子系统的语言,从它的形成来看,它们来自于①对经典的硬件描述语言的扩展,②对通用串行语言的扩展,③一种完全全新的设计。它们的出现和发展极大提高了设计人员的生产力。在这三种分类中,其中来自对通用串行语言C/C++扩展的SystemC广受关注,已经成为事实上的标准。由于面向硬件设计的系统级语言和通用语言为基础软件技术的独立发展,使得它们无法吸收软件技术发展的最新成果,这在一定程度上限制了设计人员的开发效率。其中近年来逐渐发展并流行的动态语言(如Python)已经被广泛地使用在各种大型项目中,并且取得了骄人的战绩。软件巨头微软公司也在他们的软件升级中加入各种动态性能的支持,如C#的新版本和IronPython的建立。使用这些新兴的软件技术极大地缩短了产品开发的周期,然而如何把这些优势扩展到系统级设计是一个极富挑战性的课题。源于此,本文以流行的动态语言Python为基础,在这方面做有益的探索和尝试。主要的工作如下:(1)提出新式的动态系统设计的定义和由此而生的新流程。动态系统描述定义为可动态修改的状态描述集合。它是贯穿本文的核心概念,系统设计实现的三阶段(描述、验证和综合)都建立在此基础之上。它区别于传统的建立在各种设计文件为基础的静态系统描述概念。利用流行的Python动态语言,我们设计了动态系统级设计语言PDSL(Python based Dynamic System Language),用户可以通过它完成基于动态系统描述的整个流程。(2)设计并实现PDSL中的的动态描述方式和对应的描述要素。用户可利用PDSL中各种描述要素(如模块,数据,过程等)构建一个动态系统,并且提供各种机制能够以程序方式动态添加、删除和修改系统的结构和行为。(3)设计并实现了PDSL中动态系统的验证。这一部分首先定义了仿真时间的概念,并基于此设计和实现了一个离散事件驱动型系统仿真内核。另外,这一部分还定义了动态系统验证中的持久化管理,包括序列化和反序列化。(4)设计并实现了PDSL中动态系统的综合。综合是把动态系统的即时映像转变成可以被业界接受的硬件描述语言描述。这其中包含数据的匹配,子模块的识别和转化,以及过程中Python字节码的复杂分析和转换。(5)设计并实现了基于自然建模的高级综合系统Trilobite。自然建模指的是一种贴近设计者认知理解结构的建模方式,它的理念是把大量的复杂性转移并隐藏于系统工具库内部。基于这个理念,我们设计并实现了一个使用PDSL的高级综合系统。它创建了一个框架,能够按需要扩展各种细化、翻译和优化步骤把用户的高级描述转化到最终的硬件描述。总的来说,这里包含两个项目:PDSL(包含工作点1-4)和在此基础上的Trilobite(包含工作点5),前者面向贴近硬件的低级设计,后者针对高级建模的描述和综合。最后论文阐述了使用动态语言Python、Trilobite和PDSL完成的温度补偿时钟模块的设计、验证和生成的整个过程。除了这个非处理器的实例,论文阐述了简单CPU的设计、验证和生成以及JAVA处理器的部分设计结果。使用Python、Trilobite和PDSL的动态系统级设计催生了若干系统设计方法的改进,能极大地提高开发人员开发效率,适应于更高级别的电子自动化设计。