ZYNQ——按键和LED关联实验

news2024/11/17 7:47:47

ZYNQ 7020黑金开发板的PL端有四个LED,如下图所示。
在这里插入图片描述
PL端也有四个KEY,如下图所示。
在这里插入图片描述
本文将把这四个按键和四个LED一一对应起来,在按键按下或松开时,对应的LED产生亮或灭的信号。
在原理图中找到PL端的LED和KEY如下图所示。
在这里插入图片描述
通过看图可知,LED在低电平时亮,而按键KEY在按下时是低电平,因此本实验最后的呈现应当是:按下按键,对应的LED亮;松开按键,对应的LED灭。
该实验对应的代码如下。

module key_led(
    input clk,
    input [3:0] key,  //keydown value is 0, keyup value is 1
    output [3:0] led  //led lighten when low
);

reg [3:0] led_d1;  //define two D Flip-flop
reg [3:0] led_d2;

always@(posedge clk)
begin
    led_d1 <= key;
end

always@(posedge clk)
begin
    led_d2 <= led_d1;
end

assign led = led_d2;
endmodule

添加了两个D触发器,第一级D触发器在时钟上升沿到来后记录按键的状态,并在下一个时钟上升沿到来后将本级D触发器的状态传递给第二级D触发器,然后第二级D触发器将值赋给LED。
其对应的RTL图如下图所示。
在这里插入图片描述
在到开发板上验证之前,先编写如下的仿真测试代码进行仿真。

module key_led_sim();
reg clk;
reg [3:0] key;
wire [3:0] led;

initial
begin 
    clk = 0;
    key = 4'b1111;
    #250
    key = 4'b1010;
    #250
    key = 4'b0101;
    #250
    key = 4'b0001;
end

always #10 clk = ~clk;

key_led uut_key_led(
    .clk(clk),
    .key(key),
    .led(led)
);
endmodule

仿真结果如下图所示。
在这里插入图片描述
通过上述仿真结果可以看到,LED的输出是跟第二级D触发器同步的,落后第一级D触发器一个时钟周期,这与预设相一致,接下来就可以在开发板上验证了。
本实验中的引脚分配可以参照下表进行。

端口引脚
CLKU18
KEY1N15
KEY2N16
KEY3T17
KEY4R17
LED1M14
LED2M15
LED3K16
LED4J16

分配引脚的界面如下图所示。
在这里插入图片描述
引脚分配完成后就可以生成比特流文件,并将其下载到开发板进行板上验证了,开发板上的验证结果如下动图所示。
请添加图片描述
按下 PL KEY1 (2/3/4)对应的 PL LED1 (2/3/4)亮,松开后对应的 LED 熄灭。
以上就是ZYNQ——按键和LED关联实验的所有内容了!

参考资料:
ZYNQ 开发平台 FPGA 教程 AX7020

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

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

相关文章

成为python爬虫工程师需要哪些知识?

爬虫&#xff08;Web crawler&#xff09;是一种自动化程序&#xff0c;用于从互联网上抓取、解析和提取网页数据。它模拟浏览器行为&#xff0c;通过发送HTTP请求获取网页内容&#xff0c;并通过解析网页源代码或DOM结构&#xff0c;提取所需的信息。以python爬虫为例&#xf…

优思学院|作业标准和标准化作业有何区别?傻傻搞不清?

作业标准和标准作业是两个在生产和制造环境中具有重要意义的概念。尽管它们看似相似&#xff0c;但实际上它们在定义、目的和实施方法上存在显著差异。本文将探讨作业标准和标准作业的区别&#xff0c;以及它们在工作场所中的作用和重要性。 1. 引言 在制造领域中&#xff0c…

JDBC小记——SQL注入及预编译操作对象、批处理

目录 SQL注入 预编译操作对象 自定义JDBC工具类 1.创建配置文件 2.配置 3.在工具类中使用配置文件 批处理 注意事项 SQL注入 SQL注入是黑客对数据库进行攻击的常用手段之一&#xff0c;他们拼接一些恶意的sql语句&#xff0c;来获取他们想要的数据。 例&#xff1a; s…

Bpmn.js流程建模结合业务整合工作流(一)

bmpn.js是什么? 先上图 初步认识bpmn.js 相关文档直接上链接 全网最详bpmn.js教材-基础篇 - 掘金bpmn.js是一个BPMN2.0渲染工具包和web建模器, 使得画流程图的功能在前端来完成. 因为公司业务的需要因而要在项目中使用到bpmn.js,但是由于bpmn.js的开发者是国外友人, 因此国…

【2023年中总结】是的,我从一家世界前百强企业毕业了,进入了一家只有20人的小企业。。。

我的2023-上 &#x1f550; 一、引言&#x1f55c; 二、新年&#x1f559; 三、措手不及&#x1f565; 四、抉择&#x1f55a; 五、适应&#x1f389;测试驱动开发&#x1f389;角色的转变&#x1f389;工作环境和生活环境的转变&#x1f389;工作态度 &#x1f566; 六、挑战&…

【裸机开发】定时器中断(EPIT)

EPIT 是周期性中断定时器&#xff0c;会定期调用指定的中断服务函数&#xff0c;其实可以看做是一种IRQ的外设中断&#xff0c;对应的中断ID是88&#xff08;5632&#xff09;或者 89&#xff08;5732&#xff09;。 目录 一、定时器计数流程 二、寄存器解析 1、EPIT1_CR 2…

骨传导耳机、运动耳机推荐:南卡OE开放式TWS耳机值得买吗?南卡OE测评

目前&#xff0c;如果说到骨传导耳机、蓝牙耳机想必大家都很熟悉&#xff0c;那你了解TWS耳机么&#xff1f; 如果说iPhone“重新定义”了智能手机&#xff0c;那么AirPods就重新定义了耳机——它“断”了耳机与手机/播放器间的连线&#xff0c;还将左右耳彼此间的连线彻底摒弃…

SimpleDateFormat显示24小时和12小时时间格式

public static void main(String[] args) throws Exception {MainTest1 mainTest1 new MainTest1();mainTest1.dateFormat();} yyyy-MM-dd HH:mm:ss格式显示的时间为:2017-06-12 18:01:06 yyyy-MM-dd hh:mm:ss格式显示的时间为:2017-06-12 06:01:06

二章:VMvare虚拟机的安装+VMvare安装winServer2008

目录 一、Vmware软件安装 二、Vmware软件注册 三、Vmware配置虚拟机-1 四、Vmware配置虚拟机-2 五、Vmware配置虚拟机-3 六、Vmware安装windows server 2008 一、Vmware软件安装 第一步 双击安装程序&#xff0c;点击下一步。 第二、三步 勾选接受许可&#xff0c;点击下一步。…

SAM【1】:Segment Anything

文章目录 前言1. Abstraction & Introduction1.1. Abstraction1.2. Introduction 2. Segment Anything Model2.1. Segment Anything Task2.1.1. Task2.1.2. Pre-training2.1.3. Zero-shot transfer 2.2. Segment Anything Model Methods2.2.1. Image Encoder2.2.2. Prompt …

python:并发编程(二十三)

前言 本文将和大家一起探讨python并发编程的实际项目&#xff1a;win图形界面应用&#xff08;篇五&#xff0c;共八篇&#xff09;&#xff0c;系列文章将会从零开始构建项目&#xff0c;并逐渐完善项目&#xff0c;最终将项目打造成适用于高并发场景的应用。 本文为python并…

微信小程序快速入门【二】

微信小程序快速入门【二】 文章目录 微信小程序快速入门【二】&#x1f468;‍&#x1f3eb;内容1&#xff1a;背景&#x1f468;‍⚖️内容2&#xff1a;项目结构&#x1f468;‍&#x1f4bb;内容3&#xff1a;项目配置文件app.json&#x1f468;‍&#x1f680;内容4&#x…

SpringBoot使用入门和案例实现

目录 1. 在pom.xml中添加依赖2. 编辑resources/application.properties3. 编写springboot的主程序4. 编写Controller程序5. IDEA本地测试6. 打包上传到服务器运行 1. 在pom.xml中添加依赖 步骤如下&#xff1a; 添加springboot的parent依赖添加springboot的starter-web依赖。…

osip开源库在windows平台上编译

背景 之前写过一篇关于sip协议栈选型的文章&#xff0c;最终采用了osip 2.3.6版本&#xff0c;文章中说明了为什么采用osip协议栈&#xff0c;以及为什么采用2.3.6版本。现在Linux上的产品已经基本满足需求了&#xff0c;接下来我们打算开发一套客户端和服务端对接&#xff0c…

电子邮件机器人和聊天机器人如何使您的客户支持受益?

当我们谈论客户支持中的人工智能时&#xff0c;通常会想到基于Web的聊天机器人。然而&#xff0c;现代人工智能的进步使电子邮件机器人成为客户支持自动化的下一个风口&#xff0c;使组织能够满足人们对于快速便捷的全渠道体验的期望。 有些人认为&#xff0c;与Facebook Mess…

“兆易创新杯”第十八届中国研究生电子设计竞赛有感

今年的电赛给我的感觉是时间真的紧张&#xff0c;可能是因为去年有疫情原因影响所以能准备的时间到七月份&#xff0c;今年不到月底就要全部出成品。我们团队一直在自研一款增强现实眼镜&#xff0c;从硬件设计到软件实现全部由我和另外两个小伙伴一起完成&#xff0c;所以就把…

matlab实现声音录制与左右声道分离

基础知识 1.MATLAB识别的常用语音信号类型&#xff1a; WAV格式 TXT格式 2.读取wav格式语音用函数&#xff1a;wavread 常用格式&#xff1a; ywavread(‘语音文件名’) [y,fs]wavread (‘语音文件名’) 用于读取语音,采样值放在向量y中,fs表示采样频率。 3.读取wav格式语音用…

动态代理与Spring Aop

动态代理 JDK 动态代理 使用JAVA反射包中的类和接口实现动态代理的功能&#xff0c;JAVA.lang.reflect包&#xff1b;主要是三个类&#xff1a; InvocationHandler,Method,Proxy; CGLIB动态代理&#xff0c;第三方工具类库&#xff0c;创建代理对象&#xff0c;cglib的原理是继…

城市内涝监测需要什么设备

近年来&#xff0c;随着城市化进程的加快&#xff0c;城市内涝问题愈发突出。强降雨、缺乏排水设施和过度的人类活动等因素&#xff0c;导致城市内涝灾害频发。内涝不仅给居民生活和财产安全带来威胁&#xff0c;还对城市基础设施和经济发展造成严重影响。 为了应对城市内涝灾…

spring中事务失效的情况(常见的5种)

1.多线程调用 从上面的例子中&#xff0c;我们可以看到事务方法add中&#xff0c;调用了事务方法doOtherThing&#xff0c;但是事务方法doOtherThing是在另外一个线程中调用的。 这样会导致两个方法不在同一个线程中&#xff0c;获取到的数据库连接不一样&#xff0c;从而是两…