《EDA技术》实验报告_序列检测器

发表于:2023.5.15来自:www.fanwen118.com字数:2581

EDA技术实验报告序列检测器

《EDA技术》实验报告

试验名称:序 列 检 测 器

院系名称:___________

专业名称:___________

课程名称:___________

班级 _______学号:_______ 姓名:_______

实验五 序列检测器

一、 实验目的:

1、

2、 掌握用Verilog HDL实现状态机的方法; 利用状态机设计一个序列检测器。

二、 实验原理:

序列检测器在数据通讯,雷达和遥测等领域中用与检测步识别标志。它是一种用来检测一组或多组序列信号的电路。例如检测器收到一组串行码{1110010}后,输出标志1,否则,输出0。

考查这个例子,每收到一个符合要求的串行码就需要用一个状态进行记忆。串行码长度为7位,需要7个状态;另外,还需要增加一个“未收到一个有效位”的状态,共8个状态;S0~S7,状态标记符的下标表示有几个有效位被读出。

画出状态转换图,如图5-1所示,很显然这是一个莫尔状态机。8个状态机根据编码原则可以用3位二进制数来表示。

图 5-1 序列检测器状态变化图

三、 设计任务及要求:

1、

2、

3、 用状态机实现一序列检测器,即检测到串行码{1110010}后,检测器输出1,否则输出0; 设计输入采用Verilog HDL语言; 对设计进行仿真;

四、 设计提示:

1、

2、

3、 状态机是实验时序电路的有效工具,用状态机实现时序检测器就是典型例子; 状态机的Verilog HDL 实现基本有固定模式,参见教程《数字系统设计与Verilog HDL》(第二版)第271~272页。 状态机实现的要点是在每个状态下,当时钟有效沿到来时,判断输入值是

EDA技术实验报告序列检测器

什么,然后决定下一状态跳转到什么地方。

五、 给出设计的源程序:

module seq(in,out,state,clk,reset);

input in,clk,reset; output out;output[2:0]state;

reg[2:0]state;reg out;

parameter s0='d0,s1='d1,s2='d2,s3='d3,s4='d4,s5='d5,s6='d6,s7='d7; always @(posedge clk)

begin if(reset) begin state<=s0;out<=0;end

else casex(state)

s0:begin

if(in==0) begin state<=s0;out<=0;end

else begin state<=s1;out<=0;end

end

s1:begin

if(in==0) begin state<=s0;out<=0;end

else begin state<=s2;out<=0;end

end

s2:begin

if(in==0) begin state<=s0;out<=0;end

else begin state<=s3;out<=0;end

end

s3:begin

if(in==0) begin state<=s4;out<=0;end

else begin state<=s3;out<=0;end

end

s4:begin

if(in==0) begin state<=s5;out<=0;end

else begin state<=s1;out<=0;end

end

s5:begin

if(in==0) begin state<=s0;out<=0;end

else begin state<=s6;out<=0;end

end

s6:begin

if(in==0) begin state<=s7;out<=1;end

else begin state<=s2;out<=0;end

end

s7:begin

if(in==0) begin state<=s0;out<=0;end

else begin state<=s1;out<=0;end

end

default:state<=s0;

endcase

end

endmodule

六、 给出序列检测器的仿真波形图:

EDA技术实验报告序列检测器

七、 心得体会:

此次实验,我觉得既锻炼了我们的设计,由简单的抽象理解到实际认知。特别的是使用M2软件的仿真使我对它们的功能有了形象的认识,而且还可以帮助我们检查出错误,为以后的工作需要奠定了一定的基础。

在这次实验中,也要感谢同学的帮助,相互讨论中也使我学习了他们不同的思考方式,使我明白了团体合作是很重要的。

通过实验,我们真正体会到EDA带来的方便;通过仿真,我们能够很形象地了解到原理图的功能。体验到真实实验中的情境,增加了对电子实验和电子设计的信心。

通过本设计,进一步加深了对Verilog HDL语言的理解及应用,理解了数码管的工作和译码的整个思路。用Verilog HDL语言来设计电路,思路更清晰,更简洁,实现起来更加的得心应手。这就是电子系统EDA最好的体现

八、 思考题:

1、 状态机处于S3状态时,若再输入一个“1”,为什么状态机仍停留在S3

状态,而不是其他状态?

答:因为连续四个1了,而检测要求的是三个1;所以检测还是当作连续三个1来算。

2、 什么叫一点热码编码状态机?

答:一位热码编码。采用这种编码方式,相对于格雷码来说虽然增加了触发器,但是节省了组合电路。提高了电路的速度和可靠性。例如5位的热码编码(5'b00001,5'b00010,5'b00100,5'b01000,5'b10000;)。与格雷码一样都是一位进行变化,唯一不同的是,一位热码是不需要进行逻辑运算的。




第二篇:EDA序列检测器的设计_实验报告 1100字

一、实验代码:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY CHK IS

PORT(DIN:IN STD_LOGIC;

CLK,CLR:IN STD_LOGIC;

D:IN STD_LOGIC_VECTOR(7 DOWNTO 0); AB:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END CHK;

ARCHITECTURE ART OF CHK IS

SIGNAL Q :INTEGER RANGE 0 TO 8;

BEGIN

PROCESS ( CLK,CLR )

BEGIN

IF CLR= '1' THEN Q<=0;

ELSIF CLK'EVENT AND CLK= '1' THEN

CASE Q IS

WHEN 0 => IF DIN =D(7) THEN Q<= 1 ;ELSE

Q<=0;END IF;

WHEN 1 => IF DIN =D(6) THEN Q<= 2 ;ELSE

Q<=0;END IF;

WHEN 2 => IF DIN =D(5) THEN Q<= 3 ;ELSE

Q<=0;END IF;

WHEN 3=> IF DIN =D(4) THEN Q<= 4 ;ELSE

Q<=0;END IF;

WHEN 4 => IF DIN =D(3) THEN Q<= 5 ;ELSE

Q<=0;END IF;

WHEN 5 => IF DIN =D(2) THEN Q<= 6 ;ELSE

Q<=0;END IF;

WHEN 6 => IF DIN =D(1) THEN Q<= 7 ;ELSE

Q<=0;END IF;

WHEN 7 => IF DIN =D(0) THEN Q<= 8 ;ELSE

Q<=0;END IF;

WHEN OTHERS => Q<=0;

END CASE;

END IF ;

END PROCESS;

PROCESS(Q)

BEGIN

IF Q= 8 THEN AB<= "1010"; ELSE AB<= "1011"; END case;

END IF ;

END PROCESS;

END behave;

二、实验结果:

EDA序列检测器的设计实验报告

更多类似范文
┣ 更多检测技术实验报告

更多相关推荐:
EDA技术使用教程VHDL版实验报告4

EDA技术实验报告实验报告1EDA技术实验报告2EDA技术实验报告EDA技术实验报告4

电子设计自动化EDA技术实验一报告模板-EDA开发软件Max+plus II或Quartus II100字

南京工程学院自动化学院实验报告课程名称电子设计自动化EDA技术实验项目名称EDA开发软件MaxplusII实验学生班级实验学生姓名同组学生姓名实验时间实验地点实验成绩评定指导教师签字年月日

专栏推荐
大家在关注