bad/noisy channelをoffにする．
またはtest patternをつくる

bufferがfullのためoverwriteが起こった回数(=lost event数)．
eventが読出される毎に-1される．
16以上になるとERROR=1となる．

128wide:last clearからのhitを積む．Accumulator mode時(acen=1)はこれがreadout bufferに３回分移される．

clock毎にinput registerの内容をFIFOに書く．
level-1が来たら最後の3 time binをreadout bufferに移す．

acenlevel1
clkB
clkclear

data_avail
overflowerror

Data compression 回路

overflow cntr

readout buffer (RAM)128 x 24

write pntr read pntr

Readout controller回路(Masterのchipで働く）
dataout
tokenout
next

dataintokenin

Token生成回路
L1を受け、event FIFOがnon-0になり次第tokenを発行．data通過をモニターしtrailerパターンを見つけたらevent FIFOをチェック．non-0なら繰り返す．

dataintokeninid(3:0)sendiderror
config<15:0>

edge mode
load
sin
mode:0(normal)1(test)

overflowadj
ch(6:0)hit(2:0)
datavalid
endbuffrdsendidmode(1:0)
next0

128 x 132
pipeline
FIFO

accumulator registerchannel masking register

input register(edge detection)

Comparator

Shaper127

Event FIFO
(12 x 24)

strobeout

data formating 回路(headerをつける）

beam crossing counter (8bit)
id<5:0>MasterChip IDid(6)は常に1,id(5)=1/0(odd/even module)

Command Decoder
commandをdecodeし命令をだす．

5 4 3 2 1 0

Token/Data Input回路

Token/Data Output回路

bypassin=Hなら1を選ぶ

bypassout=Hなら1を選ぶ

tokenin0
tokenin0B
datain0
datain0B
tokenin1
tokenin1B
datain1datain1B
bypassintokenindataintokenout
dataout

bypassout

Clock & Command Inputs?

clockとcommandはselect=L/Hによって片方を選ぶ．

clk
commandtokenout1B
tokenout1
datain1B
datain1?

VDD
VDD
DGND
DGND
tokenin0B
tokenin0
dataout0B
dataout0
ledledB
resetB
selectcom0
com0B
com1com1B
masterid<0>
id<1>id<2>
id<3>
id<4>
clk1
clk1B
clk0
clk0B
datain0
datain0B
tokenout0
tokenout0B
DGND
VDD

command

Configuration Registerの内容

コントロール用 CommandType

Field1

Field2Filed3

Level1110------

Slow

101

101

tokenout0
tokenout0B
dataout0
dataout0B
tokenout1
tokenout1B
dataout1
dataout1B

clk0
clk0B
clk1
clk1B
com0
com0B
com1
com1B
selectThres/Calib DAC Registerclockに対するdelayをセット

Bias DAC Register

I(inp.bias)
I(shaper)calibration threshold

8-bit DAC
8-bit DAC
5-bit DAC
5-bit DAC

Configuration Register
チップ状態を示す16bit．power-onでは0,softresetではresetされない．

tokenin1B
tokenin1
dataout1B
dataout1

Fast

dataout
tokenout

15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00

Strobe Delay Register

sendidmodesoftresetB
calstrobeloadmaskreg
level1level3loadconfigreg
strobeconfigreg
loaddelayreg
loadthresholdreg
bcresetB
pulseinputreg

ledoutL1 counter (4bit)

level-1

BC reset

Calibration回路
cal_mode(1:0)に従って４種のパターンを設定

serial data output driver

channel毎に3bitのパターン認識を行い指定(modeによる）と合ったときのみ3bitをhitに出しaddressをchに出す．nextでスキャンを再開する．
隣も良いとadj=1、スキャン終りにend=1．overflowのときは読み込むが何もしない．

write pointerはread pointerを越えてもよいが、overflow flag=1．
read がwriteに追いついたらempty flag=1．

Readout 回路

low->highのedgeをつかまえて1 clock分のbitをたてる．

Preamplifier

tokenが来たらheaderを出しchとhitを読んでdataoutに出す．endが来たらtokenoutを出し終る．overflow,errorのときは特殊packetを出す．send-idならchipのconfigurationを出す．

Filed4Filed5Filed6

Description
Level-1 trigger

0100

Soft Reset

0010

BC reset

0111

0001,1100 aaaaa 000 000

16bits1000,1100 aaaaa 001 000

128bits Write Mask reg.

0001,1100 aaaaa 010 000

16bitsWrite Strobe Dealy reg.

aaaaa 011 00016bits

Write Threshold reg.

Write Configuration reg.

0000,1100 aaaaa 100 000----

Pilse Input_Reg

aaaaa 101 000----

Enable Data taking mode

aaaaa 110 000----

Issue calibration pulse

aaaaa 111 000

16bitsLoad Bias DAC

出力データのフォーマット
<11101><0><nnnn><bbbb,bbbb><1><data_block_1><data_block_2>----<data_block_n><100,0000,0000,0000>
Preamble DT L1#
beam-cross-# 1st-chip-data 2nd-chip-data
last-chip-data
trailer
Data Blockはdata_packetのセットからなり、data_packetは４種類ある：(1) Physics Data: Isolated-hit<01><aaaa><ccc,cccc><1><ddd>Nonisolated-hit<01><aaaa><ccc,cccc><1><ddd><1><ddd>----<1><ddd>chip# channel#hit-data<001>(2) No-Hit Data:(3) Configuration Data:<000><aaaa><111><cccc,cccc><1><cccc,cccc><1>chip#
config.reg.MS config.reg.LS(4) Error Data:<000><aaaa><eee><1>chip# error-code

0-1 readout mode

data compressionの指定

2-3 cal_mode

calib code(４種）の指定

4

cal_enablecalb strobe出力がenable

56

test_modeedge detect

bits2-3で指定したchannelにtest値をセット
edge detection回路をenable

7maskmask reg. 内容をpipe-lineに送る

8accumulate

accumulate機能をenable

9

input_bypass

token/data inputの指定

10

output_bypass

token/data outputの指定

11

master

これが0でmasterB pin=0ならmaster

12

end

読出しチェーンの最後のチップであると指定

13

feed_through=0ならmaster chipが20MHzのclockを出力

14

not used15

self destructdataが悪いチップに行かない．