
leading up to squint
13 February, 2010Posted by Paul Pham
In a few days I’ll be leaving for SQuInt, just a man, a van, a plan, and Panama. Don’t be surprised if there is a renegade poster or private demonstration of a yellow box, or if people are waving around FPGA sequencer boards. For the past few weeks, Rob, David, and I have been hard at work getting the input counting feature to work in time for its big unveiling in Santa Fe. I am fully confident that we’ll finish testing it before we leave.
Software support is already added in the v1 Python compiler, and the latest version in Git works for four out of five subopcodes (counter reset, counter latch, counter compare to a threshold, counter branch-on-compare). The last subopcode, counter write-to-memory, is tricky because it involves stopping the PCP fetching instructions from memory, writing to a new address (via an address accumulator that increments by one each time), and then resuming the PCP instruction pipeline at the same address as before. As you would expect, there are issues with delay slots (just insert more nops!), converting addresses between 32-bit (use by PCP) and 8-bit (used by PTP), and clocking issues (synchronizing between triggers and the system clock).
The other members of our team have also been busy in the meantime.
Jeff is finishing up new support for network device discovery. No more hard-coded IP addresses or dedicated routers! With his new changes, the sequencer can get a dynamic DHCP address from any gateway / router, count down the lease time, and then release and renew its IP address. This, combined with re-enabling the ICMP (ping) module, will make the sequencer a first-class network citizen again. He has also added support to the Python v1 compiler for discovering all sequencer devices on the network dynamically, and selecting between them via the software API when loading pulse programs. I won’t reveal any more, but hopefully while I’m gone he’ll write up his own blog post.
David and John have started work on the clock board, which should make the existing system a little more compact and less like a cable jungle. This is their very first circuit design, using one of my favorite open source projects, gEDA/PCB, complete with 70s X11 widgets and arcane keyboard shortcuts. Some day, when you are a crotchety old man, you can also make your students use weird toolchains because it is cheaper and builds character.
Peter worked on designing a proposal for pcp5 to support parameter scanning, which is sleeping for now while physicists decide if they really need it. But arithmetic and register support are pretty useful, and I am frustrated that ginormous hard-coded sequences are necessary for parameter scans. Eventually, my engineer’s sensibilities will boil over and force the issue. For now, Peter is working on modifying the firmware build system to generate multiple binary targets. This is the first step to creating alternate configurations and even unit tests for firmware.
Finally, our own Aaron Avril will be presenting a SQuInt poster on his yellow box. Here are some candid photos in lab, courtesy of Jeff Booth. See if you can guess what all the parts are.


