Hardware testing on APx Gen0 setup at UW - APxL1TAlgoDev/APx_Gen0_Algo GitHub Wiki
https://github.com/APxL1TAlgoDev/APx_Gen0_Algo/wiki/Access-to-test-stands
In order to configure Gen0 HW setup, upload input patterns, download output patterns, use the software tools hosted in APx_Gen0_SW repo.
a) log into krieger PC via login.hep.wisc.edu (in UW lab)
b) git clone https://github.com/APxL1TAlgoDev/APx_Gen0_SW
c) cd APx_Gen0_SW/pc_client/
d) make
e) ln -sf CTP7Map_UW.xml CTP7Map.xml
f) source env.sh
Gen0 HW setup at UW consists of 3 cards, 2 cards nominally acting as Layer-1 and 1 card acting as Layer-2 card.
Please see Dylan's talk (page 7) for more details.
As of Feb 5, 2019, APx Gen0 cards at UW are organized in this fashion:
| Logical function | CTP7 name | CardID |
|---|---|---|
| L1a | eagle65 | 0 |
| L1b | eagle54 | 1 |
| L2 | eagle50 | 2 |
Make sure to consult link mapping table for L1a/L1b -> L2 connectivity:
https://github.com/APxL1TAlgoDev/APx_Gen0_Algo/wiki/APx-Gen0-Demonstrator-Link-Mapping
Copy your bitfile onto a chosen CTP7 using scp (consult the table above):
scp <your_bitfile> uwguest@:/tmp
e.g. scp ctp7_test.bit uwguest@eagle65:/tmp (password: AP7visitor)
a) under "pc_client" directory, create "data" directory where test vectors are to be stored
b) copy your input test vector under data directory
c) configure the card (load V7)
./card_config <card_ID> <bitfile name without .bit extension>
e.g. to configure L1b,eagle54,cardID=1 with previously scp'ed bitfile (ctp7_test.bit):
./card_config 1 ctp_test;
Additionally, you need to configure the card in Layer-1 or Layer-2 mode by running one of the two applications as specified below:
./layer1_config <card_ID> (for L1a and L1b card (with card_ID = 0 or 1), to configure these cards in Layer-1 mode)
./layer2_config <card_ID> (for L2 (with card_ID = 2), to configure this card in Layer-2 mode)
Here is an example script that configures all 3 cards (with the same bitfile):
https://github.com/APxL1TAlgoDev/APx_Gen0_SW/blob/master/pc_client/ctp7_gen0_config.sh
In order to upload your previously prepared input test vector (that you copied to data directory), execute:
./upload_inputs <card_ID> <input_test_vector>
e.g. ./upload_input 2 inputs_layer2.txt
In order to download output test vector:
./download_outputs <card_ID> <output_test_vector>
e.g. ./download_outputs 2 outputs_layer2.txt
outputs_layer2.txt will get stored under data directory.