verilog实现序列检测器.docx

上传人:b****3 文档编号:4108845 上传时间:2023-05-06 格式:DOCX 页数:8 大小:153.31KB
下载 相关 举报
verilog实现序列检测器.docx_第1页
第1页 / 共8页
verilog实现序列检测器.docx_第2页
第2页 / 共8页
verilog实现序列检测器.docx_第3页
第3页 / 共8页
verilog实现序列检测器.docx_第4页
第4页 / 共8页
verilog实现序列检测器.docx_第5页
第5页 / 共8页
verilog实现序列检测器.docx_第6页
第6页 / 共8页
verilog实现序列检测器.docx_第7页
第7页 / 共8页
verilog实现序列检测器.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

verilog实现序列检测器.docx

《verilog实现序列检测器.docx》由会员分享,可在线阅读,更多相关《verilog实现序列检测器.docx(8页珍藏版)》请在冰点文库上搜索。

verilog实现序列检测器.docx

verilog实现序列检测器

西北工业大学

《串行数据检测器》实验报告

 

学院:

软件与微电子学院

学  号:

200830****

姓  名:

陈昊

专业:

微电子学

实验时间:

2010年11月

实验地点:

实验室及宿舍

指导教师:

 

西北工业大学

2010年11月

 

一、实验目的及要求

目的:

1、掌握利用有限状态机实现一般时序逻辑分析的方法;

2、掌握用verilog编写可综合的有限状态机的标准模板;

3、掌握用verilog编写状态机模块的测试文件的一般方法。

要求:

1.设计一个串行数据检测器。

要求:

连续4个或4个以上为1时输出为1,其他输入情况为0。

编写测试模块对设计的模块进行各层次的仿真,并观察波形,编写实验报告。

二、实验设备(环境)及要求

实验设备:

PC机一台

环境要求:

安装Modelsim仿真软件以及SynplifyPro综合工具

三、实验内容与步骤

1.分析序列检测器示意图

2.参照可综合有限状态机模板编写序列检测器源代码serial_detected.v如下

/*

*@fileserial_detected.v

*@Synopsis这是一个利用有限状态机实现的串行数据检测器,

*连续4个或4个以上为1时输出为1,其他输入情况为0。

*@Author陈昊,@

*@Version1

*@Date2010-11-04

*/

/*

*Copyright(C)2010-

*By陈昊

*Allrightreserved

*

*/

moduleserial_detected(din,clk,reset,out);

inputdin;//串行数据输入

inputclk;//时钟输入

inputreset;//异步复位信号输入

outputout;//结果输出

regout;

reg[3:

0]state,nextstate;

//状态编码

parameter

Idle=3'b000,

First_bit=3'b001,

Second_bit=3'b010,

Third_bit=3'b011,

Fourth_bit=3'b100;

//----------------更新当前状态--------------------------

always@(posedgeclkornegedgereset)

begin

if(!

reset)

state<=Idle;

else

state<=nextstate;

end

//------------------------------------------------------

//-------------产生下一状态组合逻辑---------------------

always@(stateordin)

begin

case(state)

Idle:

if(din)

nextstate=First_bit;

else

nextstate=Idle;

First_bit:

if(din)

nextstate=Second_bit;

else

nextstate=Idle;

Second_bit:

if(din)

nextstate=Third_bit;

else

nextstate=Idle;

Third_bit:

if(din)

nextstate=Fourth_bit;

else

nextstate=Idle;

Fourth_bit:

if(din)

nextstate=Fourth_bit;

else

nextstate=Idle;

default:

nextstate=3'bxxx;

endcase

end

//------------------------------------------------------

//--------------产生输出的组合逻辑----------------------

always@(stateorresetordin)

begin

if(!

reset)

out<=0;

else

if(state==Fourth_bit)

out<=1;

else

out<=0;

end

//------------------------------------------------------

endmodule

3.编写测试模块test_serial_detected.v如下

/*

*@Filetest_serial_detected.v

*@Synopsis这是串口序列检测器的测试文件

*@Author陈昊,@

*@Version1

*@Date2010-11-04

*/

/*

*Copyright(0C)2010-

*By陈昊

*Allrightreserved

*/

`timescale1ns/1ns

moduletest_serial_detected;

regdin;

regclk,reset;

wireout;

//--------初始化信号和变量--------------------------

initial

begin

din=0;

reset=1;//给复位信号变量赋初值

clk=0;//给时钟变量赋初值

#22reset=0;//使复位信号有效

#133reset=1;//经过一个多周期以后是复位信号无效

end

//---------------------------------------------------

//--------产生信号和控制-----------------------------

always#50clk=~clk;//产生周期性时钟

always@(posedgeclk)//在每次时钟正跳变沿时刻产生不同的din

begin

#50din<={$random}%2;//din的值是随机产生的

#(3*50+12);//din的值维持一段时间

end

initial//暂停仿真以便观察仿真波形

begin

#100000$stop;

end

//---------------------------------------------------

//----------------调用被测试模块---------------------

serial_detectedtsd(.clk(clk),.reset(reset),.out(out),.din(din));

//---------------------------------------------------

endmodule

4.利用Modelsim编译纠错和仿真

5.利用SynplifyPro进行综合

6.利用Quartus2进行布局布线

四、实验结果与数据处理

1.Modelsim仿真波形如下,自上向下信号依次为reset、clk、din、out

2.选择AlteraSTRATIX器件库综合产生的RTL级电路如下

3.使用QuatusII进行布局布线结果如下

4.使用Modelsim进行后仿真波形如下

五、分析与讨论

用有限状态机编写的该序列检测器成功的通过了综合和布局布线,分析前仿真和后仿真波形发现,该电路功能完全正确,实现了预定任务。

六、教师评语

签名:

日期:

成绩

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2