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

    按键驱动LED地实验课设资料.doc

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

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

    按键驱动LED地实验课设资料.doc

    word设计一:按键驱动LED的实验一、 设计目的学会用Verilog语言编写所需要的程序,会对自己编写的程序进展编译和仿真,懂得根据仿真软件提示的错误进展修改,也需要对通过仿真改正功能的错误。并学会检测按键和控制LED的输出。本实验是通过FPGA检测I/O口上的按键信号,通过时序控制两个LED灯以流水灯的方式各亮灭六次。最后灯保持灭的状态。二、 设计原理该实验的主要问题是FPGA如何捕获到按键是否按下。当按键按下时,输入电平会由高变低,按键松开后,输入电平会由低变高,这就有一个上升沿和一个下降沿。捕获到这两个沿。就可以确认按键按下。检测到按键按下时,开始实现设计的功能。由于两个LED灯亮灭有时间控制。所以需要分频。由于FPGA的内部频率是66兆赫兹,如此需要分频65999999次能达到一秒。最后编写主要的功能程序,首先让两个LED灯都置于高电平,当检测到按键按下时,时间过了一秒之后,led1开始亮,又过了一秒,LED2和LED1对LED1取反,实现了一亮一灭的功能。这样循环六次后,分别将两灯置于高电平,即灭的状态。在此过程中,假如复位键置于高电平,如此亮灯都暗。三、 设计成果1、模块划分或者状态机1键盘的检测2分频3实现流水灯的模块2、模块设计计数模块用来计数的。低电平和计数器满时,复位。否如此计数器不断的计数加一,直到计数满时再复位。 always(posedge clk or negedge reset_n)begin if(!reset_n) t1<=20'd0;else t1<=t1+1'b1;endalways(negedge reset_n or posedge clk)begin if(reset_n=1'b0) begin t<=28'd0; end else begin if(t=28'd00000099) begin t<=28'd0; end else t<=t+1; endendreg yimiao;always(negedge reset_n or posedge clk)begin if(reset_n=1'b0) begin yimiao<=1'b0; end else begin if(t=28'd00000099) yimiao<=1'b1; else if(yimiao) yimiao<=1'b0; end end键盘的检测模块 always(negedge reset_n or posedge clk) begin if(reset_n=1'b0) key1_dly<=1'b0; else key1_dly<= key1; end always(negedge reset_n or posedge clk) begin if(reset_n=1'b0) key1_dly1<=1'b0; else key1_dly1<= key1_dly; end always(negedge reset_n or posedge clk) begin if(reset_n=1'b0) key1_nege_flag<=1'b0; else if(key1_dly=1'b0&&key1_dly1=1'b1) key1_nege_flag <=1'b1; else if(key1_valid=1'b1) key1_nege_flag <=1'b0; end always(negedge reset_n or posedge clk) begin if(reset_n=1'b0) key1_pose_flag<=1'b0; else if(key1_nege_flag=1'b1) begin if(key1_dly=1'b1&&key1_dly1=1'b0) key1_pose_flag <=1'b1; else if(key1_valid=1'b1) key1_pose_flag <=1'b0; end end always(negedge reset_n or posedge clk) begin if(reset_n=1'b0) key1_valid<=1'b0; else if(key1_nege_flag=1'b1&&key1_pose_flag=1'b1) key1_valid <=1'b1; else key1_valid <=1'b0; end always(negedge reset_n or posedge clk) begin if(reset_n=1'b0) begin key_ok1<=1'b0; end else if(key1_valid=1'b1) key_ok1<=1'b1; endLED灯的驱动模块 always(negedge reset_n or posedge clk) begin if(reset_n=1'b0) begin count<=0; led1<=1'b1; led2<=1'b1; end else if(yimiao) begin if(key_ok1=1'b1) begin if(count=12) led2<=1; if(count<12) begin led1<=led1; led2<=led1; count<=count+1; end end endendmodule四、 仿真结果分析功能仿真和时序仿真仿真程序timescale 1ns/1psmodule textbench();reg clk;reg reset_n;reg key1;wire led1;wire led2;key x_key( .clk (clk), .reset_n (reset_n), .key1 (key1), .led1 (led1), .led2 (led2);always begin #10; clk<=1'b0;#10; clk<=1'b1; end initialbegin reset_n =1'b0; # 300; reset_n =1'b1; key1=1'b1;# 200; key1=1'b0;# 300; key1=1'b1;#10000;$finish;endEndmodule功能仿真时序仿真将仿真好的verilog程序,通过JTAG下载到开发板上。通过设置UCF文件,对按键,复位时钟,LED与开发板的实际电路相对应NET "clk" LOC = P183 | IOSTANDARD = "LVCMOS33"NET "key1" LOC = P154 | IOSTANDARD = "LVCMOS33"NET "led1" LOC = P56 | IOSTANDARD = "LVCMOS33"NET "led2" LOC = P60 | IOSTANDARD = "LVCMOS33"NET "reset_n" LOC = P118 | IOSTANDARD = "LVCMOS33" | PULLUP;6 存在问题和改良本实验只实现了简单的按键控制LED的亮灭功能,在逻辑上显的简单。在功能的时间上我比拟后悔没有按教师说的用同步复位,异步复位在逻辑正确的情况下可能不能仿真出想要的结果。我觉得在难度上可以再加大一些。七心得体会 本次试验我熟悉了开发板的一些硬件资源和verilog语言的一些根本特点,对modelsim和ise仿真软件比拟了解。 也让我对开发流程有了更进一步的认识,逻辑和仿真是很重要的局部,它能大大缩短你成功设计的时间。8 / 8

    注意事项

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

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




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开