开发板环境:vivado2017.4

开发板:Zedboard 芯片型号:xc7z020clg484-1

本章主要使用用verilog编写一个按键检测程序,按一次按键LED亮一次,依次点亮八个LED灯

按键工程

按键检测代码

`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2022/02/26 12:48:48
// Design Name:
// Module Name: key_test
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//module key_test(
input           clock,//100M
input           reset,//SW0
input           key_in,//BTNC
output  [7:0]   led//LED0~LED7);reg         key_in_r1;reg         key_in_r2;wire        key_in_flag;reg         key_out;reg         key_out_r1; reg         key_out_r2;reg [19:0]  cnt;reg [7:0]   led_reg;   wire        key_out_flag;always @ (posedge clock, negedge reset)if(!reset) key_in_r1 <= 1'b1;else        key_in_r1 <= key_in;always @ (posedge clock, negedge reset)if(!reset) key_in_r2 <= 1'b1;else        key_in_r2 <= key_in_r1;assign key_in_flag = (!key_in_r2 & key_in_r1); always @ (posedge clock, negedge reset)if(!reset)cnt <= 20'h0;else if(key_in_flag)cnt <= 20'h0;elsecnt <= cnt + 1'b1;always @ (posedge clock, negedge reset)if(!reset)key_out <= 1'b1;else if(cnt == 20'hfffff)            key_out <= key_in;always @ (posedge clock, negedge reset)if(!reset)key_out_r1 <= 1'b1;elsekey_out_r1 <= key_out;always @ (posedge clock, negedge reset)if(!reset)key_out_r2 <= 1'b1;elsekey_out_r2 <= key_out_r1;assign  key_out_flag =   (!key_out_r2 && key_out_r1);  //点亮LEDalways@(posedge clock or negedge reset)beginif(!reset)    led_reg    <=  8'b00000001;else if(key_out_flag)beginif(led_reg == 8'b10000000)led_reg    <=  8'b00000001;else    led_reg    <=  led_reg<<1;end
endassign  led =   led_reg;endmodule

按键检测约束文件

set_property PACKAGE_PIN T22 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]
set_property PACKAGE_PIN T21 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]
set_property PACKAGE_PIN U22 [get_ports {led[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[2]}]
set_property PACKAGE_PIN U21 [get_ports {led[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[3]}]
set_property PACKAGE_PIN V22 [get_ports {led[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[4]}]
set_property PACKAGE_PIN W22 [get_ports {led[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[5]}]
set_property PACKAGE_PIN U19 [get_ports {led[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[6]}]
set_property PACKAGE_PIN U14 [get_ports {led[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[7]}]
set_property PACKAGE_PIN Y9 [get_ports clock]
set_property IOSTANDARD LVCMOS33 [get_ports clock]
set_property PACKAGE_PIN F22 [get_ports reset]
set_property IOSTANDARD LVCMOS33 [get_ports reset]set_property PACKAGE_PIN P16 [get_ports key_in]
set_property IOSTANDARD LVCMOS33 [get_ports key_in]

使用的按键

将reset打到下面不然会一直复位,然后按key按键,注意key按键默认没有按的时候是低电平,按键按下就会输入高电平,所以和大多少的按键相反,写程序注意按键上升沿检测按键

开发板上电后第一个led灯亮

按一下按键,第二个灯亮

再按一下按键,第三个灯亮,每次按键都是依次点亮led,如果按了八次就会重新从第一个灯开始亮起

ZedBoard教程PL篇(2):按键检测相关推荐

  1. coc跑团san数值规则_从新手到入门但其实没有入门的coc跑团教程---pl篇

    写在开头:上期教程发出后,本来只是日常催更真冬先生,没想到投完没多久真冬就更了动态,有生之年,赞美真冬.(感觉coc视频作者都是真冬厨怎么回事) 1. 什么叫pl,pc,kp,san值,sc,()/( ...

  2. ZedBoard教程PS篇(6):搭建VDMA显示通路,通过VGA输出显示图片

    开发板环境:vivado2017.4 开发板:Zedboard 芯片型号:xc7z020clg484-1 VGA显示硬件 新建工程vivado工程(如果不会可以参考前面的hello_world这章) ...

  3. 【紫光同创国产FPGA教程】【第三章】按键检测实验

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处(http://www.alinx.com). 适用于板卡型号: PGL22G/PG ...

  4. ESP32-C3入门教程 基础篇②——GPIO口输入,按键的长按和短按

    文章目录 一.前言 二.硬件准备 三.知识要点 3.1 GPIO使用 3.2 时钟节拍 四.参考例程 五.功能简述 六.源码实现 6.1 中断方式 6.2 定时扫描 七.源码详解 一.前言 本文基于V ...

  5. vue2+vue3小白零基础教程—vue2篇,全网2021最详细教程

    vue教程 提示:Vue3系列请参考Vue2+Vue3小白零基础教程-vue3篇文章,本文为vue2篇. 1. Vue核心 1.1 Vue简介 1.1.1 Vue是什么 一套用于构建用户界面的渐进式J ...

  6. .Net魔法堂:史上最全的ActiveX开发教程——发布篇

    一. 前言 接着上一篇<.Net魔法堂:史上最全的ActiveX开发教程--开发篇>,本篇讲述如何发布我们的ActiveX. 二.废话少讲,马上看步骤! 1. 打包  C#开发的Activ ...

  7. 【iVX 初级工程师培训教程 10篇文拿证】05 画布及飞机大战游戏制作

    目录 [iVX 初级工程师培训教程 10篇文拿证]01 了解 iVX 完成新年贺卡 [iVX 初级工程师培训教程 10篇文拿证]02 数值绑定及自适应网站制作 [iVX 初级工程师培训教程 10篇文拿 ...

  8. python 小甲鱼小游戏_Python 小甲鱼教程 Easygui 篇

    Python 小甲鱼教程 Easygui 篇 终于有点实质性可以看到摸到的界面了,搜了一下虽然easygui用的不多,但是作为一个起步,z,----,先了解一下吧,e,毕竟道理想通. 下面按照小甲鱼的 ...

  9. Billy Belceb病毒编写教程---Win32篇

    正在处理中,请稍后-- Billy Belceb病毒编写教程---Win32篇                                      翻译:onlyu                ...

最新文章

  1. 你可能不知道的小程序
  2. mybatis-plus 多列映射成数组_JavaScript 为什么需要类数组
  3. webToImage (网页转图片)模块试用分享
  4. FPGA 起脚nCEO/IO管教设置问题
  5. Dmoz介绍及怎么提交?
  6. 健忘族的大爱,机器人管家Watch Bot提醒你不要丢三落四
  7. 加油站会员管理系统源码php_加油站使用会员管理系统,如何解决行业瓶颈?
  8. mysql事务隔离级别及传播机制
  9. 关于.NET CF的底层资料(幻灯片)
  10. Mac电脑优化工具箱MacCleaner PRO
  11. 阿里云与SUSE共同畅聊云原生
  12. wordpress 增加备案号
  13. NUISTOJ/P1623切蛋糕
  14. 马云:中国企业不缺创新缺管理思想
  15. python3出现TypeError: can only concatenate str (not bytes) to str的错误,大一刚上手python的学习,望大神解决。感激不尽
  16. linux双网卡配置两个ip,centos双线双ip配置,Windows双网卡双ip配置
  17. FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding
  18. 【转】ARM GIC中断系列(八):gicv3架构-波形为例、系列总结
  19. 使用 Amazon SageMaker Clarify 解释德甲赛况 xGoals
  20. html ppt播放音乐,PPT怎么控制音乐暂停后继续播放?

热门文章

  1. 2019年字节跳动2020届秋招在线笔试真题(后端开发工程师)
  2. 独享还是共享,你选择哪一种锁?(独享锁/共享锁)
  3. 关于美国安利的真实情况 !!!!!
  4. C++之定义动态二维数组
  5. 单点故障--名词解释
  6. Java类加载与初始化机制实例分析
  7. 腾讯文档的表格设置行高
  8. $NOIP 2018 PJ游记[ZJ]$
  9. 最全的的初中数学公式大全
  10. redo synch writes在什么情况下发生