基于动态语言的系统描述、验证和综合

基于动态语言的系统描述、验证和综合

论文摘要

随着集成电路工艺的高速发展,单块集成电路上的晶体管数目越来越多,更多地以复杂的片上系统(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的动态系统级设计催生了若干系统设计方法的改进,能极大地提高开发人员开发效率,适应于更高级别的电子自动化设计。

论文目录

  • 摘要
  • ABSTRACT
  • 第1章 绪论
  • 1.1 研究背景
  • 1.1.1 系统级设计的需求
  • 1.1.2 系统级设计语言的发展
  • 1.1.3 系统级设计语言的设计能力
  • 1.1.4 代表性的系统级设计语言
  • 1.1.5 其他一些相关项目
  • 1.2 传统系统设计的缺陷
  • 1.2.1 传统系统设计语言缺少自省和反射能力
  • 1.2.2 传统系统设计采用了静态方法
  • 1.2.3 传统系统设计缺乏系统范围内统一综合框架
  • 1.3 本文的研究内容、主要贡献和创新点
  • 1.4 本文结构安排
  • 第2章 动态系统设计
  • 2.1 动态系统设计概念
  • 2.1.1 动态系统设计的描述优势
  • 2.1.2 动态系统设计的验证优势
  • 2.1.3 动态系统设计的综合优势
  • 2.1.4 和谐统一的精炼、综合框架
  • 2.2 动态系统描述的定义和特性
  • 2.3 基于动态系统描述的设计流程
  • 2.4 动态系统设计的基础——动态语言
  • 2.4.1 动态语言的特性
  • 2.5 优秀的动态语言Python
  • 2.5.1 Python的历史
  • 2.5.2 Python的应用
  • 2.5.3 Python的变体
  • 2.5.4 Python特点
  • 2.6 动态系统设计语言PDSL
  • 2.6.1 PDSL采用的Python版本:Stackless Python
  • 2.6.2 PDSL采用的第三方字节码处理工具包: Byteplay
  • 2.7 本章要点总结
  • 第3章 动态系统设计语言的描述实现
  • 3.1 展示特性的描述示例
  • 3.2 数据
  • 3.2.1 信号位(SigBit类)
  • 3.2.2 信号(Sig类)
  • 3.3 过程
  • 3.3.1 敏感列表
  • 3.3.2 过程标志
  • 3.4 容器(Box类)
  • 3.5 模块(Mod类)
  • 3.6 动态系统分析
  • 第4章 动态系统设计语言仿真与验证的实现
  • 4.1 仿真时间
  • 4.2 仿真时间轴
  • 4.3 仿真引擎流程
  • 4.4 延时激活行为
  • 4.5 非阻塞赋值行为
  • 4.6 过程同步
  • 4.6.1 过程同步调用
  • 4.6.2 过程同步激活
  • 4.7 动态系统的持久性管理
  • 4.7.1 动态系统的Pickle
  • 4.7.2 动态系统的unPickle
  • 第5章 动态系统的综合实现
  • 5.1 综合概述
  • 5.2 检视模块数据
  • 5.3 检视子模块实例
  • 5.4 检视模块过程
  • 5.4.1 过程属性的转化
  • 5.4.2 过程流程图的构成
  • 5.4.3 构造字节码节点序列
  • 5.4.4 重定位行号
  • 5.4.5 重定位跳转
  • 5.4.6 分析表达式
  • 5.4.7 压缩节点
  • 5.5 输出硬件语言描述的映射器
  • 第6章 高级综合系统TRILOBITE
  • 6.1 概述
  • 6.2 Trilobite系统设计流程
  • 6.3 行为准确处理器描述,BAPD
  • 6.4 高级综合
  • 6.4.1 生成数据和控制依赖图
  • 6.4.2 优化数据和控制依赖图
  • 6.4.3 生成和优化逻辑操作
  • 6.4.4 指令识别
  • 6.4.5 优化指令实现
  • 6.4.6 优化内存体系
  • 6.4.7 生成数据通路
  • 6.4.8 生成总线
  • 6.4.9 生成流水和超标量体系结构
  • 6.4.10 生成控制器
  • 6.5 实例分析
  • 6.6 本章要点总结
  • 第7章 设计案例:温度补偿晶体振荡器
  • 7.1 背景介绍
  • 7.2 系统设计概览
  • 7.3 理想曲线生成
  • 7.4 逼近曲线生成
  • 7.4.1 具体工作和流程影响
  • 7.5 实时重建
  • 7.5.1 具体工作和流程影响
  • 7.6 实现
  • 7.7 最后的补偿结果
  • 7.8 本章要点总结
  • 第8章 总结和展望
  • 参考文献
  • 致谢
  • 博士期间的论文和专利
  • 相关论文文献

    • [1].在物联网中计算机动态语言的应用[J]. 信息通信 2016(11)
    • [2].动态语言社区回顾[J]. 程序员 2009(02)
    • [3].乱花渐欲迷人眼——回顾动态语言的2007[J]. 程序员 2008(02)
    • [4].动态语言的符号化特征研究[J]. 艺术家 2020(07)
    • [5].跨文化交际能力探究下的动态语言教学[J]. 重庆科技学院学报(社会科学版) 2009(06)
    • [6].细节亦智慧[J]. 湖北教育(教育教学) 2013(09)
    • [7].动态语言[J]. 程序员 2008(01)
    • [8].动态语言实现MapReduce应用[J]. 程序员 2010(05)
    • [9].JavaFX的挑战与机遇[J]. 程序员 2009(05)
    • [10].动态语言的GIS开发插件[J]. 程序员 2009(12)
    • [11].动态语言的虚拟机平台[J]. 程序员 2008(05)
    • [12].JVM之上的动态语言[J]. 程序员 2008(09)
    • [13].面向动态语言的IDE策略——CodeGear公司CEO Jim Douglas专访[J]. 程序员 2008(01)
    • [14].探索中国古典舞的动态语言[J]. 通俗歌曲 2015(09)
    • [15].跨文化交际框架下的动态语言教学[J]. 长沙大学学报 2009(01)
    • [16].Python与Rails发布版稳步推进[J]. 程序员 2008(06)
    • [17].支持动态语言的GlassFish v3[J]. 程序员 2008(12)
    • [18].动态语言的代码托管云服务[J]. 程序员 2009(07)
    • [19].云计算基础设施中的动态语言项目[J]. 程序员 2009(11)
    • [20].动态语言[J]. 程序员 2008(02)
    • [21].支持动态语言的Android平台[J]. 程序员 2009(08)
    • [22].当代艺术创作中动态语言的美学功能研究[J]. 美术大观 2016(08)
    • [23].用动态语言简化ICE接口测试[J]. 程序员 2009(09)
    • [24].服装——戏曲现代戏的静态语言——我参与大型现代淮剧《有一朵兰花》的服装制作[J]. 剧影月报 2011(02)
    • [25].浅谈聋校舞蹈欣赏课教学[J]. 新课程(教育学术版) 2009(05)
    • [26].语言知识的本真状态就是动态的——张普《动态语言知识更新研究》述评[J]. 现代语文(语言研究版) 2010(12)
    • [27]..NET语言和模式的简析[J]. 电脑知识与技术 2010(26)
    • [28].Google Go语言将加速对Android平台的支持[J]. 电脑编程技巧与维护 2010(17)
    • [29].从动态语言的视角考察日语中的“「若者」副词”[J]. 日语学习与研究 2009(03)
    • [30].快速精通PHP学习策略之我见[J]. 电子制作 2015(14)

    标签:;  ;  ;  ;  ;  ;  

    基于动态语言的系统描述、验证和综合
    下载Doc文档

    猜你喜欢