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 number of DUTs on your DUT board.
Note: The DUTs are indexed from 1 to num_duts.
A list of pin objects that map from the DUT I/O test bus net_name to your DUT pin names.
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.
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.
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"
},
...
]
},
{
...
},
...
]
}