<?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">CS</journal-id><journal-title-group><journal-title>Circuits and Systems</journal-title></journal-title-group><issn pub-type="epub">2153-1285</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/cs.2016.72005</article-id><article-id pub-id-type="publisher-id">CS-63472</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><subject> Engineering</subject><subject> Physics&amp;Mathematics</subject></subj-group></article-categories><title-group><article-title>
 
 
  Matrix Operations Design Tool for FPGA and VLSI Systems
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>emih</surname><given-names>Aslan</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>Jafar</surname><given-names>Saniie</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="aff2"><addr-line>Department of Electrical and Computer Engineering, Illinois Institute of Technology, Chicago, IL, USA</addr-line></aff><aff id="aff1"><addr-line>Ingram School of Engineering, Electrical Engineering, Texas State University, San Marcos, TX, USA</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>aslan@txstate.edu(EA)</email>;<email>sanie@iit.edu(JS)</email>;</corresp></author-notes><pub-date pub-type="epub"><day>17</day><month>02</month><year>2016</year></pub-date><volume>07</volume><issue>02</issue><fpage>43</fpage><lpage>50</lpage><history><date date-type="received"><day>15</day>	<month>January</month>	<year>2016</year></date><date date-type="rev-recd"><day>accepted</day>	<month>14</month>	<year>February</year>	</date><date date-type="accepted"><day>17</day>	<month>February</month>	<year>2016</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>
 
 
  Embedded systems used in real-time applications require low power, less area and high computation speed. For digital signal processing, image processing and communication applications, data are often received at a continuously high rate. The type of necessary arithmetic functions and matrix operations may vary greatly among different applications. The RTL-based design and verification of one or more of these functions could be time-consuming. Some High Level Synthesis tools reduce this design and verification time but may not be optimal or suitable for low power applications. The design tool proposed in this paper can improve the design time and reduce the verification process. The design tool offers a fast design and verification platform for important matrix operations. These operations range from simple addition to more complex matrix operations such as LU and QR factorizations. The proposed platform can improve design time by reducing verification cycle. This tool generates Verilog code and its testbench that can be realized in FPGA and VLSI systems. The designed system uses MATLAB-based verification and reporting.
 
</p></abstract><kwd-group><kwd>FPGA</kwd><kwd> VLSI</kwd><kwd> Matrix Operations</kwd><kwd> Design Tools</kwd><kwd> MATLAB</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>Today, a significant number of embedded systems are focused on multimedia applications, and the demand for low cost, high performance and low power hardware is almost insatiable. The design of complex systems such as image and video processing, compression, face recognition, object tracking, 4G modems, multi-standard CODECs, and HD decoding schemes requires integration of many complex blocks and a long verification process [<xref ref-type="bibr" rid="scirp.63472-ref1">1</xref>] . These complex designs are based on I/O peripherals, one or more processors, bus interfaces, A/D, D/A, embedded software, memories and sensors.</p><p>Image and video processing applications require a large amount of data transfers between the input and output of a system. Data are constantly transferred, altered and stored during processing. To ensure correct operation and data transfer, a control block needs to be designed carefully. Designing an image and video processing unit can be complex and time consuming, and the verification process can take months depending on the system’s complexity.</p><p>System-on-chip (SoC) designs are mainly accomplished by using Register Transfer Languages (RTL) such as Verilog and VHDL. An algorithm can be converted to RTL level using the behavioral model description method or by using pre-defined IP core blocks. After completing this RTL code, formal verification must be done before implementation. After implementation of the RTL code, timing verification needs to be done for proper operation. RTL design abstracts logic structures, timing and registers [<xref ref-type="bibr" rid="scirp.63472-ref2">2</xref>] . Because of this, every clock change causes a state change in the design. This timing dependency causes every event to be simulated. This results in a slower simulation time and longer verification period of the design.</p><p>RTL description of a system can be implemented from a behavioral description of the system in Perl or C. This will result in a faster verification process and shorter Time-to-Market (TTM). It is also possible to have a hybrid design where RTL blocks can be integrated with High Level Synthesis (HLS).</p><p>The HLS design flow can be used to represent the whole system or parts of a system using one of the high level languages such as Perl, C, C++, Java, MATLAB [<xref ref-type="bibr" rid="scirp.63472-ref3">3</xref>] . Each part in the system can be tested independently before the whole system is tested. After the verification process, the design can be implemented using FPGA synthesis tools.</p><p>The proposed matrix operations design (MOD) tool focuses on basic and advanced matrix operations for improved design and verification times. Required background information is described in Section 2 and the design and examples error analysis are discussed in Section 3.</p></sec><sec id="s2"><title>2. Background</title><p>Basic and advanced matrix operations are required in many complex algorithms in digital, image and video processing applications. Most of the time these matrix operations are performed using a conventional (also known as traditional) method used in basic algebra classes. The conventional methods to perform addition and multiplication operations are used to implement matrix multiplications for small matrices. If a large matrix multiplication is needed, many systems use software. Due to the development of VLSI and FPGA technologies, however, the computational power of the systems has increased and massive amount of data need to be pro- cessed at a very high speed. With that in mind, the realization of a high speed, low power and low area real time matrix multiplication system for large matrices is desirable. The idea behind the MOD tool is to give designers options based on area and speed optimization and faster TTM. The components of the MOD tool are shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>.</p><p>The proposed MOD tool has four important principles:</p><p> Compute required matrix operation(s);</p><p> Customized range and accuracy;</p><p> Generate an area-efficient, fast system for low power applications;</p><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title> Matrix Operations Design (MOD) block</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-7600423x6.png"/></fig><p> Perform verification on the fly. Create testbenches for pre- and post-verification.</p><p>The MOD tool accepts inputs from the user via a console and includes the following sections:</p><p> FPGA or ASIC support;</p><p> Vendor based IP Core support;</p><p> Project Name (default is c:\MOD\MOD);</p><p> Top Module Name (default is MOD);</p><p> Language―Verilog HDL (up to 64-bit fixed point);</p><p> Signed or unsigned number systems;</p><p> Target―Frequency, area, and throughput optimization;</p><p> Testbench generation.</p><p>o Automated testbench with MATLAB;</p><p>o Modelsim: do file for fast automation;</p><p>o Automated testbench file for Modelsim;</p><p>o Error comparison with MATLAB;</p><p>o User defined test data option.</p><p>The “Matrix Operations” GUI shown in <xref ref-type="fig" rid="fig2">Figure 2</xref> has the following sections:</p><p> Any size square matrix operations (verification is limited to computer memory size);</p><p> Basic matrix operations.</p><p>o Addition/Subtraction (Area or speed optimized based on RCA or CLA);</p><p>o Multiplication (Traditional or Strassen, Hybrid is future addition).</p><p> Advanced matrix operations.</p><p>o Matrix inverse-LU factorization, QR factorization, Cholesky factorization or Strassen based design;</p><p>o Symmetric matrices;</p><p>o Hessenberg matrices-Householder based design;</p><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> Matrix operations console GUI for MOD</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-7600423x7.png"/></fig><p>o LU factorization-Reduced LU factorization;</p><p>o Cholesky factorization-Positive definite matrices;</p><p>o QR factorization-Householder (Givens rotation or Gram-Schmidt based design are future addition);</p><p>o Solution to linear equation-LU, Cholesky, or QR factorization based design;</p><p>o Eigenvalue calculations-QR method design;</p><p>o Curve fitting-QR factorization based design (future addition).</p><p>The MOD tool uses a bottom-up design process that starts with the advance matrix operations and then moves to the simplest arithmetic operations. This is shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>.</p><p>This design flow contains the following procedure: First, selection of a QR factorization algorithm, advanced matrix operations, matrix operations [<xref ref-type="bibr" rid="scirp.63472-ref4">4</xref>] [<xref ref-type="bibr" rid="scirp.63472-ref5">5</xref>] and basic arithmetic operations, and generation of area efficient hardware for FPGA and VLSI. There are two 64-bit selections that are suitable for a vast array of applications with the requested precision. The section’s addition and multiplication are used based on the previous designs. Selection of the matrix operations is done using a traditional method, Strassen algorithm [<xref ref-type="bibr" rid="scirp.63472-ref4">4</xref>] or hybrid method. The selection is based on matrix size. This area-efficient design is optimized for speed by implementing a smart control system. For performance evaluation and synthesis, the QR algorithm is implemented with Xilinx FPGAs [<xref ref-type="bibr" rid="scirp.63472-ref6">6</xref>] and VLSI using Microwind Design Tools [<xref ref-type="bibr" rid="scirp.63472-ref7">7</xref>] .</p></sec><sec id="s3"><title>3. Matrix Operations</title><p>Some of the important matrix operations and algorithms used by the MOD tool are explained below.</p><sec id="s3_1"><title>3.1. Matrix Addition/Subtraction</title><p>The MOD tool uses conventional matrix addition/subtraction for this operation. Designers can select CLA or RCA-based addition based on optimization selection that is done in <xref ref-type="fig" rid="fig2">Figure 2</xref>.</p><fig id="fig3"  position="float"><label><xref ref-type="fig" rid="fig3">Figure 3</xref></label><caption><title> The MOD tool design flow</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-7600423x8.png"/></fig></sec><sec id="s3_2"><title>3.2. Matrix Multiplication</title><p>Matrix multiplications [<xref ref-type="bibr" rid="scirp.63472-ref4">4</xref>] [<xref ref-type="bibr" rid="scirp.63472-ref8">8</xref>] [<xref ref-type="bibr" rid="scirp.63472-ref9">9</xref>] are heavily used in many communication, signal and image processing applications. Matrix multiplication requires operation elements (OE) such as addition and multiplication. In matrix multiplication, the number of OEs depends on the matrix size. This made it difficult to implement real time matrix multiplication. The traditional method is one of the main methods used due to its simplicity to implement. It has operation complexity (multiplication operation) O(n)<sup>3</sup> where n is the size of the matrix. This complexity measure is acceptable for designs with smaller N. The method introduced by Strassen [<xref ref-type="bibr" rid="scirp.63472-ref10">10</xref>] reduced the operation complexity to O(n)<sup>2.807</sup> [<xref ref-type="bibr" rid="scirp.63472-ref9">9</xref>] [<xref ref-type="bibr" rid="scirp.63472-ref10">10</xref>] . Even though this difference is minimal, it makes a big difference in matrices for larger n. The MOD tool uses the traditional method or Strassen method.</p><p> Traditional Method: Matrix multiplication of an m &#215; r matrix A and r &#215; n matrix B produces a m&#215;n matrix C [<xref ref-type="bibr" rid="scirp.63472-ref4">4</xref>] .</p><p> Strassen Method: The Strassen algorithm was introduced by Volker Strassen in 1969. Currently, this is not the fastest known algorithm but it is the one of the fastest algorithms that can be implemented in hardware for large matrices.</p></sec><sec id="s3_3"><title>3.3. LU Factorization</title><p>One of the most important matrix factorizations for preconditioning is the A = LU factorization where a matrix A is factored into the product of two matrices, L is a lower triangle matrix and U is an upper triangle matrix. The LU factorization is an important factorization for solving linear equations, calculation of inverse matrices and many more important matrix-related operations that can be used in DSP and image processing. In a given matrix A, LU transformation can be written as A = LU where L and U are lower and upper right triangle matrices, respectively. Some of the LU transformations are the Gaussian elimination method, direct decomposition and the Cholesky factorization. The MOD tool uses LU factorization over Gaussian elimination. LU factorization can solve linear equations simultaneously and this will be suitable for high data I/O DSP systems.</p></sec><sec id="s3_4"><title>3.4. QR Factorization</title><p>The QR matrix transformation is commonly used in DSP and wireless communication designs [<xref ref-type="bibr" rid="scirp.63472-ref11">11</xref>] [<xref ref-type="bibr" rid="scirp.63472-ref12">12</xref>] . Using this transformation, a matrix A can be factored into A = QR where Q is an orthogonal matrix (square matrix that has orthonormal columns), and where R is an upper right triangular matrix. There are a few different techniques used to transform matrix A. The ones most commonly used are the Householder transformation [<xref ref-type="bibr" rid="scirp.63472-ref13">13</xref>] , Givens Rotations and Gram-Schmidt QR-Decomposition.</p><p>The main idea behind QR transformation is to translate matrix A into orthogonal matrix Q and right triangle matrix R. An orthogonal matrix has a property of Q<sup>T</sup>Q = I. where</p><p>Q: Orthogonal matrix;</p><p>Q<sup>T</sup>: Transpose of Q;</p><p>I: Identity matrix.</p><p>A set of vectors <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-7600423x9.png" xlink:type="simple"/></inline-formula> is orthogonal if and only if <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/1-7600423x10.png" xlink:type="simple"/></inline-formula> when i ≠ j. If an orthogonal set has a norm of 1 it is said to be orthonormal. This is an important definition of a clear QR transformation. The MOD tool uses the Householder-based QR factorization. The Householder algorithm that is implemented as hardware is shown in <xref ref-type="fig" rid="fig4">Figure 4</xref>.</p></sec><sec id="s3_5"><title>3.5. Matrix Inversion</title><p>The other important matrix operation that is used in many important DSP and image processing applications is the inverse of a matrix. A square matrix A and its inverse A<sup>-1</sup> can be written as AA<sup>−1</sup> = I iff det(A) ≠ 0 where I is the identity matrix. The inverse of a matrix is an important part of the calculation of many matrix transformations and the solution of linear equations. Unfortunately, calculation of a matrix inverse similar to matrix multiplication requires many addition and multiplication operations and may be costly to implement hardware level for large matrices. Hardware implementation of matrix inverse is an important part of the MOD. The MOD can design area efficient matrix inverse hardware using a few different techniques. These techniques are improved here for area efficiency or speed based on the required design parameters. The matrix inverse algorithms used in the MOD are an LU factorization-based inverse system. A block diagram of Matrix inversion using LU transformation is given in <xref ref-type="fig" rid="fig5">Figure 5</xref>.</p><fig id="fig4"  position="float"><label><xref ref-type="fig" rid="fig4">Figure 4</xref></label><caption><title> The householder QR factorization algorithm</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-7600423x11.png"/></fig><fig id="fig5"  position="float"><label><xref ref-type="fig" rid="fig5">Figure 5</xref></label><caption><title> Matrix inversion using LU transformation</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-7600423x12.png"/></fig><p>The MOD tool can design and validate a system of linear equations using a couple different methods similar to ones that are explained above in the matrix inversion section. Due to similarities between solutions to linear equations and matrix inversion, further hardware reduction can be done by reusing similar sections of the hardware to design a system that can solve a linear equation and can also be used for matrix inversion. A system of linear equations shown in Equation (1) can be solved using LU factorization.</p><disp-formula id="scirp.63472-formula54"><label>(1)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-7600423x13.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.63472-formula55"><label>. (2)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-7600423x14.png"  xlink:type="simple"/></disp-formula><p>Using Equations (1) in (2), a system of linear equation can be described as in Equation (3) and using forward substitution in Equation (4), and back substitution in Equation (5) variables x can be calculated by.</p><disp-formula id="scirp.63472-formula56"><label>(3)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-7600423x15.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.63472-formula57"><label>(4)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-7600423x16.png"  xlink:type="simple"/></disp-formula><disp-formula id="scirp.63472-formula58"><label>. (5)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/1-7600423x17.png"  xlink:type="simple"/></disp-formula><p>A similar solution system can be used if QR factorization is available.</p></sec></sec><sec id="s4"><title>4. Design Results</title><p>The MOD design system allows for fast TTM and higher accuracy. The system uses the same verification method for FPGA and VLSI that is shown in <xref ref-type="fig" rid="fig6">Figure 6</xref>.</p><p>The MOD design system can design Verilog HDL code and a testbench file of any size matrix operations, subject to limitation of the MATLAB version, computer memory and hard drive size. The design creates a MATLAB file for verification and error analysis.</p><p>One of the great advantages of the MOD design and verification system is the ability to change size and</p><fig id="fig6"  position="float"><label><xref ref-type="fig" rid="fig6">Figure 6</xref></label><caption><title> The MOD verification flow</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/1-7600423x18.png"/></fig><p>optimization of the design in a minimal amount of time. Designers can compare many designs and make decisions without spending valuable verification time.</p></sec><sec id="s5"><title>5. Conclusion</title><p>A design tool for matrix operations is designed for low power and high-speed applications. The MOD decreases design system time and verification by up to 64% without compromising speed and efficiency. The MOD uses a smart control system that is optimized based on the desired operations, and is a bridge between RTL and HLS. It uses RTL-based basic blocks to design most complicated arithmetic operations using structural model design and HLS-style fast and optimized verification. Any designed system can be reconfigured at any time in any way in MOD without going through the same design and verification hassle. The key objective of the proposed tool is to reduce TTM and increase productivity by verifying the hardware during the design process. Future work will include support for all basic arithmetic operations, VHDL, some additional matrix factorizations, curve fitting and floating point support.</p></sec><sec id="s6"><title>Acknowledgements</title><p>The authors would like to thank Xilinx, Inc. [<xref ref-type="bibr" rid="scirp.63472-ref6">6</xref>] for their valuable support.</p></sec><sec id="s7"><title>Cite this paper</title><p>SemihAslan,JafarSaniie, (2016) Matrix Operations Design Tool for FPGA and VLSI Systems. Circuits and Systems,07,43-50. doi: 10.4236/cs.2016.72005</p></sec></body><back><ref-list><title>References</title><ref id="scirp.63472-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Andrieux, J., Feix, M., Mourgues, G., Bertrand, P., Izrar, B. and Nguyen, V. (1987) Optimum Smoothing of the WignerVille Distribution. IEEE Transactions on Acoustics, Speech and Signal Processing, 35, 764-769. http://dx.doi.org/10.1109/TASSP.1987.1165204</mixed-citation></ref><ref id="scirp.63472-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Duncan, A. and Hendry, D. (1995) Area Efficient DSP Datapath Synthesis. Proceedings of EURO-DAC’95, European Design Automation Conference with EURO-VHDL, Brighton, 18-22 September 1995, 130-135.</mixed-citation></ref><ref id="scirp.63472-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">(2006) The VLSI Handbook. 2nd ed. CRC Press, Boca Raton, FL.</mixed-citation></ref><ref id="scirp.63472-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Wang, X. and Ziavras, S.G. (2004) Parallel LU Factorization of Sparse Matrices on FPGA-Based Configurable Computing Engines. Concurrency and Computation: Practice and Experience, 16, 319-343. http://onlinelibrary.wiley.com/doi/10.1002/cpe.748/abstract</mixed-citation></ref><ref id="scirp.63472-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Yang, H., Ziavras, S. and Hu, J. (2007) FPGA-Based Vector Processing for Matrix Operations. Fourth International Conference on Information Technology (ITNG 07), Las Vegas, 2-4 April 2007, 989-994.</mixed-citation></ref><ref id="scirp.63472-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Xilinx. http://www.xilinx.com/</mixed-citation></ref><ref id="scirp.63472-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">MICROWIND-Home. http://microwind.net/</mixed-citation></ref><ref id="scirp.63472-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Reconfigurable Computing. Elsevier. https://www.elsevier.com/books/recon_gurable-computing/hauck/978-0-12-370522-8</mixed-citation></ref><ref id="scirp.63472-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">SIAM: Toward an Optimal Algorithm for Matrix Multiplication. http://www.siam.org/news/news.php?id=174</mixed-citation></ref><ref id="scirp.63472-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Ohtaki, Y., Takahashi, D., Boku, T. and Sato, M. (2004) Parallel Implementation of Strassen’s Matrix Multiplication Algorithm for Heterogeneous Clusters. 18th International Parallel and Distributed Processing Symposium (2004), Santa Fe, 26-30 April 2004, 112.</mixed-citation></ref><ref id="scirp.63472-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Yang, Y., Zhao, Y. and Inoue, Y. (2005) High-Performance Systolic Arrays for Band Matrix Multiplication. 2005 IEEE International Symposium on Circuits and Systems, ISCAS 2005, Kobe, 23-26 May 2005, 1130-1133.</mixed-citation></ref><ref id="scirp.63472-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Desmouliers, C., Aslan, C., Oruklu, E., Saniie, J. and Vallina, F. (2010) HW/SW Co-Design Platform for Image and Video Processing Applications on Virtex-5 FPGA Using PICO. 2010 IEEE International Conference on Electro/Information Technology (EIT 2010), Normal, 20-22 May 2010, 1-6.</mixed-citation></ref><ref id="scirp.63472-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Aslan, S., Oruklu, E. and Saniie, J. (2009) Realization of Area Efficient QR Factorization Using Unified Division, Square Root, and Inverse Square Root Hardware. 2009 IEEE International Conference on Electro/Information Technology (EIT 2009), Windsor, 7-9 June 2009, 245-250.</mixed-citation></ref></ref-list></back></article>