【Verilog学习日常】—牛客网刷题—Verilog进阶挑战—VL25

输入序列连续的序列检测

描述

请编写一个序列检测模块,检测输入信号a是否满足01110001序列,当信号满足该序列,给出指示信号match。

模块的接口信号图如下:

模块的时序图如下:

请使用Verilog HDL实现以上功能,并编写testbench验证模块的功能

输入描述:

clk:系统时钟信号

rst_n:异步复位信号,低电平有效

a:单比特信号,待检测的数据

输出描述:

match:当输入信号a满足目标序列,该信号为1,其余时刻该信号为0

 解题思路

思路一:经典有限状态机三段式

【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL70-CSDN博客的思路一致;

可设置以下状态:

IDLE(S0):初始状态,表示电路还没有收到任何一个有效数值;

S1:表示电路收到一个有效的“0”;

S2:表示电路收到两个有效的“01”;

S3:表示电路收到三个有效的“011”;

S4:表示电路收到四个有效的“0111”;

S5:表示电路收到五个有效的“01110”;

S6:表示电路收到六个有效的“011100”;

S7:表示电路收到七个有效的“0111000”;

S8:表示电路收到七个有效的“01110001”;

根据输出表述,“当输入信号a满足目标序列时,match信号为1,”因此可画出如下所示的状态转移图状态转移表

格雷码的相关知识

Gray码也称为循环码,其最基本的特性是任何相邻的两组代码中,仅有一位数码不同,因而又称为单位距离码。减少了产生毛刺和一些暂态的可能

Gray码的编码方式有多种,典型的格雷码如下所示:

十进制数 二进制码 Gray码
B3 B2 B1 B0 G3 G2 G
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值