- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串行信号检测器精选
串行数据检测器一、实验目的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??//暂停仿真以便观察仿
您可能关注的文档
最近下载
- 粮油食材配送投标方案(大米食用油食材配送服务投标方案)(技术方案).doc
- 总承包管理重难点分析.docx VIP
- 配音设计意图怎么写范文精选13篇.docx VIP
- 广东省广州市越秀区执信中学2022-2023学年九年级上学期期末英语试题(含答案).docx VIP
- 超过一定规模的模板工程及支撑体系安全验收表.docx VIP
- 采购如何比价.pptx VIP
- 11、《预应力混凝土空心方桩图则》 苏TZG 01-2021.pdf VIP
- 2023年上海电机学院公共课《C语言》科目期末试卷A(有答案).docx VIP
- 2023年浙江艺术职业学院高职单招语文/数学/英语考试题库历年考题汇编答案详解析.docx
- 二十四史天文篇-魏书·天象志.doc VIP
文档评论(0)