Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating QC2 hardware, adding nist_clock #235

Closed
wants to merge 10 commits into from
Closed

Updating QC2 hardware, adding nist_clock #235

wants to merge 10 commits into from

Conversation

dhslichter
Copy link
Contributor

Updated the QC2 hardware to refer to the new 12-DDS backplanes in Quantum I and Quantum II. Added a new hardware target called nist_clock, containing the old QC2, which was in fact for the clock backplane with 11 DDS cards.

@sbourdeauducq
Copy link
Member

Are you sure the old QC2 corresponds to the clock backplane? David has this clock backplane (right?) and he had to make a lot of changes to the QC2 pinout to get it to work, e.g.

 fmc_adapter_io = [
-    ("ttl", 0, Pins("LPC:LA00_CC_P"), IOStandard("LVTTL")),
+    ("ttl", 0, Pins("LPC:LA00_CC_N"), IOStandard("LVTTL")),
     ("ttl", 1, Pins("LPC:LA02_P"), IOStandard("LVTTL")),
-    ("ttl", 2, Pins("LPC:LA00_CC_N"), IOStandard("LVTTL")),
+    ("ttl", 2, Pins("LPC:LA00_CC_P"), IOStandard("LVTTL")),
     ("ttl", 3, Pins("LPC:LA02_N"), IOStandard("LVTTL")),
-    ("ttl", 4, Pins("LPC:LA01_CC_P"), IOStandard("LVTTL")),
-    ("ttl", 5, Pins("LPC:LA01_CC_N"), IOStandard("LVTTL")),
-    ("ttl", 6, Pins("LPC:LA06_P"), IOStandard("LVTTL")),
-    ("ttl", 7, Pins("LPC:LA06_N"), IOStandard("LVTTL")),
-    ("ttl", 8, Pins("LPC:LA05_P"), IOStandard("LVTTL")),
+    ("ttl", 4, Pins("LPC:LA01_CC_N"), IOStandard("LVTTL")),
+    ("ttl", 5, Pins("LPC:LA06_P"), IOStandard("LVTTL")),
+    ("ttl", 6, Pins("LPC:LA06_N"), IOStandard("LVTTL")),
+    ("ttl", 7, Pins("LPC:LA27_P"), IOStandard("LVTTL")),
+    ("ttl", 8, Pins("LPC:LA10_P"), IOStandard("LVTTL")),
     ("ttl", 9, Pins("LPC:LA05_N"), IOStandard("LVTTL")),
-    ("ttl", 10, Pins("LPC:LA10_P"), IOStandard("LVTTL")),
+    ("ttl", 10, Pins("LPC:LA05_P"), IOStandard("LVTTL")),
     ("ttl", 11, Pins("LPC:LA09_P"), IOStandard("LVTTL")),
-    ("ttl", 12, Pins("LPC:LA10_N"), IOStandard("LVTTL")),
-    ("ttl", 13, Pins("LPC:LA09_N"), IOStandard("LVTTL")),
-    ("ttl", 14, Pins("LPC:LA13_P"), IOStandard("LVTTL")),
-    ("ttl", 15, Pins("LPC:LA14_P"), IOStandard("LVTTL")),
+    ("ttl", 12, Pins("LPC:LA09_N"), IOStandard("LVTTL")),
+    ("ttl", 13, Pins("LPC:LA13_P"), IOStandard("LVTTL")),
+    ("ttl", 14, Pins("LPC:LA14_P"), IOStandard("LVTTL")),
+    ("ttl", 15, Pins("LPC:LA10_N"), IOStandard("LVTTL")),
+    
+    ("pmt", 0, Pins("LPC:CLK0_M2C_P"), IOStandard("LVTTL")),
+    ("pmt", 1, Pins("LPC:CLK0_M2C_N"), IOStandard("LVTTL")),

     ("dds", 0,
         Subsignal("a", Pins("LPC:LA22_N LPC:LA21_P LPC:LA22_P LPC:LA19_N "

@dleibrandt
Copy link
Contributor

I'm pretty sure that old QC2 really is the same as the clock hardware, but that perhaps not all of the TTL lines were ever tested. Additionally, some of my pinout changes are due to the fact that the numbering of the TTL lines was not the same as on the clock breakout panel. In any case, I'm pretty sure that I'm the only one using the old QC2 configuration, so as long as you create a clock configuration based on the old QC2 with my pinout changes I think everyone will be happy.

@dhslichter
Copy link
Contributor Author

I based the pinouts for the clock backplane on the labeling scheme used in Till's schematic for the clock backplane. We intentionally designed the new QC2 backplane to have an identical FMC pinout as the clock backplane, with only minor changes of adding one DDS SEL line (eliminating the LA_32 pair), renaming the SPI lines to TTL lines, and connecting the JTAG TDI to TDO. However, it seems that somehow the lines are renamed in the clock backplane. It seems to me that @dleibrandt is right, as long as you use the pinouts he specifies for the clock backplane everyone will be happy. In my patch I simply copied what was already in the NIST_QC2, assuming these edits had already been incorporated.

@sbourdeauducq
Copy link
Member

TODO:

  • conda packaging
  • buildbot update
  • documentation for QC2
  • update install instructions to mention CLOCK
  • support for the flashing script
  • rename _NIST_QCx as this is no longer an appropriate name for this class (I will fix this)
  • -H option in kc705.py (I will fix this)

@sbourdeauducq
Copy link
Member

@dhslichter @dleibrandt I have integrated your various modifications. Can you check that the current gateware matches the hardware?

Items 1-5 above still need to be done.

@sbourdeauducq
Copy link
Member

1-2 are done.

@sbourdeauducq
Copy link
Member

5 is unnecessary, -m clock just works. 3-4 still needed.

@sbourdeauducq
Copy link
Member

Ping

@dhslichter
Copy link
Contributor Author

occupied with other projects last week, will complete testing and submit doc patch hopefully this week.

@dhslichter dhslichter deleted the patch-2 branch April 6, 2016 20:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants