“01110”双输入口序列检测器的Verilog设计

这篇具有很好参考价值的文章主要介绍了“01110”双输入口序列检测器的Verilog设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

设计一个序列检测功能的时序电路,如图所示。其输入信号有clr、clk、A、 B,输出信号Z。其中clk为时钟信号, clr是低电平有效的异步复位信号,A、B是输入数据信号。有一个二进制串行数据D0D1D2D3……Dx,以两位为一组顺序送入电路,D0送入A,D1送到B,以此类推。电路检测此串行数据中是否存在“01110”序列,每发现一个序列则在Z输出一个时钟周期宽度的高电平脉冲。注意相邻 “01110” 序列数据位不重叠。

110序列检测器,fpga开发

1.状态图

根据题意可定义5种状态,需要3个触发器(3位编码)。

S0:初始状态。编码000。

S1:输入0。编码001。

S2:输入01。编码010。

S3:输入011。编码011。

S4:输入0111。编码100。

110序列检测器,fpga开发

2. 三段式代码

主代码:

module detector_01110(input wire      A,
	                                  B,
	                                clk,
	                                rst,
	                  output reg      Z);
	reg[2:0] Current_state, Next_state;
	parameter S0=3'b000, S1=3'b001, S2=3'b010, S3=3'b011, S4=3'b100;
	always@(posedge clk, negedge rst)
	begin
		if(!rst)
		Current_state<=S0;
		else 
		Current_state<=Next_state;
	end
	always@(Current_state, A, B)
	begin
		case(Current_state)
		S0: if(A==1&&B==1) Next_state=S0;
			else if(A==0&&B==1) Next_state=S2;
			else Next_state=S1;	 
		S1: if(A==0&&B==1) Next_state=S2;
			else if(A==1&&B==1) Next_state=S3;
			else Next_state=S1;
		S2: if(A==0&&B==1) Next_state=S2;
			else if(A==1&&B==1) Next_state=S4;
			else Next_state=S1;
		S3: if(A==0&&B==0) Next_state=S1;
			else if(A==0&&B==1) Next_state=S2;
			else Next_state=S0;
		S4: if(B==1) Next_state=S0;
			else Next_state=S1;
		endcase
	end
always@(posedge clk, negedge rst)
	begin
		if(!rst) Z<=0;
		else begin 
			case(Current_state)
				S0,S1,S2:Z<=0;
				S3:if(A==1&&B==0) Z<=1;
				   else Z<=0;
				S4:if(A==0) Z<=1;
				   else Z<=0;
			endcase
		end
	end				
endmodule

测试代码(输入AB分别为10,11,01,11,01,10,11,10,00):

module detector_01110_tb ();
	reg    A,
           B,
	     clk,
	     rst;
	wire Z;
detector_01110 udetector_01110(
	.A(A),
	.B(B),
	.clk(clk),
	.rst(rst),
	.Z(Z)
	);
always #5 clk =!clk;
	initial begin
		clk=0;
		rst=0;
		A=0;
		B=0;
	#10 rst=1;
	#5  A=1;
		B=0;
	#10 A=1;
		B=1;
	#10 A=0;
		B=1;
	#10 A=1;
		B=1;
	#10 A=0;
		B=1;
	#10 A=1;
	    B=0;
	#10 A=1;
		B=1;
	#10 A=1;
		B=0;
	#20 A=0;
		B=0;
	$finish;
	end
initial begin
  $dumpfile("detector_01110.vcd");
  $dumpvars() ;
	end
endmodule

 3.仿真结果

 110序列检测器,fpga开发

 输入信号中出现两次“01110”,输出波形也输出两次高电平。由波形可知,该设计满足序列检测的要求。

4. 总结

与常见的单输入序列检测器不同,本题要求设计的是双输入序列检测器,但分析和设计方法与单输入是一样的,都是先画状态图,再根据状态图写三段式代码,唯一区别在于要定义两个输入信号。文章来源地址https://www.toymoban.com/news/detail-522229.html

到了这里,关于“01110”双输入口序列检测器的Verilog设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 序列检测器的verilog实现

    设计一个序列检测同步时序逻辑电路,要实现的功能如下: 当已有输入码流出现序列 111000或101110时输出检测信号为1 ,否则输出为0。在时序上检测到完整序列的 下一个时钟周期 输出检测结果。输入信号有效为1时表示当前输入有效,否则表示无效。之前输入依旧计入序列中

    2024年02月06日
    浏览(40)
  • 利用Verilog HDL实现序列检测器,附上仿真程序。

    序列检测器的逻辑功能就是将一个指定的比特序列从一串较长的比特流中识别出来。 例如:针对一个较长的比特流010010010011110101010…,我们希望能将比特序列为“10010”的序列检测出来,并且每次检测到10010就将输出置“1”. 注意:如序列”100100100…\\\",根据以上的介绍,会在

    2024年02月06日
    浏览(50)
  • vivado序列检测器verilog代码ego1开发板验证

    名称:vivado序列检测器verilog代码ego1开发板验证 软件:VIVADO 语言:Verilog 代码功能: 设计一个111序列检测器。 要求:当检测到3个或3个以上的1时,输出为1,其他输入情况输出为0. 画出状态转移图,完成 Verilog描述。 本代码已在ego1开发板验证,开发板如下,其他开发板可以修改管

    2024年02月03日
    浏览(44)
  • 简单的状态机设计——序列检测器

    1.序列检测器 序列检测器是时序数字电路中非常常见的设计之一。它的逻辑功能是将一个指定的序列从数字码流中识别出来。 2.例1:\\\"10010\\\"序列检测器 对串行输入的数据进行检测,检测“10010”。设X为数字码流输入,Z为检出标记输出,高电平表示“发现指定序列”,低电平表

    2024年02月11日
    浏览(29)
  • 用jk触发器设计一个011序列检测器的设计分析过程

       心得体会:经过此次设计,加深了对时序逻辑电路的理解,当要求对一个连续的一串信号进行输入输出处理时可以用到有记忆存储、反馈功能的jk触发器或者d触发器。

    2024年02月04日
    浏览(37)
  • 1001序列检测器

    multisim仿真文件:1001序列检测器(mealy机)-单片机文档类资源-CSDN下载 modelsim仿真文件:1001序列检测器modelsim仿真和测试文件-单片机文档类资源-CSDN下载 实验报告:1001序列检测器实验报告-单片机文档类资源-CSDN下载 电 子 科 技 大 学 课程设计名称:           1001 序列检

    2024年02月06日
    浏览(35)
  • 实验四 用集成移位寄存器实现序列检测器

    一、实验要求 用移位寄存器和与非门设计一个 1101 序列检测器。电路连续不停地工作,对 串行输入的序列进行检测,当连续检测 4 个码元符合检测码 1101 时,检测器输出 为 1 ,指示灯亮,其他情况下输出为 0 ,指示灯灭。 二、实验设备 1 . Mini-FPGA 开发板( Cyclone IV 系列

    2024年02月03日
    浏览(30)
  • 【 FPGA 】序列检测器 11010 (mealy状态机,moore状态机)

            状态机是硬件电路设计的常用的描述工具,也是电路设计的重要思想。很早之前我就知道mealy状态机和moore状态机,但是对两者的差别不是非常的清楚,最近在学习系列检测器的设计时对这两种状态机和一段式、三段式状态机有了更深刻的了解,在这里分享自己的见解

    2024年02月05日
    浏览(30)
  • 毕业设计 单片机心率检测器设计与实现 - stm32

    Hi,大家好,今天向大家介绍一个学长做的单片机项目 基于STM32的心率检测器的设计与实现 大家可用于 课程设计 或 毕业设计 主控:STM32F103C8T6 MAX30102传感器 OLED屏幕:用于显示实时心率波形 未测试时的状态:心率波形显为平稳直线,即0 将手指放上进行心率测试: 还可以把

    2024年02月07日
    浏览(32)
  • 【opencv】传统目标检测:Haar检测器实现人脸检测

    传统目标分类器主要包括Viola Jones Detector、HOG Detector、DPM Detector,本文主要介绍VJ检测器,在VJ检测器基础上发展出了Haar检测器,Haar检测器也是更为全面、使用更为广泛的检测器。 Viola Jones Detector是作为人脸检测器被Viola和Jones提出来的,后来Rainer Lienhart和Jochen Maydt将这个检测

    2024年02月12日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包