You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

单FSM实现重叠序列检测器(检测"11001"并置位标志两时钟周期)

单FSM实现"11001"重叠序列检测器(双周期标志位)

状态定义

每个状态整合了序列匹配进度和标志位激活状态,确保单FSM同时完成检测、重叠处理和双周期标志位输出:

  • S0:初始状态,未匹配目标序列任何位,标志位flag=0
  • S1:已匹配目标序列第1位("1"),flag=0
  • S2:已匹配目标序列前2位("11"),flag=0
  • S3:已匹配目标序列前3位("110"),flag=0
  • S4:已匹配目标序列前4位("1100"),flag=0
  • S5:成功匹配完整序列"11001",标志位激活第1周期(flag=1)
  • S6_0:标志位激活第2周期(flag=1),当前未匹配任何序列位(S5阶段输入为0)
  • S6_2:标志位激活第2周期(flag=1),当前已匹配目标序列前2位(S5阶段输入为1,实现重叠衔接)

状态转移规则

基础匹配状态(S0-S4,flag=0)

  • S0:
    • 输入1 → S1
    • 输入0 → S0
  • S1:
    • 输入1 → S2
    • 输入0 → S0
  • S2:
    • 输入0 → S3
    • 输入1 → S2(连续多个1时,保持"11"匹配状态)
  • S3:
    • 输入0 → S4
    • 输入1 → S1(输入1仅能匹配新序列的第1位)
  • S4:
    • 输入1 → S5(匹配完整序列,进入标志位第1周期)
    • 输入0 → S0(序列中断,重置匹配进度)

标志位激活状态(S5、S6_0、S6_2,flag=1)

  • S5:
    • 输入1 → S6_2(利用前一个序列的最后一位1,衔接新序列的前两位1,实现重叠检测)
    • 输入0 → S6_0(无重叠可能,重置匹配进度)
  • S6_0:
    • 输入1 → S1
    • 输入0 → S0(标志位周期结束,回到基础匹配状态)
  • S6_2:
    • 输入0 → S3(基于已匹配的"11",继续匹配"110")
    • 输入1 → S2(保持"11"匹配状态)

输出逻辑

  • 当FSM处于S5、S6_0、S6_2状态时,置位flag=1
  • 其他状态下,flag=0

重叠场景验证(以"110011001"为例)

  1. 前5位"11001" → 进入S5,flag=1(第1周期)
  2. 第6位"1" → 进入S6_2,flag=1(第2周期),同时匹配新序列的前两位"11"
  3. 第7位"0" → 进入S3,flag=0,匹配"110"
  4. 第8位"0" → 进入S4,flag=0,匹配"1100"
  5. 第9位"1" → 进入S5,flag=1(再次检测到完整序列,实现重叠检测)

内容的提问来源于stack exchange,提问作者Justin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 13:48:14