[comp.newprod] User-Retargetable Microcode Development System

rpgurd@watcgl.waterloo.edu (Preston Gurd) (10/25/89)

Bit Slice Software is pleased to announce the availability of a
complete software development system for microcoded machines.

The system includes a C preprocessor (MCPP), C compiler (MCC), a
Fortran compiler (RFC), a peephole optimizer (MCPEEP), a unique
compactor/instruction scheduler (MCPACK), a macro assembler
(MCASR), a linker (MCLINK), an object librarian (MCLIB), and a
simulator (MCSIM).

The C preprocessor and compiler conform to the draft proposed
ANSI standard.  The Fortran compiler conforms to the 1977 ANSI
standard (except that support for I/O is omitted) and also
supports many common extensions, such as structure types.
Optimizations performed by the compilers include automatic
assignment of variables to registers (when usage counts warrant),
along with global common sub-expression elimination.  The
compilers support extra syntax to permit you to do loop control
using the loop counter which is found in all commonly-available
micro-sequencers.

You configure the compilers for your hardware by writing a small
text file which contains information about the word size and the
register sets in your machine.  The compilers generate
instructions from a standard set of "vertical" instructions,
based on a RISC-like machine model, but using the registers which
you define.

MCPACK converts incoming instructions into compacted and
pipelined assembly code.  It does so by interpreting a control
file which is written by you in the Microcode Definition Language
or MDL.  The syntax of MDL is derived from C.  It is specifically
designed for compaction and instruction scheduling.  It provides
you with the ability to define and fill instruction templates and
to attach resource usage information to them.  We provide a
comprehensive user manual which shows you how to use the language
to drive the compaction algorithm.

If your machine is not generally suitable to the application of
high level languages, you can still use the MDL to create your
own machine-dependent low level language which can then be
translated by the compactor under the control of your MDL code.
The advantage of using MCPACK to implement a low level language,
instead of just using assembler macros, is that MCPACK can take
advantage of hardware parallelism to produce more compact output
code.

MCASR, the assembler, allows you to create instructions up to 256
bits wide.  It allows you to divide each word up into fields.
Each field consists of one or more sub-fields, each of which is a
contiguous group of up to 32 bits which starts at any bit
position.

MCLINK, the linker, supports up to eight independent address
spaces, each of which can have a unique word size and location
counter increment.  Each word can contain up to 32 relocatable
fields.  Each relocatable field can be aligned to any bit
boundary within the word and can be up to 32 bits wide.

MCSIM, the simulator, provides you with a means of simulating the
code for your machine which comes out of the compilers.  This can
be helpful for verifying that the compiler generated code works
correctly before trying to run the code on the target hardware.

We believe that this software system provides an ideal way to
quickly generate development tools for new architectures.

Binary versions of the software are available for MS-DOS/PC-DOS,
for Unix System V/386, and for the Sun/3.  Source code licencing
is available, as well.

If you are interested in the software, but would rather not do
the implementation, we would be pleased to make arangements to do
it for you.

For more information on this product or on our custom development
services, please contact

 Preston Gurd
 Bit Slice Software
 460 Forestlawn Road
 Waterloo, Ontario, Canada
 N2K 2J6
 (519)746-7925