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