< WhatWebWhat Search >

NOVA Assembler Generator

NOVA, now called NOVAgen, is the proprietary generation and development tools suite of TASKING for building Cross-Assembler toolsets for virtually any DSP or microcontroller. It takes an input specification of the assembly language syntax, mnemonics and associated opcode sequences, and builds all components that are necessary for a full-featured assembler, automatically. These can be compiled and then linked to the supplied modules to produce an executable Assembler on any given host platform, of production quality.

The input specification language was designed with flexibility and ease-of-use in mind, requiring no special skills or training. It supports any architecture, from 4 bit to 64 bit, and is widely programmable to support any instruction-set, syntax and opcode format (including little/big endian, or mixed encoding).

The NOVAgen technology does support a number of powerful optimizations that are extremely important for microcontrollers and DSPs:

  • Instruction scheduling where the order of instructions can be changed in order to minimize pipeline delays.
  • Instruction Parallelization where instruction sequences are replaced by their parallelized counterparts.
  • Jump optimization where the shortest possible coding scheme is selected based on the address range.
  • Peephole optimization where instruction sequences are identified that are to be replaced by shorter ones.

The language and the automatic generation process have been very successfully used in combination with instruction-set databases. In this case, the instruction-set is derived either from a hardware design model, or from a specification document, and can directly be used to generate input description files for the NOVAgen generation suite.

The first version was build using Haskell and C.

Other Projects By Marc Worrell – Keyword novagen, nova, embedded, assembler, Software – Saturday, October 11, 2008