好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

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

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

一、实验目的

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

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

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

实验原理与设计过程

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

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

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

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

对于并行数据转串行数据模块输入输出端口说明: clk-----系统时钟,由按键V16通过消抖模块后提供。 din8-----8bits输入数据,需在时钟控制下,串行输出。

reset----系统复位信号,当reset=1’b1时,系统输出复位,否则系统正常工作。 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

对于串行检测模块其输入输出端口说明如下: din-----1bit的串行输入数据 clk-----同步输入时钟

clr ------异步清零信号,当CLR=1,系统输出置0,否则,系统正常工作

AB--------4bits数据,如果系统检测到8’b的串行输入,AB=4’b1010,否则,AB=4’b1011. 其设计代码如下:

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)

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

1.掌握基于语言的ISE设计全流程;实验三:用状态机实现序列检测器的设计一、实验目的用状态机实现序列检测器的设计,并对其进行仿真和硬件测试。掌握基于语言的ISE设计全流程;熟悉、应用VerilogHDL描述数字电路;实验原理与设计过程实验内容:序列检测器可用于检测
推荐度:
点击下载文档文档为doc格式
3v3st91k716c4rp7oypx5gf8x599m300sw8
领取福利

微信扫码领取福利

微信扫码分享