Giter Club home page Giter Club logo

urukul's Issues

make the divider configurable

  • useful for low frequency (e.g. 10 MHz, 100 MHz) reference with AD9910 where divide-by-four is not needed and detrimental
  • also needed for bypassing the PLL at 1 GHz direct
  • check loop filter/Icp usability at low frequencies

Roadmap

  • add CFG bits for 1/2/4 division
  • document old hardware behavior, new behavior
  • expose in urukul coredevice driver
  • test 1 GHz divide-by-1 PLL bypass

Not in scope:

  • test 10 MHz divide-by-1 100x PLL (assuming loop filter/Icp usability)
  • test 100 MHz divide-by-2 20x PLL (assuming loop filter/Icp usability)

Redesign

Now that the hardware changes have landed in recent Urukul hw_revs, we can consider redesigning the CPLD gateware and the ARTIQ coredevice layer to expose more features and expose the existing ones in a better way.

Precursor changes:

  • c.f. sinara-hw/Urukul#30 for the hardware changes
  • #6 for IO_UPDATE decoupling that is not being used/exposed in the ARTIQ coredevice driver yet

Potential tasks

  • Mirny-style SPI address-CS demux
  • decouple channels
  • implement independent profile/osk/attenuator
  • DRG
  • better RAM usage pattern

per-channel IO_UPDATE

Would simplify absolute phase modes and DRG/RAM usage where IO_UPDATE is has synchronizing side-effects.
Implemented transparently and backwards compatible by blocking IO_UPDATE to channels that are not selected (if one channel is selected) and carefully placing the IO_UPDATE pulse within the CS pulse at the end of the SPI xfer.

SPI readback tests don't pass

~/Build/Source/urukul ((v1.3.1) $%)$ python urukul_sim.py
Traceback (most recent call last):
  File "urukul_sim.py", line 130, in <module>
    main()
  File "urukul_sim.py", line 126, in main
    special_overrides={Tristate: SimTristate, Instance: SimInstance})
  File "/Users/dpn/Build/Source/migen/migen/sim/core.py", line 414, in run_simulation
    s.run()
  File "/Users/dpn/Build/Source/migen/migen/sim/core.py", line 403, in run
    self._process_generators(cd)
  File "/Users/dpn/Build/Source/migen/migen/sim/core.py", line 357, in _process_generators
    request = generator.send(reply)
  File "urukul_sim.py", line 105, in test
    assert ret & 0xff0000 == 0x080000, hex(ret)
AssertionError: 0x2468ac

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.