821 research outputs found
Development and Analysis of Non-Delay-Line Constant-Fraction Discriminator Timing Circuits, Including a Fully-Monolithic CMOS Implementation
A constant-fraction discriminator (CFD) is a time pick-off circuit providing time derivation that is insensitive to input-signal amplitude and, in some cases, input-signal rise time. CFD time pick-off circuits are useful in Positron Emission Tomography (PET) systems where Bismuth Germanate (BGO)/photomultiplier scintillation detectors detect coincident, 511-keV annihilation gamma rays.
Time walk and noise-induced timing jitter in time pick-off circuits are discussed along with optimal and sub-optimal timing filters designed to minimize timing jitter. Additionally, the effects of scintillation-detector statistics on timing performance are discussed, and Monte Carlo analysis is developed to provide estimated timing and energy spectra for selected detector and time pick-off circuit configurations. The traditional delay-line CFD is then described with a discussion of deterministic (non statistical) performance and statistical Monte Carlo timing performance. A new class of non-delay-line CFD circuits utilizing lowpass- and/or allpass-filter delay-line approximations is then presented. The timing performance of these non-delay-line CFD circuits is shown to be comparable to traditional delay-line CFD circuits.
Following the development and analysis of non-delay-line CFD circuits, a fully-monolithic, non-delay-line CFD circuit is presented which was fabricated in a standard digital, 2-μ, double-meta], double-poly, n-well CMOS process. The CMOS circuits developed include a low time walk comparator having a time walk of approximately 175 ps for input signals with amplitudes between 10-mV to 2000-mV and a rise time (10 - 90%) of 10 ns. Additionally, a fifth-order, continuous-time filter having a bandwidth of over 100 MHz was developed to provide CFD signal shaping without a delay line. The measured timing resolution (3.26 ns FWITh1, 6.50 ns FWTM) of the fully-monolithic, CMOS CFD is comparable to measured resolution (3.30 ns FWHM, 6.40 ns FWTM) of a commercial, discrete, bipolar CFD containing an external delay line. Each CFD was tested with a PET EGO/photomultiplier scintillation detector and a preamplifier having a 10-ns (10 - 90%) rise-time. The development of a fully-monolithic, CMOS CFD circuit, believed to be the first such reported development, is significant for PET and other systems that employ many front-end CFD time pick-off circuits
PORBS: A parallel observation-based slicer
Abstract—This paper presents PORBS, a parallelised
observation-based slicing tool. The tool itself is written in
Java making it platform independent and leverages the build
chain of the system being sliced to avoid the need to replicate
complex compiler analysis. The target audience of PORBS
is software engineers and researchers working with and on
tools and techniques for software comprehension, debugging,
re-engineering, and maintenance
A trajectory-based strict semantics for program slicing
We define a program semantics that is preserved by dependence-based slicing algorithms. It is a natural extension, to non-terminating programs, of the semantics introduced by Weiser (which only considered terminating ones) and, as such, is an accurate characterisation of the semantic relationship between a program and the slice produced by these algorithms.
Unlike other approaches, apart from Weiser’s original one, it is based on strict standard semantics which models the ‘normal’ execution of programs on a von Neumann machine and, thus, has the advantage of being intuitive. This is essential since one of the main applications of slicing is program comprehension. Although our semantics handles non-termination, it is defined wholly in terms of finite trajectories, without having to resort to complex, counter-intuitive, non-standard models of computation. As well as being simpler, unlike other approaches to this problem, our semantics is substitutive. Substitutivity is an important property becauseit greatly enhances the ability to reason about correctness of meaning-preserving program transformations such as slicing
Dependence Cluster Visualization
Large clusters of mutual dependence have long been regarded as
a problem impeding comprehension, testing, maintenance, and reverse
engineering. An effective visualization can aid an engineer
in addressing the presence of large clusters. Such a visualization is
presented. It allows a program’s dependence clusters to be considered
from an abstract high level down thru a concrete source-level.
At the highest level of abstraction, the visualization uses a heat-map
(a color scheme) to efficiently overview the clusters found in an entire
system. Other levels include three source code views that allow
a user to “zoom” in on the clusters starting from the high-level system
view, down through a file view, and then onto the actual source
code where each cluster can be studied in detail.
Also presented are two case studies, the first is the open-source
calculator bc and the second is the industrial program copia, which
performs signal processing. The studies consider qualitative evaluations
of the visualization. From the results, it is seen that the visualization
reveals high-level structure of programs and interactions
between its components. The results also show that the visualization
highlights potential candidates (functions/files) for re-factoring
in bc and finds dependence pollution in copia
Assessing the impact of global variables on program dependence and dependence clusters
This paper presents results of a study of the effect of global variables on the quantity of dependence in general and on the presence of dependence clusters in particular. The paper introduces a simple transformation-based analysis algorithm for measuring the impact of globals on dependence. It reports on the application of this approach to the detailed assessment of dependence in an empirical study of 21 programs consisting of just over 50K lines of code. The technique is used to identify global variables that have a significant impact upon program dependence and to identify and characterize the ways in which global variable dependence may lead to dependence clusters. In the study, over half of the programs include such a global variable and a quarter have one that is solely responsible for a dependence cluster
Coherent clusters in source code
This paper presents the results of a large scale empirical study of coherent
dependence clusters. All statements in a coherent dependence cluster depend
upon the same set of statements and a↵ect the same set of statements; a coherent
cluster’s statements have ‘coherent’ shared backward and forward dependence.
We introduce an approximation to efficiently locate coherent clusters and show
that it has a minimum precision of 97.76%. Our empirical study also finds
that, despite their tight coherence constraints, coherent dependence clusters
are in abundance: 23 of the 30 programs studied have coherent clusters that
contain at least 10% of the whole program. Studying patterns of clustering in
these programs reveals that most programs contain multiple significant coherent
clusters. A series of case studies reveals that these major clusters map to logical
functionality and program structure. For example, we show that for the program
acct, the top five coherent clusters all map to specific, yet otherwise non-obvious,
functionality. Cluster visualization can also reveal subtle deficiencies in program
structure and identify potential candidates for refactoring e↵orts. Finally a
study of inter-cluster dependence is used to highlight how coherent clusters
built are connected to each other, revealing higher-level structures, which can
be used in reverse engineering
- …