User:Jcarroll/Brent Nelson BYU

My [Dr. Nelson's] areas of research are in the broad field of hardware design and CAD. Specific interests include reconfigurable computing (FPGA-based), VLSI design, and CAD. In the area of reconfigurable computing I am interested in understanding the capabilities and limitations of FPGA-based computing machines (CCM's or custom computing machines). Algorithms investigated to date include SONAR and genetic algorithms for path planning. A second area of focus is CAD algorithms for CCM's. Recent work has included contributions to the development of JHDL and synthesis tools for finite field arithmetic. Future work is concentrating on application-specific compilation tools for CCM's.

Reconfigurable computing
Reconfigurable computing is a computing paradigm combining some of the flexibility of software with the high performance of hardware by processing with very flexible high speed computing fabrics like FPGAs. The principal difference when compared to using ordinary microprocessors is the ability to make substantial changes to the data path itself in addition to the control flow. On the other hand, the main difference with custom hardware (ASICs) is the possibility to adapt the hardware during runtime by "loading" a new circuit on the reconfigurable fabric.

VLSI
Very-large-scale integration (VLSI) is the process of creating integrated circuits by combining thousands of transistor-based circuits into a single chip. VLSI began in the 1970s when complex semiconductor and communication technologies were being developed. The microprocessor is a VLSI device. The term is no longer as common as it once was, as chips have increased in complexity into the hundreds of millions of transistors.

Genetic Algorithm
A genetic algorithm (GA) is a search technique used in computing to find exact or approximate solutions to optimization and search problems. Genetic algorithms are categorized as global search heuristics. Genetic algorithms are a particular class of evolutionary algorithms (also known as evolutionary computation) that use techniques inspired by evolutionary biology such as inheritance, mutation, selection, and crossover (also called recombination).

Path Planning
Motion planning is a term used in robotics for the process of detailing a task into atomic robotic motions.

This issue, also known as the "navigation problem", though simple for humans, is one of the most challenging in computer science and robotics. The problem is in creating an algorithm that would be able to find its way around a room with obstacles, perhaps accomplishing some task on the way.

JHDL
JHDL (Just-Another Hardware Description Language) is a low level hardware description language, focused primarily on building circuits via an Object Oriented approach that bundles collections of gates into Java objects. Implemented as a toolset and class library on top of the Java programming language, its primary use is for the design of field-programmable gate arrays (FPGAs). Particular attention was paid to supporting the Xilinx series of chips.

When the design is ready to be placed in a fabric, the developer simply generates an Electronic Design Interchange Format (EDIF) netlist and imports it into his favorite toolkit. Once imported, the developer should be able to transfer the circuit via a Joint Test Action Group (JTAG) cable. EDIF netlisting is supported for the XC4000, Virtex, and Virtex-II series of FPGAs.

JHDL was developed at BYU in the Configurable Computing Laboratory, the project initiated in 1997.

Finite Field Arithmetic
Arithmetic in a finite field is different from standard integer arithmetic. There are a limited number of elements in the finite field; all operations performed in the finite field result in an element within that field.

Finite fields are used in a variety of applications, including linear block codes such as BCH and RS in classical coding theory and in cryptography  algorithms such as the Rijndael encryption algorithm. In computer science applications, the operations are simplified for finite fields of characteristic 2, also called GF(2n) Galois fields, making these fields especially popular choices for applications.

There are infinitely many different finite fields; however, their number of elements (or cardinal) is necessarily of the form pn where p is a prime number and n is a positive integer, and two finite fields of the same size are isomorphic. The prime p is the characteristic of the field, and the positive integer n is the dimension of the field over its prime field.