外文翻译---硬件软件的设计和开发过程知识讲解

合集下载

linux外文翻译

linux外文翻译
为用户提供 定制的Linux系统。
②Lotus宣布,Notes的下一版将包括一个专用于Linux的版本。
③Corel公司将其著名的WordPerfect移植到Linux之上,并免费发行。Corel还计
划将其它的 图形图像处理产品完整地移到Linux平台上。
④主要的数据库厂家:Sybase、Informix、Oracle、CA、IBM都已经将自己的数据库
山西大学本科毕业论文(设计)外文翻译资料 外文出处:WOLF W H. Hardware software co-design of embedded systems .Proceedings of the
IEEE, 1994,827, 82(7) :967-989 .
译文标题:Linux—网络时代的操作系统
出色 的稳定性,其运行时间往往可以“年”计。
2. Linux的主要应用领域
目前,Linux的应用主要包括:
(1) Internet/Intranet:这是目前Linux用得最多的一项,它可提供包括Web服务山西大学本科毕业论文(设计)外文翻译资料 器、Ftp服 务器、Gopher服务器、SMTP/POP3邮件服务器、Proxy/Cache服务器、DNS服
产品移 植到Linux上,或完成了Beta版本,其中Oracle和Informix还对他们的产品提
供技术支持。
4. Linux对中国软件业的启示
可喜的是,已经有一些有远见的国内公司开始力图改变这种现状。不久前四通公司宣山西大学本科毕业论文(设计)外文翻译资料 布将投 入巨资,以Linux为平台开发一套Internet/Intranet解决方案,并以此为核心
talent fully. But for Linux, this only numerous news one of. Recently, the manufacturers

计算机外文资料翻译---Visual Basic简介

计算机外文资料翻译---Visual Basic简介

毕业设计(论文)外文资料翻译系(院):计算机科学系专业:计算机科学与技术姓名:学号: 111001203外文出处:Learn Visual Basic in 24 hours--Hour 1 Visual Basic at Work 附件:1.外文资料翻译译文;2.外文原文。

附件1:外文资料翻译译文Visual Basic简介什么是Visual BasicMicrosoft Visual Basic 5.0是旧的BASIC语言最近的最好的化身,在一个包里给你一个完全的Windows应用开发系统。

Visual Basic (我们常称它VB)能让你写、编辑,并且测试Windows应用程序。

另外,VB有包括你能用来写并且编译帮助文件那的工具,ActiveX控制,并且甚至因特网应用程序Visual Basic是它本身的一个Windows应用程序。

你装载并且执行VB系统就好象你做其它Windows程序。

你将使用这个运行的VB程序创造另外的程序。

虽然VB是一个非常地有用的工具,但VB只是一个程序员(写程序的人)用来写,测试,并且运行Windows应用程序的工具。

尽管程序员们经常可替交地使用术语程序和应用程序,当你正在描述一个Windows 程序时术语应用程序似乎最适合,因为一个Windows程序由若干份代表性的文件组成。

这些文件以工程形式一起工作。

通过双击一个图标或由以Windows开始应用程序运行启动菜单用户从Windows加载并且运行工程产生最终的程序。

过去的45年与计算机硬件一起的编程工具的角色已经演变。

今天一种程序语言,例如Visual Basic,一些年以前与程序语言的非常不一致。

Windows操作系统的视觉的天性要求比一些年以前是可利用的更先进的工具。

在windowed环境以前,一种程序语言是你用来写程序的一个简单的基于文章工具。

今天你需要的不只是一种语言,你需要一种能在windows系统内部工作并且能利用所有的绘画、多媒体、联机和Windows提供的多处理活动开发应用软件的绘图开发工具。

软件工程毕业论文文献翻译中英文对照

软件工程毕业论文文献翻译中英文对照

软件工程毕业论文文献翻译中英文对照学生毕业设计(论文)外文译文学生姓名: 学号专业名称:软件工程译文标题(中英文):Qt Creator白皮书(Qt Creator Whitepaper)译文出处:Qt network 指导教师审阅签名: 外文译文正文:Qt Creator白皮书Qt Creator是一个完整的集成开发环境(IDE),用于创建Qt应用程序框架的应用。

Qt是专为应用程序和用户界面,一次开发和部署跨多个桌面和移动操作系统。

本文提供了一个推出的Qt Creator和提供Qt开发人员在应用开发生命周期的特点。

Qt Creator的简介Qt Creator的主要优点之一是它允许一个开发团队共享一个项目不同的开发平台(微软Windows?的Mac OS X?和Linux?)共同为开发和调试工具。

Qt Creator的主要目标是满足Qt开发人员正在寻找简单,易用性,生产力,可扩展性和开放的发展需要,而旨在降低进入新来乍到Qt的屏障。

Qt Creator 的主要功能,让开发商完成以下任务: , 快速,轻松地开始使用Qt应用开发项目向导,快速访问最近的项目和会议。

, 设计Qt物件为基础的应用与集成的编辑器的用户界面,Qt Designer中。

, 开发与应用的先进的C + +代码编辑器,提供新的强大的功能完成的代码片段,重构代码,查看文件的轮廓(即,象征着一个文件层次)。

, 建立,运行和部署Qt项目,目标多个桌面和移动平台,如微软Windows,Mac OS X中,Linux的,诺基亚的MeeGo,和Maemo。

, GNU和CDB使用Qt类结构的认识,增加了图形用户界面的调试器的调试。

, 使用代码分析工具,以检查你的应用程序中的内存管理问题。

, 应用程序部署到移动设备的MeeGo,为Symbian和Maemo设备创建应用程序安装包,可以在Ovi商店和其他渠道发布的。

, 轻松地访问信息集成的上下文敏感的Qt帮助系统。

关于软件开发的知识(中英文)

关于软件开发的知识(中英文)

1. What is software development?Software development is the process of developing software through successive phases in an orderly way. This process includes not only the actual writing of code but also the preparation of requirements and objectives, the design of what is to be coded, and confirmation that what is developed has met objectives.Before systems development methods came into being, the development of new systems or products was often carried out by using the experienceand intuition of management and technical personnel. However, the complexityof modern systems and computer products long ago made the need clear forsome kind of orderly development process.Typical phases of software development:1) Identification of required software2) Analysis of the software requirements3) Detailed specification of the software requirements4) Software design5) Programming6) Testing7) MaintenanceIn general, the development of commercial software is usually a result of demand in the marketplace, while enterprise software developmentgenerally arises from a need or a problem within the enterprise environment.2. How is software development guided?The software development process is almost invariably guided bysome systematic software development method (SDM). Referred to by a numberof terms, including process models, development guidelines,and systems development life cycle models (SDLC), software development methods nevertheless generally include the same development phases:∙The existing system is evaluated and its deficiencies identified, usually through interviewing system users and support personnel.∙The new system requirements are defined. In particular, the deficiencies in the existing system must be addressed with specific proposals for improvement.∙The proposed system is designed. Plans are laid out concerning the physical construction, hardware, operating systems, programming, communications, and security issues.∙The new system is developed. The new components and programs must be obtained and installed. Users of the system must be trained in its use, and all aspects of performance must be tested. If necessary, adjustments must be made at this stage.∙The system is put into use. This can be done in various ways. The new system can phased in, according to application or location,andthe old system gradually replaced. In some cases, it may be more cost-effective to shut down the old system and implement the new system all at once.∙Once the new system is up and running, then it should be exhaustively evaluated. Maintenance must be kept up rigorously at allers of the system should be kept up-to-date concerning the latest modificationsand procedures.The systems development life cycle model was developed as a structured approach to information system development that guides all the processesinvolved from an initial feasibility study through to maintenance of thefinished application. SDLC models take a variety of approaches to development.Systems development life cycle models include:· The waterfall model:This is the classic SDLC model, with a linear and sequential method that has goals for each developmentphase. The waterfall model simplifies task scheduling, because there areno iterative or overlapping steps. One drawback of the waterfall is thatit does not allow for much revision.· Rapid application development (RAD):This models based on the concept that better products can be developed more quicklyby: using workshops or focus groups to gather system requirements; prototyping and reiterative testing of designs; rigid adherence to schedule; and less formality of team communications such as reviews.· Joint application development (JAD): This modelinvolves the client or end user in the design and development of an applicationthrough a series of collaborative workshops called JAD sessions.· The prototyping model: In this model, a prototype (an early approximation of a final system or product) is built, testedand then reworked as necessary until an acceptable prototype is finallyachieved from which the complete system or product can now be developed.· Synchronize-and-stabilize: This model involves teams working in parallel on individual application modules, frequently synchronizingtheir code with that of other teams and stabilizing code frequently throughout the development process.· The spiral model: This model of development combines the features of the prototyping model and the waterfall model. The spiral model is favored for large, expensive, and complicated projects.3. How has the open source development process influenced software development in general?Open source software is developed collaboratively; source code is freely available for use and modification. The open source movement arose because some developers came to believe that competition amongst vendors leads to inferior products and that the best approach to development isa collaborative one.The OSI (Open Source Initiative) is an industry body that certifies products as open source if they conform to a number of rules:· The software being distributed must be redistributed to anyone else without any restriction· The source code must be made available (so that the receiving party will be able to improve or modify it)· The license can require improved versions of the software to carry a different name or version from the original softwareDespite its emphasis on the collaborative process, the biggest influence that open source has had on software development in general may be through competition: by competing with proprietary software products, open source products force vendors to work that much harder to hold their market share in the face of viable open source alternatives.4. What are some generally accepted best practices common to all or most development models?Here's a collection of some of the top tips from a variety of industry sources:· Make sure that you've chosen a systems development life cycle model that suits your project, because every one of the processesinvolved depends on the model. That said, however, implementing any modelis betterthan none -- much of the success of a project depends upon howscrupulously the model is adhered to.· Reuse software components when it's appropriate, but don't use code that doesn't work perfectly for its intended purpose just because you have it on hand.· Be very thorough in gathering requirements, ensuring that all parties agree on what they are -- and make sure you document them.· Don't promise the moon, if you can't deliver it. Avoidletting someone who isn't fully informed negotiate with the client.· Make sure that the architecture you've chosen is appropriate for the application you're building. To retain perspective, you might want to look at the smaller picture and plan the architecture incrementally.· Change is part of life, including software development. You have to accept that various things -- requirements, for example -- are likely to change throughout the life of the project. Keep control of them, but not too rigidly.· Set up peer review process es for every element of the project.· Design thoroughly and with care, but remember the KISSprinciple: Keep it simple.· In your project plan, split big projects into manageable chunks, with concrete milestones and deadlines.· Ensure accountability: make sure that deadlines are clear and that people have to report on whether they made them, and explain why not if they don't.· Implement quality control procedures throughout the project.· Test exhaustively -- there's no point in doing a cursory run through only to have an application fail when you run it for the client.· After the project is completed, conduct a thorough post-mortem, with everyone involved. You'll see what worked well and what should havebeen differently, and your future projects will benefit.5. What are some common mistakes in software development?According to a Standish Group report, corporations in the United States spend over $275 billion every year on software development projects, many of which are doomed to failure. Research by the group found that over 80% of projects fail for various reasons, and that fully 30% of projectswere cancelled prior to completion because of poor execution.David B. Stewart, at the University of Maryland, set out to document the 10 most common mistakes of software development. He found, however,that the sheer number of errors that were commonly practiced made it impossible to keep the number to ten. He ended up calling his article "Twenty-FiveMost Common Mistakes with Real-Time Software Development." Even so, afterthe title had been established, he found another five errors so common that the felt compelled to add them.According to Dr. Michael, the most common project problems are due to failure to manage project elements successfully:· Requirement s are not clearly and accurately defined, and agreed upon by all concerned.· Resources are not adequately planned and allocated.· Threats to project success are not clearly detected, identified, and protected against.· Critical path analysis is omitted, or poorly executed.· The project's progress is not tracked adequately.· Quality management is not carried out well enough throughout the life of the project.· Too little data is collected, or data is ignored or poorly understood.Correcting flaws identified during software security audits is expensive and time consuming. Worse, vast resources are spent on containing and recovering from exploits. Fortunately, providing development staff with the knowledge and tools to avoid many of these pitfalls is easy and inexpensive.6. Given a particular process model, is there a set of tools(a development environment) to support it?In general, a process model usually begins as a philosophy of "who does what development when" rather than a rigid methodology complete with tools. For example, rapid application development (RAD) is an approach that can make use of existing development tools. In general, tools for supporting all or part of a process model tend to arrive later, if at all.Historically, development tools have focused on the code-building, code archive management, documentation, testing, and packaging parts ofthe process, sometimes offered as a suite. Such a suite is generally known as an integrated development environment (IDE).A set of tools for managing or supporting a development project is generally known as a computer-assisted software environment (CASE). A number of companies offer products that support early stages of development such as requirements gathering, design prototyping, and data modeling. A number of these provide tools that support data modeling with the Unified Modeling Language. Overall, there is a trend toward providing all or most of the tools for a development project in a single product or related set of products.Today, the main code-building development environments or program suites come from Microsoft with its Visual Studio and Visual Studio .NET, providing support for Visual Basic, Visual C#, Visual C++, and Visual J#; Sun Microsystems with its Java 2 Enterprise Environment; and numerous software vendors such as Borland who repackage these environments with some value-added features. Recently, almost all providers of software development environments have added features that enable the software to be used on the Web.7. How do you choose the "right" programming language for your project?For most projects, the right language is easy to choose. Your company may have standardized on a particular development environment and language (and you may have been hired because you were already familiar with the language). Or you may be updating or enhancing an existing program; it's almost always best to use the same language the existing program is written in. In some cases, however, someone will need to select the best (or, since the best may be somewhat arguable, at least an appropriate language). In somecases, you or your team of developers may need to know several languages fordifferent purposes.General truisms about programming languages are that:∙Perl or a similar script language is most suitable for small tasks and sometimes acting as a program that goes between other,largerprograms.∙Visual Basic is most suitable for relatively novice programmers and relatively simple programs.∙Java, C++, or comparable languages like Python and Tcl aremost suitable for larger applications using object orientation as adesignmodel.∙ C is most suitable for programs where efficiency and performance are the primary concern.∙The appropriate assembler language is most suitable where the program is relatively short and high performance is critical.Where constraints permit, some programmers may favor one object-oriented language over another (for example, Java, C++, Python, or Tcl). A programmer with skills in C is likely to prefer C++, which combines the proceduraland other concepts and syntax of C with object-oriented concepts.8. What are some trends regarding the future of software development?Blogs - A growing number of big-name softwaredevelopers are finding they can make better software applications if theyshare information with potential customers from the start and incorporate customer feedback into development decisions. While developers of gamessoftware have used this method for years, business software makers are nowalso catching on and using blogs as an important part of the development process.Big-name support for independent software vendors (ISVs) - Big players like Microsoft, IBM, and Sun have recognized that they cannot fill every niche industry's software demands, so they have begun to activelyseek partnerships with small ISVs, in hopes that by encouraging ISVs to focuson vertical industry applications, everyone will benefit.Component-based development- In this approach, softwareis developed in modules that are linked dynamically to construct a completeapplication. Charles Simonyi (creator of the WYSIWYG editor) believes thateventually, software development will become so modular that even lay-peoplewill be able to assemble components effectively to create customizedsoftware applications.Continued improvements in refactoring tools - Eric Raymond,a leading philosopher about program development, maintains that the conceptof refactoring is consistent with the idea ofget-something-working-now-and-perfect-it-laterapproach long familiarto Unix and open source programmers. The idea is alsoembodied in the approach known as Extreme Programming. As software applicationsbecome larger, better refactoring tools will be required to maintain codebases and diagnose bugs.Outsourcing - Using this approach, software companies hire employees around the world to take advantage of time zone and labor/cost differences.Proponents say that in effect, software development teams now have a 24-hourwork day, and are able to provide fast turn-around. Detractors say that outsourcingparts of a project leads to sloppy coding and only works if there is a highdegree of coordination regarding modularized tasks, and above-average communicationwithin the team.1。

外文资料翻译

外文资料翻译

附件1:外文资料翻译译文利用单片机指令集的硬件/软件协同设计超椭圆曲线密码系统Alireza Hodjat, Lejla Batina,美国加你福尼亚州加州大学洛杉矶分校电机工程系。

David Hwang,Ingrid Verbauwhede,比利时布鲁塞天主教大学。

摘要硬件/软件协同设计的计算密集的密码系统是达到所要求的速度资源有限的嵌入式应用首选的解决方案。

本文介绍了一种微码指令集协处理器,其目的是与8位微控制器实现超椭圆曲线密码系统。

协处理器的微码是数据通路范围内能够执行双乘法器/加法器的和存储在外部RAM单元的中间结果协处理器。

这个协处理器进行编程时使用8位微控制器的软件程序实现了HECC除数的倍频和加法运算。

雅可比计算标量是8051单片机在656ms(7.87兆周期)的执行情况,时钟频率为12MHz 这是比纯软件的实现的228倍速度。

这个数字是78ms的Atmel的AVR在12MHz的时钟频率,是纯软件实时运行微型处理器(100万次)的106倍。

硬件/软件协同设计的实现都对现有的32位ARM7在80兆赫实现HECC。

--2006年由Elsevier B.V 撰写出版1.简介安全通信或数字数据一般是通过各种加密算法的。

特殊的是,从软件到硬件实现公共密钥加密(PKC)的大多数的应用是一个挑战平台。

软件平台更为灵活,但是硬件加速通常需要计算密集型操作作为应用程序所需的PKC。

如今的新兴领域,如无线电频率识别(RFID)标签和传感器网络上的实现提出了新的要求PKC的坚决约束算法在数量上闸门、功耗、宽带等最有名和最常用的公钥密码体制RSA[1].而这不是一个低功耗和可行的解决低脚打印设备的方案。

一个有希望的候选似乎是超椭圆曲线密码体制(H/ECC),但是前面提到的要求,大概只有在实现硬件和软件的协同作用下。

ECC已经证明了它的潜力,因为在一些平台上,它运行速度快,功耗低,性能更好。

此外,ECC每字节比RSA钥加密算法提供更多的协议,因为没有的普遍的分指数,解决了算法的离散对数在这一组的问题。

软件系统开发中英文对照外文翻译文献

软件系统开发中英文对照外文翻译文献

软件系统开发中英文对照外文翻译文献(文档含英文原文和中文翻译)软件工程中的过程处理模型斯卡基沃尔特摘要软件系统从起初的开发,维护,再到一个版本升级到另一个版本,经历了一系列阶段。

这篇文章归纳和整理了一些描述如何开发软件系统的方法。

从传统的软件生命周期的背景和定义出发,即大多数教科书所讨论的,并且目前的软件开发实践所遵循的软件生命周期,接着讨论作为目前软件工程技术基石的更全面的软件开发模型。

关键词:软件生命周期;模型;原型1 前言软件业的发展最早可追溯到开发大型软件项目的显式模型,那是在二十世纪五十年代和六十年代间。

总体而言,这些早期的软件生命周期模型的唯一目的就是提供一个合理的概念计划来管理软件系统的开发。

因此,这种计划可以作为一个基础规划,组织,人员配备,协调,预算编制,并指导软件开发活动。

自20世纪60年代,出现了许多经典的软件生命周期的描述(例如,霍西尔1961年,劳斯莱斯1970年,1976年博伊姆,迪斯塔索1980年,1984年斯卡基,萨默维尔1999年)。

罗伊斯(1970)使用现在生活中熟悉的“瀑布”图表,提出了周期的概念,这个图表概括了开发大型软件系统是多么的困难,因为它涉及复杂的工程任务,而这些任务在完成之前可能需要不断地返工。

这些图表也通常在介绍性发言中被采用,主要针对开发大型软件系统的人们(例如,定制软件的客户),他们可能不熟悉各种各样的技术问题但还是要必须解决这些问题。

这些经典的软件生命周期模型通常包括以下活动一些内容:系统启动/规划:系统从何而来?在大多数情况下,不论是现有的信息处理机制以前是自动的,手工的,还是非正式的,新系统都会取代或补充它们。

● 需求分析和说明书:阐述一个新的软件系统将要开发的问题:其业务能力,其所达到的性能特点,支持系统运行和维护所需的条件。

● 功能或原型说明:潜在确定计算的对象,它们的属性和关系,改变这些对象的操作,约束系统行为的限制等。

●划分与选择:给出需求和功能说明书,将系统分为可管理的模块,它们是逻辑子系统的标志,然后确定是否有对应于这些模块的新的,现有的,或可重复使用的软件系统可以复用。

机械毕业设计英文外文翻译23Visual Basic编程语言概述

机械毕业设计英文外文翻译23Visual Basic编程语言概述

附录附录A 外文文献原文Visual Basic programming language an overview 1991, the United States launched the Microsoft Visual Basic (may be referred to VB), is the latest version of the current VB 2008 Beta2 (VB9) Chinese version.Visual meaning the visual, visible, referring to the development of operating systems like windows graphical user interface (Graphic User Interface, GUI) method, it does not need to prepare a large number code to describe the appearance of the interface elements and location, as long as the pre - The establishment of good drag and drop objects on the screen corresponding to the location.Basic is actually an abbreviation of the phrase, this phrase is Beginners all_purpose symbolic instruction code, the Chinese meaning "to the initial directive GM symbol code language."Visual Basic learning, Professional Edition and Enterprise Edition versions to meet the different needs of the development. Study and apply to the ordinary version of the majority of learners and the use of Visual Basic development of the general staff of Windows applications, but; professionalversion for computer professional development of staff, including the study of functional version of the full content control and Internet development tools such as advanced features ; Enterprise contain not only all the professional version of the content, there are automated tools such as Component Manager, professional programmers to make the development of a powerful group essence of distributed applications.VB is a visual, object-oriented event-driven approach and the use of the structure of high-level programming language, can be used for the development of the Windows environment of various applications. It easy to learn, efficient and powerful with Windowsr professional development tools comparable to SDK. In Visual Basic environment, the use of event-driven programming mechanism, the new easy-to-use visual design tools, within the wider use Windows application program interface (API) function, to use dynamic link library (DLL), the object Links embedded with the World at (OLE), open-end data connectivity (ODBC), and other technology, can be highly efficient and rapid development of the Windows environment powerful, rich graphical interface application software system. With the improved version, Visual Basic functions also growing.After version 5.0, Visual Basic launched a Chinese version, compared with the previous version, its functions have been greatly improve.However, more powerful functions, Visual Basic still has one drawback: in the absence of MSVBVM **. DLL must be installed on the computer the required DLL file. It can be designed with the operating system, but more difficult.In the early 21st century, microsoft has introduced Visual Studio 2003 and Visual Basic among the significant changes, Visual Studio for a variety of programming tools to a platform, Visual can run on this platform. Compared with traditional VB, are quite different. , used for the first time. Net framework for visual programming, and can a good framework compatible with COM. 2005 Visual Studio 2005 use of the NET 2.0 technology, more convenience to the programmer's work. But the new procedures on the system configuration requirements are also higher, the need for Microsoft. Net Framework 2.0 above. Net framework support.December 2007, Microsoft (Microsoft) launched the Visual Studio 2008 Beta 2 has undergone major changes (see attached map) enter in the code when the VB2005 can be much faster than in non-exceptional circumstances, VB2008 willautomatically open automatically Keyword completion of this order and begun to support the latest. NET Framework 3.5 Beta 2.附录B 外文文献中文翻译Visual Basic编程语言概述1991年,美国微软公司推出了Visual Basic(可简称VB),目前的最新版本是VB 2008 Beta2(VB9)中文版。

Unit4-Software Development解读

Unit4-Software Development解读
utility [ju:’tiliti]n.实用程序,公用程序 utility program实用程序,公用程序 软件设计者使用专门的应用程序来创建新程序, 这种专门程序通常被称为实用程序或开发程序。
Unit 4 Software Development
7
A programmer uses another type of program called a text editor to write the new program in a special notation called a programming language. text editor文本编辑程序,文本编辑器 notation[nəʊ’teɪʃn] n.记号,符号,标记法 程序员还使用另一种称为文本编辑器的程序来编写新程 序,新程序是用称为程序设计语言的特殊符号来编写的。
Unit 4 Software Development 6
定语从句
Ⅱ. Program Development (程序开发) Software designers create new programs by using special applications, often called utility programs or development programs.
Unit 4 Software Development
2
For the instructions to be carried out, a computer must execute a program, that is, the computer reads a program, and then follows the steps encoded in the program in a precise order until completion. carry out执行;进行;完成 encode[ɪn'kəʊd] vt.(将文字材料)译成密码;编码,编 制成计算机语言 要使程序中的指令得到执行,计算机必须执行该程序, 也就是说,计算机要读取该程序,然后按确切的顺序执 行程序中编码的步骤,直至程序结束。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

附录一、英文原文Hardware/Software Design and Development ProcessEverett Lumpkin and Michael GabrickDelphi Corporation, Electronics and Safety DivisionINTRODUCTIONProcess and technology advancements in the semiconductor industry have helped to revolutionize automotive and consumer electronics. As Moore’s Law predicted, the increase in complexity and operating frequencies of today’s integrated circuits have enabled the creation of system applications once thought to be impossible. And systems such as camera cell phones, automotive infotainment systems, advanced powertrain controllers and handheld personal computers have been realized as a result.In addition to the increases in process technology, the Electronic Design Automation (EDA) industry has helped to transform the way semiconductor integrated circuits (IC) and subsequent software applications are designed and verified. This transformation has occurred in the form of design abstraction, where the implementation continues to be performed at higher levels through the innovation of design automation tools.An example of this trend is the evolution of software development from the early days of machine-level programming to the C++ and Java software written today. The creation of the assembler allowed the programmer to move a level above machine language, which increased the efficiency of code generation and documentation, but still tied the programmer to the underlying hardware architecture. Likewise, the dawn of C / C++ compilers, debuggers and linkers helped to move the abstraction layer further away from the underlying hardware, making the software completely platform independent, easier to read, easier to debug and more efficient to manage.However, a shift to higher levels of software abstraction has not translated to a reduction in complexity or human resources. On the contrary, as integrated systems have become more feature rich, the complexity of the operating system and corresponding applications have increased rapidly, as have the costs associated with the software implementation and verification activities. Certainly the advancements in embedded software tools such as static code checkers, debuggers and hardware emulators have helped to solve some of the software verification problems, but software verification activities have become more time and resource consuming than the actual software creation. Time-to-market constraints have pushed software verification activities to the system-level, and led to a greater demand for production hardware to be made available earlier inthe software development flow.As with the software case, the semiconductor design community has made a very similar transformation in their design and verification strategies sparked by advances in the EDA community. Designs that were once implemented completely at the transistor level migrated to the gate-level implementation through the development of schematic capture tools. The creation of hardware description languages such as Verilog and VHDL and the corresponding compilers, simulators and synthesis tools allowed hardware designers to move away from the gate-level implementation to the register transfer level (RTL). The EDA community is now promoting even higher levels of abstraction, often under the banner of electronic system level design (ESL) . Again, this represented a fundamental change in design abstraction, which allowed the designers to think in terms of overall functionality instead of the configuration of gates needed to implement the desired functionality.As Application Specific Integrated Circuit (ASIC) design complexities have grown and the process geometry continued to shrink, the manufacturing and NRE costs for silicon has increased rapidly. For example, the cost for silicon mask sets range from $50,000 for a simple ASIC to greater than $1,000,000 for an advanced microprocessor or microcontroller . The high costs associated with ASICs underscores the motivation of the hardware community to insure that the intended functionality is implemented correctly prior to taking a design to silicon. The EDA industry has helped this cause by providing sophisticated verification tools that prove the high-level design and the silicon implementation will function equivalently. However, even with these tools available, more than ½ of all IC and ASIC designs require a re-spin of silicon, where 70% of the re-spins are due to logic or functional errors that verification efforts should have caught . With the huge investment required for each re-spin, system level verification is becoming a focus of the overall hardware verification strategies.Although we have seen significant advancements in the processes of hardware and software design during the past two decades, surprisingly, there have been little advancements made at the system level. Today’s system process consists of the paper study of the proposed hardware architecture, required functionality, microprocessor throughput, memory configuration, and the potential hardware migration paths. The process has remained relatively unchanged. Furthermore, the software implementation is typically held off until hardware prototype units are created, placing the software developers and system verification teams at a disadvantage. This current approach has many drawbacks including: slow adaptation to changes in customer requirements, drawn out hardware and software integration, limitations in system debugging, and difficulties meeting the time-to-market constraints.This paper presents a new approach to system-level design through the creation of a virtual system, which allows for an early analysis of hardware and software interaction while removing many of the drawbacks plaguing traditional system development. This paper also presents a virtual automotive air-bag system implementation and explores the benefits of virtual system development.PARADIGM SHIFTThe motivation for system level design and analysis is to significantly improve productivity through a paradigm shift that allows hardware and software to be designed concurrently rather than serially. Productivity is thus enhanced by the elimination of re-work, increased quality of the final system, improved verification, and shorter time-to-market.As design trends continue to move to higher levels of abstraction, more emphasis will continue to be placed in verification activities at both the component and system level. The creation of a “virtual” system using accurate models of the hardware provides engineers with the following benefits: an architectural exploration of hardware and software functions, the creation of flexible prototype hardware, more accurate analysis of throughput and portability, software development earlier in the cycle, and rapid debugging through the instrumentation of the virtual hardware.One of the primary advantages of a virtual system implementation is architecture exploration, which is the process of determining an optimum solution to a design space problem. Take for example the two-dimensional architectural space shown in Figure 1. The two design parameters shown (typically there are many design parameters) are power consumption and clock speed, with the ideal solution illustrated by the center of the target. In this simplified example, the yellow cross illustrates a hardware prototype ECU that exceeds the ideals for power consumption and fails to meet the clock speed ideals. Because of the time-to-market constraint, the system architecture continues to be based upon the initial hardware prototype without adequate exploration of alternative choices. The end result of a hardware based development process is a suboptimum product that may miss the design targets.Conversely the green crosses show an alternative path to the optimum design solution. Several virtual systems are assembled and tested in the same time-to-market window. The final virtual system is on-target for the design parameters, and the resulting work products from the virtual system are quickly converted into the physical product. Models of the system are initially created at a high level of abstraction, and, through the model-based methodology, are driven to a full virtual implementation, then to an actual product.The model-based methodology approach proposes the use of an architecture exploration tool to facilitate the rapid exploration of various CPUs, memories, and peripherals (system architecture). The system architecture is shown in the upper right of Figure 2 . The upper left of Figure 2 shows early revisions of the functional models of the system, known as system behavior. The system behavior and system architecture are combined, and an optimal solution is achieved by iteratively comparing the performance of each partitioned alternative. The objective is to evaluate the various architectural and partitioning alternatives to gain a first order approximation of the optimum design.Some of the proposed EDA tools for architecture exploration offer the ability to model microcontroller architectures in only a few weeks duration. The simulations for architectural simulation may be only 80% accurate, but that is believed to be good enough to make the firstorder choices of microcontroller, timer architecture and memory usages. Our evaluations of the architectural exploration tools, however, indicate that the industry has not yet focused on solving microcontroller selection in a general way. As this paper presents, there is a tradeoff between simulation accuracy, cost of the modeling effort, and the time to model a new architecture. We are awaiting further tool maturation before expanding beyond paper evaluations of architecture exploration.The industry trend is toward building libraries of very accurate architecture models that execute the embedded software directly. A sufficient library of these detailed models can then be used to evaluate system architectures and also used for the final software development.We have focused our efforts on the lower left box of Figure 2; the highly accurate and fast simulation of a virtual system known as cycle-accurate simulation. This portion of the co-design market has matured to the point that it is now feasible to simulate a moderate sized ECU, such as an air-bag deployment module, at about 1/15th the speed of the actual hardware. As additional modɥls become available, these cycle-ࡡccurate simulations will be capable of solving much of the architectural exploration space as weŬl.DeŴailed anѤ highly accurate simulati䁯n encourages evaluation of thɥ system behavior onĠa proѰosed architecture. The models, as well as the target code, can be adapted to determine the optimum design solution. Full target software simulation is supported using a 32-bit CPU Virtual Processor Model (VPM), the microcontroller peripheral models, system ASIC models, and the environmental stimuli. The VPM is able to load and simulate the same executable image as used in traditional bench development. The models may be exported from CoMET to the lower cost METeor integrated development environment to provide a fixed platform (models cannot be changed) virtual product simulation.SIMULATION SPEED AND ACCURACYBefore we begin discussing the system, it is important to present some background material that highlights the levels of modeling abstraction and how they are best applied.In general, total simulation sࡡeࡡd decreasesРis detail is added to the model. Fuࡡctional models execute orders of magnitude faster than the m d els used during o nverification.The levels of abstraction used in product modeling include :Functional Simulation – Veࡡy little to no timing accuracy of the real hardware.Timed耠Functional Simulation – Contains estimated execution time of individual moduleࡡ.Cycle-Apprɯximate –䀠Timed fun t ional simulation techniques applied to instruction set and cycle accurate simulation.Instruction Set Simulation – Cross-compiled code executed on model of target CPU.Cycle-Accurate – Simulation is very similar (or identical) to hardware behavior.二、英文翻译硬件/软件的设计和开发过程埃弗瑞特-鲁普金和迈克-盖布里克Delphi公司电子和安全部门介绍半导体产业的生产过程和设计技术的进步,革新了汽车和消费电子产品。

相关文档
最新文档