问题描述
- 用VHDL设计一个寻找要求图案的电路
-
老师的作业要求我么设计一个电路来寻找复合的字符串。
这个电路使用来寻找符合a+(b^n|c)d的字符串的,也就是说要找到以任意个数的“a”开始,跟着的是恰好n(变量)个“b”或者1个c,最后是1个d结尾的字符串。比如当n=3时,"abbbd","aaacd","aabbbd","abbbcd"均为符合的字符串。
Entity部分为
entity patternMatcher is port(
clk, restart, valid: in std_logic;
inSym: in nibble;
repCount: in nibble;
patCount: out byte);
end patternMatcher;
我们需要一个restart信号来重新初始化电路。
valid信号为高电平的时候,需要关注inSym;为低电平的时候,inSym的值被忽略。
inSym是一个四比特信号,x0表示a,x1表示b,x2表示c,x3表示d。
repCount决定“b”的重复次数(n)。当restart为高电平时,电路需要储存repCount的值,并且用这个值来寻找符合的字符串。
输出patCount是从上一次restart开始输入的字符串符合我们要求的图案的次数。
请用状态机来设计一个可以实现这样性能的电路。请各位大神帮帮忙,画一下状态图还有设计architecture部分吧。
时间: 2025-01-14 13:12:17