61
[1] PREFACE Radiation detection and measurement are principle techniques for nuclear and particle physics experiments. A spectroscopy operated with good resolution at high DAQ speed should be considered in further researches. To achieve the goal, research groups, companies, universities, etc. has spent time in developing every part of a spectroscopy, such as: power supply, detector, amplifier, preamplifier, multichannel analyzer, etc. Traditionally, a spectroscopy is built by an analog chain, which is combined from a number of analog devices. In recent decades, FPGA chip with DPP algorithm and LabVIEW TM interface were experimented and aimed some advantages with low-cost [8], better resolution [7] and ease of migration of technology between different experiments [8], [10]. With the achieved benefits, a project on development of MCA based on Flash- ADC/FPGA with DPP algorithm, and LabVIEW TM interface has been triggered since 2010. So far, the MCA (Flash-ADC/FPGA) has been able to detect and digitally present analog signals from analog amplifier with high accuracy by analogy with digital oscilloscope [2], [3], [13]. Especially, in 2011, the development of MCA reached a new step when the calculation for precise tasks of MCA, such as trigger timing, height of pulse, integration of pulse, pedestal, etc., was managed inside FPGA chip and simultaneously built up a radiation histogram in LabVIEW TM interface [2]. However, the DAQ speed of MCA (Flash-ADC/FPGA) is not high and may be caused by the DPP algorithm is not suitable with transmission speed of RS-232 cable. To solve this problem, a memory already created inside FPGA chip is used. In this memory, storing digitalized data and downloading data to computer work independently with each other. In a presence of the memory, which is a supplement to DPP algorithm, the MCA (Flash-ADC/FPGA) is functioned with faster and more accurate DAQ.

Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

  • Upload
    ken-bui

  • View
    64

  • Download
    2

Embed Size (px)

DESCRIPTION

Viet Nam National UniversityUniversity of Science - Ho Chi Minh cityFaculty of Physics and Engineering PhysicsNuclear Physics and Nuclear Engineering DepartmentBSc thesisSupervisor: Dr. Vo Hong HaiStudent: Bui Tuan Khai

Citation preview

Page 1: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[1]

PREFACE

Radiation detection and measurement are principle techniques for nuclear and

particle physics experiments. A spectroscopy operated with good resolution at high

DAQ speed should be considered in further researches.

To achieve the goal, research groups, companies, universities, etc. has spent

time in developing every part of a spectroscopy, such as: power supply, detector,

amplifier, preamplifier, multichannel analyzer, etc. Traditionally, a spectroscopy is

built by an analog chain, which is combined from a number of analog devices. In

recent decades, FPGA chip with DPP algorithm and LabVIEWTM

interface were

experimented and aimed some advantages with low-cost [8], better resolution [7]

and ease of migration of technology between different experiments [8], [10].

With the achieved benefits, a project on development of MCA based on Flash-

ADC/FPGA with DPP algorithm, and LabVIEWTM

interface has been triggered

since 2010. So far, the MCA (Flash-ADC/FPGA) has been able to detect and

digitally present analog signals from analog amplifier with high accuracy by

analogy with digital oscilloscope [2], [3], [13]. Especially, in 2011, the development

of MCA reached a new step when the calculation for precise tasks of MCA, such as

trigger timing, height of pulse, integration of pulse, pedestal, etc., was managed

inside FPGA chip and simultaneously built up a radiation histogram in LabVIEWTM

interface [2].

However, the DAQ speed of MCA (Flash-ADC/FPGA) is not high and may

be caused by the DPP algorithm is not suitable with transmission speed of RS-232

cable. To solve this problem, a memory already created inside FPGA chip is used.

In this memory, storing digitalized data and downloading data to computer work

independently with each other. In a presence of the memory, which is a supplement

to DPP algorithm, the MCA (Flash-ADC/FPGA) is functioned with faster and more

accurate DAQ.

Page 2: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[2]

The MCA (Flash-ADC/FPGA) with new supplied DPP algorithm is evaluated

with pulse generator to figure its DAQ speed. With expected consequence, a

spectroscopy is set up with the updated MCA (Flash-ADC/FPGA), and two

radioisotopes 133

Ba and 152

Eu for evaluation of new responses. Results from two

experiments are compared with the results of old DPP algorithm. Useful details of

this thesis are described below:

Chapter 1: Introduction to basic interactions of radiations, scintillator

detector, Flash-ADC, and FPGA.

Chapter 2: Introduction of MCA module used in this thesis with DPP,

Histogram Memory in VHDL code, and LabVIEWTM

interface.

Chapter 3: Experiments and results with pulse generator and radioisotopes

and comparison with old VHDL code.

The conclusions give summary of results. In proposals section, some

recommended ideas to improve the system are suggested.

Page 3: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[3]

Chapter 1

BACKGROUND

1.1. Radiation Interaction with matter[1], [11]

Nuclear radiations contain the radiations generated from conversions related to

nuclei or atoms such as: radioactive transformation, nuclear reaction, etc. For this

reason, nuclear radiations can be divided into two types:

- Charged particulate radiation: light charged particles including electron and

positron; heavy charged particles such as alpha, proton, fission fragments

and products of nuclear reactions.

- Uncharged radiation: electromagnetic radiation (consists of X-ray and γ-ray

(gamma ray)) and neutron.

When a charged particle penetrates matter, it interacts with atomic electrons.

By its electromagnetic field, atoms are excited or ionized. Charged particle loses its

energy gradually due to inelastic collision and elastic scattering (Fig.1.1) with

matter before it stops. This means the range of a charged particle in matter is

restricted. In addition, a light charged particle also loses its energy by

bremsstrahlung (Fig.1.2). In particular, losing energy by bremsstrahlung occurs

obviously with a high-energy light charged particle and causes considerable

inaccuracy in detection using ionization effects.

Fig.1.1. Collision of charged particle Fig.1.2. Bremsstrahlung of beta

Charged

particle Electron

Nucleus

Bremsstrahlung

Beta

particle Electron

Nucleus

Page 4: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[4]

Fig.1.3. Diagram of photoelectric effect Fig.1.4. Graph of cross section of

. photoelectric effect [12]

Fig.1.5. Diagram of Compton scattering Fig.1.6. Graph of cross section of

. Compton scattering [12]

Fig.1.7. Diagram of pair production Fig.1.8. Graph of cross section of

. pair production [12]

Gamma ray (γ-ray) is a kind of electromagnetic wave whose range is greater

than those of charge particle. Beside the wave characteristic, gamma ray also

behaves with the characteristic of particle so that we can call it gamma quantum.

Electron

Nucleus

Electron

Nucleus

Kp

Ke Electron

Nucleus

Positron

Page 5: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[5]

Like charged particle, gamma ray also interacts with matter and be absorbed by

medium around it, almost caused by electromagnetic interaction. Three main

interactions of gamma ray with matter are: photoelectric effect (Fig.1.3), Compton

scattering (Fig.1.5), and pair creation (Fig.1.7) with cross sections (Fig.1.4, Fig.1.6,

and Fig.1.8).

1.2. Scintillator detector [1], [11], [12]

Scintillator detector is commonly used in nuclear and particle experiments

nowadays. It makes use of flashes of light emitted by interactions of radiations with

material.

Flash light in organic scintillator

Flashes are emitted by transmission in energy level. When a radiation arrives

and ionizes one atom, atomic electron transmits to a higher electron level so that

atom also reaches to a greater energy level. As we can see in Fig.1.9, electron

transmits from S0 (ground state) to the higher level (excited level S3). After that, it

returns to the ground state by vibration and photon emission. The emitted photon

excites another electron and makes it transmit to state S2. Likewise, photon

emission makes the electron be back to the lowest level, and also excites a nearby

electron. However, the next emitted photon, regarding to the transmission of

electron from S1 state back to S0 state, is the last one because its energy cannot

excite any more electrons. The latest photon is used in further electronic processes.

Fig.1.9. Flash light in Organic Scintillator

S1

S0

S2

S3

Page 6: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[6]

Flash light in inorganic scintillator

Whereas the mechanism in organic scintillator is related to molecular, flash of

light in inorganic material is generated by characteristic of crystal’s electronic band

structure. Electronics band consists of: conducting band, forbidden energy trap, and

valence band as be shown in Fig.1.10. When a radiation ionizes an atom, an atomic

electron, in valence band, moves to conducting band. If this excited electron returns

back to valence band and not be hold back by crystal lattice defect, photon emitted

in this transition would be absorbed. Impurity atoms are included inside the

structure of scintillator in order to create energy gaps. The aforementioned electron

is struck at these gaps, and emits photon with the left energy.

Fig.1.10. Flash light in Inorganic Scintillator

Photomultiplier tube

After photon is generated, it is conducted to photomultiplier tube (PMT) for

converting photon to electronic signal (Fig.1.11). As be shown in Fig.1.12, PMT

consists of: photocathode, electron optical input system, focusing electrode, electron

multiplier section (or dynode string), and anode. Incident photon strikes the

photocathode, which is made of a photosensitive material, and electron is emitted

via photoelectric effect. High voltage is applied during the operation along the

length of cathode – dynodes – anode as a voltage ladder. Due to this high voltage,

the electron is directed and accelerated and then hits the first dynode and generates

secondary electron. These electrons immediately hit the second dynode by higher

Forbidden

Energy trap

Impurity

traps Valence band

Conduction band

Page 7: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[7]

voltage applied to this dynode and more electrons are produced in this next strike.

The following collisions are continued in turn and the result is an electron cascade.

This electron cascade is collected by anode and becomes a current for amplifying

and analyzing.

Fig.1.11. Scintillator Detector Fig.1.12. Photomultiplier Tube [12]

1.3. Multichannel analyzer [11]

A multichannel analyzer (MCA) is a device which can sort out and present in-

coming pulse from amplifier according to height of pulse (or also integration of

pulse). To facilitate this, a MCA is operated through number of devices: Analog-to-

Digital Converter (ADC), control logic, and a memory, which is illustrated in

Fig.1.13. Function of ADC is to digitize in-coming pulse which is an analog pulse.

In order to give the ADC sufficient time to digitize input signals, a number of

modules exist used for adapting signals. After that, the logic control unit analyzes,

locates, and counts a number of these heights. Analyzed heights are stored in the

memory. In this way, MCA takes not only in-coming pulses, but also increments of

memory. The number of channels into which the height of pulse is digitized is

called conversion gain. Conversion gains dictate the resolution of MCA and can be

up to 8000 or 16000 channels, which is found in commercial MCA’s.

Fig.1.13. MCA architecture

Radiation

ray

Scintillator Light

guide

PMT

Scintillator

molecule

Photon Electron First dynode Photocathode

Electron

optical

input

Focusing

electrode

Multiplier

(dynodes)

Anode

ADC Control Logic Memory Display

Page 8: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[8]

1.4. Flash-ADC/FPGA

1.4.1. Flash-ADC (Flash Analog-to-Digital Converter) [9], [11]

Flash-ADC is a simplest ADC with a fastest architecture. In Flash-ADC, there

are a number of resistors and comparators. A Flash-ADC is always considered by

two properties: resolution and sampling speed. Resolution of a Flash-ADC is up to

8 bits at sampling speed in hundreds of MHz for variety applications. In Fig.1.14,

strobe affects the frequency (speed) of Flash-ADC, whereas, comparators, resistors,

and VFS affect the resolution. The higher resolution, the Flash-ADC digitizes, the

more number of comparators, and resistors are contained. An n-bit Flash-ADC

needs 2n resistors and 2

n-1 comparators. The resistors help to divide the VFS voltage

and the comparators’ function is to compare the input voltage with divided voltage.

By thermometer code, the result of comparison is a binary number which

corresponding to bits of Flash-ADC. More particularly, in the binary string, ‘1’ is

written on when input voltage is higher the divided one, and ‘0’ is written in the

other case.

Fig.1.14. Flash-ADC architecture [9]

Page 9: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[9]

1.4.2. FPGA [5], [6]

FPGA is one of three categories of high-capacity FPD (Field-Programmable

Device) beside Simple Programmable Logic Device (SPLD) and Complex

Programmable Logic Device (CPLD). A FPGA contains IOBs (Input/Output

Blocks), CLBs (Configurable Logic Blocks), and Interconnects (Fig.1.15). CLBs

are the programmable blocks, which we can calculate, or process, digital signals.

IOBs are the connections between FPGA with other DAQ hardware, and computer.

Interconnects connect CLBs to CLBs or CLBs to IOBs. Operation and combination

in FPGA are modified in C code, MATLAB code, LabVIEWTM

graphical block

diagrams, and HDL (Hardware Description Language), such as: VHDL, Verilog,

AHDL (Altera Hardware Description Language), etc. As time gone by, FPGAs

become common all over the world in many educations, developments, and projects

related to DPP.

Fig.1.15. FPGA architecture [6]

I/O

pad Logic

Block

Interconnects

Page 10: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[10]

Chapter 2

DEVELOPPING MCA (FLASH-ADC/FPGA)

In this chapter, we describe the development of Multi-Channel Analyzer

(MCA) based on Flash-ADC 250MHz-8bit resolution and embedded FPGA trigger.

The development of MCA (Flash-ADC/FPGA) includes embedded-VHDL code for

digital pulse processing (DPP) and histogram memory. Computer LabVIEW

interface is developed for trigger and DPP controlling, histogram-data taking, and

histogram displaying.

2.1. MCA (Flash-ADC/FPGA)

Fig.2.1. Diagram of Radiation Spectrometry using Flash-ADC/FPGA

Fig.2.2. Module Flash-ADC/FPGA (top view and side view)

The MCA based on Flash-ADC and FPGA analyzes pulse signal in two main

steps. First step, MCA detects and digitalizes signals with Flash-ADC. Second,

digitalized data is computed in FPGA. Data flow and conversions are described in

Fig.2.1. Fig.2.2 is the combination board of Flash-ADC and FPGA.

Upload to

computer

Multichannel Analyzer

(MCA)

Detector Pre-Amp Amp Flash-ADC FPGA

Flash-ADC

FPGA

Page 11: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[11]

Fig.2.3. Module Flash-ADC 250 MHz 8-bit

Fig.2.4. Module FPGA

Flash-ADC (Flash Analog to Digital Converter)

The Flash-ADC module in Fig.2.3 contains two input channels: channel A and

channel B. This module can digitalize analog signal at 250 MHz speed (i.e.

2.5x108samples/second or 4ns/sample) in 8-bit resolution (is equivalent to 256

amplitude channels). Maximum amplitude that Flash-ADC can handle is 1000mV.

Converting signal consists of converting in amplitude versus time and converting in

timing. Converting in Amplitude fixes 1000mV with 256 amplitude channels or

4mV corresponds to 1 channel. Converting in Timing is 4nsec/bin [9].

FPGA (Field of Programmable Gate Array)

FPGA chip in this module (Fig.2.4) is the Cyclone II EP2C8Q208C7

manufactured by Altera Corporation. This chip contains 182 PORTs (input, output,

and in-out), 8256 logic blocks, 165888 RAM bits, etc. [4]. FPGA is programmed by

VHDL to compute specific tasks with digital signal such as: trigger timing,

integration of pulse, height of pulse, etc.

Channel A

Voltage offset A

Channel B

Voltage offset B

FPGA chip RS-232

COM

PORT

+5V input

-5V input

JTAG

USB

Blaster

Page 12: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[12]

2.2. VHDL code

Fig.2.5. Flow chart of processing in FPGA

The VHDL code consists of five components: Local Trigger, L1_delay,

executer, bus_ctrl_232c and finesse_PLL [2]. The operation of these components

can be divided in two processing: Digital Pulse Processing and Storing in

Histogram Memory. Schematic algorithm for VHDL code is shown as in Fig.2.5.

Section 2.2.1 and section 2.2.2 are simply explanations for these two processes.

RS232

Upload:

Stored histogram Computer

Flash-ADC

Trigger

Store in

buffer

- Height of pulse

- Integration of pulse

- Integration = Memory

Channel

- Store in Histogram

Memory

Digital

Pulse

Processing

Histogram

Memory

Page 13: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[13]

2.2.1. Digital Pulse Processing (DPP)

Free-running Flash-ADC transmits digitized data, whose shape is shown in

Fig.2.6, to FPGA.

Fig.2.6. Digitized pulse signal

The development of DPP is performed in steps as follows:

First step: Triggering data: The FPGA receives digitized signal from Flash-

ADC in certain frequency. For triggering, digitized data is to compare with trigger

level. There are two different triggering modes: rising edge and falling edge. In this

work, rising edge triggering is considered for gamma spectroscopy. This

demonstrated in Fig.2.7.

Fig.2.7. Rising edge

Second step, data are kept in a buffer, which functions as a matrix does. This

buffer contains a variable named “pointer” functioning as a writing cursor. Size of

this buffer, or maximum value of “pointer” in this buffer, is set manually in order to

detect all single data of digital signal. In this step, a datum is kept in the buffer

when “pointer” is assigned 0. Repeatedly, other data are stored in buffer and

Am

pli

tude

Chan

nel

s Time bin

Single

datum

Am

pli

tude

(V)

Time bin

Trigger level

Page 14: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[14]

“pointer” is increased until this buffer is full. Afterwards, data of digital signal are

all kept in the same buffer. Digital pulse signal is stored in buffer as shown in

Fig.2.8.

Fig.2.8. Storing data in buffer

Based on data in the buffer, we calculate two important tasks used in building

radiation histogram: height of pulse and integration of pulse. In the VHDL code,

calculating integration depends on height of the pulse. Therefore, height of pulse is

carried out formerly. The process to find and locate height of pulse occurs in the

buffer. At first, “pointer” and a variable “max” are assigned value 0. Then, we

compare “max” with a “datum” which corresponds to “pointer”. Only if this

“datum” is greater than “max”, “max” is assigned value of “datum” and “posi_max”

(position of maximum value) is assigned value of “pointer”. Next, “pointer” is

increased by one and “datum” at the new “pointer” is compare with “max”. This

loop redoes until “pointer” reaches its maximum value. Finally, result of this

process is height of pulse (variable “max”) with its position in buffer (variable

“posi_max”). The algorithm to find and locate the height of pulse is shown in

Fig.2.9.

Am

pli

tude

Chan

nel

s

Elements

(Time bin)

Page 15: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[15]

Fig.2.9. Flow chart of algorithm for height of pulse

After having the height of pulse and its position (“posi_max”) in buffer, we

calculate the integration of pulse with included parameters: left peak and right peak

(Fig.2.10). These two parameters bound the number of buffer’s elements which are

used for calculating integration. Left peak stands for number of elements on the left

side of “posi_max”. Likewise, right peak stands for number of elements on the right

side of “posi_max”. To describe more simply, we imply that left peak and right

peak are corresponding to “L elements” and “R elements”. In the bounded range,

data are combined and become integration of pulse.

In this algorithm, two variables “pointer” and “sum” are assigned value 0. If

value of “pointer” is in range of “posi_max – L” to “posi_max + R”, “sum” is

increased by value of “datum” corresponding to “pointer”. Nothing occurs if

“pointer” is not in the aforementioned range. Afterwards, one is added to value of

max = datum(pointer)

posi_max = pointer

pointer = 0

Max = 0

datum(pointer) >

max

TRUE

FALSE

TRUE

pointer = pointer + 1

pointer =

[size of buffer]

Integration process

FALSE

Page 16: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[16]

the “pointer”. If value of “pointer” reaches its maximum value, this loop is stopped.

In contrast, the process is repeated and “sum” is added data value corresponding to

the value of “pointer” which must be in range. At the end, after combining all the

data, result is the integration of pulse as the value of variable “sum”. Diagram of

algorithm is shown in Fig.2.11.

Fig.2.10. Integration and calculated variables

Fig.2.11. Flow chart of algorithm for integration

Integration

of Pulse Am

pli

tude

Chan

nel

s

Elements in Buffer

(Time bin)

Height of

Pulse

Left Peak

Right Peak

FALSE

posi_max - L

< pointer <

posi_max + R

sum = sum + datum(pointer)

pointer = pointer +1

pointer = 0

sum = 0

pointer =

[size of buffer]

Storing in HM

TRUE

FALSE

TRUE

Page 17: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[17]

2.2.2. Histogram Memory

Fig.2.12. Flow chart of building histogram up in memory

The VHDL code embedded into FPGA allows MCA speeds DAQ up and

analyzes in higher resolution. To achieve goals, a memory contained already inside

in the FPGA is used to build up a histogram inside FPGA. Fig.2.12 should be

concerned to figure the memory’s operation. The variable m is the input value of

the memory. Variety value of m effects different elements of memory. Actually, the

mth

element would be increased by one. Due to own ability and function, the

memory is named histogram memory (HM).

HM contains 6 main variables (Fig.2.13):

data: the pulse’s integration, which is also the major input for processing.

wraddress: assigned a value corresponds to an element of the matrix.

This element is the HM’s position which a new computed value is written to.

rdaddress_a and rdaddress_b: used for readout value of elements.

qa and qb: the value of output data.

0

a[0] a[1] a[2] a[i] a[n] … …

a[0]

+ 1

a[1]

+ 1

a[2]

+ 1

a[i]

+ 1

a[n]

+ 1 … …

1

2

i

n

Page 18: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[18]

Fig.2.13. HM’s variables

The memory is built on the idea of cursors and matrices. Three cursors in this

process are: “wraddress” for writing data to the memory, otherwise “rdaddress_a”

and “rdaddress_b” are used for reading data out. Moreover, there are two matrices

(matrix A and matrix B) inside the memory and each matrix has reading cursor and

output data which are independent to writing cursor. To make use of this advantage,

“rdaddress_a” and “qa” in matrix A are used in calculating while “rdaddress_b” and

“qb” transmit data continuously. This idea results in the separation between

processing and transmission. Because of this separation, we divide the explanation

of the operation into two parts: writing data to histogram memory and updating data

from histogram memory.

Write data to Histogram Memory

To separate the processing and the transmission of data, a Boolean variable

“stop” is created. If “stop” is equal to ‘0’, processing occurs, and transmission is

carried out if ‘1’ is assigned value to “stop”. Three input variables “rdaddress_a”,

“wraddress”, and “data” are assigned 0. After abovementioned process, if “sum” is

in the range of 0 to 4095, it is assigned value to “rdaddress_a”. This means reading

cursor moves to the corresponding elements in matrix A (matrix of processing) and

to read out a datum. This datum is increased by one then assigned to “data”. The

“wraddress” moves to the aforementioned element right after then. Therefore, value

Page 19: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[19]

of that element is increased by one. These steps redo step by step so that HM is

updated every moment. Algorithm of writing data on HM is shown in Fig.2.14.

Fig.2.14. Flow chart of writing data to HM

Update data from Histogram Memory

Fig.2.15. Flow chart of states of system in reading process

TRUE

FALSE

TRUE

rdaddress_a = 0

wraddress = 0

data = 0

sum < 4095

rdaddress_a = sum

data = qa(sum) + 1

wraddress = sum

stop = ‘0’

Reset

Histogram Memory

Reading process

Update latest data Update data

continuously

stop = ‘0’ TRUE FALSE

Page 20: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[20]

The reading process (uploading process) is also controlled by the Boolean

variable “stop”, as the writing process is. However, the writing process works only

if value of “stop” is ‘0’. In reading process, there are two cases, or two states of

system, based on the Boolean value of “stop” for the process works. First of them is

the state that FPGA uploads data to the computer continuously. The writing process

and the reading process in this case can be understood as the parallel processing. In

the second state, uploading processing is carried out with a frequency. This

frequency is manipulated purposely by users. To simplify the explanation, we name

two states “continuous uploading” and “frequent uploading”, which are shown in

Fig.2.15.

Fig.2.16. Flow chart of continuous uploading in reading process

First, we discuss the “continuous uploading” whose algorithm is described in

Fig.2.16. Since data is uploaded continuously, histogram in the computer is built up

continually. This state is processed parallel with writing process because value of

TRUE

rdaddress_b = 0

FALSE

Upload: qb, stop,

rdaddress_b

stop = ‘0’

TRUE

rdaddress_b =

rdaddress_b + 1

rdaddress_b

= 4095

Page 21: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[21]

“stop” is ‘0’.Variable “rdaddress_b” is firstly assigned 0. After assigning, “qb”, as

the output corresponding to “rdaddress_b”, is uploaded to computer with

“rdaddress_b” and “stop”. The reason why “stop” must be uploaded is discussed

furthermore in the frequent uploading. By the time uploading is finished,

“rdaddress_b” is increased by one. If “rdaddress_b” is lower than 4095, FPGA,

again, uploads it with the new “qb” and “stop”. When “rdaddress_b” is equal to

4095 and keep the “continuous uploading” up. The process works in this state

uninterruptedly until “stop” is equal to ‘1’.When experimenting with the MCA

(Flash-ADC/FPGA), we prefer to save data on a file to analyze. Using data in

“continuous uploading” state is not convenient because calculation of the huge

amount of data after long time measurement should be carried out before analyzing.

Therefore, “frequent uploading” is considered to save file with no calculating.

As we can see in Fig.2.15, “frequent uploading” is processed only if “stop” is

assigned ‘1’, the case that “writing process” stops. Consequently, “writing

process” does not happen during “frequent uploading”. Two steps conducted in

turn in the “frequent uploading” are: “updating latest data to computer” and

“resetting Histogram Memory”. When “stop” is equal to ‘1’, “writing process” is

stopped, and the FPGA updates latest data. At this time, FPGA does not write any

more data to HM so that the uploaded data is the latest data. Updating latest data

happens in the same way as continuous uploading does. After updating latest data

finishes or “rdaddress_b” is equal to 4095, the HM is reset. This means all HM’s

elements are assigned 0. The input data is assigned 0 during resetting time. Variable

“wraddress” is assigned 0 at first, and then it is increased by one every time after

assigning 0 to a corresponding element. “Resetting Histogram Memory” is totally

completed when 4096th

element is assigned 0. After finishing “continuous

uploading”, the process assigns 0 to “rdaddress_b” and chooses state to read data

by checking value of “stop”. This reading process occurs again and again as a loop.

Fig.2.17 shows the algorithm of frequent uploading.

Page 22: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[22]

Fig.2.17. Flow chart of frequent uploading in reading process

The switch from “continuous uploading” to “frequent uploading” is caused

by the change of Boolean variable “stop”. The change of “stop” is described to see

the connection between these two states. A control parameter “time_in” is

transferred from computer to FPGA. This parameter’s value is the time, in second

unit, to change the value of “stop” from ‘0’ to ‘1’. At the beginning, value of “stop”

TRUE

FALSE

FALSE

TRUE

Upload: qb, stop,

rdaddress_b

rdaddress_b

= 4095

wraddress = 0

data = 0

wraddress =

wraddress +1

rdaddress_b =

rdaddress_b + 1

wraddress =

4095

rdaddress_b = 0

stop = ‘0’

FALSE

Page 23: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[23]

is ‘0’. A variable named “count_time” is increased every second until it is equal to

the “time_in”. When “count_time” is equal to “time_in”, stop is assigned ‘1’ and

“count_time” is reset to value 0. The opposite convert of “stop” occurs only if

reading process is at the last step of resetting Histogram Memory. Fig.2.18 shows

the algorithm of stop process.

Fig.2.18. Diagram of stop process

2.3. Computer Interface using LabVIEWTM

software

Fig.2.19. LabVIEWTM

Interface

count_time

time_in

count_time =

count_time + 1

stop = ‘0’

stop = ‘1’

FALSE

TRUE

Resetting

is done

TRUE

1 2 3 4

5 6 7 8

9

10

11

12

14

15

13

Page 24: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[24]

The interface program built on LabVIEWTM

software interacts with the FPGA.

In Front Panel, the interface for users, the program not only exhibits received data

in indicators (numbered in blue) but also transfer parameters to manipulate MCA

with controls (numbered in red), as shown in Fig.2.19.

#1: trigA

Function: sets trigger for input data, “trig” means trigger and “A” means channel A.

#2: LeftPeakA and #3: RightPeakA

Function: the Left Peak and Right peak have been concerned in 2.2.1.

#4: Time to stop (s)

Function: time of measurement, the variable Time_in has been concerned in 2.2.2.

#5: COM PORT

Function: select the computer’s COM PORT where data is transmitted to.

#6: Number Data Out

Function: the size of buffer, which has been concerned in 2.2.1.

#7: Delay

Function: the number of buffer’s elements between writing cursor and reading

cursor.

#8: Time_bin

Function: the interval between two detecting events times.

#9: Type Data out

Function: choose ‘1’ to present pulse signals or choose ‘2’ to present the spectrum.

#10: Trigger up/down

Function: choose ‘1’ for rising edge case or choose ‘2’ for falling edge case.

#11: Trigger Channel

Function: choose ‘1’ to detect only channel A of Flash-ADC, choose ‘2’ to detect

only channel B of Flash-ADC or choose ‘4’ to detect both channel A and B of

Flash-ADC.

#12: write data

Function: if this button is pressed, the data is written into a file.

Page 25: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[25]

#13: (signals or spectrum)

Function: presents pulse signals if Type Data out is equal to ‘1’ or spectrum if

Type Data Out is equal to ‘2’

#14: (counts of events)

Function: presents the number detected events in an acceptable range

#15: (transmitted data)

Function: presents number of events in #14, channel, counts as in Fig.2.20.

Fig.2.20. Indicator of transmitted data (in Hexadecimal-base 16)

The file contains data in two columns (channels and counts) can be saved in

different formats. Moreover, for convenient uses, we can save it as file.tka

(Fig.2.21) and then use Genie2K for analysis (Fig.2.22).

Fig.2.21. Saved data Fig.2.22. Analysis in Genie2K

Number of events Channel Counts per Channel

Channels

(0 to 4095)

Counts

Page 26: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[26]

Chapter 3

EVALUATION OF MCA AND

GAMMA SPECTROMETRY NaI(Tl) 3inch x 3 inch

In chapter 2, we discussed in detail the development of MCA (Flash-

ADC/FPGA). In this chapter, we use a pulse generator to evaluate the dead-time of

the MCA (Flash-ADC/FPGA), in section 3.1. Two standard radioisotopes 133

Ba and

152Eu including multi gamma energies ranging from several tens keV to MeV are

used to figure the gamma response and energy resolution for gamma spectroscopy

with the uses of MCA (Flash-ADC/FPGA) and scintillator detector NaI(Tl) 3inch x

3inch, in section 3.2.

3.1. Evaluation of MCA using Pulse Generator

Fig.3.1. Pulse Generator layout in laboratory

Fig.3.2. Diagram of pulse generator experiment

LabVIEWTM

interface

MCA (Flash-ADC/FPGA) Pulse Generator Amplifier

Oscilloscope

RS-232

Digital Oscilloscope for monitoring

Pulse

Generator Amplifier

MCA

(Flash-ADC/

FPGA)

Computer

LabVIEW

interface

Page 27: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[27]

Experiments with pulse generator are carried out with the same layout (in

Fig.3.1 and Fig.3.2). Microcal Origin 6.0 is used to display spectrum and analyze

data. Pulse Generator is a module made in Osaka University, Japan. Pulse

Generator is a module containing EP1C6T144C8 FPGA chip which is embedded a

VHDL code to generate square pulses (Fig.3.3). These pulses are fed into a shaping

amplifier, type CANBERRA 2026 amplifier, and then connected to the input

channel of MCA (Flash-ADC/FPGA). Data out of FPGA module is downloaded to

computer via RS-232 cable.

Fig.3.3. Trigger module as Pulse Generator

The VHDL code embedded into FPGA makes the Pulse Generator module

generate pulses in different frequencies by variable “freq” and amplitudes by

variable “width”. Value of frequencies and amplitudes are indicated in Table 3.1

and Table 3.2.

The frequencies generated in Table 3.1 are connected with variable “freq” by

equation 3.1.

6

(freq+1)

25 . 10Frequency (Hz) =

2 (3.1)

Amplitudes detected by LabVIEWTM

interface in Table 3.2 are resulted from

the equation 3.2

ChannelAmplitude (mV) = x 1000 (3.2)

255

NIM out

ports FPGA

chip

Power

supply

ports

Page 28: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[28]

Table 3.1. Variable “freq” and frequency

“freq” Freq

(Hz)

0 12500000

1 6250000

2 3125000

3 1562500

4 781250

5 390625

6 195313

7 97656

8 48828

9 24414

10 12207

11 6104

12 3052

13 1526

14 763

15 381

16 191

17 95

18 48

19 24

20 12

Page 29: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[29]

Table 3.2. Amplitudes of pulses in oscilloscope and LabVIEWTM

interface

width

Amplitude in

oscilloscope

(mV)

Amplitude in

LabVIEW

(mV)

1 60 51.0

2 110 101.9

3 160 149.0

4 210 207.8

5 260 258.8

6 300 298.0

7 330 325.5

8 350 345.1

9 380 372.5

10 400 396.1

11 420 419.6

12 450 443.1

13 470 466.6

14 490 486.3

15 520 513.7

16 540 537.2

17 560 556.8

18 580 576.5

19 610 600

width

Amplitude in

oscilloscope

(mV)

Amplitude in

LabVIEW

(mV)

20 630 623.5

21 650 647.0

22 670 666.6

23 700 686.3

24 720 709.8

25 740 733.3

26 760 749.0

27 780 768.6

28 800 792.1

29 820 815.7

30 840 835.3

31 860 858.83

32 880 874.5

33 900 898.0

34 920 917.6

35 940 945.1

36 960 964.7

37 980 984.3

38 1000 1000.0

First experiment is time response experiment with stable amplitude and varied

frequencies to figure the highest speed of MCA (Flash-ADC/FPGA). Next, the

suitable parameters are adapted for later experiments.

Page 30: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[29]

3.1.1. Evaluate the time response

We examine at the frequency varied from 12Hz to 12207Hz, and 400mV

amplitude in oscilloscope, during this experiment. Detected pulses are parallel

displayed in GW INSTEK GDS-1000A oscilloscope and LabVIEWTM

pulse

interface (Fig.3.4a), which is used in previous thesis [2]. The pulses’ dimensions

(time bin and amplitude) in oscilloscope and in LabVIEWTM

pulse interface are

similar to each other [2], [3].

Table 3.3. Set up parameters in time response experiment

Apparatus Parameters Value

Canberra 2026 amplifier

Coarse gain 20

Fine gain 5-1.0

Shaping time 6μsec

LabVIEWTM

spectrum interface

Time to stop 100sec

Left Peak 30

Right Peak 30

Number Data Out 100

Delay 60

Time bin 50

TrigA 70

Fig.3.4. LabVIEWTM

pulse interface (a) and LabVIEWTM spectrum interface (b)

(a) (b)

Page 31: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[30]

Because a full pulse scale results in a best resolution for later experiments [2],

parameters in LabVIEWTM

pulse interface are manipulated to reach this quality.

Table 3.3 is the parameters of amplifier and LabVIEW spectrum interface.

Table.3.4. DAQ speed of MCA (Flash-ADC/FPGA)

Frequency (Hz) DAQ speed (ms/event) Events/sec (sec-1

)

12 82.99 12.05

24 41.51 24.09

48 20.76 48.17

95 10.38 96.33

191 5.19 192.65

381 2.59 385.29

763 1.30 770.57

1526 0.66 1541.12

3052 0.33 3082.24

6104 0.33 3082.24

12207 0.24 4109.96

Fig.3.5.Graph of DAQ of MCA

Page 32: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[32]

Appropriate parameters are used in LabVIEWTM

spectrum interface (Fig.3.4b)

to detect events and examine the spectrum. Time of measurement is 100 seconds.

Table 3.4 indicates the detected events per second, and the DAQ speed which are

caused by varied generating frequencies of pulse generator with new VHDL code.

Fig.3.5 plotted in Origin 6.0 software is the graph of events detected every second

with different frequencies with new VHDL code and old VHDL code [2]. The

information helps to compare the speed and accuracy of old and new VHDL code.

In previous experiments [2], the events per second at different frequencies

cannot be accepted because they are much greater than the frequencies, the numbers

of input events every single second. Within the range of 12Hz to 380Hz, events per

second and generating frequencies are linear, and the corresponding equation is

equation 3.3 (Appendix C).

y = (22.2430 28.5028) + (1.3980 0.1260)x (3.3)

Variable y stands for events per second, variable x stands for frequency, and

correlation coefficient (R-square) is 0.99596. For the purpose of building an ideal

MCA, the angular efficiency calculated from number of events per second and

corresponding frequency is close to 1. The old VHDL code cannot make the MCA

(Flash-ADC/FPGA) works like an ideal device does in just a small range of

frequency (angular efficiency is too greater than 1). From 12Hz to 3052Hz, MCA

(Flash-ADC/FPGA) embedded new VHDL code works stable and the angular

efficiency is 1.0099. Linear equation of events per second and varied frequencies is

equation 3.4.

y = (0.0105 0.1186) + (1.0099 0.0001)x (3.4)

In equation 3.4, y stands for events per second, x stands for frequency, and

correlation coefficient is 1. Although the stability just occurs at low frequencies, the

ratio of detected events and input events is nearly 1. Moreover, new evaluated DAQ

speed in stable range is 3052 events/sec and it is more than five times (5.6 times)

faster than old DAQ speed (547 events/sec).

Page 33: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[33]

The conclusion from this experiment is MCA (Flash-ADC/FPGA) works at a

higher stable state (proportion 1.0099 of detected events to input events) at more

than five times higher the DAQ speed (3052 events/sec and 547 events/sec).

3.1.2 Examine the peak distribution

Table 3.5. Set up parameters in peak distribution experiment

Apparatus Parameters Value

Canberra 2026 amplifier

Coarse gain 20

Fine gain 5-1.0

Shaping time 6μsec

LabVIEW spectrum interface

Time to stop 100sec

Left Peak 15

Right Peak 25

Number Data Out 150

Delay 60

Time bin 94

The purpose of this next experiment is manipulating parameters in

LabVIEWTM to detect all pulses from free-running Flash-ADC based on the result

of DAQ speed in previous section. Further experiments with suitable parameters

would have ablitiy to detect as many pulses as possible by parameters estimated

from this experiment. The experiment layout is the same with section 3.1.1, but

MCA (Flash-ADC/FPGA) works at stable frequency and variety of amplitudes,

which are generated by pulse generator. In section 3.1.1, stability of MCA (Flash-

ADC/FPGA) occurs in range of 12Hz to 3052Hz so that in this experiment, the

frequency at which the MCA works is 1526Hz. Amplitudes are varied from 60mV

to 1000mV, estimated by oscilloscope, corresponds with the variety of variable

“width” from 1 to 38 (Table .3.2). To detect all pulses whose amplitudes are not

higher than 1000mV, parameters in pulse generator’s VHDL code are set up to

Page 34: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[34]

generate pulses of 1000mV, and parameters are turned to advantage to detect a full

pulse, and a full spectrum of 1000mV pulses. Therefore, first step of this

experiment is to find the appropriate parameters for 1000mV (pulse and spectrum,

as in Fig.3.6). The result is shown in Table 3.5.

Fig.3.6. Spectrum of 1000mV pulses

Fig.3.7. Spectrum of peaks distribution

NumberDataOut: 150

LeftPeak: 15

RightPeak: 25

delay: 60

time_bin: 94

Channel

Co

un

ts

4000 3000 2000 1000 0

25000

20000

15000

10000

5000

0

Page 35: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[35]

With these parameters, variable “width” is varied from 38 to 1, and causes the

amplitudes generated are varied from 1000mV downto 60mV in oscilloscope, or

1000mV to 51mV (in LabVIEWTM

interface). Spectrum of all generated pulses is

shown in Fig.3.7. With the spectrum in Fig.3.7, channel of each peak is located.

Table 3.6 indicates the amplitudes and channels of peaks. By the recorded

information, the calibration line is created.

Table 3.6. Amplitudes in LabVIEW interface and channels of peaks

Amplitude

(mV) Channel

51 140

101.9 300

149 509

207.8 736

258.8 955

298 1123

325.5 1229

345.1 1325

372.5 1436

396.1 1539

419.6 1618

443.1 1731

466.6 1822

486.3 1926

513.7 2018

537.2 2096

556.8 2190

576.5 2281

600 2374

Amplitude

(mV) Channel

623.5 2467

647 2558

666.6 2657

686.3 2746

709.8 2838

733.3 2927

749 3002

768.6 3093

792.1 3179

815.7 3267

835.3 3353

858.8 3444

874.5 3531

898 3614

917.6 3682

945.1 3781

964.7 3875

984.3 3963

1000 4050

Page 36: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[36]

Fig.3.8. Linear fit of amplitudes and located channels

With the spectrum of pulse amplitudes, channel of each amplitude peak is

located and indicated in graph of amplitude calibration (Fig.3.8). The amplitudes

and channels are linear and relate to each other by equation 3.5.

y ( 107.90 5.02) (4.14 0.01)x (3.5)

In equation 3.5, y stands for channel, x stands for amplitude (mV), and

correlation coefficient is 0.99994. The energy of a radiation is in direct ratio to the

charge integration or amplitude of pulse. Therefore, with good linearity, the MCA

(Flash-ADC/FPGA) is good enough to be include in a spectroscopy for radiation

experiments.

In conclusion, experiment with pulse generator in section 3.1.1 help us figure

the maximum DAQ speed is 3052 events per second with no dead-time of the

system. The parameters evaluated in section 3.1.2 help us detect all output signals

from free-running Flash-ADC. The manipulated parameters avoid losing data of the

MCA (Flash-ADC/FPGA). The ability in processing digital data is proved to be

good enough for radiation experiments due to the linearity of varied amplitudes and

located channels.

Page 37: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[37]

3.2. NaI(Tl) 3inchx3inch Gamma Spectrometry

Intention of this section is to check the ability of MCA (Flash-ADC/FPGA)

when it is used in radiation measurements. The MCA (Flash-ADC/FPGA) is

included in a gamma spectroscopy using NaI(Tl) scintillator detector 3inch x 3inch.

This gamma spectroscopy’s schematic arrangement is shown in Fig.3.9, and real

layout in Fig.3.10. The experiments are carried out with two disc-shape

radioisotopes 133

Ba ( 0.1μCi ) and 152

Eu (1.05μCi ), products of Spectrum

Techniques, Ins. To lower the dead-time in the experiments, we set up parameters,

indicated in Table 3.7, based on the result in section 3.1.

Table 3.7. Set up parameters in gamma spectroscopy experiments

Apparatus Parameters Value

Canberra 3106D High Voltage Supply High Voltage (positive) 0.8kV

Canberra 2026 amplifier

Coarse gain 20

Fine gain 5-1.0

Shaping time 6μsec

LabVIEWTM

spectrum interface

Time to stop 1000sec

Left Peak 15

Right Peak 25

Number Data Out 150

Delay 60

Time bin 94

TrigA 5

Fig.3.9. Diagram of Experiment layout with gamma spectroscopy

RS-232 MCA

(Flash-ADC/

FPGA)

Computer

LabVIEW

interface

Detector

NaI(Tl) Pre-Amp Amp

Page 38: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[38]

Fig.3.10. Experiment layout with gamma spectroscopy in laboratory

Fig.3.11a. Geometry layout Fig.3.11b. Detector’s position

Fig.3.11.c. Top view of geometry layout Fig.3.11.d. Side view of geometry layout

Fig.3.11. Geometry layout of NaI(Tl) and radiation sources

NaI(Tl) detector, model CANBERRA 802 3x3m and photomultiplier tube

base/preamplifier, model CANBERRA 2007P are standed against together to reach

a high efficiency of amplification in pre-amplifier. The detector is coverd in

LabVIEWTM

interface MCA

(Flash-ADC/FPGA)

High

Voltage

Supply

Amplifier

Pre- Amplifier

Detector NaI(Tl)

3inchx3inch covered in

cylindrical lead

(a)

Radioisotope

(b)

(c) (d)

Page 39: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[39]

cylindrical lead. The radiation sources are shielded around by lead. Positions, and

sizes of lead and sources are described more clearly in Fig.3.11. Spectrums display

and data analysis are managed by Microcal Origin 6.0. Energies for calibration is

provided by Spectrum Techniques, Ins (Appendix A and Appendix B).

3.2.2. 152

Eu spectrum

Fig.3.12. Decay scheme of 152

Eu [15]

Fig.3.13. Spectrum of 152

Eu

244.69 keV

1818.8 keV

1874.3 keV

152Eu

1474.5 keV

695.6 keV

152Gd

8.17%

13.08%

27.9% EC/

72.1%

1752.5 keV

1507.8 keV

788.5 keV

344.5 keV

152Sm

1.70%

0.77%

21.35%

24.72%

1085.84 keV

1408.01 keV

964.08 keV

121.78 keV

344.28 keV

778.90 keV

Page 40: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[40]

Fig.3.12 is the decay scheme of 152

Eu with multi gamma energies ranging

from hundreds of keV to MeV. 152

Eu has two decay modes: electron capture and

eletron decay. Total number of detected events is 791342 after 1000 seconds of

measurement. Fig.3.13 is the spectrum of 152

Eu. In the spectrum we can see

apperances of some peaks which is accumulated by emitted photons or scattered

photons. Peak of 72.9 keV is X-rays peak, and peak of 36.6 keV is maybe created

from background radiation. Some energy peaks cannot be performed due to their

low intensities.

3.2.1. 133

Ba spectrum

`

Fig.3.14. Decay scheme of 133

Ba [15]

Fig.3.15. Spectrum of 133

Ba

14%

133Ba

86% 437.013 keV

383.851 keV

160.614 keV

80.997 keV

133Cs

356 keV

383.85 keV

302.85 keV

80.997 keV

EC

Page 41: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[41]

Fig.3.14 is the decay scheme of electron capture mode, as the only decay

mode, of 133

Ba. Total number of detected events is 726745 after 1000 seconds of

measurement. Fig.3.15 is the display of 133

Ba spectrum with energy peaks of

80.1 keV, 302.9 keV, 356 keV, and X-ray peak 33.1 keV. We can see that energy

peak of 383.85 keV is not performed due to its low intensity.

Both measurements result nearly the same number of detected events. The

reason for this similarity is mainly caused by the DAQ speed of MCA. The DAQ

speed is just 0.32msec/event wheather the other analog devices’ acquisition is about

microsecond or nanosecond to amplify and shape time for a signal [14], [16].

3.2.3. Gamma detection response

Table 3.8. Results of photo peak energies of 152

Eu

Radioisotope Energy (keV) Channel

152Eu

121.78 220

244.70 462

344.28 653

778.90 1503

964.08 1830

1085.90 2096

1408.00 2650

Since 152

Eu has more photon energies than 133

Ba does, 152

Eu is used to

evaluate the energy calibration, and 133

Ba is used to evaluate the accuracy of

calibration equation. With detected different energy peaks of 152

Eu, channels

(positions of peaks) are looked for. Based on collected information, energy

calibration equation is computed afterward. Table 3.8 is indicated energy peaks and

channels. Fig.3.16 is graph of energy calibration.

Page 42: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[42]

Fig.3.16. Graph of energy calibration

Equation 3.6 is the energy calibration equation with correlation coefficient

(R-square) is 0.99977.

Energy(keV) = (0.487 ± 8.061) + (0.525 ± 0.005)Channel (3.6)

2 2

2 2 2E EE a b

a b

(3.7)

2 2 2

E a b( x ) (3.8)

With the equation 3.7 and found channels of 133

Ba, we calculate the fitted

energies, and the deviations of fitted energies are computed by equation 3.8, with E

is energy (keV), x is channel, a is equal to 0.487, b is equal to 0.525, aσ is equal to

8.061, and b is equal to 0.005. As we can see in Table 3.8, every real energy is in

range of fitted energy increased or decreased by deviation. Therefore, we can

conclude that gamma spectroscopy using NaI(Tl) 3inch x 3inch detector and MCA

(Flash-ADC/FPGA) shows good linearity response.

Page 43: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[43]

Table 3.9. Fitted energy and energy deviation of 133

Ba

Energy (keV) Channel Fitted Energy (keV)

80.10 143 75.562 8.093

302.90 572 300.787 8.553

356.00 677 355.912 8.743

3.2.4 Energy resolution

To figure the energy resolution of the gamma spectroscopy, we use origin 6.0

to fit Gaussian measured points. Result of this work is mean and FWHM of each

gaussian peak. Fig.3.17 shows measured points in peak of 344.28 keV and Gaussian

fit line in 152

Eu spectrum.

Fig.3.17. Gaussian fit in Origin 6.0

With correlation coefficient of each fitted Gaussian peak is quite good,

computation of energy resolution is worked out by equation 3.9.

FWHM

Resolution(%) = x100Mean

(3.9)

Page 44: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[44]

Table 3.10 shows the energies, mean, FWHM, resolution (R), and correlation

coefficient. Fig.3.18 is graph of energy resolution. In comparison to many theses,

the energy resolutions here is not good although energy peaks are fitted many times.

However, the energy resolutions is quite good for a gamma spectroscopy using

NaI(Tl) detector (resolution of energy of about 1MeV is 7% [12], but 6% with

1085keV, and 4.9% with 964.08keV in this experiment).

Table 3.10. Obtained results of Gaussian fit

Radioisotopes Energy (keV) Channel FWHM R (%) R-square

152Eu

121.78 220 27.9 12.6 0.972

244.70 462 43.3 9.4 0.971

344.28 654 54.8 8.4 0.990

778.90 1503 85.3 5.7 0.905

964.08 1830 91.0 4.9 0.890

1085.90 2096 126.1 6.0 0.964

1408.00 2650 133.3 5.0 0.954

133Ba

80.10 143 25.6 17.9 0.98

302.90 572 43.2 7.6 0.976

356.00 677 57.1 8.4 0.996

Fig.3.18. Graph of energy resolution

Page 45: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[45]

Modifying VHDL for MCA (Flash-ADC/FPGA) by building a histogram

inside FPGA chip aims some benefits. By varying frequencies of input pulses, the

greatest speed of MCA (Flash-ADC/FPGA) is evaluated about 3052 events per

second, or 0.32 milisecond to detect and process a pulse. The speed with new

modified VHDL code is three times higher than the speed of the old one. MCA

(Flash-ADC/FPGA) now can be used in higher dose rate measurements. Parameters

in LabVIEWTM

is manipulated as the most suitable to detect all pulses with variety

of amplitudes from Flash-ADC.

With the equation 3.4, the gamma spectroscopy using NaI(Tl) 3inch x 3inch

detector and MCA (Flash-ADC/FPGA) satisfies experiments with energy range of

2.1MeV with same set up parameters in Table 3.4. Additionally, a huge advantage

of the MCA (Flash-ADC/FPGA) is an ability to focus on smaller or larger energy

range by changing parameters in LabVIEWTM

interface, high voltage supply and

amplifier. Energy resolution of the gamma spectrosopy used in this thesis is quite

good in comparison with resolution of NaI(Tl) detector usually known.

Page 46: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[46]

CONCLUSIONS

In this thesis, the problem with data transmission via COM port RS-232

connecting between MCA (Flash-ADC/FPGA) is solved by creating a Histogram

Memory right inside FPGA chip to separate transmitting data to computer and

writing data to MCA (Flash-ADC/FPGA). With some experiments, the highest

speed of MCA (Flash-ADC/FPGA) is figured at 3052 events per second. The speed

with new solution is suitable for higher dose rate (about three times higher)

radiation sources measurements in comparison with the old solution. However, the

speed is much slower compared with other commercial MCA of Canberra or Ortec

[15], [17]. Therefore, MCA (Flash-ADC/FPGA) is good enough in purpose of low

dose rate experiments. The most suitable parameters are found out to detect and

process all pulses with variety of amplitudes from free-running Flash-ADC.

In purpose of evaluation with real nuclear physics experiments, the MCA

(Flash-ADC/FPGA) is included in a gamma spectroscopy using NaI(Tl) 3inch x

3inch detector. Experiments are carried out with two standard radioisotopes 133

Ba (

0.1μCi ) and 152

Eu (1.05μCi ) with multi energies ranging from tens of keV to MeV.

Calibration equation is built by energy peaks and corresponding channels has a

quite good linearity with correlation coefficient is 0.99982.

Energy(keV) = (0.487 ± 8.061) + (0.525 ± 0.005)Channel

The gamma spectroscopy using the MCA (Flash-ADC/FPGA) can work with

high energy sources, up to about 2.1 MeV. Moreover, the energy resolution is quite

good with resolution of 6.0% of 1085keV. In addition to the benefit of MCA (Flash-

ADC/FPGA) in nuclear physics experiments, we can talk about the changeable

parameters in LabVIEWTM

interface helps us focus on considered energy range with

good resolution by using charge integration to accumulate a radiation histogram.

Page 47: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[47]

PROPOSALS

To speed up the DAQ of MCA (Flash-ADC/FPGA) more, we must change the

frequency of each component in VHDL code and also transmit data via another

transmission cable. In future work, data will be transmitted via USB (Universal

Serial Bus) port for the speed of 480Mbytes/sec.

If there was more time available, some other experiments to figure the

efficiency, dead time, etc. would be carried out to find all responses of a gamma

spectroscopy. Those responses are foundations for further developments. The

results are foundations for further development of MCA (Flash-ADC/FPGA).

Page 48: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[48]

REFERENCES

Vietnamese references:

[1] Trần Phong Dũng, Châu Văn Tạo, Nguyễn Hải Dương (2003), Phương

pháp ghi bức xạ ion hóa, Nhà xuất bản Đại học Quốc Gia TP.HCM

[2] Nguyễn Quốc Hùng (2011), Xây dựng chương trình nhúng VHDL tính các

thông số đặc trưng cho hệ MCA (Flash-ADC/FPGA), Master of Science

thesis, Can Tho University.

[3] Võ Mạnh Huỳnh (2011), Khảo sát phổ gamma của một số mẫu môi trường

bằng detector HPGe với hệ MCA (Flash-ADC/FPGA), Master of Science

thesis, Can Tho University.

English references:

[4] Cyclone II Device Handbook, Volume 1 (2006), ALTERA, Co.

http://www.altera.com/literature/lit-cyc2.jsp

[5] Christian Baumann (2010), Field Programmable Gate Array (FPGA),

University of Innbruck, Austria.

http://informatik.uibk.ac.at/teaching/ws2009/esa/fpga.pdf

[6] Stephen Brown and Jonathan Rose (1996), Architecture of FPGAs and

CPLDs: A Tutorial, University of Toronto, Canada.

http://www.eecg.toronto.edu/~jayar/pubs/brown/survey.pdf

[7] Charge Integration: Analog Vs. Digital (2010), CAEN, Inc.

http://www.caen.it/documents/News/9/Analog_digital_app_note.pdf

[8] João M. Cardoso, Vitor Amorim, Rui Bastos, Rui Madeira, J. Basílio

Simões, and Carlos M. B. A. Correia (2001), “A Very Low-Cost Portable

Multichannel Analyzer”, 2000 IEEE Nuclear Science Symposium

Conference Record Cat No00CH37149, pages: 12/164 – 12/167.

[9] Sebastian Hoyos (2009), Flash-ADC, Texas A&M University, USA.

http://amesp02.tamu.edu/~jsilva/610/Lecture%20notes/Flash.pdf

Page 49: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[49]

[10] Yohei Ihara, Wataru Kada, Fuminobu Sata, Toshiyuki Ilda, Junji

Yamamoto, Sumasu Yamada, Tetsuo Horiguchi, and Kengo Hashimoto

(2011), “Development of Compact Pulse Height Analyzer Modules Based

on FPGA for E-Learning Type Exercises on Nuclear Reactor”, NUCLEAR

SCIENCE and TECHOLOGY, Vol. 1, pages: 244 – 247.

http://www.aesj.or.jp/publication/pnst001/data/244.pdf

[11] Glenn F. Knoll (1999), Radiation Detection and Measurement – Third

Edition, John Wiley & Sons, Inc., USA.

[12] William R. Leo (1993), “Techniques for Nuclear and Particle Physics

Experiments” – Second Revised Edition, Springer – Verlag Press.

[13] Nguyễn Thành Trực (2010), 250MSa/s FADC and FPGA for Cosmic ray

measurement system, Bachelor of Science thesis, University of Science, Ho

Chi Minh city.

Websites:

[14] http://www.canberra.com

[15] http://www.nucleide.org

[16] http://www.ortec.com

Page 50: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[50]

APPENDIX A: ENERGY PEAKS AND INTENSITIES OF 133

Ba

Certificate of Calibration by SPECTRUM TECHNIQUES, Inc.

(detected by HPGe detector whose effciency was established with NIST traceable

mixed nuclide standard SRS: 80899-854)

Radionuclide: Ba133

Half-Life: 10.51 years

Decay Constant: 0.0001808

Calibration Date: Feb 17th

, 2012

Activity: 0.10 Ci = 3.552 Bq

Table A. Photon energy (keV) and Intesity of 133

Ba detected by HPGe

Photon Energy

(keV)

Intensity

(%)

80.1 28.58

276.4 7.58

302.9 26.5

356 2.23

383.9 2.82

Page 51: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[51]

APPENDIX B: ENERGY PEAKS AND INTENSITIES OF 152

Eu

Certificate of Calibration by SPECTRUM TECHNIQUES, Inc.

(detected by HPGe detector whose effciency was established with NIST traceable

mixed nuclide standard SRS: 80899-854)

Radionuclide: Eu152

Half-Life: 13537 years

Decay Constant: 0.0512

Calibration Date: Feb 13th

, 2012

Activity: 1.05 Ci = 38850 Bq

Table B. Photon Energy (keV) and Intensity of 152

Eu detected by HPGe

Photon Energy

(keV)

Intensity

(%)

121.78 28.58

244.7 7.58

344.28 26.5

411.12 2.23

443.97 2.82

778.9 12.94

867.38 4.25

964.08 14.61

1085.74 10.21

1089.74 1.73

1112.07 13.64

1212.95 1.42

1299.14 1.62

1408.01 21.01

Page 52: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[52]

APPENDIX C: DAQ SPEED WITH OLD VHDL CODE

Table C. DAQ speed and detected events per second with old VHDL code

Frequency

(Hz)

DAQ speed

(ms/event)

Events/sec

(sec-1

)

12 54.67 18.29

95 5.5 181.82

380 1.83 547.45

1526 1.93 517.98

6104 1.52 657.4

12207 1.12 893.78

97656 0.94 1068.85

Base on the information from Table C, we have a linear equation between

number of acquired events per second and frequencies:

Y = (22.2430 28.5028) + (1.3980 0.1260)×X

Fig.C. DAQ of MCA with old VHDL code

Page 53: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[53]

APPENDIX D: MEGAWIZARD PLUG-IN MANAGER

Fig.D. MegaWizard Plug-In Mangager

The MegaWizard Plug-In Manager is a very convenient tool of Quartus II 9.0

software. In the VHDL code embedded into FPGA chip, MegaWizard is included in

some component to limit the memory must be used. The Histogram Memory is

created based on RAM-3PORT, which is also an application of MegaWizard.

Page 54: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[54]

APPENDIX E: WRITING DATA PROCESS IN VHDL CODE

WHEN s2_hiA_0=>

rdpointer_hiA1<=X"000”;

wrpointer_hiA <=X"000";

data_hiA:=X"0000";

data_hiA_in<=X"0000";

s2<=s2_hiA_1;

WHEN s2_hiA_1 =>

rdpointer_hiA1<=sumA(12 DOWNTO 0);

IF sumA<=X"FFF" THEN

s2<=s2_hiA_11;

ELSE

s2<=s2_idle;

END IF;

WHEN s2_hiA_11=>

s2<=s2_hiA_12;

WHEN s2_hiA_12=>

s2<=s2_hiA_2;

WHEN s2_hiA_2 =>

data_hiA:=data_hiA1_out+1;

wrpointer_hiA<=sumA(12 DOWNTO 0);

s2<=s2_hiA_3;

WHEN s2_hiA_3 =>

data_hiA_in<=data_hiA;

s2<=s2_hiA_record;

WHEN s2_hiA_record=>

s2<=s2_idle;

Page 55: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[55]

APPENDIX F: CONTINUOUS READING PROCESS IN VHDL CODE

WHEN h2_idle =>

ready_out <= '0';

rdpointer_hiA2 <=

'0'&X"000";

str <= '0';

IF (go_sync = '1') THEN

IF stop_sync='1' THEN

h2 <= histo_1;

rdpointer_hiA2

<= '0'&X"000";

ELSE h2<=h2_dump_1;

END IF;

END IF;

WHEN h2_dump_1 =>

IF dump_busy_sync = '0'

THEN

h2 <= h2_dump_2;

END IF;

WHEN h2_dump_2 =>

dump_out_2(31 DOWNTO 0)

<=count_event(31 DOWNTO 0);

dump_out_1(31 DOWNTO

16)<="000"& rdpointer_hiA2;

dump_out_1(15 DOWNTO 0)

<=data_hiA2_out;

str <= '1';

IF dump_busy_sync ='1' THEN

h2 <= h2_dump_3;

END IF;

WHEN h2_dump_3 =>

str <= '0';

rdpointer_hiA2 <=

rdpointer_hiA2+1;

IF rdpointer_hiA2

='1'&X"FFF" THEN

h2 <= h2_idle;

ELSE

<=h2_dump_1;

END IF;

Page 56: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[56]

APPENDIX G: FREQUENT READING PROCESS AND RESETTING

HISTOGRAM MEMORY PROCESS IN VHDL CODE

WHEN histo_1=>

IF dump_busy_sync = '0'

THEN

h2 <= histo_2;

END IF;

WHEN histo_2 =>

dump_out_2(31 DOWNTO 0)

<=count_event(31 DOWNTO 0);

dump_out_1(31 DOWNTO 16)

<="000"&rdpointer_hiA2;

dump_out_1(15 DOWNTO 0)

<=data_hiA2_out;

str <= '1';

IF dump_busy_sync ='1' THEN

h2 <= histo_3;

END IF;

WHEN histo_3 =>

str <= '0';

rdpointer_hiA2 <=

rdpointer_hiA2+1;

IF rdpointer_hiA2

='1'&X"FFF" THEN

h2 <= h2_reset_1;

ELSE h2<=histo_1;

END IF;

WHEN h2_reset_1=>

wrpointer_hiA <='0'&X"000";

data_hiA_in<=X"0000";

h2 <= h2_reset_2;

WHEN h2_reset_2 =>

wrpointer_hiA <=

wrpointer_hiA + 1;

IF wrpointer_hiA='1'&X"FFF"

THEN

h2 <= h2_reset_3;

END IF;

WHEN h2_reset_3 =>

count_event<=X"00000000";

IF stop_sync='0' THEN

h2<=h2_idle;

END IF;

Page 57: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[57]

APPENDIX H: STOP PROCESS IN VHDL CODE

Stopprocess:PROCESS (clock)

VARIABLE cnt: integer:=0;

BEGIN

IF clock'EVENT AND clock = '1' THEN

CASE st IS

WHEN st_idle=>

stop_sync <= '0';

cnt:=cnt+1;

IF cnt=50000000 then

cnt:=0;

IF count_time>=Time_in THEN

st<=st_tick; count_time<=X"0000";

ELIF count_time<Time_in THEN

count_time<=count_time+1;

END IF;

END IF;

WHEN st_tick=>

stop_sync <= '1';

IF (h2 = h2_reset_3) THEN

st<=st_idle; stop_sync <= '0';

END IF;

END CASE;

END IF;

END PROCESS Stopprocess;

Page 58: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[58]

APPENDIX I: PULSE GENERATING WITH VHDL CODE

Library IEEE, SYNOPSYS;

use IEEE.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

use SYNOPSYS.attributes.all;

entity pulse_generator is

generic(width : integer := 0;freq: integer := 13);

--width=integer*8nsec; freq=25MHz/(2^(integer+1))

port (

LED : out std_logic_vector(3 downto 0);

NIM_IN : in std_logic_vector(15 downto 0);

L_AD : in std_logic_vector(7 downto 0);

L_DATA : inout std_logic_vector(15 downto 0);

L_RS : in std_logic;

L_WS : in std_logic;

L_ACK : out std_logic;

L_ATT : out std_logic;

L_RES : in std_logic;

LVDS_OUT : out std_logic_vector(15 downto 0);

TTL_OUT : out std_logic_vector(7 downto 0);

NIM_OUT : out std_logic_vector(7 downto 0);

CLK25 : in std_logic

);

end;

architecture Behavior of pulse_generator is

COMPONENT ALTPLLa is

PORT

Page 59: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[59]

(

inclk0 : IN STD_LOGIC ;

c0 : OUT STD_LOGIC

);

END COMPONENT;

signal time : std_logic_vector(31 downto 0);

signal clk_out : std_logic;

signal out_delay : std_logic_vector(width downto 0);

signal sig_out_delay : std_logic;

--signal sig_out_delay1 : std_logic;

signal out_width : std_logic_vector(width downto 0);

signal sig_out_width : std_logic;

signal out_pulse : std_logic_vector(width downto 0);

signal sig_out_pulse : std_logic;

signal coin : std_logic;

BEGIN

clk200 : ALTPLLa

port map (inclk0=>CLK25,c0=>clk_out);

---------------------- GENERATE CLOCK ---------------------------------------------

generate_clock : process (CLK25) is

begin

if CLK25'event and CLK25 = '1' then

time <= time + 1;

end if;

end process generate_clock;

---------------------- DELAY SIGNAL -------------------------------------------------

delay: process (clk_out) is

Page 60: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[60]

variable i : integer ;

begin

if clk_out'event and clk_out = '1' then

out_delay(0) <= time(freq);

out_width(0) <= time(freq);

for i in 0 to (width-1) loop

out_delay(i+1) <= out_delay(i);

-- out_width(i+1) <= out_width(i) or time(freq);

end loop;

end if;

sig_out_delay <= out_delay(width);

-- sig_out_width <= out_width(width-1);

-- sig_out_delay1 <= out_delay(width-250);

-- NIM_OUT(6) <= sig_out_delay; NIM_OUT(7) <=

sig_out_width;

-- NIM_OUT(5) <= sig_out_width and not sig_out_delay;

NIM_OUT(4) <= clk_out and sig_out_delay;

-- NIM_OUT(1) <= sig_out_delay;

-- NIM_OUT(2) <= sig_out_width;

NIM_OUT(6) <= clk_out and (time(freq) and not sig_out_delay);

-- NIM_OUT(0) <= NIM_IN(0) and NIM_IN(1);

-- NIM_OUT(4) <= sig_out_width and not sig_out_delay;

-- NIM_OUT(4) <= time(9);

-- NIM_OUT(5) <= time(freq);

NIM_OUT(5) <= clk_out;

-- TTL_OUT(7 downto 0) <= ('1','1','1','1','1','1','1','1');

-- TTL_OUT(0)<= time(freq)and not sig_out_delay;

LED(1) <= time(freq)and not sig_out_delay;

Page 61: Development of Flash-ADC/FPGA for gamma spectroscopy using NaI(Tl) 3inchx3inch

[61]

NIM_OUT(0)<=time(freq)and not sig_out_delay;

NIM_OUT(1)<=time(freq)and not sig_out_delay;

TTL_OUT(0) <= '1';

-- NIM_OUT(6) <= time(7);

LED(0)<='1';

end process delay;

--coincidence: process (clk_out) is

-- begin

-- coin <= NIM_IN(0) and NIM_IN(1);

-- NIM_OUT(7) <= coin;

-- end process coincidence;

----------------------- GENERATE PULSE FROM DELAY AND WIDTH ------------

----------------

END Behavior;