欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    实验四序列发生器.docx

    • 资源ID:448662       资源大小:229.10KB        全文页数:11页
    • 资源格式: DOCX        下载积分:5
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要5
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验四序列发生器.docx

    1、南昌大学实验报告学生姓名:学号:专业班级:中兴IOl班实验类型:口验证口综合设计口创新实验日期:2023、11、口成绩:实验四序列信号发生器与检测器设计一、实验目的1、学习VHDL文本输入法2、学习有限状态机的设计3、利用状态机实现串行序列的输出与序列的检测4、继续学习优化设计二.实验内容与要求2 .用有限状态机设计序列检测器,实现串行序列IIolO的检测器3 .假设检测到符合要求的序列,那么输出显示位为“1”,否那么为“04 .对检测到的次数计数5 .整个工程采用顶层文件+底层模块的原理图或文本的设计思路三、实验仪器PC机、QUartUSH软件、EDA实验箱四、实验思路1 .设计序列发生器根

    2、本思想为一个信号CQI计数,给另一个信号CO(代表序列的每一位)赋值的方法:先设定端口CQ1用于产生序列时计数,因为序列共16位,因此端口CQ1为标准逻辑矢量,位宽为4,设另一个端口M代表序列的每一位,CQI每计一个数,就给M赋一个值,这样产生一个16位的序列。由于端口不能参与相关运算,因此在结构体中我分别定义了信号CQl(标准逻辑矢量,位宽4),信号Q与相应的端口CQ1CO对应,在进程中参与相应的运算,在程序的最后再用端口接收信号:C0BIockDiagram-SchematicFile,z项。点击“OK,在主界面中将翻开“BkCkEditOr”窗口。(1)分频器模块实体名为DIV)本设计使

    3、用的FPGA开发板中使用的芯片是CycloneIIEP2C35F672C8,使用的是IOkHz的时钟脉冲输入,根据电路的具体设计需要,对其进行分频设计。如图1所示为系统的分频模块,其中模块Clockout管脚输出为0.5hz的时钟脉冲,得出序列发生器和序列检测器模块正常工作的时钟信号,在ClOCkin管脚输出为一个IkhZ的时钟脉冲,作用与动态扫描模块的正常工作。输入管脚:Clockin为Ikhz脉冲输入;输出管脚:CloCkOUt为0.5hz脉冲输出;图1一时间:2023年11月10号-版本:7.2一功能:分频器2000分频)分频模块DIV源代码div.vhd如下:分频程序,从IKHZ中得到

    4、0.5HZ的计数频率,2000分频LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;-这3个程序包足发应付大局部的VHDL程序设计USEIEEE.STD_LOGIC_Arith.ALL;USEIEEE.STD_LOGIC_Unsigned.ALL;ENTITYDIVISGENERlC(N:Integer:=20000);-此处定义了一个默认值N=100O0,即电路为IOooO分频电路;Port(ClockinJNSTD.LOGIC;ClockOutiOUTSTD_LOGIC);END;ARCHITECTUREDeviderOFDIVISSIGNALCounteriI

    5、ntegerRANGE0TON-1;SIGNALTempi:STD_LOGIC;一信号的声明在结构体内,进程外部BEGINPRoCESS(CIockin)BEGINIFRISING-EDGE(Clockin)THENIFCounter=N-ITHENcounter=0;Templ=NotTemp1;ELSECounter=Counter+1;IFCounter=(N2-l)THENTemp1=NOTTemp1;ENDIF;ENDIF;ENDIF;ENDPROCESS;ClockOuK=Templ;END;(2)序列发生器模块,(实体名为C_OUT)序列发生器模块如图2所示,其中:输入管脚:CL

    6、K为0.5hz的时钟脉冲;RST为复位信号;输出管脚:CO序列发生器设计时用于计数,实现模16计数,以产生16位的序列图2一时间:2023年11月10号一版本:7.2一功能:产生一个十六位的指定序列C_OUT-LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIeLUNSlGNED.ALL;-为了重载ENTITYC_OUTISPORT(CLK,RST:INSTD_LOGIC;定义时钟和复位信号Co:OUTSTD.LOGIC);-序列发生器设计时用于计数,实现模16计数,以产生16位的序列ENDC-OUT;ARCHITECTUREbeha

    7、vOFC_OUTISSIGNALCQ1:STD_LOGIC_VECTOR(3DOWNTO0);-定义信号进行计数.实现模16计数,对应依次产生序列的位。到位15;SIGNALQ:STD_LOGIC;BEGINPROCESS(CLK,RST,Q)BEGINIFRST=1THENCQ1=OOOO;Q=,0;-如果复位,那么计数器清0,M也清0ELSiFClkeventandclk=thenCQ1QQQQQQQQQQQQQQQQ=,0;ENDCASE;ENDIF;ENDPRoCESSL序歹IJ发生器到此结束CO=Q;ENDbehav;(3)序列检测模块:(实体名为SCHK)序列检测模块如图3所示,其

    8、中:输入管脚:CLK为0.5hz的时钟脉冲;EN为使能端,为1才正常工作;M为显示当前产生的位;输出管脚:N为显示满足序列要求时,产生T,即为标志位。图3一时间:2023年11月10号一版本:7.2一功能:检测指定的序列SCHKLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGlCJJNSlGNED.ALL;为了重载ENTITYSCHKISPORT(CLK,EN,M:INSTD_LOGIC;-EN为使能端,为1才正常工作;M为显示当前产生的位N:OUTSTD_LOGIC);-N为显示满足序列要求时,产生T,即为标志位ENDSCHK;AR

    9、CHITECTUREbehavOFSCHKISTYPESTATEIS(SO52$35455);状态机的定义,5个状态SIGNALS:STATE;SIGNALA1,A2,A3,A4,A5:STD_LOGIC;-SIGNALQ:INTEGERRANGE0TO5;-SIGNALD:STD_LOGIC_VECTOR(4DOWNTO0);SIGNALN1:STD_LOGIC;BEGINPRoCESS(CLK,S,N1,EN)一序列检测器进程BEGINIFEN=OTHENS=SO;NI=,0;A5=0;A4=0;A3=0;A2=0;A1=0,;ELSIFCLKtEVENTANDCLK=,OTHENNIif

    10、M=TthenS=SIjelseSifM-thenS=S2;elseSifM=0thenS=S3;elseSifM-thenS=S4;elseSifM=O,thenS=S5;-生成一个IlOlO序列Nl=l,;elseSS=SO;ENDCASE;A5=A4;一移位输出显示在led上以便观看A4=A3;A3=A2;A2=A1;A1=M;-将最近生产的序列赋给最前端的Al位endif;N0);ELSIFCLK,EVENTANDCLK=THENIFEN=TTHENIFCQK15THENCQL=CQI+1;ELSECQI:=OOOO”;ENDIF;ENDIF;ENDIF;IFCQI=15THENCOU

    11、T=,;ELSECOUT=,0;ENDIF;Qchoose=000,;Achoose=(,00;Achoose=010;Achoose=01,;Achoose=,100,Achoose,10Achoose=110M;Achoose=,llANULL;ENDCASE;ENDPROCESSPl;P2:PRoCESS(CIk)BEGINIFClk1EVENTANDelk=THENcout8scanscanscanscanscanscanscanscanscanscanscanscanscanscanscanscanNULL;ENDCASE;ENDPROCESSP3;END;2 .包装元件入库。编译通

    12、过后,单击FiIefCreatCDCfaUltSynIbol,当前文件变成了一个包装好的自己的单一元件,并被放置在工程路径指定的目录中以备后用。3 .保存各个模块的原理图单击FiIefSaVeas按扭,出现对话框,选择自己的目录(如c:myeda),适宜名称保存刚刚输入的原理图,原理图的扩展名为.bdf,4 .设置工程文件(PrOjeCt)以EXP4为工程名命名5 .选择目标器件6 .放置元件7 .添加连线将以上各器件连接成实验原理图如下:图6原理图设计8 .编译(COmPiler)单击-*QuartusIICompiler,跳出COmPiIer窗口,此编译器的功能包括网表文件的提取、设计文件

    13、的排错、逻辑综合、逻辑分配、适配(结构综合)、时序仿真文件提取和编程下载文件装配等。单击Start,开始编译!如果发现有错,排除错误后再次编译。7.仿真,测试工程的正确性(仅对计数模块进行仿真测试)D建立新的波形鼓励文件2)在波形编辑器窗口添加节点3)通过Edit-EndTime来设定仿真结束时间为IlnS4)在CLOCK窗口中设置Clk的时钟周期为IOnS时间设置如下:5)点击SaVe保存,输入波形如下:6)通过TOoIS下的SinlUlatOrTOoIS项进行仿真,然后观察输出波形。当RST=O时,序列输出端 CO=O,不产生序列,且计 数器保持原始计数对序列发生清零端进行考察:对计数器的

    14、考察:由上可知,仿真结果与要求一致!六、引脚锁定和编程下载1 .Assignments-.device-引脚锁定,参照下载实验板IKlOO的引脚号说明书,选择适当的引脚2 .引脚锁定后,保存,必须重新进行一次全程编译,编译通过后才能编程下载。3、编程下载,用下载线将计算机并口和试验箱上的JTAG口接起来,接通电源。选择ToolsProgrammer菜单,翻开programmer窗口。在mode中选中JTAG,将PrograIn/Configure下的笑方框选中4在开始编程之前,必须正确设置编程硬件。点击“HardwareSetup按钮,翻开硬件设置口。点击rtAddHardwarez,翻开硬件

    15、添加窗口,在Hardwaretype*下拉框中选择wByteBlasterMVorByteBlasterIK,Port”下拉框中选择uLPTK,点击OK按钮确认,关闭HardWareSetUP窗口,完成硬件设置。5、点击“Start按钮,开始编程下载图(14)下载成功七、硬件测试结果(1)序列发生器测试结果,实验中产生了序列CQl0000000100100011010001010110OlllQ01110100CQl1000100110101011110011011110IlllQ11011010而且产生的原理即为:看到的现象即为Q连接的数码管从O到15计数时,c。连接的二极管会依次出现:灭、

    16、亮、亮、亮、灭、亮、灭、灭、亮、亮、灭、亮、亮、灭、亮、灭(2)序列检测器测试结果当产生的序列为IIoIO时,与N相连的Ied灯亮,其余时刻灭。即说明检测到一个目标序列。(3)计数器的测试结果当Ied灯亮一次时,数码管以模16进行计数,通过数码管可以知道检测到多少个目标序列。(4)使能端、复位键的测试结果当拨下计数清零端时,数码管重新计数:当拨下序列发生清零端时,重新产生序列。综上,实验现象与软件仿真以及程序分析的结果一致,可知实验很成功!八、试验心得通过木次实验我更加熟悉状态机的使用,还有移位显示输出的设计,加深了我对序列信号检测器根本原理的理解,并对状态机的使用环境和方法有了进一步的了解,

    17、掌握了用状态机设计模块的根本方法和思路。然而在设计时也遇到了一些问题,刚开始状态转换没设置好,结果导致状态转换出了问题,使得无论输入是否为有效序列,输出检测计数错误的问题,后经仔细排查,终于将问题解决。本次实验的目的在于学习一般有限状态机的设计。状态机包括时序逻辑局部(存储局部)和组合逻辑局部(控制局部),其内部和输出经过一可预测的状态序列。因此设计状态机一般先根据具体问题明确控制输入、条件转换,再画出状态图,做出状态列表。利用VHDL设计状态机般包括时序进程和组合进程两个主要局部常常使用CASE语句,条件的转换那么可用CASE中的IF语句。通过此次实验,我对设计所用到的软件有了更加深刻地了解,这对我们以后的工作和学习的帮助都很有用处。在以后的学习中应该多多的注意实践知识的训练和积累。在以后的学习生活中要不断的开拓自己的动手能力,不断的训练自己的动手能力。感谢老师一直细心地提问,使我明白了一些知识上的漏洞!九、参考资料EDA技术实用教程潘松黄继业EDA实验指导书丁杰朱启标


    注意事项

    本文(实验四序列发生器.docx)为本站会员(奥沙丽水)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!




    宁ICP备18001539号-1

    三一文库
    收起
    展开