What is a Profile file?

A DUT board Profile is a simple JSON file that specifies how your DUT board connects to the Gemini Stimdeck. Designing a DUT board PCB generates a netlist describing the connections between all the components on the board and the net names connecting them all. Two of those components will be the two Molex expansion port connectors, which allow the DUT board to mate to the Gemini Tester board. What we really care about is how the Gemini DUT I/O test bus pins, from the Molex connectors, map to physical DUT pins on your DUT board.

Before creating a DUT board profile, you must have created a PCB netlist beforehand. Please look at the 'Designing a DUT Board' section of the documentation.

The Profile object
ATTRIBUTES
board_name string
The name of your DUT board.

description string
A simple description of your DUT board.

revision number
The hardware revision of the DUT board.

num_duts number

The number of DUTs on your DUT board.

Note: The DUTs are indexed from 1 to num_duts.


pins list

A list of pin objects that map from the DUT I/O test bus net_name to your DUT pin names.

The Pin object
ATTRIBUTES
net_name string
The Gemini DUT I/O test bus net name.

net_alias string
A custom net alias that you can use to refer to this Pin object in your Dots.

dest_duts list

A list of dest_dut objects. A pin on the Gemini DUT I/O test bus can fanout in a one-to-many fashion to multiple DUTs. This object represents the destination pin on your DUT.

Note: The number of dest_duts must not exceed the num_duts property.

Important Note: If your vector is going to expect on the DUT I/O test bus pin, then you can't have multiple drivers from the DUTs to the DUT I/O test bus pin, because it will cause contention.

The Dest Dut object
ATTRIBUTES
dut_id number

A dut id number. Each id must be a number from 1 to num_duts.

Note: Each DUT is indexed from 1 to num_duts. How you assign the dut id to an actual physical DUT on your board is up to you. Just be consistent.


dut_pin_names string

The DUTs pin name based on your board's netlist.

{
  "board_name": "gdut",
  "description": "Gemini DUT Test Board",
  "revision": "1",
  "num_duts": 1,
  "pins": [
      {
          "net_name": "ARTIX1_DUT_IO_46",
          "net_alias": "RESET_B",
          "dest_duts": [
            {
                "dut_id": 1,
                "dut_pin_name": "A13"
            },
            ...
          ]
      },
      {
           ...
      },
      ...
   ]
}