UCR CS269: Hardware/Software Engineering of Embedded Systems

Course Information   Class Readings and Presentations   Individual Projects  

CS269 deals with the exciting and rapidly-growing field of embedded computing systems.  The course will present state-of-the-art software and hardware design techniques for embedded computing systems.  Topics include specification models, languages, simulation, partitioning algorithms, estimation methods, model refinement, and design methodology.  

Course information

Instructor Harry Hsieh, (harry@cs.ucr.edu), SURGE 329

Office hours: Tue/Thu 10-11AM, or by appointment

Class meeting TR 11:10AM-12:30PM;  Surge 349
Textbooks None -- all readings will be available online
Prerequisite CS/EE120A(Digital systems) and consent of instructor
Call # and units 18045, 4 units.
Grade Individual Project 45%, Class Presentation & Participation  45%, Attendance 10%

Project should be done individually.  You are encouraged to propose your own project, possibly related to your Ph.D., M.S. thesis work or even B.S. senior project work.  The idea is that it may become a submission to a workshop and/or a chapter in your thesis.  The content should falls somewhat within the broad confine of the course and has comparable depth as the other projects.  A list of potential project will also be available at the beginning of the class.

You are expected to read assigned readings before the date they are presented, to attend classes and actively participate in discussions.  You are also expected to present several papers during the quarter, for which you should study thoroughly, and do outside research as necessary.

Attendance will be taken throughout.  Un-excused absence will be penalized.

 

Class Readings and Presentation

You are expected to read assigned readings before the date they are presented, to attend classes and actively participate in discussions.  You are also expected to present several papers during the quarter, for which you should study thoroughly, and do outside research as necessary.  Questions will be posed in class about the material and you are expected to be able to answer them.  You are free to contact authors for extra material (including presentation material) and to answer any questions you might have.  (Obviously, they are not under any obligation to respond).  However, you must properly acknowledge the source so there won't be questions of plagiarism.

Date Presenter Topic and assigned reading Presentation
Tu 1/6 H. Hsieh Course Introduction and Logistics pdf
Th 1/8 H. Hsieh Presentation on Presentation pdf

Tu 1/13 Xi Chen "The Tides of EDA", A. Sangiovanni-Vincentelli, IEEE Design and Test of Computers, November-December 2003.

"System-Level Design: Orthogonalization of Concerns and Platform-based Design", K. Keutzer, A. Newton, J. Rabaey, A. Sangiovanni-Vincentelli, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 19 (no.12), Dec 2000.

pdf
Thu 1/15 K. Stephenson

P. Vu

"The Softening of Hardware" F. Vahid, IEEE Computer, volume 36 issue 4, April 2003, pages 27-34.

"A Decade of Hardware/Software Codesign", W. Wolf, IEEE Computer, volume 36, issue 4, April 2003, pages 38-43.

pdf

pdf


Tu 1/20 J. Yu

P. . Appachu

"Metropolis: an Integrated Electronic System Design Environment"
F. Balarin, Y. Watanabe, H. Hsieh, L. Lavagno, C.  Paserone, A. Sangiovanni-Vincentelli,, IEEE Computer, volume 36, issue 4, April 2003, pages: 45- 52.

"SystemC Cosimulation and Emulation of Multiprocessor SoC Designs", L. Benini, D. Bertozzi, D. Bruni, N. Drago, F. Fummi, and M. Pocino, IEEE Computer, volume 36, issue 4, April 2003, pages 53-59.

pdf

pdf

Th 1/22 N. He

R. Evans

"A Formal Approach to MpSoC Performance Verification"
K. Richter, M. Jersak, R. R. Ernst,.IEEE Computer, volume 36, issue 4, April 2003, pages 60- 67

"Developing Architectural Platforms: a Disciplined Approach"
A. Mihal, C. Kulkarni,  M. Moskewicz, M. Tsai, N. Shah, S. Weber,  Y. Jin, K. Keutzer, K. Vissers, C. Sauer, S. Malik, IEEE Design and Test of Computers, volume 19, issue 6, Nov/Dec 2002, pages 6- 16.

pdf

pdf


Tu 1/27 Xi Chen

J. Yu

N. He

Project Progress Presentation (part 1) 25 minutes each person-project.  Presentation should include background, plan of attack, expected result, and progress so far.
Th 1/29 P. Vu

K. Stephenson

R. Evans

P. Appachu

Project Progress Presentation (part 2) 25 minutes each person-project.  Presentation should include background, plan of attack, expected result, and progress so far.

 


Tu 2/3 J. Yu

K. Stephenson

N. He

"PICO: Automatically Designing Custom Computers"
V. Kathail, S. Aditya, R. Schreiber, R. Ramakrishna, D. Cronquist, M. Sivaraman, IEEE Computer, volume 35, issue 9, Sep 2002, pages 39- 47.

"Mica: a Wireless Platform for Deeply Embedded Networks"
J. Hill, D. Culler, IEEE Micro, volume 22, issue 6, Nov/Dec 2002, pages 12-24

"An Extension of SystemC for Mixed Multi-Level Communication Modeling and Interface-Based System Design", R. Siegmund, D. Nueller, Design Automation and Test in Europe, March 2001, pages 26-32. Best paper winner.

Th 2/5 R. Evans

P. Vu

P. Appachu

"Dynamic Conditional Branch Balancing during the High-Level Synthesis of Control-Intensive Designs", S. Gupta, N. Dutt, R. Gupta. A. Nicolau, Design Automation and Test in Europe, March 2003, pages. 270-275.

"Design Optimization of Mixed Time/Event-Triggered Distributed Embedded Systems", T. Pop, P. Eles, Z. Peng,  First IEEE/ACM/IFIP International Conference on Hardware/Software Codesign & System Synthesis, October 2003, pages 83-89. Best presentation winner.


"Exploiting Loop-Level Parallelism on Coarse-Grained Reconfigurable Architectures Using Modulo Scheduling", B. Mei, Serge Vernalde, D. Verkest, H. De Man, R. Lauwereins, Design Automationand Test in Europe, March 2003, pages 296-301.


Tu 2/10 N. He

R. Evans

K. Stephenson

"Processor/Memory Co-Exploration on Multiple Abstraction Levels", G. Braun, A. Wieferink, O. Schliebusch, R. Leupers, H. Meyr, A. Nohl, Design Automation and Test in Europe, March 2003, pages 966-971.

Automatic Application-Specific Instruction-Set Extensions under Microarchitectural Constraints", K. Atasu, L. Pozzi, P. Ienne, Design Automation Conference, June 2003. pages 256-261. Best paper winner.

"Energy Efficient Fixed-Priority Scheduling for Real-Time Systems on Variable Voltage Processors", G. Quan, X. Hu, Design Automation Conference, June 2001, 6 pages. Best paper winner.

Th 2/12 J. Yu

P. Vu

P. Appachu

"Probablistic Application Modeling for System-Level Performance Analysis" R. Marculescu, A. Nandiof, Design Automation and Test in Europe, March 2001, pages 572-579. Best paper winner.

"An Efficient Retargetable Framework for Instruction-Set Simulation", M. Reshadi, N. Bansal, P. Mishra, N. Dutt, First IEEE/ACM/IFIP International Conference on Hardware/Software Codesign & System Synthesis, October 1, pages13-18. Best paper winner.

"A Universal Technique for Fast and Flexible Instruciton-Set Architecture Simulation", A. Nohl, G. Braun, A. Hoffmann, O. Schliebusch, R. Leupers, H. Meyr, Design Automation Conference, June 2002. pages 22-27. Best paper winner.


Tu 2/17 none No class meeting.  Work on your projects!!!
Th 2/19 none No class meeting.  Work on your projects!!!

Tu 2/24 Students Project Progress Meetings
Th 2/26 Students Project Progress Meetings

Tu 3/2 Students Project Progress Meetings
Th 3/4 Students Project Progress Meetings

Tu 3/9 none No Class Meeting.  Work on your projects!!!
Th 3/11 Students 9AM-12:30PM

Final Project Presentation 25 minutes each person.  Presentation should include background, motivation, procedures, results, and future work.

 

Individual Projects

Project should be done individually.  You are encouraged to propose your own project, possibly related to your Ph.D., M.S. thesis work or even B.S. senior project work.  The idea is that it may, with possibly one more quarter of independent study work, become a submission to a workshop and/or a chapter in your thesis.  The content should falls somewhat within the broad confine of the course and has comparable depth as the other projects.  A list of potential project will also be available at the beginning of the class.  Project request is on a first-come-first-serve basis.  You are encouraged to send me e-mail frequently about your progress or any question you may have throughout the quarter.  

Project Deadlines are: 

1/15 Thursday noon Deadline for project request.  Finalized project assignment.
1/27,29 Tue,Thu (in class) Project Progress Presentation 25 minutes each person
2/3 Tuesday (midnight) 1st draft of project report (~2 pages), background, expected result, plan, progress
2/24 Friday (noon) 2nd draft of project report (~4 pages), background, expected result, plan, progress
3/11 Thursday (9AM-12:30PM) Final Project Presentation (25 minutes each person) and Final Project Report (~8 pages "conference format": 2 column, 11pt, single space)

 

1) Extending eBlock Simulator

2) Programmable eBlock

3) Protocol Exploration Tool for eBlock Systems

4) Implementing Abstraction/Refinement Operations for Formal Verification in Metropolis

5) Performance Analysis of Metropolis Design Using SMART

6) A Practical Language for LOC

7) Integrating LOC checker into PSL framework

8) Safe Abstraction for Simulation Trace Checking

9) Testing and synthesizing a configurable logic architecture for dynamic hardware/software partitioning

 

Project Descriptions

 

1) Extending eBlock Simulator

Mentor: Susan Cotterell (susanc@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)

Student: K. Stephenson

Goal:

The goal of eBlocks is to empower regular people, having no programming or electronics experience, to build basic useful electronic systems around the home, office, store, etc. eBlocks strive to achieve this goal by creating a set of embedded system building blocks - eBlocks - that regular people could easily connect together to build a huge variety of basic but useful monitor/controller systems. The key is to add compute intelligence to components that previously had none - to sensors, switches, light-emitting diodes (LEDs), speakers, etc. Adding compute intelligence to those items was previously cost and power prohibitive, but extremely small, cheap and low power processing devices now make such addition possible. Ideally, people could simply connect such eBlocks together to build basic systems.

Currently a eBlock simulator is available which allows anyone to build a subset of eBlock systems on the web. The goal of this project is to extend the simulator.

Procedure:

  1. Study and understand the basic concept and goals of eBlocks.
  2. Study and understand the Java code used to implement version 1.1 of the eBlock simulator.
  3. Extend the simulator to allow users to load and save eBlock configurations created on the webpage.
  4. Extend the simulator to allow users to mimic the desired test environment either through a testbench, graphically, or some other means.
  5. Extend the simulator such that a user can track various parameters and statistics such as power consumption, eBlock state, transmission delay, etc.
  6. Extend the simulator to assist users in configuring the logic block, if they choose to request assistance.
  7. Extend the simulator to handle more of the Boolean as well as the integer eBlocks.

Expected Products:

An eBlock simulator with the aforementioned extensions as well as any other improvements that may be beneficial

Reference:

 

2) Programmable eBlock

Mentor: Susan Cotterell (susanc@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)

Student: To Be Determined

Goal:

The goal of eBlocks is to empower regular people, having no programming or electronics experience, to build basic useful electronic systems around the home, office, store, etc. eBlocks strive to achieve this goal by creating a set of embedded system building blocks - eBlocks - that regular people could easily connect together to build a huge variety of basic but useful monitor/controller systems. The key is to add compute intelligence to components that previously had none - to sensors, switches, light-emitting diodes (LEDs), speakers, etc. Adding compute intelligence to those items was previously cost and power prohibitive, but extremely small, cheap and low power processing devices now make such addition possible. Ideally, people could simply connect such eBlocks together to build basic systems.

Although eBlocks are targeted towards people with no program expertise, those with programming knowledge should not be confined. By creating a programmable eBlock, users can specify the desired functionality of their own eBlock and use it in conjunction with pre-existing eBlocks.

Procedure:

  1. Study and understand the basic concept and goals of eBlocks.
  2. Study and understand the Java code used to implement version 1.1 of the eBlock simuator.
  3. Create an environment in which users can specify the functionality of a programmable eBlock.
  4. Extend the simulator to allow users to test the programmable eBlock along with the pre-existing eBlocks.

Expected Products:

An environment which allows users to program a programmable eBlock as well as an eBlock simulator which allows users to test the programmable eBlock along with pre-existing eBlocks found in the eBlock library.

Reference:

 

3) Protocol Exploration Tool for eBlock Systems

Mentor: David Sheldon (dsheldon@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)

Student: To Be Determined

Goal:

The goal of eBlocks is to empower regular people, having no programming or electronics experience, to build basic useful electronic systems around the home, office, store, etc. eBlocks strive to achieve this goal by creating a set of embedded system building blocks - eBlocks - that regular people could easily connect together to build a huge variety of basic but useful monitor/controller systems. The key is to add compute intelligence to components that previously had none - to sensors, switches, light-emitting diodes (LEDs), speakers, etc. Adding compute intelligence to those items was previously cost and power prohibitive, but extremely small, cheap and low power processing devices now make such addition possible. Ideally, people could simply connect such eBlocks together to build basic systems.

A further requirement of eBlocks is that they are battery powered, to avoid the complexity of connecting every component to a wall power source. Thus, eBlocks must have sufficient battery life such that a user is not constantly changing the batteries. Communication is one of the main contributors to power dissipation. The goal of this project is to design a tool that will determine the optimal parameters for the system so that the system will use minimal power, while still working properly. Given parameters such as the length of the packet, transmission frequency, and error detection, create a tool that will determine the best configuration that will also use the smallest amount of power. The environment may effect the power or accuracy of the transmission so all the power and error rates the user should be able to change.

Procedure:

  1. Study and understand the basic concept and goals of eBlocks.
  2. Study and understand the Java code used to implement version 1.1 of the eBlock simuator.
  3. Create an environment in which users can specify and explore various transmission protocols.
  4. Exploration tool should keep track and display various statistics of interest such as power dissipation, system delay, etc.
  5. Exploration tool should allow a user to specify environmental stimuli, such as how often input into the systems occurs.
  6. Exploration tool should allow a user to weight the importance of various parameters and/or specify the environment an eBlock system will be placed in and output the optimal transmission protocol.

Expected Products:

An eBlock transmission protocol exploration/optimization environment in which users can test the impacts of various protocols given a defined test environment as well as an option to optimize the protocol given a defined test environment and/or weighted parameters.

Reference:

 

4) Implementing Abstraction/Refinement Operations for Formal Verification in Metropolis

Mentor:  Harry Hsieh (harry@cs.ucr.edu)

Student: Xi Chen

Goal:

The existing formal verification checks the whole state space of a design for properties (specified in LTL or LOC) of a design. A realistic system design (e.g. PiP) is usually too large to be exhaustively verified. Due to the fact that only a part of the design needs to  be checked, some components of the design can be abstracted to simpler representations without changing the validity of the properties in the verification. We call it safe abstraction.

The goal of this project is to design a set of safe abstraction procedures that can be applied automatically or manually by designers to make the formal verification of large designs possible. The basic requirement is not to affect the validity of the properties.

Procedure:

  1. Study and understand the methodology of formal verification.
  2. Study and understand the concept of design abstraction.
  3. From the PiP design (or its components) and several properties, identify abstraction procedures that won't affect the validity of the properties.
  4. Generalize the abstraction procedures for stantard logic operators (e.g. LTL and LOC).

Expected Products:

A case study of safe abstraction for simulation trace checking probably using the PiP design. Generalization of the abstraction procedures for LTL and LOC logic operators.

Reference:

 

5) Performance Analsysi of Metropolis Design using SMART

Mentor: Xi Chen (xichen@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)

Students: J. Yu

Goal:

Formal verification and performance analysis is critical to the correct functioning of a design.  Metropolis design framework allow designer to start from concept all the way down to implementation, all within a formal framework.  Preliminary work exists to formally verification small portion of the MMM design using the translation path to SPIN.  However, what distinguishes Metropolis is its ability to specify architecture and function to architecture mapping.  Performance analysis, at high level of abstraction, can be achieve with early mapping of function to architecture.  Since no detail information is yet available at this stage, stochastic parameters may be best used to characterized a higher level design.  This project seek to capitalized on SMART's ability to perform stochastic verification.  Since SMART is also capable of formal functional verification, a more direct and efficient path to functional verification is also sought for in this project.

Procedure:

  1. Study and understand SMART and Petri Net.
  2. Study and understand Metropolis and MMM through simulation (SimpleByte example, architecture example, PIP example).
  3. Perform stochastic case study on examples by writing PN equivalents of the MMM designs.
  4. Translate simple design from MMM to PN for both functional verification and performance analysis.

Expected Products:

Case study on stochastic performance analysis of Metropolis functional and architecture design using SMART.  Simple automatic translator from MMM to PN for both performance analysis and functional verification.

Reference:

 

6) A Practical Language for LOC

Mentor: Xi Chen (xichen@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)

Student: P. Appachu

Goal:

Logic Of Constraints (LOC) is a formalism designed to reason about execution traces containing quantitative performance values (also known as annotations).  It is designed for analyzing traces from the execution of higher, transaction level system models, where the input/output events, instead of their precise time of occurrence, are of primary importance.   LOC consists of all the terms and operators allowed in sentential logic, with additions that make it possible to specify quantitative assertions without compromising the ease of analysis.

To make LOC easier to use and more powerful to express complex properties, we need a practical language for it. The goal of this project is to design 
an assertion language for Logic Of Constraints following the style of Property Specification Language, a popular assertion language which has base its mathematical foundation on Linear Temporal Logic (LTL).  Part of the inspiration of the language design should also come from SMV.

Procedure:

  1. Study and understand Logic Of Constraints.
  2. Study and understand PSL and LTL.
  3. Understand the difference between LOC and LTL/PSL, and the difference between a language and a logic.
  4. Study and understand SMV and possibly utilize some of the concept and constructs.
  5. Identify the language constructs that can be used for LOC properties.
  6. Following the style of PSL and SMV, design a practical language for LOC.
  7. Write a parser for this language by extending the exiting LOC checker generator (or possibly PSL checker generator).
  8. (extra credit) Integrate PSL and the language for LOC into a "super" language.

Expected Products:

A well defined language for LOC, along with a functioning parser which is integrated with existing LOC (code) checker generator.

Reference:

 

7) Integrating LOC Checkers into PSL Framework

Mentor: Xi Chen (xichen@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)

Student: R. Evans

Goal:

LTL-based assertion language PSL and LOC can be used to formally specify the functional and performance properties of a system level design. LTL and 
LOC have been shown to have different domains of expressiveness and can complement each other.

For LTL/PSL properties, we leverage the existing tool, FoCs, to generate the checker core and then manually write wrappers that are necessary for checking simulation trace off-line (as compare to on-line monitoring).. For LOC properties, we use our own tool to generate checkers. The goal of this project is to first automate the wrapper generation for FoCs generated checkers, and then integrate the two checker generations into a unified framework.

Procedure:

  1. Study and understand Logic Of Constraints and its checker generator.
  2. Study and understand PSL and its checker generator FoCs.
  3. Write a wrapper generator for FoCs generated PSL monitor so a trace checker can be generated.
  4. Give example of a meaningful, non-trivial, combination of LTL with LOC, and manually write the corresponding checker
  5. Define rules for combining LTL and LOC, write automatic checker generator for tyical LOC+LTL properties.
  6. Integrate the two separate checker generations into one unified framework.

Expected Products:

A wrapper generator for FoCs generated PSL checkers and a integrated tool for both LTL/PSL and LOC checker generations.

Reference:

8) Defining Levels of Abstraction for Simulation Trace Checking

Mentor: Xi Chen (xichen@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)

Student: N. He

Goal:

It is not unusual for designers to run simulation using hours upon hours of computation time, regardless of what property he really cares about.  Given a particular property, it is easy to envision situation where most part of the design are not relevant to the property at hand.  In formal verification, property specific safe abstraction has been studied quite extensively, with mixed result.  This project seek to answer the question in the context of simulation.  Given a design, and a set of LTL or LoC properties, we want to find an abstraction (level) that is safe, in the it retain the essentially characteristic for the pass/fail of the given property.

We will start with a realistic system design (a Picture-in-Picture design specified in Metropolis Metamodel), and find a cooresponding abstract design that is still safe for a class of properties.  We, of course, will also define that class of properties.  Furthermore, we want to see what abstraction procedures can be applied automatically or manually by designers to move from one abstraction level to the other, and to reduce the simulation time.  The lesson learned with the PIP design should then be generalized to MMM design in general.

Procedure:

  1. Student and understand PIP in Metropolis
  2. Study and understand the methodology of simulation trace checking (LTL and/or LOC)
  3. Study and understand the concept of design abstraction.
  4. From the PiP design, respecify it at a higher level of abstraction that will reduce simulation time while not affecting the validity of the properties
  5. From the PiP design and its properties, identify several abstraction procedures that won't affect the validity of the properties.
  6. Generalize the abstraction procedures for stantard logic operators (e.g. LTL and LOC).

Expected Products:

A case study of safe abstraction for simulation trace checking (probably) using the PiP design by working at different abstraction.  Identify and Generalize the abstraction procedures for LTL and LOC logic operators on general MMM designs.

Reference:

 

9) Testing and synthesizing a configurable logic architecture for dynamic hardware/software partitioning

Mentor: Roman Lysecky (rlysecky@cs.ucr.edu); Frank Vahid (vahid@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)

Student: P. Vu

Goal:

Improvements in performance and power can be achieved with dynamic software optimizations.  Single-chip platforms with both microprocessors and configurable logic provide even greater optimizations.  Major software speedups and energy reduction result in hardware/software partitioning, implementing software as a hardware coprocessor on configurable logic.  Hardware/software partitioning can also be done at the binary-level with no requirement of special desktop tools.  Warp processing is the process of dynamically optimizing executing binary by moving software kernels to configurable logic.  Traditional FPGAs are not suited well for dynamic hardware/software partitioning. 

A configurable logic fabric and architecture has been designed by Roman Lysecky specifically for dynamic hardware/software partitioning and speeding up critical loops.  Through experiments with popular benchmarks, this configurable logic architecture, fabric and accompanying place and route algorithms have shown to be quicker and using less memory and power.  Research continues with this architecture and fabric.

Procedure:

  1. Study and understand the concepts and goals of dynamic hardware/software partitioning.
  2. Implement Roman Lysecky’s designed configurable logic architecture for dynamic hardware/software in VHDL, including CLB, looping HW, Memory interface, programmable interconnect...etc.  Synthesize it and check performance/power/size.
  3. Test the configurable logic architecture using various testbenches.
  4. Synthesize and map the configurable logic architecture onto a Xilinx FPGA, compare with the previous tests in terms of size, performance and power.
  5. Execute Xilinx chip with a stand-along processor.

Expected Products:

VHDL models and testbenches for the reconfigurable fabric that can be synthesized into ASIC or FPGA.  An example of HW/SW co-execution.

Reference: