Focusing on resource awareness in field-programmable gate array (FPGA) design, Applications of Field-Programmable Gate Arrays in Scientific Research covers the principle of FPGAs and their functionality. It explores a host of applications, ranging from small one-chip laboratory systems to large-scale applications in "big science."
The book first describes various FPGA resources, including logic elements, RAM, multipliers, microprocessors, and content-addressable memory. It then presents principles and methods for controlling resources, such as process sequencing, location constraints, and intellectual property cores. The remainder of the book illustrates examples of applications in high-energy physics, space, and radiobiology. Throughout the text, the authors remind designers to pay attention to resources at the planning, design, and implementation stages of an FPGA application, in order to reduce the use of limited silicon resources and thereby reduce system cost.
Supplying practical know-how on an array of FPGA application examples, this book provides an accessible overview of the use of FPGAs in data acquisition, signal processing, and transmission. It shows how FPGAs are employed in laboratory applications and how they are flexible, low-cost alternatives to commercial data acquisition systems.
A supporting website at http://scipp.ucsc.edu/~hartmut/FPGA offers more details on FPGA programming and usage. The site contains design elements of the case studies from the book, including VHDL code, detailed schematics of selected projects, photographs, and screen shots.
Table of Contents
What is an FPGA?
Digital and analog signal processing
FPGA versus ASIC
Understanding FPGA Resources
The company- or family-specific resources
Several Principles and Methods of Resource Usage Control
Reusing silicon resources by process sequencing
Finding algorithms with less computation
Using dedicated resources
Minimizing supporting resources
Remaining in control of the compilers
Guideline on pipeline staging
Using good libraries
Examples of an FPGA in Daily Design Jobs
Simple sequence control with counters
Temperature digitization of TMP03/04 devices
Silicon serial number (DS2401) readout
The ADC + FPGA Structure
Preparing signals for the ADC
Topics on averages
Simple digital filters
Simple data compression schemes
Examples of FPGA in Front-End Electronics
TDC in an FPGA based on multiple-phase clocks
TDC in an FPGA based on delay chains
Common timing reference distribution
ADC implemented with an FPGA
DAC implemented with an FPGA
Zero-suppression and time stamp assignment
Pipeline versus FIFO
Clock-command combined carrier coding (C5)
Parasitic event building
Digital phase follower
Examples of an FPGA in Advanced Trigger Systems
Trigger primitive creation
Unrolling nested-loops, doublet finding
Unrolling nested-loops, triplet finding
Examples of an FPGA Computation
Pedestal and RMS
Centre of gravity method of pulse time calculation
Lookup table usage
The enclosed loop microsequencer (ELMS)
FPGA applications with radiation issues
Special advantages and vulnerability of FPGAs in space
Mitigation of SEU
Time-over-Threshold: The Embedded Particle-Tracking Silicon Microscope (EPTSM)
Time-over-threshold (TOT): analog ASIC PMFE
References appear at the end of each chapter.
Hartmut F.-W. Sadrozinski is a research physicist and adjunct professor at the University of California, Santa Cruz. A senior fellow of the IEEE, Dr. Sadrozinski has been working on the application of silicon sensors and front-end electronics in elementary particle physics and astrophysics for over 30 years. He is currently involved in the use of silicon sensors to support hadron therapy. He earned his Ph.D. from the Massachusetts Institute of Technology.
Jinyuan Wu is an electronics engineer in the Particle Physics Division of Fermi National Accelerator Laboratory. Dr. Wu is a frequent lecturer at international workshops and IEEE conferences. He earned his Ph.D. in experimental high energy physics from Pennsylvania State University.
Accompanying author website
click on http://scipp.ucsc.edu/~hartmut/FPGA