〔EDA技术〕实验报告序列检测器.docVIP

  • 19
  • 0
  • 约2.65千字
  • 约 4页
  • 2017-06-09 发布于北京
  • 举报
〔EDA技术〕实验报告序列检测器

成绩指导老师日期 《EDA技术》实验报告 试验名称:序 列 检 测 器 院系名称:___________ 专业名称:___________ 课程名称:___________ 班级 _______学号:_______ 姓名:_______ 实验五 序列检测器 实验目的: 掌握用Verilog HDL实现状态机的方法; 利用状态机设计一个序列检测器。 实验原理: 序列检测器在数据通讯,雷达和遥测等领域中用与检测步识别标志。它是一种用来检测一组或多组序列信号的电路。例如检测器收到一组串行码{1110010}后,输出标志1,否则,输出0。 考查这个例子,每收到一个符合要求的串行码就需要用一个状态进行记忆。串行码长度为7位,需要7个状态;另外,还需要增加一个“未收到一个有效位”的状态,共8个状态;S0~S7,状态标记符的下标表示有几个有效位被读出。 画出状态转换图,如图5-1所示,很显然这是一个莫尔状态机。8个状态机根据编码原则可以用3位二进制数来表示。 0 1 1 1 1 0 1 1 1 0 0 0 0 S0/0 S1/0 S2/0 S3/0 S7/1 S6/0 S5/0 S4/0 0 0 1 图 5-1 序列检测器状态变化图 设计任务及要求: 用状态机实现一序列检测器,即检测到串行码{1110010}后,检测器输出1,否则输出0; 设计输入采用Verilog HDL语言; 对设计进行仿真; 设计提示: 状态机是实验时序电路的有效工具,用状态机实现时序检测器就是典型例子; 状态机的Verilog HDL 实现基本有固定模式,参见教程《数字系统设计与Verilog HDL》(第二版)第271~272页。 状态机实现的要点是在每个状态下,当时钟有效沿到来时,判断输入值是什么,然后决定下一状态跳转到什么地方。 给出设计的源程序: 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 给出序列检测

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档