序列检测器.doc_第1页
序列检测器.doc_第2页
序列检测器.doc_第3页
序列检测器.doc_第4页
序列检测器.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录第一章 设计方案11.1设计任务11.2设计要求11.2.1整体功能要求11.2.2测试要求1第二章 设计思路22.1数字频率计介绍22.2设计原理22.2.1频率测量的基本原理22.2.2整体方框图及原理2 2.2.3序列器结构框图2第三章 模块介绍43.1顶层文件模块4 3.1.1顶层文件原理43.1.2顶层文件模块verilog语言描述程序43.2伪随机序列发生器模块43.2.1伪随机序列发生器43.2.2伪随机序列发生器原理53.2.3伪随机序列发生器模块verilog语言描述程序63.3序列检测器模块7 3.3.1序列检测器原理7 3.3.2序列检测器模块verilog语言描述程序7第四章 序列检测器的实现84.1序列检测器的verilog语言程序描述及仿真8 4.1.1序列检测器的verilog语言程序描述8 4.1.2序列检测器的波形仿真94.2 设计中遇到的问题与解决方法10 4.2.1设计中遇到的问题10 4.2.2解决方法10第五章 设计小结115.1 心得体会11第一章 设计方案1.1设计任务在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,利用硬件描述语言Verilog HDL、EDA软件Quartus II和硬件平台Cyclone/Cyclone II FPGA进行电路系统的设计。1.2设计要求1.2.1整体设计要求1、 要求独立完成设计任务。2、 课程设计说明书封面格式要求见天津城建大学课程设计教学规范附表1。3、 课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、规范。4、 测试要求:根据题目的特点,采用相应的时序仿真或者在实验系统上观察结果。5、 课程设计说明书要求:1) 说明题目的设计原理和思路、采用方法及设计流程。2) 系统框图、Verilog语言设计程序或原理图。3) 对各子模块的功能以及各子模块之间的关系做较详细的描述。4) 详细说明调试方法和调试过程。5) 说明测试结果:仿真时序图和结果显示图,并对其进行说明和分析。1.2.2测试要求(1)可预置时钟信号。(2)可以在二极管上面显示测试结果。第二章 设计思路2.1序列检测器的介绍序列检测器就是将一个指定序列从数字码流中识别出来。序列检测器在数据通讯,雷达和遥测等领域中用与检测步识别标志。它是一种用来检测一组或多组序列信号的电路。序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。2.2设计原理2.2.1序列检测原理设X为数字码流的输入,Z为检测出标记输出,高电平表示发现指定的序列1101.考虑码流为11101101000011010.则,如表有:时钟123456789101112131415161718X11101101000011010Z00001001000000010在时钟2-5,码流X中出现了指定序列“1101”,对应输出Z在第5个时钟变为高电平“1”,表示“发现指定序列”,同样地,在时钟13-16码流,X中再次出现指定序列“1101”,Z输出“1”。注意,在时钟5-8还有一席检出,但它是与第一次检出的序列重叠的,即前者的前面一位同时也是后者的最后一位。2.2.2序列检测器整体方框图2.2.3序列检测器结构框图序列检测器的结构框图如图2-1所示。图2-1 序列检测器结构框图本实验有四种状态,即:Idle;Start;Step;Stop。由上图可知,很显然是莫尔型状态机,总共有四种状态, 4个状态机根据编码原则可以用2位二进制数来表示。第三章 模块介绍3.1顶层文件模块3.1.1顶层文件原理采用图形输入方式构成顶层文件,重新构造本系统。3.1.2顶层文件模块verilog语言描述程序module XULIEQI(clk,reset,din4,LED7S); input clk; input reset; input 3:0 din4; output LED7S; wire 3:0 AB; wire 3:0 din18; xulie u1 (clk, din4, reset, din); test u2 (din,clk,reset,rst); dec3s u3 (rst,LED7S); endmodule3.2伪随机序列发生器模块3.2.1伪随机序列发生器如果一个序列,一方面它是可以预先确定的,并且是可以重复地生产和复制的;一方面它又具有某种随机序列的随机特性(即统计特性),我们便称这种序列为伪随机序列。在扩展频谱通信系统中,伪随机序列起着十分关键的作用。在直接序列扩频系统得发射端,伪随机序列将信息序列的频谱扩展,在接收端,伪随机序列将扩频信号恢复为窄带信号,进而完成信息的接收。m序列又称为最长线形反馈移位寄存器序列,该序列具有很好的相关性能。m序列发生器的基本结构为:其中(Cr,Cr-1,C0)为反馈系数,也是特征多项式系数。这些系数的取值为“1”或“0”,“1”表示该反馈支路连通,“0”表示该反馈支路断开。下图为实际m序列发生器的电路图:图中利用D触发器级联的方式完成移位寄存器的功能。在系统清零后,D触发器输出状态均为低电平,为了避免m序列发生器输出全“0”信号,图中在“模二加”运算后添加了一个“非门”。从图中A、B、C、D四个节点均可得到同一m序列,只是序列的初始相位不同。特征多项式系数决定了一个m序列的特征多项式,同时也决定了一个m序列。下表给出了部分m序列的反馈系数(表中的反馈系数采用八进制表示)3.2.2伪随机序列发生器原理伪随机序列虽然不是真正的随机序列,但是当伪随机序列周期足够长时,伪随机序列具有随机序列的良好统计特性。伪随机序列中的m序列线性移位寄存器在逻辑上仅用加法器实现,其反馈函数形式f(x)=cn10cn21cn32 c0n1i,导航,集成电路的,其中cn1GF(2)是反馈系数,xiGF(2)是每位寄存器状态。而采用FPGA作为系统的核心控制器件,是由于FPGA的最终逻辑功能是通过向内部静态存储器单元加载配置数据来实现的,不同的配置文件决定了逻辑单元不同。3.2.3伪随机序列发生器模块verilog语言描述程序以下是伪随机序列发生器模块的verilog程序:module wsjxlfsq(clock,out,set);input clock,set;output out; reg4:0 sr; always (posedge clock) if(set) sr=5b10101; else begin sr1; sr4=sr2sr0;end assign out=sr0;endmodule以下是伪随机序列的电路连接图:3.3序列检测器模块3.3.1序列检测器原理序列检测器是时序数字电路中非常常见的设计之一。它的主要功能是:将一个指定的序列从数字码流中识别出来。设计采用移动滑窗法进行序列检测。3.3.2序列检测器模块verilog语言描述程序module moore1101(reset ,clk ,date_in ,date_out); input reset,clk,date_in; output date_out; reg2:0 state; parameter st0 = 3b000,st1 = 3b001,st2 = 3b010,st3 = 3b011,st4 = 3b100; always(negedgeclk or posedge reset)begin if(reset = 1) state = st0; end always(negedgeclk)begin case(state) st0: state = date_in?st1:st0; st1: state = date_in?st2:st0; st2: state = date_in?st2:st3; st3: state = date_in?st4:st0; st4: state = date_in?st2:st0; endcaseend assign date_out = state2; endmodule 第四章 序列检测器的实现4.1序列检测器的verilog语言程序描述及仿真4.1.1序列检测器的verilog语言程序描述module test(clk,rst,out,set);input clk,rst,set;/状态机工作时钟,复位控制,置零信号output out;/状态机对外部信号输出reg4:0 sr;wire detain;reg out;reg1:0temp;parameterIdle=2b00,Start=2b01,Step=2b10,Stop=2b11;/设定了4个状态参数always (posedge clk) if(set) sr=5b11101; else begin sr1; sr4=sr2sr0;endassign detain=sr0;always(posedge clk or negedge rst)if(!rst)begintemp=Idle;out=0;endelse case(temp)Idle:if(detain=1)begintemp=Start;out=0;endelsetemp=Idle;Start:if(detain=1)begintemp=Step;out=0;endelsetemp=Idle;Step:if(detain=0)begintemp=Stop;out=0;endelsetemp=Start;Stop:if(detain=1)begintemp=Idle;out=1;endelsebegintemp=Idle;out=0;endendcaseendmodule4.1.2序列检测器的波形仿真序列检测器的波形仿真图形如下图所示:4.2 设计中遇到的问题与解决方法4.2.1设计中遇到的问题 在设计中,我对程序设计方面很多都不是很在行,如伪随机序列发生器模块verilog语言描述程序,其次就是波形仿真,虽然在实验中学了不少,但对设置时间还是不太擅长。4.2.2解决方法我去网上查阅了相关资料,查了许多verilog语言描述程序,并询问同学有关问题,同学也都一一解答,还翻阅了以前的EDA实验报告,从报告书上看懂了一部分波形仿真的方法,并运用于此次的课程设计当中。第五章 设计小结5.1 心得体会通过这次课程设计,我觉得既锻炼了我们的设计,由简单的抽象理解到实际认知。特别的是使用Quartus 软件的仿真使我对它们的功能有了形象的认识,而且还可以帮助我们检查出错误,为以后的工作需要奠定了一定的基础。在这次实验中,也要感谢同学的帮助,相互讨论中也使我学习了他们不同的思考方式,使我明白了团体合作是很重要的。通过实验,我们真正体会到EDA带来的方便;通过仿真,我们能够很形象地了解到原理图的功能。体验到真实实验中的情境,增加了对电子实验和电子设计的信心。通过本设计,进一步加深了对Verilog HDL语言的理解及应用,理解了数码管的工作和译码的整个思路。用Verilog HDL语言来设计电路,思路更清晰,更简洁,实现起来更加的得心应手。这次EDA课程设计历时一个星期,在整整两个星期的日子里,学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。在波形仿真时,也遇到了一点困难,想要的结果不能

温馨提示

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

评论

0/150

提交评论