Binary Simulink中的模式匹配

Binary Simulink中的模式匹配,binary,pattern-matching,fpga,simulink,xilinx,Binary,Pattern Matching,Fpga,Simulink,Xilinx,我试图建立一个模型来比较特定位模式的输入 例如,如果我必须检查输入模式1110,我构建了一个带有3个延迟元素的模型,获取输入并连接它,然后使用比较器与14(十六进制E)进行比较 目前,我需要对128位进行模式匹配。根据前面的例子,我可以理想地构建类似的模型,使用127个延迟元素和比较块 但我想知道是否有一个最佳的和“更好”的方法来做到这一点 期待在这方面提出一些建议 如果您感兴趣,下面是我为提取8位而构建的小模型: 您所描述的是一种很好的通用方法-它不假设您想要检测的模式 如果模式是(例如)1

我试图建立一个模型来比较特定位模式的输入

例如,如果我必须检查输入模式1110,我构建了一个带有3个延迟元素的模型,获取输入并连接它,然后使用比较器与14(十六进制E)进行比较

目前,我需要对128位进行模式匹配。根据前面的例子,我可以理想地构建类似的模型,使用127个延迟元素和比较块

但我想知道是否有一个最佳的和“更好”的方法来做到这一点

期待在这方面提出一些建议

如果您感兴趣,下面是我为提取8位而构建的小模型:


您所描述的是一种很好的通用方法-它不假设您想要检测的模式

如果模式是(例如)1到0的长字符串,则可以执行不同的操作(创建计数器以计算这些长度,并在计数器达到正确值时标记匹配)

我认为,若您创建了一个包含z^-1和concat的块,那个么您可以使您的图变得更容易一些(也许)。然后,当您传入输入时,您可以延迟输入,并将其与前一阶段的输出(也传入)合并

另一方面,这在VHDL中被简单地描述为移位寄存器(一行代码)和匹配器(另一行代码)


您可以在m代码块中构建类似的东西(在类似的两行中),使用寄存器的
持久性
变量,但是如果您想实例化多个块实例,那么您就不走运了,因为
持久性
存储是在它们之间共享的

谢谢,我将尝试第一种方法,使用带有concat块的延迟元素的分层块结构。m代码块是个好主意。但我们仍然需要有127个延迟元素,对吗?VHDL将是一个很好的解决方案。正如你提到的,还有一种可能性。我正在寻找一个128位的模式,它实际上是加扰的。所以你基本上用一个预先定义好的种子内容对所有通过扰码器的1进行扰码。因此,我也可以解释它,并使用您在回答中提到的方法(计算使用计数器的1的数量)。我也会尝试这种方法。参考资料:解扰器-是的,如果你不需要识别动态模式,它可以很好地工作。