Electronic Design Automation


Electronic Design Automation
Future automotive microcontrollers will be impacted by changes in the design methodology, which is being adopted in the automotive electronics industry. There is a trend to take a systems engineering approach, which is an integrated design methodology incorporating electronic, mechanical, hydraulic and design for manufacturing considerations. Simulation, code generation, optimization and fast prototyping tools are now more commonly used in order to reduce time to market, generate more highly integrated designs, reduce costs and increase reliability.

The modern automotive microcontroller must now be supported early in the cycle with software models that can be integrated into simulation environments. A conventional system design is illustrated in Figure 8.


Figure 8 - Conventional system design
The conventional system design process starts with abstracting a software and hardware specification from the systems specification. Both hardware and software are developed independently and are then integrated and tested/debugged. If a functional problem exists at this stage (as it often does), it is usually very difficult to redesign hardware, so it is most common that software fixes are developed as far as possible. The main problem with this methodology is that both the hardware and the software are being debugged at the same time, thus it is more difficult to determine the source of faults. It is estimated that over 50% of the entire development cycle is spent at this stage.

Often, a new microcontroller design is undertaken as part of the 'develop hardware' effort. This design will usually take an existing CPU and existing peripheral functions (i.e. timers, serial communications, etc.) and integrate these together with the required memory arrays for the particular system. These memory arrays are based on the estimated software size, which is being developed independently, so are rarely efficient. Quite often, a new 'custom' peripheral is also developed for integration with the microcontroller. This could be a 'knock' detect module for a powertrain system or a wheel speed interface for an ABS system.

In order to resolve the problems of optimizing a systems design, new software-based toolsets have been developed which allow alternative implementations to be evaluated rapidly. The new approach allows trade-offs to be made quickly and an efficient design to be generated with confidence that little or no problems will surface later. The new systems design process that is being adopted is illustrated in Figure 9.

Figure 9 - Modern systems design methodology
The control algorithm development is now usually a model-based operation. The algorithm is simulated on a workstation in an environment that simulates the behavior of the physical system. The algorithm can be tweaked and simulated in the model on an iterative basis until the algorithm development has been completed. The control algorithm model, usually mathematically based, is then processed using an Automatic Code Generation (ACG) tool that will provide a High Level Language file representative of the control strategy. This High Level Language can be compiled to run on any execution unit based system (such as a microcontroller). In order to verify the code, it is tested in a hardware environment by downloading the code to a rapid prototyping board, usually a very powerful array of processors/DSPs. The rapid prototyping board is connected to a hardware environment of inputs (sensors, serial communications links) and outputs (actuators) in order to verify the operation of the control algorithm. After the model-based algorithm development is complete, it is time to partition the hardware and software.

Software tools are again used at the partitioning stage to simulate the system operating with different configurations of software and hardware. The goal is to understand the trade-offs involved in implementing different functions as either software routines or as a dedicated hardware block. For example, a routine that constantly services certain low-level interrupts which occur very frequently might best be implemented as an autonomous (or 'smart') peripheral on a microcontroller. The algorithm is run on a model of a CPU and peripheral modules can also be implemented as behavioral models.

The outcome of the hardware/software co-design stage is to determine the final specification for the hardware. In the most part, the software will already exist and have been verified at this stage. The hardware requirements that are identified at this stage will be optimized to meet exactly the system requirements and a new microcontroller can be developed which suit the specification exactly. It is estimated that the overall development time required using the model-based development methodology can be around half of the time required for the conventional systems design methodology.

The impact on the microcontroller is that that there will be a requirement for quality software models of not only the CPU but of the peripheral modules, which could be used in the system. The models will be required very early in the design cycle and its likely that there will be many different types of models required for use with different toolsets (i.e. Verilog, VHDL, C++). These models will someday be regarded as essential to the design process as a databook is considered today.

1 comments:

Visionics_Sweden said...

Visionics is an electronic design automation software company in Sweden. Visionics provides 3D Library Editor includes a library of virtual world objects, which you can insert into a virtual world.

Post a Comment

 

Free Download Engineering Books - IEEE Books | Copyright 2009-2013 All right reserved | Design by BMW Automobiles | Created by Umair Sheikh