EDA 课程设计M序列及相关检测器_第1页
EDA 课程设计M序列及相关检测器_第2页
EDA 课程设计M序列及相关检测器_第3页
EDA 课程设计M序列及相关检测器_第4页
EDA 课程设计M序列及相关检测器_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、目录任务书1第一章 系统分析21.1QuartusII简介2第二章 设计内容及要求32.1设计的目的及主要任务3设计目的32.1.2 设计内容依据32.2设计思想3第三章 设计原理与模块分析43.1 序列检测器介绍43.2 序列检测器设计原理43.3 序列检测器模块43.3.1 分频器模块43.3.2 序列输入模块53.3.3 序列检测模块53.4顶层文件6第四章 电路仿真与分析84.1 单元模块的仿真与分析84.1.1 分频器模块的仿真与分析84.1.2 序列信号输入模块的仿真与分析84.1.3 序列检测模块的仿真与分析84.2 顶层电路的仿真与分析9第五章 电路的硬件调试10参考文献11附

2、录11天津城建大学课程设计任务书 系 专业 班级课程设计名称: EDA技术及应用B 设计题目: M序列及相关检测器 完成期限:自 年 月 日至 年 月 日共 1 周一课程设计依据在掌握常用数字电路原理和技术的基础上,根据EDA技术及应用课程所学知识,利用硬件描述语言(VHDL或VerilogHDL),EDA软件(Quartus)和硬件开发平台(达盛试验箱CycloneFPGA)进行初步数字系统设计。二课程设计内容设计八位线性反馈移位寄存器产生伪随机序列,串行输出9600bit/s速率伪随机码用做测试数据,序列检测器对该序列进行10101010序列检测,连接伪随机序列发生器和序列检测器构成完整系

3、统,如果检测到该码,则输出1指示灯亮,否则输出0。要求采用由状态机或串行滑窗方法检测器。三课程设计要求1.要求独立完成设计任务。2.课程设计说明书封面格式要求见天津城建大学课程设计教学工作规范附表13.课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、规范。4.测试要求:根据题目的特点,采用相应的时序仿真或者在实验系统上观察结果。5.课设说明书要求:1) 说明题目的设计原理和思路、采用方法及设计流程。2) 对各子模块的功能以及各子模块之间的关系作明确的描述。3) 对实验和调试过程,仿真结果和时序图进行说明和分析。4) 包含系统框图、电路原理图、HDL设计程序、仿真测试图。指导教

4、师(签字): 教研室主任(签字): 批准日期: 第一章 系统分析1.1QuartusII简介Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Alt

5、era的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。但Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法,所以Quartus II替代该公司

6、早期的Maxplus II软件。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。改进了软件的LogicLock模块设计功能,增添 了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。支持MAX7000/MAX3000等乘积项器件。第二章 设计内容及要求2.1设计的目的及主要任务设计目的学会在Quartus环境中运用VHDL语言设计方法构建

7、具有一定逻辑功能的模块,并能运用图形设计方法完成顶层原理图的设计。 掌握序列信号检测器的原理和程序的编写以及在CPLD中的实现方法。 设计内容依据在掌握常用数字电路原理和技术的基础上,根据EDA技术及应用课程所学知识,利用硬件描述语言(VHDL或VerilogHDL),EDA软件(Quartus)和硬件开发平台(达盛试验箱CycloneFPGA)进行初步数字系统设计。设计八位线性反馈移位寄存器产生伪随机序列,串行输出9600bit/s速率伪随机码用做测试数据,序列检测器对该序列进行10101010序列检测,连接伪随机序列发生器和序列检测器构成完整系统,如果检测到该码,则输出1指示灯亮,否则输出

8、0。要求采用由状态机或串行滑窗方法检测器。2.2设计思想本次课程设计在Quartus环境中对序列信号检测器的各个部分利用VHDL这一硬件描述语言来设计各个模块。整个电路包括分频器模块、序列输入模块、序列检测模块6。而整个设计的核心部分就在序列检测模块,该模块利用状态机来编写程序。随后运用Quartus中的仿真功能对各个模块进行仿真,从仿真的结果中分析程序的正确性。待所有模块的功能正确之后,运用原理图搭建顶层电路并进行整体仿真实现整体的功能,最后再在实验箱上检验设计的正确与否,并输出标志信号。第三章 设计原理与模块分析3.1 序列检测器介绍序列检测器就是将一个指定序列从数字码流中识别出来。序列检

9、测器在数据通讯,雷达和遥测等领域中用与检测步识别标志。它是一种用来检测一组或多组序列信号的电路。序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。3.2 序列检测器设计原理 序列信号检测器是具有能识别任意一串二值信号中某特殊码组功能的逻辑电路。通过输入任意一组想要检测的序列信号

10、,通过状态转移这一部分的检测,来识别这组序列。序列信号检测电路在序列信号正常工作时,如果检测到待测码组,则电路输出识别信号,本次设计中使用一个发光二极管LED灯来表示,灯亮则表示检测到正确的序列,灯灭表示检测的序列错误。设计序列信号检测器的关键在于获取正确的状态转移图。为了减少错误检测的概率,凡是序列信号检测器都应该预置起始状态。3.3 序列检测器模块 序列信号检测器一共有三个主模块,分频模块,序列信号输入模块,序列检测模块。原理框图如下图所示。 分频模块序列输入模块序列检测模块输入时钟信号输入序列信号输出标志信号图1 序列检测器系统原理框图 分频器模块 由于实验箱上的时钟信号是20MHz,对

11、于本实验频率过大,需要一个分频模块得到我们需要的频率。分频模块的逻辑图如下。图2 分频器逻辑图 序列输入模块 通过设计一个序列输入模块,将所需要检测的序列输入检测模块进行检测,本次所需检测的序列是十位二进制码,设计十一个输入端口,一个清零端rst,十个序列输入口,在实验箱上通过十一个拨码开关控制。其逻辑图如下图所示。图3 序列输入逻辑图 序列检测模块设计要求序列信号检测器能够从收到的一组串行码流中检出同步码组,我们预先设定该码组为1110101101,同时输出检测结果标志信号,即LED灯亮。该检测模块有三个输入信号,即时钟信号输入端CLK,清零端RST,预设初始状态,序列输入端DIN,一个输出

12、信号Q输出检测结果。图4 序列检测逻辑图输入信号DIN是一组串行二进制码,输出信号Q是检测结果标志信号,若检测到预设码组则其值为1,否则为0。检测器每收到一个符合要求的串行码,就需要一个状态进行记忆,因为要求检测的同步码组有10位,因此需要10个状态(S1S10)。此外,检测器还要预置初始状态,根据设计要求,设检测器的初始状态为S0。我们定义检测过程中的状态S0S10如:S0=0;S1=1;S2=11;S3=111;S4=1110;S5=11101;S6=111010;S7=1110101;S8=11101011;S9=111010110;S10=1110101101。序列检测器的状态转换图如

13、下图所示。图中S0/0表示序列状态机的状态为S0,输出为0。 S0/0、?、?S1/0S2/0S3/0S6/0S4/0S9/0S8/0S7/0S5/0S10/11110101101101001010000图5 序列检测器状态转换图从图中可以看出,当序列检测器的状态为S0,如果输入信号为1,则状态装换为S1,否则维持原状态;当序列检测器状态为S1,如果输入信号为1,则状态装换为S2,否则转换为S0;当序列检测器的状态为S2,如果输入信号为1,则状态转换为S3,否则转换为S0;当序列检测器的状态为S3,如果输入信号为0,则状态转换为S4,否则保持原态S3;当序列检测器的状态为S4,如果输入信号为1

14、,则状态转换为S5,否则转换为S0;当序列检测器的状态为S5,如果输入信号为0,则状态转换为S6,否则转换为S2;当序列检测器的状态为S6,如果输入信号为1,则状态转换为S7,否则转换为S0;当序列检测器的状态为S7,如果输入信号为1,则状态转换为S8,否则转换为S0;当序列检测器的状态为S8,如果输入信号为0,则状态转换为S9,否则转换为S3;当序列检测器的状态为S9,如果输入信号为1,则状态转换为S10,否则转换为S0;当序列检测器的状态为S10,此时输出信号为1,如果输入信号为0,则状态转换为S0,否则转换为S1。3.4顶层文件将各个模块完成以后,设置顶层文件,根据系统的原理框图将各个模

15、块连接起来。按已经确立的层次化设计思路,在图形编辑中调入前面的层次化设计方案中所设计的底层的元件符号div.sym、xlsr.sym、xljc.sym,并加入相应的输入输出引脚与辅助元件。完成序列检测器的顶层原理图搭建,最终得到的顶层电路原理图如下图所示。图6 序列信号检测器顶层电路原理图第四章 电路仿真与分析4.1 单元模块的仿真与分析 分频器模块的仿真与分析 实验箱上20MHz频率输入分成较小的时钟频率,如10Hz,1Hz等。所设计的分频器的仿真波形如下图所示。图7 分频器仿真波形图 上图中clk为原本实验箱上的时钟输入,经过分频器分频后,输出Q的频率明显比原频率小。本次课设是将20MHZ

16、的时钟输入频率分成1HZ的频率。 序列信号输入模块的仿真与分析 本次课设要求检测的序列为1110101101,通过VHDL语言设计序列输入的源程序,设计十个输入口p1p10让序列输入,一个输出口输出到达的序列信号q。仿真波形如下图所示。图8 序列输入模块仿真波形图从波形图中可以看出,当输入序列口p1p10输入所要检测的序列1110101101时,输出口q输出也为序列1110101101,说明仿真波形正确。 序列检测模块的仿真与分析 此模块的序列输入口为X,当输入口输入的序列为所需检测的序列时,输出Y为逻辑1,否则为逻辑0。此模块的仿真波形如下图所示。图9 序列检测模块仿真波形图4.2 顶层电路

17、的仿真与分析各个模块完成之后,按照系统原理框图来搭建顶层整体电路,编译成功后进行仿真,整体电路的仿真波形如下图所示。图10 顶层电路仿真波形图第五章 电路的硬件调试在仿真部分,分频器模块、序列信号输入模块、序列检测模块均完全正确,顶层文件模块的仿真出现错误,最后应该输出一个高电平显示序列信号检测正确,但Q一直为低。经反复检查无法发现错误。进行硬件测试,输出经Quartus中的“PROGRAMMER”菜单,调出编程器窗口。一切就绪后,按下编程器窗口中的“START”按钮,设计的内容就开始下载到CPLD芯片中。然后经过调节所设置的拨码开关,一个控制清零,即序列检测的开始与停止,接着的十个拨码开关控

18、制十位的二进制码,可以任意改变输入序列,在实验箱上可观察到,当输入序列为所需检测的序列1110101101时,设置的一位LED灯亮,改变输入序列使其不为1110101101,则次LED灯一直处于灭的状态。因为程序设计中设计的串行序列的输入,经过十个脉冲后序列才检测完,所以需等待一会儿LED灯才会亮,后来调大了分频后的时钟频率,所以序列刚检测完就观察到灯亮。虽然顶层文件的仿真出现问题,但总体不影响硬件调试结果。参考文献1周立功EDA实验与实践北京:北京航空航天大学出版社,2007.92刘昌华数字逻辑EDA设计与实践北京:国防工业出版社,2006.8 3潘松,黄继业EDA技术与VHDL北京:清华大

19、学出版社,2007.14刘艳萍,高振斌,李志军EDA实用技术及应用北京:国防工业出版社,2006.15章彬宏EDA应用技术北京:北京理工大学出版社,2007.7附录library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity div isport( clk:in std_logic; clk_div:out std_logic);end div;architecture bhv of div issignal count:std_logic_vector(24 downto 0);begin pr

20、ocess(clk) begin if rising_edge(clk) then if count=10 then count<=(others=>'0'); else count<=count+1; end if; if count<5 then clk_div<='0' else clk_div<='1' end if; end if; end process; end bhv;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSI

21、GNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTiTY xlsr ISport(clk,rst:in std_logic; p1,p2,p3,p4,p5,p6,p7,p8,p9,p10:in std_logic; q:out std_logic);end xlsr;architecture behave of xlsr issignal count:INTEGER ;begin process(clk,rst)beginif rst='1' then q<='0'count<=0;elsif rising_edge(

22、clk)then if(count=10)then count<=0;else count<=count+1;end if;case count is when 1=>q<=p1; when 2=>q<=p2; when 3=>q<=p3; when 4=>q<=p4; when 5=>q<=p5; when 6=>q<=p6; when 7=>q<=p7; when 8=>q<=p8; when 9=>q<=p9; when 10=>q<=p10; when o

23、thers=>q<='0' end case;end if;end process;end behave;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xljc IS PORT(CLK,DIN,RST:IN STD_LOGIC; Q:OUT STD_LOGIC);END xljc;ARCHITECTURE ART OF xljc ISTYPE STATETYPE IS(S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10);SIGNAL P_STATE: STATETYPE;BEGINPROCESS(C

24、LK)BEGINIF RST = '1' THEN P_STATE<=S0;ELSIF CLK'EVENT AND CLK='1' THEN CASE P_STATE IS WHEN S0=> IF DIN='1'THEN P_STATE<=S1;Q<='0' ELSE P_STATE<=S0;Q<='0' END IF; WHEN S1=> IF DIN='1'THEN P_STATE<=S2;Q<='0' ELSE P_STATE<=S0;Q<='0' END IF; WHEN S2=> IF DIN='1'THEN P_STATE<=S3;Q<='0' ELSE P_STATE<=S0;Q<='0' END IF; WHEN S3=> IF DIN='0'THEN P_STATE<=S4;Q

温馨提示

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

评论

0/150

提交评论