<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JSIP</journal-id><journal-title-group><journal-title>Journal of Signal and Information Processing</journal-title></journal-title-group><issn pub-type="epub">2159-4465</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jsip.2015.63022</article-id><article-id pub-id-type="publisher-id">JSIP-59081</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  Implementation of High Performance Electronic Circuits for Zero Suppression and Encoding of Digital Signals
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>shraf</surname><given-names>H. Yahia</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Amr</surname><given-names>Radi</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Salwa</surname><given-names>M. Youssef</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>Physics Department, Faculty of Science, Ain Shams University, Cairo, Egypt</addr-line></aff><aff id="aff2"><addr-line>Higher Technological Institute, 10th of Ramadan City, Egypt</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>ayahia@sci.asu.edu.eg(SHY)</email>;<email>salwamohamed.yousef@gmail.com(SMY)</email>;</corresp></author-notes><pub-date pub-type="epub"><day>15</day><month>07</month><year>2015</year></pub-date><volume>06</volume><issue>03</issue><fpage>238</fpage><lpage>243</lpage><history><date date-type="received"><day>18</day>	<month>June</month>	<year>2015</year></date><date date-type="rev-recd"><day>accepted</day>	<month>22</month>	<year>August</year>	</date><date date-type="accepted"><day>25</day>	<month>August</month>	<year>2015</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  This paper presents a design of a data processing circuit for receiving digital signals from front end-electronic board chips of a specific nuclear detector, encoding and triggering them via specific optical links operating at a specific frequency. Such processed signals are then fed to a data acquisition system (DAQ) for analysis. Very high-speed integrated circuit hardware description language (VHDL) algorithms and codes were created to implement this design using field programmable gate array (FPGA) devices. The obtained data were simulated using international standard simulators.
 
</p></abstract><kwd-group><kwd>DAQ</kwd><kwd> FPGA</kwd><kwd> VHDL</kwd><kwd> ASICs</kwd><kwd> ISE</kwd><kwd> ISim</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>Field programmable gate array (FPGA) is a chip designed to be programmed and reprogrammed by customers after manufacturing. Customized designs can be made after the chip fabrication. FPGAs are considered to be the most powerful programmable logic devices today [<xref ref-type="bibr" rid="scirp.59081-ref1">1</xref>] .</p><p>FPGAs offer a flexible approach to applications traditionally dominated by Application-Specific Integrated Circuits (ASICs) and computer software executed on sequential processors. ASICs provide highly optimized resources specifically tuned for a particular application, but it is permanently configured to only one task and includes an extremely high Non-Recurring Engineering (NRE) cost, which can run into the millions of dollars. FPGAs on the other hand offer programmable logic blocks and interconnects that eliminate the NRE cost associated with ASICs at cost of 5 to 25 times area, delay and performance.</p><p>While software provides the flexibility to execute a large number of tasks, typically its performance when run on a sequential processor is orders of magnitude slower than ASICs and FPGAs. These two factors make FPGAs an attractive middle ground for applications that require performance that cannot be achieved by software running on sequential processors; but yet require a degree of flexibility not possible with ASICs implementation. Traditionally, FPGAs have been used for applications that process large streams of data, where processes can be executed in parallel and independent of each other. In fact, FPGAs can achieve several orders of magnitude faster speeds compared to microprocessors by exploiting the parallelism in applications [<xref ref-type="bibr" rid="scirp.59081-ref2">2</xref>] [<xref ref-type="bibr" rid="scirp.59081-ref3">3</xref>] .</p><p>Since many applications such as signal processing [<xref ref-type="bibr" rid="scirp.59081-ref4">4</xref>] , network communications [<xref ref-type="bibr" rid="scirp.59081-ref5">5</xref>] , video communications [<xref ref-type="bibr" rid="scirp.59081-ref6">6</xref>] [<xref ref-type="bibr" rid="scirp.59081-ref7">7</xref>] , cryptographic applications [<xref ref-type="bibr" rid="scirp.59081-ref8">8</xref>] , neural networks [<xref ref-type="bibr" rid="scirp.59081-ref9">9</xref>] - [<xref ref-type="bibr" rid="scirp.59081-ref11">11</xref>] , genetic algorithms [<xref ref-type="bibr" rid="scirp.59081-ref12">12</xref>] - [<xref ref-type="bibr" rid="scirp.59081-ref14">14</xref>] and other specific computations have inherent parallelism profiles that are easily exploitable; they can be implemented using FPGA in a relatively easy way to accelerate their computation.</p><p>In this paper, we have written an algorithm to be implemented on an FPGA system for processing the data to be conveyed to the DAQ. The detector system consists of a nuclear detector, a readout system and a DAQ as shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>. Moreover, the block diagram that describe the readout system components of the detector.</p><p>The detector converts the energy deposited/induced by a particle (or photon) to an electrical signal. This analog signal is fed to the readout board, which basically contains front-end electronic board chips. A chip has two main functions: the first function is the triggering which provides programmable “fast OR” information based on the region of the sensor hit; the second function is the tracking, which provides precise spatial hit information for a given triggered event. Thus the digital data leaves the chip in parallel.</p><p>There are several goals for this study: First, Collecting the digital data from the front-end electronic board chips. Second, removing the redundant zeros from the digital data, which will be referred to as Zero Suppression (ZS) and indicating which chip has hit. Finally, processing those signals to handle specific type of optical fiber is to be able to trigger them to the DAQ system. Our algorithm/code is written in Verilog and VHDL as hardware description language and implemented on Xilinx Spartan 6 board. FPGA Spartan 6 family is described in [<xref ref-type="bibr" rid="scirp.59081-ref15">15</xref>] .</p></sec><sec id="s2"><title>2. Data Processing System Design</title><p>The block diagram shown in <xref ref-type="fig" rid="fig1">Figure 1</xref> illustrates the main system components for the readout of the detector</p><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> Block diagram of the main design system components</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-3400421x5.png"/></fig><p>system and is divided into two main parts; namely On-Detector and Off-Detector. Visible in the On-Detector part is the division of the detector into 24 sectors. The 128 strips from each sector are connected to the inputs of the front-end chip via a connector on a board known as the detector readout board. The chip itself is mounted on a hybrid, which plugs into the readout board connector. The control, readout and power to/from the chip hybrid is delivered via electrical signals running through a large flat pcb known as the Detector Electronic Board (DEB). An opto-hybrid board also plugs into the DEB, an FPGA as well as optical receivers and transmitters to provide the link to the Off-Detector region.</p><p>The above figure shows the process of collecting the output digital signals data from the front-end electronic boards, reducing data size, identifying which chip has hit and changing data size to adapt the chosen optical fiber.</p><p>It is clear that the top-down design, which is written in VHDL and Verilog mainly, consists of data processing module, Zero Suppression component and multiplexing component.</p><sec id="s2_1"><title>2.1. Zero Suppression (ZS) Component</title><p>In this component, the size of the data packet is a function of the number of hits in the chip. This enables very small data packets and hence the highest possible data transmission rate. This is very reasonable for operation at high trigger rates. The disadvantage is that for high occupancy some losses could be incurred.</p><p>The principle is as follows: The 192 channels, <xref ref-type="fig" rid="fig2">Figure 2</xref>, are divided up into 24 partitions. Each partition contains 8 channels. For each event only the partitions containing data will be transmitted. The sequence for generating the zero suppression data field is shown <xref ref-type="fig" rid="fig3">Figure 3</xref>. The packet has already identified how many partitions</p><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> The block diagram of the design</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-3400421x6.png"/></fig><fig id="fig3"  position="float"><label><xref ref-type="fig" rid="fig3">Figure 3</xref></label><caption><title> Zero suppression data field</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-3400421x7.png"/></fig><p>are contained within the data field. Then, a sequence of partition bits arrives to identify which partition contains data.</p><p>A “0” means empty partition and a “1” means partition containing hits. The sequence is in order, hence the first bit represents partition one containing channels 1 - 8, the second bit represents partition 2 containing channels 9 - 16 etc.</p><p>If a “1” is detected in the sequence then the following 8 bits represent the 8 channels within that partition. Hence the example with 2 partitions hit shows hits within partitions 4 and 6. Once all the partitions have been read the sequence stops.</p></sec><sec id="s2_2"><title>2.2. Multiplexing Component</title><p>This component gets the 64 bits of data at 40 MHz clock cycle from the ZS component and multiplexes them to 16 bits at 160 MHz, <xref ref-type="fig" rid="fig2">Figure 2</xref>. So the data at that time is ready to be triggered via the optical links, which are connected to the DAQ system as shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>. All the design has been implemented on the Spartan6 board [<xref ref-type="bibr" rid="scirp.59081-ref15">15</xref>] , which is embedded in the opto-hyprid.</p><p>The opto-hybrid consists of mezzanine board mounted along the DEB board. The tasks of the opto-hybrid board are to synchronize the data sent by the front-end electronic chips, zero-suppress the trigger data, code them and send them via optical links to the triggering electronics.</p></sec></sec><sec id="s3"><title>3. Verification and Results</title><p>Verification of the circuit functionality is usually done as the first step once completing VHDL code. Verification of design without actual hardware in place is done using simulation. For simulating any design two things are required; that is, design to be tested and stimulus to inputs. Two approaches are used in VHDL for simulation: one is assigning input values in simulation window and getting the output waveforms and the other is using testbenches.</p><p>In this work testbench has been used. Testbench is different from VHDL simulation of the circuit which uses run-time assignment of input values. The purpose of a testbench is to verify the functionality of a developed model or package. <xref ref-type="fig" rid="fig4">Figure 4</xref> shows a typical testbench structure [<xref ref-type="bibr" rid="scirp.59081-ref16">16</xref>] .</p><p>That has been done using ISim simulator that let’s you perform functional (behavioral) and timing simulations for VHDL, Verilog, and mixed-language designs. So for the first component, that is the ZS, the simulation results are shown in <xref ref-type="fig" rid="fig5">Figure 5</xref> as has been expected. As an example, consider the case of three chips under hit; the output result is found to be 24 bits for the 24 chips on the DEB followed by 8 bits of data (for each chip). So in our example, the output will be 24 + 8 + 8 + 8 = 48 bits. To output 64 bits, the rest will be filled with 16 bits as filler. This is in consistence of the results that has been taken from the simulator.</p><p>For the second component, that is the Multiplexing component which takes its input data from the ZS at a rate of 40 MHz/25ns clock cycle, the output depends on the control signal (ctrl). Four control signals have been used. The first ctrl signal of “00” gives the first 16 bits of the data string, the same output happens for the second, third and fourth ctrl signals; i.e. “01”, “10” and “11”. <xref ref-type="fig" rid="fig6">Figure 6</xref> shows the simulation of this component in case of “10” ctrl. As one notices, the result of the simulation is as had been expected (encircled in the figure).</p><p>For the whole system design (including both previously mentioned components); to simulate the circuit it should take 192 bits of input data for an output of 16 bits (each of which is 160 MHz/6.25ns clock cycle). This matches with the optical fiber characteristics (which connects the opto-hybrid board and the DAQ system, shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>). <xref ref-type="fig" rid="fig7">Figure 7</xref> shows the simulation results of the whole module, named as data processing module. This figure shows the results of the case where three chips had hit as had been expected. The given simu lated results were a direct product of the use of ISE program and ISim simulator [<xref ref-type="bibr" rid="scirp.59081-ref17">17</xref>] together with the available input data.</p><fig id="fig4"  position="float"><label><xref ref-type="fig" rid="fig4">Figure 4</xref></label><caption><title> Typical test bench</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-3400421x8.png"/></fig><fig id="fig5"  position="float"><label><xref ref-type="fig" rid="fig5">Figure 5</xref></label><caption><title> Simulation of ZS component</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-3400421x9.png"/></fig><fig id="fig6"  position="float"><label><xref ref-type="fig" rid="fig6">Figure 6</xref></label><caption><title> Simulation of multiplexing component for ctrl “10”</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-3400421x10.png"/></fig><fig id="fig7"  position="float"><label><xref ref-type="fig" rid="fig7">Figure 7</xref></label><caption><title> Simulation of data processing module</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/5-3400421x11.png"/></fig></sec><sec id="s4"><title>4. Conclusion</title><p>In this paper, new algorithms are written in VHDL and Verilog, created then implemented on Spartan 6 FPGA chip. The designed chip performs signal processing of digital data from front-end electronic board chips of a specific nuclear detector. This successfully developed circuit is capable of eliminating redundancy in the 192 bits from the detector electronic board. Accordingly, the simulated 16 bits match the characteristics of the optical links, thus transferring the output signals to the data acquisition system (DAQ). A reasonable agreement is obtained, hence displaying consistency with the simulated results.</p></sec><sec id="s5"><title>5. Future Work</title><p>We will use new algorithm that allows raising the number of chip hits which could be recognized. In addition, we will use new versions of FPGA chips to improve the performance of the design.</p></sec><sec id="s6"><title>Cite this paper</title><p>Ashraf H.Yahia,AmrRadi,Salwa M.Youssef, (2015) Implementation of High Performance Electronic Circuits for Zero Suppression and Encoding of Digital Signals. Journal of Signal and Information Processing,06,238-243. doi: 10.4236/jsip.2015.63022</p></sec></body><back><ref-list><title>References</title><ref id="scirp.59081-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Nie, C.L. (2012) An FPGA-Based Smart Database Storage Engine. Eidgen&amp;Ouml;ssische Technische Hochschule Zürich, Department of Computer Science, Systems Group.</mixed-citation></ref><ref id="scirp.59081-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Hauck, S. and Dehon, A. (2008) Reconfigurable Computing. Morgan Kaufmann, United State.</mixed-citation></ref><ref id="scirp.59081-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Xu, J. (2009) A FPGA Hardware Solution for Accelerating Tomographic Reconstruction. MSc Thesis, University of USA, New York, 17-18.</mixed-citation></ref><ref id="scirp.59081-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Vetterli, M., Kovacevic, J. and Goyal, V.K. (2014) Foundations of Signal Processing. Cambridge University Press, Cambridge.</mixed-citation></ref><ref id="scirp.59081-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Cheung, O. and Leong, P. (2002) Implementation of an FPGA Based Accelerator for Virtual Private Networks. IEEE International Conference on Field Programmable Technology (FPT), Hong Kong, 16-18 December 2002, 34-43.http://dx.doi.org/10.1109/fpt.2002.1188662</mixed-citation></ref><ref id="scirp.59081-ref6"><label>6</label><mixed-citation publication-type="book" xlink:type="simple">Gause, J., Cheung, P. and Luk, W. (2000) Static and Dynamic Reconfigurable Designs for a 2D Shape-Adaptive DCT. In: Hartenstein, R. and Grüunbacher, H., Eds., Field-Programmable Logic and Applications, FPL, Springer-Verlag, New York, 96-105. http://dx.doi.org/10.1007/3-540-44614-1_11</mixed-citation></ref><ref id="scirp.59081-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Villasenor, J., Jones, C. and Schoner, B. (1995) Video Communications Using Rapidly Reconfigurable Hardware. IEEE Transactions on Circuits and Systems for Video Technology, 5, 565-567.</mixed-citation></ref><ref id="scirp.59081-ref8"><label>8</label><mixed-citation publication-type="book" xlink:type="simple">H&amp;auml;m&amp;auml;l&amp;auml;inen, A., Tommiska, M. and Skytt&amp;auml;, J. (2002) 6.78 Gigabits per Second Implementation of the IDEA Cryptographic Algorithm. In: Glesner M., Zipf, P. and Renovell, M., Eds., Field Programmable Logic and Applications. Reconfigurable Computing Is Going Mainstream, LNCS 2438, Springer-Verlag, New York, 760-769.http://dx.doi.org/10.1007/3-540-46117-5_78</mixed-citation></ref><ref id="scirp.59081-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Bade, S. and Hutchings, B. (1997) FPGA Based Stochastic Neural Network Implementation. Proceedings of the IEEE Workshop on FPGAs for Custom Computing Machines, Napa Valley, 10-13 April 1994, 189-198. http://dx.doi.org/10.1109/FPGA.1994.315612</mixed-citation></ref><ref id="scirp.59081-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Lysaght, P., Stockwood, J., Law, J. and Girma, D. (1994) Artificial Neural Network Implementation on a fine-Grained Fpga. Field-Programmable Logic, 849, 421-431.</mixed-citation></ref><ref id="scirp.59081-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Gadea, R., Cerd, J., Ballester, F. and Mochol, A. (2000) Artificial Neural Network Implementation on a Single Fpga of a Pipelined On-Line Back Propagation. Proceedings of the 13th Conference on International Symposium on System Synthesis, Madrid, 20-22 September 2000, 225-230. http://dx.doi.org/10.1109/ISSS.2000.874054</mixed-citation></ref><ref id="scirp.59081-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Graham, P. and Nelson, B. (1996) Genetic Algorithms in Software and in Hardware—A Performance Analysis of Workstation and Custom Computing Machine Implementations. Proceedings of the IEEE Symposium on FPGAs for Custom Computing Machines, Napa Valley ,17-19 April 1996, 216-225. http://dx.doi.org/10.1109/fpga.1996.564847</mixed-citation></ref><ref id="scirp.59081-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Bland, I.M. and Megson, G.M. (1998) The Systolic Array Genetic Algorithm, an Example of Systolic Arrays as a Reconfigurable Design Methodology. Proceedings of the IEEE Symposium on FPGAs for Custom Computing Machines, Napa Valley, 15-17 April 1998, 260-261. http://dx.doi.org/10.1109/fpga.1998.707907</mixed-citation></ref><ref id="scirp.59081-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Aporntewan, C. and Chongstitvatana, P. (2001) Hardware Implementation of the Compact Genetic Algorithm. Proceedings of the 2001 IEEE Congress on Evolutionary Computation, Seoul, 27-30 May 2001, 624-629.http://dx.doi.org/10.1109/cec.2001.934449</mixed-citation></ref><ref id="scirp.59081-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">Xilinx (2009) Spartan-6 FPGA Configuration User Guide Xilinx, 2.7.</mixed-citation></ref><ref id="scirp.59081-ref16"><label>16</label><mixed-citation publication-type="other" xlink:type="simple">Kau, G. (2011) VHDL: Basics to Programming, 150.</mixed-citation></ref><ref id="scirp.59081-ref17"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">Xilinx (2009) ISE Simulator (ISim) In Depth Tutorial, Xilinx, UG682 (v1.0).</mixed-citation></ref></ref-list></back></article>