From 20f6e4324b0e65c9dd3ce89dacb3cd3eb77b2da3 Mon Sep 17 00:00:00 2001 From: Michael Buesch Date: Tue, 18 Jan 2011 17:16:11 +0100 Subject: Put OSC freq into TOP. Always flush commands on exit. Signed-off-by: Michael Buesch --- README-DEVELOPERS.lyx | 9 + README-DEVELOPERS.ps | 863 +++++++++++++++++++++-------------------- libtoprammer/chip_unitest.py | 2 +- libtoprammer/toprammer_main.py | 34 +- 4 files changed, 487 insertions(+), 421 deletions(-) diff --git a/README-DEVELOPERS.lyx b/README-DEVELOPERS.lyx index 4fe9fcb..8786b24 100644 --- a/README-DEVELOPERS.lyx +++ b/README-DEVELOPERS.lyx @@ -134,6 +134,15 @@ cmdRequestVersion() Reads the programmer identification and versioning string and returns it. \end_layout +\begin_layout Subsection +getOscillatorHz() +\end_layout + +\begin_layout Standard +Returns the frequency (in Hz) of the oscillator connected to the FPGA clk + pin. +\end_layout + \begin_layout Subsection getBufferRegSize() \end_layout diff --git a/README-DEVELOPERS.ps b/README-DEVELOPERS.ps index b171e75..b8ae4dd 100644 --- a/README-DEVELOPERS.ps +++ b/README-DEVELOPERS.ps @@ -1,7 +1,7 @@ %!PS-Adobe-2.0 %%Creator: dvips(k) 5.98 Copyright 2009 Radical Eye Software %%Title: README-DEVELOPERS.dvi -%%CreationDate: Sun Jan 16 23:14:46 2011 +%%CreationDate: Tue Jan 18 17:15:15 2011 %%Pages: 7 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 @@ -11,7 +11,7 @@ %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -o README-DEVELOPERS.ps README-DEVELOPERS.dvi %DVIPSParameters: dpi=600 -%DVIPSSource: TeX output 2011.01.16:2314 +%DVIPSSource: TeX output 2011.01.18:1715 %%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S @@ -516,8 +516,8 @@ E0000003E3E0000003E7C0000001E7C0000001F7C0000001F780000000FF80000000FF80 87E000007E0FE000007E1FC000007FFF8000003FFF0000001FFE0000000FFC00000007E0 00000027367EA32C>I E %EndDVIPSBitmapFont -%DVIPSBitmapFont: Fb ecbx1200 12 56 -/Fb 56 123 df<0000000FFF0003FF00000001FFFFC03FFFC000000FFFFFF1FFFFE00000 +%DVIPSBitmapFont: Fb ecbx1200 12 58 +/Fb 58 123 df<0000000FFF0003FF00000001FFFFC03FFFC000000FFFFFF1FFFFE00000 7FFFFFFFFFFFF00001FFF803FFFE1FF80003FF8003FFF81FFC000FFF0007FFF03FFC001F FE000FFFE03FFC003FFC000FFFE03FFC003FF8000FFFC03FFC007FF0000FFFC03FFC007F F0000FFFC01FF800FFF0000FFF801FF800FFE00007FF8007E000FFE00003FF80018000FF @@ -807,394 +807,431 @@ E000000001FFF00003FFE000000001FFF00001FFF000000001FFF00000FFF800000001FF F000007FFC00000001FFF000003FFE00000003FFF000001FFF80000003FFF000000FFFC0 000007FFF0000007FFF000000FFFF0000001FFFE00003FFFF0000000FFFFF001FF9FF000 00003FFFFFFFFF0FF000000007FFFFFFFC03F000000001FFFFFFF000F0000000001FFFFF -C000300000000000FFFC000000004C467AC458>III73 D76 D78 DI76 D78 D<00000007FFC0000000 +000000FFFFFE000000000007FFFFFFC0000000001FFFFFFFF0000000007FFE00FFFC0000 +0001FFF0001FFF00000007FF800003FFC000000FFF000001FFE000001FFC0000007FF000 +003FF80000003FF800007FF00000001FFC0000FFF00000001FFE0001FFE00000000FFF00 +03FFC000000007FF8003FFC000000007FF8007FF8000000003FFC007FF8000000003FFC0 +0FFF0000000001FFE00FFF0000000001FFE01FFF0000000001FFF01FFE0000000000FFF0 +3FFE0000000000FFF83FFE0000000000FFF83FFE0000000000FFF87FFE0000000000FFFC +7FFC00000000007FFC7FFC00000000007FFC7FFC00000000007FFC7FFC00000000007FFC +FFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFE +FFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFE +FFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFEFFFC00000000007FFE +FFFC00000000007FFE7FFC00000000007FFC7FFE0000000000FFFC7FFE0000000000FFFC +7FFE0000000000FFFC3FFE0000000000FFF83FFE0000000000FFF83FFF0000000001FFF8 +1FFF0000000001FFF01FFF0000000001FFF01FFF8000000003FFF00FFF8000000003FFE0 +0FFF8000000003FFE007FFC000000007FFC003FFC000000007FF8003FFE00000000FFF80 +01FFF00000001FFF0000FFF80000003FFE00007FFC0000007FFC00003FFE000000FFF800 +001FFF000001FFF000000FFFC00007FFE0000007FFF0001FFFC0000001FFFE00FFFF0000 +0000FFFFFFFFFE000000003FFFFFFFF80000000007FFFFFFC00000000000FFFFFE000000 +00000007FFC000000047467AC454>I80 -D82 D<0000FFE0001C000007FFFE003C00003FFFFF807C00 -00FFFFFFE0FC0001FFFFFFF9FC0003FF801FFFFC0007FC0001FFFC000FF800007FFC001F -F000003FFC003FE000000FFC003FC0000007FC007FC0000003FC007F80000003FC007F80 -000001FC007F80000000FC00FF80000000FC00FF800000007C00FF800000007C00FFC000 -00007C00FFC00000007C00FFE00000003C00FFF00000003C00FFF80000003C00FFFC0000 -0000007FFE00000000007FFFE0000000007FFFFE000000003FFFFFF00000003FFFFFFF00 -00001FFFFFFFE000001FFFFFFFFC00000FFFFFFFFE000007FFFFFFFF800003FFFFFFFFC0 -0001FFFFFFFFE000007FFFFFFFF000001FFFFFFFF8000007FFFFFFFC000000FFFFFFFC00 -00000FFFFFFE00000000FFFFFE0000000007FFFF00000000007FFF00000000003FFF0000 -0000000FFF800000000007FF800000000003FF80F000000003FF80F000000001FF80F000 -000001FF80F000000000FF80F000000000FF80F800000000FF80F800000000FF80F80000 -0000FF00FC00000000FF00FC00000000FF00FE00000001FF00FF00000001FE00FF800000 -03FE00FFC0000003FC00FFE0000007FC00FFF800000FF800FFFF00003FF000FFFFF800FF -E000FE7FFFFFFFC000FC1FFFFFFF0000F807FFFFFC0000F000FFFFF00000E00007FF8000 -0031467AC43E>I86 DI82 +D<0000FFE0001C000007FFFE003C00003FFFFF807C0000FFFFFFE0FC0001FFFFFFF9FC00 +03FF801FFFFC0007FC0001FFFC000FF800007FFC001FF000003FFC003FE000000FFC003F +C0000007FC007FC0000003FC007F80000003FC007F80000001FC007F80000000FC00FF80 +000000FC00FF800000007C00FF800000007C00FFC00000007C00FFC00000007C00FFE000 +00003C00FFF00000003C00FFF80000003C00FFFC00000000007FFE00000000007FFFE000 +0000007FFFFE000000003FFFFFF00000003FFFFFFF0000001FFFFFFFE000001FFFFFFFFC +00000FFFFFFFFE000007FFFFFFFF800003FFFFFFFFC00001FFFFFFFFE000007FFFFFFFF0 +00001FFFFFFFF8000007FFFFFFFC000000FFFFFFFC0000000FFFFFFE00000000FFFFFE00 +00000007FFFF00000000007FFF00000000003FFF00000000000FFF800000000007FF8000 +00000003FF80F000000003FF80F000000001FF80F000000001FF80F000000000FF80F000 +000000FF80F800000000FF80F800000000FF80F800000000FF00FC00000000FF00FC0000 +0000FF00FE00000001FF00FF00000001FE00FF80000003FE00FFC0000003FC00FFE00000 +07FC00FFF800000FF800FFFF00003FF000FFFFF800FFE000FE7FFFFFFFC000FC1FFFFFFF +0000F807FFFFFC0000F000FFFFF00000E00007FF80000031467AC43E>I86 DI<7FFFFFFFC003FFFFFF807FFFFF -FFC003FFFFFF807FFFFFFFC003FFFFFF807FFFFFFFC003FFFFFF807FFFFFFFC003FFFFFF -80000FFFE0000001F800000007FFE0000003F000000007FFF0000007F000000003FFF800 -0007E000000001FFFC00000FC000000001FFFC00001F8000000000FFFE00003F80000000 -007FFF00003F00000000003FFF00007E00000000003FFF8000FC00000000001FFFC001FC -00000000000FFFE001F800000000000FFFE003F0000000000007FFF007E0000000000003 -FFF80FE0000000000001FFFC0FC0000000000001FFFC1F80000000000000FFFE3F000000 -000000007FFF7F000000000000003FFF7E000000000000003FFFFC000000000000001FFF -F8000000000000000FFFF8000000000000000FFFF00000000000000007FFF00000000000 -000003FFF80000000000000001FFF80000000000000001FFFC0000000000000000FFFE00 -000000000000007FFF0000000000000000FFFF0000000000000000FFFF80000000000000 -01FFFFC000000000000003FFFFC000000000000007FFFFE000000000000007E7FFF00000 -000000000FC3FFF80000000000001F83FFF80000000000003F81FFFC0000000000003F00 -FFFE0000000000007E007FFE000000000000FC007FFF000000000001FC003FFF80000000 -0001F8001FFFC00000000003F0001FFFC00000000007E0000FFFE0000000000FE00007FF -F0000000000FC00003FFF0000000001F800003FFF8000000003F000001FFFC000000003F -000000FFFE000000007E000000FFFE00000000FC0000007FFF00000001FC0000003FFF80 -000001F80000001FFF80000003F00000001FFFC0000007E00000000FFFE000000FE00000 -0007FFF000FFFFFFE00003FFFFFFFCFFFFFFE00003FFFFFFFCFFFFFFE00003FFFFFFFCFF -FFFFE00003FFFFFFFCFFFFFFE00003FFFFFFFC4E447DC355>I<1FFFFFFFFFFFFE1FFFFF -FFFFFFFE1FFFFFFFFFFFFE1FFFFFFFFFFFFE1FFFFFFFFFFFFE1FFFF80001FFFC1FFF8000 -01FFF81FFC000003FFF81FF8000007FFF01FF0000007FFE01FE000000FFFE01FC000001F -FFC03F8000001FFF803F8000003FFF803F0000007FFF003F0000007FFE003E000000FFFE -003E000001FFFC003E000001FFF8003C000003FFF8003C000007FFF0003C000007FFE000 -3C00000FFFE0003C00001FFFC0000000001FFF80000000003FFF00000000007FFF000000 -00007FFE0000000000FFFC0000000001FFFC0000000001FFF80000000003FFF000000000 -07FFF00000000007FFE0000000000FFFC0000000001FFFC0000000001FFF80000000003F -FF00000000007FFF00000000007FFE0000000000FFFC00000F0001FFFC00000F0001FFF8 -00000F0003FFF000000F0007FFF000000F000FFFE000001F000FFFC000001F001FFFC000 -001E003FFF8000001E003FFF0000001E007FFF0000003E00FFFE0000003E00FFFC000000 -3E01FFFC0000007E03FFF80000007E03FFF0000000FE07FFF0000001FE0FFFE0000003FE -0FFFC0000007FE1FFFC000000FFE3FFF8000003FFE3FFF000000FFFC7FFF00000FFFFCFF -FFFFFFFFFFFCFFFFFFFFFFFFFCFFFFFFFFFFFFFCFFFFFFFFFFFFFCFFFFFFFFFFFFFC3844 -7AC344>90 D<0001FFE0000000001FFFFE000000007FFFFF80000001FFFFFFE0000003FE -007FF8000007FC001FFC000007FE000FFE00000FFF0007FF00000FFF0007FF00000FFF00 -03FF80000FFF0003FF80000FFF0003FF80000FFF0001FFC00007FE0001FFC00003FC0001 -FFC00000F00001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FF -C000000003FFFFC0000000FFFFFFC0000007FFFFFFC000003FFFF1FFC00000FFFC01FFC0 -0003FFE001FFC00007FF8001FFC0001FFE0001FFC0003FFC0001FFC0003FF80001FFC000 -7FF80001FFC0007FF00001FFC000FFF00001FFC000FFE00001FFC000FFE00001FFC000FF -E00001FFC000FFE00003FFC000FFE00003FFC000FFF00007FFC0007FF8000FFFC0007FF8 -001FFFF0003FFE003EFFFFC01FFF80FC7FFFC007FFFFF87FFFC003FFFFE01FFFC0007FFF -8007FFC0000FFC00000000322F7DAD36>97 D<007FC000000000FFFFC000000000FFFFC0 -00000000FFFFC000000000FFFFC000000000FFFFC00000000003FFC00000000001FFC000 +FF0000FFFFFE007FFC0000003FFE000000007C00007FFE0000003FFF000000007C00003F +FE0000001FFF000000007800003FFF0000001FFF000000007800003FFF0000001FFF8000 +0000F800001FFF0000000FFF80000000F000001FFF8000000FFFC0000001F000000FFF80 +000007FFC0000001E000000FFF80000007FFC0000001E000000FFFC0000007FFE0000003 +E0000007FFC0000007FFE0000003C0000007FFE0000007FFE0000003C0000007FFE00000 +0FFFF0000007C0000003FFE000000FFFF000000780000003FFF000000FFFF800000F8000 +0001FFF000001EFFF800000F00000001FFF000001EFFF800000F00000001FFF800003EFF +FC00001F00000000FFF800003C7FFC00001E00000000FFFC00003C7FFC00001E00000000 +7FFC00007C7FFE00003C000000007FFC0000783FFE00003C000000007FFE0000783FFF00 +007C000000003FFE0000F01FFF000078000000003FFE0000F01FFF000078000000003FFF +0001F01FFF8000F8000000001FFF0001E00FFF8000F0000000001FFF8001E00FFF8000F0 +000000000FFF8003E00FFFC001E0000000000FFF8003C007FFC001E0000000000FFFC003 +C007FFE003E00000000007FFC0078003FFE003C00000000007FFC0078003FFE003C00000 +000007FFE00F8003FFF007C00000000003FFE00F0001FFF007800000000003FFF00F0001 +FFF007800000000001FFF01F0001FFF80F000000000001FFF01E0000FFF80F0000000000 +01FFF81E0000FFFC1F000000000000FFF83C00007FFC1E000000000000FFF83C00007FFC +1E000000000000FFFC7C00007FFE3E0000000000007FFC7800003FFE3C0000000000007F +FE7800003FFF3C0000000000003FFEF800003FFF780000000000003FFEF000001FFF7800 +00000000003FFFF000001FFFF80000000000001FFFE000000FFFF00000000000001FFFE0 +00000FFFF00000000000001FFFE000000FFFF00000000000000FFFC0000007FFE0000000 +0000000FFFC0000007FFE000000000000007FFC0000007FFC000000000000007FF800000 +03FFC000000000000007FF80000003FFC000000000000003FF00000001FF800000000000 +0003FF00000001FF8000000000000003FF00000001FF8000000000000001FE00000000FF +0000000000000001FE00000000FF0000000000000000FC000000007E0000000000000000 +FC000000007E0000000000000000FC000000007E000000000000000078000000003C0000 +00006F457EC374>I<7FFFFFFFC003FFFFFF807FFFFFFFC003FFFFFF807FFFFFFFC003FF +FFFF807FFFFFFFC003FFFFFF807FFFFFFFC003FFFFFF80000FFFE0000001F800000007FF +E0000003F000000007FFF0000007F000000003FFF8000007E000000001FFFC00000FC000 +000001FFFC00001F8000000000FFFE00003F80000000007FFF00003F00000000003FFF00 +007E00000000003FFF8000FC00000000001FFFC001FC00000000000FFFE001F800000000 +000FFFE003F0000000000007FFF007E0000000000003FFF80FE0000000000001FFFC0FC0 +000000000001FFFC1F80000000000000FFFE3F000000000000007FFF7F00000000000000 +3FFF7E000000000000003FFFFC000000000000001FFFF8000000000000000FFFF8000000 +000000000FFFF00000000000000007FFF00000000000000003FFF80000000000000001FF +F80000000000000001FFFC0000000000000000FFFE00000000000000007FFF0000000000 +000000FFFF0000000000000000FFFF8000000000000001FFFFC000000000000003FFFFC0 +00000000000007FFFFE000000000000007E7FFF00000000000000FC3FFF8000000000000 +1F83FFF80000000000003F81FFFC0000000000003F00FFFE0000000000007E007FFE0000 +00000000FC007FFF000000000001FC003FFF800000000001F8001FFFC00000000003F000 +1FFFC00000000007E0000FFFE0000000000FE00007FFF0000000000FC00003FFF0000000 +001F800003FFF8000000003F000001FFFC000000003F000000FFFE000000007E000000FF +FE00000000FC0000007FFF00000001FC0000003FFF80000001F80000001FFF80000003F0 +0000001FFFC0000007E00000000FFFE000000FE000000007FFF000FFFFFFE00003FFFFFF +FCFFFFFFE00003FFFFFFFCFFFFFFE00003FFFFFFFCFFFFFFE00003FFFFFFFCFFFFFFE000 +03FFFFFFFC4E447DC355>I<1FFFFFFFFFFFFE1FFFFFFFFFFFFE1FFFFFFFFFFFFE1FFFFF +FFFFFFFE1FFFFFFFFFFFFE1FFFF80001FFFC1FFF800001FFF81FFC000003FFF81FF80000 +07FFF01FF0000007FFE01FE000000FFFE01FC000001FFFC03F8000001FFF803F8000003F +FF803F0000007FFF003F0000007FFE003E000000FFFE003E000001FFFC003E000001FFF8 +003C000003FFF8003C000007FFF0003C000007FFE0003C00000FFFE0003C00001FFFC000 +0000001FFF80000000003FFF00000000007FFF00000000007FFE0000000000FFFC000000 +0001FFFC0000000001FFF80000000003FFF00000000007FFF00000000007FFE000000000 +0FFFC0000000001FFFC0000000001FFF80000000003FFF00000000007FFF00000000007F +FE0000000000FFFC00000F0001FFFC00000F0001FFF800000F0003FFF000000F0007FFF0 +00000F000FFFE000001F000FFFC000001F001FFFC000001E003FFF8000001E003FFF0000 +001E007FFF0000003E00FFFE0000003E00FFFC0000003E01FFFC0000007E03FFF8000000 +7E03FFF0000000FE07FFF0000001FE0FFFE0000003FE0FFFC0000007FE1FFFC000000FFE +3FFF8000003FFE3FFF000000FFFC7FFF00000FFFFCFFFFFFFFFFFFFCFFFFFFFFFFFFFCFF +FFFFFFFFFFFCFFFFFFFFFFFFFCFFFFFFFFFFFFFC38447AC344>90 +D<0001FFE0000000001FFFFE000000007FFFFF80000001FFFFFFE0000003FE007FF80000 +07FC001FFC000007FE000FFE00000FFF0007FF00000FFF0007FF00000FFF0003FF80000F +FF0003FF80000FFF0003FF80000FFF0001FFC00007FE0001FFC00003FC0001FFC00000F0 +0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000003 +FFFFC0000000FFFFFFC0000007FFFFFFC000003FFFF1FFC00000FFFC01FFC00003FFE001 +FFC00007FF8001FFC0001FFE0001FFC0003FFC0001FFC0003FF80001FFC0007FF80001FF +C0007FF00001FFC000FFF00001FFC000FFE00001FFC000FFE00001FFC000FFE00001FFC0 +00FFE00003FFC000FFE00003FFC000FFF00007FFC0007FF8000FFFC0007FF8001FFFF000 +3FFE003EFFFFC01FFF80FC7FFFC007FFFFF87FFFC003FFFFE01FFFC0007FFF8007FFC000 +0FFC00000000322F7DAD36>97 D<007FC000000000FFFFC000000000FFFFC000000000FF +FFC000000000FFFFC000000000FFFFC00000000003FFC00000000001FFC00000000001FF +C00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0 +0000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000 00000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000 -000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0000000 -0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000000 -01FFC00000000001FFC00FF8000001FFC0FFFF800001FFC3FFFFE00001FFCFFFFFF80001 -FFDFC03FFC0001FFFF000FFE0001FFFC0003FF0001FFF80001FF8001FFF00001FFC001FF -E00000FFE001FFC00000FFE001FFC000007FF001FFC000007FF001FFC000007FF801FFC0 -00003FF801FFC000003FF801FFC000003FF801FFC000003FFC01FFC000003FFC01FFC000 -003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC00000 -3FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003F -F801FFC000003FF801FFC000007FF801FFC000007FF001FFC000007FF001FFC000007FF0 -01FFC00000FFE001FFE00000FFC001FFF00001FFC001FFF80003FF8001FF7C0007FF0001 -FE3E000FFE0001FC1FC07FFC0001F80FFFFFF00001F003FFFFC00001E000FFFF00000000 -001FF0000036467DC43E>I<00003FFC00000001FFFFC000000FFFFFF000003FFFFFFC00 -007FF003FE0000FFC001FF0003FF8003FF0007FF0007FF8007FE0007FF800FFE0007FF80 -1FFC0007FF801FFC0007FF803FF80007FF803FF80003FF007FF80001FE007FF800007800 -7FF0000000007FF000000000FFF000000000FFF000000000FFF000000000FFF000000000 -FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000 -FFF000000000FFF0000000007FF8000000007FF8000000007FF8000000003FF800000000 -3FFC000003C03FFC000003C01FFE000007C00FFE000007800FFF00000F8007FF80001F00 -03FFC0003E0001FFF0007C00007FFC03F800003FFFFFF000000FFFFFC0000003FFFF0000 -00003FF800002A2F7CAD32>I<0000000003FE0000000007FFFE0000000007FFFE000000 -0007FFFE0000000007FFFE0000000007FFFE00000000001FFE00000000000FFE00000000 -000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE0000000000 -0FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000F -FE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE -0000003FE00FFE000003FFFC0FFE00000FFFFF8FFE00003FFFFFCFFE0000FFF807FFFE00 -01FFC001FFFE0003FF80007FFE0007FF00003FFE000FFE00001FFE000FFC00000FFE001F -FC00000FFE003FF800000FFE003FF800000FFE003FF800000FFE007FF800000FFE007FF0 -00000FFE007FF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000 -000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF00000 -0FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE007FF000000FFE007FF000000F -FE007FF000000FFE007FF800000FFE003FF800000FFE003FF800000FFE001FFC00001FFE -001FFC00001FFE000FFE00003FFE0007FE00007FFE0003FF0000FFFF0001FFC003FFFFFC -00FFF01FEFFFFC007FFFFF8FFFFC001FFFFE0FFFFC0007FFF80FFFFC00007FC00FF80036 -467CC43E>I<00003FF800000003FFFF8000000FFFFFE000003FFFFFF000007FF83FF800 -00FFC007FC0001FF8003FE0003FF0001FF0007FE0000FF800FFC0000FF801FFC00007FC0 -1FF800007FC03FF800003FE03FF800003FE07FF800003FE07FF000003FE07FF000003FF0 -7FF000001FF0FFF000001FF0FFF000001FF0FFFFFFFFFFF0FFFFFFFFFFF0FFFFFFFFFFF0 -FFFFFFFFFFF0FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000 -7FF0000000007FF0000000007FF8000000007FF8000000003FF8000000003FF8000000F0 -1FFC000000F01FFC000001F00FFE000001E007FF000003E003FF800007C001FFC0000F80 -00FFF0003F00007FFE01FE00001FFFFFFC000007FFFFF0000001FFFFC00000001FFE0000 -2C2F7DAD33>I<000000FF8000000FFFE000007FFFF00001FFFFF80003FF8FFC000FFE0F -FE001FFC1FFE001FF81FFE003FF81FFE007FF01FFE007FF01FFE007FF00FFC00FFE00FFC -00FFE003F000FFE000C000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000 -FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000FFFFFFF800FFFF -FFF800FFFFFFF800FFFFFFF800FFFFFFF80000FFE0000000FFE0000000FFE0000000FFE0 +000001FFC00FF8000001FFC0FFFF800001FFC3FFFFE00001FFCFFFFFF80001FFDFC03FFC +0001FFFF000FFE0001FFFC0003FF0001FFF80001FF8001FFF00001FFC001FFE00000FFE0 +01FFC00000FFE001FFC000007FF001FFC000007FF001FFC000007FF801FFC000003FF801 +FFC000003FF801FFC000003FF801FFC000003FFC01FFC000003FFC01FFC000003FFC01FF +C000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC0 +00003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FF801FFC000 +003FF801FFC000007FF801FFC000007FF001FFC000007FF001FFC000007FF001FFC00000 +FFE001FFE00000FFC001FFF00001FFC001FFF80003FF8001FF7C0007FF0001FE3E000FFE +0001FC1FC07FFC0001F80FFFFFF00001F003FFFFC00001E000FFFF00000000001FF00000 +36467DC43E>I<00003FFC00000001FFFFC000000FFFFFF000003FFFFFFC00007FF003FE +0000FFC001FF0003FF8003FF0007FF0007FF8007FE0007FF800FFE0007FF801FFC0007FF +801FFC0007FF803FF80007FF803FF80003FF007FF80001FE007FF8000078007FF0000000 +007FF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000 +00FFF000000000FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000 +00FFF0000000007FF8000000007FF8000000007FF8000000003FF8000000003FFC000003 +C03FFC000003C01FFE000007C00FFE000007800FFF00000F8007FF80001F0003FFC0003E +0001FFF0007C00007FFC03F800003FFFFFF000000FFFFFC0000003FFFF000000003FF800 +002A2F7CAD32>I<0000000003FE0000000007FFFE0000000007FFFE0000000007FFFE00 +00000007FFFE0000000007FFFE00000000001FFE00000000000FFE00000000000FFE0000 +0000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE000000 +00000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000 +000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE0000003FE0 +0FFE000003FFFC0FFE00000FFFFF8FFE00003FFFFFCFFE0000FFF807FFFE0001FFC001FF +FE0003FF80007FFE0007FF00003FFE000FFE00001FFE000FFC00000FFE001FFC00000FFE +003FF800000FFE003FF800000FFE003FF800000FFE007FF800000FFE007FF000000FFE00 +7FF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FF +F000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF0 +00000FFE00FFF000000FFE00FFF000000FFE007FF000000FFE007FF000000FFE007FF000 +000FFE007FF800000FFE003FF800000FFE003FF800000FFE001FFC00001FFE001FFC0000 +1FFE000FFE00003FFE0007FE00007FFE0003FF0000FFFF0001FFC003FFFFFC00FFF01FEF +FFFC007FFFFF8FFFFC001FFFFE0FFFFC0007FFF80FFFFC00007FC00FF80036467CC43E> +I<00003FF800000003FFFF8000000FFFFFE000003FFFFFF000007FF83FF80000FFC007FC +0001FF8003FE0003FF0001FF0007FE0000FF800FFC0000FF801FFC00007FC01FF800007F +C03FF800003FE03FF800003FE07FF800003FE07FF000003FE07FF000003FF07FF000001F +F0FFF000001FF0FFF000001FF0FFFFFFFFFFF0FFFFFFFFFFF0FFFFFFFFFFF0FFFFFFFFFF +F0FFF000000000FFF000000000FFF000000000FFF000000000FFF0000000007FF0000000 +007FF0000000007FF8000000007FF8000000003FF8000000003FF8000000F01FFC000000 +F01FFC000001F00FFE000001E007FF000003E003FF800007C001FFC0000F8000FFF0003F +00007FFE01FE00001FFFFFFC000007FFFFF0000001FFFFC00000001FFE00002C2F7DAD33 +>I<000000FF8000000FFFE000007FFFF00001FFFFF80003FF8FFC000FFE0FFE001FFC1F +FE001FF81FFE003FF81FFE007FF01FFE007FF01FFE007FF00FFC00FFE00FFC00FFE003F0 +00FFE000C000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000 +FFE0000000FFE0000000FFE0000000FFE0000000FFE00000FFFFFFF800FFFFFFF800FFFF +FFF800FFFFFFF800FFFFFFF80000FFE0000000FFE0000000FFE0000000FFE0000000FFE0 000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000 0000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000 00FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000 FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FF -E0000000FFE000007FFFFFE0007FFFFFE0007FFFFFE0007FFFFFE0007FFFFFE00027467D -C522>I<0000FFE0007E00000FFFFE03FF80003FFFFF8FFF8000FFFFFFFFFFC001FFC07F -FF3FC003FF001FF83FC007FE000FFC3FC00FFC0007FE1F801FFC0007FF0F001FF80003FF -00001FF80003FF00003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80 -003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80001FF80003FF0000 -1FF80003FF00001FFC0007FF00000FFC0007FE000007FE000FFC000003FF001FF8000001 -FFC07FF0000003FFFFFFE0000003FFFFFF800000078FFFFE0000000780FFE00000000F80 -00000000000F8000000000000F8000000000000F8000000000000FC000000000000FE000 -000000000FF000000000000FFFFFFFC000000FFFFFFFFC000007FFFFFFFF800007FFFFFF -FFE00003FFFFFFFFF00001FFFFFFFFFC0000FFFFFFFFFC0003FFFFFFFFFE000FFFFFFFFF -FF001FF000007FFF003FC0000007FF007F80000001FF807F80000000FF80FF00000000FF -80FF000000007F80FF000000007F80FF000000007F80FF000000007F80FF80000000FF80 -7F80000000FF007FC0000001FF003FE0000003FE001FF0000007FC000FFE00003FF80007 -FFC001FFF00001FFFFFFFFC000007FFFFFFF0000000FFFFFF8000000007FFF0000003242 -7DAC38>I<007FC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC0 -00000000FFFFC00000000003FFC00000000001FFC00000000001FFC00000000001FFC000 -00000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000 -000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0000000 -0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC007FE0000 -01FFC03FFF800001FFC0FFFFE00001FFC1FFFFF80001FFC7F03FFC0001FFCF801FFC0001 -FFDF000FFE0001FFDE000FFE0001FFFC000FFE0001FFF80007FF0001FFF00007FF0001FF -F00007FF0001FFE00007FF0001FFE00007FF0001FFE00007FF0001FFC00007FF0001FFC0 +E000007FFFFFE0007FFFFFE0007FFFFFE0007FFFFFE0007FFFFFE00027467DC522>I<00 +00FFE0007E00000FFFFE03FF80003FFFFF8FFF8000FFFFFFFFFFC001FFC07FFF3FC003FF +001FF83FC007FE000FFC3FC00FFC0007FE1F801FFC0007FF0F001FF80003FF00001FF800 +03FF00003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003FF80003 +FF80003FF80003FF80003FF80003FF80003FF80003FF80001FF80003FF00001FF80003FF +00001FFC0007FF00000FFC0007FE000007FE000FFC000003FF001FF8000001FFC07FF000 +0003FFFFFFE0000003FFFFFF800000078FFFFE0000000780FFE00000000F800000000000 +0F8000000000000F8000000000000F8000000000000FC000000000000FE000000000000F +F000000000000FFFFFFFC000000FFFFFFFFC000007FFFFFFFF800007FFFFFFFFE00003FF +FFFFFFF00001FFFFFFFFFC0000FFFFFFFFFC0003FFFFFFFFFE000FFFFFFFFFFF001FF000 +007FFF003FC0000007FF007F80000001FF807F80000000FF80FF00000000FF80FF000000 +007F80FF000000007F80FF000000007F80FF000000007F80FF80000000FF807F80000000 +FF007FC0000001FF003FE0000003FE001FF0000007FC000FFE00003FF80007FFC001FFF0 +0001FFFFFFFFC000007FFFFFFF0000000FFFFFF8000000007FFF00000032427DAC38>I< +007FC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC000000000FF +FFC00000000003FFC00000000001FFC00000000001FFC00000000001FFC00000000001FF +C00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0 +0000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000 +00000001FFC00000000001FFC00000000001FFC00000000001FFC007FE000001FFC03FFF +800001FFC0FFFFE00001FFC1FFFFF80001FFC7F03FFC0001FFCF801FFC0001FFDF000FFE +0001FFDE000FFE0001FFFC000FFE0001FFF80007FF0001FFF00007FF0001FFF00007FF00 +01FFE00007FF0001FFE00007FF0001FFE00007FF0001FFC00007FF0001FFC00007FF0001 +FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FF +C00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0 0007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC000 07FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007 -FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF -0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF00 -01FFC00007FF0001FFC00007FF0001FFC00007FF00FFFFFF83FFFFFEFFFFFF83FFFFFEFF -FFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFE37457CC43E>I<007C0001FF0003FF80 -07FFC007FFC00FFFE00FFFE00FFFE00FFFE00FFFE007FFC007FFC003FF8001FF00007C00 -000000000000000000000000000000000000000000000000000000000000007FC07FFFC0 -7FFFC07FFFC07FFFC07FFFC003FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0 -01FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0 -01FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0 -01FFC001FFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18467CC520>I<007FC000FFFFC000 -FFFFC000FFFFC000FFFFC000FFFFC00003FFC00001FFC00001FFC00001FFC00001FFC000 -01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 -01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 -01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 -01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 -01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000 -01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000FFFFFF80 -FFFFFF80FFFFFF80FFFFFF80FFFFFF8019457CC420>108 D<007F8007FE00000FFC0000 -FFFF803FFFC0007FFF8000FFFF80FFFFF001FFFFE000FFFF81FFFFF803FFFFF000FFFF87 -F01FFC0FE03FF800FFFF8FC00FFE1F801FFC0003FF9F000FFF3E001FFE0001FF9E0007FF -3C000FFE0001FFBC0007FF78000FFE0001FFF80003FFF00007FF0001FFF80003FFF00007 -FF0001FFF00003FFE00007FF0001FFE00003FFC00007FF0001FFE00003FFC00007FF0001 -FFE00003FFC00007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC000 +FF0001FFC00007FF0001FFC00007FF00FFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFF +FEFFFFFF83FFFFFEFFFFFF83FFFFFE37457CC43E>I<007C0001FF0003FF8007FFC007FF +C00FFFE00FFFE00FFFE00FFFE00FFFE007FFC007FFC003FF8001FF00007C000000000000 +00000000000000000000000000000000000000000000000000007FC07FFFC07FFFC07FFF +C07FFFC07FFFC003FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF +C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF +C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF +C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18467CC520>I<007FC000FFFFC000FFFFC000FF +FFC000FFFFC000FFFFC00003FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 +FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 +FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 +FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 +FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 +FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001 +FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000FFFFFF80FFFFFF80FF +FFFF80FFFFFF80FFFFFF8019457CC420>108 D<007F8007FE00000FFC0000FFFF803FFF +C0007FFF8000FFFF80FFFFF001FFFFE000FFFF81FFFFF803FFFFF000FFFF87F01FFC0FE0 +3FF800FFFF8FC00FFE1F801FFC0003FF9F000FFF3E001FFE0001FF9E0007FF3C000FFE00 +01FFBC0007FF78000FFE0001FFF80003FFF00007FF0001FFF80003FFF00007FF0001FFF0 +0003FFE00007FF0001FFE00003FFC00007FF0001FFE00003FFC00007FF0001FFE00003FF +C00007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007 +FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001 +FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC000 03FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF80 0007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF 0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FF C00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003 -FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF8000 -07FF0001FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF00 -01FFC00003FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF00FFFFFF -81FFFFFF03FFFFFEFFFFFF81FFFFFF03FFFFFEFFFFFF81FFFFFF03FFFFFEFFFFFF81FFFF -FF03FFFFFEFFFFFF81FFFFFF03FFFFFE572D7CAC5E>I<007F8007FE0000FFFF803FFF80 -00FFFF80FFFFE000FFFF81FFFFF800FFFF87F03FFC00FFFF8F801FFC0003FF9F000FFE00 -01FF9E000FFE0001FFBC000FFE0001FFF80007FF0001FFF00007FF0001FFF00007FF0001 -FFE00007FF0001FFE00007FF0001FFE00007FF0001FFC00007FF0001FFC00007FF0001FF +FF800007FF0001FFC00003FF800007FF0001FFC00003FF800007FF00FFFFFF81FFFFFF03 +FFFFFEFFFFFF81FFFFFF03FFFFFEFFFFFF81FFFFFF03FFFFFEFFFFFF81FFFFFF03FFFFFE +FFFFFF81FFFFFF03FFFFFE572D7CAC5E>I<007F8007FE0000FFFF803FFF8000FFFF80FF +FFE000FFFF81FFFFF800FFFF87F03FFC00FFFF8F801FFC0003FF9F000FFE0001FF9E000F +FE0001FFBC000FFE0001FFF80007FF0001FFF00007FF0001FFF00007FF0001FFE00007FF +0001FFE00007FF0001FFE00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF00 +01FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001 +FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FF C00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0 0007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC000 -07FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007 -FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF -0001FFC00007FF0001FFC00007FF00FFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFE -FFFFFF83FFFFFEFFFFFF83FFFFFE372D7CAC3E>I<00001FFC0000000001FFFFC0000000 -07FFFFF00000001FFFFFFC0000007FF80FFF000000FFC001FF800001FF8000FFC00003FE -00003FE00007FE00003FF0000FFC00001FF8000FF800000FF8001FF800000FFC001FF800 -000FFC003FF800000FFE003FF0000007FE007FF0000007FF007FF0000007FF007FF00000 -07FF007FF0000007FF00FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007 -FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF -80FFF0000007FF807FF0000007FF007FF0000007FF007FF0000007FF007FF0000007FF00 -3FF800000FFE003FF800000FFE001FF800000FFC001FFC00001FFC000FFC00001FF80007 -FE00003FF00007FE00003FF00003FF8000FFE00001FFC001FFC000007FF80FFF0000003F -FFFFFE0000000FFFFFF800000001FFFFC0000000001FFC000000312F7DAD38>I<007FC0 -0FF80000FFFFC0FFFF8000FFFFC3FFFFE000FFFFCFFFFFF800FFFFDFC03FFC00FFFFFF00 -1FFE0003FFFC0007FF0001FFF80003FF8001FFF00003FFC001FFE00001FFE001FFC00001 -FFE001FFC00000FFF001FFC00000FFF001FFC000007FF801FFC000007FF801FFC000007F -F801FFC000007FF801FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC -01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01 -FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000007FF801FFC000007FF801FF -C000007FF801FFC000007FF001FFC00000FFF001FFC00000FFF001FFC00001FFE001FFE0 -0001FFC001FFF00003FFC001FFF80007FF8001FFFC000FFF0001FFFE001FFE0001FFDFC0 -7FFC0001FFCFFFFFF00001FFC3FFFFC00001FFC0FFFF000001FFC01FF0000001FFC00000 -000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0000000 -0001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000000000 -01FFC00000000001FFC000000000FFFFFF80000000FFFFFF80000000FFFFFF80000000FF -FFFF80000000FFFFFF8000000036407DAC3E>I<00003FE0001E000003FFFC003E00000F -FFFF007E00003FFFFF807E0000FFF80FE0FE0001FFE003F1FE0003FFC001F1FE0007FF80 -00FBFE000FFF00007FFE000FFE00003FFE001FFE00001FFE003FFC00001FFE003FFC0000 -0FFE003FF800000FFE007FF800000FFE007FF800000FFE007FF800000FFE00FFF000000F -FE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE -00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00 -FFF000000FFE007FF800000FFE007FF800000FFE007FF800000FFE007FF800000FFE003F -FC00000FFE003FFC00000FFE001FFE00001FFE001FFE00003FFE000FFF00007FFE0007FF -0000FFFE0003FF8001FFFE0001FFE003EFFE0000FFF01FCFFE00007FFFFF8FFE00001FFF -FE0FFE000003FFF80FFE0000007FC00FFE00000000000FFE00000000000FFE0000000000 -0FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000F -FE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE -0000000007FFFFFC00000007FFFFFC00000007FFFFFC00000007FFFFFC00000007FFFFFC -36407CAC3B>I<007F807F00FFFF81FFE0FFFF83FFF0FFFF8FFFF8FFFF8F8FFCFFFF9F1F -FE03FFBE1FFE01FFBC1FFE01FFF81FFE01FFF81FFE01FFF01FFE01FFF00FFC01FFE007F8 -01FFE001E001FFE0000001FFE0000001FFE0000001FFC0000001FFC0000001FFC0000001 +07FF0001FFC00007FF00FFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FFFFFEFFFFFF83FF +FFFEFFFFFF83FFFFFE372D7CAC3E>I<00001FFC0000000001FFFFC000000007FFFFF000 +00001FFFFFFC0000007FF80FFF000000FFC001FF800001FF8000FFC00003FE00003FE000 +07FE00003FF0000FFC00001FF8000FF800000FF8001FF800000FFC001FF800000FFC003F +F800000FFE003FF0000007FE007FF0000007FF007FF0000007FF007FF0000007FF007FF0 +000007FF00FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF000 +0007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF0000007FF80FFF00000 +07FF807FF0000007FF007FF0000007FF007FF0000007FF007FF0000007FF003FF800000F +FE003FF800000FFE001FF800000FFC001FFC00001FFC000FFC00001FF80007FE00003FF0 +0007FE00003FF00003FF8000FFE00001FFC001FFC000007FF80FFF0000003FFFFFFE0000 +000FFFFFF800000001FFFFC0000000001FFC000000312F7DAD38>I<007FC00FF80000FF +FFC0FFFF8000FFFFC3FFFFE000FFFFCFFFFFF800FFFFDFC03FFC00FFFFFF001FFE0003FF +FC0007FF0001FFF80003FF8001FFF00003FFC001FFE00001FFE001FFC00001FFE001FFC0 +0000FFF001FFC00000FFF001FFC000007FF801FFC000007FF801FFC000007FF801FFC000 +007FF801FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC00000 +3FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003FFC01FFC000003F +FC01FFC000003FFC01FFC000003FFC01FFC000007FF801FFC000007FF801FFC000007FF8 +01FFC000007FF001FFC00000FFF001FFC00000FFF001FFC00001FFE001FFE00001FFC001 +FFF00003FFC001FFF80007FF8001FFFC000FFF0001FFFE001FFE0001FFDFC07FFC0001FF +CFFFFFF00001FFC3FFFFC00001FFC0FFFF000001FFC01FF0000001FFC00000000001FFC0 +0000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000 +00000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000 +000001FFC000000000FFFFFF80000000FFFFFF80000000FFFFFF80000000FFFFFF800000 +00FFFFFF8000000036407DAC3E>I<00003FE0001E000003FFFC003E00000FFFFF007E00 +003FFFFF807E0000FFF80FE0FE0001FFE003F1FE0003FFC001F1FE0007FF8000FBFE000F +FF00007FFE000FFE00003FFE001FFE00001FFE003FFC00001FFE003FFC00000FFE003FF8 +00000FFE007FF800000FFE007FF800000FFE007FF800000FFE00FFF000000FFE00FFF000 +000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF00000 +0FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000FFE00FFF000000F +FE007FF800000FFE007FF800000FFE007FF800000FFE007FF800000FFE003FFC00000FFE +003FFC00000FFE001FFE00001FFE001FFE00003FFE000FFF00007FFE0007FF0000FFFE00 +03FF8001FFFE0001FFE003EFFE0000FFF01FCFFE00007FFFFF8FFE00001FFFFE0FFE0000 +03FFF80FFE0000007FC00FFE00000000000FFE00000000000FFE00000000000FFE000000 +00000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE00000000 +000FFE00000000000FFE00000000000FFE00000000000FFE00000000000FFE0000000007 +FFFFFC00000007FFFFFC00000007FFFFFC00000007FFFFFC00000007FFFFFC36407CAC3B +>I<007F807F00FFFF81FFE0FFFF83FFF0FFFF8FFFF8FFFF8F8FFCFFFF9F1FFE03FFBE1F +FE01FFBC1FFE01FFF81FFE01FFF81FFE01FFF01FFE01FFF00FFC01FFE007F801FFE001E0 +01FFE0000001FFE0000001FFE0000001FFC0000001FFC0000001FFC0000001FFC0000001 FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FF C0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0 -000001FFC0000001FFC0000001FFC0000001FFC0000001FFC00000FFFFFFE000FFFFFFE0 -00FFFFFFE000FFFFFFE000FFFFFFE000272D7DAC2E>I<001FFC038000FFFF878003FFFF -FF800FFFFFFF801FF003FF803FC000FF803F80003F807F00001F807E00001F80FE00000F -80FE00000F80FE00000780FF00000780FF00000780FF80000780FFE0000000FFFE000000 -7FFFF000007FFFFF00003FFFFFC0003FFFFFF0001FFFFFFC000FFFFFFE0003FFFFFF0001 -FFFFFF80007FFFFF80000FFFFFC000003FFFC0000003FFE0000000FFE0F000003FE0F000 -003FE0F800001FE0F800000FE0F800000FE0FC00000FE0FC00000FE0FE00000FC0FF0000 -1FC0FF00001FC0FF80003F80FFE0007F00FFF803FE00FFFFFFFC00FCFFFFF800F03FFFE0 -00E007FE0000232F7CAD2C>I<0001E000000001E000000001E000000001E000000001E0 -00000003E000000003E000000003E000000003E000000007E000000007E00000000FE000 -00000FE00000001FE00000001FE00000003FE00000007FE0000000FFE0000003FFE00000 -0FFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF8000FFE0000000FFE0000000 +000001FFC0000001FFC0000001FFC0000001FFC00000FFFFFFE000FFFFFFE000FFFFFFE0 +00FFFFFFE000FFFFFFE000272D7DAC2E>I<001FFC038000FFFF878003FFFFFF800FFFFF +FF801FF003FF803FC000FF803F80003F807F00001F807E00001F80FE00000F80FE00000F +80FE00000780FF00000780FF00000780FF80000780FFE0000000FFFE0000007FFFF00000 +7FFFFF00003FFFFFC0003FFFFFF0001FFFFFFC000FFFFFFE0003FFFFFF0001FFFFFF8000 +7FFFFF80000FFFFFC000003FFFC0000003FFE0000000FFE0F000003FE0F000003FE0F800 +001FE0F800000FE0F800000FE0FC00000FE0FC00000FE0FE00000FC0FF00001FC0FF0000 +1FC0FF80003F80FFE0007F00FFF803FE00FFFFFFFC00FCFFFFF800F03FFFE000E007FE00 +00232F7CAD2C>I<0001E000000001E000000001E000000001E000000001E000000003E0 +00000003E000000003E000000003E000000007E000000007E00000000FE00000000FE000 +00001FE00000001FE00000003FE00000007FE0000000FFE0000003FFE000000FFFFFFF80 +FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF8000FFE0000000FFE0000000FFE0000000 FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FF E0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0 -000000FFE0000000FFE0000000FFE0000000FFE0000000FFE001E000FFE001E000FFE001 -E000FFE001E000FFE001E000FFE001E000FFE001E000FFE001E000FFE001E000FFE003E0 -00FFF003C0007FF003C0007FF007C0003FF80F80001FFC1F00000FFFFF000007FFFC0000 -01FFF80000003FE00023407EBE2C>I<007FC00001FF00FFFFC003FFFF00FFFFC003FFFF -00FFFFC003FFFF00FFFFC003FFFF00FFFFC003FFFF0003FFC0000FFF0001FFC00007FF00 +000000FFE0000000FFE0000000FFE0000000FFE001E000FFE001E000FFE001E000FFE001 +E000FFE001E000FFE001E000FFE001E000FFE001E000FFE001E000FFE003E000FFF003C0 +007FF003C0007FF007C0003FF80F80001FFC1F00000FFFFF000007FFFC000001FFF80000 +003FE00023407EBE2C>I<007FC00001FF00FFFFC003FFFF00FFFFC003FFFF00FFFFC003 +FFFF00FFFFC003FFFF00FFFFC003FFFF0003FFC0000FFF0001FFC00007FF0001FFC00007 +FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF +0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF00 01FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001 FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FF -C00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0 -0007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC000 -07FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0000F -FF0001FFC0000FFF0001FFC0001FFF0001FFC0001FFF0001FFC0003FFF0000FFC0003FFF -0000FFE0007FFF80007FE001F7FFFE007FF807E7FFFE003FFFFFC7FFFE000FFFFF07FFFE -0003FFFE07FFFE00007FF007FC00372E7CAC3E>II121 +C00007FF0001FFC00007FF0001FFC00007FF0001FFC00007FF0001FFC0000FFF0001FFC0 +000FFF0001FFC0001FFF0001FFC0001FFF0001FFC0003FFF0000FFC0003FFF0000FFE000 +7FFF80007FE001F7FFFE007FF807E7FFFE003FFFFFC7FFFE000FFFFF07FFFE0003FFFE07 +FFFE00007FF007FC00372E7CAC3E>II121 D<1FFFFFFFFF801FFFFFFFFF801FFFFFFFFF801FFFFFFFFF801FFC001FFF001FE0003FFE 001FC0003FFE001F80007FFC001F0000FFF8003F0001FFF0003E0001FFF0003E0003FFE0 003E0007FFC0003C000FFF80003C000FFF80003C001FFF00003C003FFE00003C007FFC00 @@ -2994,17 +3031,17 @@ FFC00003FC7F800007FC3F000007FC00000007FC00000007F800000007F80000000FF800 800000003F000000007C00000000F800000000F000000001E000000003C0000000078000 00000F00000C001E00000C003C00000C0038000018007000001800E000001801C0000018 038000003807000000300E000000701FFFFFFFF01FFFFFFFF03FFFFFFFF07FFFFFFFF0FF -FFFFFFE0FFFFFFFFE0FFFFFFFFE026427BC131>I<000007FC0000003FFF000000FFFFC0 -0003FC03E00007E000F0001FC00038003F000058007E0001FC00FE0003FC00FC0007FC01 -F80007FC03F00007FC03F00007FC07E00003F80FE00001F00FE00000001FC00000001FC0 -0000001FC00000003F800000003F800000003F800000007F800000007F800000007F007F -80007F01FFF0007F0780FC00FF0E003E00FF1C001F80FF38000FC0FF700007E0FF600007 -E0FFE00003F0FFC00003F8FFC00001F8FFC00001FCFF800001FCFF800000FEFF800000FE -FF800000FEFF000000FFFF000000FFFF000000FFFF000000FF7F000000FF7F000000FF7F -000000FF7F000000FF7F000000FF7F800000FF3F800000FF3F800000FF3F800000FE1F80 -0000FE1F800001FE1FC00001FC0FC00001FC0FC00003F807E00003F807E00007F003F000 -07E001F8000FC000FC001F80007E003F00003F80FE00000FFFF8000003FFE0000000FF80 -0028447CC131>54 D<000FFFFFFE000FFFFFFE000FFFFFFE000003FF80000001FF000000 +FFFFFFE0FFFFFFFFE0FFFFFFFFE026427BC131>I<0000FF00000007FFE000001FFFF800 +007F00FE0000FC003F0001F0001F8003E0000FC003C00007E007C00003F00F800001F00F +800001F00F000001F81F000000F81F000000F81F000000F81F000000F81F800000F81F80 +0000F81FC00001F81FC00001F01FE00001F00FF00003E00FFC0003E007FE0007C007FF80 +0F8003FFC01F0001FFF03E0001FFF87800007FFEF000003FFFC000001FFFC0000007FFE0 +000003FFF8000007FFFC00001E7FFF00007C1FFF8000F80FFFC001E003FFE003C001FFF0 +07C0007FF80F80003FFC1F00000FFC3E000007FE3E000001FE7C000000FE7C000000FF7C +0000007FF80000003FF80000003FF80000001FF80000001FF80000001FF80000001FF800 +00001FFC0000001E7C0000003E7C0000003E7E0000003C3E0000007C1F000000F81F8000 +01F00FC00003E007E00007C003F8001F8000FF00FF00003FFFFC00000FFFF0000001FF80 +0028447CC131>56 D<000FFFFFFE000FFFFFFE000FFFFFFE000003FF80000001FF000000 00FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000 FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF 00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00 @@ -3346,7 +3383,7 @@ ifelse %%Page: 1 1 TeXDict begin 1 0 bop 1038 872 a Fh(T)-11 b(oprammer)45 b(-)g(Dev)l(elop)t(ers)h(guide)1583 1307 y Fg(Jan)m(uary)33 -b(16,)f(2011)515 1659 y Ff(1)131 b(De\034nitions)515 +b(18,)f(2011)515 1659 y Ff(1)131 b(De\034nitions)515 1841 y Fe(DUT)42 b Fd(Device)19 b(Under)f(T)-7 b(est.)34 b(The)18 b(device)h(put)g(in)n(to)f(the)h(ZIF)f(so)r(c)n(k)n(et)f(of)i (the)g(programmer)515 2004 y Fe(VPP)42 b Fd(Programming)26 @@ -3378,66 +3415,68 @@ y Fd(Reads)27 b(the)h(programmer)d(iden)n(ti\034cation)i(and)g(v)n (ersioning)f(string)h(and)g(returns)g(it.)1926 5255 y(1)p eop end %%Page: 2 2 -TeXDict begin 2 1 bop 515 523 a Fb(3.2)112 b(getBu\033erRegSize\(\))515 -676 y Fd(Returns)27 b(the)h(size)f(of)h(the)g(\020bu\033er)f -(register\021.)515 909 y Fb(3.3)112 b -(cmdReadBu\033erReg\(nrBytes=all\))515 1062 y Fd(Reads)31 -b(the)h(\020bu\033er)g(register\021)37 b(from)31 b(the)h(micro)r(con)n -(troller.)47 b(That)32 b(register)e(is)i(used)g(for)515 -1162 y(bu\033ering)g(of)g(data)g(fetc)n(hed)h(from)f(the)g(FPGA.)i(If)f -(nrBytes)e(is)h(not)h(sp)r(eci\034ed,)g(it)g(reads)515 -1261 y(the)28 b(whole)f(register.)515 1494 y Fb(3.4)112 -b(cmdReadBu\033erReg8\(\))515 1647 y Fd(Same)26 b(as)h -(cmdReadBu\033erReg\(\),)f(but)i(just)f(returns)g(a)f(8bit)h(in)n(t)g -(whic)n(h)g(w)n(as)f(formed)g(b)n(y)515 1746 y(the)i(\034rst)f(1)g(b)n -(yte)h(of)f(the)h(register.)515 1979 y Fb(3.5)112 b -(cmdReadBu\033erReg16\(\))515 2132 y Fd(Same)33 b(as)g -(cmdReadBu\033erReg\(\),)h(but)g(just)g(returns)f(a)g(16bit)g(in)n(t)h -(whic)n(h)f(w)n(as)f(formed)515 2232 y(b)n(y)27 b(the)h(\034rst)f(2)g -(b)n(ytes)h(of)f(the)h(register)e(\(little)j(endian\).)515 -2464 y Fb(3.6)112 b(cmdReadBu\033erReg32\(\))515 2617 +TeXDict begin 2 1 bop 515 523 a Fb(3.2)112 b(getOscillatorHz\(\))515 +676 y Fd(Returns)26 b(the)g(frequency)g(\(in)g(Hz\))h(of)f(the)h +(oscillator)d(connected)i(to)g(the)g(FPGA)i(clk)e(pin.)515 +905 y Fb(3.3)112 b(getBu\033erRegSize\(\))515 1058 y +Fd(Returns)27 b(the)h(size)f(of)h(the)g(\020bu\033er)f(register\021.) +515 1286 y Fb(3.4)112 b(cmdReadBu\033erReg\(nrBytes=all\))515 +1439 y Fd(Reads)31 b(the)h(\020bu\033er)g(register\021)37 +b(from)31 b(the)h(micro)r(con)n(troller.)47 b(That)32 +b(register)e(is)i(used)g(for)515 1539 y(bu\033ering)g(of)g(data)g(fetc) +n(hed)h(from)f(the)g(FPGA.)i(If)f(nrBytes)e(is)h(not)h(sp)r(eci\034ed,) +g(it)g(reads)515 1638 y(the)28 b(whole)f(register.)515 +1867 y Fb(3.5)112 b(cmdReadBu\033erReg8\(\))515 2020 +y Fd(Same)26 b(as)h(cmdReadBu\033erReg\(\),)f(but)i(just)f(returns)g(a) +f(8bit)h(in)n(t)g(whic)n(h)g(w)n(as)f(formed)g(b)n(y)515 +2120 y(the)i(\034rst)f(1)g(b)n(yte)h(of)f(the)h(register.)515 +2348 y Fb(3.6)112 b(cmdReadBu\033erReg16\(\))515 2501 y Fd(Same)33 b(as)g(cmdReadBu\033erReg\(\),)h(but)g(just)g(returns)f(a) -g(32bit)g(in)n(t)h(whic)n(h)f(w)n(as)f(formed)515 2717 -y(b)n(y)27 b(the)h(\034rst)f(4)g(b)n(ytes)h(of)f(the)h(register)e -(\(little)j(endian\).)515 2949 y Fb(3.7)112 b(cmdReadBu\033erReg48\(\)) -515 3102 y Fd(Same)33 b(as)g(cmdReadBu\033erReg\(\),)h(but)g(just)g +g(16bit)g(in)n(t)h(whic)n(h)f(w)n(as)f(formed)515 2601 +y(b)n(y)27 b(the)h(\034rst)f(2)g(b)n(ytes)h(of)f(the)h(register)e +(\(little)j(endian\).)515 2829 y Fb(3.7)112 b(cmdReadBu\033erReg32\(\)) +515 2982 y Fd(Same)33 b(as)g(cmdReadBu\033erReg\(\),)h(but)g(just)g +(returns)f(a)g(32bit)g(in)n(t)h(whic)n(h)f(w)n(as)f(formed)515 +3082 y(b)n(y)27 b(the)h(\034rst)f(4)g(b)n(ytes)h(of)f(the)h(register)e +(\(little)j(endian\).)515 3310 y Fb(3.8)112 b(cmdReadBu\033erReg48\(\)) +515 3463 y Fd(Same)33 b(as)g(cmdReadBu\033erReg\(\),)h(but)g(just)g (returns)f(a)g(48bit)g(in)n(t)h(whic)n(h)f(w)n(as)f(formed)515 -3202 y(b)n(y)27 b(the)h(\034rst)f(6)g(b)n(ytes)h(of)f(the)h(register)e -(\(little)j(endian\).)515 3434 y Fb(3.8)112 b(cmdSetVPPV)-9 -b(oltage\(v)m(oltage\))515 3588 y Fd(Set)30 b(VPP)i(\(programming)c(v)n +3563 y(b)n(y)27 b(the)h(\034rst)f(6)g(b)n(ytes)h(of)f(the)h(register)e +(\(little)j(endian\).)515 3791 y Fb(3.9)112 b(cmdSetVPPV)-9 +b(oltage\(v)m(oltage\))515 3944 y Fd(Set)30 b(VPP)i(\(programming)c(v)n (oltage\))h(to)h(the)g(sp)r(eci\034ed)h(v)n(oltage.)43 -b(V)-7 b(oltage)29 b(is)h(a)g(\035oating)515 3687 y(p)r(oin)n(t)d(n)n -(um)n(b)r(er.)515 3920 y Fb(3.9)112 b(cmdSetV)m(CCXV)-9 -b(oltage\(v)m(oltage\))515 4073 y Fd(Set)28 b(V)n(CCX)g(\(DUT)g(supply) +b(V)-7 b(oltage)29 b(is)h(a)g(\035oating)515 4044 y(p)r(oin)n(t)d(n)n +(um)n(b)r(er.)515 4272 y Fb(3.10)112 b(cmdSetV)m(CCXV)-9 +b(oltage\(v)m(oltage\))515 4425 y Fd(Set)28 b(V)n(CCX)g(\(DUT)g(supply) g(v)n(oltage\))e(to)h(the)h(sp)r(eci\034ed)g(v)n(oltage.)35 -b(V)-7 b(oltage)27 b(is)h(a)f(\035oating)515 4173 y(p)r(oin)n(t)g(n)n -(um)n(b)r(er.)515 4405 y Fb(3.10)112 b(cmdLoadGNDLa)m(y)m(out\(la)m(y)m -(outID\))515 4558 y Fd(Load)33 b(a)i(ZIF-so)r(c)n(k)n(et)e(GND-la)n(y)n +b(V)-7 b(oltage)27 b(is)h(a)f(\035oating)515 4525 y(p)r(oin)n(t)g(n)n +(um)n(b)r(er.)515 4753 y Fb(3.11)112 b(cmdLoadGNDLa)m(y)m(out\(la)m(y)m +(outID\))515 4907 y Fd(Load)33 b(a)i(ZIF-so)r(c)n(k)n(et)e(GND-la)n(y)n (out.)57 b(Y)-7 b(ou)35 b(usually)f(don't)h(w)n(an)n(t)f(to)g(call)g -(this)h(directly)-7 b(.)515 4658 y(Use)27 b(an)h(autogenerated)d(la)n +(this)h(directly)-7 b(.)515 5006 y(Use)27 b(an)h(autogenerated)d(la)n (y)n(out)i(instead.)1926 5255 y(2)p eop end %%Page: 3 3 -TeXDict begin 3 2 bop 515 523 a Fb(3.11)112 b(cmdLoadVPPLa)m(y)m +TeXDict begin 3 2 bop 515 523 a Fb(3.12)112 b(cmdLoadVPPLa)m(y)m (out\(la)m(y)m(outID\))515 676 y Fd(Load)35 b(a)g(ZIF-so)r(c)n(k)n(et)f (VPP-la)n(y)n(out.)62 b(Y)-7 b(ou)36 b(usually)f(don't)h(w)n(an)n(t)f (to)h(call)f(this)h(directly)-7 b(.)515 776 y(Use)27 b(an)h(autogenerated)d(la)n(y)n(out)i(instead.)515 1008 -y Fb(3.12)112 b(cmdLoadV)m(CCXLa)m(y)m(out\(la)m(y)m(outID\))515 +y Fb(3.13)112 b(cmdLoadV)m(CCXLa)m(y)m(out\(la)m(y)m(outID\))515 1162 y Fd(Load)34 b(a)h(ZIF-so)r(c)n(k)n(et)f(V)n(CC-la)n(y)n(out.)59 b(Y)-7 b(ou)36 b(usually)f(don't)g(w)n(an)n(t)g(to)g(call)g(this)h (directly)-7 b(.)515 1261 y(Use)27 b(an)h(autogenerated)d(la)n(y)n(out) -i(instead.)515 1494 y Fb(3.13)112 b(cmdEnableZifPullups\(enable\))515 +i(instead.)515 1494 y Fb(3.14)112 b(cmdEnableZifPullups\(enable\))515 1647 y Fd(Enable)32 b(\(T)-7 b(rue\))33 b(or)f(disable)g(\(F)-7 b(alse\))32 b(the)h(pullups)g(for)f(all)g(signals)f(on)h(the)h(ZIF)f (so)r(c)n(k)n(et.)515 1746 y(Default)c(is)f(disabled.)515 -1979 y Fb(3.14)112 b(cmdFPGA)-12 b(W)j(rite\(address,)35 +1979 y Fb(3.15)112 b(cmdFPGA)-12 b(W)j(rite\(address,)35 b(b)m(yte\))515 2132 y Fd(W)-7 b(rites)30 b(a)h(b)n(yte)f(to)h(the)g (FPGA)g(using)g(\020address\021)k(for)30 b(address)g(latc)n(hing)g(and) g(\020b)n(yte\021)37 b(as)515 2232 y(pa)n(yload)26 b(data.)39 b(Note)28 b(that)h(address)e(0x10)f(is)i(fast-trac)n(k)n(ed)f(and)h (uses)g(one)f(b)n(yte)i(less)e(on)515 2331 y(the)h(USB)g(bus.)36 b(So)28 b(it)g(is)f(p)r(oten)n(tially)g(faster.)515 2564 -y Fb(3.15)112 b(cmdFPGARead\(address\))515 2717 y Fd(Reads)29 +y Fb(3.16)112 b(cmdFPGARead\(address\))515 2717 y Fd(Reads)29 b(a)h(b)n(yte)g(from)f(the)i(FPGA)g(and)f(puts)g(it)g(in)n(to)g(the)h (bu\033er)f(register.)42 b(\020address\021)35 b(is)515 2816 y(used)21 b(for)g(address)f(latc)n(hing)g(on)h(the)h(FPGA.)h(The)e @@ -3457,7 +3496,7 @@ b(getBuf-)515 3315 y(ferRegSize\(\))33 b(to)g(get)g(the)g(size)g(of)g b(that)i(ad-)515 3514 y(dress)38 b(0x10)g(is)i(fast-trac)n(k)n(ed)d (and)j(uses)f(one)g(b)n(yte)h(less)f(on)g(the)h(USB)g(bus.)73 b(So)39 b(it)h(is)515 3613 y(p)r(oten)n(tially)27 b(faster.)515 -3846 y Fb(3.16)112 b(cmdDela)m(y\(seconds\))515 3999 +3846 y Fb(3.17)112 b(cmdDela)m(y\(seconds\))515 3999 y Fd(Send)41 b(a)f(dela)n(y)f(command)h(to)g(the)h(programmer.)73 b(The)41 b(Programmer)d(will)j(p)r(erform)515 4099 y(the)35 b(dela)n(y)-7 b(.)58 b(A)35 b(v)-5 b(alue)35 b(up)g(to)g(0.5)f(seconds) @@ -3467,7 +3506,7 @@ r(ossible)f(w)n(ait)g(in)n(terv)-5 b(al)30 b(v)-5 b(alue.)45 b(Use)30 b(this)h(for)f(short)515 4298 y(\(microsecond)g(or)g(lo)n(w)g (millisecond\))h(dela)n(ys.)47 b(Note)31 b(that)g(this)g(do)r(es)g (_not_)f(\035ush)i(the)515 4398 y(command)27 b(queue.)515 -4630 y Fb(3.17)112 b(hostDela)m(y\(seconds\))515 4783 +4630 y Fb(3.18)112 b(hostDela)m(y\(seconds\))515 4783 y Fd(Sends)23 b(all)g(queued)g(commands)f(to)h(the)g(device)g(and)g(w)n (aits)f(for)h(\020seconds\021.)33 b(\020seconds\021)c(is)22 b(a)515 4883 y(\035oating)j(p)r(oin)n(t)h(n)n(um)n(b)r(er.)37 diff --git a/libtoprammer/chip_unitest.py b/libtoprammer/chip_unitest.py index bec8379..e21f824 100644 --- a/libtoprammer/chip_unitest.py +++ b/libtoprammer/chip_unitest.py @@ -141,7 +141,7 @@ class Chip_Unitest(Chip): return inputs def getOscFreq(self): - return 24000000 # Hz + return self.top.getOscillatorHz() def setOscDivider(self, div): self.top.cmdFPGAWrite(0x12, div & 0xFF) diff --git a/libtoprammer/toprammer_main.py b/libtoprammer/toprammer_main.py index e4e91e3..e0aaae3 100644 --- a/libtoprammer/toprammer_main.py +++ b/libtoprammer/toprammer_main.py @@ -271,7 +271,7 @@ class TOP: self.cmdFPGARead(0xFD) self.cmdFPGARead(0xFE) self.cmdFPGARead(0xFF) - data = self.cmdReadBufferReg() + data = self.cmdReadBufferReg(3) gotID = ord(data[0]) | (ord(data[1]) << 8) if gotID == 0xFEFD or gotID == 0xFFFF: gotID = 0 @@ -321,6 +321,7 @@ class TOP: self.printDebug("Reading signature from chip...") self.checkChip() sig = self.chip.readSignature() + self.flushCommands() self.printDebug("Done reading %d bytes." % len(sig)) return sig @@ -329,12 +330,14 @@ class TOP: self.printDebug("Erasing chip...") self.checkChip() self.chip.erase() + self.flushCommands() def testChip(self): """Run a unit-test on the chip.""" self.printDebug("Running chip unit-test...") self.checkChip() self.chip.test() + self.flushCommands() self.printInfo("Chip unit-test terminated successfully.") def readProgmem(self): @@ -342,6 +345,7 @@ class TOP: self.printDebug("Reading program memory from chip...") self.checkChip() image = self.chip.readProgmem() + self.flushCommands() self.printDebug("Done reading %d bytes." % len(image)) return image @@ -350,6 +354,7 @@ class TOP: self.printDebug("Writing %d bytes of program memory to chip..." % len(image)) self.checkChip() self.chip.writeProgmem(image) + self.flushCommands() self.printDebug("Done writing image.") def readEEPROM(self): @@ -357,6 +362,7 @@ class TOP: self.printDebug("Reading EEPROM from chip...") self.checkChip() image = self.chip.readEEPROM() + self.flushCommands() self.printDebug("Done reading %d bytes." % len(image)) return image @@ -365,6 +371,7 @@ class TOP: self.printDebug("Writing %d bytes of EEPROM to chip..." % len(image)) self.checkChip() self.chip.writeEEPROM(image) + self.flushCommands() self.printDebug("Done writing image.") def readFuse(self): @@ -372,6 +379,7 @@ class TOP: self.printDebug("Reading fuses from chip...") self.checkChip() image = self.chip.readFuse() + self.flushCommands() self.printDebug("Done reading %d bytes." % len(image)) return image @@ -380,6 +388,7 @@ class TOP: self.printDebug("Writing %d bytes of fuses to chip..." % len(image)) self.checkChip() self.chip.writeFuse(image) + self.flushCommands() self.printDebug("Done writing image.") def readLockbits(self): @@ -387,6 +396,7 @@ class TOP: self.printDebug("Reading lock-bits from chip...") self.checkChip() image = self.chip.readLockbits() + self.flushCommands() self.printDebug("Done reading %d bytes." % len(image)) return image @@ -395,6 +405,7 @@ class TOP: self.printDebug("Writing %d bytes of lock-bits to chip..." % len(image)) self.checkChip() self.chip.writeLockbits(image) + self.flushCommands() self.printDebug("Done writing image.") def readRAM(self): @@ -402,6 +413,7 @@ class TOP: self.printDebug("Reading RAM from chip...") self.checkChip() image = self.chip.readRAM() + self.flushCommands() self.printDebug("Done reading %d bytes." % len(image)) return image @@ -410,6 +422,7 @@ class TOP: self.printDebug("Writing %d bytes of RAM to the chip..." % len(image)) self.checkChip() self.chip.writeRAM(image) + self.flushCommands() self.printDebug("Done writing the image.") def __cmdDelay_4usec(self): @@ -440,6 +453,11 @@ class TOP: self.flushCommands() time.sleep(seconds) + def getOscillatorHz(self): + """Returns the FPGA oscillator frequency, in Hz. + The oscillator is connected to the FPGA clk pin.""" + return 24000000 + def getBufferRegSize(self): """Returns the size (in bytes) of the buffer register.""" return 64 @@ -457,32 +475,32 @@ class TOP: def cmdReadBufferReg8(self): """Read a 8bit value from the buffer register.""" - stat = self.cmdReadBufferReg() + stat = self.cmdReadBufferReg(1) stat = ord(stat[0]) return stat def cmdReadBufferReg16(self): """Read a 16bit value from the buffer register.""" - stat = self.cmdReadBufferReg() + stat = self.cmdReadBufferReg(2) stat = ord(stat[0]) | (ord(stat[1]) << 8) return stat def cmdReadBufferReg24(self): """Read a 24bit value from the buffer register.""" - stat = self.cmdReadBufferReg() + stat = self.cmdReadBufferReg(3) stat = ord(stat[0]) | (ord(stat[1]) << 8) | (ord(stat[2]) << 16) return stat def cmdReadBufferReg32(self): """Read a 32bit value from the buffer register.""" - stat = self.cmdReadBufferReg() + stat = self.cmdReadBufferReg(4) stat = ord(stat[0]) | (ord(stat[1]) << 8) | \ (ord(stat[2]) << 16) | (ord(stat[3]) << 24) return stat def cmdReadBufferReg48(self): """Read a 48bit value from the buffer register.""" - stat = self.cmdReadBufferReg() + stat = self.cmdReadBufferReg(6) stat = ord(stat[0]) | (ord(stat[1]) << 8) | \ (ord(stat[2]) << 16) | (ord(stat[3]) << 24) | \ (ord(stat[4]) << 32) | (ord(stat[5]) << 40) @@ -491,8 +509,8 @@ class TOP: def cmdRequestVersion(self): """Returns the device ID and versioning string.""" self.queueCommand("\x0E\x11\x00\x00") - data = self.cmdReadBufferReg() - return data[0:16].strip() + data = self.cmdReadBufferReg(16) + return data.strip() def cmdFPGAInitiateConfig(self): """Initiate a configuration sequence on the FPGA.""" -- cgit v1.2.3