Difference between revisions of "Design Partitioning"

From EUDP
Jump to: navigation, search
(Why)
(How)
Line 13: Line 13:
 
The process of partitioning a design can have multiple approaches, depending on the prerequisites.
 
The process of partitioning a design can have multiple approaches, depending on the prerequisites.
  
A good starting point for performing partitioning would be to take a look at the block diagram.
+
A good starting point for performing partitioning would be to take a look at the block diagram, and discuss whether each functional block has responsibility for enough, or too much functionality in the system.
 
+
 
A correct block diagram represents all the functional blocks in your design, each fulfilling a part of the systems functionality.
 
A correct block diagram represents all the functional blocks in your design, each fulfilling a part of the systems functionality.
 
The obvious advantage of splitting functionality into small manageable blocks is: '''simplicity'''.
 
The obvious advantage of splitting functionality into small manageable blocks is: '''simplicity'''.
  
 
Small blocks are '''much''' easier to constrain, to implement and verify and to reuse in future projects.
 
Small blocks are '''much''' easier to constrain, to implement and verify and to reuse in future projects.
 +
 +
When dividing your systems to be into functional blocks, expect to du multiple iteration, where you describe the desired functionality in each block and model its interfaces.
 +
A simple thing like naming the blocks meaningfully, can often be a topic for repeated discussion, but should not be neglected. A block-name gives your reader a quick impression about the functionality one can expect. 
  
 
With an overview of the blocks in the diagram, now take a look at the system constraints.
 
With an overview of the blocks in the diagram, now take a look at the system constraints.

Revision as of 07:35, 30 October 2015

What

Assigning responsibility and functionality to blocks and components within the entire system, thus resulting in updated block and component diagrams.

How

Ingredients

  • One or more drafts of the blockdiagram of your system-to-be
  • System requirements and design constraints

Process

The process of partitioning a design can have multiple approaches, depending on the prerequisites.

A good starting point for performing partitioning would be to take a look at the block diagram, and discuss whether each functional block has responsibility for enough, or too much functionality in the system.

A correct block diagram represents all the functional blocks in your design, each fulfilling a part of the systems functionality. The obvious advantage of splitting functionality into small manageable blocks is: simplicity.

Small blocks are much easier to constrain, to implement and verify and to reuse in future projects.

When dividing your systems to be into functional blocks, expect to du multiple iteration, where you describe the desired functionality in each block and model its interfaces. A simple thing like naming the blocks meaningfully, can often be a topic for repeated discussion, but should not be neglected. A block-name gives your reader a quick impression about the functionality one can expect.

With an overview of the blocks in the diagram, now take a look at the system constraints.

The difference between requirements and constraints can be identified as follows:

  • Requirements are used for design and verification of all blocks in a design.
  • Constraints defines overall behaviour and guidelines for the system-to-be to conform to.

Why

Design Partitioning is an essential part of the system architecture.

Modeling the system architecture is an activity composed of:

  • Modeling the block diagram
  • Partitioning the design
  • Assessing the design's constraints
  • rewriting functional descriptions and refining interfaces between blocks, until you have a system architecture, that balances well with the system to be's architecture.

After performing partitioning (probably more than one try), it should end up with the final blueprint for the design, i.e. the system architecture.

Example

The constraints can be of diverse nature. Examples could be:

  • The device must have a maximum production price of $3.
  • The lifetime of the device must be a minimum 25 years.
  • The device must be field-upgradable without disassembly.
  • The device must be build around an NXP lpc2478 ARM7 CPU.
  • The device must be able to accommodate future feature add-ons.

A production price of $3 implies certain restrictions on the selection of components from which to build the platform. I.e it would probably be necessary to select a low-cost, targeted microcontroller that matches the immediate needs, instead of reusing the large microcontroller platform already known.

A lifetime of 25 years implies selecting hardware with great care, paying special attention to temperature ratings, lifetime, de-rating usage parameters, etc.

Field-upgradability leads to design with network connectability.