Go/no-go bring-up test for Opal Kelly XEM7310-A75 boards (Artix-7 XC7A75T). It checks that a board enumerates over USB, accepts a bitstream, and passes data in both directions through FrontPanel, and it walks the eight user LEDs so an operator can confirm each one. I used this design as the data-path check when testing the lab's XEM7310 boards for Harvard's CS 1410.
| File | What it does |
|---|---|
fp_wire_test.v |
okHost with three endpoints: WireIn 0x00 drives the LEDs (active low), WireOut 0x20 is a free-running 32-bit counter on okClk, WireOut 0x21 echoes WireIn 0x00 |
fp_wire_test.xdc |
FrontPanel host-interface pins and the eight LEDs |
fp_wire_test.py |
Host check: configure, read the counter twice, walk ten patterns through the loopback, print PASS or FAIL |
auto_attach_ok.ps1 |
Windows helper that watches usbipd for Opal Kelly devices (USB ID 151f:0130) and attaches each new board to WSL2 |
- Opens the first XEM7310 it finds and prints its serial number.
- Loads the bitstream and confirms FrontPanel is enabled.
- Reads WireOut 0x20 twice, 50 ms apart; the counter must change (the design is clocked and FPGA-to-PC reads work).
- Writes ten values to WireIn 0x00 (all on, all off, then a single bit walking from 0 to 7) and checks each one comes back on WireOut 0x21 (PC-to-FPGA writes work); the LEDs show each pattern for 0.4 s.
- Prints
RESULT: PASSand exits 0, orRESULT: FAILand exits 1.
It does not test the on-board DDR3, the MC1/MC2 expansion I/O, the GTP transceivers, FrontPanel pipes or triggers, or operation under thermal load.
The Opal Kelly FrontPanel HDL library (okHost, okWireIn, okWireOut, okWireOR) and the FrontPanel SDK
are not included; get them from your FrontPanel installation.
-
In Vivado, create a project for
xc7a75tfgg484-1withfp_wire_test.v,fp_wire_test.xdcand the FrontPanel HDL sources, then generate the bitstream. -
Install the FrontPanel SDK so its Python
okmodule is importable. -
With a board connected:
python3 fp_wire_test.py fp_wire_test.bit
To test boards from WSL2, run auto_attach_ok.ps1 in an administrator PowerShell
(powershell -ExecutionPolicy Bypass -File .\auto_attach_ok.ps1). It binds and attaches each board as it is
plugged in; set $RunTest = $true in the script to run the Python check automatically on each one.