Generate
Configure a serial protocol and a transaction sequence; get cyclized IG-XL digital patterns and a live waveform. No hand-written vectors, and no gap between what the preview shows and what the pattern file contains — they are the same data structure.
Writing serial patterns by hand means transcribing a protocol's clocking rules into per-cycle pin states — mechanical work with mechanical failure modes. The Pattern Generator does the transcription from a declared protocol configuration, and labels every cycle with what it means.
SPI covers all four CPOL/CPHA modes, MSB or LSB bit order, chip-select framing, MISO compare and masking, and a configurable frame — an ordered phase list of command, address, dummy and data phases, which is how real devices document their transactions. I2C covers START/STOP framing, 7- and 10-bit addressing, slave-ACK compare and the master NACK. Transactions support ranges and repeats; values enter as hex, decimal or binary.
The engine is three pure layers. The middle one produces a single
Vector[] — per-cycle pin states, time set, semantic label,
transaction boundaries — and that array is both the pattern and the
waveform. The preview cannot drift from the output because there is nothing to
drift between.
Configuration errors are caught before a vector is emitted, in one shared finding format.
| Validator | What it catches |
|---|---|
| Bit width | A value that does not fit its declared field — a 9-bit value in an 8-bit data phase. |
| Pin-map completeness | A protocol signal with no DUT pin assigned. |
| Pin conflict | Two signals mapped to the same pin. |
| Read compare | A read transaction with no expected data to compare against. |
| Range | Addresses or values outside the field's representable range. |
| Clock rate | A requested rate the cyclization cannot honour. |
Selecting a project loads its saved bus profile — protocol, frame phases, pin mapping, time set — plus its register map and the pattern files its generated test program already contains. Standalone mode needs only a protocol choice and a pasted pin list.
With a register map loaded, transactions are entered by register and field name rather than raw addresses, and whole test suites — reset-value reads, write/read-back — can be generated from the map in one click.
The live preview regenerates from the current configuration. Every cycle carries its semantic label — which phase, which bit — so a wrong CPOL setting is visible as a wrong waveform, not discovered at the tester.
One generation produces all four formats: IG-XL ASCII for the tester, VCD for a waveform viewer, STIL and WGL for interchange. All are formatted from the same vectors.
Selecting the TMP126 project preloads the whole bench: the 3-wire SPI protocol with its bidirectional SIO pin, the pin mapping, the frame phases, the device's register map and the transaction sequence — and the hero pattern from the generated test program opens in the viewer automatically.
The 24 SPI patterns in the TMP126 program were not drawn in this workspace — they were derived from the test requirements by the program generator, using this same engine. The workspace lists them per project, so the pattern an engineer inspects here is byte-for-byte the pattern the program runs.
IGXL_PATTERN_COMPILER); when none is present it reports
blocked rather than pretending the pattern compiled.