数字系统设计实验报告_串行数据检测器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)型实现的电路。