教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 文秘资料 >

用状态机实现序列检测器的设计

来源:网络收集 时间:2026-09-08
导读: 直接加封面就可以上交。。 1. 掌握基于语言的ISE设计全流程; 实验三:用状态机实现序列检测器的设计 一、实验目的 2. 用状态机实现序列检测器的设计,并对其进行仿真和硬件测试。 3. 掌握基于语言的ISE设计全流程; 4. 熟悉、应用VerilogHDL描述数字电路;

直接加封面就可以上交。。

1. 掌握基于语言的ISE设计全流程;

实验三:用状态机实现序列检测器的设计

一、实验目的

2. 用状态机实现序列检测器的设计,并对其进行仿真和硬件测试。

3. 掌握基于语言的ISE设计全流程;

4. 熟悉、应用VerilogHDL描述数字电路;

二、实验原理与设计过程

(一)实验内容:序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出A,否则输出b。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。例3-1描述的电路完成对序列数"11100101"的。当这一串序列数高位在前(左移)串行进入检测器后,若此数与预置的密码数相同,则输出“A”,否则仍然输出“b”。

(二)本次实验的核心是:应用有限状态机的设计思路,检测输入的串行数据是否是8’b11100101。根据下载电路板的资源,拟用SW3---SW0,J4接口的E8,F8,C7,D7作为系统输入(系统由此需要设计一个8bits并行数据转串行的模块),一个7段数码显示译码器作为检测结果的输出显示,如果串行序列为”11100101”,显示A,否则显示b(系统需要设计一个7段数码显示译码器模块),为了显示可控,清晰,拟用V16,D18实现时钟,复位信号的输入。

(三)设计参考:本实验由顶层文件、串行检测、并行数据转串行、数码管显示四个模块组成:

直接加封面就可以上交。。

a) 系统共包括4个模块:并行数据转串行数据模块、串行检测模块、数码管显示模块、消抖模块。由于需要用按键V16作为时钟输入,为保证实验效果,调用实验二中应用的消抖模块,对时钟clk输入信号进行消抖。

b) 对于并行数据转串行数据模块输入输出端口说明:

i.

ii. clk-----系统时钟,由按键V16通过消抖模块后提供。 din8-----8bits输入数据,需在时钟控制下,串行输出。

iii. reset----系统复位信号,当reset=1’b1时,系统输出复位,否则系统正常工作。

iv. din----------1bit输出信号。

该并行模块的设计如下:

module xulie_u1(clk,din8,reset,din );

input clk;

input[7:0] din8;

input reset;

output din;

parameter

s0 = 3'b000,

s1 = 3'b001,

s2 = 3'b010,

s3 = 3'b011,

s4 = 3'b100,

s5 = 3'b101,

s6 = 3'b110,

s7 = 3'b111;

reg[2:0] cur_state,next_state;

reg din;

always @ (posedge clk or posedge reset)

if(reset)

cur_state <= s0;

else

cur_state <= next_state;

always @ (cur_state or din8 or din )

begin

case (cur_state)

s0 : begin

din <= din8[7];

next_state <= s1;

end

s1 : begin

din <= din8[6];

next_state <= s2;

end

直接加封面就可以上交。。

s2 : begin

din <= din8[5];

next_state <= s3;

end

s3 : begin

din <= din8[4];

next_state <= s4;

end

s4 : begin

din <= din8[3];

next_state <= s5;

end

s5 : begin

din <= din8[2];

next_state <= s6;

end

s6 : begin

din <= din8[1];

next_state <= s7;

end

s7 : begin

din <= din8[0];

next_state <= s0;

end

default : begin

din <= 1'b0;

next_state <= s0;

end

endcase

end

endmodule

(四)对于串行检测模块其输入输出端口说明如下:

a) din-----1bit的串行输入数据

b) clk-----同步输入时钟

c) clr ------异步清零信号,当CLR=1,系统输出置0,否则,系统正常工作 d) AB--------4bits数据,如果系统检测到8’b11100101的串行输入,AB=4’b1010,否则,AB=4’b1011.

e) 其设计代码如下:

module schk_u2(din,clk,reset,AB);

input din;

input clk;

input reset;

output[3:0] AB;

直接加封面就可以上交。。

reg[3:0] AB;

reg[3:0] current_state,next_state;

parameter

st0=4'b0000,

st1=4'b0001,

st2=4'b0010,

st3=4'b0011,

st4=4'b0100,

st5=4'b0101,

st6=4'b0110,

st7=4'b0111,

st8=4'b1000;

always @ (posedge clk or posedge reset)

begin

if(reset)

current_state<=st0;

else

current_state<=next_state;

end

always @ (current_state or din)

begin

case(current_state)

st0:begin AB<=4'b1011; next_state<=(din==1)?st1:st0;end

st1:begin AB<=4'b1011; next_state<=(din==1)?st2:st0;end

st2:begin AB<=4'b1011; next_state<=(din==1)?st3:st0;end

st3:begin AB<=4'b1011; next_state<=(din==0)?st4:st3;end

st4:begin AB<=4'b1011; next_state<=(din==0)?st5:st1;end

st5:begin AB<=4'b1011; next_state<=(din==1)?st6:st0;end

st6:begin AB<=4'b1011; next_state<=(din==0)?st7:st1;end

st7:begin

if(din==1)

begin AB<=4'b1010;next_state<=st8;end

else

begin AB<=4'b1011;next_state<=st0;end

end

st8:begin AB<=4'b1011; next_state<=(din==1)?st1:st0;end

endcase

end

endmodule

(五)其中最后的LED驱动模块不做过多说明,只是简单的设计如下:

module decled7s_u3(AB,led7 );

input[3:0] AB;

output[6:0] led7;

直接加封面就可以上交。。

reg[6:0] led7;

wire[3:0] AB;

initial led7=7'b0000000;

always @ (AB)

begin

case(AB)

4'b1010:led7<=7'b1110111;

4'b1011:led7<=7'b1111100;

default:led7<=7'b0111111;

endcase

end

Endmodule

· (六)最终加入消抖模块综合结果如下:

(七)综合模块代码:

module XULIEQI(clk_50M,clk1,reset,din8,led7 );

input clk_50M,clk1;

input reset;

input [7:0] din8;

output [6:0] led7;

wire [3:0] AB;

wire din,clk;

debounce_module u1(clk_50M,reset,clk1,clk);

xulie_u1 u2(clk, din8, reset, din);

schk_u2 u3(din,clk,reset,AB);

decled7s_u3 u4(AB,led7);

endmodule

三、实验仿真

(一)根据实验过程综合程序结果:

直接加封面就可以上交。。

(二)实验引脚约束文 …… 此处隐藏:2757字,全部文档内容请下载后查看。喜欢就下载吧 ……

用状态机实现序列检测器的设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/736012.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)