ZedBoard教程PL篇(2):按键检测
开发板环境: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):按键检测相关推荐
- coc跑团san数值规则_从新手到入门但其实没有入门的coc跑团教程---pl篇
写在开头:上期教程发出后,本来只是日常催更真冬先生,没想到投完没多久真冬就更了动态,有生之年,赞美真冬.(感觉coc视频作者都是真冬厨怎么回事) 1. 什么叫pl,pc,kp,san值,sc,()/( ...
- ZedBoard教程PS篇(6):搭建VDMA显示通路,通过VGA输出显示图片
开发板环境:vivado2017.4 开发板:Zedboard 芯片型号:xc7z020clg484-1 VGA显示硬件 新建工程vivado工程(如果不会可以参考前面的hello_world这章) ...
- 【紫光同创国产FPGA教程】【第三章】按键检测实验
原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处(http://www.alinx.com). 适用于板卡型号: PGL22G/PG ...
- ESP32-C3入门教程 基础篇②——GPIO口输入,按键的长按和短按
文章目录 一.前言 二.硬件准备 三.知识要点 3.1 GPIO使用 3.2 时钟节拍 四.参考例程 五.功能简述 六.源码实现 6.1 中断方式 6.2 定时扫描 七.源码详解 一.前言 本文基于V ...
- vue2+vue3小白零基础教程—vue2篇,全网2021最详细教程
vue教程 提示:Vue3系列请参考Vue2+Vue3小白零基础教程-vue3篇文章,本文为vue2篇. 1. Vue核心 1.1 Vue简介 1.1.1 Vue是什么 一套用于构建用户界面的渐进式J ...
- .Net魔法堂:史上最全的ActiveX开发教程——发布篇
一. 前言 接着上一篇<.Net魔法堂:史上最全的ActiveX开发教程--开发篇>,本篇讲述如何发布我们的ActiveX. 二.废话少讲,马上看步骤! 1. 打包 C#开发的Activ ...
- 【iVX 初级工程师培训教程 10篇文拿证】05 画布及飞机大战游戏制作
目录 [iVX 初级工程师培训教程 10篇文拿证]01 了解 iVX 完成新年贺卡 [iVX 初级工程师培训教程 10篇文拿证]02 数值绑定及自适应网站制作 [iVX 初级工程师培训教程 10篇文拿 ...
- python 小甲鱼小游戏_Python 小甲鱼教程 Easygui 篇
Python 小甲鱼教程 Easygui 篇 终于有点实质性可以看到摸到的界面了,搜了一下虽然easygui用的不多,但是作为一个起步,z,----,先了解一下吧,e,毕竟道理想通. 下面按照小甲鱼的 ...
- Billy Belceb病毒编写教程---Win32篇
正在处理中,请稍后-- Billy Belceb病毒编写教程---Win32篇 翻译:onlyu ...
最新文章
- 你可能不知道的小程序
- mybatis-plus 多列映射成数组_JavaScript 为什么需要类数组
- webToImage (网页转图片)模块试用分享
- FPGA 起脚nCEO/IO管教设置问题
- Dmoz介绍及怎么提交?
- 健忘族的大爱,机器人管家Watch Bot提醒你不要丢三落四
- 加油站会员管理系统源码php_加油站使用会员管理系统,如何解决行业瓶颈?
- mysql事务隔离级别及传播机制
- 关于.NET CF的底层资料(幻灯片)
- Mac电脑优化工具箱MacCleaner PRO
- 阿里云与SUSE共同畅聊云原生
- wordpress 增加备案号
- NUISTOJ/P1623切蛋糕
- 马云:中国企业不缺创新缺管理思想
- python3出现TypeError: can only concatenate str (not bytes) to str的错误,大一刚上手python的学习,望大神解决。感激不尽
- linux双网卡配置两个ip,centos双线双ip配置,Windows双网卡双ip配置
- FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding
- 【转】ARM GIC中断系列(八):gicv3架构-波形为例、系列总结
- 使用 Amazon SageMaker Clarify 解释德甲赛况 xGoals
- html ppt播放音乐,PPT怎么控制音乐暂停后继续播放?