Presentation on Evolutionary Hardware and My Project (11-15-04)

Download Report

Transcript Presentation on Evolutionary Hardware and My Project (11-15-04)

Evolutionary Hardware
Dmitry Berenson
What is Evolutionary
Hardware?







Automated Digital Circuit Design
Automated Analog Circuit Design
Automated VLSI Layout Design
Automated Filter Design
Automated Controller Design
Automated Antenna Design
Fault Tolerance
Previous Work




Adrian Thompson (1996) –
FPGA Tone Discriminator
Layzell et al. (1998) –
Evolvable Motherboard
Flockton and Sheenan (1998) –
Intrinsic Evolution of analog
circuits on Zetex TRAC chip
Stoica and Zebulum (20022003) – FPTA and SABLES
Our Goals

Evolve a circuit to perform a given task

Perform on-chip evolution

Introduce new FPAA (Anadigm) to
research community
Why Do Analog?

Analog circuit design is more of an art than a science.
– That means it’s really hard.

Software simulation has problems
– Solving circuit equations (differential) takes a lot of CPU time.
– Software is still inaccurate
– There is an accuracy-to-speed tradeoff for simulation
The Setup

FPAA
– Anadigm AN221E04
– Lattice ispPAC30

Computer
–
–
–
–

Gets Samples
Computes Fitness
Runs Genetic Algorithm
Programs FPAA
A/D Converter
– Dataq DI-158U
The Setup
Anadigm Chip - Features




Circuits created according to
routing table
Uses Configurable Analog
Blocks (CAB)
Dynamically Reprogramable
(SRAM)
CABs can contain multiple
modules
Anadigm Chip - Modules

Modules (CAMs) are software “blocks”

Modules correspond to routings in hardware

28 Modules Total

Each Module has it’s own settings
– This will be hard to work with
when doing evolution
List of Modules
Anadigm Chip - Procedure

Place modules

Make connections
– Another problem: some blocks
have more than 2 connections


Download to chip
Placement/Connections can be
automated through C++
commands
– “Not Officially Released”
Anadigm Designer Interface
Anadigm Chip – Search Space

A CAB can only hold 2-3 modules (CAMs)
– a safe number of total modules is around 6

Search space is roughly:
(28^6)(Connections)(Module Specific Options) = Big

The plan: have 6 modules, evolve their type, settings and
interconnections
Current Status

A/D converter sampling and FPAA iterative programming all
running from one MFC application

Ready to start running Genetic Algorithms

Want to start small (only a couple CAMs)
Your Suggestions

Representation
– Individuals with 6 genes.

Gene: (CAM type, connection 1, connection 2, setting 1, setting 2…)
– Variable Length Strings?
– Keeping track of CAM types – options and connections
– Linkage – any block that has a path to output affects all other
blocks following in that path
– Fitness Function – sum of errors

Applications
– Controller
– Filter
– Arbitrary Function