Math2mat
Public Types | Public Member Functions

m2m.backend.buildingblocks.BuildingBlock Class Reference

Inheritance diagram for m2m.backend.buildingblocks.BuildingBlock:
Inheritance graph
[legend]

List of all members.

Public Types

enum  NumType {
  FLOAT, FLOAT32, FLOAT64, FIXED,
  INTUINT, INT, UINT, OTHER
}
enum  ImplType { SEQUENTIAL, PIPELINE, COMBINATORIAL }

Public Member Functions

 BuildingBlock ()
boolean useGenericSize ()
abstract NumType numType ()
abstract ImplType implType ()
abstract int version ()
abstract String author ()
int latencyTime ()
abstract int resources ()
abstract int period ()
int cycleTime ()
abstract String functionName ()
abstract String vhdlFileName ()
abstract ArrayList< String > dependentFiles ()
abstract String entityName ()
int nbInputs ()
int nbOutputs ()
String device ()
abstract String description ()

Detailed Description

This class represents a building block for the math2mat project. Its purpose is to supply the description of such a block, by being derived once for each component.

Author:
Yann Thoma
Version:
1.0

Definition at line 14 of file BuildingBlock.java.


Member Enumeration Documentation

Implementation type of a building block

Enumerator:
SEQUENTIAL 

Sequential, typically with a cycle_time greater than 1

PIPELINE 

Pipeline, typically with a cycle_time equal to 1

COMBINATORIAL 

Combinatorial, with a long combinatorial datapath and an output register

Definition at line 88 of file BuildingBlock.java.

Type of numbers processed by a building block

Enumerator:
FLOAT 

A generic float

FLOAT32 

A 32-bit IEEE float

FLOAT64 

A 64-bit IEEE float

FIXED 

A fixed-point number

INTUINT 

For integers or unsigned integers

INT 

An signed integer

UINT 

An unsigned integer

OTHER 

Another unknown type

Definition at line 25 of file BuildingBlock.java.


Constructor & Destructor Documentation

m2m.backend.buildingblocks.BuildingBlock.BuildingBlock ( )

A default empty constructor

Definition at line 19 of file BuildingBlock.java.


Member Function Documentation

abstract String m2m.backend.buildingblocks.BuildingBlock.author ( ) [pure virtual]

Returns the author of the VHDL file.

Returns:
the author name

Implemented in m2m.backend.buildingblocks.blocks.Add2Comb32, m2m.backend.buildingblocks.blocks.Add2Comb64, m2m.backend.buildingblocks.blocks.Add2Pipe32, m2m.backend.buildingblocks.blocks.Add2Pipe64, m2m.backend.buildingblocks.blocks.AndComb32, m2m.backend.buildingblocks.blocks.Div2CombArray32, m2m.backend.buildingblocks.blocks.Div2CombSrt32, m2m.backend.buildingblocks.blocks.Div2CombSrt64, m2m.backend.buildingblocks.blocks.Div2CombSucc32, m2m.backend.buildingblocks.blocks.Div2PipeArray32, m2m.backend.buildingblocks.blocks.Div2PipeSrt32, m2m.backend.buildingblocks.blocks.Div2PipeSrt64, m2m.backend.buildingblocks.blocks.EqualComb32, m2m.backend.buildingblocks.blocks.GreatComb32, m2m.backend.buildingblocks.blocks.GreatEqComb32, m2m.backend.buildingblocks.blocks.LessComb32, m2m.backend.buildingblocks.blocks.LessEqComb32, m2m.backend.buildingblocks.blocks.Mult2CombCsa32, m2m.backend.buildingblocks.blocks.Mult2CombWired32, m2m.backend.buildingblocks.blocks.Mult2CombWired64, m2m.backend.buildingblocks.blocks.Mult2PipeCsa32, m2m.backend.buildingblocks.blocks.Mult2PipeWired32, m2m.backend.buildingblocks.blocks.Mult2PipeWired64, m2m.backend.buildingblocks.blocks.MuxComb32, m2m.backend.buildingblocks.blocks.Neg, m2m.backend.buildingblocks.blocks.OrComb32, m2m.backend.buildingblocks.blocks.SqrtCombNr32, m2m.backend.buildingblocks.blocks.SqrtCombNr64, m2m.backend.buildingblocks.blocks.SqrtCombSrt32, m2m.backend.buildingblocks.blocks.SqrtCombSrt64, m2m.backend.buildingblocks.blocks.SqrtPipeNr32, m2m.backend.buildingblocks.blocks.SqrtPipeNr64, m2m.backend.buildingblocks.blocks.SqrtPipeSrt32, m2m.backend.buildingblocks.blocks.SqrtPipeSrt64, m2m.backend.buildingblocks.blocks.Sub2Comb32, m2m.backend.buildingblocks.blocks.Sub2Comb64, m2m.backend.buildingblocks.blocks.Sub2Pipe32, and m2m.backend.buildingblocks.blocks.Sub2Pipe64.

int m2m.backend.buildingblocks.BuildingBlock.cycleTime ( )

Indicates the cycle time of the building block. For a standard pipeline implementation, it should be 1, as a new calculation can be launched at every clock cycle. For a sequential implementation it should return the number of clock cycles required for a processing, if this is known, 0 else. For a combinatorial implementation, it is not relevant.

Returns:
the cycle time

Reimplemented in m2m.backend.buildingblocks.blocks.Add2Comb32, m2m.backend.buildingblocks.blocks.Add2Comb64, m2m.backend.buildingblocks.blocks.Add2Pipe32, m2m.backend.buildingblocks.blocks.Add2Pipe64, m2m.backend.buildingblocks.blocks.AndComb32, m2m.backend.buildingblocks.blocks.Div2CombArray32, m2m.backend.buildingblocks.blocks.Div2CombSrt32, m2m.backend.buildingblocks.blocks.Div2CombSrt64, m2m.backend.buildingblocks.blocks.Div2CombSucc32, m2m.backend.buildingblocks.blocks.Div2PipeArray32, m2m.backend.buildingblocks.blocks.Div2PipeSrt32, m2m.backend.buildingblocks.blocks.Div2PipeSrt64, m2m.backend.buildingblocks.blocks.EqualComb32, m2m.backend.buildingblocks.blocks.GreatComb32, m2m.backend.buildingblocks.blocks.GreatEqComb32, m2m.backend.buildingblocks.blocks.LessComb32, m2m.backend.buildingblocks.blocks.LessEqComb32, m2m.backend.buildingblocks.blocks.Mult2CombCsa32, m2m.backend.buildingblocks.blocks.Mult2CombWired32, m2m.backend.buildingblocks.blocks.Mult2CombWired64, m2m.backend.buildingblocks.blocks.Mult2PipeCsa32, m2m.backend.buildingblocks.blocks.Mult2PipeWired32, m2m.backend.buildingblocks.blocks.Mult2PipeWired64, m2m.backend.buildingblocks.blocks.MuxComb32, m2m.backend.buildingblocks.blocks.Neg, m2m.backend.buildingblocks.blocks.OrComb32, m2m.backend.buildingblocks.blocks.SqrtCombNr32, m2m.backend.buildingblocks.blocks.SqrtCombNr64, m2m.backend.buildingblocks.blocks.SqrtCombSrt32, m2m.backend.buildingblocks.blocks.SqrtCombSrt64, m2m.backend.buildingblocks.blocks.SqrtPipeNr32, m2m.backend.buildingblocks.blocks.SqrtPipeNr64, m2m.backend.buildingblocks.blocks.SqrtPipeSrt32, m2m.backend.buildingblocks.blocks.SqrtPipeSrt64, m2m.backend.buildingblocks.blocks.Sub2Comb32, m2m.backend.buildingblocks.blocks.Sub2Comb64, m2m.backend.buildingblocks.blocks.Sub2Pipe32, and m2m.backend.buildingblocks.blocks.Sub2Pipe64.

Definition at line 171 of file BuildingBlock.java.

abstract ArrayList<String> m2m.backend.buildingblocks.BuildingBlock.dependentFiles ( ) [pure virtual]

Returns the names of the VHDL files the block needs.

Returns:
Names of dependent VHDL files.

Implemented in m2m.backend.buildingblocks.blocks.Add2Comb32, m2m.backend.buildingblocks.blocks.Add2Comb64, m2m.backend.buildingblocks.blocks.Add2Pipe32, m2m.backend.buildingblocks.blocks.Add2Pipe64, m2m.backend.buildingblocks.blocks.AndComb32, m2m.backend.buildingblocks.blocks.Div2CombArray32, m2m.backend.buildingblocks.blocks.Div2CombSrt32, m2m.backend.buildingblocks.blocks.Div2CombSrt64, m2m.backend.buildingblocks.blocks.Div2CombSucc32, m2m.backend.buildingblocks.blocks.Div2PipeArray32, m2m.backend.buildingblocks.blocks.Div2PipeSrt32, m2m.backend.buildingblocks.blocks.Div2PipeSrt64, m2m.backend.buildingblocks.blocks.EqualComb32, m2m.backend.buildingblocks.blocks.GreatComb32, m2m.backend.buildingblocks.blocks.GreatEqComb32, m2m.backend.buildingblocks.blocks.LessComb32, m2m.backend.buildingblocks.blocks.LessEqComb32, m2m.backend.buildingblocks.blocks.Mult2CombCsa32, m2m.backend.buildingblocks.blocks.Mult2CombWired32, m2m.backend.buildingblocks.blocks.Mult2CombWired64, m2m.backend.buildingblocks.blocks.Mult2PipeCsa32, m2m.backend.buildingblocks.blocks.Mult2PipeWired32, m2m.backend.buildingblocks.blocks.Mult2PipeWired64, m2m.backend.buildingblocks.blocks.MuxComb32, m2m.backend.buildingblocks.blocks.Neg, m2m.backend.buildingblocks.blocks.OrComb32, m2m.backend.buildingblocks.blocks.SqrtCombNr32, m2m.backend.buildingblocks.blocks.SqrtCombNr64, m2m.backend.buildingblocks.blocks.SqrtCombSrt32, m2m.backend.buildingblocks.blocks.SqrtCombSrt64, m2m.backend.buildingblocks.blocks.SqrtPipeNr32, m2m.backend.buildingblocks.blocks.SqrtPipeNr64, m2m.backend.buildingblocks.blocks.SqrtPipeSrt32, m2m.backend.buildingblocks.blocks.SqrtPipeSrt64, m2m.backend.buildingblocks.blocks.Sub2Comb32, m2m.backend.buildingblocks.blocks.Sub2Comb64, m2m.backend.buildingblocks.blocks.Sub2Pipe32, and m2m.backend.buildingblocks.blocks.Sub2Pipe64.

abstract String m2m.backend.buildingblocks.BuildingBlock.description ( ) [pure virtual]

Returns a description of the building block. It can then be exploited to display a list of available components.

Returns:
a description of the block

Implemented in m2m.backend.buildingblocks.blocks.Add2Comb32, m2m.backend.buildingblocks.blocks.Add2Comb64, m2m.backend.buildingblocks.blocks.Add2Pipe32, m2m.backend.buildingblocks.blocks.Add2Pipe64, m2m.backend.buildingblocks.blocks.AndComb32, m2m.backend.buildingblocks.blocks.Div2CombArray32, m2m.backend.buildingblocks.blocks.Div2CombSrt32, m2m.backend.buildingblocks.blocks.Div2CombSrt64, m2m.backend.buildingblocks.blocks.Div2CombSucc32, m2m.backend.buildingblocks.blocks.Div2PipeArray32, m2m.backend.buildingblocks.blocks.Div2PipeSrt32, m2m.backend.buildingblocks.blocks.Div2PipeSrt64, m2m.backend.buildingblocks.blocks.EqualComb32, m2m.backend.buildingblocks.blocks.GreatComb32, m2m.backend.buildingblocks.blocks.GreatEqComb32, m2m.backend.buildingblocks.blocks.LessComb32, m2m.backend.buildingblocks.blocks.LessEqComb32, m2m.backend.buildingblocks.blocks.Mult2CombCsa32, m2m.backend.buildingblocks.blocks.Mult2CombWired32, m2m.backend.buildingblocks.blocks.Mult2CombWired64, m2m.backend.buildingblocks.blocks.Mult2PipeCsa32, m2m.backend.buildingblocks.blocks.Mult2PipeWired32, m2m.backend.buildingblocks.blocks.Mult2PipeWired64, m2m.backend.buildingblocks.blocks.MuxComb32, m2m.backend.buildingblocks.blocks.Neg, m2m.backend.buildingblocks.blocks.OrComb32, m2m.backend.buildingblocks.blocks.SqrtCombNr32, m2m.backend.buildingblocks.blocks.SqrtCombNr64, m2m.backend.buildingblocks.blocks.SqrtCombSrt32, m2m.backend.buildingblocks.blocks.SqrtCombSrt64, m2m.backend.buildingblocks.blocks.SqrtPipeNr32, m2m.backend.buildingblocks.blocks.SqrtPipeNr64, m2m.backend.buildingblocks.blocks.SqrtPipeSrt32, m2m.backend.buildingblocks.blocks.SqrtPipeSrt64, m2m.backend.buildingblocks.blocks.Sub2Comb32, m2m.backend.buildingblocks.blocks.Sub2Comb64, m2m.backend.buildingblocks.blocks.Sub2Pipe32, and m2m.backend.buildingblocks.blocks.Sub2Pipe64.

String m2m.backend.buildingblocks.BuildingBlock.device ( )

Indicates if this block is only valid for a specific target. If not overriden, then the block is generic, and does not rely on a specific hardware (no use of DSP blocks, for instance).

Returns:
the target device name if relevant, null else

Definition at line 240 of file BuildingBlock.java.

abstract String m2m.backend.buildingblocks.BuildingBlock.entityName ( ) [pure virtual]

Returns the name of the VHDL entity describing the block.

Returns:
the name of the VHDL entity

Implemented in m2m.backend.buildingblocks.blocks.Add2Comb32, m2m.backend.buildingblocks.blocks.Add2Comb64, m2m.backend.buildingblocks.blocks.Add2Pipe32, m2m.backend.buildingblocks.blocks.Add2Pipe64, m2m.backend.buildingblocks.blocks.AndComb32, m2m.backend.buildingblocks.blocks.Div2CombArray32, m2m.backend.buildingblocks.blocks.Div2CombSrt32, m2m.backend.buildingblocks.blocks.Div2CombSrt64, m2m.backend.buildingblocks.blocks.Div2CombSucc32, m2m.backend.buildingblocks.blocks.Div2PipeArray32, m2m.backend.buildingblocks.blocks.Div2PipeSrt32, m2m.backend.buildingblocks.blocks.Div2PipeSrt64, m2m.backend.buildingblocks.blocks.EqualComb32, m2m.backend.buildingblocks.blocks.GreatComb32, m2m.backend.buildingblocks.blocks.GreatEqComb32, m2m.backend.buildingblocks.blocks.LessComb32, m2m.backend.buildingblocks.blocks.LessEqComb32, m2m.backend.buildingblocks.blocks.Mult2CombCsa32, m2m.backend.buildingblocks.blocks.Mult2CombWired32, m2m.backend.buildingblocks.blocks.Mult2CombWired64, m2m.backend.buildingblocks.blocks.Mult2PipeCsa32, m2m.backend.buildingblocks.blocks.Mult2PipeWired32, m2m.backend.buildingblocks.blocks.Mult2PipeWired64, m2m.backend.buildingblocks.blocks.MuxComb32, m2m.backend.buildingblocks.blocks.Neg, m2m.backend.buildingblocks.blocks.OrComb32, m2m.backend.buildingblocks.blocks.SqrtCombNr32, m2m.backend.buildingblocks.blocks.SqrtCombNr64, m2m.backend.buildingblocks.blocks.SqrtCombSrt32, m2m.backend.buildingblocks.blocks.SqrtCombSrt64, m2m.backend.buildingblocks.blocks.SqrtPipeNr32, m2m.backend.buildingblocks.blocks.SqrtPipeNr64, m2m.backend.buildingblocks.blocks.SqrtPipeSrt32, m2m.backend.buildingblocks.blocks.SqrtPipeSrt64, m2m.backend.buildingblocks.blocks.Sub2Comb32, m2m.backend.buildingblocks.blocks.Sub2Comb64, m2m.backend.buildingblocks.blocks.Sub2Pipe32, and m2m.backend.buildingblocks.blocks.Sub2Pipe64.

abstract String m2m.backend.buildingblocks.BuildingBlock.functionName ( ) [pure virtual]

Returns the name of the function implemented by the block. All blocks performing the same function should return the same name. It has to be fixed for the operators, and can be user defined for functions.

The basic functions HAVE to respect there names:

  • multiplication: mult
  • division: div
  • addition: add
  • subtraction: sub
  • square root: sqrt
  • exponential: exp

Other functions can be added, such as sin, cos, ... The name returned by functionName() should then be the same as the one used in the mathematical source code.

Returns:
the name of the function calculated by the block

Implemented in m2m.backend.buildingblocks.blocks.Add2Comb32, m2m.backend.buildingblocks.blocks.Add2Comb64, m2m.backend.buildingblocks.blocks.Add2Pipe32, m2m.backend.buildingblocks.blocks.Add2Pipe64, m2m.backend.buildingblocks.blocks.AndComb32, m2m.backend.buildingblocks.blocks.Div2CombArray32, m2m.backend.buildingblocks.blocks.Div2CombSrt32, m2m.backend.buildingblocks.blocks.Div2CombSrt64, m2m.backend.buildingblocks.blocks.Div2CombSucc32, m2m.backend.buildingblocks.blocks.Div2PipeArray32, m2m.backend.buildingblocks.blocks.Div2PipeSrt32, m2m.backend.buildingblocks.blocks.Div2PipeSrt64, m2m.backend.buildingblocks.blocks.EqualComb32, m2m.backend.buildingblocks.blocks.GreatComb32, m2m.backend.buildingblocks.blocks.GreatEqComb32, m2m.backend.buildingblocks.blocks.LessComb32, m2m.backend.buildingblocks.blocks.LessEqComb32, m2m.backend.buildingblocks.blocks.Mult2CombCsa32, m2m.backend.buildingblocks.blocks.Mult2CombWired32, m2m.backend.buildingblocks.blocks.Mult2CombWired64, m2m.backend.buildingblocks.blocks.Mult2PipeCsa32, m2m.backend.buildingblocks.blocks.Mult2PipeWired32, m2m.backend.buildingblocks.blocks.Mult2PipeWired64, m2m.backend.buildingblocks.blocks.MuxComb32, m2m.backend.buildingblocks.blocks.Neg, m2m.backend.buildingblocks.blocks.OrComb32, m2m.backend.buildingblocks.blocks.SqrtCombNr32, m2m.backend.buildingblocks.blocks.SqrtCombNr64, m2m.backend.buildingblocks.blocks.SqrtCombSrt32, m2m.backend.buildingblocks.blocks.SqrtCombSrt64, m2m.backend.buildingblocks.blocks.SqrtPipeNr32, m2m.backend.buildingblocks.blocks.SqrtPipeNr64, m2m.backend.buildingblocks.blocks.SqrtPipeSrt32, m2m.backend.buildingblocks.blocks.SqrtPipeSrt64, m2m.backend.buildingblocks.blocks.Sub2Comb32, m2m.backend.buildingblocks.blocks.Sub2Comb64, m2m.backend.buildingblocks.blocks.Sub2Pipe32, and m2m.backend.buildingblocks.blocks.Sub2Pipe64.

abstract ImplType m2m.backend.buildingblocks.BuildingBlock.implType ( ) [pure virtual]

Returns the implementation type, that can be SEQUENTIAL, PIPELINE, or COMBINATORIAL. It may help the optimizer to choose the most appropriate component for a given application.

Returns:
The implementation type

Implemented in m2m.backend.buildingblocks.blocks.Add2Comb32, m2m.backend.buildingblocks.blocks.Add2Comb64, m2m.backend.buildingblocks.blocks.Add2Pipe32, m2m.backend.buildingblocks.blocks.Add2Pipe64, m2m.backend.buildingblocks.blocks.AndComb32, m2m.backend.buildingblocks.blocks.Div2CombArray32, m2m.backend.buildingblocks.blocks.Div2CombSrt32, m2m.backend.buildingblocks.blocks.Div2CombSrt64, m2m.backend.buildingblocks.blocks.Div2CombSucc32, m2m.backend.buildingblocks.blocks.Div2PipeArray32, m2m.backend.buildingblocks.blocks.Div2PipeSrt32, m2m.backend.buildingblocks.blocks.Div2PipeSrt64, m2m.backend.buildingblocks.blocks.EqualComb32, m2m.backend.buildingblocks.blocks.GreatComb32, m2m.backend.buildingblocks.blocks.GreatEqComb32, m2m.backend.buildingblocks.blocks.LessComb32, m2m.backend.buildingblocks.blocks.LessEqComb32, m2m.backend.buildingblocks.blocks.Mult2CombCsa32, m2m.backend.buildingblocks.blocks.Mult2CombWired32, m2m.backend.buildingblocks.blocks.Mult2CombWired64, m2m.backend.buildingblocks.blocks.Mult2PipeCsa32, m2m.backend.buildingblocks.blocks.Mult2PipeWired32, m2m.backend.buildingblocks.blocks.Mult2PipeWired64, m2m.backend.buildingblocks.blocks.MuxComb32, m2m.backend.buildingblocks.blocks.Neg, m2m.backend.buildingblocks.blocks.OrComb32, m2m.backend.buildingblocks.blocks.SqrtCombNr32, m2m.backend.buildingblocks.blocks.SqrtCombNr64, m2m.backend.buildingblocks.blocks.SqrtCombSrt32, m2m.backend.buildingblocks.blocks.SqrtCombSrt64, m2m.backend.buildingblocks.blocks.SqrtPipeNr32, m2m.backend.buildingblocks.blocks.SqrtPipeNr64, m2m.backend.buildingblocks.blocks.SqrtPipeSrt32, m2m.backend.buildingblocks.blocks.SqrtPipeSrt64, m2m.backend.buildingblocks.blocks.Sub2Comb32, m2m.backend.buildingblocks.blocks.Sub2Comb64, m2m.backend.buildingblocks.blocks.Sub2Pipe32, and m2m.backend.buildingblocks.blocks.Sub2Pipe64.

int m2m.backend.buildingblocks.BuildingBlock.latencyTime ( )

Indicates the latency time of the building block. For a pipeline implementation, it returns the number of pipe stages, while for a sequential implementation it returns the number of clock cycles required for a processing, if this time is known, 0 else. For a combinatorial implementation it returns 1.

Returns:
the latency time

Reimplemented in m2m.backend.buildingblocks.blocks.Add2Comb32, m2m.backend.buildingblocks.blocks.Add2Comb64, m2m.backend.buildingblocks.blocks.Add2Pipe32, m2m.backend.buildingblocks.blocks.Add2Pipe64, m2m.backend.buildingblocks.blocks.AndComb32, m2m.backend.buildingblocks.blocks.Div2CombArray32, m2m.backend.buildingblocks.blocks.Div2CombSrt32, m2m.backend.buildingblocks.blocks.Div2CombSrt64, m2m.backend.buildingblocks.blocks.Div2CombSucc32, m2m.backend.buildingblocks.blocks.Div2PipeArray32, m2m.backend.buildingblocks.blocks.Div2PipeSrt32, m2m.backend.buildingblocks.blocks.Div2PipeSrt64, m2m.backend.buildingblocks.blocks.EqualComb32, m2m.backend.buildingblocks.blocks.GreatComb32, m2m.backend.buildingblocks.blocks.GreatEqComb32, m2m.backend.buildingblocks.blocks.LessComb32, m2m.backend.buildingblocks.blocks.LessEqComb32, m2m.backend.buildingblocks.blocks.Mult2CombCsa32, m2m.backend.buildingblocks.blocks.Mult2CombWired32, m2m.backend.buildingblocks.blocks.Mult2CombWired64, m2m.backend.buildingblocks.blocks.Mult2PipeCsa32, m2m.backend.buildingblocks.blocks.Mult2PipeWired32, m2m.backend.buildingblocks.blocks.Mult2PipeWired64, m2m.backend.buildingblocks.blocks.MuxComb32, m2m.backend.buildingblocks.blocks.Neg, m2m.backend.buildingblocks.blocks.OrComb32, m2m.backend.buildingblocks.blocks.SqrtCombNr32, m2m.backend.buildingblocks.blocks.SqrtCombNr64, m2m.backend.buildingblocks.blocks.SqrtCombSrt32, m2m.backend.buildingblocks.blocks.SqrtCombSrt64, m2m.backend.buildingblocks.blocks.SqrtPipeNr32, m2m.backend.buildingblocks.blocks.SqrtPipeNr64, m2m.backend.buildingblocks.blocks.SqrtPipeSrt32, m2m.backend.buildingblocks.blocks.SqrtPipeSrt64, m2m.backend.buildingblocks.blocks.Sub2Comb32, m2m.backend.buildingblocks.blocks.Sub2Comb64, m2m.backend.buildingblocks.blocks.Sub2Pipe32, and m2m.backend.buildingblocks.blocks.Sub2Pipe64.

Definition at line 144 of file BuildingBlock.java.

int m2m.backend.buildingblocks.BuildingBlock.nbInputs ( )
int m2m.backend.buildingblocks.BuildingBlock.nbOutputs ( )

Returns the number of outputs for the block. By default it returns 1, as the main building blocks deal with 2 inputs and 1 output.

Returns:
the number of outputs

Definition at line 230 of file BuildingBlock.java.

abstract NumType m2m.backend.buildingblocks.BuildingBlock.numType ( ) [pure virtual]

Returns the number representation, that can be FLOAT, DOUBLE, FIXED, INT, UINT, or INTUINT. It will allow to extend the tool for other number representations.

Returns:
the number representation

Implemented in m2m.backend.buildingblocks.BuildingBlockFixed, m2m.backend.buildingblocks.BuildingBlockFloat, m2m.backend.buildingblocks.BuildingBlockFloat32, m2m.backend.buildingblocks.BuildingBlockFloat64, m2m.backend.buildingblocks.BuildingBlockInt, m2m.backend.buildingblocks.BuildingBlockIntUInt, and m2m.backend.buildingblocks.BuildingBlockUInt.

abstract int m2m.backend.buildingblocks.BuildingBlock.period ( ) [pure virtual]

Indicates the minimum period at which the block is functional. This value is relative to the other building blocks.

Returns:
an evaluation of the minumum period required

Implemented in m2m.backend.buildingblocks.blocks.Add2Comb32, m2m.backend.buildingblocks.blocks.Add2Comb64, m2m.backend.buildingblocks.blocks.Add2Pipe32, m2m.backend.buildingblocks.blocks.Add2Pipe64, m2m.backend.buildingblocks.blocks.AndComb32, m2m.backend.buildingblocks.blocks.Div2CombArray32, m2m.backend.buildingblocks.blocks.Div2CombSrt32, m2m.backend.buildingblocks.blocks.Div2CombSrt64, m2m.backend.buildingblocks.blocks.Div2CombSucc32, m2m.backend.buildingblocks.blocks.Div2PipeArray32, m2m.backend.buildingblocks.blocks.Div2PipeSrt32, m2m.backend.buildingblocks.blocks.Div2PipeSrt64, m2m.backend.buildingblocks.blocks.EqualComb32, m2m.backend.buildingblocks.blocks.GreatComb32, m2m.backend.buildingblocks.blocks.GreatEqComb32, m2m.backend.buildingblocks.blocks.LessComb32, m2m.backend.buildingblocks.blocks.LessEqComb32, m2m.backend.buildingblocks.blocks.Mult2CombCsa32, m2m.backend.buildingblocks.blocks.Mult2CombWired32, m2m.backend.buildingblocks.blocks.Mult2CombWired64, m2m.backend.buildingblocks.blocks.Mult2PipeCsa32, m2m.backend.buildingblocks.blocks.Mult2PipeWired32, m2m.backend.buildingblocks.blocks.Mult2PipeWired64, m2m.backend.buildingblocks.blocks.MuxComb32, m2m.backend.buildingblocks.blocks.Neg, m2m.backend.buildingblocks.blocks.OrComb32, m2m.backend.buildingblocks.blocks.SqrtCombNr32, m2m.backend.buildingblocks.blocks.SqrtCombNr64, m2m.backend.buildingblocks.blocks.SqrtCombSrt32, m2m.backend.buildingblocks.blocks.SqrtCombSrt64, m2m.backend.buildingblocks.blocks.SqrtPipeNr32, m2m.backend.buildingblocks.blocks.SqrtPipeNr64, m2m.backend.buildingblocks.blocks.SqrtPipeSrt32, m2m.backend.buildingblocks.blocks.SqrtPipeSrt64, m2m.backend.buildingblocks.blocks.Sub2Comb32, m2m.backend.buildingblocks.blocks.Sub2Comb64, m2m.backend.buildingblocks.blocks.Sub2Pipe32, and m2m.backend.buildingblocks.blocks.Sub2Pipe64.

abstract int m2m.backend.buildingblocks.BuildingBlock.resources ( ) [pure virtual]

Indicates a hardware resources evaluation of the block. This value is relative to the other building blocks.

Returns:
an evaluation of the hardware resources required

Implemented in m2m.backend.buildingblocks.blocks.Add2Comb32, m2m.backend.buildingblocks.blocks.Add2Comb64, m2m.backend.buildingblocks.blocks.Add2Pipe32, m2m.backend.buildingblocks.blocks.Add2Pipe64, m2m.backend.buildingblocks.blocks.AndComb32, m2m.backend.buildingblocks.blocks.Div2CombArray32, m2m.backend.buildingblocks.blocks.Div2CombSrt32, m2m.backend.buildingblocks.blocks.Div2CombSrt64, m2m.backend.buildingblocks.blocks.Div2CombSucc32, m2m.backend.buildingblocks.blocks.Div2PipeArray32, m2m.backend.buildingblocks.blocks.Div2PipeSrt32, m2m.backend.buildingblocks.blocks.Div2PipeSrt64, m2m.backend.buildingblocks.blocks.EqualComb32, m2m.backend.buildingblocks.blocks.GreatComb32, m2m.backend.buildingblocks.blocks.GreatEqComb32, m2m.backend.buildingblocks.blocks.LessComb32, m2m.backend.buildingblocks.blocks.LessEqComb32, m2m.backend.buildingblocks.blocks.Mult2CombCsa32, m2m.backend.buildingblocks.blocks.Mult2CombWired32, m2m.backend.buildingblocks.blocks.Mult2CombWired64, m2m.backend.buildingblocks.blocks.Mult2PipeCsa32, m2m.backend.buildingblocks.blocks.Mult2PipeWired32, m2m.backend.buildingblocks.blocks.Mult2PipeWired64, m2m.backend.buildingblocks.blocks.MuxComb32, m2m.backend.buildingblocks.blocks.Neg, m2m.backend.buildingblocks.blocks.OrComb32, m2m.backend.buildingblocks.blocks.SqrtCombNr32, m2m.backend.buildingblocks.blocks.SqrtCombNr64, m2m.backend.buildingblocks.blocks.SqrtCombSrt32, m2m.backend.buildingblocks.blocks.SqrtCombSrt64, m2m.backend.buildingblocks.blocks.SqrtPipeNr32, m2m.backend.buildingblocks.blocks.SqrtPipeNr64, m2m.backend.buildingblocks.blocks.SqrtPipeSrt32, m2m.backend.buildingblocks.blocks.SqrtPipeSrt64, m2m.backend.buildingblocks.blocks.Sub2Comb32, m2m.backend.buildingblocks.blocks.Sub2Comb64, m2m.backend.buildingblocks.blocks.Sub2Pipe32, and m2m.backend.buildingblocks.blocks.Sub2Pipe64.

boolean m2m.backend.buildingblocks.BuildingBlock.useGenericSize ( )

Indicates if the operands have a generic size or not. If yes, the methods of subclasses allow to fix the size of the operands. By default the size is not generic, so this function does not necesseraly needs to be overriden.

Returns:
true if the size is generic, false else

Reimplemented in m2m.backend.buildingblocks.BuildingBlockFixed, m2m.backend.buildingblocks.BuildingBlockFloat, and m2m.backend.buildingblocks.BuildingBlockIntUInt.

Definition at line 105 of file BuildingBlock.java.

abstract int m2m.backend.buildingblocks.BuildingBlock.version ( ) [pure virtual]

Returns the version number of the building block.

Returns:
the version number, as an integer

Implemented in m2m.backend.buildingblocks.blocks.Add2Comb32, m2m.backend.buildingblocks.blocks.Add2Comb64, m2m.backend.buildingblocks.blocks.Add2Pipe32, m2m.backend.buildingblocks.blocks.Add2Pipe64, m2m.backend.buildingblocks.blocks.AndComb32, m2m.backend.buildingblocks.blocks.Div2CombArray32, m2m.backend.buildingblocks.blocks.Div2CombSrt32, m2m.backend.buildingblocks.blocks.Div2CombSrt64, m2m.backend.buildingblocks.blocks.Div2CombSucc32, m2m.backend.buildingblocks.blocks.Div2PipeArray32, m2m.backend.buildingblocks.blocks.Div2PipeSrt32, m2m.backend.buildingblocks.blocks.Div2PipeSrt64, m2m.backend.buildingblocks.blocks.EqualComb32, m2m.backend.buildingblocks.blocks.GreatComb32, m2m.backend.buildingblocks.blocks.GreatEqComb32, m2m.backend.buildingblocks.blocks.LessComb32, m2m.backend.buildingblocks.blocks.LessEqComb32, m2m.backend.buildingblocks.blocks.Mult2CombCsa32, m2m.backend.buildingblocks.blocks.Mult2CombWired32, m2m.backend.buildingblocks.blocks.Mult2CombWired64, m2m.backend.buildingblocks.blocks.Mult2PipeCsa32, m2m.backend.buildingblocks.blocks.Mult2PipeWired32, m2m.backend.buildingblocks.blocks.Mult2PipeWired64, m2m.backend.buildingblocks.blocks.MuxComb32, m2m.backend.buildingblocks.blocks.Neg, m2m.backend.buildingblocks.blocks.OrComb32, m2m.backend.buildingblocks.blocks.SqrtCombNr32, m2m.backend.buildingblocks.blocks.SqrtCombNr64, m2m.backend.buildingblocks.blocks.SqrtCombSrt32, m2m.backend.buildingblocks.blocks.SqrtCombSrt64, m2m.backend.buildingblocks.blocks.SqrtPipeNr32, m2m.backend.buildingblocks.blocks.SqrtPipeNr64, m2m.backend.buildingblocks.blocks.SqrtPipeSrt32, m2m.backend.buildingblocks.blocks.SqrtPipeSrt64, m2m.backend.buildingblocks.blocks.Sub2Comb32, m2m.backend.buildingblocks.blocks.Sub2Comb64, m2m.backend.buildingblocks.blocks.Sub2Pipe32, and m2m.backend.buildingblocks.blocks.Sub2Pipe64.

abstract String m2m.backend.buildingblocks.BuildingBlock.vhdlFileName ( ) [pure virtual]

Returns the name of the VHDL file in which the block is described.

Returns:
the name of the VHDL file

Implemented in m2m.backend.buildingblocks.blocks.Add2Comb32, m2m.backend.buildingblocks.blocks.Add2Comb64, m2m.backend.buildingblocks.blocks.Add2Pipe32, m2m.backend.buildingblocks.blocks.Add2Pipe64, m2m.backend.buildingblocks.blocks.AndComb32, m2m.backend.buildingblocks.blocks.Div2CombArray32, m2m.backend.buildingblocks.blocks.Div2CombSrt32, m2m.backend.buildingblocks.blocks.Div2CombSrt64, m2m.backend.buildingblocks.blocks.Div2CombSucc32, m2m.backend.buildingblocks.blocks.Div2PipeArray32, m2m.backend.buildingblocks.blocks.Div2PipeSrt32, m2m.backend.buildingblocks.blocks.Div2PipeSrt64, m2m.backend.buildingblocks.blocks.EqualComb32, m2m.backend.buildingblocks.blocks.GreatComb32, m2m.backend.buildingblocks.blocks.GreatEqComb32, m2m.backend.buildingblocks.blocks.LessComb32, m2m.backend.buildingblocks.blocks.LessEqComb32, m2m.backend.buildingblocks.blocks.Mult2CombCsa32, m2m.backend.buildingblocks.blocks.Mult2CombWired32, m2m.backend.buildingblocks.blocks.Mult2CombWired64, m2m.backend.buildingblocks.blocks.Mult2PipeCsa32, m2m.backend.buildingblocks.blocks.Mult2PipeWired32, m2m.backend.buildingblocks.blocks.Mult2PipeWired64, m2m.backend.buildingblocks.blocks.MuxComb32, m2m.backend.buildingblocks.blocks.Neg, m2m.backend.buildingblocks.blocks.OrComb32, m2m.backend.buildingblocks.blocks.SqrtCombNr32, m2m.backend.buildingblocks.blocks.SqrtCombNr64, m2m.backend.buildingblocks.blocks.SqrtCombSrt32, m2m.backend.buildingblocks.blocks.SqrtCombSrt64, m2m.backend.buildingblocks.blocks.SqrtPipeNr32, m2m.backend.buildingblocks.blocks.SqrtPipeNr64, m2m.backend.buildingblocks.blocks.SqrtPipeSrt32, m2m.backend.buildingblocks.blocks.SqrtPipeSrt64, m2m.backend.buildingblocks.blocks.Sub2Comb32, m2m.backend.buildingblocks.blocks.Sub2Comb64, m2m.backend.buildingblocks.blocks.Sub2Pipe32, and m2m.backend.buildingblocks.blocks.Sub2Pipe64.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations