Manual calibration procedure
Snapshot of values obtained automatically vs manual
ASIC- (U1) SspMonGrp[0] snapshot when all lanes are locked (automatically). Manual values were not obtained for ASIC0 since they all lock.
To run the manual calibration procedure, you need to have detector at least configured once (Firmware/ASIC configuration). You may want to always run this command to set these values to default.
Firmware/ASIC configuration: Open the Rogue interface, and In the InitASIC list, type [4,1,1,1,1] and hit enter. This will not configure the Silabs PLL, and use the default configuration with clock of 168Mhz and configure all ASICs with default.
Image Added
At this point all ASICs should be generating images. Just enable the DataReceiver of each of the ASICs by setting the RxEnable to True, and you can test by hitting the Trigger execute button in root.Trigger. See below.
Set RxEnable to True
Image Added
Hit Trigger button.
Image Added
You should see some prints in the terminal for each of the 4 ASICs (dataReceivers).
Now you need to go to root.App.TestManualSERDESEyeTraining and open that tab. You will see three configuration parameters. The defaults will Tune for all ASICs. There is still a bug that causes a segmentation fault with setting ASIC to -1. so let's stick with 0 to 3 for now. Tap is the number of data points, and 512 may take a long time, so you can change that to 64. Set the ASIC that you wish to scan, and set the tap number (64 is reasonable), and Keep time per sweep as default (40).
Important note: This function generates some files in the <scripts> folder (namely all_errorsX.csv, delay_spaceX.csv, run_resultsX.csv, and delay_spaceX.csv where X is 0 to 3). If these files already exist, the software will crash. So you need to delete these files, then run the script.
Image Added
Once your settings are correct, hit the start button, and wait till Progress reaches 1.00 and Message says Done.
Upon a successful finish, this should generate an all_errorsX.csv file where X is 0-3 in the same folder where you ran the software (software/scripts). Navigate to that folder, and run the following script to see the error scan plots.
Code Block |
---|
language | bash |
---|
theme | RDark |
---|
title | Generate error scan plots |
---|
|
# run drawEyes.py script for ASIC3 and number of taps set to 64
(rogue_v6.1.3) dnajjar@rdsrv314 (addTriggerGen) $ python drawEyes.py 3 64 |
A window will open showing the error scans for ASIC 3 lanes
Image Added
How to interpret the error scan
The Y axes is error, and the X axis is the number of taps normalized to 1024 (10 bit delay register). If at any point the Y axes is 0, then you have a zero error point for that specific delay value (X).
Example: In the image above, Lanes 16, 22, and 23 seem dead.
AFter documenting, delete the file ((namely all_errorsX.csv, delay_spaceX.csv, run_resultsX.csv, and delay_spaceX.csv where X is 0 to 3)) using the following command:
>
Code Block |
---|
rm *.csv (in the /scripts folder)
|
When you are done with this function, run ">init ASIC" for clean up
Expand |
---|
title | SspMonGrp[0] (ASIC0) (automatic) |
---|
|
SspMonGrp[0]: enable: True LockedCnt[0]: 0x0 LockedCnt[1]: 0x4 LockedCnt[2]: 0x2 LockedCnt[3]: 0x2 LockedCnt[4]: 0x3 LockedCnt[5]: 0x4 LockedCnt[6]: 0x2 LockedCnt[7]: 0x2 LockedCnt[8]: 0x3 LockedCnt[9]: 0x4 LockedCnt[10]: 0x2 LockedCnt[11]: 0x3 LockedCnt[12]: 0x3 LockedCnt[13]: 0x3 LockedCnt[14]: 0x2 LockedCnt[15]: 0x2 LockedCnt[16]: 0x3 LockedCnt[17]: 0x4 LockedCnt[18]: 0x2 LockedCnt[19]: 0x3 LockedCnt[20]: 0x3 LockedCnt[21]: 0x4 LockedCnt[22]: 0x2 LockedCnt[23]: 0x3 BitSlipCnt[0]: 0x2c2d BitSlipCnt[1]: 0x2c3f BitSlipCnt[2]: 0x2c2a BitSlipCnt[3]: 0x2c27 BitSlipCnt[4]: 0x2c31 BitSlipCnt[5]: 0x2c2d BitSlipCnt[6]: 0x2c28 BitSlipCnt[7]: 0x2c2e BitSlipCnt[8]: 0x2c27 BitSlipCnt[9]: 0x2c3b BitSlipCnt[10]: 0x2c28 BitSlipCnt[11]: 0x2c2c BitSlipCnt[12]: 0x2c39 BitSlipCnt[13]: 0x2c3c BitSlipCnt[14]: 0x2c2c BitSlipCnt[15]: 0x2c2a BitSlipCnt[16]: 0x2c3b BitSlipCnt[17]: 0x2c2b BitSlipCnt[18]: 0x2c2a BitSlipCnt[19]: 0x2c26 BitSlipCnt[20]: 0x2c17 BitSlipCnt[21]: 0x2c27 BitSlipCnt[22]: 0x2c2a BitSlipCnt[23]: 0x2c2a ErrorDetCnt[0]: 0xffff ErrorDetCnt[1]: 0xffff ErrorDetCnt[2]: 0xffff ErrorDetCnt[3]: 0xffff ErrorDetCnt[4]: 0xffff ErrorDetCnt[5]: 0xffff ErrorDetCnt[6]: 0xffff ErrorDetCnt[7]: 0xffff ErrorDetCnt[8]: 0xffff ErrorDetCnt[9]: 0xffff ErrorDetCnt[10]: 0xffff ErrorDetCnt[11]: 0xffff ErrorDetCnt[12]: 0xffff ErrorDetCnt[13]: 0xffff ErrorDetCnt[14]: 0xffff ErrorDetCnt[15]: 0xffff ErrorDetCnt[16]: 0xffff ErrorDetCnt[17]: 0xffff ErrorDetCnt[18]: 0xffff ErrorDetCnt[19]: 0xffff ErrorDetCnt[20]: 0xffff ErrorDetCnt[21]: 0xffff ErrorDetCnt[22]: 0xffff ErrorDetCnt[23]: 0xffff EyeWidth[0]: 0xff EyeWidth[1]: 0xff EyeWidth[2]: 0xff EyeWidth[3]: 0xff EyeWidth[4]: 0xff EyeWidth[5]: 0xff EyeWidth[6]: 0xff EyeWidth[7]: 0xff EyeWidth[8]: 0xff EyeWidth[9]: 0xff EyeWidth[10]: 0xff EyeWidth[11]: 0xff EyeWidth[12]: 0xff EyeWidth[13]: 0xc0 EyeWidth[14]: 0xff EyeWidth[15]: 0xff EyeWidth[16]: 0xff EyeWidth[17]: 0xff EyeWidth[18]: 0xff EyeWidth[19]: 0xff EyeWidth[20]: 0xff EyeWidth[21]: 0xff EyeWidth[22]: 0xff EyeWidth[23]: 0xff Locked: 0xffffff UsrDlyCfg[0]: 0xdb UsrDlyCfg[1]: 0xdb UsrDlyCfg[2]: 0xdb UsrDlyCfg[3]: 0xdb UsrDlyCfg[4]: 0xdb UsrDlyCfg[5]: 0xdb UsrDlyCfg[6]: 0xdb UsrDlyCfg[7]: 0xdb UsrDlyCfg[8]: 0xdb UsrDlyCfg[9]: 0xdb UsrDlyCfg[10]: 0xdb UsrDlyCfg[11]: 0xdb UsrDlyCfg[12]: 0xdb UsrDlyCfg[13]: 0xdb UsrDlyCfg[14]: 0xdb UsrDlyCfg[15]: 0xdb UsrDlyCfg[16]: 0xdb UsrDlyCfg[17]: 0xdb UsrDlyCfg[18]: 0xdb UsrDlyCfg[19]: 0xdb UsrDlyCfg[20]: 0xdb UsrDlyCfg[21]: 0xdb UsrDlyCfg[22]: 0xdb UsrDlyCfg[23]: 0xdb DlyConfig[0]: 0x7f DlyConfig[1]: 0x17b DlyConfig[2]: 0xfc DlyConfig[3]: 0x7f DlyConfig[4]: 0x7f DlyConfig[5]: 0x178 DlyConfig[6]: 0x8c DlyConfig[7]: 0x11c DlyConfig[8]: 0x7f DlyConfig[9]: 0x168 DlyConfig[10]: 0xe8 DlyConfig[11]: 0x14f DlyConfig[12]: 0x7f DlyConfig[13]: 0x63 DlyConfig[14]: 0x94 DlyConfig[15]: 0x117 DlyConfig[16]: 0x7f DlyConfig[17]: 0xb9 DlyConfig[18]: 0x92 DlyConfig[19]: 0x111 DlyConfig[20]: 0x7f DlyConfig[21]: 0x113 DlyConfig[22]: 0x7f DlyConfig[23]: 0xc5 DATA_WIDTH_G: 16 NUM_LANE_G: 24 EnUsrDlyCfg: 0x0 MinEyeWidth: 0x50 LockingCntCfg: 0xffff BypFirstBerDet: 0x1 Polarity: 0x0 GearboxSlaveBitOrder: 0x0 GearboxMasterBitOrder: 0x0 MaskOffCodeErr: 0x0 MaskOffDispErr: 0x0 MaskOffOutOfSync: 0x0 IdleCode: 0xffffff LockOnIdleOnly: 0x0 RollOverEn: 0x0 |
Expand |
---|
title | SspMonGrp[1] ASIC1 manual |
---|
|
SspMonGrp[1]: enable: True LockedCnt[0]: 0x0 LockedCnt[1]: 0x0 LockedCnt[2]: 0x0 LockedCnt[3]: 0x0 LockedCnt[4]: 0x0 LockedCnt[5]: 0x0 LockedCnt[6]: 0x0 LockedCnt[7]: 0x24 LockedCnt[8]: 0x0 LockedCnt[9]: 0x0 LockedCnt[10]: 0x0 LockedCnt[11]: 0x0 LockedCnt[12]: 0x0 LockedCnt[13]: 0x0 LockedCnt[14]: 0x0 LockedCnt[15]: 0x0 LockedCnt[16]: 0x1 LockedCnt[17]: 0x0 LockedCnt[18]: 0x0 LockedCnt[19]: 0x1 LockedCnt[20]: 0x1 LockedCnt[21]: 0x0 LockedCnt[22]: 0x0 LockedCnt[23]: 0x0 BitSlipCnt[0]: 0xffff BitSlipCnt[1]: 0x0 BitSlipCnt[2]: 0x0 BitSlipCnt[3]: 0xffff BitSlipCnt[4]: 0x0 BitSlipCnt[5]: 0x0 BitSlipCnt[6]: 0x0 BitSlipCnt[7]: 0xaf0 BitSlipCnt[8]: 0x0 BitSlipCnt[9]: 0x0 BitSlipCnt[10]: 0x0 BitSlipCnt[11]: 0x0 BitSlipCnt[12]: 0x0 BitSlipCnt[13]: 0x0 BitSlipCnt[14]: 0x0 BitSlipCnt[15]: 0x0 BitSlipCnt[16]: 0xffff BitSlipCnt[17]: 0x0 BitSlipCnt[18]: 0x0 BitSlipCnt[19]: 0xffff BitSlipCnt[20]: 0xffff BitSlipCnt[21]: 0x0 BitSlipCnt[22]: 0x0 BitSlipCnt[23]: 0x0 ErrorDetCnt[0]: 0xffff ErrorDetCnt[1]: 0x0 ErrorDetCnt[2]: 0x0 ErrorDetCnt[3]: 0xffff ErrorDetCnt[4]: 0x0 ErrorDetCnt[5]: 0x0 ErrorDetCnt[6]: 0x0 ErrorDetCnt[7]: 0xffff ErrorDetCnt[8]: 0x0 ErrorDetCnt[9]: 0x0 ErrorDetCnt[10]: 0x0 ErrorDetCnt[11]: 0x0 ErrorDetCnt[12]: 0x0 ErrorDetCnt[13]: 0x0 ErrorDetCnt[14]: 0x0 ErrorDetCnt[15]: 0x0 ErrorDetCnt[16]: 0xffff ErrorDetCnt[17]: 0x0 ErrorDetCnt[18]: 0x0 ErrorDetCnt[19]: 0xffff ErrorDetCnt[20]: 0xffff ErrorDetCnt[21]: 0x0 ErrorDetCnt[22]: 0x0 ErrorDetCnt[23]: 0x0 EyeWidth[0]: 0x0 EyeWidth[1]: 0xff EyeWidth[2]: 0xff EyeWidth[3]: 0x0 EyeWidth[4]: 0xff EyeWidth[5]: 0xff EyeWidth[6]: 0xff EyeWidth[7]: 0xff EyeWidth[8]: 0xff EyeWidth[9]: 0xff EyeWidth[10]: 0xff EyeWidth[11]: 0xb7 EyeWidth[12]: 0xff EyeWidth[13]: 0xb3 EyeWidth[14]: 0xff EyeWidth[15]: 0xff EyeWidth[16]: 0xff EyeWidth[17]: 0xff EyeWidth[18]: 0xff EyeWidth[19]: 0xff EyeWidth[20]: 0xff EyeWidth[21]: 0xff EyeWidth[22]: 0xff EyeWidth[23]: 0xff Locked: 0xfffff6 UsrDlyCfg[0]: 0xff UsrDlyCfg[1]: 0x188 UsrDlyCfg[2]: 0xff UsrDlyCfg[3]: 0xff UsrDlyCfg[4]: 0xd0 UsrDlyCfg[5]: 0x186 UsrDlyCfg[6]: 0xd0 UsrDlyCfg[7]: 0x44 UsrDlyCfg[8]: 0x93 UsrDlyCfg[9]: 0xe UsrDlyCfg[10]: 0x102 UsrDlyCfg[11]: 0x59 UsrDlyCfg[12]: 0xf4 UsrDlyCfg[13]: 0x3b UsrDlyCfg[14]: 0xf1 UsrDlyCfg[15]: 0x125 UsrDlyCfg[16]: 0x59 UsrDlyCfg[17]: 0x15e UsrDlyCfg[18]: 0xd3 UsrDlyCfg[19]: 0x31 UsrDlyCfg[20]: 0xc7 UsrDlyCfg[21]: 0x189 UsrDlyCfg[22]: 0xcc UsrDlyCfg[23]: 0x13b DlyConfig[0]: 0xff DlyConfig[1]: 0x188 DlyConfig[2]: 0xff DlyConfig[3]: 0xff DlyConfig[4]: 0xd0 DlyConfig[5]: 0x186 DlyConfig[6]: 0xd0 DlyConfig[7]: 0x44 DlyConfig[8]: 0x93 DlyConfig[9]: 0xe DlyConfig[10]: 0x102 DlyConfig[11]: 0x59 DlyConfig[12]: 0xf4 DlyConfig[13]: 0x3b DlyConfig[14]: 0xf1 DlyConfig[15]: 0x125 DlyConfig[16]: 0x59 DlyConfig[17]: 0x15e DlyConfig[18]: 0xd3 DlyConfig[19]: 0x31 DlyConfig[20]: 0xc7 DlyConfig[21]: 0x189 DlyConfig[22]: 0xcc DlyConfig[23]: 0x13b DATA_WIDTH_G: 16 NUM_LANE_G: 24 EnUsrDlyCfg: 0x1 MinEyeWidth: 0x50 LockingCntCfg: 0xffff BypFirstBerDet: 0x1 Polarity: 0x0 GearboxSlaveBitOrder: 0x0 GearboxMasterBitOrder: 0x0 MaskOffCodeErr: 0x0 MaskOffDispErr: 0x0 MaskOffOutOfSync: 0x0 IdleCode: 0xfffff6 LockOnIdleOnly: 0x0 RollOverEn: 0x0 |
Expand |
---|
|
SspMonGrp[1]: enable: True LockedCnt[0]: 0x0 LockedCnt[1]: 0x1 LockedCnt[2]: 0x0 LockedCnt[3]: 0x0 LockedCnt[4]: 0x0 LockedCnt[5]: 0x1 LockedCnt[6]: 0x0 LockedCnt[7]: 0x48a LockedCnt[8]: 0x0 LockedCnt[9]: 0x0 LockedCnt[10]: 0x1 LockedCnt[11]: 0x0 LockedCnt[12]: 0x1 LockedCnt[13]: 0x0 LockedCnt[14]: 0x0 LockedCnt[15]: 0x1 LockedCnt[16]: 0x1 LockedCnt[17]: 0x0 LockedCnt[18]: 0x0 LockedCnt[19]: 0x1 LockedCnt[20]: 0x1 LockedCnt[21]: 0x1 LockedCnt[22]: 0x0 LockedCnt[23]: 0x1 BitSlipCnt[0]: 0xffff BitSlipCnt[1]: 0x0 BitSlipCnt[2]: 0x0 BitSlipCnt[3]: 0xffff BitSlipCnt[4]: 0x0 BitSlipCnt[5]: 0x0 BitSlipCnt[6]: 0x0 BitSlipCnt[7]: 0xffff BitSlipCnt[8]: 0x0 BitSlipCnt[9]: 0x0 BitSlipCnt[10]: 0x0 BitSlipCnt[11]: 0x0 BitSlipCnt[12]: 0x0 BitSlipCnt[13]: 0x0 BitSlipCnt[14]: 0x0 BitSlipCnt[15]: 0x0 BitSlipCnt[16]: 0xffff BitSlipCnt[17]: 0x0 BitSlipCnt[18]: 0x0 BitSlipCnt[19]: 0xffff BitSlipCnt[20]: 0xffff BitSlipCnt[21]: 0x0 BitSlipCnt[22]: 0x0 BitSlipCnt[23]: 0x0 ErrorDetCnt[0]: 0xffff ErrorDetCnt[1]: 0x172f ErrorDetCnt[2]: 0x0 ErrorDetCnt[3]: 0xffff ErrorDetCnt[4]: 0x0 ErrorDetCnt[5]: 0x16c5 ErrorDetCnt[6]: 0x0 ErrorDetCnt[7]: 0xffff ErrorDetCnt[8]: 0x0 ErrorDetCnt[9]: 0x0 ErrorDetCnt[10]: 0x3 ErrorDetCnt[11]: 0x0 ErrorDetCnt[12]: 0x27 ErrorDetCnt[13]: 0x0 ErrorDetCnt[14]: 0x0 ErrorDetCnt[15]: 0x3ad ErrorDetCnt[16]: 0xffff ErrorDetCnt[17]: 0x0 ErrorDetCnt[18]: 0x0 ErrorDetCnt[19]: 0xffff ErrorDetCnt[20]: 0xffff ErrorDetCnt[21]: 0x1741 ErrorDetCnt[22]: 0x0 ErrorDetCnt[23]: 0x97d EyeWidth[0]: 0x0 EyeWidth[1]: 0xff EyeWidth[2]: 0xff EyeWidth[3]: 0x0 EyeWidth[4]: 0xff EyeWidth[5]: 0xff EyeWidth[6]: 0xff EyeWidth[7]: 0xff EyeWidth[8]: 0xff EyeWidth[9]: 0xff EyeWidth[10]: 0xff EyeWidth[11]: 0xb7 EyeWidth[12]: 0xff EyeWidth[13]: 0xb3 EyeWidth[14]: 0xff EyeWidth[15]: 0xff EyeWidth[16]: 0xff EyeWidth[17]: 0xff EyeWidth[18]: 0xff EyeWidth[19]: 0xff EyeWidth[20]: 0xff EyeWidth[21]: 0xff EyeWidth[22]: 0xff EyeWidth[23]: 0xff Locked: 0xfffff6 UsrDlyCfg[0]: 0xff UsrDlyCfg[1]: 0x188 UsrDlyCfg[2]: 0xff UsrDlyCfg[3]: 0xff UsrDlyCfg[4]: 0xd0 UsrDlyCfg[5]: 0x186 UsrDlyCfg[6]: 0xd0 UsrDlyCfg[7]: 0x44 UsrDlyCfg[8]: 0x93 UsrDlyCfg[9]: 0xe UsrDlyCfg[10]: 0x102 UsrDlyCfg[11]: 0x59 UsrDlyCfg[12]: 0xf4 UsrDlyCfg[13]: 0x3b UsrDlyCfg[14]: 0xf1 UsrDlyCfg[15]: 0x125 UsrDlyCfg[16]: 0x59 UsrDlyCfg[17]: 0x15e UsrDlyCfg[18]: 0xd3 UsrDlyCfg[19]: 0x31 UsrDlyCfg[20]: 0xc7 UsrDlyCfg[21]: 0x189 UsrDlyCfg[22]: 0xcc UsrDlyCfg[23]: 0x13b DlyConfig[0]: 0x63 DlyConfig[1]: 0x17d DlyConfig[2]: 0x120 DlyConfig[3]: 0x59 DlyConfig[4]: 0x2 DlyConfig[5]: 0x171 DlyConfig[6]: 0x2 DlyConfig[7]: 0xa9 DlyConfig[8]: 0x1 DlyConfig[9]: 0x2 DlyConfig[10]: 0x84 DlyConfig[11]: 0x2 DlyConfig[12]: 0x8e DlyConfig[13]: 0x2 DlyConfig[14]: 0x2e DlyConfig[15]: 0xb3 DlyConfig[16]: 0x73 DlyConfig[17]: 0xc8 DlyConfig[18]: 0x1 DlyConfig[19]: 0x2 DlyConfig[20]: 0x1 DlyConfig[21]: 0x16b DlyConfig[22]: 0x1 DlyConfig[23]: 0xdb DATA_WIDTH_G: 16 NUM_LANE_G: 24 EnUsrDlyCfg: 0x0 MinEyeWidth: 0x50 LockingCntCfg: 0xffff BypFirstBerDet: 0x1 Polarity: 0x0 GearboxSlaveBitOrder: 0x0 GearboxMasterBitOrder: 0x0 MaskOffCodeErr: 0x0 MaskOffDispErr: 0x0 MaskOffOutOfSync: 0x0 IdleCode: 0xfffff6 LockOnIdleOnly: 0x0 RollOverEn: 0x0 |
Expand |
---|
|
SspMonGrp[2]: enable: True LockedCnt[0]: 0x0 LockedCnt[1]: 0x0 LockedCnt[2]: 0x1 LockedCnt[3]: 0x0 LockedCnt[4]: 0x0 LockedCnt[5]: 0x0 LockedCnt[6]: 0x21 LockedCnt[7]: 0x0 LockedCnt[8]: 0x0 LockedCnt[9]: 0x0 LockedCnt[10]: 0x0 LockedCnt[11]: 0x0 LockedCnt[12]: 0x0 LockedCnt[13]: 0x0 LockedCnt[14]: 0x1 LockedCnt[15]: 0x0 LockedCnt[16]: 0x0 LockedCnt[17]: 0x0 LockedCnt[18]: 0x27 LockedCnt[19]: 0x0 LockedCnt[20]: 0x0 LockedCnt[21]: 0x0 LockedCnt[22]: 0x0 LockedCnt[23]: 0x0 BitSlipCnt[0]: 0x0 BitSlipCnt[1]: 0x0 BitSlipCnt[2]: 0xffff BitSlipCnt[3]: 0x0 BitSlipCnt[4]: 0x0 BitSlipCnt[5]: 0x0 BitSlipCnt[6]: 0xa50 BitSlipCnt[7]: 0x0 BitSlipCnt[8]: 0x0 BitSlipCnt[9]: 0x0 BitSlipCnt[10]: 0x0 BitSlipCnt[11]: 0x0 BitSlipCnt[12]: 0x0 BitSlipCnt[13]: 0x0 BitSlipCnt[14]: 0xffff BitSlipCnt[15]: 0x0 BitSlipCnt[16]: 0xffff BitSlipCnt[17]: 0x0 BitSlipCnt[18]: 0xc30 BitSlipCnt[19]: 0x0 BitSlipCnt[20]: 0x0 BitSlipCnt[21]: 0x0 BitSlipCnt[22]: 0xffff BitSlipCnt[23]: 0xffff ErrorDetCnt[0]: 0x0 ErrorDetCnt[1]: 0x0 ErrorDetCnt[2]: 0xffff ErrorDetCnt[3]: 0x0 ErrorDetCnt[4]: 0x0 ErrorDetCnt[5]: 0x0 ErrorDetCnt[6]: 0xffff ErrorDetCnt[7]: 0x0 ErrorDetCnt[8]: 0x0 ErrorDetCnt[9]: 0x0 ErrorDetCnt[10]: 0x0 ErrorDetCnt[11]: 0x0 ErrorDetCnt[12]: 0x0 ErrorDetCnt[13]: 0x0 ErrorDetCnt[14]: 0xffff ErrorDetCnt[15]: 0x0 ErrorDetCnt[16]: 0xffff ErrorDetCnt[17]: 0x0 ErrorDetCnt[18]: 0xffff ErrorDetCnt[19]: 0x0 ErrorDetCnt[20]: 0x0 ErrorDetCnt[21]: 0x0 ErrorDetCnt[22]: 0xffff ErrorDetCnt[23]: 0xffff EyeWidth[0]: 0xff EyeWidth[1]: 0xff EyeWidth[2]: 0x69 EyeWidth[3]: 0xff EyeWidth[4]: 0xff EyeWidth[5]: 0xff EyeWidth[6]: 0xff EyeWidth[7]: 0xff EyeWidth[8]: 0xff EyeWidth[9]: 0xff EyeWidth[10]: 0x6c EyeWidth[11]: 0xff EyeWidth[12]: 0x79 EyeWidth[13]: 0xff EyeWidth[14]: 0xff EyeWidth[15]: 0xff EyeWidth[16]: 0x0 EyeWidth[17]: 0xff EyeWidth[18]: 0xff EyeWidth[19]: 0xff EyeWidth[20]: 0xff EyeWidth[21]: 0xff EyeWidth[22]: 0x0 EyeWidth[23]: 0x0 Locked: 0x3ebfff UsrDlyCfg[0]: 0x19b UsrDlyCfg[1]: 0xd1 UsrDlyCfg[2]: 0x3c UsrDlyCfg[3]: 0xff UsrDlyCfg[4]: 0x8 UsrDlyCfg[5]: 0xae UsrDlyCfg[6]: 0x6d UsrDlyCfg[7]: 0xa8 UsrDlyCfg[8]: 0x199 UsrDlyCfg[9]: 0xc7 UsrDlyCfg[10]: 0x38 UsrDlyCfg[11]: 0xfb UsrDlyCfg[12]: 0xa UsrDlyCfg[13]: 0xf0 UsrDlyCfg[14]: 0x7 UsrDlyCfg[15]: 0x7c UsrDlyCfg[16]: 0xff UsrDlyCfg[17]: 0x4b UsrDlyCfg[18]: 0x88 UsrDlyCfg[19]: 0xb9 UsrDlyCfg[20]: 0x1a8 UsrDlyCfg[21]: 0x76 UsrDlyCfg[22]: 0xff UsrDlyCfg[23]: 0xff DlyConfig[0]: 0x19b DlyConfig[1]: 0xd1 DlyConfig[2]: 0x3c DlyConfig[3]: 0xff DlyConfig[4]: 0x8 DlyConfig[5]: 0xae DlyConfig[6]: 0x6d DlyConfig[7]: 0xa8 DlyConfig[8]: 0x199 DlyConfig[9]: 0xc7 DlyConfig[10]: 0x38 DlyConfig[11]: 0xfb DlyConfig[12]: 0xa DlyConfig[13]: 0xf0 DlyConfig[14]: 0x7 DlyConfig[15]: 0x7c DlyConfig[16]: 0xff DlyConfig[17]: 0x4b DlyConfig[18]: 0x88 DlyConfig[19]: 0xb9 DlyConfig[20]: 0x1a8 DlyConfig[21]: 0x76 DlyConfig[22]: 0xff DlyConfig[23]: 0xff DATA_WIDTH_G: 16 NUM_LANE_G: 24 EnUsrDlyCfg: 0x1 MinEyeWidth: 0x50 LockingCntCfg: 0xffff BypFirstBerDet: 0x1 Polarity: 0x0 GearboxSlaveBitOrder: 0x0 GearboxMasterBitOrder: 0x0 MaskOffCodeErr: 0x0 MaskOffDispErr: 0x0 MaskOffOutOfSync: 0x0 IdleCode: 0x3ebfff LockOnIdleOnly: 0x0 RollOverEn: 0x0 |
Expand |
---|
|
SspMonGrp[2 |
Expand |
---|
title | SspMonGrp[0] (ASIC0) (automatic) |
---|
|
SspMonGrp[0]: enable: True LockedCnt[0]: 0x0 LockedCnt[1]: 0x40x0 LockedCnt[2]: 0x20x1 LockedCnt[3]: 0x20x0 LockedCnt[4]: 0x30x0 LockedCnt[5]: 0x40x0 LockedCnt[6]: 0x20x5e LockedCnt[7]: 0x20x0 LockedCnt[8]: 0x30xc LockedCnt[9]: 0x40x0 LockedCnt[10]: 0x20x0 LockedCnt[11]: 0x30x0 LockedCnt[12]: 0x30x0 LockedCnt[13]: 0x30x0 LockedCnt[14]: 0x20x4 LockedCnt[15]: 0x20x0 LockedCnt[16]: 0x30x0 LockedCnt[17]: 0x40x0 LockedCnt[18]: 0x20x73 LockedCnt[19]: 0x30x0 LockedCnt[20]: 0x30x1 LockedCnt[21]: 0x40x0 LockedCnt[22]: 0x20x0 LockedCnt[23]: 0x30x0 BitSlipCnt[0]: 0x2c2d0xbe BitSlipCnt[1]: 0x2c3f0x0 BitSlipCnt[2]: 0x2c2a0xffff BitSlipCnt[3]: 0x2c270x0 BitSlipCnt[4]: 0x2c310x0 BitSlipCnt[5]: 0x2c2d0x0 BitSlipCnt[6]: 0x2c280x1ce8 BitSlipCnt[7]: 0x2c2e0x0 BitSlipCnt[8]: 0x2c270xdc BitSlipCnt[9]: 0x2c3b0x0 BitSlipCnt[10]: 0x2c280x0 BitSlipCnt[11]: 0x2c2c0x0 BitSlipCnt[12]: 0x2c390x0 BitSlipCnt[13]: 0x2c3c0x0 BitSlipCnt[14]: 0x2c2c0xffff BitSlipCnt[15]: 0x2c2a0x0 BitSlipCnt[16]: 0x2c3b0xffff BitSlipCnt[17]: 0x2c2b0x0 BitSlipCnt[18]: 0x2c2a0x23a0 BitSlipCnt[19]: 0x2c260x0 BitSlipCnt[20]: 0x2c170x1ae BitSlipCnt[21]: 0x2c270x0 BitSlipCnt[22]: 0x2c2a0xffff BitSlipCnt[23]: 0x2c2a0xffff ErrorDetCnt[0]: 0xffff ErrorDetCnt[1]: 0xffff0x0 ErrorDetCnt[2]: 0xffff ErrorDetCnt[3]: 0xffff0x0 ErrorDetCnt[4]: 0xffff0x0 ErrorDetCnt[5]: 0xffff0x0 ErrorDetCnt[6]: 0xffff ErrorDetCnt[7]: 0xffff0x0 ErrorDetCnt[8]: 0xffff ErrorDetCnt[9]: 0xffff0x0 ErrorDetCnt[10]: 0xffff0x0 ErrorDetCnt[11]: 0xffff0x0 ErrorDetCnt[12]: 0xffff0x0 ErrorDetCnt[13]: 0xffff0x0 ErrorDetCnt[14]: 0xffff ErrorDetCnt[15]: 0xffff0x0 ErrorDetCnt[16]: 0xffff ErrorDetCnt[17]: 0xffff0x0 ErrorDetCnt[18]: 0xffff ErrorDetCnt[19]: 0xffff0x0 ErrorDetCnt[20]: 0xffff ErrorDetCnt[21]: 0xffff0x0 ErrorDetCnt[22]: 0xffff ErrorDetCnt[23]: 0xffff EyeWidth[0]: 0xff EyeWidth[1]: 0xff EyeWidth[2]: 0xff0x69 EyeWidth[3]: 0xff EyeWidth[4]: 0xff EyeWidth[5]: 0xff EyeWidth[6]: 0xff EyeWidth[7]: 0xff EyeWidth[8]: 0xff EyeWidth[9]: 0xff EyeWidth[10]: 0xff0x6c EyeWidth[11]: 0xff EyeWidth[12]: 0xff0x79 EyeWidth[13]: 0xc00xff EyeWidth[14]: 0xff EyeWidth[15]: 0xff EyeWidth[16]: 0xff0x0 EyeWidth[17]: 0xff EyeWidth[18]: 0xff EyeWidth[19]: 0xff EyeWidth[20]: 0xff0x91 EyeWidth[21]: 0xff EyeWidth[22]: 0xff0x0 EyeWidth[23]: 0xff0x0 Locked: 0xffffff0x2efffe UsrDlyCfg[0]: 0xdb0x19b UsrDlyCfg[1]: 0xdb0xd1 UsrDlyCfg[2]: 0xdb0x3c UsrDlyCfg[3]: 0xdb0xff UsrDlyCfg[4]: 0xdb0x8 UsrDlyCfg[5]: 0xdb0xae UsrDlyCfg[6]: 0xdb0x6d UsrDlyCfg[7]: 0xdb0xa8 UsrDlyCfg[8]: 0xdb0x199 UsrDlyCfg[9]: 0xdb0xc7 UsrDlyCfg[10]: 0xdb0x38 UsrDlyCfg[11]: 0xdb0xfb UsrDlyCfg[12]: 0xdb0xa UsrDlyCfg[13]: 0xdb0xf0 UsrDlyCfg[14]: 0xdb0x7 UsrDlyCfg[15]: 0xdb0x7c UsrDlyCfg[16]: 0xdb0xff UsrDlyCfg[17]: 0xdb0x4b UsrDlyCfg[18]: 0xdb0x88 UsrDlyCfg[19]: 0xdb0xb9 UsrDlyCfg[20]: 0xdb0x1a8 UsrDlyCfg[21]: 0xdb0x76 UsrDlyCfg[22]: 0xdb0xff UsrDlyCfg[23]: 0xdb0xff DlyConfig[0]: 0x7f0xdb DlyConfig[1]: 0x17b0x1 DlyConfig[2]: 0xfc0x1 DlyConfig[3]: 0x7f DlyConfig[4]: 0x7f0x2 DlyConfig[5]: 0x1780x2 DlyConfig[6]: 0x8c0xa6 DlyConfig[7]: 0x11c0x2 DlyConfig[8]: 0x7f0x123 DlyConfig[9]: 0x1680x2 DlyConfig[10]: 0xe80x2 DlyConfig[11]: 0x14f0x10 DlyConfig[12]: 0x7f0x1 DlyConfig[13]: 0x630xb5 DlyConfig[14]: 0x940x2 DlyConfig[15]: 0x1170x2 DlyConfig[16]: 0x7f0x20 DlyConfig[17]: 0xb90x2 DlyConfig[18]: 0x920xc4 DlyConfig[19]: 0x1110x2 DlyConfig[20]: 0x7f0xd8 DlyConfig[21]: 0x1130x2 DlyConfig[22]: 0x7f0x15 DlyConfig[23]: 0xc50x3b DATA_WIDTH_G: 16 NUM_LANE_G: 24 EnUsrDlyCfg: 0x0 MinEyeWidth: 0x50 LockingCntCfg: 0xffff BypFirstBerDet: 0x1 Polarity: 0x0 GearboxSlaveBitOrder: 0x0 GearboxMasterBitOrder: 0x0 MaskOffCodeErr: 0x0 MaskOffDispErr: 0x0 MaskOffOutOfSync: 0x0 IdleCode: 0xffffff0x2efffe LockOnIdleOnly: 0x0 RollOverEn: 0x0 |
Expand |
---|
title | SspMonGrp[1] ASIC1 manualASIC3 Manual |
---|
|
SspMonGrp[13]: enable: True LockedCnt[0]: 0x0 LockedCnt[1]: 0x0 LockedCnt[2]: 0x0 LockedCnt[3]: 0x0 LockedCnt[4]: 0x0 LockedCnt[5]: 0x0 LockedCnt[6]: 0x0 LockedCnt[7]: 0x240x0 LockedCnt[8]: 0x0 LockedCnt[9]: 0x0 LockedCnt[10]: 0x0 LockedCnt[11]: 0x0 LockedCnt[12]: 0x0 LockedCnt[13]: 0x0 LockedCnt[14]: 0x0 LockedCnt[15]: 0x0 LockedCnt[16]: 0x10x0 LockedCnt[17]: 0x0 LockedCnt[18]: 0x0 LockedCnt[19]: 0x10x0 LockedCnt[20]: 0x10x0 LockedCnt[21]: 0x0 LockedCnt[22]: 0x0 LockedCnt[23]: 0x0 BitSlipCnt[0]: 0xffff0x0 BitSlipCnt[1]: 0x0 BitSlipCnt[2]: 0x00xffff BitSlipCnt[3]: 0xffff0x0 BitSlipCnt[4]: 0x0 BitSlipCnt[5]: 0x0 BitSlipCnt[6]: 0x0 BitSlipCnt[7]: 0xaf00xffff BitSlipCnt[8]: 0x0 BitSlipCnt[9]: 0x0 BitSlipCnt[10]: 0x0 BitSlipCnt[11]: 0x00xffff BitSlipCnt[12]: 0x0 BitSlipCnt[13]: 0x0 BitSlipCnt[14]: 0x0 BitSlipCnt[15]: 0x00xffff BitSlipCnt[16]: 0xffff0x0 BitSlipCnt[17]: 0x0 BitSlipCnt[18]: 0x0 BitSlipCnt[19]: 0xffff0x0 BitSlipCnt[20]: 0xffff0x0 BitSlipCnt[21]: 0x0 BitSlipCnt[22]: 0x0 BitSlipCnt[23]: 0x00xffff ErrorDetCnt[0]: 0xffff0x0 ErrorDetCnt[1]: 0x0 ErrorDetCnt[2]: 0x00xffff ErrorDetCnt[3]: 0xffff0x0 ErrorDetCnt[4]: 0x0 ErrorDetCnt[5]: 0x0 ErrorDetCnt[6]: 0x0 ErrorDetCnt[7]: 0xffff ErrorDetCnt[8]: 0x0 ErrorDetCnt[9]: 0x0 ErrorDetCnt[10]: 0x0 ErrorDetCnt[11]: 0x00xffff ErrorDetCnt[12]: 0x0 ErrorDetCnt[13]: 0x0 ErrorDetCnt[14]: 0x0 ErrorDetCnt[15]: 0x00xffff ErrorDetCnt[16]: 0xffff0x0 ErrorDetCnt[17]: 0x0 ErrorDetCnt[18]: 0x0 ErrorDetCnt[19]: 0xffff0x0 ErrorDetCnt[20]: 0xffff0x0 ErrorDetCnt[21]: 0x0 ErrorDetCnt[22]: 0x0 ErrorDetCnt[23]: 0x00xffff EyeWidth[0]: 0x00xff EyeWidth[1]: 0xff EyeWidth[2]: 0xff EyeWidth[3]: 0x00xff EyeWidth[4]: 0xff EyeWidth[5]: 0xff EyeWidth[6]: 0xff EyeWidth[7]: 0xff EyeWidth[8]: 0xff EyeWidth[9]: 0xff EyeWidth[10]: 0xff EyeWidth[11]: 0xb70xff EyeWidth[12]: 0xff EyeWidth[13]: 0xb30xff EyeWidth[14]: 0xff EyeWidth[15]: 0xff EyeWidth[16]: 0xff EyeWidth[17]: 0xff EyeWidth[18]: 0xff EyeWidth[19]: 0xff EyeWidth[20]: 0xff EyeWidth[21]: 0xff EyeWidth[22]: 0xff EyeWidth[23]: 0xff Locked: 0xfffff60x7f777b UsrDlyCfg[0]: 0xff0x172 UsrDlyCfg[1]: 0x1880x9e UsrDlyCfg[2]: 0xff0x22 UsrDlyCfg[3]: 0xff UsrDlyCfg[4]: 0xd00x143 UsrDlyCfg[5]: 0x1860xa6 UsrDlyCfg[6]: 0xd00x12a UsrDlyCfg[7]: 0x440x82 UsrDlyCfg[8]: 0x930x173 UsrDlyCfg[9]: 0xe0xc7 UsrDlyCfg[10]: 0x1020x2d UsrDlyCfg[11]: 0x590xe9 UsrDlyCfg[12]: 0xf40x20 UsrDlyCfg[13]: 0x3b0xff UsrDlyCfg[14]: 0xf10xb8 UsrDlyCfg[15]: 0x1250x97 UsrDlyCfg[16]: 0x590x151 UsrDlyCfg[17]: 0x15e0x68 UsrDlyCfg[18]: 0xd30x14b UsrDlyCfg[19]: 0x310xd0 UsrDlyCfg[20]: 0xc70xef UsrDlyCfg[21]: 0x1890x97 UsrDlyCfg[22]: 0xcc0x6a UsrDlyCfg[23]: 0x13b0xa4 DlyConfig[0]: 0xff0x172 DlyConfig[1]: 0x1880x9e DlyConfig[2]: 0xff0x22 DlyConfig[3]: 0xff DlyConfig[4]: 0xd00x143 DlyConfig[5]: 0x1860xa6 DlyConfig[6]: 0xd00x12a DlyConfig[7]: 0x440x82 DlyConfig[8]: 0x930x173 DlyConfig[9]: 0xe0xc7 DlyConfig[10]: 0x1020x2d DlyConfig[11]: 0x590xe9 DlyConfig[12]: 0xf40x20 DlyConfig[13]: 0x3b0xff DlyConfig[14]: 0xf10xb8 DlyConfig[15]: 0x1250x97 DlyConfig[16]: 0x590x151 DlyConfig[17]: 0x15e0x68 DlyConfig[18]: 0xd30x14b DlyConfig[19]: 0x310xd0 DlyConfig[20]: 0xc70xef DlyConfig[21]: 0x1890x97 DlyConfig[22]: 0xcc0x6a DlyConfig[23]: 0x13b0xa4 DATA_WIDTH_G: 16 NUM_LANE_G: 24 EnUsrDlyCfg: 0x1 MinEyeWidth: 0x50 LockingCntCfg: 0xffff BypFirstBerDet: 0x1 Polarity: 0x0 GearboxSlaveBitOrder: 0x0 GearboxMasterBitOrder: 0x0 MaskOffCodeErr: 0x0 MaskOffDispErr: 0x0 MaskOffOutOfSync: 0x0 IdleCode: 0xfffff60x7f777b LockOnIdleOnly: 0x0 RollOverEn: 0x0 |
Expand |
---|
|
Expand |
---|
|
|
SspMonGrp[23]: enable: True LockedCnt[0]: 0x0 LockedCnt[1]: 0x0 LockedCnt[2]: 0x1 LockedCnt[3]: 0x0 LockedCnt[4]: 0x00x1 LockedCnt[5]: 0x0 LockedCnt[6]: 0x210x1 LockedCnt[7]: 0x00x1 LockedCnt[8]: 0x00x1 LockedCnt[9]: 0x0 LockedCnt[10]: 0x0 LockedCnt[11]: 0x00x1 LockedCnt[12]: 0x0 LockedCnt[13]: 0x0 LockedCnt[14]: 0x1 LockedCnt[15]: 0x00x1 LockedCnt[16]: 0x00x1 LockedCnt[17]: 0x0 LockedCnt[18]: 0x270x1 LockedCnt[19]: 0x0 LockedCnt[20]: 0x00x1 LockedCnt[21]: 0x0 LockedCnt[22]: 0x00x1 LockedCnt[23]: 0x00x1 BitSlipCnt[0]: 0x0 BitSlipCnt[1]: 0x0 BitSlipCnt[2]: 0xffff BitSlipCnt[3]: 0x0 BitSlipCnt[4]: 0x0 BitSlipCnt[5]: 0x0 BitSlipCnt[6]: 0xa500x0 BitSlipCnt[7]: 0x00xffff BitSlipCnt[8]: 0x0 BitSlipCnt[9]: 0x0 BitSlipCnt[10]: 0x0 BitSlipCnt[11]: 0x00xffff BitSlipCnt[12]: 0x0 BitSlipCnt[13]: 0x0 BitSlipCnt[14]: 0xffff0x0 BitSlipCnt[15]: 0x00xffff BitSlipCnt[16]: 0xffff0x0 BitSlipCnt[17]: 0x0 BitSlipCnt[18]: 0xc300x0 BitSlipCnt[19]: 0x0 BitSlipCnt[20]: 0x0 BitSlipCnt[21]: 0x0 BitSlipCnt[22]: 0xffff0x0 BitSlipCnt[23]: 0xffff ErrorDetCnt[0]: 0x0 ErrorDetCnt[1]: 0x0 ErrorDetCnt[2]: 0xffff ErrorDetCnt[3]: 0x0 ErrorDetCnt[4]: 0x00x1d42 ErrorDetCnt[5]: 0x0 ErrorDetCnt[6]: 0xffff0x2a9 ErrorDetCnt[7]: 0x00xffff ErrorDetCnt[8]: 0x00xa31 ErrorDetCnt[9]: 0x0 ErrorDetCnt[10]: 0x0 ErrorDetCnt[11]: 0x00xffff ErrorDetCnt[12]: 0x0 ErrorDetCnt[13]: 0x0 ErrorDetCnt[14]: 0xffff0x11d4 ErrorDetCnt[15]: 0x00xffff ErrorDetCnt[16]: 0xffff0xa ErrorDetCnt[17]: 0x0 ErrorDetCnt[18]: 0xffff0x99b ErrorDetCnt[19]: 0x0 ErrorDetCnt[20]: 0x00xcf5 ErrorDetCnt[21]: 0x0 ErrorDetCnt[22]: 0xffff0x3ec ErrorDetCnt[23]: 0xffff EyeWidth[0]: 0xff EyeWidth[1]: 0xff EyeWidth[2]: 0x690x6c EyeWidth[3]: 0xff EyeWidth[4]: 0xff EyeWidth[5]: 0xff EyeWidth[6]: 0xff EyeWidth[7]: 0xff EyeWidth[8]: 0xff EyeWidth[9]: 0xff EyeWidth[10]: 0x6c0xff EyeWidth[11]: 0xff EyeWidth[12]: 0x790xff EyeWidth[13]: 0xff EyeWidth[14]: 0xff EyeWidth[15]: 0xff EyeWidth[16]: 0x00xff EyeWidth[17]: 0xff EyeWidth[18]: 0xff EyeWidth[19]: 0xff EyeWidth[20]: 0xff EyeWidth[21]: 0xff EyeWidth[22]: 0x00xff EyeWidth[23]: 0x00xff Locked: 0x3ebfff0xffffff UsrDlyCfg[0]: 0x19b0x172 UsrDlyCfg[1]: 0xd10x9e UsrDlyCfg[2]: 0x3c0x22 UsrDlyCfg[3]: 0xff UsrDlyCfg[4]: 0x80x143 UsrDlyCfg[5]: 0xae0xa6 UsrDlyCfg[6]: 0x6d0x12a UsrDlyCfg[7]: 0xa80x82 UsrDlyCfg[8]: 0x1990x173 UsrDlyCfg[9]: 0xc7 UsrDlyCfg[10]: 0x380x2d UsrDlyCfg[11]: 0xfb0xe9 UsrDlyCfg[12]: 0xa0x20 UsrDlyCfg[13]: 0xf00xff UsrDlyCfg[14]: 0x70xb8 UsrDlyCfg[15]: 0x7c0x97 UsrDlyCfg[16]: 0xff0x151 UsrDlyCfg[17]: 0x4b0x68 UsrDlyCfg[18]: 0x880x14b UsrDlyCfg[19]: 0xb90xd0 UsrDlyCfg[20]: 0x1a80xef UsrDlyCfg[21]: 0x760x97 UsrDlyCfg[22]: 0xff0x6a UsrDlyCfg[23]: 0xff0xa4 DlyConfig[0]: 0x19b0x76 DlyConfig[1]: 0xd10x1 DlyConfig[2]: 0x3c0x3e DlyConfig[3]: 0xff0x107 DlyConfig[4]: 0x80x152 DlyConfig[5]: 0xae0x2 DlyConfig[6]: 0x6d0xab DlyConfig[7]: 0xa80x7f DlyConfig[8]: 0x1990xee DlyConfig[9]: 0xc70x2 DlyConfig[10]: 0x380x2 DlyConfig[11]: 0xfb0x7f DlyConfig[12]: 0xa0x1 DlyConfig[13]: 0xf00x7f DlyConfig[14]: 0x70x109 DlyConfig[15]: 0x7c0x7f DlyConfig[16]: 0xff0x89 DlyConfig[17]: 0x4b0x2 DlyConfig[18]: 0x880xe6 DlyConfig[19]: 0xb90x2 DlyConfig[20]: 0x1a80xe3 DlyConfig[21]: 0x760x2 DlyConfig[22]: 0xff0xb9 DlyConfig[23]: 0xff0x7f DATA_WIDTH_G: 16 NUM_LANE_G: 24 EnUsrDlyCfg: 0x10x0 MinEyeWidth: 0x50 LockingCntCfg: 0xffff BypFirstBerDet: 0x1 Polarity: 0x0 GearboxSlaveBitOrder: 0x0 GearboxMasterBitOrder: 0x0 MaskOffCodeErr: 0x0 MaskOffDispErr: 0x0 MaskOffOutOfSync: 0x0 IdleCode: 0x3ebfff0xffffff LockOnIdleOnly: 0x0 RollOverEn: 0x0 |
Expand |
---|
|
Expand |
---|
|
Expand |
---|
title | ASIC3 automatic |
---|