Hardware Software Codesign – Spring 2008

advertisement
University of Tehran
Electrical and Computer Engineering Department
Hardware Software Codesign – Spring 2008
ECE 612
Siamak Mohammadi
Office: Room No. 226
Office Hours: Weekdays, 9:30 – 12:00
Email: smohammadi@ece.ut.ac.ir
URL: http://ece.ut.ac.ir/classpages
Course description
We will show benefits of the codesign approach over current design process and provide
information on how to incorporate these techniques into a general digital design methodology
for embedded systems. We will also illustrate how codesign concepts are being introduced
into design methodologies. Fundamentals of HW/SW codesign and partitioning concepts in
designing embedded systems are introduced and current trends in the codesign of embedded
systems are discussed. The student will overview the goals of and methodology for
partitioning hardware/software in systems.
Prerequisites
Students must have familiarity with digital logic design, computer organization, HDL and C
programming.
Outline
 Introduction to Embedded System Design (1 session)
o What are Embedded Systems?
o Difficulties with the design of heterogeneous HW/SW Systems
o Requirements of modern embedded systems
o Embedded Systems Design Flow
o Embedded Systems Application
 HW/SW Codesign Overview (1 session)
o Introduction to embedded system codesign and motivation
o Progrmmability, performance and cost: ASIPs
o Steps involved in HW/SW Codesign
 Cospecification
 Modeling
 Partitioning/Scheduling
 Coverification
o Research areas in Codesign
 Cospecification and modeling (3 sessions)
o Introduction to Cospecification
o
o
o








Unified HW/SW Representations
Specification Languages
Modeling
 Data/control flow diagrams
 Concurrent processes
 Finite state machines
 Object-oriented representations
 Petri Nets
 UML
o SystemC a modeling platform for HW & SW
o Transaction level modeling
 TLM in systemC: based on systemC package
o Examples
Embedded System partitioning (2 sessions)
o Structural vs. functional partitioning
o Natural vs. executable language specifications
o Basic partitioning issues and algorithms
o Functional partitioning techniques for hardware
o Hardware/software partitioning
o Functional partitioning techniques for software
o Exploring tradeoffs with functional partitioning
o Objective and closeness functions
CPU and Accelerator based Embedded System Codesign (2 sessions)
o Accelerated System Architecture
o Hardware Options
o Accelerator System Design
o System Partitioning & Performance Analysis
o Scheduling and allocation
o Hardware Accelerator Case Study
Embedded Computer Organization (1 session)
o Processor and Computer System Architecture
o Micro-controllers
o RISC/CISC Architectures
o ARM Embedded CPU cores and Programming
o Interrupts and System Performance
Embedded System controller case studies (1 session)
o CRC cards and Elevator Controller
o HP Plotter
o Bluetooth Baseband Controller
Embedded SoPC: Virtex System on Programmable Chips (1.5 sessions)
o Introduction to Programmable Chips
o MicroBlaze Processor Core Architecture
o μBlaze SoPC Configurations and OPB IP Cores
o μBlaze Address Space
o Adding User Cores
Prototyping and Emulation (1 session)
o Introduction
o Prototyping and Emulation Techniques
o Prototyping and Emulation Environment
System level power/energy optimization (1 session)
Introduction to some HW/SW Codesign environments (1 session)
o Partitioning tools & algorithms: POLIS, COSYMA,…
o Describe examples of applications and systems developed using a codesign
approach
References
[1] J. Staunstrup and W. Wolf, “Hardware/Software Co-Design: Principles and Practices”,
Kluwer 1997
[2] Frank Vahid and Tony Givargis, “Embedded System Design: A Unified Hardware /
Software Approach”, 1999
[3] W. Wolf, “Computers as Components: Principles of Embedded Computing System
Design”, Morgan Kaufmann 2001
[3] H. Dubois, O. Sentieys, D. Chillet, J. Philippe, “Teaching Hardware/Software System
Codesign Using CAD Tools : A Case Study in Image Synthesis”, IEEE Transactions on
Education, vol. 43, No3, Aug. 2000
[4] Other papers
Evaluation Scheme




5 % Home works and computer assignments
25% Mid-term exam
45% Final exam
25% Project
Note

Students will design a hardware software system, where they will assess the impact of
the partitioning on the system performance by implementing it on a board. They will
also write some codes that control the interaction between the hardware and the
software.
Outcome
At the end of this course, students will understand the importance of partitioning the hardware
and software in today’s complex embedded system. By doing the project students are exposed
to a high level language for modeling and a hardware design language for design and through
the implementation of the design on an “FPGA + processor” board they can experience some
partitioning algorithms and see how the performance of their system can vary. Aspects of
reusability, co-simulation and verification of a HW/SW system are considered and
understood.
Download