Special Logic

Top  Previous  Next

Some editions of Diamond include special logic blocks that can provide useful functions that do not fit directly into the standard model and are not normally included in bitstreams that are generated for your application.

For example, many DSP modules from Sundance have a device known as the Global Bus.

 

You can create a new processor type that instructs Diamond to include support for specific blocks as in the following example:

 

PROCTYPE my_FPGA  existing_FPGA  {

  DEVICE RegisterBlock  SCLSID=0x00020101  PROCESSOR=1,3

  DEVICE GlobalBus       SCLSID=0x00020102  PROCESSOR=0

}

 

This creates a new processor type 'my_FPGA' that is identical to the processor type 'existing_FPGA' but processors of the new type include the logic identified by the SCLSID number, a number known to Diamond.

 

The PROCESSOR attribute is a list of one or more processor numbers that identify which processors are to be associated with an instance of the logic block. Processor 0 is the FPGA itself while the other processor numbers refer to attached processors. In the example above, there would be two instances of 'RegisterBlock' and these would appear in the address spaces of the first and third processors to be attached to this FPGA. There will also be one instance of 'LEDBlock' that is not mapped into the address space of any attached processor but can be accessed only by the FPGA.

 

The list of available special logic blocks along with their properties and identifying SCLSID numbers is available here.