版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
154/171武汉纺织大学硕士学位论基于Web的ASIP集成设计环境研究作者姓名:上官松指导教师:朱勇学科门类:工学专业:物理电子学研究方向:嵌入式系统及应用完成日期:二零一三年四月wuhanTextileuniversityM.E.DissertationResearchforIntegratedDevelopmentEnvironmentofASIPbasedonWebByDirectedbyProfessorMarch2013独创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中差不多注明引用的内容外,本论文不包含任何其他个人或集体差不多发表或撰写过的作品成果。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学位论文作者签名:签字日期:年月日学位论文版权使用授权书本学位论文作者完全了解武汉纺织大学有关保留、使用学位论文的规定。特授权武汉纺织大学能够将学位论文的全部或部分内容编入有关数据库进行检索,并采纳影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国家有关部门或机构送交论文的复印件和磁盘。(保密的学位论文在解密后适用本授权讲明)学位论文作者签名:导师签名:签字日期:年月日签字日期:年月日论文题目:基于Web的ASIP集成设计环境研究专业:物理电子学硕士生:上官松指导老师:朱勇摘要专用指令集处理器(ASIP,applicationSpecificinstructionprocessor)设计是多年来嵌入式系统研究的热点,融合了许多先进微处理器设计方法和技术,并能够在满足功能的同时缩短嵌入式微处理的研发时刻。当前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接口可执行流程。通过设计基于AlteraCycloneIV的FPGA小系统版,调用开源openrisc软核的开发板移植ubantu系统,实现以太网功能,先在Windows系统开发ASIP集成开发环境,然后在linux系统部署web应用程序来测试设计的有效性。关键词:ASIP;ThinkPHP;第三方JS库;openrisc;研究类型:应用研究Subject:ResearchforIntegratedDevelopmentEnvironmentofASIPbasedonWebSpecialty:ComputerApplicationTechnologyName:Instructor:ABSTRACTSpecificinstructionsetprocessor(ASIP,applicationSpecificinstructionprocessor)designofembeddedsystemsovertheyearsahotresearchincorporatesmanyadvancedmicroprocessordesignmethodsandtechniques,andcanshortentheembeddedmicroprocessoratthesametimemeetthefunctionaldevelopmenttime.ThecurrenttheASIPdesignresearchprogresssuchasASIPdesignmethodaremany,fromtheoreticalresearchtopracticalsystemdesignmethods,designofASIPdesignanddevelopmentplatformforgenerictry.SuchastheASIPsystemdesignbasedonPetrinets,UML/XML-basedtheASIPsystem-leveldesign,integrateddevelopmentenvironmentbasedonthetheGEFframeworkofASIP,andthroughtheexampleofthesemethods,thevalidityandaccuracyoftheattempt.Thisthesis,adetaileddiscussionofsomeofASIPdesignmethodologyaswellasthelatestresearchdevelopments,anditsconcreterealizationofthetheASIPsystem-leveldesignmethodsappropriateimprovementsproposeddesignmethodbasedontheintegrateddesignenvironmentoftheoftheWebThinkPHPframework,webapplicationasintegrateddevelopmentdesignenvironment,facilitatethedevelopmentofthetraditionalapplicationsaside,throughmobiledeviceseasilylogonlinedesignandopensourcesystems.TheminingThinkPHPasaframestructure,theuseofthird-partyJSlibraryfunctionmaininterface;database,storagehardwarelogicmoduleI/O,IPcoreandchipdatasetintheopensourcedatabaseend,theuseofthird-partyJSlibrarydatabasebindingandCURDoperationtheeditbushardwaremoduleobjectproperties,includingthemoduleI/O,andchipPINediting;usingthird-partyJSlibraryperformancemodulesandbusconnections,includingtheintegratednatureofspaceandtimestateofthestatemachinemoduleperformancecharacteristics.ExplainindetailtheopensourcehardwarefunctionoftheunderlyingoperatingsystemandnetworkIE,simplydescribedtheADLmodeltransformation,codemapping,ADLandEDAinterfaceexecutableprocess.Throughopensourceopenriscdevelopmentboardtransplantubantusystem,Ethernetfunctionality,layoutofthewebapplicationenvironmenttotesttheeffectivenessofthedesignofthesystem.Keywords:ASIPThinkPHPMiniUIOpenRiscThesis:AppliedResearchTOC\o"1-3"\h\u114481绪论 1200771.1选题背景 1101461.2ASIP研究意义 112031.3国内外研究现状及进展趋势 321421.4研究目标及要紧研究内容 3281461.5论文组织 4266032设计方法研究 5175592.1嵌入式系统设计方法学 5119642.2ASIP设计方法学 740952.2.1传统的ASIP设计方法 7277942.2.2ASIP行为级设计方法 8305792.2.3ASIP系统级设计方法 9204662.3基于Web的ASIP系统级设计方法 926222.4本章小结 11170053系统方案分析与设计 1234183.1web访问功能实现的系统分析 1261693.1.1需求分析 1290813.1.2技术可行性分析 12296793.2以太网硬件方案 1326883.3以太网MAC操纵器 13204503.4本章小节 14168124开发环境 15202074.1ThinkPHP框架 15179064.2第三方控件MiniUI 19287934.3本章小结 21159675系统设计关键技术 22142505.1第三方JS库 221325.2ASIP建模 22119525.2.1ASIP的UML建模 22218105.2.2ASIP的模型存储 25115325.2.3HDL底层描述 27266355.3模拟仿真 29167295.3BSP网络驱动及硬件实现 29247625.3.1以太网MII接口 29251315.3.2以太网操纵器内部结构 31232455.3.3嵌入式linux介绍 39263555.3.4liunx配置和启动 40229235.3.5集成以太网操纵器 4243735.5MVC设计模式 44325665.6本章小结 46282986ASIP集成设计环境的软件实现 47193506.1界面功能实现 47273396.2ASIP的UML模型实现 509736.3ASIP模型存储的实现 51183926.4模型数据加载 52137506.5ASIPADL模型映射的实现 54185736.6框架及功能集成 5670146.7本章小结 59242407结论 6019257.1本文工作总结 606007.2以后展望 602456致谢 6217821参考文献 6312660附录 651绪论1.1选题背景嵌入式系统(Embeddedsystem),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。ASIP,ApplicationSpecificInstructionSetProcessor(专用指令集处理器)是一种新型的具有处理器结构的芯片,它为某个或某一类型应用而专门设计。通过权衡速度、功耗、成本、灵活性等多个方面的设计约束,设计者能够定制ASIP达到最好的平衡点,从而适应嵌入式系统的需要。嵌入式系统通常能够分为硬件和软件两大部分,其中硬件部分以嵌入式处理器为中心,配置存储器、I/O设备、通讯模块等必要的外围硬件;软件部分包括设备驱动、操作系统和应用程序等。随着开发对象复杂度的提高,系统的设计须由一个团队来分工合作完成,开发形式为软硬件协同设计方式,使用C/C++、ADL等高级程序语言。随着嵌入式应用的飞速进展,作为软硬件高度结合的嵌入式系统硬件环境之间差异逐渐增大。当前以交叉开发方式为主,并过多的依靠于硬件平台和本地开发工具,再加上软件的开发与硬件环境的构造的阻碍,导致定位存在错误,不能及时完成软件功能调试和性能测试,软件质量低、开发进度慢,嵌入式系统的开发效率在专门大程度上受到开发工具的集成度和可用性的阻碍,促使了嵌入式系统开发工具的市场需求。同时,立足于云计算的设计思路,方便开发者在扫瞄器端便能够轻松开发、调试和部署网络应用程这种思想也在兴起。1.2ASIP研究意义随着嵌入式技术的进展以及芯片制作工艺技术的进步,在单个芯片上能够集成越来越多的晶体管,片上系统SoC(System-on-Chip)设计成为芯片设计的一个重要研究领域。在整个SoC设计中,专用指令集处理器ASIP(ApplicationSpecificInstructionSetProcessor)[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嵌入专用指令集式处理器的差不多软件开发工具。设计目标是所有软件开发编辑任务都能在ASIPIDE下完成,编译和调试程序在底层可综合SystemC的开发平台实现系统级综合,完成ADL描述到RTL级HDL描述的自动转换。1.4研究目标及要紧研究内容本文在全面系统的分析了嵌入式系统设计和ASIP设计方法学[4]的基础之上,提出了基于Web的系统级的设计方法,通过第三方JS库平台下的图形化编辑框架MiniUI和基于第三方框架对ASIP中的一些功能部件进行建模,由此生成元模型。再通过XML来存储模型的数据表格,通过修改模型属性和XML参数可配置相应的部件模型和体系结构的设计,达到ASIP设计中要依照具体需求定制的目标。给出新的设计思想,设计基于嵌入式和移动设备访问的开源ASIP设计,发挥开源设计的优势。本文的要紧任务集中在采纳功能主界面的实现、对象图形,网络IEBSP网络驱动技术实现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(EmbeddedOperationSystem)推出,为开发复杂嵌入式系统应用软件提供了底层支持和高效率开发平台,形成了嵌入式系统的差不多结构。面向对象的嵌入式系统建模同任何软件密集型系统建模一样,从系统中的类建模开始。为了解类的结构,首先对系统工作过程作一个总体陈述。不管是采纳问题空间词汇抽象方法依旧采纳用例(usecase)驱动建模方法,目标差不多上找到系统以类或对象作为构造块的类图。假如采纳用例驱动的系统分析方法,该内容也能够用用例视图加以模型规格讲明,然后使其作为系统白盒测试依据。由于使用用例视图做的规格讲明篇幅比较大。当系统的分析与设计采纳面向对象方法时,并不意味着所使用的编程语言也一定是面向对象的。事实上,这种分析设计方法的具体实现能够使用任何编程语言(如汇编语言或C语言);然而,在程序设计上要尽可能地使用面向对象的思想,如体现程序结构方面的封装性、消息传递等。这种才会使程序结构清晰,便于应付随着需求变化而产生的不断更新和系统维护。目前嵌入式系统设计方法学有:基于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.2ASIP设计方法学 2.2.1传统的ASIP设计方法 ASIP是由嵌入式系统的进展而出现的,起初它的设计方法要紧也是嵌入式系统设计中的软硬件协同设计方法。软硬件协同设计是指对系统中的软件部分和硬件部分使用统一的描述和集成开发工具进行开发,在设计完之后可对整个系统的进行设计的验证,而且还能跨越软硬件界面进行系统设计中的一些优化,便于设计最佳的系统。传统的嵌入式系统设计差不多上要先将嵌入式系统设打算分为相对独立的软件设计和硬件设计,即所谓的软硬件分开设计,如此的设计不仅在设计时软硬件设计的使用技术多而复杂,而且系统的设计差不较大,在时刻上也会不同步,会选硬件设计滞后或软件设计带后的情况。现在的一些综合技术能够将硬件和软件同等看待,在设计上和更高的抽象层次上它们之间没有什么区不,如VLSI,ASIC,PLD等硬件能够VHDL或SystemC实现。而且当今嵌入式系统设计的进展趋势是软硬件相互融合、渗透:硬件设计的软件化,如VHDL,Verilog等;软件实现的硬件化,如各种实现特定应用算法的ASIC。在给定功能的硬件和软件选择只是在多种设计指标上进行折衷,如性能,功耗,大小,价格,灵活性等,至于用硬件实现,依旧用软件实现没有太大差不。这些进展都对嵌入式系统设计产生一些阻碍,尽管能够在设计时增加灵活性,但同时也给设计增加了风险。现在,软硬件协同设计的开发工具差不多相当丰富,现总结如下:(1)硬件设计EDA工具:系统级设计工具cadence的SPW,SystemView;(2)模拟电路系统仿真工具:Pspice,EWB;(3)PCB设计工具:Protel,PADS的PowerPCB&Toolkit,Mentor的Expedition&ToolKit(4)可编程逻辑器件设计工具:MentorFPGAAdvantage&modelSim,XilinxFoundationISE&ToolKit,各种综合和仿真第三方工具。软硬件协同设计确实是在进入设计时期之初首先对软硬件进行划分,划分哪些功能由软件来实现和哪些功能用硬件实现之后,软件设计和硬件设计能够同时进行,其中验证要贯穿软硬件设计的整个过程;软硬件分开设计的开发路线,会导致代价昂贵的纠错成本和开发进度的下降。在软硬件协同设计中所用到的一些关键技术,如可编程逻辑综合和功能模型描述的进步,使软硬件协同设计变得越来越简单。当前,软硬件协同设计缺乏标准化的设计方法和验证评估方法,可通过扩展已有的硬件/软件语言开发工具和扩展形式化验证技术并应用到软硬件领域,如基于FPGA的嵌入式系统设计—SOPC设计来解决。软硬件协同设计确实是在进入设计时期之初首先对软硬件进行划分,划分哪些功能由软件来实现和哪些功能用硬件实现之后,软件设计和硬件设计能够同时进行,其中验证要贯穿软硬件设计的整个过程;软硬件分开设计的开发路线,会导致代价昂贵的纠错成本和开发进度的下降。在软硬件协同设计中所用到的一些关键技术,如可编程逻辑综合和功能模型描述的进步,使软硬件协同设计变得越来越简单。当前,软硬件协同设计缺乏标准化的设计方法和验证评估方法,可通过扩展已有的硬件/软件语言开发工具和扩展形式化验证技术并应用到软硬件领域,如基于FPGA的嵌入式系统设计—SOPC设计来解决。2.2.2ASIP行为级设计方法ASIP行为级设计方法的基础是行为级体系结构描述语言(ArchitectureDescriptionLanguage,ADL),用于描述候选处理器指令集体系结构[5,14]。行为级设计首先为备选体系结构生成指令集模拟器,之后在模拟器上模拟执行要在ASIP上运行的应用程序,通过剖析(profile)得到所执行的应用程序特征,以及处理器参数信息对指令集体系结构的进行优化,然后对优化后的指令集反复执行、分析和优化,一直到设计出满足应用约束条件的指令集。为了描述ASIP的行为级设计中需要的所有信息,行为级ADL在设计时,要能准确、完整和方便完成。对指令集进行行为级描述,行为级ADL需要定义有关指令集体系结构的指令的功能、格式、编码和一些必要的硬件信息(如cache)[10,11]。在基于ADL的ASIP设计流程中,体系结构描述语言处于核心地位。ASIP的开发特点对ADL提出了两个方面的要求:一是ADL必须能够描述各种体系结构特性,从而方便用户定制指令和进行体系结构空间搜索;二是ADL要对体系结构的描述应尽量简洁,缩短开发时刻。而这两种要求往往以是相互矛盾,因此要折中处理。目前关于ADL的研究专门多,如nML和ISDL是指令集描述语言(IsADL);LISA和Expression是通用ADL的代表,能同时描述了指令集和微体系结构级信息;TIE不能描述一个完整的处理器,只能给基础处理器添加新指令。但TIE能够快速地开发ASIP,且相关的开发工具差不多相当成熟。这些ADL中最成功确实是LISA和TIE,它们都被实现了商业化,其中TIE差不多取得了较大成功。2.2.3ASIP系统级设计方法目前,在嵌入式系统设计革新当中,系统级设计方法正是充满希望的一个,在面临数百万门级系统设计中,原有的寄存器传输级设计方法差不多捉襟见肘,提高抽象层次,提出系统级设计新方法已成为解决问题复杂性的必定手段。ASIP系统级的设计[15]是从高抽象级到低抽象级的逐层实现的过程,每层都会涉及到描述、验证和转换(综合),系统级比RTL(寄存器转送级)级更高的抽象层次,包含了硬件和软件等的实现,系统级层的要紧对象是ASIC、微处理器、存储器和可编程逻辑等,因此系统级设计方法是与系统级相关的各种描述、验证和综合技术的总称。系统级设计的要紧任务包括[12]:1、系统级描述:与软硬件协同设计中的软硬件统一描述相同,然而在与实现无关的抽象层次上描述整个系统的行为,分析和验证系统。2、系统级综合:不仅关注软硬件的划分问题,而且把系统体系结构和软硬件的划分问题放在了同等的位置上考虑,并发进行,相互阻碍,反复迭代和循环。目前一般采纳的系统级综合方法是把应用系统功能的系统实现和行为描述的不同体系结构描述分离,使得相同的系统功能在体系结构不同的情况下也能实现,通过综合生成与相3、系统级验证:系统级验证面临设计空间搜索优化的任务,因此对验证的效率要求比较高。目前验证的方法要紧形式化验证方法和模拟验证。在系统级设计方法学中,系统描述占据要紧位置,选择的系统描述语言决定着具体的综合和验证技术。因此,要选择一种合适的ADL来完成对ASIP的设计至关重要。2.3基于Web的ASIP系统级设计方法基于Web的ASIP集成开发环境是一个跨平台的集成开发环境,它立足于云计算的设计思路,方便开发者在扫瞄器端便能够轻松开发、调试和部署网络应用程序。本身作为一款APP程序,基于Web的ASIP集成开发环境级融入了分享机制,开发者能够有选择的上传项目代码,使用云技术来协同同事完成项目工作。基于Web的ASIP系统级要紧支持一些嵌入式系统开发语言包括UML、HDL、ADL等,数据库支持MySQLServer。基于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重用,用面向对象的方法分析、设计嵌入式系统会是今后进展的方向。UML是一种设计语言,不是设计方法,它能够独立于任何一种开发过程,但却能够支持其过程。同其他建模语言相比,UML用于嵌入式系统设计的要紧优势有,UML静态结构和动态行为等方面的描述进行了了统一;UML能够从逻辑视图或物理视图不同的视角来构建模型,用于理解和规划系统的不同设计时期;UML具有良好的扩展机制,使用扩展的UML语言能够为一些特定应用领域进行建模。在ASIP系统设计方法中,可用UML为ASIP系统的行为、时刻和结构等特征建模。使用UML中的用例图、对象图、类图及状态图关于系统级硬件建模已足够。虽随着通用处理器技术的进展,目前通用处理器差不多具有成熟的指令集结构,不同处理器的差不要紧在于微体系结构层和硬件实现。ASIP设计的要依照设计需求选择合适的指令集结构,具有专门大的灵活性。而XML具有良好的扩展性,采纳XML能专门好的描述ASIP的微体系结构,满足各方面的功能设计需求。对设计中的指令、微体系结构的部件和互连结构进行定义和描述。UML可用于嵌入式系统的设计,而且可用于嵌入式系统中的ASIP硬件设计,即ASIP中硬部件的建模。本文要紧阐述的是是用UML类图来描述ASIP硬部件的建模,这是与其它UML的建模使用的不一样的地点。其它ASIP的建模如状态图,部署图在以后的研究中再实现,它们能够从不同的视角来为ASIP进行建模。如部署图,用例图等,以不同的视角来描述ASIP的设计。UML模型序列化成XML:由于XML的语法特性,可采纳XML来描述ASIP的体系结构和ASIP的UML模型的存储。在ASIP的UML类图建立之后,可采纳XML来存储模型数据。在基于UML/XML的ASIP系统级设计方法中在使用XML上只是运用了XML的语法规则,所做的确实是自己定制XML的语法标记,用于存储ASIP的数据模型。事实上现要紧是围绕模型驱动框架(MDA),研究ASIP系统的平台无关模型(PIM)-UML模型和平台相关模型(PSM)-XML模型,从而有效分离系统功能和实现描述[13]。采纳UML可为ASIP系统级设计建立模型,建立的模型能够被UML工具转化成指定的程序语言代码如HDL(HardwareDescriptionLanguage)代码。UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。UML可作为ASIP系统设计的建模方法及设计方案的表述形式,以XML作为一种与平台无关的信息封装形式。两者共同构建ASIP数据模型DMA(DataModelingofASIP),以统一ASIP数据结构。2.4本章小结本章要紧是系统地简述的嵌入式系统设计方法学和ASIP的设计方法,在这些设计方法学的基础上,提出来了基于Web的ASIP系统设计方法。嵌入式系统的设计方法通过了本地开发工具的电路级、逻辑门级、寄存器级和系统级设计的进展过程。本文提出的基于Web的ASIP的设计方法也一种开发性的系统级的设计方法。系统级设计的过程是通过web的访问,从较高的抽象层次上由行为描述,逐渐转向结构描述,最后到物理实现的过程。在系统的设计过程,其要紧任务可分为系统级描述、系统级综合和系统分析、验证。3系统方案分析与设计3.1web访问功能实现的系统分析3.1.1需求分析基于web的ASIP集成开发环境功能需求如下:提供工程治理、源代码编辑器、编译器、调试器、软件组件等要紧功能。(1)工程治理功能提供工程治理任务,加快嵌入式应用程序的开发进度;(2)源代码编辑器是一个成熟的全功能源文件编辑器,具备文件治理、搜索等功能。(3)编译器是C/C++编译器,提供易用的按钮式流程,同意开发人员手工设置高级编译选项。(4)调试器要求调试信息查看,使用户能够访问开发对象的变量、寄存器、存储器、断点以及表达式赋值函数。(5)软件组件使开发者通过软件组件来快速定制系统,软件组件要紧包括硬件抽象层运行库,可对库文件进行编辑。2、该开发环境是基于web的用来编写代码和系统设计的框架,支持即时部署、在线编辑等功能。3、该开发环境是在带网络功能的基于ASIP的目标板的嵌入式操作系统上部署。3.1.2技术可行性分析该集成开发环境能够在Linux操作系统下Apache+PHP+phpMyadminb+MySQL5.0来实现,即部署了web服务的嵌入式操作系统。这套开发软件及环境差不多上免费且可从网上下载,不需要任何费用。要完成基于ASIP集成开发环境的web访问,必须能够配置嵌入式操作系统的PHP程序。同时,硬件层面还需要能够移植linux到基于ASIP软核的带以太网接口及的目标板。我们能够采纳开源Openrisc软核来验证设计,因此能够设计开发带以太网的FPGA小系统板来实现底层硬件支持,移植Linux操作系统并搭建Apache+PHP+phpMyadminb+MySQL5.0来部署ASIP集成开发环境那个基于web的IDE服务。该集成开发环境可通过第三方JS空间来设计功能界面、存储访问等功能,通过可执行规约实现PHP和EDA之间的接口。3.2以太网硬件方案我们参考以往的openrisc硬件平台设计了FPGA目标板,以满足验证ASIP设计的OPpenrisc处理器SoC设计的要求。主板支持最常见接口,支持简单地连接和调试。该主板能够支持openrisc的快速启动。依照预先定义的OpenriscSOC设计,确保OpenRISC处理器系统的随时运行。同时,创建VirtualBox镜像,即ubantulinux系统,可在该系统支持下搭建web环境。目标板采纳Altera公司的CycloneIVE,22KLUTFPGA,32MBSDRAM、1MBSPIFLASH、以太网操纵芯片、USBHost/Slave、采纳USB供电。两个JTAG接口(用于对FPGA进行编程,外部SPI闪存和OpenRISC调试通过GDB工具)、两个UART接口。Linux下的软件工具差不多安装并制成VirtualBox镜像。在开发板上移植Ubantulinux系统并添加web访问服务,ASIP集成设计环境、使win或Android设备能通过IE访问orsoc开发板,对ASIP进行系统设计。3.3以太网MAC操纵器为验证本文ASIP设计而采纳Openrisc软核移植linux系统进行功能试验,而基于openrisc软核的以太网不能离开底层以太网操纵器及其驱动的支持。开源Opencore组织提供了EthernetMAC10/100Mbps的以太网IP核,该IP核提供了MAC模块和MII模块。MAC(mediaaccesscontrol)模块,由接收、传送、操纵模块构成。它实现了一个数据链路层。最新的MAC同时支持10Mbps和100Mbps两种速率。通常情况下,它实现MII接口。MII(MediaIndependentInterface)治理模块,即媒体独立接口,包括一个数据接口,以及一个MAC和PHY之间的治理接口。数据接口包括分不用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和操纵信号。MII数据接口总共需要16个信号。治理接口是个双信号接口:一个是时钟信号,另一个是数据信号。通过治理接口,上层能监视和操纵PHY。那个IP核能够操作10/100Mbps以太网和快速以太网应用程序。那个方案还需要外部PHY物理接口收发器,实现物理层操纵,及需要集成PHY功能的以太网操纵器芯片协助。常见的网卡芯片差不多上把MAC和PHY集成在一个芯片中,但目前专门多主板的芯片已包含了以太网MAC操纵功能,只是未提供物理层接口,因此,需外接PHY芯片以提供以太网的接入通道。这类PHY网络芯片确实是俗称的“软网卡芯片”,常见的PHY功能的芯片有RTL8201BL、VT6103等等,在那个地点我们使用KSZ8021RNL芯片,配合Opencore提供的以太网IP核及板级驱动,实现移植到Openrisc软核的嵌入式操作系统的以太网功能,部署web服务,实现IE访问。3.4本章小节本章内容对介绍了基于Web的ASIP集成开发环境的差不多功能,对实现这些功能的软硬件需求进行了分析。给出了差不多的软件和硬件解决方法。4开发环境4.1ThinkPHP框架ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议公布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP秉承简洁有用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。同时拥有众多的原创功能和特性,在易用性、扩展性和性能方面不断优化和改进,能够稳定用于商业以及门户级的开发。新版本在框架底层的定制和扩展方面趋于完善,使得应用的开发范围和需求适应度更加扩大,能够满足不同程度的开发人员的需求。而且引入了全新的CBD(核心+行为+驱动)架构模式,让ThinkPHP能够在不同方面都能快速满足项目和应用的需求。
使用ThinkPHP,能够更方便和快捷的开发和部署应用。任何PHP应用开发都能够从ThinkPHP的简单和快速的特性中受益。ThinkPHP本身具有专门多的原创特性,用最少的代码完成更多的功能,宗旨确实是让WEB应用开发更简单、更快速。ThinkPHP遵循Apache2开源许可协议公布,能够免费使用ThinkPHP,同意把基于ThinkPHP开发的应用开源或商业产品公布/销售。关于ThinkPHP的基础概念:一、LAMP是基于Linux,Apache,MySQL和PHP的开放资源网络开发平台。那个术语来自欧洲,在那儿这些程序常用来作为一种标准开发环境。名字来源于每个程序的第一个字母。每个程序在所有权里都符合开放源代码标准:Linux是开放系统;Apache是最通用的网络服务器;MySQL是带有基于网络治理附加工具的关系数据库;PHP是流行的对象脚本语言,它包含了多数其它语言的优秀特征来使得它的网络开发更加有效。开发者在Windows操作系统下使用这些Linux环境里的工具称为使用WAMP。尽管这些开放源代码程序本身并不是专门设计成同另外几个程序一起工作的,但由于它们差不多上阻碍较大的开源软件,拥有专门多共同特点,这就导致了这些组件经常在一起使用。在过去的几年里,这些组件的兼容性不断完善,在一起的应用情形变得更加普遍。同时它们为了改善不同组件之间的协作,差不多创建了某些扩展功能。目前,几乎在所有的Linux公布版中都默认包含了这些产品。Linux操作系统、Apache服务器、MySQL数据库和Perl、PHP或者Python语言,这些产品共同组成了一个强大的Web应用程序平台。
随着开源潮流的蓬勃进展,开放源代码的LAMP差不多与J2EE和.Net商业软件形成三足鼎立之势,同时该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来讲,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.二、面向对象编程(ObjectOrientedProgramming,OOP,面向对象程序设计)是一种计算机编程架构。OOP的一条差不多原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP达到了软件工程的三个要紧目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。OOP要紧有以下的概念和组件:
组件-数据和功能一起在运行着的计算机程序中形成的单元,组件在OOP计算机程序中是模块和结构化的基础。
抽象性-程序有能力忽略正在处理中信息的某些方面,即对信息要紧方面关注的能力。
封装-也叫做信息封装:确保组件可不能以不可预期的方式改变其它组件的内部状态;只有在那些提供了内部状态改变方法的组件中,才能够访问其内部状态。每类组件都提供了一个与其它组件联系的接口,并规定了其它组件进行调用的方法。
多态性-组件的引用和类集会涉及到其它许多不同类型的组件,而且引用组件所产生的结果得依据实际调用的类型。
继承性-同意在现存的组件基础上创建子类组件,这统一并增强了多态性和封装性。典型地来讲确实是用类来对组件进行分组,而且还能够定义新类为现存的类的扩展,如此就能够将类组织成树形或网状结构,这体现了动作的通用性。
由于抽象性、封装性、重用性以及便于使用等方面的缘故,以组件为基础的编程在脚本语言中差不多变得特不流行。三、MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(M)、视图(V)、操纵器(C),它们各自处理自己的任务。
视图:视图是用户看到并与之交互的界面。对老式的Web应用程序来讲,视图确实是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括AdobeFlash和象XHTML,XML/XSL,WML等一些标识语言和Webservices。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理专门多不同的视图。在视图中事实上没有真正的处理发生,不管这些数据是联机存储的依旧一个雇员列表,作为视图来讲,它只是作为一种输出数据并同意用户操纵的方式。
模型:模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusionComponents如此的构件对象来处理数据库。被模型返回的数据是中立的,确实是讲模型与数据格式无关,如此一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就能够被多个视图重用,因此减少了代码的重复性。
操纵器:操纵器同意用户的输入并调用模型和视图去完成用户的需求。因此当单击Web页面中的超链接和发送HTML表单时,操纵器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。
现在我们总结MVC的处理过程,首先操纵器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后操纵器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。三、对象-关系映射(Object/RelationMapping,简称ORM),是随着面向对象的软件开发方法进展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,要紧实现程序对象到关系数据库数据的映射。
面向对象是从软件工程差不多原则(如耦合、聚合、封装)的基础上进展起来的,而关系数据库则是从数学理论进展而来的,两套理论存在显著的区不。为了解决那个不匹配的现象,对象关系映射技术应运而生。四、AOP(Aspect-OrientedProgramming,面向方面编程),能够讲是OOP(Object-OrientedPrograming,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也确实是讲,OOP同意你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。关于其他类型的代码,如安全性、异常处理和透明的持续性也是如此。这种散布在各处的无关的代码被称为横切(cross-cutting)代码,在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。而AOP技术则恰恰相反,它利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些阻碍了多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即方面。所谓“方面”,简单地讲,确实是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于以后的可操作性和可维护性。AOP代表的是一个横向的关系,假如讲“对象”是一个空心的圆柱体,其中封装的是对象的属性和行为;那么面向方面编程的方法,就仿佛一把利刃,将这些空心圆柱体剖开,以获得其内部的消息。而剖开的切面,也确实是所谓的“方面”了。然后它又以巧夺天功的妙手将这些剖开的切面复原,不留痕迹。
使用“横切”技术,AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的要紧流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处都差不多相似。比如权限认证、日志、事务处理。Aop的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。正如Avanade公司的高级方案构架师AdamMagee所讲,AOP的核心思想确实是“将应用程序中的商业逻辑同对其提供支持的通用服务进行分离。”五、CURD是一个数据库技术中的缩写词,一般的项目开发的各种参数的差不多功能差不多上CURD。它代表创建(Create)、更新(Update)、读取(Read)和删除(Delete)操作。CURD定义了用于处理数据的差不多原子操作。之因此将CURD提升到一个技术难题的高度是因为完成一个涉及在多个数据库系统中进行CURD操作的汇总相关的活动,其性能可能会随数据关系的变化而有特不大的差异。
CURD在具体的应用中并非一定使用create、update、read和delete字样的方法,然而他们完成的功能是一致的。例如,ThinkPHP确实是使用add、save、select和delete方法表示模型的CURD操作。六、ActiveRecord(中文名:活动记录)是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。ActiveRecord和RowGateway(行记录入口)十分相似,但前者是领域模型,后者是一种数据源模式。关系型数据库往往通过外键来表述实体关系,ActiveRecord在数据源层面上也将这种关系映射为对象的关联和聚拢。ActiveRecord适合特不简单的领域需求,尤其在领域模型和数据库模型十分相似的情况下。假如遇到更加复杂的领域模型结构(例如用到继承、策略的领域模型),往往需要使用分离数据源的领域模型,结合DataMapper(数据映射器)使用。
ActiveRecord驱动框架一般兼有ORM框架的功能,但ActiveRecord不是简单的ORM,正如和RowGateway的区不。由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够专门大程度的快速实现模型的操作,而且简洁易明白。七、单一入口通常是指一个项目或者应用具有一个统一(但并不一定是唯一)的入口文件,也确实是讲项目的所有功能操作差不多上通过那个入口文件进行的,同时往往入口文件是第一步被执行的。
单一入口的好处是项目整体比较规范,因为同一个入口,往往其不同操作之间具有相同的规则。另外一个方面确实是单一入口带来的好处是操纵较为灵活,因为拦截方便了,类似如一些权限操纵、用户登录方面的推断和操作能够统一处理了。ThinkPHP的框架的目录结构为:框架的目录结构为:├─ThinkPHP.php框架入口文件├─Common框架公共文件├─Conf框架配置文件├─Extend框架扩展目录├─Lang核心语言包目录├─Lib核心类库目录│├─Behavior核心行为类库│├─Core核心基类库│├─Driver内置驱动││├─Cache内置缓存驱动││├─Db内置数据库驱动││├─TagLib内置标签驱动││└─Template内置模板引擎驱动│└─Template内置模板引擎└─Tpl系统模板目录在开始之前,需要一个Web服务器和PHP运行环境,我们使用集成开发环境WAMPServer(是一个集成了Apache、PHP和MySQL的开发套件,而且支持多个PHP版本、MySQL版本和Apache版本的切换)来使用ThinkPHP进行本地开发和测试。接下来我们先在WEB根目录下面创建一个app子目录(那个app确实是我们的项目名),然后在该目录下面创建一个index.php文件,添加一行简单的代码:<?phprequire'/ThinkPHP框架所在目录/ThinkPHP.php';这行代码的作用确实是加载ThinkPHP框架的入口文件ThinkPHP.php,这是所有基于ThinkPHP开发应用的第一步。一般Web服务器的默认文件是index.php,因此我们能够不需要在URL地址中加上index.php。运行后我们会看到欢迎页面。http://localhost/app/4.2第三方控件MiniUIMiniUI是一种快速开发Web界面开发框架。它能缩短开发时刻,减少代码量,使开发者更专注于业务和服务端,轻松实现界面开发,带来绝佳的用户体验。使用MiniUI,开发者能够快速创建Ajax无刷新、B/S快速录入数据、CRUD、Master-Detail、菜单工具栏、弹出面板、布局导航、数据验证、分页表格、树、树形表格等典型WEB应用系统界面。常见的表单、布局、导航、列表等都能够通过MiniUI快速实现。MiniUI工程文件结构:
各目录如下:dbsql:示例数据库sql文件。demo:页面示例。docs:api文档、开发指南。scripts/miniui:MiniUI产品的javascript和css。scripts/miniui/locale:语言资源文件。scripts/miniui/themes:多套皮肤样式。index.html:开发包导航页面。miniui_commercial_license.doc:授权讲明文档。miniui_tryform.doc:试用申请表文档。安装部署.txt:安装部署讲明文档。开发者只需要引用jquery.js、miniui.js、miniui.css即可。标准页面模板:<!DOCTYPEhtml/><html><head><title>HelloMiniUI!</title><!--jQueryjs--><scriptsrc="../jquery.js"type="text/javascript"></script><!--MiniUI--><linkhref="../themes/default/miniui.css"rel="stylesheet"type="text/css"/><scriptsrc="../miniui.js"type="text/javascript"></script></head><body></body></html>4.3本章小结 本章要紧针对开发ASIP集成开发环境所使用的开发软件及相关技术进行了介绍。在ASIP集成开发环境的实现中,用MiniUI实现开发环境地面设计和ASIP模型的对象图形和数据的存储和访问,通过ThinkPHP框架整合系统功能,最后把存储的模型数据通过PHP正则表达式映射成HDL代码。在ASIP集成开发环境的实现过程中我们采纳
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CRRA 1303-2022数据中心资源综合利用 工作指南
- 酒店销售部门客房预定量与销售额转化率绩效衡量表
- 仓储作业效能与误差控制评估表
- 第24课 《梅兰芳蓄须》教学设计 试讲稿 说课稿 统编版语文四年级上册新教材
- 市场开拓能力绩效考核指标表
- 宕昌县2025-2026学年中考数学押题试卷含解析
- 关于重大合同履行进度催办函(8篇范文)
- 餐饮行业厨师岗位技能KPI考核表
- T/QLMZ 19-2024化妆品用原料 海藻酸钠
- 中式烹饪技艺高级技法手册
- 自考13635工程力学(机械)高频考点重点
- 2026新教科版四年级科学上册2.3《 呼吸的变化》课件
- 精算师考试风险管理试题汇编(带解析)
- 2026年采油工(高级技师)模拟试题(含答案)
- 广东省深圳市2026中考语文作文真题解读及范文
- 地下通道工程监理实施细则
- 12短文二篇 《答谢中书书》《与朱元思书》群文阅读公开课一等奖创新教学设计 统编版语文八年级上册
- 危险化学品无储存经营单位演练记录
- 工业人工智能导论 课件 第7-13章 群智能优化算法与生产调度- 智能机器人与应用
- 新能源车电控系统维修手册
- 2025年泉州发展集团有限公司(第二批)人才引进招聘29人笔试备考试题附答案
评论
0/150
提交评论