Efficient Implementation of Elliptic Curve Cryptography in Reconfigurable Hardware

Efficient Implementation of Elliptic Curve Cryptography in Reconfigurable Hardware

<p>EFFICIENT IMPLEMENTATION OF ELLIPTIC <br>CURVE CRYPTOGRAPHY IN <br>RECONFIGURABLE HARDWARE </p><p>by <br>E-JEN LIEN </p><p>Submitted in partial fulfillment of the requirements for the degree of Master of Science </p><p>Thesis Advisor: Dr. Swarup Bhunia <br>Department of Electrical Engineering and Computer Science <br>CASE WESTERN RESERVE UNIVERSITY </p><p>May, 2012 </p><p><strong>CASE WESTERN RESERVE UNIVERSITY </strong><br><strong>SCHOOL OF GRADUATE STUDIES </strong></p><p>We hereby approve the thesis/dissertation of </p><p>E-Jen Lien </p><p>_____________________________________________________ </p><p>Master of Science </p><p>candidate for the ______________________degree *. </p><p>Swarup Bhunia </p><p>(signed)_______________________________________________ <br>(chair of the committee) </p><p>Christos Papachristou </p><p>________________________________________________ </p><p>Frank Merat </p><p>________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ </p><p>03/19/2012 </p><p>(date) _______________________ *We also certify that written approval has been obtained for any proprietary material contained therein. </p><p><em>To my family </em>⋯ </p><p>Contents </p><p></p><ul style="display: flex;"><li style="flex:1">List of Tables </li><li style="flex:1">iii </li></ul><p></p><ul style="display: flex;"><li style="flex:1">v</li><li style="flex:1">List of Figures </li></ul><p>Acknowledgements List of Abbreviations Abstract vi vii viii </p><ul style="display: flex;"><li style="flex:1">1 Introduction </li><li style="flex:1">1</li></ul><p></p><p>134<br>1.1 Research&nbsp;objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Thesis&nbsp;Outline .&nbsp;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Contributions&nbsp;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . </p><p></p><ul style="display: flex;"><li style="flex:1">2 Background&nbsp;and Motivation </li><li style="flex:1">6</li></ul><p></p><p>679<br>2.1 MBC&nbsp;Architecture .&nbsp;. . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Application&nbsp;Mapping to MBC&nbsp;. . . . . . . . . . . . . . . . . . . . . . 2.3 FPGA&nbsp;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Mathematical&nbsp;Preliminary .&nbsp;. . . . . . . . . . . . . . . . . . . . . . .&nbsp;10 2.5 Elliptic&nbsp;Curve Cryptography&nbsp;. . . . . . . . . . . . . . . . . . . . . .&nbsp;10 2.6 Motivation&nbsp;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;16 </p><p>i</p><p></p><ul style="display: flex;"><li style="flex:1">3 Design&nbsp;Principles and Methodology </li><li style="flex:1">18 </li></ul><p></p><p>3.1 Curves&nbsp;over Prime Field&nbsp;. . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;18 3.2 Curves&nbsp;over Binary Field . . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;25 3.3 Software&nbsp;Code for ECC .&nbsp;. . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;31 3.4 RTL&nbsp;code for FPGA design&nbsp;. . . . . . . . . . . . . . . . . . . . . . .&nbsp;31 3.5 Input&nbsp;Data Flow Graph (DFG) for MBC&nbsp;. . . . . . . . . . . . . . . .&nbsp;31 </p><p></p><ul style="display: flex;"><li style="flex:1">4 Implementation&nbsp;of ECC </li><li style="flex:1">32 </li></ul><p></p><p>4.1 Software&nbsp;Implementation . . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;32 <br>4.1.1 Prime&nbsp;Field .&nbsp;. . . . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;33 4.1.2 Binary&nbsp;Field . . . . . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;34 <br>4.2 Implementation&nbsp;in FPGA&nbsp;. . . . . . . . . . . . . . . . . . . . . . . .&nbsp;35 <br>4.2.1 Prime&nbsp;Field .&nbsp;. . . . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;36 4.2.2 Binary&nbsp;Field . . . . . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;40 <br>4.3 Implementation&nbsp;in MBC&nbsp;. . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;44 <br>4.3.1 Prime&nbsp;Field .&nbsp;. . . . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;45 4.3.2 Binary&nbsp;Field . . . . . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;47 </p><p></p><ul style="display: flex;"><li style="flex:1">5 Test&nbsp;Results </li><li style="flex:1">48 </li></ul><p></p><p>5.1 Test&nbsp;Patterns and Methodology&nbsp;. . . . . . . . . . . . . . . . . . . . .&nbsp;49 5.2 Test&nbsp;Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;50 </p><p>6 Conclusion&nbsp;and Future Work A Simulation&nbsp;Results <br>56 58 </p><p>A.1 Prime&nbsp;field .&nbsp;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;58 A.2 Binary&nbsp;field .&nbsp;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;59 </p><p></p><ul style="display: flex;"><li style="flex:1">Bibliography </li><li style="flex:1">61 </li></ul><p></p><p>ii </p><p>List of Tables </p><p></p><ul style="display: flex;"><li style="flex:1">2.1 Instruction&nbsp;set .&nbsp;. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . </li><li style="flex:1">8</li></ul><p>5.1 Number&nbsp;of each operation from the data provided by NIST .&nbsp;. . . . .&nbsp;50 5.2 Number&nbsp;of each operation in GF(p) from the data provided by NIST&nbsp;50 5.3 Number&nbsp;of each operation in GF(2<sup style="top: -0.3615em;">m</sup>) from the data provided by NIST&nbsp;50 5.4 Power,&nbsp;Performance and Size Comparison&nbsp;. . . . . . . . . . . . . . .&nbsp;50 5.5 The&nbsp;Comparison of 192 bit Point Multiplication in different Paper&nbsp;. .&nbsp;54 5.6 The&nbsp;Comparison of 192 bit Scalar Multiplication in different Paper&nbsp;. 54 5.7 The&nbsp;Comparison of Point Multiplication in different Papers .&nbsp;. . . . .&nbsp;55 </p><p>iii </p><p>List of Figures </p><p>1.1 2011&nbsp;ITRS ASIC Scaling trend prediction .&nbsp;. . . . . . . . . . . . . . . 2.1 Memory&nbsp;Logic Block Diagram&nbsp;. . . . . . . . . . . . . . . . . . . . . . <br>27<br>3.1 Squaring&nbsp;in Binary Field&nbsp;. . . . . . . . . . . . . . . . . . . . . . . . .&nbsp;31 4.1 ECC&nbsp;hardware addition module&nbsp;. . . . . . . . . . . . . . . . . . . . .&nbsp;36 4.2 ECC&nbsp;hardware subtraction module&nbsp;. . . . . . . . . . . . . . . . . . .&nbsp;37 4.3 ECC&nbsp;hardware Montgomery module .&nbsp;. . . . . . . . . . . . . . . . . .&nbsp;38 4.4 ECC&nbsp;hardware Inversion module .&nbsp;. . . . . . . . . . . . . . . . . . . .&nbsp;39 4.5 ECC&nbsp;hardware Point Addition module&nbsp;. . . . . . . . . . . . . . . . .&nbsp;40 4.6 ECC&nbsp;hardware Point Doubling module&nbsp;. . . . . . . . . . . . . . . . .&nbsp;41 4.7 ECC&nbsp;hardware kp module .&nbsp;. . . . . . . . . . . . . . . . . . . . . . .&nbsp;42 4.8 ECC&nbsp;hardware Right-to-left Shift-and-Add Multiply module&nbsp;. . . . .&nbsp;42 4.9 Modified&nbsp;ECC hardware Right-to-left Shift-and-Add Multiply module&nbsp;43 4.10 ECC&nbsp;hardware inversion module in GF(2<sup style="top: -0.3615em;">m</sup>) .&nbsp;. . . . . . . . . . . . .&nbsp;44 4.11 ECC&nbsp;hardware Itoh-Tsujii inversion module&nbsp;. . . . . . . . . . . . . .&nbsp;44 4.12 ECC&nbsp;hardware Point Addition module in GF(2<sup style="top: -0.3616em;">m</sup>) . . . . . . . . . . .&nbsp;45 4.13 ECC&nbsp;hardware Point Doubling module in GF(2<sup style="top: -0.3616em;">m</sup>) . . . . . . . . . . .&nbsp;46 </p><p>5.1 Energy&nbsp;comparison in prime field&nbsp;. . . . . . . . . . . . . . . . . . . .&nbsp;51 5.2 Energy&nbsp;comparison in binary field&nbsp;. . . . . . . . . . . . . . . . . . . .&nbsp;52 5.3 Energy&nbsp;comparison in all fields .&nbsp;. . . . . . . . . . . . . . . . . . . . .&nbsp;52 </p><p>iv <br>5.4 Performance&nbsp;comparison in prime field&nbsp;. . . . . . . . . . . . . . . . .&nbsp;53 5.5 Performance&nbsp;comparison in binary field&nbsp;. . . . . . . . . . . . . . . . .&nbsp;53 5.6 Performance&nbsp;comparison in all fields .&nbsp;. . . . . . . . . . . . . . . . . .&nbsp;54 </p><p>A.1 Functional&nbsp;simulation of ECC scalar multiplication in GF(p) . . . . .&nbsp;58 A.2 Functional&nbsp;simulation of ECC scalar multiplication in GF(2<sup style="top: -0.3615em;">m</sup>) . . . .&nbsp;59 A.3 ECC&nbsp;scalar multiplication (with Itoh-Tsujii) in GF(2<sup style="top: -0.3615em;">m</sup>) . . . . . . . .&nbsp;60 </p><p>v</p><p>Acknowledgements </p><p>There are so many people I have to express my thanks sincerely.&nbsp;First, I want to thank my family.&nbsp;My parents gave me a lot of support when I needed.&nbsp;My wife and daughter always cheered me up and boosted my confidence. My younger brother takes care of my parents and deals with a lot of things for me.&nbsp;Secondly, I want to express my sincere gratitude to my advisor - Dr. Swarup Bhunia. From my advisor, I learnt the passion of work and the attitude towards research.&nbsp;I also want to show my heartfelt appreciation to Professor Christos Papachristou and Professor Francis Merat for serving as my thesis committee members.&nbsp;Finally, I want to give my thanks to all members in the nanoscape laboratory whose advice continously helped me to improve my work. </p><p>vi </p><p>List of Abbreviations </p><p>ACP ANSI ASIC CPU DFG ECC FPGA FSM IC </p><p>Average CPU Power American National Standards Institute Application Specific Integrated Circuit Central Processing Unit Data Flow Graph Elliptic Curve Cryptography Field Programmable Gate Array Finite State Machine Integrated Circuit </p><p>ITRS LUT MBC MLB MSB NIST RSA TDP VLSI </p><p>International Technology Roadmap for Semiconductors Look-Up Table Memory Based Computing Memory Based Logic Block Most Significant Bit National Institute of Standards and Technology Rivest-Shamir-Adleman Thermal Design Power Very Large Scale Integration </p><p>vii </p><p>Efficient Implementation of Elliptic Curve Cryptography in <br>Reconfigurable Hardware </p><p>Abstract by <br>E-JEN LIEN </p><p>Elliptic curve cryptography (ECC) has emerged as a promising public-key cryptography approach for data protection.&nbsp;It is based on the algebraic structure of elliptic curves over finite fields. Although ECC provides high level of information security, it involves computationally intensive encryption/decryption process, which negatively affects its performance and energy-efficiency.&nbsp;Software implementation of ECC is often not amenable for resource-constrained embedded applications.&nbsp;Alternatively, hardware implementation of ECC has been investigated V in both application specific integrated circuit(ASIC) and field programmable gate array (FPGA) platforms V in order to achieve desired performance and energy efficiency.&nbsp;Hardware reconfigurable computing platforms such as FPGAs are particularly attractive platform for hardware acceleration of ECC for diverse applications, since they involve significantly less design cost and time than ASIC. In this work, we investigate efficient implementation of ECC in reconfigurable hardware platforms.&nbsp;In particular, we focus on implementing different ECC encryption algorithms in FPGA and a promising memory array based reconfigurable computing framework, referred to as MBC. MBC leverages the benefit of nanoscale memory, namely, high bandwidth, large density and small wire delay to drastically reduce the overhead of programmable interconnects. We evaluate the performance and energy efficiency of these platforms and compare those with a purely software implementation.&nbsp;We use the pseudo-random curve in the prime field and Koblitz curve in the binary field to do the ECC scalar multiplica- </p><p>viii tion operation. We perform functional validation with data that is recommended by NIST. Simulation results show that in general, MBC provides better energy efficiency than FPGA while FPGA provides better latency. </p><p>ix </p><p>Chapter 1 Introduction </p><p>In this chapter, we describe the research objectives, contribution of the thesis and outline of the thesis. </p><p>1.1 Research&nbsp;objectives </p><p>Energy efficiency during computation has emerged as a major design parameter in diverse applications and computing platforms [1][2][3][4][5][6][7][8]. According to the 2011 report from the International Technology Roadmap for Semiconductors (ITRS), the technology scaling trend for application specific integrated circuit (ASIC) can be depicted by Figure 1.1.&nbsp;It shows that although technology scaling provides consistent exponential improvement (following Moores law) in integration density, operating power is not scaling as desired.&nbsp;Consequently, addressing the power issue at circuit, architecture and application mapping level has been a major research area in the nanoscale technology regime. The energy issue can be more prominent for many compute-intensive tasks. Conventional software implementations of these tasks can be too power hungry or can be too slow to meet the requirements for many real-time and embedded applications. There is a growing trend to map these complex compute-intensive applications in </p><p>1reconfigurable hardware, such as field programmable gate array (FPGA). FPGA is an attractive computing platform since it can drastically reduce the hardware development/test cost and time.&nbsp;Alternative reconfigurable hardware platform such as memory based computing (MBC) platforms [9] [10] are also very promising at nanoscale technology.&nbsp;MBC platform relies on a dense two-dimensional memory array to perform computing in a spatio-temporal manner.&nbsp;Applications are decomposed into partitions, which can potentially be mapped as large look-up table (LUT) in the memory and a function can be evaluated by accessing the LUT contents over multiple cycles. Multiple MLB interacts in spatial manner to perform complex operation. The objective of the research presented in this thesis is to explore implementation of elliptic curve cryptography (ECC) algorithm in reconfigurable hardware and evaluate their performance and energy efficiency.&nbsp;In order to analyze potential benefit over traditional software-based implementation, we also compare these design parameters with an alternative implementation in software. We study different variants of ECC algorithms proposed in earlier works and analyze the relative merits and demerits of these algorithms in three alternative platforms. </p><p>Figure 1.1: 2011 ITRS ASIC Scaling trend prediction <br>2</p><p>1.2 Thesis&nbsp;Outline </p><p>From inception to completion, this thesis is dedicated in analyzing and evaluating the power, performance and resource usage (referred to as size) of Elliptic Curve Cryptography (ECC) among three different platforms, namely CPU, FPGA and MBC respectively. <br>In chapter one, we will describe the research objectives and contribution of our work. <br>The background and motivation will be mentioned in chapter two.&nbsp;Here we will introduce the hardware descriptions of the different platforms on which ECC is being mapped. It will describe in detail the programming techniques and the normal mode operation principle of the proposed MBC framework. Similar short descriptions on a commercially available FPGA and the underlying hardware is also described. Finally some mathematical background in field theorem, number theorem and ECC will also be introduced which will help the reader in understanding the actual algorithm which has to be mapped in the hardware framework. <br>Chapter three deals with the main algorithms that are namely sub-parts of Elliptic curve cryptography (ECC). The algorithms are listed and described in detail in this chapter. There are multiple variants of the same algorithm which can be mapped in the proposed framework.&nbsp;In this chapter, we have also described which algorithms are the most suitable choice in terms of resource usage and power consumption. <br>In chapter four, we will describe how to implement ECC in each platform.&nbsp;The details and structure of each design will be described.&nbsp;The detailed implementation results are also listed in chapter five.&nbsp;Detailed functional validation of the implemented design is also described in Chapter 4. <br>Finally in Chapter 5, we describe the conclusions and the future work which can potentially improve the already proposed work. </p><p>3</p><p>1.3 Contributions </p><p>The key contributions of the proposed work in this thesis are as follows: <br>1. In order to evaluate performance and energy efficiency of ECC implementation in reconfigurable hardware, we have mapped ECC algorithm in FPGA and MBC platforms. To&nbsp;compare with a traditional software implementation, we have also mapped it to software.&nbsp;The mapping is separately optimized in three platforms for performance. </p><p>2. We&nbsp;have implemented three different variants of the ECC algorithm on MBC platform, namely Prime Field, Binary Field (Binary Inversion) and Binary Field (Itoh-Tsujii Inversion).&nbsp;Our purpose is to show proposed MBC structure can deal with complex algorithms such as ECC and evaluate the ECC performance in MBC. The hardware resource of MBC is severely limited by its simple and regular structure. We&nbsp;adjust the input data flow graph representing ECC in the MBC mapping framework to improve performance and minimize resource requirements.&nbsp;All the three versions of ECC have also been mapped in software and FPGA. </p><p>3. We&nbsp;designed a novel fast ECC in GF(2<sup style="top: -0.3616em;">m</sup>) on FPGA for Binary Field Binary <br>Inversion algorithm and optimized the design in terms of its performance. For all the implementations in software and hardware in the proposed work, the inversion step is applied and the coordinates are not pre-calculated.&nbsp;The applications which have been mapped in MBC and FPGA have been highly optimized so as to have competitive mapping performances in both frameworks. </p><p>4. After&nbsp;extensive functional validation of all the ECC implementations (three platforms and three different algorithm), we make a comparison of the performance, area and energy requirement of ECC in the three different platforms. We show that </p><p>4<br>MBC is superior in terms of performance and energy efficiency over software and in energy efficiency over a state-of-the-art commercially available FPGA device (Altera Stratix-IV). </p><p>5</p><p>Chapter 2 Background and Motivation </p><p>In this chapter, we will introduce some useful background knowledge relevant to this thesis. ECC&nbsp;is a very well-investigated topic.&nbsp;This chapter describes multiple existing implementations of ECC. Also, the background related to the MBC hardware and programming techniques of MBC are explained in this section, since it is useful to understand the structure of the hardware platform before writing the code to configure the hardware.&nbsp;We also introduce the FPGA structure so as to compare with the MBC hardware architecture.&nbsp;It is important to understand the distinctions between these two kinds of reconfigurable devices so that one can map ECC or any other application efficiently into the actual hardware. </p><p>2.1 MBC&nbsp;Architecture </p><p>The malleable hardware accelerator we used in this thesis was proposed by Dr. Somnath Paul and Professor Swarup Bhunia[9], [10].&nbsp;The inner structure of the MBC and its operation principle is provided in Figure 2.1 by showing the basic process in initializing the MBC hardware.&nbsp;The configuration code is compiled and loaded into the memory, among which some memory will be used in storing data, others serve as Look-Up Tables (LUTs) to be configured to certain logic.&nbsp;Memory is accessed over </p><p>6multiple clock cycles to evaluate the complex functions. A sequence of operations are stored as microcodes in the schedule table. An application is mapped to an array of MLBs, which communicates in spatial manner. </p><p>Figure 2.1: Memory Logic Block Diagram </p><p>2.2 Application&nbsp;Mapping to MBC </p><p>The first thing that we have to do before programming on MBC is to understand the instruction sets that we have.&nbsp;In this case, there are thirteen basic instructions on MBC. We can use these instructions in our programs and combine them to do some complicated operations. <br>The instruction set is shown in Table ??. Consider the case where one executes an XOR operation on two 163-bit numbers. <br>Since the input bit-width of 163-bit exceeds the maximum computation bit-width supported by a single LUT, we must divide the operation into small pieces.&nbsp;For convenience and homogeneity, we always used 8-bit or 16-bit as our basic operation </p><p>7<br>Table 2.1: Instruction set </p><p>Type bitswC bitswC mult </p><ul style="display: flex;"><li style="flex:1">Subtype </li><li style="flex:1">inputs </li></ul><p>a0 b0 cin a1 b1 cin a2 b2 <br>Outputs sum count diff borrow prod <br>2inadd 2insub rand delay shift rot </p><ul style="display: flex;"><li style="flex:1">rand </li><li style="flex:1">a3 </li></ul><p>a4 # a3 delay a4 shift a5 rot left/right left/right rand a5 # </p><ul style="display: flex;"><li style="flex:1">sel </li><li style="flex:1">a6 b6 c6 d6 sel </li></ul><p>a7 b7 c7 addr out lut out loadVal complex load store rand <br>#width #width #width addr Val </p><ul style="display: flex;"><li style="flex:1">PRaddr en </li><li style="flex:1">loadPR </li><li style="flex:1">loadVal </li></ul><p>storePR #width PRaddr&nbsp;storeval en </p><p>unit. We first divide the 163-bit number into eleven 16-bit arrays. Then we write the program to store the data into memory.&nbsp;When the program is being executed, the data loaded from the memory depends on the memory address base.&nbsp;The memory address is incremented after each loading.&nbsp;We do the XOR operation between two arrays and store the results into the temporary register. For applications whose computations involve large numbers, such as AES, RSA or ECC, significant power and latency will be incurred in these load/store operations.&nbsp;However, if we can code the program cautiously and pre-compute the output memory address or variable, we can reduce the number of operation memory load/store significantly. A sample data flow graph (DFG) which can be run on the MBC hardware is as follows: </p><p>CDFG sample name: v0000 type: complex subtype: rand inputs: baa00 g00 outputs: addraa00 en aa00 bitwidth: 4 4 name: v0001 type: complex subtype: rand inputs: bbb00 g00 outputs: addrbb00 en bb00 bitwidth: 4 4 name: v0002 type: complex subtype: rand inputs: bpp00 g00 outputs: addrpp00 en pp00 bitwidth: 4 4 name: v0003 type: complex subtype: rand inputs: bcc00 g00 outputs: addrcc00 en cc00 bitwidth: 4 4 name: v0004 type: loadPR subtype: 16 inputs: addraa00 en aa00 outputs: aa00 in bitwidth: 4 1 name: v0005 type: loadPR subtype: 16 inputs: addrbb00 en bb00 outputs: bb00 in bitwidth: 4 1 </p><p>8</p><p>name: v0006 type: loadPR subtype: 16 inputs: addrpp00 en pp00 outputs: pp00 in bitwidth: 4 1 name: v0007 type: bits subtype: xor inputs: aa00 in bb00 in pp00 in outputs: cc00 bitwidth: 16 16 16 name: v0008 type: storePR subtype: 16 inputs: addrcc00 cc00 en cc00 outputs: bitwidth: 4 16 1 name: v0009 type: bitswC subtype: 2inadd inputs: loop00 one zero outputs: loop01 uloop00 bitwidth: 4 1 1 name: v0010 type: delay subtype: rand inputs: loop01 outputs: loop00 bitwidth: 4 name: v0011 type: complex subtype: rand inputs: loop00 outputs: g00 bitwidth: 4 endCDFG </p><p>This is the standard file format of an application given as an input to the software, which maps the input application to the actual hardware depending on the mapping and routing resources available. </p><p>2.3 FPGA </p><p>FPGA is a widely used reconfigurable device [11].&nbsp;It is composed of a sea of configurable logic blocks and programmable interconnects.&nbsp;It has many features as described in [12] and multiple advantages which are as listed below: 1. Build a prototype rapidly. 2. Easy to migrate the design to different IC process. 3. Integrated tools and design flow from coding to hardware implementation. 4. Powerful tools can be used in timing and power analysis. <br>FPGAs are widely used as hardware design and validation platform.&nbsp;We use <br>SRAM-based reconfigurable FPGAs in this work. <br>In this thesis, we use Xilinx and Altera FPGA as our platforms to be consistent with previous work so that we can compare our results with them.&nbsp;This also allows us to compare the results on all platforms at the same technology node.&nbsp;The FPGA that we choose to perform the power analysis on is the Stratix IV series. Since we develop the MBC model under 45nm technology node, we try to find the FPGA with a close </p>

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    77 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us