Skip to content

Commit

Permalink
Merge pull request #4 from RyotaroHonda/main
Browse files Browse the repository at this point in the history
LACCP v2.1 and gated scaler
  • Loading branch information
RyotaroHonda authored Jan 6, 2025
2 parents 2c6125b + 28b4371 commit 3d9a5ae
Show file tree
Hide file tree
Showing 14 changed files with 285 additions and 37 deletions.
61 changes: 52 additions & 9 deletions docs/firmware/clockhub/clockhub.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Mikumari Clock Hub (MikuClockHub)は上流から時刻同期を受け、更に16
- Number of clock port: 16
- Number of inputs: 65
- Number of inputs: 64
- Timing measurements: Both edges
- TDC precision: 1ns
- Double hit resolution: ~8ns
Expand All @@ -35,14 +35,16 @@ Mikumari Clock Hub (MikuClockHub)は上流から時刻同期を受け、更に16
|Version|Date|Changes|
|:----:|:----|:----|
|v2.5|2024.6.9|事実上の初期版|
|v2.6|2025.1.6| - Updating LACCP (v2.1) supporting the frame flag distribution. <br> - Introducing gated scaler. <br> - Introducing IO manager block arranging input/output paths to the NIM IO. <br> - Deprecating the extra 129th TDC input from NIM. <br> - Deprecating DIP2 function. <br> - Changing what the LED lights indicate.|


# Functions

![BL-DIAGRAM](block-diagram.png "Simplified block diagram of MikuClockHub."){: #BL-DIAGRAM width="80%"}

[](#BL-DIAGRAM)はMikumari-ClockHubの簡易ブロックダイアグラムです。
CRVもしくは前面MIKUMARIポートでクロック信号を受信し、CDD-OPTメザニンカードを用いて最大16台のリーフモジュールを時刻同期する事が出来ます。
加えて、65ch文のStr-LRTDCを内蔵しており、main inputとNIM-INからからの信号を測定する事が出来ます
加えて、64ch文のStr-LRTDCを内蔵しており、main inputからの信号を測定する事が出来ます
入力信号はStr-LRTDCと同様にスケーラーブロックにも接続されています。
Str-LRTDCの機能とスケーラー機能についてはStr-LRTDCのページを参照してください。

Expand All @@ -59,21 +61,21 @@ Str-LRTDCの機能とスケーラー機能についてはStr-LRTDCのページ
[](#PORT-MAP)はTDC入力チャンネル番号とMIKUMARIのポート番号を示しています。
16番が受信用のMIKUMARIポートで、0番から15番までがクロック信号の送信側です。

### LED and DIP switch
### LED and DIP switch (2025.01.06)

1-3番が点灯していればモジュールとして正常に動作しています。

|LED #||Comment|
|:----:|:----|:----|
|1| PLL locked| 全ての内部クロック信号が正常に出力されている状態です|
|2| MIKUMARI (16) link up| MIKUMARIポートの16番がリンクアップしている状態です|
|3| Ready for DAQ| 時刻同期が完了し、DAQを走らせられる状態である事を示します|
|4| DAQ is running| データ読み出し中である事を示します|
|1| DAQ is running| データ読み出し中である事を示します|
|2| Root mode| ROOT modeでモジュールが起動していると点灯します|
|3| MIKUMARI (16) link up| MIKUMARIポートの16番がリンクアップしている状態です|
|4| PLL locked| 全ての内部クロック信号が正常に出力されている状態です|

|DIP #||Comment|
|:----:|:----|:----|
|1| SiTCP IP setting | 0: デフォルトIPを使用します <br> 1: ユーザー設定のIPを使用します (要ライセンス)。|
|2| NIMOUT setting | 0: NIMOUT-1からハートビート信号が出力されます<br>1: NIMOUT-1からLACCPがトリガー信号が出力されます|
|2| Not in use | |
|3| Not in use | |
|4| Not in use | |

Expand All @@ -86,6 +88,7 @@ Str-LRTDCには6個のローカルバスモジュールが存在します。
|:----|:----|
|Mikumari Utility |0x0000'0000 - 0x0FFF'0000|
|Streaming TDC |0x1000'0000 - 0x1FFF'0000|
|IO Manager |0x2000'0000 - 0x2FFF'0000|
|Scaler |0x8000'0000 - 0x8FFF'0000|
|CDCE62002 Controller |0xB000'0000 - 0xBFFF'0000|
|Self Diagnosis System |0xC000'0000 - 0xCFFF'0000|
Expand All @@ -100,4 +103,44 @@ Str-LRTDCには6個のローカルバスモジュールが存在します。
## Scaler

Str-LRTDCと同様のため、Str-LRTDCの説明を参照してください。
レジスタアドレスも全く同じです。
レジスタアドレスも全く同じです。


## IO Manager

IO ManagerはAMANEQのNIM IOとFPGA内部の信号等の接続関係を管理するモジュールです。
NIMポートから入力された信号をどの内部信号へ接続するか、また内部信号をどのNIMポートから出力するかをSiTCPを通じて変更します。

|Register name|Address|Read/Write|Bit width|Comment|
|:----|:----|:----:|:----:|:----|
|kFrameFlag1In | 0x20000000| W/R|2| Setting the NIM-IN port to the internal frame flag-1 signal. It is valid when the module is the root mode. (default 0x0)|
|kFrameFlag2In | 0x20100000| W/R|2| Setting the NIM-IN port to the internal frame flag-2 signal. It is valid when the module is the root mode. (default (0x1))|
|kTriggerIn | 0x20200000| W/R|2| Setting the NIM-IN port to the internal trigger in signal. (default (0x3))|
|kScrResetIn | 0x20300000| W/R|2| Setting the NIM-IN port to the internal scaler reset signal. This signal will be distributed to other modules through MIKUMARI. (default (0x3))|
| | | | | |
|kSelOutSig1 | 0x21000000| W/R|3| Selecting the internal signal to output from the NIM-OUT port 1. |
|kSelOutSig2 | 0x22000000| W/R|3| Selecting the internal signal to output from the NIM-OUT port 2. |

アドレス値が`0x20X0'0000`のレジスタはNIM-INポートをどの内部信号へ接続するかを決定します。
各レジスタに対して設定可能な値は以下の通りです。

|Register value|Comment|
|:----:|:----|
|0x0| Connecting the NIM-IN port 1 to the corresponding internal signal.|
|0x1| Connecting the NIM-IN port 2 to the corresponding internal signal.|
|0x2| Not in use |
|0x3| Connecting GND to the corresponding internal signal. |

アドレス値が`0x2X00'0000`のレジスタはどの内部信号をNIM-OUTポートへ接続するかを決定します。
各レジスタに対して設定可能な値は以下の通りです。

|Register value|Comment|
|:----:|:----|
|0x0| Connecting the heartbeat signal.|
|0x1| Connecting the TCP connection establish.|
|0x2| Connecting the trigger signal from LACCP.|
|0x3| Connecting the frame flag-1.|
|0x4| Connecting the frame flag-2.|
|0x5| Connecting the logic of 1|
|0x6| Connecting the logic of 1|
|0x7| Connecting the logic of 1|
Binary file modified docs/firmware/clockhub/port-map.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
45 changes: 43 additions & 2 deletions docs/firmware/clockroot/clockroot.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ Mikumari Clock Root (MikuClockRoot)は17台の下流モジュールを同期す
|Version|Date|Changes|
|:----:|:----|:----|
|v2.5|2024.6.9|事実上の初期版|
|v2.6|2025.1.6| - Updating LACCP (v2.1) supporting the frame flag distribution. <br> - Introducing gated scaler. <br> - Introducing IO manager block arranging input/output paths to the NIM IO.|

## Functions

Expand Down Expand Up @@ -78,13 +79,14 @@ Str-LRTDCの機能とスケーラー機能についてはStr-LRTDCのページ

## Local bus modules

Str-LRTDCには6個のローカルバスモジュールが存在します
Str-LRTDCには7個のローカルバスモジュールが存在します
以下がローカルバスアドレスのマップです。

|Local Module|Address range|
|:----|:----|
|Mikumari Utility |0x0000'0000 - 0x0FFF'0000|
|Streaming TDC |0x1000'0000 - 0x1FFF'0000|
|IO Manager |0x2000'0000 - 0x2FFF'0000|
|Scaler |0x8000'0000 - 0x8FFF'0000|
|CDCE62002 Controller |0xB000'0000 - 0xBFFF'0000|
|Self Diagnosis System |0xC000'0000 - 0xCFFF'0000|
Expand All @@ -99,4 +101,43 @@ Str-LRTDCには6個のローカルバスモジュールが存在します。
## Scaler

Str-LRTDCと同様のため、Str-LRTDCの説明を参照してください。
レジスタアドレスも全く同じです。
レジスタアドレスも全く同じです。

## IO Manager

IO ManagerはAMANEQのNIM IOとFPGA内部の信号等の接続関係を管理するモジュールです。
NIMポートから入力された信号をどの内部信号へ接続するか、また内部信号をどのNIMポートから出力するかをSiTCPを通じて変更します。

|Register name|Address|Read/Write|Bit width|Comment|
|:----|:----|:----:|:----:|:----|
|kFrameFlag1In | 0x20000000| W/R|2| Setting the NIM-IN port to the internal frame flag-1 signal. (default 0x0)|
|kFrameFlag2In | 0x20100000| W/R|2| Setting the NIM-IN port to the internal frame flag-2 signal. (default (0x1))|
|kTriggerIn | 0x20200000| W/R|2| Setting the NIM-IN port to the internal trigger in signal. (default (0x3))|
|kScrResetIn | 0x20300000| W/R|2| Setting the NIM-IN port to the internal scaler reset signal. This signal will be distributed to other modules through MIKUMARI. (default (0x3))|
| | | | | |
|kSelOutSig1 | 0x21000000| W/R|3| Selecting the internal signal to output from the NIM-OUT port 1. |
|kSelOutSig2 | 0x22000000| W/R|3| Selecting the internal signal to output from the NIM-OUT port 2. |

アドレス値が`0x20X0'0000`のレジスタはNIM-INポートをどの内部信号へ接続するかを決定します。
各レジスタに対して設定可能な値は以下の通りです。

|Register value|Comment|
|:----:|:----|
|0x0| Connecting the NIM-IN port 1 to the corresponding internal signal.|
|0x1| Connecting the NIM-IN port 2 to the corresponding internal signal.|
|0x2| Not in use |
|0x3| Connecting GND to the corresponding internal signal. |

アドレス値が`0x2X00'0000`のレジスタはどの内部信号をNIM-OUTポートへ接続するかを決定します。
各レジスタに対して設定可能な値は以下の通りです。

|Register value|Comment|
|:----:|:----|
|0x0| Connecting the heartbeat signal.|
|0x1| Connecting the TCP connection establish.|
|0x2| Connecting the logic of 1|
|0x3| Connecting the logic of 1|
|0x4| Connecting the logic of 1|
|0x5| Connecting the logic of 1|
|0x6| Connecting the logic of 1|
|0x7| Connecting the logic of 1|
Binary file modified docs/firmware/clockroot/port-map.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion docs/firmware/overview/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ CECE62002は多数の設定項目があるためこれらの読み書きのシ



### MIKUMARI Util (MUTIL)
### MIKUMARI Util (MUTIL) (2025.01.06)

|Register name|Address|Read/Write|Bit width|Comment|
|:----|:----|:----:|:----:|:----|
Expand All @@ -131,6 +131,7 @@ CECE62002は多数の設定項目があるためこれらの読み書きのシ
|kAddrLaccpFineOffset|0x00A00000|R|16|LACCPが算出したLACCP fine offsetを取得します。(LACCPセカンダリ側のみ有効)|
|kAddrHbfState|0x00B00000|W/R|1|ハートビートフレーム状態を設定します。1でDAQ running、0でDAQ idleです。そのクロック分配ネットワークのrootモジュールでのみ有効。|
|kAddrRstOverMiku|0x00C00000|W|32|下流モジュールに対して[MIKUMARIリセット](#reset-signals)を発行する。1でリセット発行。|
|kAddrClockRootMode|0x00D00000|R|1|Mikumari Clock Hub moduleでは、ROOTモードで起動している場合1を返します。TDCなどのleaf moduleではstandalone modeで起動している場合1を返します。|
|kAddrRegIndex|0x01000000|W/R|6|いくつかのレジスタにおいて読み書きを行う対象のポート番号を指定します。|
|kAddrNumLinks|0x02000000|R|6|そのファームウェアが備えているMIKUMARIリンクの数を取得します。|

Expand Down
Binary file modified docs/firmware/strhrtdc/port-map.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
52 changes: 49 additions & 3 deletions docs/firmware/strhrtdc/strhrtdc.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,10 @@ Streaming high-resolution TDC (Str-HRTDC)は20ps精度の連続読み出しTDC
|:----:|:----|:----|
| AMANEQ |||
|v2.4|2024.6.4|事実上の初期版|
|v2.5|2025.1.6| - Updating LACCP (v2.1) supporting the frame flag distribution. <br> - Introducing gated scaler. |
| Mezzanine |||
|v2.4|2024.6.4|事実上の初期版|
|v2.5|2025.1.6| - Updating LACCP (v2.1) supporting the frame flag distribution. <br> - Introducing gated scaler. <br> - Introducing IO manager block arranging input/output paths to the NIM IO. <br> - Deprecating DIP2 function. |

## Functions

Expand Down Expand Up @@ -71,7 +73,7 @@ Scaler機能についてもStr-LRTDCと同様ですが、システムインフ
[](#PORT-MAP)はTDC入力チャンネル番号とMIKUMARIのポート番号を示しています。
MIKUMARIのポートは、0番がupper mezzanine、1番がlower mezzanine、2番が受信用のポートにアサインされています。

### LED and DIP switch
### LED and DIP switch (2025.01.06)

MIKUMARIシステムを利用している場合、1-3番がすべて点灯していれば正常です。
スタンドアロンの場合、1番と3番が点灯していれば正常です。
Expand All @@ -94,7 +96,7 @@ Lower slotにだけメザニンカードを搭載すると動作しません。
|1| SiTCP IP setting | 0: デフォルトIPを使用します <br> 1: ユーザー設定のIPを使用します (要ライセンス)。|
|2| Standalone mode | 0: MIKUMARIシステムを使用します<br>1: ローカル発振器を使用しスタンドアロンモードになります|
|3| Lower Mzn absent | 0: 2枚ともメザニンカードを搭載している場合 <br> 1: Upper mezzanine slowのみ使用している場合|
|4| NIMOUT setting | 0: NIMOUT-1からハートビート信号が出力されます<br>1: NIMOUT-1からLACCPがトリガー信号が出力されます|
|4| Not in use | |
| Mezzanine |||
|1| Not in use | |
|2| Not in use | |
Expand Down Expand Up @@ -127,6 +129,7 @@ Str-LRTDC Baseには8個のローカルバスモジュールが存在します
|DAQ Controller |0x2000'0000 - 0x2FFF'0000|
|BusBridgePrimary upper |0x3000'0000 - 0x3FFF'0000|
|BusBridgePrimary lower |0x4000'0000 - 0x4FFF'0000|
|IO Manager |0x5000'0000 - 0x5FFF'0000|
|Scaler |0x8000'0000 - 0x8FFF'0000|
|CDCE62002 Controller |0xB000'0000 - 0xBFFF'0000|
|Self Diagnosis System |0xC000'0000 - 0xCFFF'0000|
Expand Down Expand Up @@ -313,7 +316,9 @@ Str-LRTDCと同様です。
| | | | | Same as for Str-LRTDC |
| | | | | Mezzanine |
|kAddrScrReset | 0x8000| W|1| Reset signals <br> 0x1: Local reset <br> 0x2: Global reset <br> 0x4: FIFO reset|
|kAddrLatchCnt | 0x8010| R|1| Send latch request|
|kAddrLatchCnt0 | 0x8010| R|1| Send latch request to the free-run scaler unit|
|kAddrLatchCnt1 | 0x8011| R|1| Send latch request to the gated scaler 1|
|kAddrLatchCnt2 | 0x8012| R|1| Send latch request to the gated scaler 2|
|kAddrNumCh | 0x8020| R|8| Number of words of scaler data block including system information (unit: words)|
|kAddrStatus | 0x8030| R|8| Scaler unit status|
|kAddrReadFIFO | 0x8100| R|-| Address to read data from FIFO|
Expand All @@ -326,13 +331,15 @@ Str-LRTDCと同様です。
- FIFO resetはアクセス先のFIFOの中身をリセットします。
- LatchCnt
- このアドレスへ読み出しアクセスをするとラッチリクエストになります。
- アドレスによってどのスケーラユニットへラッチリクエストを送信するか決まります。
- NumCh
- スケーラーデータブロックのワード数はファームウェアによって異なるので、何ワード読み出したらよいか知るためのレジスタです。読むべきワード数が得られます。
- Status
- 1st-bit: FIFO empty
- others: Reserved
- ReadFIFO
- 1-byteずつデータをFIFOから読み出すためのアドレスです。
- - 3種類のスケーラユニットでReadFIFOを共有しています。ラッチリクエストを送信したユニットのデータがFIFOには入っています。

## Mikumari Utility

Expand Down Expand Up @@ -378,4 +385,43 @@ DAQ Controllerはmezzanine card側のDDR transmitterとAMANEQ側のDDR receiver
|kAddrCtrlReg | 0x1000 | W/R|1| Enable transmitter test mode |
|kAddrExtraPath | 0x1010 | W/R|1| Calibrate the LUT for tapped-delay line with the clock signal |

## IO Manager

IO ManagerはAMANEQのNIM IOとFPGA内部の信号等の接続関係を管理するモジュールです。
NIMポートから入力された信号をどの内部信号へ接続するか、また内部信号をどのNIMポートから出力するかをSiTCPを通じて変更します。

|Register name|Address|Read/Write|Bit width|Comment|
|:----|:----|:----:|:----:|:----|
|kFrameFlag1In | 0x50000000| W/R|2| Setting the NIM-IN port to the internal frame flag-1 signal. It is valid when the module is the standalone mode. (default 0x0)|
|kFrameFlag2In | 0x50100000| W/R|2| Setting the NIM-IN port to the internal frame flag-2 signal. It is valid when the module is the standalone mode. (default (0x1))|
|kTriggerIn | 0x50200000| W/R|2| Setting the NIM-IN port to the internal trigger in signal. (default (0x3))|
|kScrResetIn | 0x50300000| W/R|2| Setting the NIM-IN port to the internal scaler reset signal. This signal will be distributed to the mezzanine cards through MIKUMARI. (default (0x3))|
| | | | | |
|kSelOutSig1 | 0x21000000| W/R|3| Selecting the internal signal to output from the NIM-OUT port 1. |
|kSelOutSig2 | 0x22000000| W/R|3| Selecting the internal signal to output from the NIM-OUT port 2. |

アドレス値が`0x20X0'0000`のレジスタはNIM-INポートをどの内部信号へ接続するかを決定します。
各レジスタに対して設定可能な値は以下の通りです。

|Register value|Comment|
|:----:|:----|
|0x0| Connecting the NIM-IN port 1 to the corresponding internal signal.|
|0x1| Connecting the NIM-IN port 2 to the corresponding internal signal.|
|0x2| Not in use |
|0x3| Connecting GND to the corresponding internal signal. |

アドレス値が`0x2X00'0000`のレジスタはどの内部信号をNIM-OUTポートへ接続するかを決定します。
各レジスタに対して設定可能な値は以下の通りです。

|Register value|Comment|
|:----:|:----|
|0x0| Connecting the heartbeat signal.|
|0x1| Connecting the TCP connection establish.|
|0x2| Connecting the trigger signal from LACCP.|
|0x3| Connecting the frame flag-1.|
|0x4| Connecting the frame flag-2.|
|0x5| Connecting the logic of 1|
|0x6| Connecting the logic of 1|
|0x7| Connecting the logic of 1|


Binary file modified docs/firmware/strlrtdc/port-map.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 3d9a5ae

Please sign in to comment.