Asynchronous Java Processor for Contactless Smart Card

Smart cards represent one of the smallest computing platforms today. The greatest challenge of Java card technology design is to fit Java system software in a smart card while conserving enough space for application. Because of its small memory footprint, the Java Card platform supports only a carefully chosen, customized subset of Java language. This subset includes features that are well suited for writing programs for smart cards and other small device while preserving the object-oriented capabilities of the Java programming language.

In this project, the Java processor is realized using asynchronous design technique. The design is based upon Sutherland's micropipelines and allows considerable internal asynchronous concurrency. It consists of program counter, address decoder, register bank, ALU and internal memory (RAM/ROM/EEPROM). The basic elements of the microprocessor include c-element, select, toggle, call, arbiter, latch, …