有重叠与无重叠序列之序列检测与序列产生

目录

 

前言

无重叠序列产生

移位寄存器实现

状态机实现

有重叠序列产生

移位寄存器方式实现

状态机方式实现

博文推荐


前言

序列检测与序列产生是一对对称的设计,就像有微分就有积分一样。

序列检测分为有重叠检测和无重叠检测;

例如检测序列1101011,我们给出输入:110101101011,如果是无重叠检测,则只能检测到一个序列:1101011_01011;

如果是有重叠检测,则可以检测到两个这样的序列:11010_11_01011。

同理,序列产生也可以分为有重叠序列的产生方法和无重叠序列的产生方法,序列产生的办法也可以用移位寄存器产生,也可以用状态机的方式来产生;这两种方法后面都是提到。

由于序列检测我们之前写的太多了,所以这篇博文的重点不是序列检测而是序列产生。


无重叠序列产生

移位寄存器实现

以产生序列1101011为例,我们产生产生的序列要是这个样子的1101011_1101011..............

所以我们需要使用7位的移位寄存器,每次对序列1101011左移,同时输出最高位;7位的移位寄存器固然需要消耗7个触发器,这也是一个考点。

设计也极其简单,如下:

module seq_gen7(
	input clk,
	input reset,
	output out

    );
	reg [6:0] seq_mid;
	
	always@(posedge clk or posedge reset) begin
		if(reset) seq_mid <= 7'b1101011;
		else seq_mid <= {seq_mid[5:0], seq_mid[6]};
	end
	assign out = seq_mid[6];
	
endmodule

仿真波形:

局部放大:

  • 9
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李锐博恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值