Contents


Cover

Acknowledgments

Abstract

Introduction

1.1 - The Agents system
1.2 - Previous Work
1.2.1 - Knowledge based systems
1.2.2 - Search intensive algorithms
1.3 - Flexibility
1.3.1 - Object Oriented Programming
1.3.2 - Scalability
1.3.3 - Portability
1.3.4 - Ease of embedding
1.4 - Innovation
1.5 - Speed
1.6 - Main original contribution
1.7 - Structure of the work

Agents Object Oriented Structure

2.1 - Introduction
2.2 - Objects
2.3 - Class
2.4 - Inheritance
2.4.1 - Multiple inheritance
2.5 - Polymorphism
2.6 - Object Oriented Programming
2.6.1 - Objects
2.6.2 - Classes and instances
2.6.3 - Inheritance between classes
2.6.4 - Polymorphism
2.7 - Agents' basic structure
2.7.1 - The Object class
2.7.2 - Second hierarchical layer
2.7.3 - The other layers
2.7.4 - Design classes
2.7.5 - The Agents' library organization

Agent Objects

3.1 - Introduction
3.2 - Search and problems spaces
3.2.1 - The blocks world
3.3 - Problem search versus embedded knowledge
3.4 - The problem-space computational model
3.4.1 - Basics
3.4.2 - A blocks world example
3.4.3 - Selecting values
3.5 - Distributed reasoning
3.5.1 - The hive mind
3.5.2 - Defining behaviour systems
3.5.3 - Insect-like robots
3.6 - Implementation of Agent Objects
3.6.1 - Operation
3.6.2 - Distributed behaviour
3.7 - Why use the class Agent reasoning model?

Agent Servers

4.1 - Introduction
4.2 - Client/Server Model
4.3 - Software agents
4.3.1 - Communication
4.3.2 - The router and placer servers
4.4 - The Squeme language
4.4.1 - The process DataBase server
4.5 - Architecture of multi-agent systems
4.5.1 - The Knowledge Query and Manipulation Language
4.5.2 - The Broker server
4.5.3 - Development phase servers

Genetic Algorithm

5.1 - Introduction
5.2 - Optimization techniques
5.3 - The algorithm
5.3.1 - Crossover
5.3.2 - Mutation
5.3.3 - Problem dependent parameters
5.3.4 - Encoding
5.3.5 - The evaluation step
5.3.6 - Implementation

Placement

6.1 - Introduction
6.2 - The EDIF description
6.3 - Column formation
6.4 - Group formation
6.5 - The genetic algorithm placement
6.5.1 - Encoding
6.5.2 - Genetic operations
6.5.3 - Evaluation
6.5.4 - Classification
6.5.5 - The algorithm implementation
6.6 - The placement routing cycle

Routing

7.1 - Introduction
7.2 - The CAD role
7.2.1 - Retrieve methods
7.2.2 - Building methods
7.3 - The Designer role
7.4 - Router expert
7.4.1 - Connect in same layer
7.4.2 - Diffusion to metal openings
7.4.3 - Main connections
7.4.4 - Connecting a subnet
7.4.5 - The algorithm
7.4.6 - Rewiring
7.5 - Connection object agent
7.5.1 - The Connect agent operators
7.5.2 - The Change Direction operator
7.5.3 - The general operation

Results

8.1 - Introduction
8.2 - The BICMOS nand gate example
8.3 - The CMOS D latch example
8.4 - Running distributed and scalability
8.5 - Flexibility

Conclusion

9.1 - Overview
9.1.1 - Flexibility
9.1.2 - Innovation
9.1.3 - Speed
9.2 - Development opportunities
9.3 - Future research

References


List of Figures

Figure 2.1: Semantic gap.
Figure 2.2: The outside world view of an object.
Figure 2.3: Instances of class Man.
Figure 2.4: Classes inheritance.
Figure 2.5: Agents basic classes.
Figure 2.6: Components classes.
Figure 2.7: Agent's libraries files hierarchy.

Figure 3.1: A problem space
Figure 3.2: Preparation versus deliberation trade-off.
Figure 3.3: Flowchart of the problem space computational model.
Figure 3.4: Solving a blocks world problem.
Figure 3.5: Layers of a behaviour hierarchy.
Figure 3.6: Agent's structure
Figure 3.7: The decision cycle
Figure 3.8: Agents as a more complete solution.

Figure 4.1: Heterogeneous network.
Figure 4.2: Window of the Database server.
Figure 4.3: The negotiation between a client and the Broker.
Figure 4.4: Broker agent server window.
Figure 4.5: Graphic server's window.

Figure 5.1: Classes of search techniques.
Figure 5.2: The "reproduction" cycle.
Figure 5.3: Crossover.
Figure 5.4: Mutation.

Figure 6.1: Types of cells used by the Placer server.
Figure 6.2: Column formation process.
Figure 6.3: The grouping process.
Figure 6.4: Types of cell groups.
Figure 6.5: Coding schema.
Figure 6.6: Actual circuit placement.
Figure 6.7: Crossover in lists.
Figure 6.8: Correction of groups' placement.
Figure 6.9: Wiring estimation method.
Figure 6.10: Distribution of reproduction and death probabilities.
Figure 6.11: The "reproduction" cycle.
Figure 6.12: Placement/routing cycle.
Figure 6.13: A placed/wired design ready to be sent back to a client.

Figure 7.1: The Designer/CAD metaphor.
Figure 7.2: Crash and touch events.
Figure 7.3: A crash pointer.
Figure 7.4: A touch pointer.
Figure 7.5: Envelopes and closest wiring points.
Figure 7.6: Method for changing layers.
Figure 7.7: The basic maze routing.
Figure 7.8: Interesting points.
Figure 7.9: Circuit after straight diffusion and polysilicon connections.
Figure 7.10: Connect agents probing interesting points.
Figure 7.11: RouterExpert agent data structure.
Figure 7.12: Algorithm used by the connectSubnet method.
Figure 7.12: Possible error using partial rewiring.
Figure 7.13: Operators Goto XY and Go Round.
Figure 7.14: Operator Change Direction in action.
Figure 7.15: Change Direction operator touch blocked cases.
Figure 7.16: Completely routed circuit.

Figure 8.1: The BICMOS nand gate circuit.
Figure 8.2: BICMOS nmos gate handmade layout.
Figure 8.3: First generated layout for the BICMOS nand gate.
Figure 8.4: Second generated layout for the BICMOS nand gate.
Figure 8.5: The D latch circuit.
Figure 8.6: Latch symbolic layout.
Figure 8.7: Two generated layouts for the CMOS D latch circuit.
Figure 8.8: BICMOS nand gate with a pull-up resistor.
Figure 8.9: Generated layout of the nand gate with pull-up resistor.
Figure 8.10: CMOS D latch with central power lines.

List of Tables

Table 3.1: Rules' names code

Table 4.1: Placer and Router non-EDIF commands.
Table 4.2: Possible queries to a Database server.
Table 4.3: Default message parameters.
Table 4.4: KQML communication types.

Table 8.1: Agents system execution times.


Next Contents Talk to me