WO1999053530A2 - System and method for evaluating genetic programming parse-trees - Google Patents

System and method for evaluating genetic programming parse-trees Download PDF

Info

Publication number
WO1999053530A2
WO1999053530A2 PCT/US1999/008048 US9908048W WO9953530A2 WO 1999053530 A2 WO1999053530 A2 WO 1999053530A2 US 9908048 W US9908048 W US 9908048W WO 9953530 A2 WO9953530 A2 WO 9953530A2
Authority
WO
WIPO (PCT)
Prior art keywords
primitive
parse
tree
loading
fpga chip
Prior art date
Application number
PCT/US1999/008048
Other languages
French (fr)
Other versions
WO1999053530A3 (en
Inventor
Robert L. Popp
David J. Montana
Gordon Vidaver
Suraj Iyer
Sean S. B. Moore
Original Assignee
Gte Internetworking Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gte Internetworking Incorporated filed Critical Gte Internetworking Incorporated
Publication of WO1999053530A2 publication Critical patent/WO1999053530A2/en
Publication of WO1999053530A3 publication Critical patent/WO1999053530A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Definitions

  • the present invention relates to methods and systems for evaluating genetic programming parse-trees and, more particularly, to methods and systems for evaluating parse-trees using a field programmable gate array (FPGA) chip.
  • FPGA field programmable gate array
  • a circuit designer may develop a wide number of possible hardware design solutions.
  • the number of hardware designs that the designer may arrive at are limited by the designer's skill and experience.
  • hardware designs developed by a human designer are often based on simplified models that are prone to inconsistencies and inaccuracies for more complex applications.
  • Logic synthesis tools transform a higher-level design description of hardware (e.g., a VHDL behavioral-level model) to a structural description of the hardware (e.g., a gate-level netlist description).
  • Logic synthesis tools can typically back-annotate timing, power, or area usage constraints directly to a VHDL source code. The transformation often occurs indirectly via Boolean logic equations, and various optimizations can be performed on the mapping of the logic equations, the equations themselves, or on the netlist after the mapping to device cells.
  • Hardware designers use simulation tools to verify that the logic structures in a behavioral-level and gate -level netlist description of hardware design is correct and to verify that the intended functionality, timing and area constraints are met.
  • Current VHDL simulation tools can support timing propagation delays, accurate wire interconnect delays, and conditional timing constraint checks.
  • FPGA place and route tools are used to place and route (i.e., map) the logic corresponding to the synthesized gate-level netlist description on an FPGA device itself. These tools may evaluate and verify the reliability, accuracy and timing of FPGA logic when physically realized on an actual device. These tools may also verify chip-level pin interconnect strategies.
  • FPGA logic download tools can program, on an FPGA device, the logic that is generated by the FPGA place and route tools. This logic would correspond to the hardware description after being transformed from a behavioral-level model to a format for loading on the FPGA device.
  • a genetic programming parse-tree evaluation system consistent with the present invention uses a field programmable gate array (FPGA) chip to evaluate the parse-tree. The system then provides a primitive transformed from a parse-tree into a format for loading on the FPGA chip.
  • FPGA field programmable gate array
  • the system then loads the primitive on the FPGA chip to evaluate the primitive according to input data corresponding to data executed by the primitive.
  • the system then provides a result of the evaluation of the loaded primitive.
  • Fig. 1 is a block diagram of a GP parse-tree evaluating system consistent with the present invention
  • Fig. 2 illustrates a simplified example of a GP parse-tree that may be evaluated and scored by the GP parse-tree evaluating system of Fig. 1;
  • Fig. 3 is a flow diagram of a method consistent with the present invention for evaluating and scoring a parse-tree.
  • Methods and systems consistent with the invention evaluate parse-trees generated by a genetic programming (GP) processing engine.
  • GP parse-tree represents a possible hardware design to solve a particular design problem.
  • the GP processing engine typically generates a multiple of GP parse-trees.
  • each parse-tree further includes a plurality of nodes.
  • a GP primitive represents the logic of a node of the parse-tree that executes a logical operation.
  • the system evaluates nodes of the parse-tree by loading the corresponding GP primitives on a field programmable gate array (FPGA) chip. The FPGA then executes the GP primitive using the data processed by that node of the parse-tree.
  • the GP parse-tree evaluation system can then evaluate the parse-tree in a node-by-node manner.
  • Fig. 1 is a block diagram of a GP parse-tree evaluating system 100 consistent with the present invention.
  • GP parse-tree evaluating system 100 includes a computer 110 communicating with a printed circuit board (PCB) 120 over a bus 125. While computer 110 preferably evaluates parse-tree primitives loaded on PCB 120, alternative embodiments may include a PCB having an on-board processor for evaluating the loaded primitives.
  • PCB printed circuit board
  • Computer 110 further includes a GP processing engine 112, a very high speed integrated circuit hardware description language (VHDL) toolset 114, an FPGA primitive database 116, and an evaluation and scoring unit 118.
  • GP processing engine 112 and evaluation and scoring unit 118 are computer programs resident on computer 110. Such programs may be written in object-oriented languages, such as C++, or non-object-oriented languages.
  • GP processing engine 112 generates GP parse-trees using genetic algorithm or GP processing techniques known to those skilled in the art, such as those disclosed in "Genetic Programming", John R. Koza, MIT Press, Cambridge, Massachusetts,
  • Each GP parse-tree represents a computer algorithm for solving a predefined problem.
  • Fig. 2 illustrates a simplified example of a GP parse-tree that may be evaluated and scored by a GP parse-tree evaluating system consistent with the present invention.
  • Each node of the tree represents either an operator (i.e., +, -, *, or -) or an operand (i.e., A, B, C, D, or E) of the equation.
  • GP primitives are the logic of nodes of the parse-tree that execute a logical operation.
  • the GP primitives are the nodes corresponding to one of the operators of the equation.
  • the parse-tree of Fig. 2 has a root node that corresponds to the node having the GP primitive "+" as its value. This root node has two children, namely, the left subtree with the GP primitive "*" as the value of its root node and the right subtree with the GP primitive "/" as the value of its root node.
  • the GP parse-tree evaluating system executes the GP primitive "*"
  • the GP primitive will multiply the data of operands A and B.
  • the result of GP primitive "*" is then passed to the GP primitive "+” for addition with the result of the GP primitive "/", corresponding to the right subtree.
  • VHDL toolset 114 contains VHDL transformation tools for transforming a GP primitive into an FPGA program file equivalent to the GP primitive.
  • the GP primitive is first transformed into a VHDL program specification.
  • VHDL program specification is then transformed into a gate-level netlist, which is then transformed into a technology-specific FPGA(s) description using an FPGA place and route tool.
  • a PCB schematic capture tool transforms the technology-specific FPGA(s) description into the FPGA program file capable of being loaded on an FPGA chip.
  • systems consistent with the invention may perform these transformations on-line as well.
  • FPGA primitive database 116 stores the generated FPGA program files for the entire set of GP primitives included in parse-trees generated by GP processing engine 112.
  • Evaluation and scoring unit 118 evaluates each node of a parse-tree generated by GP processing engine 112 and computes a score for that parse-tree after all nodes have been evaluated.
  • Evaluation and scoring unit 118 computes the score or fitness measure of the parse-tree using well known GP techniques, such as those disclosed in "Genetic Programming", John R. Koza, MIT Press, Cambridge, Massachusetts, (1992).
  • PCB 120 further includes an FPGA chip 122 and a communication interface 124.
  • FPGA chip 122 is preferably a commercial off-the-shelf FPGA chip that can be reprogrammed by computer processor 110.
  • FPGA chip 122 receives, through communication interface 124, FPGA primitives from primitive database 116 over bus 125. Each primitive reprograms FPGA chip 122 to model different types of hardware configurations that execute the logic of the respective primitive.
  • Communication interface 124 sends to evaluation and scoring unit 116, over bus
  • Fig. 3 is a flow diagram of a method consistent with the present invention for evaluating and scoring a parse-tree.
  • the method begins with evaluation and scoring unit 118 determining whether the GP primitive of a respective node of the parse-tree is loaded on the FPGA chip 122 (step 305). If the GP primitive is not loaded on FPGA chip 122, then computer 1 10, via communication interface 124, loads the FPGA program file from FPGA primitive database 116 that corresponds to the GP primitive (step 310).
  • Evaluation and scoring unit 118 preferably determines which node to evaluate, and thus which GP primitives are to be loaded, using standard recursive tree traversal techniques, such as pre-fix, post-fix, and in-fix order.
  • computer 1 10 may load more than one GP primitive, or even all the GP primitives of the parse-tree, on FPGA chip 122 at a time when FPGA chip 122 has enough memory space available.
  • computer 110 loads the GP primitive(s) corresponding to the node(s) to be evaluated next by GP parse-tree evaluation system 100.
  • FPGA database 116 preferably stores each GP primitive in a memory page using a paging scheme known to those skilled in the art.
  • Each memory page is an FPGA data file that can be loaded onto FPGA chip 122. Further, each memory page may include more than one GP primitive.
  • a GP primitive required to evaluate a particular node may be stored on a page already loaded onto FPGA chip 122.
  • a paging scheme also allows evaluation and scoring unit 118 to load a plurality of GP primitives onto FPGA chip 122 at the same time.
  • GP processing engine 112 then loads input data on FPGA chip 122, via communication interface 124, for the node being evaluated (step 315).
  • Evaluation and scoring unit 118 evaluates parse-trees node-by-node. Accordingly, the loaded input data is the data processed by a GP primitive at a node of the parse-tree under evaluation.
  • the GP processing engine 112 would load data A and B when the GP parse-tree evaluating system is evaluating the node having the GP primitive "*" as its value.
  • FPGA chip 122 executes the GP primitive using the inputted test data and evaluation and scoring unit 118 scores the results (step 320).
  • the results of the GP primitive are first stored in a buffer resident on FPGA chip 122.
  • the buffered result data is then sent, via communication interface 124, to evaluation and scoring unit 118.
  • Evaluation and scoring unit 118 stores the results of each node in a memory (not shown) for possible use as input data when evaluating a node higher up on the parse-tree.
  • Evaluation and scoring unit 118 determines whether all input data has been input to FPGA chip 122 for execution by the GP primitive loaded thereon (step
  • evaluation and scoring unit 118 determines whether there exists another node in the parse-tree having the same GP primitive as its value. If so, processing returns to step 315 where GP processing engine 1 12 loads the required input data for this node on FPGA chip 122, via communication interface 124.
  • evaluation and scoring unit 118 determines whether all nodes of the parse-tree have been evaluated (step 330). If not, processing returns to step 305 where evaluation and scoring unit 118 determines whether the GP primitive of the next node to be evaluated is loaded on FPGA chip 122. Otherwise, evaluation and scoring unit 118 outputs the results to GP processing engine 112 (step 335). GP processing engine 112 then evaluates the results of the parse-tree using GP or genetic algorithm techniques known to those skilled in the art, such as those disclosed in "Genetic Programming", John R. Koza, MIT Press, Cambridge, Massachusetts, (1992). For the parse-tree of Fig.
  • the result of the parse tree would be the result of the root node having the GP primitive "+" as its value.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Stored Programmes (AREA)

Abstract

Systems and methods consistent with the invention evaluate genetic programming (GP) parse-trees. The system evaluates parse-trees using a field programmable gate array (FPGA) chip (122). The system first provides a primitive transformed from a parse-tree into a format for loading on the FPGA chip (122). The system then loads the primitive on the FPGA chip (122) to evaluate the primitive according to input data corresponding to data executed by the primitive. The system then provides a result of the evaluation of the loaded primitive.

Description

SYSTEM AND METHOD FOR EVALUATING GENETIC PROGRAMMING PARSE-TREES
Technical Field The present invention relates to methods and systems for evaluating genetic programming parse-trees and, more particularly, to methods and systems for evaluating parse-trees using a field programmable gate array (FPGA) chip.
Background Art
As the size of large scale integrated circuits has increased in recent years, design of digital circuits including integrated circuits has become very complicated.
For any particular application, a circuit designer may develop a wide number of possible hardware design solutions. However, the number of hardware designs that the designer may arrive at are limited by the designer's skill and experience. In particular, hardware designs developed by a human designer are often based on simplified models that are prone to inconsistencies and inaccuracies for more complex applications.
To assist hardware designers in the development process, automated design systems have been developed, such as logic synthesis tools, timing correctness tools, and place and route tools. Logic synthesis tools transform a higher-level design description of hardware (e.g., a VHDL behavioral-level model) to a structural description of the hardware (e.g., a gate-level netlist description). Logic synthesis tools can typically back-annotate timing, power, or area usage constraints directly to a VHDL source code. The transformation often occurs indirectly via Boolean logic equations, and various optimizations can be performed on the mapping of the logic equations, the equations themselves, or on the netlist after the mapping to device cells.
Hardware designers use simulation tools to verify that the logic structures in a behavioral-level and gate -level netlist description of hardware design is correct and to verify that the intended functionality, timing and area constraints are met. Current VHDL simulation tools can support timing propagation delays, accurate wire interconnect delays, and conditional timing constraint checks.
Field programmable gate array (FPGA) place and route tools are used to place and route (i.e., map) the logic corresponding to the synthesized gate-level netlist description on an FPGA device itself. These tools may evaluate and verify the reliability, accuracy and timing of FPGA logic when physically realized on an actual device. These tools may also verify chip-level pin interconnect strategies.
FPGA logic download tools can program, on an FPGA device, the logic that is generated by the FPGA place and route tools. This logic would correspond to the hardware description after being transformed from a behavioral-level model to a format for loading on the FPGA device.
However, each of these automated design systems and tools are dependent upon data entered by the user, such as data specifying initial settings of the automation process. If the designs developed by the automated design system are inadequate, the user must change these initial settings to hopefully produce more optimal solutions. Thus, these automated design systems are still constrained by the skill of the human designer.
Therefore, it is desired to have a system and method for automatically designing a hardware design without intervention by a user and that can operate at a high speed. Diclosure of Invention
Systems and methods consistent with the present invention automatically determine hardware designs without user intervention and at a high speed. To achieve these and other advantages, a genetic programming parse-tree evaluation system consistent with the present invention uses a field programmable gate array (FPGA) chip to evaluate the parse-tree. The system then provides a primitive transformed from a parse-tree into a format for loading on the FPGA chip.
The system then loads the primitive on the FPGA chip to evaluate the primitive according to input data corresponding to data executed by the primitive. The system then provides a result of the evaluation of the loaded primitive. Both the foregoing general description and the following Detailed
Description are exemplary and are intended to provide further explanation of the invention as claimed.
Brief Description Of The Drawings
In the drawings: Fig. 1 is a block diagram of a GP parse-tree evaluating system consistent with the present invention;
Fig. 2 illustrates a simplified example of a GP parse-tree that may be evaluated and scored by the GP parse-tree evaluating system of Fig. 1; and
Fig. 3 is a flow diagram of a method consistent with the present invention for evaluating and scoring a parse-tree.
Best Mode for Carrying Out the Invention
A. Introduction
Methods and systems consistent with the invention evaluate parse-trees generated by a genetic programming (GP) processing engine. A GP parse-tree represents a possible hardware design to solve a particular design problem. The GP processing engine typically generates a multiple of GP parse-trees. Using standard
GP techniques, the system then evaluates and scores each parse-tree to eventually determine a parse-tree that represents the optimal solution for solving the design problem. Each GP parse-tree further includes a plurality of nodes. A GP primitive represents the logic of a node of the parse-tree that executes a logical operation. In systems consistent with the invention, the system evaluates nodes of the parse-tree by loading the corresponding GP primitives on a field programmable gate array (FPGA) chip. The FPGA then executes the GP primitive using the data processed by that node of the parse-tree. The GP parse-tree evaluation system can then evaluate the parse-tree in a node-by-node manner. B. System Organization
Fig. 1 is a block diagram of a GP parse-tree evaluating system 100 consistent with the present invention. As shown in Fig. 1, GP parse-tree evaluating system 100 includes a computer 110 communicating with a printed circuit board (PCB) 120 over a bus 125. While computer 110 preferably evaluates parse-tree primitives loaded on PCB 120, alternative embodiments may include a PCB having an on-board processor for evaluating the loaded primitives.
Computer 110 further includes a GP processing engine 112, a very high speed integrated circuit hardware description language (VHDL) toolset 114, an FPGA primitive database 116, and an evaluation and scoring unit 118. In systems consistent with the invention, GP processing engine 112 and evaluation and scoring unit 118 are computer programs resident on computer 110. Such programs may be written in object-oriented languages, such as C++, or non-object-oriented languages. GP processing engine 112 generates GP parse-trees using genetic algorithm or GP processing techniques known to those skilled in the art, such as those disclosed in "Genetic Programming", John R. Koza, MIT Press, Cambridge, Massachusetts,
(1992). Each GP parse-tree represents a computer algorithm for solving a predefined problem.
For purposes of discussion, Fig. 2 illustrates a simplified example of a GP parse-tree that may be evaluated and scored by a GP parse-tree evaluating system consistent with the present invention. In particular, Fig. 2 shows a parse-tree representing a computer algorithm for solving the equation F = (A*B) + C/(D+E). Each node of the tree represents either an operator (i.e., +, -, *, or -) or an operand (i.e., A, B, C, D, or E) of the equation.
GP primitives are the logic of nodes of the parse-tree that execute a logical operation. In the example of Fig. 2, the GP primitives are the nodes corresponding to one of the operators of the equation. The parse-tree of Fig. 2 has a root node that corresponds to the node having the GP primitive "+" as its value. This root node has two children, namely, the left subtree with the GP primitive "*" as the value of its root node and the right subtree with the GP primitive "/" as the value of its root node. When the GP parse-tree evaluating system executes the GP primitive "*", the GP primitive will multiply the data of operands A and B. The result of GP primitive "*" is then passed to the GP primitive "+" for addition with the result of the GP primitive "/", corresponding to the right subtree.
Returning to Fig. 1, VHDL toolset 114 contains VHDL transformation tools for transforming a GP primitive into an FPGA program file equivalent to the GP primitive. In particular, the GP primitive is first transformed into a VHDL program specification. Using a VHDL synthesis tool, the VHDL program specification is then transformed into a gate-level netlist, which is then transformed into a technology-specific FPGA(s) description using an FPGA place and route tool. Finally, a PCB schematic capture tool transforms the technology-specific FPGA(s) description into the FPGA program file capable of being loaded on an FPGA chip. Each of these transformations are known in the art and are performed off-line.
However, systems consistent with the invention may perform these transformations on-line as well.
FPGA primitive database 116 stores the generated FPGA program files for the entire set of GP primitives included in parse-trees generated by GP processing engine 112. Evaluation and scoring unit 118 evaluates each node of a parse-tree generated by GP processing engine 112 and computes a score for that parse-tree after all nodes have been evaluated. Evaluation and scoring unit 118 computes the score or fitness measure of the parse-tree using well known GP techniques, such as those disclosed in "Genetic Programming", John R. Koza, MIT Press, Cambridge, Massachusetts, (1992).
PCB 120 further includes an FPGA chip 122 and a communication interface 124. FPGA chip 122 is preferably a commercial off-the-shelf FPGA chip that can be reprogrammed by computer processor 110. FPGA chip 122 receives, through communication interface 124, FPGA primitives from primitive database 116 over bus 125. Each primitive reprograms FPGA chip 122 to model different types of hardware configurations that execute the logic of the respective primitive. Communication interface 124 sends to evaluation and scoring unit 116, over bus
125, results of each primitive computed by FPGA chip 122. B. Method Process
Fig. 3 is a flow diagram of a method consistent with the present invention for evaluating and scoring a parse-tree. As shown in Fig. 3, the method begins with evaluation and scoring unit 118 determining whether the GP primitive of a respective node of the parse-tree is loaded on the FPGA chip 122 (step 305). If the GP primitive is not loaded on FPGA chip 122, then computer 1 10, via communication interface 124, loads the FPGA program file from FPGA primitive database 116 that corresponds to the GP primitive (step 310). Evaluation and scoring unit 118 preferably determines which node to evaluate, and thus which GP primitives are to be loaded, using standard recursive tree traversal techniques, such as pre-fix, post-fix, and in-fix order. Additionally, computer 1 10 may load more than one GP primitive, or even all the GP primitives of the parse-tree, on FPGA chip 122 at a time when FPGA chip 122 has enough memory space available. In such a case, computer 110 loads the GP primitive(s) corresponding to the node(s) to be evaluated next by GP parse-tree evaluation system 100. FPGA database 116 preferably stores each GP primitive in a memory page using a paging scheme known to those skilled in the art. Each memory page is an FPGA data file that can be loaded onto FPGA chip 122. Further, each memory page may include more than one GP primitive. By using such a paging scheme, the amount of overhead associated with repetitively loading GP primitives can be reduced. For instance, a GP primitive required to evaluate a particular node may be stored on a page already loaded onto FPGA chip 122. Thus, the need to load that GP primitive is eliminated. A paging scheme also allows evaluation and scoring unit 118 to load a plurality of GP primitives onto FPGA chip 122 at the same time. GP processing engine 112 then loads input data on FPGA chip 122, via communication interface 124, for the node being evaluated (step 315). Evaluation and scoring unit 118 evaluates parse-trees node-by-node. Accordingly, the loaded input data is the data processed by a GP primitive at a node of the parse-tree under evaluation. For the parse-tree of Fig. 2, for example, the GP processing engine 112 would load data A and B when the GP parse-tree evaluating system is evaluating the node having the GP primitive "*" as its value.
Once the input data has been loaded, FPGA chip 122 executes the GP primitive using the inputted test data and evaluation and scoring unit 118 scores the results (step 320). Typically, the results of the GP primitive are first stored in a buffer resident on FPGA chip 122. The buffered result data is then sent, via communication interface 124, to evaluation and scoring unit 118. Evaluation and scoring unit 118 stores the results of each node in a memory (not shown) for possible use as input data when evaluating a node higher up on the parse-tree.
Evaluation and scoring unit 118 then determines whether all input data has been input to FPGA chip 122 for execution by the GP primitive loaded thereon (step
325). More specifically, evaluation and scoring unit 118 determines whether there exists another node in the parse-tree having the same GP primitive as its value. If so, processing returns to step 315 where GP processing engine 1 12 loads the required input data for this node on FPGA chip 122, via communication interface 124.
If all input data has been processed, evaluation and scoring unit 118 then determines whether all nodes of the parse-tree have been evaluated (step 330). If not, processing returns to step 305 where evaluation and scoring unit 118 determines whether the GP primitive of the next node to be evaluated is loaded on FPGA chip 122. Otherwise, evaluation and scoring unit 118 outputs the results to GP processing engine 112 (step 335). GP processing engine 112 then evaluates the results of the parse-tree using GP or genetic algorithm techniques known to those skilled in the art, such as those disclosed in "Genetic Programming", John R. Koza, MIT Press, Cambridge, Massachusetts, (1992). For the parse-tree of Fig. 2, for example, the result of the parse tree would be the result of the root node having the GP primitive "+" as its value. Here, the result of GP primitive "+" would be equal to the value of the equation F = (A*B) + C/(D+E).
C. Conclusion
It will be apparent to those skilled in the art that various modifications and variations can be made to the system and method of the present invention without departing from the spirit or scope of the invention. The present invention covers the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents.

Claims

Claims;
1. A method for evaluating a parse-tree using a field programmable gate array (FPGA) chip, the method comprising the steps of: providing a primitive transformed from a parse-tree into a format for loading on the FPGA chip; receiving input data corresponding to data executed by the primitive; loading the primitive on the FPGA chip to evaluate the primitive according to the input data; and providing a result of the evaluation of the loaded primitive.
2. The method of claim 1, wherein the step of loading the primitive includes the following substeps: determining whether the primitive is already loaded on the FPGA chip; and loading the primitive on the FPGA chip when the primitive is not already loaded on the FPGA chip.
3. The method of claim 1, wherein the parse- tree includes a plurality of interconnected nodes, and wherein the step of loading the primitive includes the following substep: determining which node of the parse-tree to evaluate using a recursive tree traversal technique.
4. The method of claim 1 , further including the step of: storing the transformed primitive in a memory using a paging scheme.
5. The method of claim 4, wherein the storing step further includes the following substep: storing a transformed primitive for each primitive occurring in the parse-tree.
6. The method of claim 1 , wherein the parse-tree includes a plurality of interconnected nodes, and wherein the step of loading the primitive includes the following substeps: determining whether any other nodes of the parse-tree correspond to the transformed primitive loaded on the FPGA chip; and loading input data for other nodes of the parse-tree corresponding to the transformed primitive loaded on the FPGA chip.
7. A system for evaluating a parse-tree using a field programmable gate array (FPGA) chip, the system comprising: means for providing a primitive transformed from a parse-tree into a format for loading on the FPGA chip; means for receiving input data corresponding to data executed by the primitive; means for loading the primitive on the FPGA chip to evaluate the primitive according to the input data; and means for providing a result of the evaluation of the loaded primitive.
8. The system of claim 7, wherein the means for loading the primitive further includes: means for determining whether the primitive is already loaded on the FPGA chip; and means for loading the primitive on the FPGA chip when the primitive is not already loaded on the FPGA chip.
9. The system of claim 7, wherein the parse-tree includes a plurality of interconnected nodes, and wherein the means for loading the primitive further includes: means for determining which node of the parse-tree to evaluate using a recursive tree traversal technique.
10. The system of claim 7, further including: means for storing the transformed primitive in a memory using a paging scheme.
11. The system of claim 10, wherein the means for storing further includes: means for storing a transformed primitive for each primitive occurring in the parse-tree.
12. The system of claim 7, wherein the parse-tree includes a plurality of interconnected nodes, and wherein the means for loading the primitive further includes: means for determining whether any other nodes of the parse-tree correspond to the transformed primitive loaded on the FPGA chip; and means for loading input data for other nodes of the parse-tree corresponding to the transformed primitive loaded on the FPGA chip.
PCT/US1999/008048 1998-04-13 1999-04-13 System and method for evaluating genetic programming parse-trees WO1999053530A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US5878698A 1998-04-13 1998-04-13
US09/058,786 1998-04-13

Publications (2)

Publication Number Publication Date
WO1999053530A2 true WO1999053530A2 (en) 1999-10-21
WO1999053530A3 WO1999053530A3 (en) 2000-03-02

Family

ID=22018916

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/008048 WO1999053530A2 (en) 1998-04-13 1999-04-13 System and method for evaluating genetic programming parse-trees

Country Status (1)

Country Link
WO (1) WO1999053530A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6668359B1 (en) * 2001-10-31 2003-12-23 Lsi Logic Corporation Verilog to vital translator

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867397A (en) * 1996-02-20 1999-02-02 John R. Koza Method and apparatus for automated design of complex structures using genetic programming

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867397A (en) * 1996-02-20 1999-02-02 John R. Koza Method and apparatus for automated design of complex structures using genetic programming

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
1997 Project Summary: EvolvaWare. BBN Systems and Technologies. http://www. darpa.mil/ito/Summaries97/F287_0.html. number of pages 2, XP002924519 *
KOZA J.R. et al., "Evolving Sorting Networks Using Genetic Programming and the Rapidly Reconfigurable Field-Programmable Gate Arrays. Workshop on Evolvable Systems", International Joint Conference on Artificial Intelligence. HIGUCHI T. (editor). 1997, pages 27-32, XP002924517. *
MICCIO C. et al., Parallel Genetic Programming Induction of Binary Decision Diagrams. Supercomputing Review: Numerical Simulation for Science and Technology. EPFL November 1995, No. 7, (retrieved from Internet: http://www.epfl.ch/SIC/ publications/SCR95/7-95-24a.html, XP002924520. *
MONTANA D. ET AL.: 'EvolvaWare: Genetic Programming for Optimal Design of Hardware-Based Algorithms' PROCEEDINGS OF THE THIRD ANNUAL CONFERENCE ON GENETIC PROGRAMMING. 1998, page 6, XP002924518 *
POPP R.L. ET AL.: 'Automated Hardware Design Using Genetic Programming, VHDL and FPGAs' IEEE INTERNATIONAL CONFERENCE ON SYSTEMS, MAN AND CYBERNETICS. vol. 3, October 1998, pages 2184 - 2189, XP002924516 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6668359B1 (en) * 2001-10-31 2003-12-23 Lsi Logic Corporation Verilog to vital translator

Also Published As

Publication number Publication date
WO1999053530A3 (en) 2000-03-02

Similar Documents

Publication Publication Date Title
US6175946B1 (en) Method for automatically generating checkers for finding functional defects in a description of a circuit
CN1885295B (en) Building integrated circuits using logical units
EP1093619B1 (en) System and method for identifying finite state machines and verifying circuit designs
US7299155B2 (en) Method and apparatus for decomposing and verifying configurable hardware
US8719742B2 (en) Conversion of circuit description to an abstract model of the circuit
US4677587A (en) Program simulation system including means for ensuring interactive enforcement of constraints
US8117576B2 (en) Method for using an equivalence checker to reduce verification effort in a system having analog blocks
US6425116B1 (en) Automated design of digital signal processing integrated circuit
US5471398A (en) MTOL software tool for converting an RTL behavioral model into layout information comprising bounding boxes and an associated interconnect netlist
US8984496B2 (en) Extensible internal representation of systems with parallel and sequential implementations
JPH05143674A (en) Automatic logic-model forming method based on circuit graphic database
EP0657832B1 (en) Autonomous evolution type hardware design system
JPH04288680A (en) Method for producing description of structure of circuit or device from a higher level of behavior-oriented description
CN112613259B (en) Post-simulation method and device for system on chip and electronic equipment
US20040025129A1 (en) System and methods for pre-artwork signal-timing verification of an integrated circuit design
US20060229859A1 (en) Logic design development tool and method
JPH11513512A (en) Method of manufacturing digital signal processor
US7827517B1 (en) Automated register definition, builder and integration framework
US7392171B2 (en) Test bench generator for integrated circuits, particularly memories
US7266791B2 (en) High level synthesis device, method for generating a model for verifying hardware, method for verifying hardware, control program, and readable recording medium
US6836874B2 (en) Systems and methods for time-budgeting a complex hierarchical integrated circuit
Van den Bout The anyboard: Programming and enhancements
WO1999053530A2 (en) System and method for evaluating genetic programming parse-trees
US7191412B1 (en) Method and apparatus for processing a circuit description for logic simulation
US11868694B1 (en) System and method for optimizing emulation throughput by selective application of a clock pattern

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): JP

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): JP

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

122 Ep: pct application non-entry in european phase