Hi!

I followed the instructions to build the firmware and gateware. After entering the development shell using nix develop as described, I entered python -m artiq.gateware.targets.kasli to build the bitstream, however the build failed with a NotImplementedError:

user@xx:~/artiq_dev/artiq$ git status
On branch release-7
Your branch is up-to-date with 'origin/release-7'.

nothing to commit, working tree clean
user@xx:~/artiq_dev/artiq$ nix develop
I have no name!@xx:~/artiq_dev/artiq$ python -m artiq.gateware.targets.kasli
DIO (EEM5) starting at RTIO channel 0x000000
Urukul (EEM0) starting at RTIO channel 0x00000c
Traceback (most recent call last):
  File "/nix/store/x9na3pxf7134pq7dkn1kgy9df6lf1z4v-python3-3.9.13/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/nix/store/x9na3pxf7134pq7dkn1kgy9df6lf1z4v-python3-3.9.13/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/user@xx/artiq_dev/artiq/artiq/gateware/targets/kasli.py", line 685, in <module>
    main()
  File "/home/user@xx/artiq_dev/artiq/artiq/gateware/targets/kasli.py", line 680, in main
    soc = cls(**soc_kasli_argdict(args), **argdict)
  File "/home/user@xx/artiq_dev/artiq/artiq/gateware/targets/kasli.py", line 188, in __init__
    eem.Urukul.add_std(self, 0, 1, ttl_serdes_7series.Output_8X,
  File "/home/user@xx/artiq_dev/artiq/artiq/gateware/eem.py", line 244, in add_std
    dds_monitor = dds.UrukulMonitor(spi_phy, io_upd_phy, dds_type)
  File "/home/user@xx/artiq_dev/artiq/artiq/gateware/rtio/phy/dds.py", line 99, in __init__
    raise NotImplementedError
NotImplementedError

I added additional output to line 99 of artiq/artiq/gateware/rtio/phy/dds.py for my understanding:

raise NotImplementedError(f"DDS {dds} not supported")

Which gave me

NotImplementedError: DDS <class 'artiq.gateware.rtio.phy.ttl_simple.ClockGen'> not supported

The value dds is compared to strings though, this does not seem right to me.

Any hints how to resolve this build issue much appreciated!

Thanks!

This is a bug in release-7. It was fixed by #1960.

For practical purposes in labs, artiq.gateware.targets.kasli_generic + a JSON description of your hardware is more useful though.

  • nx- likes this.

Good to know the bug is already fixed! I am using the JSON description now, just wanted to test a clean build of release-7 to make sure nix is set up alright. Thanks!