Sci-Compiler is a tool designed to speed-up the development of small-medium and large scientific experiments. Usually more than one channel is used and the functionalities of different channels are identically.

Sub design help to avoid unuseful copy and past. It is possible to implement a single channel processing logic in a sub sheet and than replicate the component several time in the top design.

This is not the best practice to implement a multichannel design.

In Sci-Compiler exists a specific sub design entry for multichannel design.

Consider the following application. We want to change the polarity of input signal using a common register.

First of all we implement the configurable polarity inversion block for a single channel in a sub-design

Image

And we place in the sub design sheet the correct block: subtraction respect 0x3fff to implement the inversion and a mux to select if use the positive (1) or negative (0) polarity

Image

As you can see in the diagram above we also create schematic entries (Input / Output port)

S_IN: signal input is the 16 bit signal input port. In a multichannel design this port must be replicated, one per channel

S_OUT: signal output is the 16 bit signal output port. In a multichannel design this port must be replicated, one per channel.

SEL_POL: is a 1 bit input to select between positive (1) and negative/inverted (0) polarity. This port should be common for all channel.

In order to create port, right click on the diagram and select MISC –> Schematic Port

Image

When we place an input port the tool ask as if we want to create a port for each channel or a common port for all channel. This option is available only for input port. Output port will be always one for each channel in order to avoid bus contentions.

To create the port as one port for each channel select ARRAY in multichannel behavior.

For S_IN PORT we will select multichannel behavior to ARRAY

Image

The symbol created will have the multi square icon in order to indicate that this port will be replicated in a multichannel design

Image

For SEL_POL we will create the port as COMMON in order to provide the same value to all sub-design channels.

Image

Remember to compile the page before use it in a top design

Image

In the top design we create a multichannel sub design. Right Click –> sub-design –> Multi channels sub design

Image

Sci-Compiler prompt to select a sub-design and chose the number of time to replicate it

Image

The multichannel block is created in the top file.

Image

Each channel has an input and an output and all shares the SEL_POS input.

Image