数字系统设计实验报告_串行数据检测器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告 课程名称:____数字系统设计______ 指导老师:____张培勇____ 成绩:__________________ 实验名称:___串行数据检测器____ 实验类型:______________同组学生姓名:___________

一、实验目的和要求(必填) 二、实验内容和原理(必填)

三、主要仪器设备(必填) 四、操作方法和实验步骤

五、实验数据记录和处理 六、实验结果与分析(必填)

七、讨论、心得

数字系统设计 串行数据检测器

一、实验目的和要求

(1)掌握简单时序电路的实现方法;

(2)初步了解两种简单时序电路的生成方法;

(3)学习串行数据检测的实现方法。

(4)学习测试模块的编写;

二、实验内容和原理

实验原理:使用Verilog HDL 语言描述一个时序电路,然后用实际的器件实现该时序电路。

实验内容:设计一个串行数据检测器。

要求:连续4个或4个以上为1时输出为1,其他输入情况下为0.编写测试模块对设计的模块进行各种层次的仿真,并观察波形。

三、主要仪器设备

(1)软件:Xilinx ISE 8.2i

(2)符合要求的PC 一台。

四、实验步骤

(一)设计状态转换图

(二)用Xilinx 进行仿真验证状态图的合理性

1根据总结出的状态转换图编写代码

编写主模块

专业:__电子信息0702__

姓名:______陈辰_______

学号:___3071001171____

日期:___2009.12.29_____

地点:

_________________

//---------------文件名chuankou.v -----------------

module chuankou(clk,x,reset,out);

input clk,reset,x;

output out;

parameter S_RESET=0;

parameter S_01=1;

parameter S_011=2;

parameter S_0111=3;

parameter S_01111=4;

reg [2:0] state;

always @ (posedge clk)

begin

if(reset) state<=S_RESET;

else

case(state)

S_RESET: state<=x ? S_01 : S_RESET;

S_01 : state<=x ? S_011 : S_RESET;

S_011 : state<=x ? S_0111 : S_RESET;

S_0111 : state<=x ? S_01111 :S_RESET;

S_01111: state<=x ? state : S_RESET;

default:state<=S_RESET;

endcase

end

assign out=(state==S_01111);

endmodule

//---------------结束-----------------

2综合成原理图

Synthesize View RTL schematic :

Synthesize View Technology Schematic

3、编写测试代码

//---------------文件名tb_chuankou.v ----------------- module tb_chuankou_v;

// Inputs

reg clk;

wire x;

reg reset;

reg [23:0]data;

// Outputs

wire out;

// Instantiate the Unit Under Test (UUT)

chuankou uut (

.clk(clk),

.x(x),

.reset(reset),

.out(out)

);

assign x=data[23];

always begin

#5 clk = ~clk ;

end

always@(posedge clk)

data={data[22:0],data[23]};

initial begin

// Initialize Inputs

clk = 0;

reset = 1;

#10;reset=0;

data='b010110111101111101111111;

#390; reset=1;

#10; reset=0;

#100;$stop;

end

endmodule

//---------------结束-----------------

4、模块仿真波形及分析:

分析:

在仿真测试中,reset信号宽度应稍微大些,以确保期间有clk上升沿。

如图所示:

A、B、C、D、E代表的过程,分别对应于x为连续1个1,两个1,4个1,5个1,7个1,只有连续1的个数大于等于4个,输出才出现1,此时对应状态S_01111(4);状态都是在连续4个1之后变为S_01111,即状态4,输出out为1,之后输入为1则维持,一旦输入为0,则状态回到S_RESET,out为0。

F代表的过程中,在状态变为S_01111,输出为1后,继续输入1,但是来了reset信号,状态转为S_RESET,输出变为0。

综上得,仿真的结果与预期的设计逻辑内容(状态转换设计)相符合,同时也验证了设计的状态转化图为合理可行的。

5、判断是moore型还是mealy型

可见,输出与输入无关(蓝线没有从x的引出),是摩尔(Moore)型实现的电路。

相关文档
最新文档