RD53A DAQ


Memo & Log

Useful links

Preparation

Firmware

Firmwareのversionが古い場合,新しいversionをもってくる.

FirmwareをXpressk7にflashする.
  • (Ohio cardのそれぞれのPortに載っているパーツがAC or DCか確認する)
  • JTAGをXpressk7とPCのUSBポートに接続.
  • $ source /opt/Xilinx/Vivado/2019.02/setting64.sh
  • $ cd YARR-FW-20yymmdd/scripts
  • $ ./flash.sh or $ python flash.py
    • flash.shの場合は,該当するbit fileをstrageからinstallする.old versionやFNAL versionなどはない.
    • flash.pyの場合は,YARR-FW-20yymmdd下にあるbit fileから選ぶことができる.よく,syn/xpressk7下に置いたりする(?)
  • 基本的に以下のversionを選択する.
    • Xpressk7_325 (現在持っているXpressk7のversionが325というものらしい)
    • Ohio card
    • 160Mbps
    • 4x4 (data line数)(FNALのように1つtrigger用=DCだと3x4)
  • 問題なく焼き終えたらreboot.(焼くのにだいたい10分くらいかかる)
Check Communication with XpressK7

Softwareが古い場合,新しいversionのを持ってくる.

RD53にconfigを通す前に,Xpressk7とPCIe communicationできているか確認する.
  • $ cd YARR-20yymmdd
  • $ ./bin/specBenchmarkDma
Config File

scanをする際にcontroller configやconnectivity config, scan configを指定する必要がある.

connectivity config

  • Xpressk7 (Ohio card)のどのportを使い,どのchip config fileを使うかを指定.
  • "config": 使用するchip config file. 存在しない場合は自動的にdefaultのが作られる.
  • "tx": talk channel. (0,1,2,3)=port(A,B,C,D)
  • "rx": read channel. (0,1,2,3)=port(A,B,C,D)
  • "enable": 使用するか否か.0 or 1
  • "locked": chip config fileの書き換えの有効化.0 or 1
scan config chip config (主要なものだけ説明)
  • EnCoreCol [Diff1,2/Lin1,2/Sync]: Front Endごとにマスクするなら,65535->0, 1->0にする.
  • DiffLcc (En): Leakage Current Compensation bias (En: 1 is enable)
  • Sldo[Analog/Digital]Trim: analog or digital regulator output voltage trim.
    • RD53A とのcommunicationでinvalid dataを受け取る場合,この数値を変えると解決する場合がある.(22->19とか)
  • Name: scan結果のデータやhistogramの名称.
-- Katsuya Sato - 2020-08-19

Configure Chip and Run Scan, Tune

参照:https://gitlab.cern.ch/YARR/YARR/-/blob/master/docs/rd53a.md

基本的にscanをする際は,

$ ./bin/scanConsole -r configs/controller/specCfg.json -c configs/connectivity/CONNECTIVITY.json -s configs/scans/rd53a/SCAN.json [OPTION]

[OPTION]

  • -p: histogram plotting enable
  • -m 0: No change masks
  • -m 1: reset masks
  • (no add -m: add masks)
Digital / Analog Scan

$./bin/scanConsole -r configs/controller/specCfg.json -c configs/connectivity/example_rd53a_setup.json -s configs/scans/rd53a/std_digitalscan.json -p

$ ./bin/scanConsole -r configs/controller/specCfg.json -c configs/connectivity/example_rd53a_setup.json -s configs/scans/rd53a/std_analogscan.json -p

Threshold Scan

$ ./bin/scanConsole -r configs/controller/specCfg.json -c configs/connectivity/example_rd53a_setup.json -s configs/scans/rd53a/std_thresholdscan.json -p

Range

  • defaultでは,Vcal:50-300 i.e. 500e-3000eしか測れない.
  • scans/rd53a/std_thresholdscan.jsonの中の"parameter":"InjVcalDiff"のmax,minを変更すればよい.
  • inject charge [e]~Vcal*10
ちなみに,analog/digital scanでは100発injectしているが,threshold scanの場合は50発
ToT (Time over Threshold) Scan

$ ./bin/scanConsole -r configs/controller/specCfg.json -c configs/connectivity/example_rd53a_setup.json -s configs/scans/rd53a/std_thresholdscan.json -p -t [CHARGE] [Target ToT ]

ToT Scanをする際はinject charge=MIPが落とすcharge~10k[e]を入力する.(1um siliconに対しておよそ80electrons)

Tune

Tunigはscriptsが用意されている.(詳しくは中を見てほしい)これには引数が必要で,

$ ./scripts/tune-rd53a.sh [1st Target Threshold] [2nd Target Threshold] [Inject Charge] [Target ToT ] configs/controller/specCfg.json configs/connectivity/example_rd53a_setup.json

  • [1st Target Threshold]: Linear Front Endをtuningする際に使われる.final targer thresholdが1500eの場合は,[1st Target Threshold]=2000とか?
  • [2nd Targer Threshold]: final target threshold.
  • [Inject Charge]: 10000 (10k[e])
  • [Targer ToT ]: 7 or 8 [b.c]とか.(final thresholdと関係する)
  • controller configやconnectivity configの前に"-r"や"-c"は不要.
Sync F.E.やLinear F.E.使わない場合は,shell scriptの中身をcomment outすれば時間短縮になる.だいたい10分くらいかかる?
Cross-Talk Scan

$ ./bin/scanConsole -r configs/controller/specCfg.json -c configs/connectivity/example_rd53a_setup.json -s configs/scans/rd53a/std_crosstalk_scan.json -p

Inject Pattern

  • scan configの中の"maskSize"
  • readout pixel (center)に対して上下左右どのpixelにchargeをinject (max:40ke)するか指定する.
  • maskSize=(0,1,2,3,4,5,6,7,8,9,10,11)
Mask Stage
  • defaultだと全てのpixelを読んでくれるわけではない.analog scanのようにすべてのpixelを読み込むためには,
  • "loopAction": "Rd53aMaskLoop"の中の"max":1536->64に変更すればよい.
  • "loopAction": "Rd53aCoreColLoop"の中の"nSteps"は1でも問題なく動く.(analogscanは5で,これにするととても時間がかかる)
Source Scan

参照: SelfTriggerScan

参照: ExtTriggerScanFNAL

Scan後に.raw dataを作成させるには,scan configに"algorithm": "DataArchiver"の項を追加する必要がある.

(.raw dataを解析するのは,plotting/read_rawData or bin/analyseRawDataを使えばよい)

-- Katsuya Sato - 2020-08-19

#OLD# preparation

  • source /opt/Xilinx/Vivado/2016.4/settings64.shをして、vivadoでVivadoを起動
  • Open Hardware Manegerに入り、Open targetのAuto connectをクリック
  • xcf7k325t_1を右クリックし、Program Deviceをする
  • ~/work/FNALTestbeam2018/XpressK7_RD53A/YARR-FW/syn/xpressk7/bram_rd53a_quad_lbnl-325内のrd53a_quad_lbnl_passive_325_160Mbps_pixregro.bitを焼いてPCをreboot
  • src内で"./bin/test"を実行して正常に動くかを確認
vivado をsource した後にpython flash.py をするとbitファイルのリストが表示されるので、ここでファイルを指定しても焼くことができる。この場合はメモリにも書かれるので少し時間がかかる。焼いた後は同じくreboot必須。

./bin/test が問題なく動いたらRD53Aと接続、電源を投入して ./bin/rd53a_test を実行し、

[Data] : COL(12) ROW(1) PAR(1) TOT(15,11,15,15)

→ここでのCOL,ROWはcore column,core rowのことなので注意(core column/rowについてはmanualのPixel Addressingを参照)

のような結果が得られれば、config が通っている。(current dig:0.325A , ana:~0.460A)

※YARRのversionでinjectionしているpixelが変わっていることがあるのでversion up等された場合は必ずrd53a_testの中身を確認すること!

#OLD# How to configure chips and run scan

[digitalscan]

./primlist/scan53.sh digitalscan KEK53-〇

or

./bin/scanConsole -r configs/controller/specCfg.json -c configs/connectivity/example_rd53a_setup.json -s configs/scans/rd53a/std_digitalscan.json -p

現状KEK53-3においてdirect modeでVDDD=1.23V , VDDA=1.2Vだときれい

[analogscan]

./primlist/scan53.sh analogscan KEK53-〇

or

./bin/scanConsole -r configs/controller/specCfg.json -c configs/connectivity/example_rd53a_setup.json -s configs/scans/rd53a/std_analogscan.json -p

[thresholdscan]

./primlist/scan53.sh thresholdscan KEK53-〇 -f std(lin,diff)

or

./bin/scanConsole -r configs/controller/specCfg.json -c configs/connectivity/example_rd53a_setup.json -s configs/scans/rd53a/std_thresholdscan.json -p

stdだと全FEに対してscanされlinだとlinear FE、diffだとdifferential FEのみscanされる syncは未実装

[tune threshold]

./primlist/scan53.sh tune_globalthreshold KEK53-〇 -t {target threshold} -f std(lin,diff)

[ToT scan]

./primlist/scan53.sh totscan KEK53-〇 -t {injection charge}

-- Koji Nakamura - 2018-03-26

Comments


Topic attachments
I Attachment History Action Size Date WhoSorted ascending Comment
JPEGjpg DSC_0001.jpg r1 manage 952.9 K 2018-04-06 - 02:52 AtlasjSilicon  
JPEGjpg DSC_0002.jpg r1 manage 931.0 K 2018-04-06 - 02:52 AtlasjSilicon  
PDFpdf _RD53A_Manual_V3-24.pdf r1 manage 9949.5 K 2018-06-01 - 11:14 AtlasjSilicon  
Edit | Attach | Watch | Print version | History: r34 | r32 < r31 < r30 < r29 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r30 - 2020-08-19 - KatsuyaSato
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback