基于Web的ASIP集成开发环境.docx
武汉纺织大学硕士学位论文基于Web的ASIP集成设计环境研究作者姓名: 上 官 松 指导教师: 朱 勇 学科门类: 工 学 专 业: 物理电子学 研究方向: 嵌入式系统及应用 完成日期: 二零一三年四月 Wuhan Textile UniversityM. E. DissertationResearch for Integrated Development Environment of ASIP based on WebByDirected byProfessor March 2013独创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学位论文作者签名: 签字日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解 武汉纺织大学 有关保留、使用学位论文的规定。特授权 武汉纺织大学 可以将学位论文的全部或部分内容编入有关数据库进行检索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国家有关部门或机构送交论文的复印件和磁盘。(保密的学位论文在解密后适用本授权说明)学位论文作者签名: 导师签名:签字日期: 年 月 日 签字日期: 年 月 日 论文题目:基于Web的ASIP集成设计环境研究专业:物理电子学硕士生:上官松指导老师:朱勇摘要专用指令集处理器(ASIP,application Specific instruction processor)设计是多年来嵌入式系统研究的热点,融合了许多先进微处理器设计方法和技术,并可以在满足功能的同时缩短嵌入式微处理的研发时间。当前ASIP设计研究进展诸如ASIP的设计方法方法很多,从理论研究到实际系统设计方法,对通用的ASIP设计开发平台的设计尝试。如基于Petri网的ASIP系统设计,基于UML/XML的ASIP系统级设计、基于GEF框架的ASIP集成开发环境 ,并通过实例对这些方法进行有效性和正确性的尝试。本文讨论了ASIP的研究情况、ASIP开发工具研究现状,在原有研究的基础上,对ASIP的集成开发环境的设计进行了新的尝试,提出了基于Web的ThinkPHP框架的集成设计环境的设计方法,采用web应用程序作为集成开发设计环境,方便开发者撇开传统应用程序,通过移动设备方便地登录,并对开源系统进行在线设计。采ThinkPHP作为框架结构,采用第三方JS库实现功能主界面;在目标板linux系统下部署数据库,存储硬件逻辑模块I/O、IP核及芯片资料,采用第三方JS库实现数据库绑定及CURD操作、编辑总线、硬件模块的对象属性,包括模块I/O和芯片PIN的编辑;同时,采用第三方JS库表现模块及总线连接,包括模块的空间集成特性和状态机的时间状态表现特性。详细讲解了开源的硬件底层和操作系统及网络IE功能实现,简单地描述了ADL模型转换,代码映射、ADL与EDA接口可执行流程。通过设计基于Altera CycloneIV的FPGA小系统版,调用开源openrisc软核的开发板移植ubantu系统,实现以太网功能,先在Windows系统开发ASIP集成开发环境,然后在linux系统部署web应用程序来测试设计的有效性。关键词:ASIP;ThinkPHP;第三方JS库;openrisc;研究类型:应用研究Subject:Research for Integrated Development Environment of ASIP based on Web Specialty:Computer Application TechnologyName:Instructor:ABSTRACTSpecific instruction set processor (ASIP, application Specific instruction processor) design of embedded systems over the years a hot research incorporates many advanced microprocessor design methods and techniques, and can shorten the embedded microprocessor at the same time meet the functional development time. The current the ASIP design research progress such as ASIP design method are many, from theoretical research to practical system design methods, design of ASIP design and development platform for generic try. Such as the ASIP system design based on Petri nets, UML / XML-based the ASIP system-level design, integrated development environment based on the the GEF framework of ASIP, and through the example of these methods, the validity and accuracy of the attempt.This thesis, a detailed discussion of some of ASIP design methodology as well as the latest research developments, and its concrete realization of the the ASIP system-level design methods appropriate improvements proposed design method based on the integrated design environment of the of the Web ThinkPHP framework , web application as integrated development design environment, facilitate the development of the traditional applications aside, through mobile devices easily log online design and open source systems. The mining ThinkPHP as a frame structure, the use of third-party JS library function main interface; database, storage hardware logic module I / O, IP core and chip data set in the open source database end, the use of third-party JS library database binding and CURD operation the edit bus hardware module object properties, including the module I / O, and chip PIN editing; using third-party JS library performance modules and bus connections, including the integrated nature of space and time state of the state machine module performance characteristics. Explain in detail the open source hardware function of the underlying operating system and network IE, simply described the ADL model transformation, code mapping, ADL and EDA interface executable process. Through open source openrisc development board transplant ubantu system, Ethernet functionality, layout of the web application environment to test the effectiveness of the design of the system.Key words:ASIP ThinkPHP MiniUI OpenRisc Thesis: Applied Research1 绪论11.1 选题背景11.2 ASIP研究意义11.3国内外研究现状及发展趋势31.4 研究目标及主要研究内容31.5 论文组织42 设计方法研究52.1嵌入式系统设计方法学52.2 ASIP设计方法学72.2.1 传统的ASIP设计方法72.2.2 ASIP行为级设计方法82.2.3 ASIP系统级设计方法92.3 基于Web的ASIP系统级设计方法92.4 本章小结113 系统方案分析与设计123.1 web访问功能实现的系统分析123.1.1 需求分析123.1.2 技术可行性分析123.2 以太网硬件方案133.3 以太网MAC控制器133.4 本章小节144 开发环境154.1 ThinkPHP框架154.2 第三方控件 MiniUI194.3 本章小结215 系统设计关键技术225.1 第三方JS库225.2 ASIP建模225.2.1 ASIP的UML建模225.2.2 ASIP的 模型存储255.2.3 HDL底层描述275.3 模拟仿真295.3 BSP网络驱动及硬件实现295.3.1 以太网MII 接口295.3.2 以太网控制器内部结构315.3.3 嵌入式linux介绍395.3.4 liunx 配置和启动405.3.5 集成以太网控制器425.5 MVC设计模式445.6 本章小结466 ASIP集成设计环境的软件实现476.1 界面功能实现476.2 ASIP的UML模型实现506.3 ASIP模型存储的实现516.4 模型数据加载526.5 ASIP ADL模型映射的实现546.6 框架及功能集成566.7 本章小结597 结论607.1 本文工作总结607.2 未来展望60致 谢62参考文献63附录651 绪论1.1 选题背景 嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。ASIP,Application Specific Instruction Set Processor(专用指令集处理器)是一种新型的具有处理器结构的芯片,它为某个或某一类型应用而专门设计。通过权衡速度、功耗、成本、灵活性等多个方面的设计约束,设计者可以定制ASIP达到最好的平衡点,从而适应嵌入式系统的需要。 嵌入式系统通常可以分为硬件和软件两大部分,其中硬件部分以嵌入式处理器为中心,配置存储器、I/O设备、通讯模块等必要的外围硬件;软件部分包括设备驱动、操作系统和应用程序等。随着开发对象复杂度的提高,系统的设计须由一个团队来分工合作完成,开发形式为软硬件协同设计方式,使用C/C+ 、ADL等高级程序语言。随着嵌入式应用的飞速发展,作为软硬件高度结合的嵌入式系统硬件环境之间差异逐渐增大。当前以交叉开发方式为主,并过多的依赖于硬件平台和本地开发工具,再加上软件的开发与硬件环境的构造的影响,导致定位存在错误,不能及时完成软件功能调试和性能测试,软件质量低、开发进度慢,嵌入式系统的开发效率在很大程度上受到开发工具的集成度和可用性的影响,促使了嵌入式系统开发工具的市场需求。同时,立足于云计算的设计思路,方便开发者在浏览器端便可以轻松开发、调试和部署网络应用程这种思想也在兴起。1.2 ASIP研究意义随着嵌入式技术的发展以及芯片制作工艺技术的进步,在单个芯片上可以集成越来越多的晶体管,片上系统SoC(System-on-Chip)设计成为芯片设计的一个重要研究领域。在整个SoC设计中,专用指令集处理器ASIP(Application Specific Instruction Set Processor)1则是一个重要模块,它是一种新型的具有处理器结构的芯片,具有可订制特性,它为某个或某一类型应用而专门设计,能够更高效的解决嵌入式系统设计中的实际问题。如图1.1,ASIP能在SoC系统中作为控制核或某些功能模块。近年来,ASIP已渗透到计算机应用的更广泛的领域,许多公司都推出了ASIP处理器产品,这些产品的特点都是在高可配置的处理器核基础上,能针对特定应用进行优化,同时提供完备的开发工具的支持,如可重定向编译器、功能单元自动产生器等加速开发过程。设计者根据系统设计的速度、功耗、成本、灵活性等多个方面的设计约束,可以定制ASIP达到最好的平衡点,从而适应嵌入式系统的需要,也正是由于自身设计采用专门定制的方法,使其具有多方面权衡和可调整能力,与专用集成电路ASIC和通用处理器GPP相比,ASIP提供了ASIC所无法具有的灵活性和比GPP更好的性价比。ASIP处理器2的最主要的优点是面向某一个具体的应用,能够实现最优的系统平衡(性能、功耗、成本等),灵活性主要体现在根据应用特征,能够对基准的处理器进行适当的定制,去除某些无关的处理逻辑,并增加能有明显提高应用性能的特殊功能单元(SFU),最大限度的利用有限的硬件资源。ASIP的这些优点使其具有良好的发展前景,被广泛应用于嵌入式系统中,它很好地解决了通用处理器GPP在嵌入式系统中性能不高和功耗过大的问题,以及ASIC灵活性差,开发难度高的缺点。随着嵌入式系统应用领域的不断扩大,ASIP的这一技术特点使得其越来越受到嵌入式系统设计人员的青睐,也成为了目前学术界的研究热点。但设计人员在系统定制ASIP处理器4时往往受到芯片面积、上市时间(TTM)和功耗等非功能性的约束,我们必须要找到一款合适的处理器体系结构,所以在设计的初期要针对特定应用进行设计空间搜索1,27,45,46(DSE),利用ADL对目标结构进行描述并用硬件描述语言(HDL)来进行硬件实现。传统设计方法中,以上工作需要手工完成,而且直接使用HDL语言来进行硬件设计相当困难,导致设计周期漫长。这里,作者探讨了一种基于ADL体系结构描述语言的系统级设计方法,对处理器指令集和微构架在系统级进行建模,并在此基础上研究系统级的综合,由ADL描述通过相应机制映射成RTL级的HDL描述,加快处理器的设计速度。ASIP介于GPP通用处理器和ASIC专用集成电路之间,解决了通用处理器在嵌入式系统中性能不高和功耗过大的问题,以及ASIC灵活性差,开发难度高的缺点。随着嵌入式系统应用领域的不断扩大,ASIP的这一技术特点使得其越来越受到嵌入式系统设计人员的青睐,在目前也成为了学术界的研究热点。因为ASIP结合了通用处理器GPP和专用集成电路ASIC的优点而受到了越来越多的研究设计人员及芯片厂商的关注。但目前还缺少通用性强和易掌握应用的ASIP设计开发平台,因此,本文提出的基于Web的ASIP系统级设计方法,是实现ASIP设计开发平台的一种新的尝试。1.3国内外研究现状及发展趋势随着对ASIP研究的逐步深入与应用的推广,ASIP系统设计方法也经历了相应的变化,从传统的设计方法、到基于IP模块的系统设计,再到基于软硬件协同的设计以及基于平台的设计方法。从大的方面来说,ASIP处理器设计44主要需要解决两个关键问题,一是如何面向具体的应用生成最优的系统体系结构,二是为定制的ASIP系统结构快速生成目标工具链,并且充分验证工具链的正确性。在应用需求迅速发展的趋势下,对产品上市时间的要求越来越高,传统的设计方法在系统规范阶段、硬件/软件设计阶段和整合测试阶段暴露出了软硬件的开发过程割裂、设计自动化层次低、周期长、缺乏对设计重用的支持等问题;设计重用是基于IP模块设计的最大优势,但随着IP模块的越来越多,也带来了IP模块功能、接口、电气特性等复杂、难于理解等缺点;软硬件协同的设计方法则存在一个软硬件划分的传统难题;基于平台的设计方法,目前只提出了一种理论上的概念框架,并没有完整的设计环境和支撑工具的支持,且难于建立相对稳定又有充分灵活性的设计框架。在嵌入式应用领域,应用的需求多种多样,并且变化频繁。应用即使做一次小规模的改动,ASIP处理器的设计流程也需要重新进行,其中很大一部分的工作需要系统设计人员手工完成,大大增加了系统开发时间。在ASIP处理器设计上,如何快速有效的提供面向应用领域的系统解决方案是亟待解决的问题,也是几年来学术界研究的热点和难点问题。此外,目前的ASIP设计方法缺乏对具体应用领域计算特征的系统分析,另一方面,针对ASIP系统设计的相关研究工作多对某个特定的问题展开,虽然也存在一些设计环境,但总体而言没有从整体系统的层面提供易用、快速和可评估的设计方法和环境。目前,已经有团队在研究ASIP设计软件IDE,作为ASIP嵌入专用指令集式处理器的基本软件开发工具。设计目标是所有软件开发编辑任务都能在ASIP IDE下完成,编译和调试程序在底层可综合SystemC的开发平台实现系统级综合,完成ADL描述到RTL级HDL描述的自动转换。1.4 研究目标及主要研究内容 本文在全面系统的分析了嵌入式系统设计和ASIP设计方法学4的基础之上,提出了基于Web的系统级的设计方法,通过第三方JS库平台下的图形化编辑框架MiniUI和基于第三方框架对ASIP中的一些功能部件进行建模,由此生成元模型。再通过XML来存储模型的数据表格,通过修改模型属性和XML参数可配置相应的部件模型和体系结构的设计,达到ASIP设计中要根据具体需求定制的目标。给出新的设计思想,设计基于嵌入式和移动设备访问的开源ASIP设计,发挥开源设计的优势。本文的主要任务集中在采用功能主界面的实现、对象图形,网络IE BSP网络驱动技术实现IE访问、ASIP的UML建模,实现基于web的ASIP集成设计环境。最后,再以OpenRisc1200可裁剪的核心和wishbone总线及各种模块集成平台来验证我们的设计,并通过openrisc的以太网接口来实现对openrisc的访问。1.5 论文组织本论文共分六章,各章的组织如下:第一章:绪论,首先介绍了该课题研究背景,包括ASIP在嵌入式领域中应用的意义和和当前形势。主要讲了ASIP集成设计环境的形势,然后讲述了本文的创新设计和研究目的。第二章:讲解了ASIP设计方法,对嵌入式系统设计方法学进行简单全面的介绍,重点阐述基于web的ASIP设计方法。第三章:对基于web的ASIP设计方法进行了需求分析和系统分析第四章:介绍了基于web的ASIP集成开发环境的开发工具。第五章:讲述了系统的设计的几个关键技术的研究,包括ASIP建模、BSP网络驱动等简述了基于web的ASIP集成设计环境的实现过程。2 设计方法研究设计方法学是研究产品设计规律、设计程序及设计中思维和工作方法的一门综合性学科。设计方法学以系统工程的观点分析设计的战略进程和设计方法、手段的战术问题。在总结设计规律、启发创造性的基础上促进研究现代设计理论、科学方法、先进手段和工具在设计中的综合运用。设计方法学是研究产品设计规律、设计程序、设计中思维和方法的一门综合性学科。设计方法学的关键是针对设计条件的约束,寻找最佳的解决方案。鼓励创新意识和协同思维,便于处理设想,达成最佳方案。其中最关键的考量是迎合用户需求和设想。而且设计方法学中也运用一些基本的研究方法,例如分析和测试。设计方法学的发展路线:可行性设计最优化设计系统设计。本节将论述一些传统的设计方法,本文为则提出基于Web的ASIP系统级设计方法。2.1嵌入式系统设计方法学目前,实现嵌入式系统的硬件方法主要有:定制逻辑(ASIC)、现场可编程门阵列(FPGA)和嵌入式微处理器三种。在实际系统实施中,绝大多数系统是采用嵌入式微处理器方式,如单片机、单板机或嵌入式微处理器芯片等。这是因为用微处理器实现嵌入式系统是一种十分有效的方法,它使得在不同价位上设计不同特性的产品系列成为可能,并且能够扩充新特性以满足飞速发展变化的市场需求。嵌入式系统设计方法的演化总的来说是由应用需求牵引和IT 技术推动。如微电子技术和半导体技术不断创新和发展,大规模集成电路集成度和工艺水平不断提高,计算机硬件平台性能也随之大幅提高,使很多复杂算法和操作简单的界面得以实现;高性能EDA综合开发工具不断智能化,给极其复杂嵌入式系统的设计提供了布线、编译、模拟、综合和验证等一体化便于学习和使用集成开发环境9; HDL的发展可以对各种复杂的电子系统硬件建立模型,其描述能力和抽象能力相当强,给硬件电路特别是定制大规模集成电路设计带来了重大变革;软件技术进步,特别是嵌入式实时操作系统EOS(Embedded Operation System)推出,为开发复杂嵌入式系统应用软件提供了底层支持和高效率开发平台,形成了嵌入式系统的基本结构。面向对象的嵌入式系统建模同任何软件密集型系统建模一样,从系统中的类建模开始。为了解类的结构,首先对系统工作过程作一个总体陈述。无论是采用问题空间词汇抽象方法还是采用用例(use case)驱动建模方法,目标都是找到系统以类或对象作为构造块的类图。如果采用用例驱动的系统分析方法,该内容也可以用用例视图加以模型规格说明,然后使其作为系统白盒测试依据。由于使用用例视图做的规格说明篇幅比较大。当系统的分析与设计采用面向对象方法时,并不意味着所使用的编程语言也一定是面向对象的。事实上,这种分析设计方法的具体实现可以使用任何编程语言(如汇编语言或C语言);但是,在程序设计上要尽可能地使用面向对象的思想,如体现程序结构方面的封装性、消息传递等。这种才会使程序结构清晰,便于应付随着需求变化而产生的不断更新和系统维护。目前嵌入式系统设计方法学有:(1) 基于IP复用的设计方法学:把经过验证的IC电路以模块即IP核以模块形式加入系统设计中。IP模块分为软核(Soft-Core)、固核(Firm-Core)和硬核(Hard-Core)。其中,软核以HDL的方式提交,其性能通过时序模拟进行验证。由于软核不依赖于任何实现工艺或实现技术,具有很大的灵活性。使用者可以方便地将其映射到自己所使用的工艺上去,可复用性很高。软核的另外一个重要的优点是使用者拥有全部源代码。使用者可以通过修改源代码,方便地生成同样功能且自有版权的新软核,从而避免向原有软核作者支付版税。同时聪明的软核使用者还可以通过增加自己的知识和经验,产生出远比原始软核广泛得多的新的软核。硬核以IC版图的形式提交,并经过实际工艺流片验证。显然,硬核强列地依赖于某一个特定的实现工艺,而且在具体的物理尺寸,物理形态及性能上具不可更改性。硬核已经过验证并具有最优的面积代价和性能的设计,使用者不需考虑与上相关的优化问题。忧的是硬核与工艺的强相关性迫使使用也只能使用核工艺完成电路其它部分的设计,而且要在布局布线遵守注意固核的物理限制。显然,固核的特点决定了使用者进行电路设计时的灵活性很小,希望通过获得固核以生成其它固核的可能基本上没有。即使有,受到加工工艺、经费和知识产权等方面的限制,也会失去意义于软核和硬核之间的固核以电路网表的形式提交并通常采用硬件进行验证。硬件验证的方式有很多种,比如可以采用可编程器件(如FPGA,EPLD)进行验证,采用硬件仿真器进行验证等。固核往往对应于某一个特定的实现工艺,在该实现工艺的条件下固核具有最优的面积和性能特性。对于使用者来说不需要对固核的功能给于过多地关注,可以减少许多相关的设计工作,同时由于固核的时序特性是经过严格检验的,设计者只要保证在布局布线过程中电路关键路径的分布参数不会引起时序混乱就可以保证芯片的设计成功。(2)软硬件协同的设计方法学:面向SoC的软硬件协同设计理论应该是从一个给定的系统任务描述着手,通过有效地分析系统任务和所需的资源,采用一系列变换方法并遵循特定的准则自动生成符合系统功能要求的,符合实现代价约束的硬件和软件架构。EDA工具必须提供能够设计和验证这样的软硬件系统的开发工具,软硬件协同设计一般包括三个阶段,即协同规范阶段,协同综合阶段,协同模拟与评估阶段。(3)基于平台的设计方法学:基于平台的方法可提供一种完全集成的通用架构,设计师能够利用这些共同特点,简单、快速地开发出SoC。而且,通过采用事先设计和特性确定的组件而不是定制设计的方法,有利于加速开发团队的设计流程,减少逐渐增加的上市时间压力。把它们应用于多个SoC项目,重复使用现有的知识产权(IP)模块有利于减少开发成本。基于平台的设计过程主要包括模块生成、IP模块重用、芯片集成和软件开发等部分。将功能和实现分开,强调功能与结构的分享,平台的开发可以独立的进行,设计平台可以分成自行设计平台、可定制平台、应用特定的平台和可配置平台。到目前为止,只是提出了理论上的概念框架,并没有完整的设计环境和支持工具。基于平台的方法有利于SoC设计师满足日益增加的复杂性和市场细分的要求。凭借基于平台的架构,设计师只要增加或更换一些IP组件,就能迅速开发出派生产品。此外,预先集成的架构有利于减少显著增加开发团队难度和导致项目失败风险的验证不确定性。最后,通过在设计内选择第三方的模块,平台方法有利于设计团队将自己的资源集中于其核心竞争力上。2.2 ASIP设计方法学2.2.1 传统的ASIP设计方法ASIP是由嵌入式系统的发展而出现的,起初它的设计方法主要也是嵌入式系统设计中的软硬件协同设计方法。软硬件协同设计是指对系统中的软件部分和硬件部分使用统一的描述和集成开发工具进行开发,在设计完之后可对整个系统的进行设计的验证,而且还能跨越软硬件界面进行系统设计中的一些优化,便于设计最佳的系统。传统的嵌入式系统设计都是要先将嵌入式系统设计划分为相对独立的软件设计和硬件设计,即所谓的软硬件分开设计,这样的设计不仅在设计时软硬件设计的使用技术多而复杂,而且系统的设计差别较大,在时间上也会不同步,会选硬件设计滞后或软件设计带后的情况。现在的一些综合技术可以将硬件和软件同等看待,在设计上和更高的抽象层次上它们之间没有什么区别,如VLSI,ASIC,PLD等硬件可以VHDL或SystemC实现。而且当今嵌入式系统设计的发展趋势是软硬件相互融合、渗透:硬件设计的软件化,如VHDL, Verilog等;软件实现的硬件化,如各种实现特定应用算法的ASIC。在给定功能的硬件和软件选择只是在多种设计指标上进行折衷,如性能,功耗,大小,价格,灵活性等,至于用硬件实现,还是用软件实现没有太大差别。这些发展都对嵌入式系统设计产生一些影响,虽然可以在设计时增加灵活性,但同时也给设计增加了风险。如今,软硬件协同设计的开发工具已经相当丰富,现总结如下:(1)硬件设计EDA工具:系统级设计工具cadence的SPW,System View;(2)模拟电路系统仿真工具:Pspice,EWB;(3)PCB设计工具:Protel,PADS的Power PCB&Tool kit,Mentor的Expedition&Tool Kit(4)可编程逻辑器件设计工具:Mentor FPGA Advantage&modelSim, Xilinx Foundation ISE&Tool Kit,各种综合和仿真第三方工具。软硬件协同设计就是在进入设计阶段之初首先对软硬件进行划分,划分哪些功能由软件来实现和哪些功能用硬件实现之后,软件设计和硬件设计可以同时进行,其中验证要贯穿软硬件设计的整个过程;软硬件分开设计的开发路线,会导致代价昂贵的纠错成本和开发进度的下降。在软硬件协同设计中所用到的一些关键技术,如可编程逻辑综合和功能模型描述的进步,使软硬件协同设计变得越来越简单。当前,软硬件协同设计缺乏标准化的设计方法和验证评估方法,可通过扩展已有的硬件/软件语言开发工具和扩展形式化验证技术并应用到软硬件领域,如基于FPGA的嵌入式系统设计SOPC设计来解决。软硬件协同设计就是在进入设计阶段之初首先对软硬件进行划分,划分哪些功能由软件来实现和哪些功能用硬件实现之后,软件设计和硬件设计可以同时进行,其中验证要贯穿软硬件设计的整个过程;软硬件分开设计的开发路线,会导致代价昂贵的纠错成本和开发进度的下降。在软硬件协同设计中所用到的一些关键技术,如可编程逻辑综合和功能模型描述的进步,使软硬件协同设计变得越来越简单。当前,软硬件协同设计缺乏标准化的设计方法和验证评估方法,可通过扩展已有的硬件/软件语言开发工具和扩展形式化验证技术并应用到软硬件领域,如基于FPGA的嵌入式系统设计SOPC设计来解决。2.2.2 ASIP行为级设计方法ASIP行为级设计方法的基础是行为级体系结构描述语言(Architecture Description Language, ADL),用于描述候选处理器指令集体系结构5,14。行为级设计首先为备选体系结构生成指令集模拟器,之后在模拟器上模拟执行要在ASIP上运行的应用程序,通过剖析(profile)得到所执行的应用程序特征,以及处理器参数信息对指令集体系结构的进行优化,然后对优化后的指令集反复执行、分析和优化,一直到设计出满足应用约束条件的指令集。为了描述ASIP的行为级设计中需要的所有信息,行为级ADL在设计时,要能准确、完整和方便完成。对指令集进行行为级描述,行为级ADL需要定义有关指令集体系结构的指令的功能、格式、编码和一些必要的硬件信息(如cache)10,11。在基于ADL的ASIP设计流程中,体系结构描述语言处于核心地位。ASIP的开发特点对ADL提出了两个方面的要求:一是ADL必须能够描述各种体系结构特性,从而方便用户定制指令和进行体系结构空间搜索;二是ADL要对体系结构的描述应尽量简洁,缩短开发时间。而这两种要求往往以是相互矛盾,所以要折中处理。目前关于ADL的研究很多,如nML和ISDL是指令集描述语言(Is ADL); LISA和Expression是通用ADL的代表,能同时描述了指令集和微体系结构级信息;TIE不能描述一个完整的处理器,只能给基础处理器添加新指令。但TIE能够快速地开发ASIP,且相关的开发工具已经相当成熟。这些ADL中最成功就是LISA和TIE,它们都被实现了商业化,其中TIE已经取得了较大成功。2.2.3 ASIP系统级设计方法目前,在嵌入式系统设计革新当中,系统级设计方法正是充满希望的一个,在面临数百万门级系统设计中,原有的寄存器传输级设计方法已经捉襟见肘,提高抽象层次,提出系统级设计新方法已成为解决问题复杂性的必然手段。ASIP系统级的设计15是从高抽象级到低抽象级的逐层实现的过程,每层都会涉及到描述、验证和转换(综合),系统级比RTL(寄存器转送级)级更高的抽象层次,包含了硬件和软件等的实现,系统级层的主要对象是ASIC、微处理器、存储器和可编程逻辑等,因此系统级设计方法是与系统级相关的各种描述、验证和综合技术的总称。系统级设计的主要任务包括12:1、系统级描述:与软硬件协同设计中的软硬件统一描述相同,但是在与实现无关的抽象层次上描述整个系统的行为,分析和验证系统。2、系统级综合:不仅关注软硬件的划分问题,而且把系统体系结构和软硬件的划分问题放在了同等的位置上考虑,并发进行,相互影响,反复迭代和循环。目前普通采用的系统级综合方法是把应用系统功能的系统实现和行为描述的不同体系结构描述分离,使得相同的系统功能在体系结构不同的情况下也能实现,通过综合生成与相3、系统级验证:系统级验证面临设计空间搜索优化的任务,因此对验证的效率要求比较高。目前验证的方法主要形式化验证方法和模拟验证。在系统级设计方法学中,系统描述占据主要位置,选择的系统描述语言决定着具体的综合和验证技术。因此,要选择一种合适的ADL来完成对ASIP的设计至关重要。2.3 基于Web的ASIP系统级设计方法基于Web的ASIP集成开发环境是一个跨平台的集成开发环境,它立足于云计算的设计思路,方便开发者在浏览器端便可以轻松开发、调试和部署网络应用程序。本身作为一款APP程序,基于Web的ASIP集成开发环境级融入了分享机制,开发者可以有选择的上传项目代码,使用云技术来协同同事完成项目工作。基于Web的ASIP系统级主要支持一些嵌入式系统开发语言包括UML、HDL、ADL等,数据库支持MySQL Server。基于Web的ASIP集成开发环境的目的就是要把IDE平台搬到Web上来。和之前的IDE码库相比,基于Web的ASIP集成开发环境为Web应用提供了一个基于浏览器的开发工具,它的客户端和所有工具都是用通过IE实现访问的。它可以在浏览器标签页里运行的IDE,也能共享。可以在新标签页里打开文件。”基于Web的ASIP集成开发环境的服务器端的计划是基于Linux实现的,采用PHP搭建Web服务。客户端UI跟服务器之间的通信都基于Web实现。在基于Web的ASIP集成开发环境中,UML(统一建模语言)都可以非常直观地展现出系统设计中的各个环节的问题和细节。软硬件设计师们只要能看懂UML符号就可以轻松地交流,还可以共同设计一个系统。同时,通过web访问的开发方式,第一能提供开源ASIP系统的,设计师可以不借助本地的开发工具,方便的访问开源的ASIP系统进行设计。系统级设计方法的核心是系统级描述语言。传统的设计描述语言如HDL等,面向低抽象级,不适于算法级和行为级描述,面向对象技术适用于行为级以上更高的抽象层次和IP重用,