vhdl - 如何在 VHDL 中进行字符串/模式检查?

标签 vhdl

我有一个问题 - 我认为我可以通过常规的“c”之类的操作来解决 但我想知道是否有更好的方法,例如 VHDL 的“regexp”

问题是我有一个字符串/位集合“101010101010101”,我想在里面查找模式(没有重叠)“1010”

解决这个问题的最佳选择是什么?

编辑:我想提一下,输入是并行的,所有位同时输入,而不是串行输入 仍然可以将其实现为 FSM - 但有更有效的方法吗?

最佳答案

如果您只想在向量中找到模式,那么您只需迭代它即可。假设“downto”向量:

process (vec, what_to_find)
begin
   found <= 0;
   for start in vec'high downto vec'low+what_to_find'length loop
       if vec(start downto start - what_to_find'length) = what_to_find then
           found <= start;
       end if;
   end for;    
end process;

根据与目标设备相比的输入和搜索向量的大小,这将是合理或不合理的逻辑量!

关于vhdl - 如何在 VHDL 中进行字符串/模式检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20344449/

相关文章:

vhdl - GHDL 模拟器不支持没有错误的 vhdl 属性?

设置高位时 VHDL/GHDL 二进制 32 位写溢出

vhdl - 如何在 VHDL 中实例化通用设计的参数化版本?

vhdl - 大量的 VHDL 信号分配...这可以压缩吗?

VHDL整数到字符串

vhdl modelsim 向命令行返回 "1"或 "0"状态

vhdl - 如何实例化一个组件以生成多个并行组件?

c - 如何使用 avalon 总线将两个 64 位从 nios 传输到 VHDL?

syntax-error - 获取语​​法错误

python - 哪种编程语言在其正式规范中具有非常短的上下文无关语法?