Logo
Logo-Icon Sitemap Print-Icon Print-Version Contact-Icon Contact
  • Home
  • About IAIK
    • People
    • News
    • Events
    • How To Reach Us
    • Jobs
    • Privacy Policy
  • Research
    • Publications
    • E-Government
    • Formal Methods for Design & Verification
    • Implementation Attacks
    • Java-Security
    • Krypto
    • Secure & Correct Systems
    • Secure Entities for Smart Environments
    • Secure RFID
    • Trusted Computing
    • VLSI
  • Teaching
    • Bachelor Courses
    • Master Courses
    • Master Theses
    • PhD
    • E-Exam
  • Partnerships
    • A-SIT
    • Stiftung SIC
Left Logo
VLSI
Archive Equipment Hardware Modules Partners Projects - IAIK Online Code Generator - SHA-3 Hardware Publications
Right Logo
You are here: Start » Research » VLSI » Projects » IAIK Online Code Generator

IAIK Online Code-Generator for Large Integer Multiplication

Description

This webpage allows developers to generate Assembly source-code to perform large Integer multiplication on multi-precision hardware architectures like the AVR family of microcontrollers. With the Online AVR-Code Generator, one can generate Assembly-optimized code to efficiently perform fast multi-precision multiplication.

There exist many methods to perform large Integer multiplication. The Online AVR-Code Generator supports Operand Caching Multiplication, Hybrid Multiplication, Product-Scanning Multiplication (aka Comba or column-wise multiplication), and Operand-Scanning Multiplication (aka school-book or row-wise multiplication). For a detailed description of the given multiplication methods, we refer to this paper published at CHES 2011.

Features:

  • Generation of Assembler-source code for large Integer multiplication methods.
  • Multiplication methods: Operand Caching Multiplication, Hybrid Multiplication, Product-Scanning Multiplication, and Operand-Scanning Multiplication.
  • Architectures: 8-bit AVR ATmega (e.g. ATmega128) and AVR ATTiny (e.g. ATTiny167) microcontroller. Note: the ATTiny does not feature a dedicated hardware multiplier.
  • Operand sizes: from 160 to 1024 bits.
  • Looped or Unrolled instructions (trade-off between speed and code size).
  • Supported Compilers: avr-gcc, Rowley Crossworks for AVR, IAR AVR Compiler.

Applet Operations:

  • 1. The multiplication parameters can be set by the Java-applet comboxes, checkbox, and textfield.
  • 2. Press the Generate button to generate the source code. The code will be printed in the Code textfield.
  • 3. Simply copy/paste the source code into a textfile named mul_asm.S (or mul_asm.asm for Crossworks Compiler).
  • 4. A corresponding C-file is available in the Example C Test-File panel in the lower right of the applet. Simply copy/paste it and put it into a textfile named test_mul.c.
  • 5. In the Statistics panel, the needed number of clock cycles and the code size is given. All values have been simulated using avr-gcc with simulavr. Also the number of involved instructions is given in the statistics.

Online Code Generator

You can start the applet by pressing the "launch" button. The applet will start in a new window.


Note: The website requires Java to be installed and JavaScript to be enabled in your browser to launch the Java applet.
Also note that the applet has been signed to allow copy/paste functionalitites. You can download the X.509 certificate here.

Alternatively, you can also launch the applet via Java Web Start. If you don't see the Java Web Start application running, make sure that you have at least the Java 2 Platform, Standard Edition (J2SE) 1.4.2 release on your client. If not, download and install the latest release of the Java SE Development Kit (JDK).



AVR Performance Charts

Application

The online calculator is interesting for developers who would like to implement an Integer multiplication with large operands, e.g. 160-1024 bits. This is required, for example, in cryptography, image-processing, signal processing, or digital-filtering applications.

For more information please contact: Michael Hutter or Erich Wenger.

© 1990 - 2013 IAIK TU Graz
Contact | Jobs | Sitemap | Impressum