Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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