Stimulus signal generation for field programmable gate array- based gamma spectroscopy system - Abd Rahman, Nur Aira (2016)
Code simulation or test bench enables verification of new Field Programmable Gate Array (FPGA) design to be done during code development stage. However, the conventional method to obtain stimulus data for simulation of FPGA based multichannel analyzer (MCA) requires actual radiation detector with tedious setup and dedicated software to acquire and store the acquired data. In addition, the signal parameters cannot be manipulated once data are acquired. The first objective of this thesis is to develop a tool that can systematically generate stimulus data required for code simulation of new FPGA based MCA. The second objective is to design the architecture of MCA on FPGA, the test benches required to verify the MCA functionality, and to simulate the MCA by utilizing input stimulus generated on the first objective. PulseGEN is the developed software that can generates Analog to Digital Converter (ADC) sampling data of the detector amplifier signal in gamma spectroscopy system. PulseGEN operations are divided into two modes; Single/Pile-Up mode and Continuous Random mode. In Single/Pile-Up mode, ADC data for one pulse or two pile-up pulses are generated. These data will be used to verify MCA pulse height measurements and pile-up rejection. In Continuous Random mode, PulseGEN generates continuous ADC data to simulate actual nuclear counting process. These data will be used to verify the histogram/spectrum produced by MCA and to evaluate the overall performance of the MCA. To demonstrate the application of PulseGEN data, an FPGA based MCA is designed. The top module MCA_Controller consists of pulse height analyzer (PHA), dual port RAM (DPRAM), and counter. PHA is designed as a finite state machine (FSM) whereas the DPRAM is configured to have 4096 64-bit words memory. The design is successfully synthesized by using Xilinx Synthesis Technology (XST) Software. Two test benches were created to simulate MCA_Controller code. TB_MCA_FSM will verify the PHA pulse measurement results and TB_MCA will evaluate the spectrum generated as well as the overall functionality of the MCA. PulseGEN simulation data have been compared against actual Sodium Iodide (NaI) detector and pulser output pulses in terms of pulse height, width, and shape. Difference on pulse heights is found less than 1% while the difference on pulse width is less than 3%. Pulse shapes of the NaI detector, pulser, and PulseGEN are also comparable to each other. By using PulseGEN data as stimulus, code simulation results from the test bench are presented. The functionality of the MCA design is verified as the simulation results agreed with the actual measurement values. In conclusion, PulseGEN has successfully generates stimulus data required for code simulation of new FPGA based MCA. The architecture of MCA on FPGA has been designed, and the test benches results confirmed that the MCA is working according to specification. The contribution of this thesis is PulseGEN that is able to generate various types of nuclear pulse ADC data. PulseGEN data enable systematic simulation of the MCA code. The simulation results will assist designer to optimize the output of the designed MCA for the target application.