Documentation generator for VHDL and Matlab source codes for photonic and electronic systems

B. Niton, K.T. Pozniak, R.S. Romaniuk Institute of Electronic Systems, Warsaw University of Technology, Nowowiejska 15/19 Warsaw, Poland

ABSTRACT

The UML, which is a complex system modeling and description technology, has recently been expanding its uses in the field of formalization and algorithmic approach to such systems like multiprocessor photonic, optoelectronic and advanced electronics carriers; distributed, multichannel measurement systems; optical networks, industrial electronics, novel R& solutions. The paper describes a new concept of software dedicated for documenting the source codes written in VHDL and MatLab. The work starts with the analysis of available documentation generators for both programming languages, with an emphasis on the open source solutions. There are presented own solutions which base on the program available as a free license with the . The supporting tools for parsers building were used like Bison and Flex. The documentation generator application is used for design of large optoelectronic and electronic measurement and control systems. The paper consists of three parts which describe the following components of the documentation generator for photonic and electronic systems: concept, MatLab application and VHDL application. This is part one which describes the system concept. Part two describes the MatLab application. MatLab is used for description of the measured phenomena. Part three describes the VHDL application. VHDL is used for behavioral description of the optoelectronic system. All the proposed approach and application documents big, complex software configurations for large systems. Keywords: optical networks, large electronic and optoelectronic systems, documentation, source codes, VHDL, Matlab, Doxygen, UML, MatLab algorithms for large functional systems, VHDL description of complex systems, photonics applications, software for photonics and electronics systems

1. INTRODUCTION Documenting of the complex source codes for large systems is usually a tiresome and work consuming process. It was soon decided to try to automatize this process, at least in the critical parts. A number of tools was prepared. These are called documentation generators for source codes. Large optoelectronic and electronic systems, including optical networks, are now managed by complex codes including MatLab, ++, VHDL and others. A proper documentation is a must. Properly documented code is simpler for further application, where the functions, classes, or other language structures are described. The software engineer may faster determine their tasks in the program. Additionally, proper documentation of the source codes helps in the realization of larger projects, on which are working larger groups of . It is much simpler to combine two software modules written by two different persons, when there is an access to their full documentation. A properly written code fosters the discovery of errors in the project and facilitates the usage (re-usage) of its fragments in other applications under development. Proper documenting of program source codes brings only the advantages. It is, however, frequently one of the last stages in the project realization, for which there is nearly no time. Documentation is sometimes omitted due to lack of time, lack of resources, or small emphasis put on this subject. Preparation of a separate document describing the implementation, and done in parallel with writing of the source code is tiresome and quite awkward. Documentation generators seem to be efficient and irreplaceable. They describe programs in a standardized and succinct, yet satisfactory, way. They use for description the comments left directly in the source code. They also use for description the alone structure of the code. The information in the source code is easy to be updated. It is enough to

Optical Fibers and Their Applications 2011, edited by Jan Dorosz, Ryszard S. Romaniuk, Proc. of SPIE Vol. 8010, 80100R · © 2011 SPIE · CCC code: 0277-786X/11/$18 · doi: 10.1117/12.898392

Proc. of SPIE Vol. 8010 80100R-1

Downloaded from SPIE Digital Library on 25 Jun 2011 to 194.29.135.8. Terms of Use: http://spiedl.org/terms change the comments while rewriting the source code. Usage of the description generator instead is useful for the software engineer, as the information contained in the code is transformed automatically to the user friendly format. The documentation generators may be divided according to the output format they give. Some documentation generators are available via the web and give the output in the HTML format. Some of them generate printable forms like ps, or rtf. Some of them describe only the code structure and give the output in the XML format. The documentation generators, for the source codes, usually give more than a single output format. They may generate several formats, depending on the user’s choice. The most popular output form, sometimes the only one, without any other choice is the HTML [2-40, 45-46]. Multiple output forms are available from the following generators: Ddoc, ROBODoc, fpdoc and Doxygen [9, 15, 33, 45]. Now, the available description generators are complex systems which may do the documentation for numerable programming languages, with this ability sometimes simultaneously embedded in a single product [2-40, 45-46]. Only few documentation generators provide cooperation with the hardware description languages, as for example the VHDL. The majority of documentation generators is dedicated for high level languages, omitting however the MatLab. Own research on the automatic generation of the documentation of source codes written in the VHDL shown that there is a serious, and not yet filled, niche in this area. One of the exceptions in this are is the Doxygen, an advanced program offering a wide choice of the output formats and the supported programming languages (input formats) [45]. The second versatile program is VHDLDOC written by CERN [39], and targeting the local needs to build large photonic and electronic systems not only but predominantly for high energy physics experiments. The system is, of course, easily adaptable for industrial conditions. The biggest advantage of these two programs is that they are free and available on GPL license. This means open access to their source codes. Representatives of commercial programs generating documentation for the VHDL are: TwinText and UniversalReport [34, 35]. The most universal tools in the debated area are offered by advanced programs generating documentation for arbitrary language, supplemented with any sort of comments. This group or programs includes: ROBODoc and NaturalDocs [27, 33]. The most frequently used programs in the academic environment are Doxygen and VHDLDOC. Only few programs generate documentation for MatLab. One of such applications is M2HTML [40], which is written in the MatLab code. The documentation is generated in the HTML format. An essential drawback of this program is that it does not support for documentation of classes and inheriting mechanisms from the MatLab language. The alternative solutions are in the commercial programs like Doc-o-Matic and UniversalReport, as well as the documentation mechanism embedded in the MatLab [11. 35]. The comments are added to the m-files. The comments may be browsed using the MatLab help request with the following arguments: file name, function, class, even the whole folder name [41]. There is no possibility, however, in the MatLab to combine all the comments (and other auxiliary data on the source code) into a single homogeneous help structure, linked for example by means of hyperlinks. Summing up this digest of available resources in the area of documentation generation, there is no a single application available, which is free, complete, separated from the source code, for the MatLab. The documentation generators, apart from the standard functionalities, offer many additional tools, like: • Graphs drawing; • Fitting of the output formats for the components according to the user’s demand; • Underlining and lighting with colors the key words [2-40, 45, 46]. One of the additional functionalities of the documentation generators is drawing of graphs. The graphs present in a hermetic way the code structure, all embedded dependencies, sequence of the called functions in a descending or ascending way. A particularly useful possibility is to generate the graphs which are in agreement with the UML standard. The most frequently generated graphs are inheritance diagrams. The most flexible generators of this kind are the following applications: ProjectAnalyzer, EnterpriseArchitect and Imagix4D [21, 31, 46]. This paper presents an original, offered as free, documentation generator for the source codes from MatLab and from the VHDL. The application generates additionally class graphs in agreement with the UML standard.

Proc. of SPIE Vol. 8010 80100R-2

Downloaded from SPIE Digital Library on 25 Jun 2011 to 194.29.135.8. Terms of Use: http://spiedl.org/terms 2. FUNCTIONAL DESIGN OF GENERATOR Realization of the Project was divided to three stages: choice of a basic documentation generator, supplementing the generator with support for the VHDL and MatLab languages, adding a generator of class graphs compatible with the UML standard for the listed languages. The functional diagram of the designed generator was presented in fig.1.

Base Support for UML class VHDL documentation documenting diagrams Matlab generator Matlab and generator VHDL

Figure 1. Functional diagram of designer documentation generator. 2.1 Choice of the basic documentation generator The documentation generators were considered for the following features: availability of the source codes, support for the MatLab and VHDL environments, generation of class graphs in the UML standard, generated output in the HTML form [1]. The HTML form is treated as the most natural form of the output. One of the issues is user friendliness of the documentation generator measured by the readability and esthetic look of the description manuals. There are not available full featured, non-commercial documentation generators for the MatLab source codes. Thus, we considered also solutions for the VHDL. Work with the VHDLDOC and Doxygen program codes, which service VHDL is possible without any confinement due to the GPL (general public license). 2.2 Graph classes compatible with the UML standard The VHDLDOC application, apart from the possibility to add earlier prepared graphs, does not have a standalone ability to generate any graphs. The Doxygen gives the designer a possibility to generate the graph and function calls, affiliations, and inheritance diagrams. The graphs may be generated internally by Doxygen function and with the use of an external program . The second option enables generation of UML like graphs, what is shown in fig.2. The inheritance diagram from fig.2., generated by Doxygen, is not fully compatible with the UML standard. There are presented relations between the architectures (yellow color of nodes) and design entities (white color of nodes). The structures were presented as inheritance relations, which is not optimal presentation of the holding dependencies between these entities. The UML standard is not, from the assumption, designer for the Hardware Description Lannguages (HDL). However, a more adequate graph may be generated for such a case. More optimal here seems to be a relation of aggregation. 2.3 HTML format VHDLDOC and Doxygen possess the possibility to generale the documentation in the HTML format. The advantage of Doxygen is the possibility to generate the documentation also in other formats. Figure 2. Inheritance diagram generated by From the visual point of view, the HTML pages generated by Doxygen are more Doxygen attractive. Doxygen gives the user a possibility, at least partly, to define the details of the generated HTML format. Both analyzed programs, in a similar level, fulfill the assumed criteria, but Doxygen seems to be a more universal tool. It supports the following languages: C++, C, Java, Objective-C, Python, IDL, , VHDL, PHP, C#, and partly D.

Proc. of SPIE Vol. 8010 80100R-3

Downloaded from SPIE Digital Library on 25 Jun 2011 to 194.29.135.8. Terms of Use: http://spiedl.org/terms Doxygen generates different output formats: HTML, LaTeX, RTF, PostScript, hyperlinked PDF, compressed HTML, XML and Unix man pages. It provides many additional functionalities, what makes it competitive with other solutions. It operates in a variety of operational systems and platforms like Unix, , Windows, Mac OS X. Doxygen was chosen for the engineering project to supplement with the additional functionalities. Doxygen is an application dynamically developed on-line by numerous software engineers. It contains a lot of hints and help files for persons who want do develop this program. The development instructions are included in the manual and in the source code of the program. More information about Doxygen can be found in [45]. 2.4 Additional modules To extend the Doxygen functionalities with the support for MatLab, and graph class generator compatible with the UML standard for VHDL, two module were appended, which preform these tasks. 1. Module for automatic documentation of MatLab script The main aim to realize the module was to extend the Doxygen with the support for MatLab. The module has to realize as many functionalities offered by Doxygen to other programming languages as possible and in the same way, but for the MatLab. These functionalities are, for example: documenting of the source code on the basis of the comments or the code structure alone, errorless generation of documentation of global functions and classes. The module is assumed to be compatible with the current version of Doxygen (March 2011) but also compatible with the pervious Doxygen, i.e. below the version 7.6. Construction of the module was started with making the MatLab code parser using the Bison and Flex applications. The module is to be added to the existing structures of Doxygen which store the program data. In such a case the module would generate the Doxygen supported output formats. Default choice of the Doxygen for the source codes with extension ‘m’ or ‘M’ is the code parser Objective-C. The configuration file was added with the option defining these extensions, as the MatLab ones. The Doxygen provides the possibility to apply, in the comment blocks, special commands and signs having a direct influence on the generated output format and on the presentation of information. To provide the full functionality, it was necessary to introduce to the generated module relevant of the comments. The comments and signs found there, which are in the XML, HTML and LaTeX format, are interpreted appropriately. Their interpretation is analogous as for the rest of the supported languages by the Doxygen. The Doxygen is able to attach to the documentation re-edited source codes. It was necessary to add to the program an additional lexical analyzer, to provide full functionality of the designed module. The analyzer marks the key words, sign chains, comments, and adds links to the classes and functions, which were documented. The Flex application was used for this purpose. One of the necessary features is generation of the graphs relevant to the UML standard. From the assumption, all the mechanisms embedded in the Doxygen, and responsible for graph generation Figure 3. General for object oriented programming languages, were used. Correct generation of other graphs diagram of Matlab supported by the program was also assumed. The following assumptions hold for MatLab: files commenting automatic generation of relations, links, documentation search mechanisms. Fig.3 presents a general diagram for adding comments to the source code of the MatLab, in such a way to make them properly processable by the designed module. The methods of adding comments were defined in such a way as to make them analogous to other applications generating documentation for source codes of JavaDoc, Doc-o-Matic and Doxygen. The comments block in fig.3 is made of successive comments lines starting with the signs “%!”. The first line of comment block contains a short description of a component, followed by the next lines which contain the full component description. An arbitrary number of comment blocks may be used before the source code of classdef block, or function and script blocks. The next blocks should be separated by at least a single empty line. Each of the blocks describes a component defined by special commands of the Doxygen, or is ignored, in the opposite case. The last block appearing before the source code describes by default the class which is just behind it (classdef block), or function and script. The exception is when the Doxygen special commands define the actions in a different way. Special commands of Doxygen are defined in [45]. Figures 4, 5, and 6 present the way of commenting the class components for MatLab, for version 7.6 or above.

Proc. of SPIE Vol. 8010 80100R-4

Downloaded from SPIE Digital Library on 25 Jun 2011 to 194.29.135.8. Terms of Use: http://spiedl.org/terms

classdef classname properties PropName1 PropName2 … end methods

Declaration or definition of method methodName1

Declaration or definition of method methodName2 … end events EventName1 EventName2 … end end

Figure 4. A diagram of commenting for MatLab classes, version 7.6 or above. Assuming that on the beginning of the MatLab file, which defines a class (classdef block), there is only a single comment block, by default it is a class description. Each introduced class field (in properties block) or an event (in event block) may be described by a single line comment (starting with signs “%!”). This is a short description of the field or a class event. The functions introduced in the block class methods (methods) may be described by comment blocks which include short of full description.

function w=classConstructor(varargin) w.fieldName1 = 10; w.fieldName2 = 1; …

w = class(w,’className’); end

Figure 5. A diagram of class commenting for MatLab above ver.7.6. in the case of class field introduction via attribution.

Fig. 5 and 6 present a way of class documenting for MatLab version below 7.6. This version defines the classes fields inside the class constructors as a structure. Such a structure is initialized as a class by the class function. The class fields may be added by assigning or defining the whole structure as a unity.

Proc. of SPIE Vol. 8010 80100R-5

Downloaded from SPIE Digital Library on 25 Jun 2011 to 194.29.135.8. Terms of Use: http://spiedl.org/terms Fig.5. presents the way of comments for class fields in the case when they are addend via the attribution. Each newly added field may be described by a single line of comment (starting with signs “%!”), appearing after the field by the attribution. The comment block is here o description of the class constructor. Fig.6 presents a way of commenting of class fields in the case when the fields are added at the structure definition. Each newly added filed may be described with a single line of comment (starting with the sign string „%!”) appearing just after its definition in the structure. The comment block is here a description of the class constructor. Realization of the module should not influence the rest of the functionalities of the Doxygen, but should cooperate in a seamless way.

function tpl = classConstructor(varargin) tpl = struct('fieldName1','.'... ,'fieldName2',{{}} ... ,'fieldName3','remove'); tpl = class(tpl,'template'); end

Figure 6. Commenting scheme for classes in MatLab ver. 7.6 and above in the case of field introduction by structure definition.

2. Automatic module for MatLab documentation The class graph for VHDL, which is generated by Doxygen, is not compatible with the UML standard. Some of the standard components may be used in such a way as to make them show in a complete way the structure character of the designs described by VHDL. It was assumed that such a structure is not described by the inheritance relation. To describe the mutual relations, the aggregation relation was used instead. If the architecture description of an entity includes mapping of the ports in other entities, it means that it consists of them. Depriving such a structure from one of its internal components perturbs its work. It means that the structure is not filling its functions. Thus, the relations between the design entities, and their higher level structures should be realized in the form of a full aggregation relation. Dot Graphviz program was used for drawing the aggregation graphs. Dot Graphviz draws very complex graphs in a simple way. The graph nodes which present design entities, should be linked with the documentation generated for them by Doxygen. It was assumed that each graph node should contain information on entity name, architecture, port names together with data direction flows, sets of generics present in the entity description. It was assumed, that the arrows of the graph, apart from showing the dependency – internal structure to external structure, should also present a number of the design entities included in the higher level structure. The word “generate” was used to distinguish two cases - when the clause “generate” was used for mapping the ports instead of a number at the end of the arrow. Additional colors were introduced for graph nodes in order to distinguish if the entity is provided with additional information, or one knows only its name. Different color is used for the higher order structures of the whole project. Bison and Flex tools were used for parking the source code and for searching the entity blocks and architectures. The generated graph is added to the output HTML format by Doxygen, as an additional page called „Global Graphs” in the page section („Related Pages”). 2.5 Used noncommercial tools To realize the software the following noncommrcial programs were used: • Dot Graphviz – program for drawing graphs from files in the .dot format [42]; • Bison and Flex – tools supporting generation of parsers [43,44]; • Source code of Doxygen - Basic generator of documentation [45].

Proc. of SPIE Vol. 8010 80100R-6

Downloaded from SPIE Digital Library on 25 Jun 2011 to 194.29.135.8. Terms of Use: http://spiedl.org/terms 3. SUMMARY Increasingly complex software is used today to propel complex photonic and electronic systems. The software requires proper integration with the hardware and more and more extensive help and technical documentation descriptions to facilitate the work of system operators. The main aim of the presented project was to design and test of a program for automatic generation of documentation for the source codes in MatLab and in VHDL, with special attention for the HTML as the output format. The program was equipped with class graph generation ability compatible with the UML standard. Many additional functionalities of the final software product are available due to the integration of the new functionalities with the Doxygen [5]. Usage of ready functions partly automated the implementation process. A fully functional documentation generator was build for the MatLab. It may be used for many programming languages and supports numerable output formats. Exactly the same procedures were applied for MatLab as for other programming languages serviced by Doxygen. Thus, all the Doxygen functionalities act properly in reference to the MatLab, together with the generation of inheritance diagrams – which are compatible with the UML standard. The described documentation generator is used practically by the authors during the design, testing and commissioning phases of large photonic and electronic systems applied for R&D in HEP experiments and in industry. Some of these applications are listed in the references.

REFERENCES [1] http://www.literateprogramming.com/docuedu.pdf; [2] http://www.cppdoc.com/ - CppDoc Web page; [3] http://classdoc.sourceforge.net/ - Classdoc tool Web page; [4] http://www.pragmaticworks.com/products/business-intelligence/bidocumenter/Overview.aspx – BI Documenter; [5] http://www.literateprogramming.com/autoduck.pdf – Autoduck manual; [6] http://www.dbmanual.com/Features.aspx – DB Manual; [7] http://www.dbdesc.com/ - dbdesc program Web page; [8] http://www.leadum.com/sql-documentor.sql – DBScribe; [9] http://www.digitalmars.com/d/2.0/ddoc.html – D language specification; [10] http://code.msdn.microsoft.com/devscribe – devscribe; [11] http://www.doc-o-matic.com/editions_professional.html – Doc-O-Matic; [12] http://docpp.sourceforge.net/ - DOC++; [13] http://www.innovasys.com/products/dx2010/overview.aspx – Document! X; [14] http://epydoc.sourceforge.net/ - Epydoc; [15] http://www.freepascal.org/docs-html/fpdoc/fpdoc.html – fpdoc; [16] http://www.frasersoft.net/genhelp/ - GenHelp; [17] http://www.haskell.org/haddock/ - ; [18] http://developer.apple.com/opensource/tools/headerdoc.html - HeaderDoc; [19] http://www.htmlhelpgenerator.net/html_help_generator.htm – Help Generator; [20] http://projects.izzysoft.de/trac/hypersql/wiki/HyperSQL – HyperSQL; [21] http://www.imagix.com/products/source-code-analysis.html – Imagix 4D; [22] http://www.oracle.com/technetwork/java/javase/documentation/index-jsp-135444.html - Javadoc; [23] http://code.google.com/p/jgrousedoc/ - jGrouseDoc; [24] http://jsdoc.sourceforge.net/ - JSDoc; [25] http://code.google.com/p/jsdoc-toolkit/ - JsDoc Toolkit; [26] http://sirtaj.net/projects/kdoc/ - KDOC; [27] http://www.naturaldocs.org/languages.html – Natural Docs; [28] http://ndoc.sourceforge.net/ - NDoc; [29] http://www.phpdoc.org/ - phpDocumentor; [30] http://www.phpsimpledoc.org/ - phpSimpleDoc; [31] http://www.aivosto.com/project/project.html – Project Analyzer; [32] http://rdoc.sourceforge.net/ - RDoc; [33] http://www.xs4all.nl/~rfsber/Robo/ - ROBODoc;

Proc. of SPIE Vol. 8010 80100R-7

Downloaded from SPIE Digital Library on 25 Jun 2011 to 194.29.135.8. Terms of Use: http://spiedl.org/terms [34] http://www.ptlogica.com/TwinText/ - TwinText; [35] http://www.omegacomputer.com/home_feature.htm – Universal Report; [36] http://vbdox.sourceforge.net/ - VBDOX; [37] http://www.helixoft.com/vsdocman/overview.html – VSdocman; [38] http://yardoc.org/more – YARD; [39] http://schwick.home.cern.ch/schwick/vhdldoc/ - VHDLDOC; [40] http://www.artefact.tk/software/matlab/m2html/ - M2HTML; [41] http://www.mathworks.com/access/helpdesk/help/techdoc/learn_matlab/bqr_2pl.html – Matlab; [42] http://www.graphviz.org/ - Graphviz; [43] http://www.gnu.org/software/bison/manual/bison.html – Bisona; [44] http://www.digipedia.pl/man/doc/view/flex.1/ – Flexa; [45] doxygen_manual-1.6.3.pdf – Doxygen; [46] http://www.sparxsystems.com.au/products/ea/index.html - Enterprise Architect. [47] W.Ackerman, Nature Photonics 1 (6) 2007, pp.336-342 [48] S.Chatrchyan, et al., Journal of Instrumentation 3 (8) 2008, art. no.S08004 [49] A.Burd, et al., New Astronomy 10 (5) 2005, pp. 409-416 [50] A.Burd, et al., Astronomische Nachrichten 325 (6-8) 2004, pp.674 [51] A.Burd., et al., Proc.SPIE 6159, 2006, art. No.61590H [52] S.Stankiewicz, et al., IEEE Nuclear Science Symp., 2004, pp.400-404 [53] T.Czarski et al., NIMA 556 (2) 2006, pp.565-576 [54] K.T.Poźniak et al., Proc.SPIE 5775, 2005, art no.08, pp.69-77 [55] J.Dorosz et al., Optica Applicata 28 (4) 1998, pp.293-322 [56] W.Giergusiewicz, et al., Proc.SPIE 5948, 2005, art no.59482C [57] T.Czarski et al., NIMA 548 (3) 2005, pp.283-297 [58] A.Dybko et al., Sensors and Actuators B 51 (1-3) 1998, pp.208-213 [59] K.T.Poźniak, et al., Proc.SPIE 5775, 2005, art no.02, pp.9-21 [60] K.T.Pozniak et al., Proc.SPIE 5484, 2004, pp.130-138 [61] W.M.Zabolotny, et al., Proc.SPIE 5484, 2004, pp.171-179 [62] A.Dybko, et al., Sensors and Actuators B 39 (1-3) 1997, pp.207-211 [63] T.Czarski et al., NIMA 568 (2) 2006, pp.854-862 [64] P.Pucyk, et al., Proc.SPIE 5775, 2005, art no.06, pp.52-60 [65] T.Czarski et al., Proc.SPIE 5484, 2004, pp.69-87 [66] R.Romaniuk et al., Optica Applicata 29 (1) 1999, pp.15-49 [67] A.Dybko, et al., Proc.SPIE 3105, 1997, pp.361-366 [68] A.Dybko, et al., JAPL 59 (4) 1996, pp.719-723 [69] K.Perkuszewski et al., Proc.SPIE 6347, 2006, art no.634708 [70] R.S.Romaniuk et al., Proc.SPIE 6347, 2006 art no.634710 [71] A.Dybko et al., Sensors and Actuators B 29 (1-3) 1995, pp.374-377 [72] R.Romaniuk, Bull.Pol.Acad.Sci. 56 (2) 2008, pp.87-102 [73] T.Czarski et al., Proc.SPIE 5484, 2004, pp.111-129 [74] J.Dorosz, et al., Optical Applicata 28 (4) 1998, pp.267-291 [75] R.S.Romaniuk, Optica Applicata 31 (2) 2001, pp.425-444 [76] R.S.Romaniuk, et al., Bull.Pol.Acad.Sci. 53 (2) 2005, pp.123-138 [77] R.Romaniuk, Opto-electronics Review 8 (2) 2000, pp.101-116 [78] B.Mukherjee, Rad.Prot.Dosim. 126 (1-4) 2007, pp.256-260 [79] P.Fafara et al., MST 18 (8) 2007, art no.010, pp.2365-2371 [80] R.S.Romaniuk et al., MST 18 (8) 2007, art no.E01 [81] A.Kalicki et al., Proc.SPIE 7124, 2008. , art no.712410 [82] M.Kwiatkowski et al., Proc.SPIE 7124, 2008, art no.7124OF [83] R.Romaniuk, Phot.Lett.Poland, vol.1, no.1, pp.1-3 [84] R.Romaniuk, Phot.Lett.Poland, vol.1, no2 (2009), pp.46-48 [85] G.Kasprowicz, et al., Phot.Lett.Poland, vol.1, no.2 (2009), pp.82-84 [86] R.Romaniuk, Phot.Lett.Poland, vol.1, no.3 (2009), pp.103-105 [87] R.Romaniuk, Phot.Lett.Poland, vol.2, no.1 (2010), pp.22-24

Proc. of SPIE Vol. 8010 80100R-8

Downloaded from SPIE Digital Library on 25 Jun 2011 to 194.29.135.8. Terms of Use: http://spiedl.org/terms [88] R.Romaniuk, Phot.Lett.Poland, vol.2, no.2 (2010), pp.55-57 [89] R.Romaniuk, Phot.Lett.Poland, vol.2, no.2 (2010), pp.64-66 [90] P.Obroślak, et al., Phot.Lett.Poland, vol.2, no.3 (2010), pp.134-136 [91] T.Filipek et al., Proc.SPIE 5775, 2005, pp.139-149 [92] P.Rutkowski et al., Proc.SPIE 5484, 2004, pp.153-170 [93] T.Czarski et al., Proc.SPIE, 2004, pp.88-98 [94] R.S.Romaniuk et al., Proc.SPIE 5064, 2003, pp.210-221 [95] R.S.Romaniuk, Proc.SPIE 7502, 2009, art no.75021Z [96] R.S.Romaniuk, Proc.SPIE 7502, 2009, art no.750220 [97] R.S.Romaniuk, Proc.SPIE 7502, 2009, art no.750202 [98] R.S.Romaniuk et al., Proc.SPIE 7502, 2009, art no.750201 [99] R.S.Romaniuk, Proc.SPIE 6937, 2008, art no.693717 [100] L.Dymanowski, et al., Proc.SPIE 6937, 2008, art no.6937OK [101] M.Kwiatkowski, et al., Proc.SPIE 6937, 2008, art no.6937OA [102] A.Brandt, et al., Proc.SPIE 6937, 2008, art no.6937OF [103] R.S.Romaniuk, Proc.SPIE 6937, 2008, art no.693716 [104] T.R.Woliński et al., Metrology and Measurement Systems 15 (2), 2008, pp.241-245 [105] T.Czarski et al., IEEE Instrumentation and Measurement Technology, 2007, art no.4258483 [106] J.Modelski et al., Proc.SPIE 7745, 2010, art no.774504 [107] J.Modelski et al., Proc.SPIE 7745, 2010, art no.774505 [108] J.Modelski et al., Proc.SPIE 7745, 2010, art no.774506 [109] R.S.Romaniuk, Proc.SPIE 7502, 2009, art no.750209 [110] R.S.Romaniuk, Proc.SPIE 7745, 2010, art no.774501 [111] R.S.Romaniuk, Proc.SPIE 7745, 2010, art no.774502 [112] R.S.Romaniuk, Proc.SPIE 7745, 2010, art no.774503 [113] A.Zagozdzinska et al., Proc.SPIE 7745, 2010, art no.77451I [114] T.Janicki et al., Proc.SPIE 7745, 2010, art no.77451H [115] J.Gajda, et al., Proc.SPIE 7745, 2010, art no.774507 [116] W.Wojcik, et al., Proc.SPIE 7745, 2010, art no.774508 [117] R.S.Romaniuk, Proc.SPIE 6347, 2006, art no.63470Z [118] R.S.Romaniuk, et al., Proc.SPIE 6347, 2006, art no.634711 [119] R.S.Romaniuk, Proc.SPIE 6347, 2006, art no.634712 [120] R.S.Romaniuk et al., Proc.SPIE 5576, 2004 art no.52, pp.299-309 [121] R.S.Romaniuk, Proc.SPIE 5484, 2004, pp.19-28 [122] R.S.Romaniuk, Proc.SPIE 5484, 2004, pp.99-110 [123] R.S.Romaniuk, Proc.SPIE 5484, 2004, pp.283-289 [124] R.S.Romaniuk, Proc.SPIE 5028, 2003, pp.1-18 [125] R.S.Romaniuk, Proc.SPIE 5028, 2003, pp.19-25 [126] R.S.Romaniuk, Proc.SPIE 5125, 2002, pp.17-31 [127] R.S.Romaniuk, Proc.SPIE 5125, 2002, pp.5-16 [128] R.S.Romaniuk, Proc.SPIE 5125, 2002, pp.59-75 [129] J.Dorosz, et. al., Proc.SPIE 4887, 2002, pp.55-66 [130] J.Dorosz, et al., Proc.SPIE 3731 1999, pp.32-58 [131] K.T.Pozniak, et al., Proc.SPIE 5125, 2002, pp.155-164 [132] K.T.Pozniak, et al., Proc.SPIE 5125, 2002, pp.38-58 [133] G.Wrochna et al., Proc.SPIE 5125, 2002, pp.359-363 [134] J.Maciejewski et al., Proc.SPIE 3731, 1999, pp.161-166 [135] K.Pozniak et al., Proc.SPIE 3731, 1999, pp.224-245 [136] K.Pozniak et al., Proc.SPIE 3731, 1999, pp.246-273 [137] K.Pozniak et al., Proc.SPIE 3731, 1999, pp.274-295 [138] W.Giergusiewicz, K.T.Pozniak et al., Proc.SPIE 6159, 2006, art no.615905 [139] D.Rybka, K.T.Pozniak et al., Proc.SPIE 5948, 2005, art no.59480J [140] G.Kasprowicz, K.T.Pozniak et al., Proc.SPIE 6937, 2008, art no.693709 [141] P.Strzalkowski, K.T.Pozniak et al., Proc.SPIE 6937, 2008, art no.69370I

Proc. of SPIE Vol. 8010 80100R-9

Downloaded from SPIE Digital Library on 25 Jun 2011 to 194.29.135.8. Terms of Use: http://spiedl.org/terms [142] D.Rybka et al., IEEE Eurocon 2007 art. No.4400429, pp.1251-1255 [143] T.Czarski et al., IEEE Eurocon 2007, art. No.4400644, pp.1278-1284 [144] J.Szewiński et al., IEEE Eurocon 2007, art. No.4400649, pp.1285-1288 [145] J.Dorosz et al., Proc.SPIE 3731, 1999, pp.9-31 [146] J.Dorosz et al., Proc.SPIE 7120, 2008, pp.xiii-xv [147] R.Romaniuk, Proc.SPIE 6937 2008, pp.xxix-xli [148] W.L.Woliński et al., Proc.SPIE 6598, 2007, pp.ix-xi [149] R.S.Romaniuk, Proc.SPIE 6347, 2006, pp.xxix-xxxii [150] W.Giergusiewicz t al., Proc.SPIE 6159, 2006, art no.615905 [151] D.Rybka et al., Proc.SPIE 5848, 2005, art no.59480J [152] W.Giergusiewicz et al., Proc.SPIE 5775, 2005 art no.07, pp.61-68 [153] W.L.Woliński et al., Proc.SPIE 5230, 2003 pp.ix-x [154] J.Dorosz et al., Proc.SPIE 5028, 2003, pp.xi-xii [155] R.S.Romaniuk, K.T.Pozniak, Proc.SPIE 5125, 2003, pp.xiii-xxxiv [156] R.S.Romaniuk, Proc.SPIE 7124, 2008, art no.71240D [157] K.Lewandowski et al., Proc.SPIE 6937, 2008, art no.69370J [158] G.Kasprowicz, et al., Proc.SPIE 6937, 2008, art. No.693709 [159] P.Strzałkowski et al., Proc.SPIE 6937, 2008, art no.69370I [160] R.Graczyk et al., Proc.SPIE 6937, 2008, art. No.69370M [161] R.Graczyk et al., Proc.SPIE 6347, 2006, art. No.634706 [162] R.S.Romaniuk, Proc.SPIE 6347, 2006, art. No.634714 [163] K.T.Pozniak et al., Proc.SPIE 6159, 2006, art no.615903 [164] K.T.Pozniak et al., Proc.SPIE 6159, 2006, art no.615904 [165] K.T.Pozniak et al., Proc.SPIE 6159, 2006, art no.615902 [166] R.S.Romaniuk Proc.SPIE 5775, 2005, pp.xxi-xxvii [167] L.Mankiewicz et al., Proc.SPIE 5484, 2004, pp.305-316 [168] W.M.Zabolotny, et al., Proc.SPIE 5484, 2004, pp.139-147 [169] W.M.Zabolotny, et al., Proc.SPIE 5125, 2002, pp.223-230 [170] W.M.Zabolotny, et al., Proc.SPIE 5125, 2002, pp.112-118 [171] Z. Luszczak, et al., Proc.SPIE 5125, 2002, pp.175-139 [172] T.Nakielski et al., Proc.SPIE 5125, 2002, pp.175-181 [173] K.T.Pozniak et al., Proc.SPIE 5125, 2002, pp.124-139 [174] T.Czarski et al., Proc.SPIE 5125, 2002, pp.214-222 [175] J.Dorosz et al., Proc.SPIE 3731, 1999, pp.59-71 [176] T.Czarski et al., Proc.SPIE 6937, 2008, art no.69370H [177] K.Bujnowski et al., Proc.SPIE 6937, 2008, art no.69370O [178] R.Pietrasik et al., Proc.SPIE 6347, 2006, art no.63470N [179] W.Koprek et al,. Proc.SPIE 6347, 2006, art no.634703 [180] J.S.Zielinski et al., Proc SPIE 6347, 2006, art no.634707 [181] W.Koprek et al., Proc.SPIE 6159, 2006, art no.61590E [182] K.T.Pozniak et al., Proc.SPIE 6159, 2006, art no.615908 [183] W.Giergusiewicz et al., Proc.SPIE 5948, 2005, art no.58480D [184] D.Rybka et al., Proc.SPIE 5775, 2005, art no 09, pp.78-94 [185] W.Koprek et al., Proc.SPIE 5775, 2005, art no 04, pp.32-43 [186] K.T.Pozniak et al., Proc.SPIE 5484, 2004, pp.586-596 [187] K.T.Pozniak et al., Proc.SPIE 5484, 2004, pp.208-216 [188] W.L.Woliński, et al., Proc.SPIE 5229, 2003, pp.xi-xii [189] K.Bujnowski et al., Proc.SPIE 6937, 2008, rt no.69370P [190] R.S.Romaniuk, et al., Proc.SPIE 6347, 2006, art no.634713 [191] T.Czarski et al., Proc.SPIE 6347, 2006, art no.634709 [192] K.T.Pozniak, et al., Proc.SPIE 6347, 2006, art no.634704 [193] J.Szewiński et al., Proc.SPIE 6347, 2006, art no.63470B [194] J.Zysik et al., Proc.SPIE 6347, 2006, art no.63472W [195] W.Koprek et al., Proc.SPIE 6159, 2006, art no.61590A

Proc. of SPIE Vol. 8010 80100R-10

Downloaded from SPIE Digital Library on 25 Jun 2011 to 194.29.135.8. Terms of Use: http://spiedl.org/terms [196] K.T.Pozniak et al., Proc.SPIE 6159, 2006, art no.615906 [197] P.Pucyk et al., Proc.SPIE 6159, 2006, art no.61590C [198] J.Szewiński et. Al., Proc.SPIE 5948, 2005, art no.59480H [199] A.Burd, et al., Proc.SPIE 5948, 2005, art. No.59481H [200] R.S.Romaniuk, Proc.SPIE 5948, 2005, pp.xvii-xxi [201] T.Czarski et al., Proc.SPIE 5948, 2005, art no.59480E [202] K.Ołowski et al., Proc.SPIE 5948, 2005, art no.59481Y [203] W.Koprek et al., Proc.SPIE 5948, 2005, art no.594817 [204] M.Kwiatkowski et al. Proc.SPIE 5948, 2005, art no.5948L [205] P.Roszkowski et l., Proc.SPIE 5775, 2005, art no.03, pp.22-31 [206] W.Koprek et al. Proc.SPIE 5775, 2005, art no.74, pp.543-555 [207] K.T.Pozniak et al., Proc.SPIE 5775, 2005, art no.75, pp.556-562 [208] K.T.Pozniak et al., Proc.SPIE 5484, 2004, pp.217-222 [209] R.R.Romaniuk, Revue Roumaine de Physique 32 (1-2) 1987, pp.99-112 [210] R.Romaniuk, Elektronika 25 (12) 1984, pp.11-15 [211] R.Romaniuk, et al., Elektronika 25 (9) 1984, pp.22-24 [212] R.Romaniuk, Elektronika 24 (6) 1983, pp.16-20 [213] B.Darek et al., Elektronika 24 (1-2) 1983, pp.53-55 [214] R.Romaniuk, Elektronika 24 (4) 1983, pp.18-25 [215] R.Romaniuk, Elektronika 24 (7-8) 1983, pp.47-50 [216] J.Dorosz, R.Romaniuk, Elektronika 24 (1-2) 1983, pp.27-31 [217] R.Romaniuk, et al., Elektronika 24 (9) 1983, pp.18-22 [218] R.Romaniuk, Elektronika 23 (9) 1982, pp.8-14 [219] R.Romaniuk, Elektronika 27 (10-11) 1986, pp.8-11 [220] S.Chatrchyan,..K.Poźniak, R.Romaniuk, W.Zabołotny, et al., Journal of Instrumentation, ISSN 1748-0221, vol.5, no. 3, March 2010, art no. T03001, doi:10.1088/1748-0221/5/03/T03001 [221] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no. T03002 [222] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no.T03003 [223] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no.T03004 [224] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no.T03005 [225] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no. T03006 [226] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no.T03007 [227] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no.T03008 [228] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no.T03009 [229] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no.T03010 [230] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no.P03007 [231] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no. T03011 [232] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no. T03012 [233] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no. T03013 [234] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no. T03014 [235] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no. T03015 [236] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no. T03016 [237] S.Chatrchyan,..K.Poźniak, R.Romaniuk, , et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no. T03017 [238] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no. T03018 [239] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no. T03019 [240] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no. T03020 [241] S.Chatrchyan,..K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no. T03021 [242] S.Chatrchyan, K.Poźniak, R.Romaniuk, et al., Journal of Instrumentation, vol.5, no. 3, March 2010, art no. T03022

Proc. of SPIE Vol. 8010 80100R-11

Downloaded from SPIE Digital Library on 25 Jun 2011 to 194.29.135.8. Terms of Use: http://spiedl.org/terms