【FPGA实验4】举重比赛机制

news/2024/4/24 16:13:06/

举重比赛有三名裁判,当运动员将杠铃举起后,须有两名或两名以上裁判认可,方可判定试举成功,若用A、B、C分别代表三名裁判的意见输入,同意为1,否定为0;F为裁判结果输出,试举成功时F=1,试举失败时F=0。

一、分析与Verilog代码

真值表:
ABCF
0000
0010
0100
0111
1000
1011
1101
1111

因而可以得到 F = (A&&B) || (A&&C) ||(B&&C)

Verilog代码:
module test(input wire A,input wire B,input wire C,output wire F);reg result=0;always @(A,B,C)result = (A&&B) || (A&&C) ||(B&&C);assign F = result;endmodule

二、软件仿真

tb文件:
module test_tb();wire result;
reg [3:0] count;
reg A, B, C;
reg clk;always #5 clk=~clk;initial beginclk<=0;A<=0;B<=1;C<=1;count<=1'b0;
endalways @ (posedge clk) beginif (count == 4'd2) beginA<=~A;endelse if(count ==4'd4)beginB<=~B;endelse beginC=~C;endif (count==4'd4)begincount<=4'b0;endelse begincount<=count+1'b1;endendtest u_test(.A      (A),.B      (B),.C      (C),.F      (result)
);endmodule
仿真结果:

当同一时刻,A、B、C中有大于等于两个为高电平时,输出为高电平。

在这里插入图片描述

三、硬件箱实现

裁判A、B、C通过按键K1、K2、K3输入自己的结果,若通过,则绿色的LED灯L2亮起;若不通过,LED不亮。

1、代码调整

由于led是低电平驱动,所以需要对代码的最后做一点小的修改:

 assign F = result;

↓ ↓ ↓

 assign F = !result;

整体代码如下:

module test(input wire A,input wire B,input wire C,output wire F);reg result=0;always @(A,B,C)result = (A&&B) || (A&&C) ||(B&&C);assign F = result;endmodule
2、实现

编译没有问题后可以查看一下RTL图:

在这里插入图片描述
接着进行引脚分配,引脚分配结果如下:

在这里插入图片描述
分配完引脚之后再编译一次,接着进行sof文件的烧录。

用下载线将按键接口JX22连接到JP5,将按键接口JX5连接到JP1,JTAG接口用下载线连接到电脑的USB口。

(为什么要这样接线可以参考《【FPGA实验2】二进制转为格雷码》中的【三、实验箱实验】➡️【3、引脚分配】。)

4、实验结果

【FPGA实验1.5】举重裁判机制

Foever young,always tearful. 😏


http://www.ppmy.cn/news/46842.html

相关文章

逍遥自在学C语言 | 位运算符~的高级用法

前言 在上一篇文章中&#xff0c;我们介绍了^运算符的高级用法&#xff0c;本篇文章&#xff0c;我们将介绍~ 运算符的一些高级用法。 一、人物简介 第一位闪亮登场&#xff0c;有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿 ——…

Direct3D 12——计算着色器——计算着色器概念

计算着色器虽然是一种可编程的着色器&#xff0c;但Direct3D并没有将它直接归为渲染流水线中的一部分。虽然如此&#xff0c;但位于流水线之外的计算着色器却可以读写GPU资源。从本质上来说&#xff0c;计算着 色器能够使我们访问GPU来实现数据并行算法&#xff0c;而不必渲染出…

5.Spring Cloud (Hoxton.SR8) 实战笔记—项目中细节实现 约束 注意事项、模块难点总结

本文目录如下&#xff1a; 二、项目中细节实现 & 约束 & 注意事项判断字符串是否为空&#xff1f;入参 Num 字段转换为 num 的问题&#xff1f;通过 Java 获取时间 (Date类型) 并插入数据库&#xff1f;神坑: baseMapper.selectById(String str)之坑?AES 实现加密函数…

[Eigen中文文档] 切片和索引

专栏总目录 本文目录 概述基本的切片编译时的大小和步长倒序索引序列自定义索引列表 英文原文(Slicing and Indexing) 本文介绍了如何使用操作运算符operator()索引行和列的子集。该 API 在 Eigen 3.4 中引入。它支持 block API 提供的所有功能。特别是&#xff0c;它支持切片…

查询练习:条件加组筛选

查询 student 表中至少有 2 名男生的 class 。 -- 查看学生表信息 SELECT * FROM student; ---------------------------------------- | no | name | sex | birthday | class | ---------------------------------------- | 101 | 曾华 | 男 | 1977-09-01 | 95…

vue 动态组件

一见如故 // 一般配合<keep-alive>组件&#xff0c;避免反复重新渲染dom <keep-alive><component :is"com"></component> </keep-alive> <script> import Left from ./LeftComponent.vue import Right from ./RightComponent.v…

Ae:自动定向

Ae 菜单&#xff1a;图层/变换/自动定向 Auto-Orient 快捷键&#xff1a;Ctrl Alt O 自动定向 Auto-Orient是 Ae 图层中的一个附加的、隐藏实现&#xff08;不会在时间轴面板上更改属性的值&#xff09;的功能&#xff0c;它可以使得图层自动旋转或改变方向以朝向指定的运动路…

【Linux阅读笔记】LinuxC一站式编程1-程序基本概念与gdb调试

目录 程序基本概念配置开发环境第一个程序C 复习 gdb单步执行与跟踪断点观察点段错误 程序基本概念 使用 ubuntu22.0 作为演示环境&#xff08;vmware 虚拟机搭设&#xff09; 配置开发环境 配置完基础开发环境后&#xff0c;可以直接下载一个 vscode 作为初始 LDE 使用&#x…

机器学习 day03(成本函数,简化后的和一般情况下的成本函数)

1. 成本函数 平方误差成本函数是最通常用于线性回归的成本函数最终&#xff0c;我们要找到一组w和b&#xff0c;让j函数的值最小误差&#xff1a;ŷ - y 2. 简化后的平方误差成本函数&#xff0c;即b 0 当w 1时&#xff0c;f(x) x&#xff0c;J(1) 0 左侧为f(x)函数&am…

Python 图像处理实用指南:11~12

原文&#xff1a;Hands-On Image Processing with Python 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 计算机视觉 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 当别人说你没有底线的时候&#xff0c;…

程序员 如何避免职场危机,打造自己稀缺性

你在职场上如何又脱颖而出 你唯一的办法就干嘛 找一找怎么才能构建我自己的稀缺性 我经过我 多年的工作和有观察的体验 化是什么呢 从技术迭代进步的角度来说 因为软件越来a p i化 个人的能力被解脱了 一定会向上下有延伸 因为当你做一块 以前是一年做下来时间只需要一个月 是一…

(一)Linux:自由、开放、灵活的操作系统内核

目录 一、Linux的发展史 二、linux的开源 三、目前的现状 四、企业应用现状 五、发行的版本 六、安装与使用 七、利用云服务器配置Linux环境 一、Linux的发展史 Linux是一款由林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;开发的操作系统内核&#xff0c;它的发布…

windows开启自启动jar包

1.新建txt文本文档 2.复制以下内容&#xff0c;并记得修改 appName 到自己jar包所在目录 并修改jar包名称 3.重命名文本文档.txt为 &#xff08;自己起名字&#xff09;.bat (注&#xff1a;修改成.bat文件&#xff0c;名字自己起) echo off setlocal set appNameD:/tes…

Qt QList 详解:从底层原理到高级用法

目录标题 引言&#xff1a;QList 的重要性与应用场景&#xff08;Introduction: The Importance and Application Scenarios of QList&#xff09;QList的常用接口QList和std::listQList 使用场合迭代器&#xff1a;遍历 QList 中的元素&#xff08;Iterators: Traversing Elem…

在新电脑上重启自己的django+vue项目遇到的数据库和Nodejs问题

数据库问题 今天在新电脑上重启自己备份的项目文件,迁移数据库的时候一直出现这个问题,运行代码也是这个问题。很奇怪,明明是不出错的代码做的备份怎么会出问题? 找了一下午,终于晚上把问题解决了。 问题 1、首先是这个问题 2、再往上追溯,发现是这里的问题 3、在原…

【记录】Truenas Scale|中危漏洞,需要SMB签名

部分内容参考&#xff1a;等保测试问题——需要SMB签名(SMB Signing not Required) 以及 ChatGPT。 Truenas常用SMB服务&#xff0c;但默认并不开启SMB签名。这样具有中间人攻击的风险。 一、漏洞详情 1.1 漏洞报告 漏洞提示如下&#xff1a; 1.2 漏洞介绍 SMB是一个协议名…

git --- git tag用法

1 什么是tag tag是git版本库的一个标记,指向某个commit的指针。 tag主要用于发布版本的管理,一个版本发布之后,我们可以为git打上 v.1.0.1 v.1.0.2 …这样的标签。 tag感觉跟branch有点相似,但是本质上和分工上是不同的: tag 对应某次commit, 是一个点,是不可移动的。 b…

动态代理入门必看

基本介绍 代理 就是让代理角色帮助真实角色完成一件事情。比如说&#xff0c;我叫我们朋友帮我完成博客&#xff0c;那么这个朋友就是代理&#xff0c;朋友不是我&#xff0c;但是和我完成同样的事&#xff0c;并且还可以对这件事加入他的行为逻辑。 不论是什么代理方法&…

1.docker-安装及使用

1.安装步骤 Install Docker Engine on CentOS 1. 确定CenOS7及以上版本 cat /etc/redhat-release2.卸载旧版本 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine3.yum安…

HuggingGPT强势来袭,LLM+专家模型,迈向更通用的AI

出品人&#xff1a;Towhee 技术团队 超级组合&#xff1a;HuggingFace ChatGPT HuggingGPT强势来袭。人类仿佛距离真正的AGI又更近了一步。 HuggingGPT是浙江大学与微软亚洲研究院的联手研究&#xff0c;发布之后迅速引发关注&#xff0c;已经开源。 它的使用非常简单&#x…