Menu

Adding a new chip

Luca Longinotti

Adding your own AEChip.

To add a new AEChip class, subclass ch.unizh.ch.ini.caviar.chip.AEChip, set the chip size, etc.

You may want to define a custom EventExtractor if your events cannot be simply obtained by masking and shifting the raw addresses.

There is no need to add your new AEChip to any static arrays. You can add the new chip from the AEChip/Customize... menu in AEViewer.

An example chip

This simple example is Conv32

public class Conv32 extends AEChip  {

    /** Creates a new instance of Tmpdiff128 */
    public Conv32() {
        setSizeX(32);
        setSizeY(32);
        setNumCellTypes(2); // there are two types (positive and negative) of events from each x,y
        setEventClass(TypedEvent.class); // the chip puts out these kinds of events
        setEventExtractor(new Extractor(this)); // we use the default extractor here
        setBiasgen(null); // don't have one on this chip
    }

    public class Extractor extends TypedEventExtractor implements java.io.Serializable{
        public Extractor(AEChip chip){
            super(chip);
            setEventClass(TypedEvent.class);
             setXmask((short)0x001f); // mask this part for x
            setXshift((byte)0); // don't shift x
            setYmask((short)0x1f00);
            setYshift((byte)8);
            setTypemask((short)1);
            setTypeshift((byte)0);
            setFlipx(true);
        }
     }

}

The most evolved example is DVS128. This chip has a bias generator and a highly optimized event extractor. It also has a custom panel for controlling the bias generator functionally instead of at the bias current level.

CochleaChip, the superclass of Cochlea chips, is an example of an AEChip that has custom DisplayMethod's.


Related

Wiki: Home