版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上 FPGA课程设计报告 专 业:通信工程 班 级:班 姓 名: 学 号: 指导老师:祝 宏 制作日期:11.1011.20设计课题1:设计一个可控的100进制可逆计数器,要求用DE2-115开发板下载。 (1) 计数器的时钟输入信号周期为200ns。 (2) 以十进制形式显示。 (3)
2、0;有一个复位端clr和两个控制端plus和minus,在这些控制信号的作用下,计数器具有复位、增或减计数、暂停功能。clrplusminus功能0××复位为0110递增计数101递减计数111暂停计数设计步骤 第一步:参考书中的60进制计数器设计出100进制的加法计数器,用时30分钟; 第二步:仿照100进制的加法可以设计出100进制的减法计数器,用时45分钟; 第三步:将两段程序拼凑起来,利用两个控制端控制加减和暂停功能,用时15分钟。关键词 可逆;暂停;循环计数。 内容摘要 计数器具有复位、增减计数和暂停功能
3、,可循环计数,可用作平时的计数器用。总体方案顶层逻辑电路图上图为100进制可逆计数器的封装图,sw0控制计数脉冲的频率大小,sw1控制清零端,sw2和sw3为两个控制端plus和minus,hex1和hex0分别显示100进制的十位和个位。底层功能模块设计 100进制可逆加减的程序代码:module count100(qout,/输出的数字 cout,/进位 data,/置位数字 load,/置位端 clr,/清零端 clk,/时钟脉冲 plus,/控制端 minus/控制端);input load,c
4、lk,clr,plus,minus;input7:0 data;/输入 output 7:0 qout; reg7:0 qout;output cout;/输出 always (posedge clk)/脉冲begin if(!clr) qout<=0;/如果清零端为0,将输出清零 else if(load) qout<=data;/如果置数端为1,将置数端数字给输出else
5、60;if(plus&!minus&qout3:0=9&qout7:4=9) qout<=0;/当plus为1且minus为0时如果计数到99时回到00 else if(plus&!minus) /plus为1,minus为0,递增计数begin if(qout3:0=9) begin qout3:0<=0;
6、160; if(qout7:4=9) qout7:4<=0; else qout7:4<=qout7:4+1; end else qout3:0<=qout3:0+1; end else if(!plus&minus) /plus为0,minus为1,递减计数begin if(qout3:0=0)begin
7、 qout3:0<=9; if (qout7:4=0) qout7:4<=9; else qout7:4<=qout7:4-1; end else qout3:0<=qout3:0-1; end else
8、;if(plus&minus) / qout<=qout;/plus为1,minus为1,暂停计数 else qout<=0; /为其他时清零end assign cout=(qout=8'd99)?1:0; /为99时进位端进endmodule注释:利用plus和minus的几种组合可控制加减和暂停计数。利用清零端可将计数清零,以便计数。各模块功能仿真波形显示的结果:当plus为1,minus为0时,递增计数到99时下一刻为
9、00。当clk为0时,计数器清零。当plus为0,minus为1时,递减计数,00时下一秒变为99。当plus为1,minus为1,暂停计数。设计中遇到问题及解决方法 在设计时,我用的是让其自己加减的方法,在仿真时可以做出正确的结果,但是在下载板中显示时,个位一直从0加到了F才向十位进位,我感觉到可能是程序出错了,我没有将十位和个位分开,而是写在了一起,导致默认为十六位计数,于是我将程序改为分开计数,最后终于成功了。心得体会 从第一个简单的实验中我感觉到,看起来简单的事,可能自己亲手做的时候就会 发现很多问题,这些问题都要自己去解决,后面的两个实验更难,我需要更多
10、的去开动脑筋,多多查阅资料,力争做好。设计课题2:交通灯控制系统,要求用DE2-115开发板下载。 (1) 设计一个十字路口交通信号灯的定时控制电路。要求红、绿灯按一定的规律亮和灭,绿灯亮时,表示该车道允许通行;红灯亮时,该车道禁止通行。并在亮灯期间进行倒计时,并将运行时间用数码管显示出来。 (2)要求主干道每次通行时间为40秒,支干道每次通行时间为30秒。每次变换运行车道前绿灯闪烁,持续时间为5秒。即车道要由主干道转换为支干道时,主干道在通行时间只剩5秒钟时,绿灯闪烁5秒显示,支干道仍为红灯,以便主干道上已过停车线的车继续通行,未过停车线的车停止通行。同理,当车
11、道由支干道转换为主干道时,支干道绿灯闪烁显示5秒钟,主干道仍为红灯。 (3)定时器要求采用递减计时方式进行计时。 两个定时时间:绿灯闪烁和绿灯停止闪烁 4个状态: S0:主干道绿灯亮,支干道红灯亮。 S1:主干道绿灯闪烁,支干道红灯亮。 S2:支干道绿灯亮,主干道红灯亮。 S3:支干道绿灯闪烁,主干道红灯亮设计步骤 第一步:在程序内部转载一个计数器,从70递减计数到00,如此循环。用时15分钟。 第二步:设计主干道的计时器,从40到00,主干道绿灯亮,最后五秒时绿灯闪烁,支干道红灯亮。用时120分钟。
12、160;第三步:设计支干道的计时器,从30到00,支干道绿灯亮,最后五秒时绿灯闪烁,主干道红灯亮。用时60分钟。关键词 交通灯;十字路口;倒计时闪烁。 内容摘要 该红绿灯可实现十字路口的交通管制,主干道和支干道分别通行40秒和30秒如此循环,可便于交通顺畅,通行与否由红绿灯予以提示。总体方案顶层逻辑电路图上图为红绿灯的封装图,sw0为脉冲频率控制端,sw1为清零端,LEDR0为主干道红灯,LEDG0为主干道绿灯,LEDR1为支干道红灯,LEDG1为支干道绿灯,HEX7为主干道秒钟的十位,HEX6为主干道秒钟的个位,HEX5为支干道秒钟的十位,HEX4为支干道秒钟的
13、个位。底层功能模块设计 红绿灯的程序代码: module led(clk, /脉冲 clr, /清零端m_ledr, /主干道红灯 m_ledg, /主干道绿灯 s_ledr, /支干道红灯 s_ledg, /支干道绿灯
14、; count1, /主干道秒钟 count2 /支干道秒钟 );input clk,clr; output m_ledr,m_ledg,s_ledr,s_ledg; output7:0 count1,count2; reg m_ledr,m_ledg,s_ledr,s_ledg; reg7:0
15、160;count1,count2; reg1:0 state; reg7:0 times;parameter state0=2'b00, /定义四种状态state1=2'b01, state2=2'b10, state3=2'b11;always (posedge clk or negedge clr) begin &
16、#160;if(!clr) /清零 begin times<=8'h70; /计数清零 state<=state0; /状态复位 end else if(times=0) /计数为零 times<=8'h70; /计数预置 else begin times3:
17、0<=times3:0-1; /计数个位减一 if(times3:0=4'h0) /判断计数个位是否为零 begin times7:4<=times7:4-1; /十位减一 times3:0<=4'h9; /个位置数 end case(state) /是哪种状态?state0:
18、; if(times=8'h36) /状态零阶段,计数器为3670 state<=state1; /状态转换 state1: if(times=8'h31) /状态一阶段,计数器为3135 state<=state2; /状态转换
19、 state2: if(times=8'h6) /状态二阶段,计数器为630 state<=state3; /状态转换 state3: if(times=8'h1) /状态三阶段,计数器为15 begin
20、60; state<=state0; /状态转换 times<=8'h70; /计数清零 endendcase end end always (posedge clk)begin if(times!=0) /计数不为零吗? begin
21、 case(state) /是哪种状态?(状态机输出) state0: begin m_ledg<=1; /状态零,主干道红灯灭,绿灯亮。支干道红灯亮,绿灯灭。 m_ledr<=0; s_ledg<=0;
22、; s_ledr<=1; count2<= times-8'h30;/支干道计数显示count1<=times-8'h30; /主干道时间显示end state1: begin m_ledg<=m_ledg; /状态一,主干道红灯灭,绿灯闪烁。支干道红
23、灯亮,绿灯灭。 m_ledr<=0; s_ledg<=0; s_ledr<=1; count1<=times-8'h30; /主干道时间显示count2<= times-8'h30; /支干道计数显示endstate2:
24、 begin m_ledg<=0; /状态二,主干道红灯亮,绿灯灭。支干道红灯灭,绿灯亮。 m_ledr<=1; s_ledg<=1; s_ledr<=0; count1<=t
25、imes; /主干道计数显示 count2<=times; /支干道时间显示 endstate3: begin m_ledg<=0; /状态三,主干道红灯亮,绿灯灭。支干道红灯灭,绿灯闪烁。 m_ledr<=1; &
26、#160; s_ledg<=s_ledg; s_ledr<=0; count2<=times; /支干道时间显示 count1<=times; /主干道计数显示 endendcase end end endmodul注释:四种状态分别对应题设要求的四种状态,之所以设一个70进制的递减计数器是因为主干道的40
27、秒和支干道的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亮。设计中遇到问题及解决方法 在设计过程中,之前打算是分开计数,后来发现太麻烦,问过同学后决定采用他的方法,在程序中放一个计数器
28、,使得计数变得简单,后来在四种状态设置时,我参考书上的用状态机的方法,使得四种状态变得清楚明朗,让我出现错误的概率变小了,由于题设木有说明当主干道显示时,支干道显示什么,我觉得也要让支干道的人知道还有多久可以通车,于是将主干道的时间也给了支干道,同样在支干道倒计时时主干道也在倒计时,这样可以让司机估计好时间。闪烁的灯开始时不知道怎么设置,后来问同学了知道改为灯等于灯的非就好了,这是我收获到的。心得体会 从这次的设计红绿灯的实验中,我感到了很大的压力,感觉平时看着红绿灯在街上倒计时蛮简单的,什么事情都是想的很简单,真正要自己上手去做的时候才会发现很多自己不懂的知识,例如控制主干道和支干
29、道的循环,跳变,如何让绿灯在特定的时间闪烁,都是设计者需要去考虑的问题,以及自己的作品在实际生活中应用,会不会有什么问题,如何让其更加简单明朗,让人们一看就明白,我更加明白了自己的责任,和更多应该注意的问题。设计课题3:多功能数字钟系统(层次化设计),要求用DE2-115开发板下载。 (1)基本功能:60秒60分24小时。 (2)扩展功能:报时;每小时59分51,53,55,57秒低频报时,59秒高频报时。 校时校分; 时段控制;6点18点 输出灯不亮,其它时间灯亮。闹钟功能:能自己预设一个时间,到预设时间时,闹钟响起,持续一分钟。设计步骤
30、160;第一步:设计60进制的加法计数器,带进位,用时15分钟; 第二步:设计24进制的加法计数器,用时30分钟; 第三步:将两个60和一个24的计数器组合成一个数字钟,实现其基本功能,用时120分钟; 第四步:设计时段控制,6-18点输出灯不亮,其他时间亮,用时30分钟; 第五步:设计报时功能,由于缺少蜂鸣器,用指示灯代替,每小时59分51,53,55,57秒时红灯亮,59秒时红灯亮,用时60分钟; 第六步:另外设置一个计数器,通过使能端控制,作为校时校分的预设数,通过使能端将预设数送入数字钟内,用时两周; 第七步:通过使能端将另外
31、的计数器作为闹钟,预设一个时间,由于缺少蜂鸣器,用显示灯代替,当时钟走到预设的时间时,预设的红灯闪烁,持续一分钟,用时120分钟。关键词 数字钟;校时校分;整点转换提示;时段控制;闹钟。内容摘要 该数字钟可实现普通时钟的计时功能,为24进制,可实现手动校时校分,方便更改时间,该数字钟可实现时段控制的功能,在深夜时开灯照明,在白天时关闭照明,省电;整点转换时会有相应的提示,方便提示用户,在老师要求的基础下,我给这个数字钟设计了一个闹钟的功能,用户可以手动设定闹钟的时间,方便用户的起床和事项安排。总体方案 顶层逻辑电路图 注释:上图为数字钟的封装图,图中,s
32、w0控制暂停,sw1控制脉冲频率,sw2控制复位端,sw3控制另一计数器的分钟部分,sw4控制校分,sw5控制另一计数器的小时部分,sw6控制校时,sw7sw8控制最后两个数码管显示另一计数器的小时还是分钟部分,sw9为闹钟控制端,hex7hex6显示数字钟的小时部分,hex5hex4显示数字钟的分钟部分,hex3hex2显示数字钟的秒钟部分,hex1hex0显示另一计数器的小时或者分钟部分,ledr0为控制端的亮灯,ledg0为每小时59分59秒时的绿灯,ledr1为每小时59分51、53、55、57的亮灯,ledr2为闹钟的亮灯。底层功能模块设计程序代码:module shizh
33、ong(qout,/数字钟秒钟 reset,/复位端 clk,/脉冲 qout1,/数字钟分钟 qout2,/数字钟小时 data,/置数显示 data1,/置数的分钟 data2,/置数的小时 led,/控制端的灯 leg,/每小时59分59秒的绿灯 ler,/每小时59分51、53、55、57秒的红灯 ler1,/闹钟亮灯 h,/校时 m,/ 校分 a,/控制置数分钟的变化 b,/控制显示置数的分钟 c,/控制置数
34、小时的变化 d,/控制显示置数的小时 e);/闹钟控制端 input clk,reset,h,m,a,b,c,d,e; output reg7:0 qout,data; output reg7:0 qout1,data1; output reg7:0 qout2,data2; output reg led; output reg leg,ler,ler1; always (posedge
35、60;clk) begin begin if(a=1)/调整置数的分钟部分begin if(data13:0=9) begin data13:0<=0; if(data17:4=5) be
36、gin data17:4<=0; end else data17:4<=data17:4+1; end else data13:0<=data13:0+1;
37、160; end endbegin if(b=1)/控制置数分钟的显示data<=data1; end begin if(c=1)/控制置数小时的变化 begin begin
38、160;if(data23:0=9)begin data23:0<=0; begin data27:4<=data27:4+1; end end
39、; else data23:0<=data23:0+1; end if(data27:4=2&data23:0=3) data2<=0; endend begin if(d=1)/控制置数小时的显示 data<=data2; end begin
40、 if(reset) /复位 begin qout<=0; qout1<=0;
41、 qout2<=0; end else if(h)/校时 begin qout2&l
42、t;=data; end else if(m)/校分begin qout1<=data; end else /正常计数部分
43、160; begin if(qout3:0=9) begin qout3:0<=0; begin if(qout7:4=5)
44、60; begin qout7:4<=0;begin if(qout13:0=9) begin qout13:0<=0; if(qout17:4=5) begin qout17:4<=0;
45、60; begin if(qout23:0=9) begin qout23:0<=0; begin qout27:4<=qout27:4+1; end
46、160; end else qout23:0<=qout23:0+1; end if(qout27:4=2&qout23:0=3) qout2<=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 8393-2026跳跃平台
- 护理课件曲线图:静脉血栓风险评估与预防
- 护理专业精神科护理与心理康复
- 湖北省鄂州市多校2025-2026学年高二下学期4月阶段检测历史试卷(含答案)
- 动物胶提胶浓缩工岗前岗位安全考核试卷含答案
- 工业炉及电炉机械装配工测试验证知识考核试卷含答案
- 可变电容器装校工岗前实操掌握考核试卷含答案
- 2026年新科教版高中高一历史下册第三单元辛亥革命历史功绩卷含答案
- 石油地震勘探工安全教育测试考核试卷含答案
- 2026年新科教版高中高二数学下册第一单元排列组合不相邻问题卷含答案
- 制造业安全生产培训课件
- 管理层财务知识核心框架
- 2025年版高中思想政治课程标准修订情况
- 流动人口管理服务
- 2025年房屋加固施工合同协议
- DL-T+1127-2023+等离子体点火系统设计与运行导则
- 2025重庆水务集团股份有限公司校园招聘16人笔试历年参考题库附带答案详解
- 2023年一级注册计量师计量专业案例分析考试真题及答案
- 万达装修施工方案设计
- 电网侧独立储能电站项目经济效益和社会效益分析报告
- 2025上半年软考系统架构设计师考试真题考及答案
评论
0/150
提交评论