Kasli fails to boot when Phaser is assigned to last available EEM port in JSON #1505

Closed
opened 2026-01-18 19:03:53 +08:00 by bradbqc · 2 comments

Migrated from GitHub: #1972


Bug Report

One-Line Summary

Kasli fails to boot when Phaser is assigned to last available EEM port in JSON.

Issue Details

Disclaimer: I'm not 100% clear on how the EEM ports work with phaser - it has 2 connectors but only one is designated in the JSON. Does it silently use the next one as well?

Regardless, on a Kasli with the extension board connected, there are 12 EEM connectors. If the phaser is assigned to port 11, the gateware build succeeds and can be flashed, but after doing so the Kasli fails to boot. No UART output at all and can't e.g. ping.

Steps to Reproduce

  1. Build gateware with phaser assigned to port 11. Example JSON file (actually, the exact file used for this build):
{
    "target": "kasli",
    "min_artiq_version": "6.0",
    "variant": "tester_11",
    "hw_rev": "v1.1",
    "base": "standalone",
    "rtio_frequency": 125e6,
    "peripherals": [
        {
            "type": "dio",
            "ports": [0],
            "bank_direction_low": "input",
            "bank_direction_high": "output",
            "edge_counter": true
        },
        {
            "type": "dio",
            "ports": [1],
            "bank_direction_low": "output",
            "bank_direction_high": "output"
        },
        {
            "type": "urukul",
            "dds": "ad9910",
            "ports": [2, 3],
            "synchronization": false,
            "clk_sel": 2
        },
        {
            "type": "dio_spi",
            "ports": [4],
            "spi": [
                {
                    "name": "tester_spi",
                    "miso": 0,
                    "clk": 1,
                    "mosi": 2,
                    "cs": [3]
                }
            ],
            "ttl": [
                {
                    "pin": 4,
                    "direction": "output"
                },
                {
                    "pin": 5,
                    "direction": "output"
                },
                {
                    "pin": 6,
                    "direction": "output"
                },
                {
                    "pin": 7,
                    "direction": "output"
                }
            ]
        },
        {
            "type": "mirny",
            "ports": [7]
        },
        {
            "type": "zotino",
            "ports": [8]
        },
        {
            "type": "sampler",
            "ports": [9]
        },
        {
            "type": "phaser",
            "ports": [11]
        }
    ]
}
  1. Flash gateware
  2. Observe
  3. Changing the port from 11 back to 10 and reflashing fixes the problem.

Expected Behavior

If the phaser is actually silently using the second EEM port, that should be in the JSON schema (i.e. not silent). If it's not using the second EEM port, then the build should work. Right?

Actual (undesired) Behavior

Fails to boot.

Your System (omit irrelevant parts)

  • Operating System: Ubuntu 22.04
  • ARTIQ version: v6.7670.1b3fa342
  • Version of the gateware and runtime loaded in the core device: 6.7670.1b3fa342;tester_11
  • Hardware involved: Kasli v1.1
  • Vivado version: 2019.2
> **Migrated from GitHub:** [#1972](https://github.com/m-labs/artiq/issues/1972) --- <!-- Above are non-Markdown tags for Github auto-prompting issue type. Template based on pylint: https://raw.githubusercontent.com/PyCQA/pylint/master/.github/ISSUE_TEMPLATE/ --> # Bug Report <!-- Thanks for reporting a bug report to ARTIQ! You can also discuss issues and ask questions on IRC (the [#m-labs channel on freenode](https://webchat.freenode.net/?channels=m-labs) or on the [forum](https://forum.m-labs.hk). Please check Github/those forums to avoid posting a repeat issue. Context helps us fix issues faster, so please include the following when relevant: --> ## One-Line Summary Kasli fails to boot when Phaser is assigned to last available EEM port in JSON. ## Issue Details Disclaimer: I'm not 100% clear on how the EEM ports work with phaser - it has 2 connectors but only one is designated in the JSON. Does it silently use the next one as well? Regardless, on a Kasli with the extension board connected, there are 12 EEM connectors. If the phaser is assigned to port 11, the gateware build succeeds and can be flashed, but after doing so the Kasli fails to boot. No UART output at all and can't e.g. ping. ### Steps to Reproduce 1. Build gateware with phaser assigned to port 11. Example JSON file (actually, the exact file used for this build): ```json { "target": "kasli", "min_artiq_version": "6.0", "variant": "tester_11", "hw_rev": "v1.1", "base": "standalone", "rtio_frequency": 125e6, "peripherals": [ { "type": "dio", "ports": [0], "bank_direction_low": "input", "bank_direction_high": "output", "edge_counter": true }, { "type": "dio", "ports": [1], "bank_direction_low": "output", "bank_direction_high": "output" }, { "type": "urukul", "dds": "ad9910", "ports": [2, 3], "synchronization": false, "clk_sel": 2 }, { "type": "dio_spi", "ports": [4], "spi": [ { "name": "tester_spi", "miso": 0, "clk": 1, "mosi": 2, "cs": [3] } ], "ttl": [ { "pin": 4, "direction": "output" }, { "pin": 5, "direction": "output" }, { "pin": 6, "direction": "output" }, { "pin": 7, "direction": "output" } ] }, { "type": "mirny", "ports": [7] }, { "type": "zotino", "ports": [8] }, { "type": "sampler", "ports": [9] }, { "type": "phaser", "ports": [11] } ] } ``` 2. Flash gateware 3. Observe 4. Changing the port from 11 back to 10 and reflashing fixes the problem. ### Expected Behavior If the phaser is actually silently using the second EEM port, that should be in the JSON schema (i.e. not silent). If it's not using the second EEM port, then the build should work. Right? ### Actual (undesired) Behavior Fails to boot. ### Your System (omit irrelevant parts) * Operating System: Ubuntu 22.04 * ARTIQ version: v6.7670.1b3fa342 * Version of the gateware and runtime loaded in the core device: 6.7670.1b3fa342;tester_11 * Hardware involved: Kasli v1.1 * Vivado version: 2019.2 <!-- For in-depth information on bug reporting, see: http://www.chiark.greenend.org.uk/~sgtatham/bugs.html https://developer.mozilla.org/en-US/docs/Mozilla/QA/Bug_writing_guidelines -->
sb10q closed this issue 2026-01-18 19:03:53 +08:00
Member

Phaser does not currently use any other EEM ports silently.

Which version of ARTIQ are you building for your crate? I just built the gateware on newest ARTIQ 8 beta branch, and with the exact JSON file you had it built nicely. Flashed it onto a Kasli 1.1 (no cards connected though!) and it booted too.

Does the gateware meet timing? Look for All user specified timing constraints are met. in Vivado logs.

Phaser does not currently use any other EEM ports silently. Which version of ARTIQ are you building for your crate? I just built the gateware on newest ARTIQ 8 beta branch, and with the exact JSON file you had it built nicely. Flashed it onto a Kasli 1.1 (no cards connected though!) and it booted too. Does the gateware meet timing? Look for ``All user specified timing constraints are met.`` in Vivado logs.
Owner
  • Vivado version: 2019.2

Please use the supported version. Older ones are known to have bugs that manifest themselves with this symptom.

> * Vivado version: 2019.2 Please use the supported version. Older ones are known to have bugs that manifest themselves with this symptom.
Sign in to join this conversation.