模式匹配
所有位串均具有模式匹配功能。
该功能可用于检测启动代码等。要使用该功能,则必须用需匹配的模式来对REG_SS 编程
(请注意, POS 达到零时 REG_SS 不会与 REG 交换!)
MATCH_MODE 位必须设为1。
输入数据 REG 现在与已编程的模式 REG_SS 相比较。发现匹配时会提出模式匹配中断。
Bit MATCH_MODE selects whether the match filter is active or whether data is captured.
Only slice A, H, I, and P support matching with a mask (register MASK_x).
For other slices the pattern is not masked.
匹配掩码
四个位串(A、H、I 和P)同样支持对模式的掩码;必须设置MASK_x 以便对模式位进行比较(‘1’表示比较)。
例如,寻找模式0x1234.xxxx.5678.9ABC 时,
REG 应设置为0x1234.xxxx.5678.9ABC,
MASK 设置为0xFFFF.0000.FFFF.FFFF。
When using the data match interrupt bit 0 has to be high.
When using data match mode, the slice’s shadow register [ REG_SS ] should hold the pattern to be matched.
In addition, when data match is enabled the main register [ REG ] and the shadow register [ REG_SS ] will not exchange when FIFO is done with input or output data.
Pattern match
All slices feature pattern match functionality.
This can be used for example to detect a start code.
To use this functionality, REG_SS must be programmed with the pattern to be matched
(Note that REG_SS will not be swapped with REG when POS reaches zero!).
The MATCH_MODE bit must be set to 1.
The input data is now compared to the programmed pattern.
When a match is found the pattern match interrupt is raised.
Four slices (A, H, I and P) also support masking the pattern; MASK_x must be set for the pattern bits to be compared (1 is compare).
E.g. when looking for pattern 0x1234 XXXX, then REG_SS should be set to 0x1234 XXXX and MASK to 0xFFFF 0000.
0x1234 xxxx -- REG 0x1234 0000 -- REG_SS 0xFFFF 0000 -- MASK
MASK_A, MASK_H, MASK_I, MASK_P
The mask registers are used for the “on pattern match” interrupts.
With some slices it is possible to mask the data for the pattern match interrupts. Slices A, H, I and P support this function.
Every bit that is 1 in this register will be masked.
If this register contains the value 0b00001111 the first 4 bits will be masked for the pattern interrupt.