200 likes | 364 Vues
This course explores the design and co-design of embedded systems, comparing traditional and modern methodologies. Participants will delve into the embedded system design process, engaging in analysis and discussion of both approaches. Key topics include the implementation of hardware and software components, analog I/O design, PCB development, and FPGA programming. The course culminates in a final project, allowing participants to apply learned techniques in practical scenarios such as the design of a Robot Control Unit (RCU) for soccer-playing robots.
E N D
Design & Co-design of Embedded Systems Embedded System Design:Traditional vs. Modern Style Maziar Goudarzi
Today Program • Embedded System Design Process • Traditional approach • Analysis & discussion • Modern approaches • Course final project Design & Co-design of Embedded Systems
Traditional Approach output CPU analog input analog Logic mem embedded computer Design & Co-design of Embedded Systems
steering motors(not shown) Infra-Red Sensors Touch sensors Design Example • Robot Control Unit (RCU) of Arvand soccer-playing robots motion wheels castor wheel Bottom View of Arvand Robots Design & Co-design of Embedded Systems
Design Example (cont’d) • Things to handle • Motors • PWM for motion motors • DC control for steering • Touch sensors • Read-in and refresh values • Infra-Red sensors • Reset, then read them • Communication to the main motherboard • RS-232 serial link motion wheels castor wheel Design & Co-design of Embedded Systems
Design Example (cont’d) • Implementation steps • Choose HW or SW implementation per operation • Design the analog IO parts • Design the Printed Circuit Board (PCB) • Pass the PCB files to manufacturing firms • HW: Develop the FPGA contents • Program the FPGA configuration EEPROM • SW: Develop the 8051 program • Program the 8051 instruction memory (EEPROM) • Integrate HW, SW, and the PCB • Test • Limited test in isolation (as far as possible) • Test in action (on the robot) Design & Co-design of Embedded Systems
Tasks SW design System design PCB test FPGA design PCB design Fabrication Test Time Design Example (cont’d) Traditional System Design Process SW test Simulation Design & Co-design of Embedded Systems
Analysis • Development • Isolated (SW, HW, Analog electronics) • Consistency check: designers • Debug • Before PCB is available • Isolated (SW, HW, Analog) • After PCB is available • Remove the EEPROM/8051 • Change the configuration/program • Re-insert the EEPROM/8051 • What if PCB initial design (or analog parts) was wrong? Design & Co-design of Embedded Systems
Analysis (cont’d) • Some other problems • Tools used • Protel, OrCAD for PCB • Altera MAX+Plus II for FPGA • 8051 command-line compiler and debugger • Tool interoperability issues Design & Co-design of Embedded Systems
Solution • Try to do as much of the tests as early as possible in the design cycle • Step 1: Combine HW and SW simulation • Step 2: Add analog parts as well • Analog Mixed-Signal (AMS) simulation • Step 3: Entire design of the PCB? Design & Co-design of Embedded Systems
System-Level Partitioning Modern Design Style (HW+SW) Co-Design Process Tasks SW design SW test System design Shared Design PCB test HW design Time Design & Co-design of Embedded Systems
Modern Design Style • Various approaches • Application-Specific Instruction Processor (ASIP) • Platform-based design • Communication-based design • Component-based (core-based) design • etc. Design & Co-design of Embedded Systems
The approach to be evaluated here Tasks Compile SW System Design Data type refinement Parallelize Integrate& Test Design interface Synthesize HW Time C++ SystemC Xilinx tools Design & Co-design of Embedded Systems
Ideas for course project • Alternative 1: App. case study • Select an embedded application • Design an executable specification for it • Step by step manually refine it to HW-SW implementation • Report performance, area, power & compare with full-SW& write a paper (optional) • Suggestions • Data compressor/decompressor • Voice codec • A game • JPEG, JPEG2000 Design & Co-design of Embedded Systems
Ideas for course project (cont’d) • Alternative 2: Methodology case study • Select a system design language and methodology • Implement an application using them • Give a presentation • Suggestions: • Handle-C & Celoxica “DK Design Suite” • SpecC & the associated tools from UCI • Tensilica’s processor generator (XTensa processor) Design & Co-design of Embedded Systems
Ideas for course project (cont’d) • Alternative 3: Case study in ODYSSEY • Select an application • Develop an OO C++ program for that • Implement it as HW-SW system using ODYSSEY tools and flows • Suggestions • The same applications as in alternative 1 Design & Co-design of Embedded Systems
Ideas for course project (cont’d) • Alternative 4: Implement algorithms • Select one of the co-synthesis algorithms (to be taught during the course) • Develop a program that implements the algorithm for ODYSSEY Design & Co-design of Embedded Systems
Summary • Problems inherent in traditional style of designing embedded systems • The general solution • A modern approach followed in this course and to be used in its final project Design & Co-design of Embedded Systems
Other Notes • Reading assignments on the course web-page • Announce by the end of next week (1 page) • Your team members (at most 3 persons) • Your selection for course project • Rough schedule • Other deadlines for the project • Report 1: Sun. Aban 15th • 2-3 pages: • List of your collected material • Summary of what you’ve done + demo of the C++ app. • Your plan for next phases and role of each person • Report 2 + Oral presentation: Sun. Azar 13th • 4-5 pages: • 15 min. oral presentation • Summary of what you’ve done + experimental results (as far as available) • What’s remained? Plan to finish it. Design & Co-design of Embedded Systems
Tool Presentation • Short presentation of the tools to be used in the course project (now, in the lab.) • Xilinx EDK: Naser MohammadZadeh • Synopsys SystemC Compiler: Morteza NajafVand Design & Co-design of Embedded Systems