List and describe various features of electronic systems Lis
List and describe various features of electronic systems.
List and discuss the steps in designing an embedded system.
Solution
Electronic system level (ESL) design and verification is an emerging electronic design methodology that focuses primarily on the higher abstraction level concerns. The termElectronic System Level or ESL Design was first defined by Gartner Dataquest, an EDA-industry-analysis firm, on February 1, 2001. It is defined in the ESL Design and Verification book as: \"the utilization of appropriate abstractions in order to increase comprehension about a system, and to enhance the probability of a successful implementation of functionality in a cost-effective manner.\" The basic premise is to model the behavior of the entire system using a high-level language such as C, C++, LabVIEW, or MATLAB or using graphical \"model-based\" design tools like SystemVue, VisualSim Architect or Simulink. Newer languages are emerging that enable the creation of a model at a higher level of abstraction including general purpose system design languages like SysML as well as those that are specific to embedded system design like SMDL and SSDL supported by emerging system design automation products like Teraptor. Rapid and correct-by-construction implementation of the system can be automated using EDA tools such as high-level synthesis and embedded softwaretools, although much of it is performed manually today. ESL can also be accomplished through the use of SystemC as an abstract modeling language.
Electronic System Level is now an established approach at most of the world’s leading System-on-a-chip (SoC) design companies, and is being used increasingly in system design.[citation needed] From its genesis as an algorithm modeling methodology with ‘no links to implementation’, ESL is evolving into a set of complementary methodologies that enable embedded system design, verification, and debugging through to the hardware and software implementation of custom SoC, system-on-FPGA, system-on board, and entire multi-board systems.
Second Part
An embedded system is one with computing hardware that has software “embedded” in it as one of its core components. We are surrounded by embedded systems that add luxury to our lives like mobile handsets, washing machines, microwaves, ATM machines, and air conditioners, to name just a few. Because of certain application requirements, engineers have to approach embedded design in a different way than other types of designs.
The following offers a brief step-by-step approach to follow while designing an embedded system
1. Proposal: - An innovative idea or system that makes life easier and/or reduces the amount of human effort required to complete a task.
2. Definition: - Next, the whole system needs to be designed, including what it will do under all possible sets of input conditions. This definition is perhaps the most critical part, as any error here will affect the working of whole system.
I. I/O Considerations: - Defines that for a particular input, what the output of the system will be, considering the system as a black box.
II. Mathematical Modeling: - Design the algorithm for the system to work as desired.
III. Functional Modeling: - Design the functions of the system which will accept input and produce the desired output.
3. Technology Selection: - Based on the above points, designers then review available technology and select which devices will fulfill all the requirements while balancing efficiency, cost, and time-to-market.
4. Integration & PCB design: - List all the components, which you need to implement your functions and design their placement on the PCB. Traces and all other paths must have the least possible electromagnetic interference (EMI) and should be free from various errors. While designing the PCB, special attention must be given to the ground as well as all the components on the PCB that use ground.
5. Firmware Development & Debugging: - Since hardware needs instructions to execute the way we want, we need to write the code for every component used by the hardware. This is exactly what is done by the firmware i.e. the application code. Firmware should be of minimum complexity. Moreover, as we write the code, we face many errors or bugs and for this we need a proper debugging protocol.
6. Testing: Debugging tests the piece of code but in testing we test the whole system i.e. hardware as well as the software that drives that hardware.
7. Documentation: Anyone who accesses your complete application should never ask you “what does this mean?” or “How does this thing work?” and for this we need to document everything.

