我有一个问题 - 我认为我可以通过常规的“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/