FPGA中按键程序设计示例

本文中使用Zynq 7000系列中的xc7z035ffg676-2器件的100MHz PL侧的外部差分时钟来检测外部按键是否按下,当按键被按下时,对应的灯会被点亮。当松开按键时,对应的灯会熄灭。

1、编写代码

新建工程,选用xc7z035ffg676-2器件。
在这里插入图片描述
点击Design Sources中的“+”新建一个代码文件KEY.v。
在这里插入图片描述
文件类型选择Verilog。
在这里插入图片描述
KEY.v文件创建完成后,可以看到Design Sources文件夹中有KEY.v文件,打开该文件编辑内容。
在这里插入图片描述

module KEY(
input       clk,
input       rst,
input       key,
output   led);parameter delay_time = 200;reg [31:0] cnt;
reg  led_r;
assign led = led_r;always @(posedge clk or negedge rst)
beginif(!rst)  begincnt <= 'b0;led_r <= 'b0;endelse  beginif(!key)  beginif( cnt < delay_time) begincnt <= cnt + 'b1;led_r <= led_r;end   else begincnt <= cnt;led_r <= 'b1;endend   else begincnt <= 'b0;led_r <= 'b0;endend    
end
endmodule

2、仿真设计

点击Design Sources中的“+”创建仿真文件SIM.v
在这里插入图片描述
文件类型选择Verilog。
在这里插入图片描述
SIM.v文件创建完成后,可以看到Design Sources文件夹中有SIM.v文件,打开该文件编辑代码。
在这里插入图片描述
在这里,key = 1表示没有按按键,key = 0表示按下按键。

module SIM();reg   clk;reg   rst;reg   key;wire  led;KEY  KEY(.clk(clk),.rst(rst),.key(key),.led(led));initialbeginclk = 'b0;rst = 'b0;key = 'b1;#1000;rst = 'b1;#20000;key = 'b0;#10000;key = 'b1;#20000;key = 'b0;endalways #5 clk = !clk;
endmodule

3、开始仿真

左键点击“PROJECT MANAGER——SIMULATION——RUN Simulation”。
在这里插入图片描述
选择Run Behavioral Simulation.

右键点击Scope下的KEY,选择Add to Wave Window,将KEY中的信号全部添加到右侧视图中。
在这里插入图片描述
点击Run All运行仿真。
在这里插入图片描述
运行结果为:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ansible执行mysql脚本

目录 概述实践环境要求ansible yml脚本命令离线包 概述 ansible执行mysql脚本 实践 官网文档 环境要求 环境需要安装以下内容: 1.mysql客户端(安装了mysql即会有)2.安装MySQL-python (Python 2.X) 详细插件安装链接 ansible yml脚本 关键代码如下&#xff1a; # 剧本…

vscode设置conda默认python环境,简单有效

本地conda 可能安装了各种环境&#xff0c;默认的vscode总是base环境&#xff0c;这时你想要在vscode调试python代码&#xff0c;使用默认的环境没有安装对应的包就会遇到报错解决这个问题的方法很简单ctrlshiftp 调出命令面板 再输入 select interpreter , 选择 python 选择解…

设计模式——2_9 模版方法(Template Method)

人们往往把任性也叫做自由&#xff0c;但是任性只是非理性的自由&#xff0c;人性的选择和自决都不是出于意志的理性&#xff0c;而是出于偶然的动机以及这种动机对感性外在世界的依赖 ——黑格尔 文章目录 定义图纸一个例子&#xff1a;从文件中获取信息分几步&#xff1f;Rea…

为什么用CubeMX配置STM32H7主频只能配到200,但实际配到400没报错,超过400报错,其他深色也要把前边的分频器向小调?

原因&#xff1a; STM32CUBEMX配置STM32H750时钟480M时失败_stm32h750 时钟配置_小李干净又卫生的博客-CSDN博客 STM32CUBEMX默认设置的是VOS1&#xff0c;是不能支持480M运行的&#xff0c;只能400 但还不清楚为什么这里没有更多选项Scale &#xff1f;

BRC20铭文铭刻解析

BRC20铭文铭刻的出现对于智能制造无疑是一个重要的里程碑。随着科技的飞速发展&#xff0c;智能制造已经成为制造业发展的必然趋势&#xff01;智能制造是指通过运用人工智能、物联网、大数据等先进技术&#xff0c;实现生产过程的自动化、智能化和高效化。 1. BRC20铭文的概念…

栈的应用--括号匹配问题

括号匹配问题:给一个字符串,其中包括小括号、中括号、大括号.求该字符串中的括号是否匹配? 例如: ()()[]{} --> 匹配 ([{()}]) --> 匹配 []{ --> 不匹配 [(]] --> 不匹配 这里可以借助栈的思想来做: 1.遍历字符串:从左边开始…

阿里巴巴Java规约p3c-pmd与maven集成,实现maven package打包前校验

前言 网上复制来&#xff0c;复制去&#xff0c;都不知道原因&#xff0c;瞎搞。故写了此篇文档&#xff1b; 以下代码&#xff0c;直接复制到pom.xml中就好使。 需求 阿里巴巴Java规约p3c-pmd与maven集成&#xff0c;实现maven package打包前校验&#xff0c;如果校验不通过…

9. Vue Router4 过渡动效

Vue Router 4 提供了强大的动态过渡动效功能&#xff0c;可以让你的页面在路由切换时有流畅的过渡效果。这主要通过 Vue 的 <transition> 组件实现。 基本使用 首先&#xff0c;我们需要在路由组件外部包裹一个 <transition> 组件。然后&#xff0c;给 <trans…

【Git】从零开始的 Git 基本操作

文章目录 1. 创建 Git 本地仓库2. 配置 Git3. 认识工作区、暂存区、版本库3.1 添加文件 | 场景一3.2 查看 .git 文件3.3 添加文件 | 场景二 4. 修改文件5. 版本回退6. 撤销修改6.1 情况一&#xff1a;对于工作区的代码&#xff0c;还没有 add6.2 情况二&#xff1a;已经 add&am…

实在IDP文档审阅产品导引

实在IDP文档审阅&#xff1a;智能文档处理的革新者 一、引言 在数字化转型的浪潮中&#xff0c;文档处理的智能化成为企业提效的关键。实在智能科技有限公司推出的实在IDP文档审阅&#xff0c;是一款利用AI技术快速理解、处理文档的智能平台&#xff0c;旨在为企业打造专属的…

MyBatis-知识点详解

本文将详细地介绍MyBatis框架&#xff0c;从其优缺点、适用场景到工作原理&#xff0c;全面解析MyBatis的懒加载、延迟加载机制&#xff0c;以及如何管理实体与数据库字段的映射差异。同时&#xff0c;探讨动态SQL、缓存策略、事务处理&#xff0c;并比较MyBatis与Hibernate的不…

Qt 6子窗口全屏显示

一、全屏显示效果 二、全屏相关函数 1,全屏显示函数 QWidget::showFullScreen(); // 此方法只对顶级窗口有效&#xff0c;对子窗口无效 2&#xff0c;恢复显示函数 QWidget::showNormal(); // 此方法也只对顶级窗口有效&#xff0c;对子窗口无效 3&#xff0c;最小化显示函…

go语言并发实战——日志收集系统(五) 基于go-ini包读取日志收集服务的配置文件

实现日志收集服务的客户端 前言 从这篇文章开始我们就正式进入了日志收集系统的编写&#xff0c;后面几篇文章我们将学习到如何编写日志收集服务的客户端,话不多说,让我们进入今天的内容吧&#xff01; 需要实现的功能 我们要收集指定目录下的日志文件&#xff0c;将它们发…

12. MyBatis(二)

源码位置&#xff1a;MyBatis_demo 上篇文章我们学习了MyBatis的定义以及增删查改操作&#xff0c;并且学习了如何在xml文件中编写SQL时使用#{}的方式将参数和对象的属性映射到SQL语句中&#xff0c;上篇的内容已经足以应对大部分场景&#xff0c;本篇文章我们就要学习一下MyBa…

uniapp+vue3监听输入框内容watch

代码 <view class"searchBox"><view class"searchLeft"><wh-icon name"search" size"40"></wh-icon><input type"text" placeholder"请输入搜索内容" v-model"search" /&g…

基础算法---二分查找

文章目录 基本思想1.数的范围2.搜索旋转排序数组3.搜索插入位置4.x的平方根总结 基本思想 二分查找的必要条件并不是单调&#xff0c;而是当我给定一个边界条件&#xff0c;然后左边满足这个边界条件&#xff0c;右边不满足这个边界条件&#xff0c;然后可以查找这个临界点&am…

华火电燃灶:烹饪艺术与科技创新的完美融合

华火电燃灶&#xff0c;以纯净电力激发明火之美&#xff0c;无须燃气&#xff0c;尽释碳负。每一道佳肴背后&#xff0c;都是对安全与健康的无声誓言&#xff0c;为家庭温馨瞬间添上一抹灿烂。从宝贝初声啼哭到晚年宁静美好&#xff0c;华火见证家的每一次幸福团聚&#xff0c;…

DevOps流程的简单总结

DevOps流程图&#xff1a; DevOps流程包含&#xff1a;计划&#xff08;plan&#xff09;、编码(code)、编译(build)、测试(test)、发布(release)、部署(deploy)、运营(operate)、监控&#xff08;monitor&#xff09;&#xff0c;这是一个循环的过程。DevOps是依托容器、自动化…

流程控制:goto语句,模拟switch语句

示例&#xff1a; /*** brief how about goto-switch? show you here.* author wenxuanpei* email 15873152445163.com(query for any question here)*/ #define _CRT_SECURE_NO_WARNINGS//support c-library in Microsoft-Visual-Studio #include <stdio.h>static …

涉密人员离职,如何一键锁定他的电脑屏幕

在任何情况下&#xff0c;保护企业数据的安全性和机密性都是非常重要的。如果涉密人员离职&#xff0c;应该遵循相关的保密协议和规定&#xff0c;确保企业数据的完整性和安全性。同时&#xff0c;也应该对员工进行适当的培训和教育&#xff0c;提高他们的安全意识和技能水平。…