串行信号检测器.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
串行信号检测器

串行数据检测器一、实验目的1.掌握利用有限状态机实现一般时序逻辑分析的方法;?2.掌握用verilog编写可综合的有限状态机的标准模板;?3.掌握用verilog编写状态机模块的测试文件的一般方法。二、实验要求1.设计一个串行数据检测器。要求:连续4个或4个以上为1时输出为1,其他输入情况为0?。编写测试模块对设计的模块进行各层次的仿真,并观察波形,编写实验报告。?2.实验设备(环境)及要求?实验设备:PC机一台?环境要求:安装Modelsim仿真软件以及Synplify?Pro综合工具??三、实验内容与步骤?1.分析序列检测器示意图2.序列检测器源代码serial_detected.v如下/*?*?@file??serial_detected.v?*?@Synopsis???这是一个利用有限状态机实现的串行数据检测器,?*???连续4个或4个以上为1时输出为1,其他输入情况为0?。*/module?serial_detected(din,clk,reset,out);??input?din;??//串行数据输入??input?clk;??//时钟输入?input?reset;??//异步复位信号输入??output?out;??//结果输出?reg?out;?reg?[3:0]?state,nextstate;//状态编码??parameter???Idle?=?3b000,???First_bit?=?3b001,???Second_bit?=?3b010,???Third_bit?=?3b011,???Fourth_bit?=?3b100;?//更新当前状态always?@(posedge?clk?or?negedge?reset)begin???if(!reset)????state?=?Idle;???else????state?=?nextstate;?end?//--产生下一状态组合逻always?@(state?or?din)??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?=?3bxxx;???endcase??end?always?@(state?or?reset?or?din)??begin???if(!reset)????out?=?0;???else????if(state?==?Fourth_bit)?????out?=?1;????else???out?=?0;end?endmodule编写测试模块test_serial_detected.v如下:/*?*?@File??test_serial_detected.v?*?@Synopsis?这是串口序列检测器的测试文件??`timescale?1ns/1ns?module?test_serial_detected;?reg?din;reg?clk,reset;??wire?out;??//--------初始化信号和变量------initial??begin???din?=?0;???reset?=?1;??//给复位信号变量赋初值??clk?=?0;??//给时钟变量赋初值?#22?reset?=?0;?//使复位信号有效?#133?reset?=?1;??//经过一个多周期以后是复位信号无效?end??//--------产生信号和控制always?#50?clk?=?~clk;??//产生周期性时钟?always?@(posedge?clk)?//在每次时钟正跳变沿时刻产生不同的din??begin???#50?din?=?{$random}%2;?//din的值是随机产生的???#(3*50+12);?//din的值维持一段时间??end??initial??//暂停仿真以便观察仿

文档评论(0)

文档精品 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档