随机数据流序列检测器

上传人:mar****e5 文档编号:172001673 上传时间:2022-11-30 格式:DOCX 页数:10 大小:131.75KB
收藏 版权申诉 举报 下载
随机数据流序列检测器_第1页
第1页 / 共10页
随机数据流序列检测器_第2页
第2页 / 共10页
随机数据流序列检测器_第3页
第3页 / 共10页
资源描述:

《随机数据流序列检测器》由会员分享,可在线阅读,更多相关《随机数据流序列检测器(10页珍藏版)》请在装配图网上搜索。

1、设计项目成绩评定表一、设计任务及要求:1、设计任务:编写程序实现序列检测的功能并进行字符检测。2、要求:在测试文件中产生随机的数据流,流过序列检测器进行字符检测,最终利 用modelsim仿真工具,仿真输出“I Love ZhiXin。指导教师签名:年 月 日二、指导教师评语:项目成绩:指导教师签名:年 月 日设计报告目录一、设计目的1二、设计思路1三、设计过程3.1、系统方案论证3.2、程序代码编写1错误!未定义书签。四、系统调试与结果五、主要元器件与设备六、课程设计体会与建议76.1、设计体会86.2、设计建议8七、参考文献8一、设计目的1、了解序列检测器的工作原理;2、掌握时序电路设计中

2、状态机的应用;3、设计随机数据流序列检测器;4、进一步掌握用VERILOG语言实现复杂时序电路的设计过程。二、设计思路1、设计检测器电路。2、利用状态机检测数据流。3、编写程序代码及测试代码。4、利用modelsim进行仿真随机输出“I Love ZhiXin。三、设计过程3.1、系统方案论证检测电路总体方框图如图 1 所示。capflowI 一rlowflow图1数字抢答器框图图 1 检测器原理框图其工作原理为:输入输出如上图所示,输入端 cap_flow 的输入是随机输入的大写字母数据流,输入端low_flow输入的是小写字母数据流,输出端outputflow输出的是从两个输入字母流中检出

3、的字符组成“I Love ZhiXin”(注:大写字母数据和小写字母的产生方式均是用ASIC值来实现的) 状态机转换图如图(2)所示:图2状态转换图32程序代码编写:1、程序代码:module jianceqi( /系统输入rs t_n,/低电平复位 elk,/系统50MHZ时钟输入 cap_flow,/随机大写字母输入 low_flow,/ 随机小写字母输入/系统输出 output _flow/数据输出端口);input rst_n; /低电平复位 input elk; /系统50MHZ时钟输入 input 7:0cap_flow; /随机大写字母输入 input 7:0low_flow;

4、/ 随机小写字母输入 output reg 7:0 output_flow; /数据输出端口 reg 3:0state;/定义十三个状态 parameter S0=4b0000; parameter S1=4b0001;parameter S2=4b0010;parameter S3=4b0011;parameter S4=4b0100;parameter S5=4b0101;parameter S6=4b0110;parameter S7=4b0111;parameter S8=4b1000;parameter S9=4b1001; parameter S10=4b1010;paramete

5、r S11=4b1011;parameter S12=4b1100; /控制逻辑always(posedge clk or negedge rst_n) beginif(!rst_n)/ 复位有效beginoutput_flow=0;/ 输出端输出 0 state=S0;/ 状态跳转到 S0 endelsebegin case(state)S0:begin /S0 状态用来检测大写字母数据流中是否出现 I if(cap_flow=I)/ 如果出现begin state=S1;/ 状态跳转到 S1 output_flow=cap_flow;/* 输出端输出检测到的字 母 I*/endelse s

6、tate=S0;/ 否则等待检测大写字母输入端 endS1:beginoutput_flow= ;/ 在本状态输出 I 后的空格 state=S2;end S2:begin if(cap_flow=L)/ 在本状态检测是否输入了字母 L beginstate=S3;/ 状态跳转到 S3 output_flow=cap_flow; /* 输出端输出检测到的字 母 L*/endelsestate=S2; / 否则等待检测大写字母输入端母 o*/母 v*/母 e*/母 Z*/endS3:begin if(low_flow=o)/ 在本状态检测是否输入了字母 o beginstate=S4; / 状态

7、跳转到 S4 output_flow=low_flow; /* 输出端输出检测到的字endelsestate=S3; / 否则等待检测小写字母输入端 endS4:begin if(low_flow=v)/ 在本状态检测是否输入了字母 v beginstate=S5; / 状态跳转到 S5 output_flow=low_flow; /* 输出端输出检测到的字endelsestate=S4; / 否则等待检测小写字母输入端 endS5:begin if(low_flow=e)/ 在本状态检测是否输入了字母 e beginstate=S6; / 状态跳转到 S6 output_flow=low_f

8、low; /* 输出端输出检测到的字endelsestate=S5; / 否则等待检测小写字母输入端 endS6:begin/在本状态输出 Love 后的空格output_flow= ; state=S7; / 状态跳转到 S7 endS7:beginif(cap_flow=Z)/ 在本状态检测是否输入了字母 Z beginstate=S8; / 状态跳转到 S8 output_flow=cap_flow; /* 输出端输出检测到的字endelsestate=S7; / 否则等待检测大写字母输入端母 h*/母 i*/母 X*/母 i*/endS8:begin if(low_flow=h)/ 在

9、本状态检测是否输入了字母 h beginstate=S9; / 状态跳转到 S9 output_flow=low_flow; /* 输出端输出检测到的字endelsestate=S8; / 否则等待检测小写字母输入端 endS9:begin if(low_flow=i)/ 在本状态检测是否输入了字母 i beginstate=S10; / 状态跳转到 S10 output_flow=low_flow; /* 输出端输出检测到的字endelsestate=S9; / 否则等待检测小写字母输入端 endS10:begin if(cap_flow=X)/ 在本状态检测是否输入了字母 X begins

10、tate=S11; / 状态跳转到 S11 output_flow=cap_flow; /* 输出端输出检测到的字endelsestate=S10; / 否则等待检测大写字母输入端 endS11:begin if(low_flow=i)/ 在本状态检测是否输入了字母 i beginstate=S12; / 状态跳转到 S12 output_flow=low_flow; /* 输出端输出检测到的字endelsestate=S10; / 否则等待检测小写字母输入端 endS12:beginif(low_flow=n)/ 在本状态检测是否输入了字母 n beginstate=S0; / 状态跳转到

11、S0 output_flow=low_flow; /* 输出端输出检测到的字 母 n*/endend default:beginoutput_flow=0; state=S0;end endcase endend endmodule2. 测试代码:timescale lns/lnsmodule tb;reg rst_ n;/低电平复位reg clk;/系统50MHZ时钟输入reg 7:0cap_flow; /随机大写字母输入reg 7:0low_flow; /随机小写字母输入wire 7:0 ou tpu t_flow;/数据输出端口initialbegin rst_n=0; clk=1;#

12、100 rst_n=1; endalways #10 clk=clk; always(posedge clk) begin#3 cap_flow=65+$random%26;/*由于大写字母的 ASCII 值在 6590 之 间,这条代码用于生成随机的大写字母数据流*/#5 low_flow=97+$random%26; /*由于小写字母的 ASCII 值在 97122 之间,这条代码用于生成随机的小写字母数据流*/endjianceqi jianceqi(/系统输入.rs t_n(rs t_n),/低电平复位 .clk(clk),/系统50MHZ时钟输入 .cap_flow(cap_flow

13、), /随机大写字母输入 .low_flow(low_flow), /随机小写字母输入/系统输出.output_flow(output_flow) /数据输出端口);endmodule系统调试与结果1、打开 Quartus 文件,建立工程文件;2、完成设计输入环节,编写程序代码及测试代码3、完成全编译;4、调用 Modelsim 进行仿真;5、分析仿真图形,检查程序。 仿真程序图如图(3)所示:图3 仿真程序图五、主要元器件与设备EDA 软件 Quartus II 和 Modelsim 软件六、课程设计体会与建议6.1、设计体会在这次实训过程中我们根据已经掌握的理论基础,结合实践,经过一个周

14、的努力,终于完成基于FPGA的随机数据流序列检测器的设计,该设计已经通过 测试,运行良好。在整个设计过程中,我遇到问题,通过自己的努力解决问题,充分发挥人 的主观能动性,自主学习,学习到了许多没有学到的东西,较好的完成了作品, 达到了预期的目的,完成了最初的设想。尽管我的设计还存在一定缺陷,但这不是最重要的,最重要的是学到了很 多东西,比如对 FPGA 有了更加深入的学习和了解。再者,经过这次实训,让我 对思考问题的方法有了新的认识。脚踏实地,认真严谨,实事求是的学习态度,坚持不懈的精神是我在这次设 计中最大的收益。我想这是一次实际能力的提升,也会对我未来的学习和工作有 很大的帮助。6.2、设计建议我希望老师在我们动手制作之前应先告诉我们一些关于所设计检测器的原 理图,以及实现其功能的大概原理。这样会有助于我们更快的进入状态,完成设 计。再者,多出一些课题,拓宽我们的视野。以便于更好提高我们的能力。七、参考文献1 夏宇闻.第二版Verilog数字系统设计教程北京:北京航空航天大学出版社,2008.2 杨晓慧、杨旭编著.FPGA系统设计与实例.北京:人民邮电出版社,2010.3 罗杰、谢自美编著电子线路设计、实验、测试北京:电子工业出版社, 2008.4 杜慧敏、李宥谋、赵全良编著基于 Verilog 的 FPGA 设计基础西安:西安电子科 技大学, 2006

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!