ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:284.91KB ,
资源ID:9040779      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9040779.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单电梯微控器设计方案FPGA课程设计方案报告.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

单电梯微控器设计方案FPGA课程设计方案报告.docx

1、单电梯微控器设计方案FPGA课程设计方案报告题 目:单电梯微控器设计院 系: 电子工程学院 专业班级: 微电子0901 学生姓名: 张宏伟 导师姓名: 黄海生 起止时间:2012/6/18至2012/6/29年 月 日FPGA课程设计报告提纲1 任务 设计一个单电梯微控器,用FPGA开发板的按键作为手动上下设置开关,led指示当前所在楼层,数码管显示当前电梯工作状态(上/下/停)。2 目的3 使用环境 (软件/硬件环境,设备等)4 FPGA课程设计详细内容4.1 技术规范4.1.1 功能定义 (1).异步复位,复位信号与时钟信号不同步 (2).分频器把基准时钟(50HZ)分成10HZ,即0.1

2、秒便于人眼观察,设计0.1-0.3秒钟电梯上升或下降一个楼层 (3).用三个拨码开关设置选择楼层,三个开关可以实现7层楼的设计,拨001为楼层第1层,以后以此类推,最高可达111第7层 (4).用led显示当前选中的楼层,选中某层时,当层的led亮,当电梯降至或升至所选楼层时led灯一直亮(采用独热码) (5).使用数码管显示电梯状态,上升状态显示“U”,下降状态显示“D”,显示“S”为停止状态,停止时间用第二次输入为准 (6).手动设置电梯工作状态,key1为上升,key2为下降状态 (7).上电复位时电梯初始状态调为第一层 (8).当电梯到第1时下降按键key2无效,当电梯到第7层时上升按

3、键key1无效 (9).电梯运行时可以选择要去的中间楼层,当电梯没有选择所要去的楼层时,上升/下降按键无效34.1.2 系统结构框图 总体设计可以分为以上几个模块,各模块的功能简要介绍: 1.div模块:把基准时钟(50MHZ)分成1HZ输出 2.elevator_state模块:用于总的实现各种功能,各个模块的输入都有此模块进行分析输出 3.display1模块:用于产生拨码开关的输入值,以方便知道所选择的楼层是多少 4.display模块:实现电梯的工作状态,上升/下降/停止 5.led模块:显示当前所在楼层,采用独热码,方便显示 6.floor_time模块:用于改变楼层上升或下降到相邻

4、楼层的时间,由于给的count给的为数较少,故只能实现0.1-0.3秒任意值,如果还想实现更长的时间则需要改变count的位数 7.top模块:把所有的模块连在一起4.1.3 应用范围 用于控制电梯的运作,可实现上/下/停止等功能。4.1.4 引脚描述 输入输出信号描述信号名称输入/输出目标/源功能描述clkinputpin系统时钟(50MHZ)resetinputpin异步清零,低电平有效chose2:0inputpin楼层选择,000不用,001-111key1inputpin电梯上升按键key2inputpin电梯下降按键display6:0outputpin数码管显示工作状态,升/降/

5、停display16:0outputpin显示所要去的楼层 led6:0 output pin发光二极管显示当前楼层4.2 设计方案 把基准时钟进行分频,即50MHZ分成1HZ以便于现实,否则频率太大就会由于人眼的视觉暂留效应而无法分辨,而只能看到所选择的楼层亮,而其他楼层则不亮,分成10HZ就会看见灯是一个一个亮的,led灯采用独热码便于观察,当电梯上电时进行复位,则电梯被复位至1层,此时1层灯一直亮着意味着此时电梯在一楼,当有上升按键按下同时选择所去楼层时电梯工作,电梯工作时,按按键无效,当电梯在第一层按下降按键无效,同理在第七层按上升按键无效,如果电梯上升数码管display显示U,下降

6、时显示D,停止时显示S,当电梯到了所选楼层时,此楼层的灯一直亮着。独热码编码:楼层独热码一层0000001二层0000010三层0000100四层0001000五层0010000六层0100000七层1000000共阳极数码管显示管脚图:显示对应编码01000000111110012010010030110000400110015001001060000010711110008000000090010000A0001000B0000011C1000110D0100001E0000110F0001110U10000015.各个功能模块描述5.1。分频器模块:功能:把系统时钟(50MHZ)分成10

7、HZ便于人眼观察代码:module div(clk,reset,fclk)。 input clk,reset。 output fclk。 reg fclk。 reg25:0 count。 always(posedge clk or negedge reset) begin if(!reset) begin count=0。 fclk=0。 end else begin if(count25:0=26d2499999) begin count=0。 fclk=fclk。 end else begin count25:0=count25:0+1b1。 end end endEndmodule模块功

8、能仿真:5.2.display模块功能:用于显示电梯的工作状态,S代表停止,U代表上升,D代表下降代码:module decode(dec_in,display)。 input1:0 dec_in。 output6:0 display。 reg6:0 display。 always(dec_in) begin case(dec_in) 2d0: display6:0=7b0010000。 2d1: display6:0=7b1000001。 2d2: display6:0=7b0100001。 default: display6:0=7bx。 endcase endEndmodule模块功能仿

9、真:5.3.display1模块功能:用于显示要去的楼层,从第一楼开始直到第七楼代码:module decode1(dec_in1,display1)。 input2:0 dec_in1。 output6:0 display1。 reg6:0 display1。 always(dec_in1) begin case(dec_in1) 3d0: display16:0=7b1000000。 3d1: display16:0=7b1111001。 3d2: display16:0=7b0100100。 3d3: display16:0=7b0110000。 3d4: display16:0=7b0

10、011001。 3d5: display16:0=7b0010010。 3d6: display16:0=7b0000010。 3d7: display16:0=7b1111000。 default:display16:0=7bx。 endcase endendmodule模块仿真:5.3.led模块功能:用于显示当前楼层,电梯在哪层,哪层的灯亮代码:module led(floor,light)。 input2:0 floor。 output6:0 light。 reg6:0 light。 always(floor) begin case(floor) 3d1: light6:0=7b000

11、0_001。 3d2: light6:0=7b0000_010。 3d3: light6:0=7b0000_100。 3d4: light6:0=7b0001_000。 3d5: light6:0=7b0010_000。 3d6: light6:0=7b0100_000。 3d7: light6:0=7b1000_000。 default: light6:0=7bx。 endcase endEndmodule功能仿真:5.5.elevator_state模块功能:总体控制模块,用于控制电梯的工作,同时向各个模块输出对应的数值,以用于在各个模块中显示。代码:module elevator_sta

12、te(fclk,reset,key1,key2,chose,count,floor,dec_in,dec_in1)。 input fclk,reset,key1,key2。 input2:0 chose。 input1:0 count。 output2:0 floor。 output1:0 dec_in。 output2:0 dec_in1。 reg1:0 dec_in。 reg2:0 dec_in1。 reg2:0 floor。 reg1:0 state。 wire1:0 count。 parameter stop = 2d0,up = 2d1,down = 2d2。 always(pose

13、dge fclk or negedge reset) begin if(!reset) begin dec_in12:0=3b001。 end else begin dec_in12:0=chose2:0。 end end always(posedge fclk or negedge reset) begin if(!reset) begin state=stop。 floor2:0=3b001。 dec_in1:0floor) begin if(!key1) begin if(floor2:0=3b111) begin state=stop。 dec_in1:0=2b00。 end else

14、 begin state=up。 dec_in1:0=2b01。 end end end else if(dec_in1floor) begin if(!key2) begin if(floor2:0=3b001) begin state=stop。 dec_in1:0=2b00。 end else begin state=down。 dec_in1:0=2b10。 end end end else begin state=stop。 dec_in1:0=2b00。 end end up: begin if(count1:0=2d2) begin floor2:0=floor2:0+1b1。

15、if(chose2:0=floor2:0) begin state=stop。 dec_in1:0=2b00。 end end else begin state=up。 dec_in1:0=2b01。 end end down: begin if(count1:0=2d2) begin floor2:0=floor2:0-1b1。 if(chose2:0=floor2:0) begin state=stop。 dec_in1:0=2b00。 end end else begin state=down。 dec_in1:0=2b10。 end end default:begin state=st

16、op。 dec_in1:0=2b00。 end endcase end endEndmodule功能仿真:5.6.floor_time模块功能:用于控制电梯上升和下降相邻楼层的时间代码:module floor_time(fclk,reset,count)。 input fclk,reset。 output1:0 count。 reg1:0 count。 always(posedge fclk or negedge reset) begin if(!reset) begin count1:0=0。 end else begin if(count1:0=2d2) begin count1:0=0

17、。 end else count1:0=count1:0+1b1。 end endEndmodule模块仿真:5.7.top顶层模块:功能:用于各个模块之间的连接以实现整体功能代码:module top(clk,reset,key1,key2,chose,display,display1,light)。 input clk,reset,key1,key2。 input2:0 chose。 output6:0 display,display1。 output6:0 light。 wire1:0 dec_in。 wire2:0 dec_in1。 wire2:0 floor。 wire1:0 cou

18、nt。 div top1(.clk(clk),.reset(reset),.fclk(fclk)。 decode top2(.dec_in(dec_in),.display(display)。 decode1 top3(.dec_in1(dec_in1),.display1(display1)。 elevator_state top4(.fclk(fclk),.reset(reset),.key1(key1),.key2(key2),.chose(chose),.dec_in(dec_in),.dec_in1(dec_in1),.floor(floor)。 floor_time top5(.f

19、clk(fclk),.reset(reset),.count(count)。 led top6(.fclk(fclk),.reset(reset),.floor(floor),.light(light)。endmodule6.综合布线布局管脚分配:7.课程设计的心得体会 本次课程设计自己独立完成,学习到了很多东西,完善了自己很多的不足,比如说不喜欢写设计规范,以至于后面在编写代码的时候出现很多没有想到的问题,解决起来没有头绪,对设计造成了很大麻烦,最后虽然完成了设计要求,但是还是有很多的问题存在。 总体来说,本次设计还是对我学习fpga有很大帮助的。8.参考资料 2 夏宇文.Verilog数字

20、系统设计教程.北京航空航天出版社.20083 杜慧敏.基于verilog的FPGA设计基础.西安电子科技大学,西安邮电学院 电子功能学院 系 FPGA 成绩鉴定表学生姓名 张宏伟班级/学号微电子0901 /04094004/进行时间 2012年6月18日 2012 年6 月28日成绩鉴定学习内容(20分)与教案任务计划结合程度(10分)与专业培养结合程度(6分)其它(4分)接受单位评价(20分)实践能力(10分)学习态度(6分)学习纪律(4分)报告鉴定(60分) 报告内容与实践过程紧密结合(15分)报告内容与教案计划内容紧密结合(15分)报告质量(主题、结构、观点、逻辑、资料、字数 30分)评阅教师姓名职称成绩评语 评阅教师签字 年 月 日 西安邮电学院 电子工程学院 系 FPGA 过程考核表学生姓名张宏伟班级/学号微电子0901/04094004承担任务实验室(单位)所在部门实施时间2012年6月18日 2012 年6 月28日具体内容第一周第二周指导教师(师傅)姓名职务或职称指导教师(师傅)对学生的评价学习态度 认真 一般 不认真学习纪律 全勤 偶尔缺勤 经常缺勤实践能力 很强 一般 较差指导教师(师傅)对学生专业知识或社会实践能力等情况的意见指导教师(师傅)签字 年 月 日

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2