Title: Object-Oriented Modeling for System Level Design
1Object-Oriented Modeling for System Level Design
- Abdallah Tabbara
- Bassam Tabbara
- A. Richard Newton
- UC Berkeley
2Project Goals
- Model all aspects
- Behavior
- Communication
- Structure
- of a design block starting at the system level
- Support specification, verification, and synthesis
3Description
- Use an Object-Oriented methodology for modeling
designs at the system level - Object Modeling Technique (OMT) (Rumbaugh 91)
- Graphical design entry
- object model
- dynamic model
- functional model
- Visual debugging environment
- Specification can be verified, and synthesized
4Technology
- Objects
- Instantiation
- Encapsulation
- Methods for Communication
- Object-Oriented Input Specification
- OOP, simple, compact, intuitive
- implementation independent
- no side-effects
- Java define subset and policy
5Modeling Issues
- Hierarchy
- Communication
- Inputs
- Outputs
- Timing
- Blocks
- Combinational
- Sequential
6Object as the Building Block
- Basic unit of the hierarchy
- Methods
- Interface
- Communication
- Private Variables
- State
- Instances of other Objects
7Design Entry An Illustrative Example
- Handshake protocol between two processes
- Object Model
- Object Producer
- Object Consumer
- Object HandShake
8Design Specification An Illustrative Example (1)
- Dynamic Model
- describes the control aspects of a system
- Functional Model
- describes data value transformations
9Design Specification An Illustrative Example (2)
10Modeling in Java (1)
- class Producer extends Block
- private boolean Ready
-
- // Constructor
- public Producer(boolean i)
- Ready i
-
- // Methods
- public void ComputeReady(boolean Ack)
- Ready !Ack
- return(!Ack)
-
- public boolean ReadyStatus()
- return Ready
-
- class Consumer extends Block
- private boolean Ack
-
- // Constructor
- public Consumer(boolean i)
- Ack i
-
- // Methods
- public void ComputeAck(boolean Ready)
- Ack Ready
- return(Ready)
-
- public boolean AckStatus()
- return(Ack)
-
11Modeling in Java (2)
- class HandShake extends Block
-
- // State
- private int dataA, dataB
- // Internal Objects
- private Producer P
- private Consumer C
- // Constructor
- public HandShake()
- P new Producer(true)
- C new Consumer(false)
-
-
- // Methods
- public int Output(int data_in)
- if (P.ReadyStatus())
- dataA data
-
- if (C.AckStatus())
- dataB dataA
-
-
- // Latch
- P.ComputeReady(C.AckStatus())
- C.ComputeAck(P.ReadyStatus())
- return dataB
-
12Intermediate Design Representation
- Class File Intermediate Format (CFIF)
- Extracted from the Java Virtual Machine class
file format. - Each class file contains one Java type either a
class, or an interface. - CFIF output for the Producer in our example
follows
methods2.access_flags ACC_PUBLIC
methods2.name_index ReadyStatus methods2.des
criptor_index ()Z methods2.attributes_count
1 methods2.attributes0.name_index
Code methods2.attributes0.max_stack
1 methods2.attributes0.max_locals
1 methods2.attributes0.code_length
5 methods2.attributes0.code0
aload_0 methods2.attributes0.code1
getfield -gt A Ready Z methods2.attributes0.cod
e4 ireturn ...
access_flags this_class Producer super_class
Block interfaces_count 0 fields_count
1 fields0.access_flags ACC_PRIVATE
fields0.name_index Ready fields0.descriptor_
index Z fields0.attributes_count
0 methods_count 3
13Advantages of This Approach
- Increased Productivity
- HDL Lines per week
- Intuitive Specification
- Ease of Design Space Exploration
- Block Level Methodology
- better design reuse
- Validation at the High Level
- Potential for Formal Verification
14Future Work
- Incorporate Design
- Validation (simulation)
- Verification (formal)
- Synthesis from CFIF
- Hardware
- Software
FOR MORE INFO...
Abdallah Tabbara atabbara_at_eecs.berkeley.edu Bassa
m Tabbara tbassam_at_eecs.berkeley.edu