欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    大三上-数电实验-VHDL-彩灯控制.docx

    • 资源ID:845905       资源大小:49.56KB        全文页数:7页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    大三上-数电实验-VHDL-彩灯控制.docx

    北京邮电大学数字电路与逻辑设计实验报告班级:2023211113学号:班内序号:姓名:XXXXXX专业:通信工程二零一零年六月工程名称:彩灯控制电路设计与实验一、实验目的1 .进一步了解时序电路设计方法2 .熟悉状态机的设计方法二、实验所用仪器及元器件1. .计算机2. .直流稳压电源3. .数字系统与逻辑设计开发板三、实验任务及要求用VHDL语言设计并实现一个彩灯控制8个发光二极管电路仿真并下载验证其功能,彩灯有两种工作模式,可通过拨码开关或按键进行切换:(1)单点移动模式:一个点在8个发光二极管上来回的亮(2)幕布式:从中间有两个点,同时向两边依次点亮直至全亮,然后再向中间点灭,依次点亮直至全亮,然后再向中间点灭。四、设计思路和过程1 .设计流程(1)明确设计对象的外部特征输入信号有:-控制信号Ctrl一时钟信号elk输出信号有:-LED驱动电压信号IamP(2)根据设计对象的操作控制步来确定有限状态机的状态当控制信号Ctrl为1时,自定义Statel有s,si,s2,s3,s4,s5,s6,s7,s8,s9,sl,sll,sl2,sl3这14种状态(初始为s).当控制信号Ctrl为0时,State2有s,sl,s2,s3,s4,s5,s6,s7这8种状态(初始为SO)(3)根据设计对象的工作过程画出有限状态机的状态转移图当控制信号Ctrl为1时(此时灯为单点移动模式)当控制信号Ctrl为O时(此时灯为幕布模式)2. VHDL程序代码仿真所用代码(未加50M分频器)libraryieee;useieee.std_logic_l164.all;useieee.std_logic_unsigned.all;entitypaomadengisport(clk:instd_logic;时钟信号ctrl:instd_logic;模式控制信号Iampioutstd_logic_vector(7downto0);endpaomadeng;architecturecaidengofpaomadengistypeALL_statesis(s,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,sll,sl2,s13);-自定义枚举类型signalstate1,state2:ALL_states:=sO;beginprocess(clk,ctr)beginif(c)k,eventandclk=,lr)then续前页(代码)if(ctrl=1r)then控制信号为单点移动模式casestate1iswhens=>statel<=sl;lamp<=,r100tX)000;whensi=>statel<=s2;lamp<="0lO(X)O(X)''whens2=>state1<=s>3;lamp<=,r00100000,'when3=>sute1<=s4;IamP<="00010000"whens4=>state1<=s5;lamp<=,r00001000,;whens5=>state1<=s6;lamp<=,000001¢X)'whens6=>state1<=s7;lamp<=M00000010”;whens7=>state1<=s8;lamp<=nOOO(X)OO1"whens8=>statel<=s9;IamP<二"0000001。";whens9=>stateK=sl0;lamp<="OO(X)Ol0。”;whensl=>statel<=sl1;lamp<=M00001000''whens11=>state1<=s12jlamp<-r,0001OOOOn;whens12=>statel<=s13;IamP<="00100000,;whensl3=>statel<=s0;lamp<=f,01OooOO0”;whenothers=>state1<=s;IamPe二"10000000":endcase;else控制信号为幕布式casestate2iswhens=>state2<=sl;lamp<-,(X)011000r,;whensl=>state2<=s2Jamp<-,00111100"whens2=>state2<=s3Uamp<=,01Illll0"whens3=>state2<=s4lamp<="11111111"whens4=>state2<=s5lamp<-'0111111011;whens5=>state2<=s6;lamp<-'00111100"whens6=>state2<=s7Uamp<=,000110(X)h;whens7=>state2<=s;1amp<=1(X)OOOOOO,r;whenothers=>state2<=sljlamp<=,l00011000,;endcase;endif;endif;endprocess;endcaideng;下载时所用代码(参加5011分频器)续前页(代码)libraryieee;useieee.std_logic_l164.all;useieee.std_logic_unsigned.all;entitypaomadengisPort(CIk:instd_logic;ctrkinstd_logic;Iampioutstd_lOgiC_vectur(7downto0);endpaomadeng;architecturecaidengofpaomadengissignalent:integerrangeOto24999999;signalclk_tmp:std_logic;typeALL_statesis(s,sljs2,s3,s4ss51s6,s7,s8,s9,s10,sl1,s12,si3,sl4);signalstate1state2:ALL_states:=s14;Beginprocess(clk)50M分频器进程beginif(clk'eventandelk-)thenifcnt=24999999thencnt<=O;CIk_tmp<=notClk_tmp;elsecnt<=cnt+I;endif;endif;endprocess;process(clk_tmp,ctrl)跑马灯进程beginif(clk_tmpeventandCIk_tmp=T)thenif(ctrl=,)thencasestate1iswhens=>statel<=s1;IHnIP<=”1OOt)OoOO"whens1=>statel<=s2;lamp<="01OOOODO,'whens2=>state1<=s3;lamp<=r,00100000"whens3=>state1<=s4lamp<=f,00010000"whens4=>statel<=s5jlamp<="00001000,'whens5=>statel<=s6;lamp<=M000001OO'1;whens6=>state1<=s7;IamPV="00000010,'whens7=>statel<=s8;lamp<=M00000001"whens8=>state1<=s9;IanlP<="00000010"whens9=>state1<=s10;lamp<=r,00000100"whensl=>statel<=slI;lamp<="0000!000"whens11=>state1<=s12;lamp<="00010000"whens12=>statel<=s13Janp<="00100000"whensl3=>statel<=s0;lamp<="01000000,r;whenothers=>statel<=s0;lamp<=H10000000w;endcase;elsecasestate2iswhens=>state2<=slUamp<=',00011000r,;whensl=>state2<=s2lamp<=n00111l(X);whens2=>state2<=s3Jamp<=,01111110u;whens3=>state2<=s4;lamp<=,1111111'whens4=>state2<=s5Uamp<=,01111110u;whens5=>state2<=s6Uamp<=,00111100"whens6=>state2<=s7Jamp<=,00011000m;whens7=>state2<=sOUamp<=,'OOOOOOOO"whenothers=>state2<=slJamp<=,'00011000,;endcase;endif;endif;endprocess;endcaideng;五、仿真波形图及分析1、波形(见下页)2.波形分析单点移动模式从图中可看出其状态10000000,01000000,00100000,00010000,00001000,00000100,00000010,00000001,00000010,00000100,00001000,00010000,00100000,01000000,到达一个点在8个彩灯中来回的亮的效果。幕布式8个灯的状态依次为OOonOo0,00111100,01111110,11111111,01111110,00111100,00011000,00000000o使彩灯到达从中间两个亮,同时向两边依次点亮直至全亮,然后再向中间点灭的效果。Endtime设置为125us,elk设置为2.5us,Ctrl采用置1置0设置单点移动模式幕布式单点移动模式(波形图)六、故障及问题分析1 .在编写程序时,发现这个程序有很强的重复性,一下子就想到了for循环和IooP循环,编完程序后,进行编译,将所有程序中出现的语法错误都-一改正后,发现还是无法通过运行.无奈之下,我靖教广许多同学,但他们也说不出一个所以然来。正当我踌躇不前时,突然看见同学的程序中的type类型的自定义枚举类型,顿时豁然开朗,果然就用CaSe语句将程序写了出来。2 .在程序编译时,出现了个错误,是关于时钟沿的。后来才发现,原来是我把if(clk,eventandclk=1,)then设置在if(ctrl=,r)then的内部,导致编译出错,经过我反复得核对,和同学之间讨论后,发现问题的所在,时钟信号应设置在最外部,随着Ctrl的变化,彩灯模式变化。七、总结和结论经过这四次课的数字电路与逻辑设计实验课的学习,第一次实验,我熟悉了数字电路实验板,通过示波器的显示,了解了电压传输特性曲线,同时,对冒险的产生和消除有了新的认识。通过第二次实验我了解了QUartUS2的使用方法,并掌握了如何原理图编程的方法和如何下载程序。在第三次课上,我学习了VHDL语言。通过实验课的学习,增加了我对数字电路与逻辑设计的兴趣,同时我发现自己有太多的缺乏,虽然课程结束了,但我以后会利用课余时间继续学习,也相信这学习的过程会让我收获更多。刚开始实验时,刚刚接触数字电路实验吧,做完实验后不知道自己在干啥,后来写报告才明白其中的各实验步骤的原理。第二次做实验,鉴于第一次的仓促,于是提前预习,并在自己的电脑中将程序编好之后才有备而战。但是到了实验室后,又发现自己看的太少,太粗略,以致程序编译出现了很多错误,一时乱了手脚。出现了许多看起来似乎难以解决的问题,这一次在老师同学的帮助下,QUartU$2编程有了大致的了解,课后复习也顺利多了。我觉得,万事开头难,这句话说的没错,这次试验我有了很深刻的体会,也渐渐有了那种硬件变成的思维方式。做完整个数电实验,有一种意尤未尽的感觉。整个实验给我的感觉就是刚开始有些难,不过我觉得慢慢的还可以适应。QUartUS2软件的学习,也对我编程技术有了很大的提高。总之,此次实验还是令人受益非浅,实验使我有了很大的提高!衷心的祝数电实验越办越好!提点意见,就是关于本教材关于下载程序的局部(设置管脚和下载设置局部)有些粗略,希望此教材的修订版可以将这些局部写得详细一些;还有教材中关于MaxII实验开发板的介绍中缺少管脚功能及编号表,希望改良。

    注意事项

    本文(大三上-数电实验-VHDL-彩灯控制.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开