




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FPGA课程设计报告 专业:通信工程 班级:班 姓名: 学号: 指导老师:祝宏 制作日期:11.1011.20设计课题1:设计一个可控的100进制可逆计数器,要求用DE2-115开发板下载。(1)计数器的时钟输入信号周期为200ns。(2)以十进制形式显示。(3)有一个复位端clr和两个控制端plus和minus,在这些控制信号的作用下,计数器具有复位、增或减计数、暂停功能。clrplusminus功能0复位为0110递增计数101递减计数111暂停计数设计步骤第一步:参考书中的60进制计数器设计出100进制的加法计数器,用时30分钟;第二步:仿照100进制的加法可以设计出100进制的减法计数器,用时45分钟;第三步:将两段程序拼凑起来,利用两个控制端控制加减和暂停功能,用时15分钟。关键词可逆;暂停;循环计数。内容摘要计数器具有复位、增减计数和暂停功能,可循环计数,可用作平时的计数器用。总体方案顶层逻辑电路图上图为100进制可逆计数器的封装图,sw0控制计数脉冲的频率大小,sw1控制清零端,sw2和sw3为两个控制端plus和minus,hex1和hex0分别显示100进制的十位和个位。底层功能模块设计100进制可逆加减的程序代码:modulecount100(qout,/输出的数字 cout,/进位 data,/置位数字load,/置位端clr,/清零端clk,/时钟脉冲plus,/控制端minus/控制端);inputload,clk,clr,plus,minus;input7:0data;/输入output7:0qout;reg7:0qout;outputcout;/输出always(posedgeclk)/脉冲beginif(!clr)qout=0;/如果清零端为0,将输出清零 else if(load) qout=data;/如果置数端为1,将置数端数字给输出elseif(plus&!minus&qout3:0=9&qout7:4=9) qout=0;/当plus为1且minus为0时如果计数到99时回到00elseif(plus&!minus) /plus为1,minus为0,递增计数beginif(qout3:0=9)beginqout3:0=0;if(qout7:4=9)qout7:4=0;elseqout7:4=qout7:4+1;endelseqout3:0=qout3:0+1;endelseif(!plus&minus) /plus为0,minus为1,递减计数beginif(qout3:0=0)beginqout3:0=9;if(qout7:4=0)qout7:4=9;elseqout7:4=qout7:4-1;endelseqout3:0=qout3:0-1;endelseif(plus&minus)/qout=qout;/plus为1,minus为1,暂停计数elseqout=0;/为其他时清零endassigncout=(qout=8d99)?1:0; /为99时进位端进endmodule注释:利用plus和minus的几种组合可控制加减和暂停计数。利用清零端可将计数清零,以便计数。各模块功能仿真波形显示的结果:当plus为1,minus为0时,递增计数到99时下一刻为00。当clk为0时,计数器清零。当plus为0,minus为1时,递减计数,00时下一秒变为99。当plus为1,minus为1,暂停计数。设计中遇到问题及解决方法在设计时,我用的是让其自己加减的方法,在仿真时可以做出正确的结果,但是在下载板中显示时,个位一直从0加到了F才向十位进位,我感觉到可能是程序出错了,我没有将十位和个位分开,而是写在了一起,导致默认为十六位计数,于是我将程序改为分开计数,最后终于成功了。心得体会从第一个简单的实验中我感觉到,看起来简单的事,可能自己亲手做的时候就会发现很多问题,这些问题都要自己去解决,后面的两个实验更难,我需要更多的去开动脑筋,多多查阅资料,力争做好。设计课题2:交通灯控制系统,要求用DE2-115开发板下载。(1)设计一个十字路口交通信号灯的定时控制电路。要求红、绿灯按一定的规律亮和灭,绿灯亮时,表示该车道允许通行;红灯亮时,该车道禁止通行。并在亮灯期间进行倒计时,并将运行时间用数码管显示出来。(2)要求主干道每次通行时间为40秒,支干道每次通行时间为30秒。每次变换运行车道前绿灯闪烁,持续时间为5秒。即车道要由主干道转换为支干道时,主干道在通行时间只剩5秒钟时,绿灯闪烁5秒显示,支干道仍为红灯,以便主干道上已过停车线的车继续通行,未过停车线的车停止通行。同理,当车道由支干道转换为主干道时,支干道绿灯闪烁显示5秒钟,主干道仍为红灯。(3)定时器要求采用递减计时方式进行计时。两个定时时间:绿灯闪烁和绿灯停止闪烁4个状态:S0:主干道绿灯亮,支干道红灯亮。S1:主干道绿灯闪烁,支干道红灯亮。S2:支干道绿灯亮,主干道红灯亮。S3:支干道绿灯闪烁,主干道红灯亮设计步骤第一步:在程序内部转载一个计数器,从70递减计数到00,如此循环。用时15分钟。第二步:设计主干道的计时器,从40到00,主干道绿灯亮,最后五秒时绿灯闪烁,支干道红灯亮。用时120分钟。第三步:设计支干道的计时器,从30到00,支干道绿灯亮,最后五秒时绿灯闪烁,主干道红灯亮。用时60分钟。关键词交通灯;十字路口;倒计时闪烁。内容摘要该红绿灯可实现十字路口的交通管制,主干道和支干道分别通行40秒和30秒如此循环,可便于交通顺畅,通行与否由红绿灯予以提示。总体方案顶层逻辑电路图上图为红绿灯的封装图,sw0为脉冲频率控制端,sw1为清零端,LEDR0为主干道红灯,LEDG0为主干道绿灯,LEDR1为支干道红灯,LEDG1为支干道绿灯,HEX7为主干道秒钟的十位,HEX6为主干道秒钟的个位,HEX5为支干道秒钟的十位,HEX4为支干道秒钟的个位。底层功能模块设计红绿灯的程序代码:moduleled(clk,/脉冲clr,/清零端m_ledr,/主干道红灯m_ledg,/主干道绿灯s_ledr,/支干道红灯s_ledg,/支干道绿灯count1,/主干道秒钟count2/支干道秒钟 );inputclk,clr;outputm_ledr,m_ledg,s_ledr,s_ledg;output7:0count1,count2;regm_ledr,m_ledg,s_ledr,s_ledg;reg7:0count1,count2;reg1:0state;reg7:0times;parameterstate0=2b00,/定义四种状态state1=2b01,state2=2b10,state3=2b11;always(posedgeclkornegedgeclr)beginif(!clr)/清零begintimes=8h70;/计数清零state=state0;/状态复位endelseif(times=0)/计数为零times=8h70;/计数预置elsebegintimes3:0=times3:0-1;/计数个位减一if(times3:0=4h0)/判断计数个位是否为零begintimes7:4=times7:4-1;/十位减一times3:0=4h9;/个位置数endcase(state)/是哪种状态?state0:if(times=8h36)/状态零阶段,计数器为3670state=state1;/状态转换state1:if(times=8h31)/状态一阶段,计数器为3135state=state2;/状态转换state2:if(times=8h6)/状态二阶段,计数器为630state=state3;/状态转换state3: if(times=8h1)/状态三阶段,计数器为15beginstate=state0;/状态转换times=8h70;/计数清零endendcaseendendalways(posedgeclk)beginif(times!=0)/计数不为零吗?begincase(state)/是哪种状态?(状态机输出)state0:beginm_ledg=1;/状态零,主干道红灯灭,绿灯亮。支干道红灯亮,绿灯灭。m_ledr=0;s_ledg=0;s_ledr=1;count2=times-8h30;/支干道计数显示count1=times-8h30;/主干道时间显示endstate1:beginm_ledg=m_ledg;/状态一,主干道红灯灭,绿灯闪烁。支干道红灯亮,绿灯灭。m_ledr=0;s_ledg=0;s_ledr=1;count1=times-8h30;/主干道时间显示count2=times-8h30;/支干道计数显示endstate2:beginm_ledg=0;/状态二,主干道红灯亮,绿灯灭。支干道红灯灭,绿灯亮。m_ledr=1;s_ledg=1;s_ledr=0;count1=times;/主干道计数显示count2=times;/支干道时间显示endstate3:beginm_ledg=0;/状态三,主干道红灯亮,绿灯灭。支干道红灯灭,绿灯闪烁。m_ledr=1;s_ledg=s_ledg;s_ledr=0;count2=times;/支干道时间显示count1=times;/主干道计数显示endendcaseendendendmodul注释:四种状态分别对应题设要求的四种状态,之所以设一个70进制的递减计数器是因为主干道的40秒和支干道的30秒是循环显示的,可以放在一起递减。各模块功能仿真波形显示的结果主干道count1从40递减到00,支干道count2从40递减到00,主干道绿灯m_ledg在最后五秒闪烁,支干道红灯s_ledr亮之后转为支干道绿灯s_ledg亮,主干道红灯m_ledr亮。支干道count2从30递减到00,主干道count1从30递减到00,支干道绿灯s_ledg在最后五秒闪烁,主干道红灯m_ledr亮之后转为主干道绿灯m_ledg亮,支干道红灯s_ledr亮。设计中遇到问题及解决方法在设计过程中,之前打算是分开计数,后来发现太麻烦,问过同学后决定采用他的方法,在程序中放一个计数器,使得计数变得简单,后来在四种状态设置时,我参考书上的用状态机的方法,使得四种状态变得清楚明朗,让我出现错误的概率变小了,由于题设木有说明当主干道显示时,支干道显示什么,我觉得也要让支干道的人知道还有多久可以通车,于是将主干道的时间也给了支干道,同样在支干道倒计时时主干道也在倒计时,这样可以让司机估计好时间。闪烁的灯开始时不知道怎么设置,后来问同学了知道改为灯等于灯的非就好了,这是我收获到的。心得体会从这次的设计红绿灯的实验中,我感到了很大的压力,感觉平时看着红绿灯在街上倒计时蛮简单的,什么事情都是想的很简单,真正要自己上手去做的时候才会发现很多自己不懂的知识,例如控制主干道和支干道的循环,跳变,如何让绿灯在特定的时间闪烁,都是设计者需要去考虑的问题,以及自己的作品在实际生活中应用,会不会有什么问题,如何让其更加简单明朗,让人们一看就明白,我更加明白了自己的责任,和更多应该注意的问题。设计课题3:多功能数字钟系统(层次化设计),要求用DE2-115开发板下载。(1)基本功能:60秒60分24小时。(2)扩展功能:报时;每小时59分51,53,55,57秒低频报时,59秒高频报时。校时校分;时段控制;6点18点输出灯不亮,其它时间灯亮。闹钟功能:能自己预设一个时间,到预设时间时,闹钟响起,持续一分钟。设计步骤第一步:设计60进制的加法计数器,带进位,用时15分钟;第二步:设计24进制的加法计数器,用时30分钟;第三步:将两个60和一个24的计数器组合成一个数字钟,实现其基本功能,用时120分钟;第四步:设计时段控制,6-18点输出灯不亮,其他时间亮,用时30分钟;第五步:设计报时功能,由于缺少蜂鸣器,用指示灯代替,每小时59分51,53,55,57秒时红灯亮,59秒时红灯亮,用时60分钟;第六步:另外设置一个计数器,通过使能端控制,作为校时校分的预设数,通过使能端将预设数送入数字钟内,用时两周;第七步:通过使能端将另外的计数器作为闹钟,预设一个时间,由于缺少蜂鸣器,用显示灯代替,当时钟走到预设的时间时,预设的红灯闪烁,持续一分钟,用时120分钟。关键词数字钟;校时校分;整点转换提示;时段控制;闹钟。内容摘要该数字钟可实现普通时钟的计时功能,为24进制,可实现手动校时校分,方便更改时间,该数字钟可实现时段控制的功能,在深夜时开灯照明,在白天时关闭照明,省电;整点转换时会有相应的提示,方便提示用户,在老师要求的基础下,我给这个数字钟设计了一个闹钟的功能,用户可以手动设定闹钟的时间,方便用户的起床和事项安排。总体方案顶层逻辑电路图注释:上图为数字钟的封装图,图中,sw0控制暂停,sw1控制脉冲频率,sw2控制复位端,sw3控制另一计数器的分钟部分,sw4控制校分,sw5控制另一计数器的小时部分,sw6控制校时,sw7sw8控制最后两个数码管显示另一计数器的小时还是分钟部分,sw9为闹钟控制端,hex7hex6显示数字钟的小时部分,hex5hex4显示数字钟的分钟部分,hex3hex2显示数字钟的秒钟部分,hex1hex0显示另一计数器的小时或者分钟部分,ledr0为控制端的亮灯,ledg0为每小时59分59秒时的绿灯,ledr1为每小时59分51、53、55、57的亮灯,ledr2为闹钟的亮灯。底层功能模块设计程序代码:moduleshizhong(qout,/数字钟秒钟 reset,/复位端 clk,/脉冲 qout1,/数字钟分钟 qout2,/数字钟小时 data,/置数显示 data1,/置数的分钟 data2,/置数的小时 led,/控制端的灯 leg,/每小时59分59秒的绿灯 ler,/每小时59分51、53、55、57秒的红灯 ler1,/闹钟亮灯 h,/校时 m,/校分 a,/控制置数分钟的变化 b,/控制显示置数的分钟 c,/控制置数小时的变化 d,/控制显示置数的小时 e);/闹钟控制端 inputclk,reset,h,m,a,b,c,d,e;outputreg7:0qout,data;outputreg7:0qout1,data1;outputreg7:0qout2,data2;outputregled;outputregleg,ler,ler1;always(posedgeclk)beginbeginif(a=1)/调整置数的分钟部分beginif(data13:0=9) begindata13:0=0;if(data17:4=5)begindata17:4=0; endelsedata17:4=data17:4+1; endelsedata13:0=data13:0+1;endendbeginif(b=1)/控制置数分钟的显示data=data1;endbeginif(c=1)/控制置数小时的变化beginbeginif(data23:0=9)begindata23:0=0;begindata27:4=data27:4+1;endendelsedata23:0=data23:0+1;endif(data27:4=2&data23:0=3)data2=0; endendbeginif(d=1)/控制置数小时的显示data=data2;end beginif(reset)/复位 beginqout=0; qout1=0; qout2=0; endelseif(h)/校时 beginqout2=data; endelseif(m)/校分beginqout1=data;endelse/正常计数部分 begin if(qout3:0=9) beginqout3:0=0;begin if(qout7:4=5) beginqout7:4=0;beginif(qout13:0=9) beginqout13:0=0; if(qout17:4=5) beginqout17:4=0; beginif(qout23:0=9)beginqou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 非遗传承人范军视频片段364课件
- 幼儿美术雨滴课件
- 生产安全知识培训课件记录
- 家庭消防培训知识课件
- 理财业务检查课件
- 2025年陕西省渭南市事业单位工勤技能考试题库(含答案)
- 2025年事业单位教师招聘考试化学学科专业知识试卷试题
- 桂林师范高等专科学校《食品安全学》2024-2025学年第一学期期末试卷
- 《血友病A诊疗指南(2022年版)》解读 3
- 太原科技大学《基础造型》2024-2025学年第一学期期末试卷
- 2025-2026学年人教版(2024)初中数学七年级上册教学计划及进度表
- 高速天桥拆除方案(3篇)
- 第1课 鸦片战争 课件 历史统编版2024八年级上册
- 2025年中国冷链物流行业投资前景分析、未来发展趋势研究报告(智研咨询发布)
- 2025年安徽省中考历史试卷真题(含答案)
- GB/T 3036-1994船用中心型蝶阀
- GB/T 19867.5-2008电阻焊焊接工艺规程
- GB/T 1706-2006二氧化钛颜料
- 2023年安徽省国有金融资本投资管理有限公司招聘笔试题库及答案解析
- 新外研版英语七年级上册单词默写表
- T-CIATCM 002-2019 中医药信息数据元目录
评论
0/150
提交评论