程序是基于Verilog语言的,支持在vivado平台开发,物理可实现,需要准备的外设有ov7725摄像头以及sg90二轴舵机云台、若干杜邦线或连接线
2022-01-15 21:02:53 23.38MB FPGA vivado Basys3 Verilog
欢迎参考学习,基于verilog语言的basys 3的自动小车设计报告。除了实现黑带检测的自动调速功能,还有测速功能,超声波测障报警功能。
2021-12-20 22:02:33 1.36MB 课程设计 verilog basys3 自动小车
用vivado编写的数字钟实验代码文件,功能包括时钟,闹钟,正计时,倒计时等功能,亲测可以在basys3板子上跑起来,代码上有错误不可避免,希望这些代码能够在大家完成数字钟实验的时候帮助到大家,起到一个参考的作用
2021-12-07 18:52:44 23.18MB systemverilog 数字钟实验
1
游戏功能: 游戏界面由4×4的16个方格组成,每个方格中可以存放一个数字。玩家通过操纵Basys3开发板的上下左右四个方向键和中央的reset键,控制方格中的数字移动。界面由VGA和Pmod接口oled两种方式显示。游戏成功时显示笑脸,失败时显示骷髅。 游戏过程中,玩家每按动一次方向键,所有数字按照这个方向移动一次,该方向上相邻相同的数字合并为原来的2倍,并在反方向随机生成一个新的数字。玩家目标是在游戏中拼出2048或更高的数字,即为游戏成功。 DIY动手指南: Step1:材料准备 硬件: Basys3开发板 VGA连接线以及VGA显示器 (可选)sh1106驱动的oled显示屏一块 软件: Vivado 2016.2 Step2:系统框架 系统主要由以下几个模块构成,游戏主状态机、游戏数据寄存器{S16}、移动模块move、随机产生模块gen、随机数生成器ran、VGA驱动模块和oled驱动模块。 Step3:程序设计 接下来分模块进行分析。 1、按键去抖 对每个按键设计了一个32位长的FIFO,按键值从低位进入直至高位溢出。每过10ms,FIFO被完全刷新一次,只有当32位为FFFFFFFFh时认为输入为1,00000000h时认为输入为0。 2、游戏数据寄存器 用4×4=16个4bit寄存器,存放16个格子中的数据,记为{S16},以【log2对数】形式存放。即如果格子中是512,则存放9;如果格子中是128,则存放7。特例是0用0来存放。这种存放的特点是,可以节约寄存器数量,而且原本的加法128+128=256可以用加1来表示:7+1=8。寄存器位置定义如下: 3、游戏主状态机 游戏主状态机中,主要操纵数据寄存器{S16}的数值,通过对这个寄存器中数值的改变来实现游戏的进行。 状态机分为4个状态:检测按键+移动,产生随机数,游戏状态检测,游戏失败死循环。 其中游戏状态检测时,检查当前游戏是否已经结束或成功,如果成功,游戏不中断,玩家可以继续下去,如果已经结束,则跳入游戏失败的死循环中,结束游戏。 4、移动逻辑组合电路 本游戏有4种移动方式,即上下左右,每次移动4条线,但本质都是相同的,只需要一个模块即可完成。如下图所示 move(i3,i2,i1,i0,o3,o2,o1,o0) 我们默认向右移动。(为什么呢?因为当我们调用这个模块时,可以以各种方向调用:如果向右移动,则调用move(15,14,13,12)向右,如果向左移动,则调用move(12,13,14,15)向右即可,还可以调用move{15,11,7,3}向下,调用move{1,5,9,13}向上等等。) 那么向右移动时,用f3~f0判断这四位是否为空,通过对f3~f0的16种情况的mux来决定输出的值,如果有相同则合并后输出。(其实这个模块就是一个大mux) 例如,下图所示,左图右移后,变为右图。 再例如:2,2,4,8右移后变为0,4,4,8,再右移变为0,0,8,8再右移变为0,0,0,16 5、随机数生成器和随机产生模块 随机数产生器为随机产生模块gen服务。随机数生成器产生3组随机数,分别为8bit,12bit和16bit。分别对应2空格、3空格和4空格的情况。例如,如果右移后的图片如下图所示,那么黄色格子里的2就是在最左列3空格情况下随机产生的一个位置。 我们还是默认向右移动,那么最左边的四个格子(15,11,7,3)即可交给gen,在空白出产生一个随机位置的“2”。 这里需要注意的是,2048游戏中规定必须是“有效移动”后才产生一个数字,以杜绝有投机的玩家一直按同一个方向键可以作弊的情况。这一逻辑只需要对上一步中move前后做一下对比即可。 6、VGA显示模块 640×480分辨率,25MHz的时钟信号。 其中扫描时,将VGA坐标的后两位[1:0]舍去,即可将640×480像素变为160×120的色块。 (注:源码中的VGA画图一段和oled画图一段看上去很复杂,其实是画点的方式比较奇怪,两种画法都是先将132x64的点阵水平划分为8条,每条8行,再以每列为1个byte的方式画出来。。。那么为什么要这么复杂呢?因为oled的sh1106驱动就是这么要求的,我先做了oled,后面vga就直接引用了~) Step4:演示见视频~
2021-12-01 10:31:01 10.78MB basys3 电路方案
1
文件中为江南大学物联网工程学院数电实验1初识Multisim和Basys3基础+进阶要求实验电路图文件及照片,如只需实验报告,可移步https://download.csdn.net/download/m0_46653805/20284936
现在小孩子玩的最多的玩具就是手机了,不禁感慨,我们小时候都是咋过来的,有个游戏机,可以玩个贪吃蛇、俄罗斯方块就不错了。可以自己设计个贪吃蛇游戏玩玩,重温童年的经典,也让现在小孩子知道,珍惜当下美好的生活。 功能实现说明: 此游戏较为简单,没有设置多余障碍物,只设置了四周的墙壁,贪食蛇所吃的苹果随机刷新,当蛇装上墙壁或者自己的身体,游戏结束。 此游戏使用五个按键,利用Basys3上的按钮,四个方向键,一个重新开始游戏按钮,一个操作开关。使用7位数码管进行计分,每吃到一个苹果分数+1。使用VGA显示游戏界面。 DIY动手指南: Step1:材料准备 硬件: Basys3开发板 VGA连接线及VGA显示器一台 软件平台:Vivado2016.4 Step2:系统框架 系统主要由6部分组成,分别是按键输入模块、控制模块、数据路径模块、随机生成 模块、VGA显示模块和数码管显示模块。 Step3:程序设计 上图是本程序的RTL级视图。 下面我们对于各个模块进行分析。 1.键盘扫描 我们一共设置了五个按键,分别执行up,down,left,right,restart这五个功能。 以up_key_press为例,介绍消抖的算法。 在每个时钟高电平时并行执行以下两条语句 up_key_press<=0; up_key_last<=0; 当有按键按下时,每100ms(cnt=5_0000) last=up,last输出比up滞后一个周期,若up_key_last==0&&up==1,则说明按键按下,press输出置1。 2.控制模块 当打开开始开关并按下任意一个方向键时,游戏开始,当游戏结束时闪烁5下,重新开始游戏。 3.数据路径模块 cube_x,cube_y表示一整条蛇身体各节的格坐标。is_exist有16位,即蛇体最长为16*1格,每一位对应一个格,1为该格显示,0则不显示(图中虚框)。每吃下一个苹果蛇长度增加1,相应exist位置变为1。 蛇每次移动,对应的cube[x] = cube[x+1],即后一位的身子会移动到前一位的位置,蛇头根据按下的按钮来判断是撞到了墙,还是撞到了身子,还是移动到了下一个位置。 当蛇头和苹果重合时,生成一个增加身长的信号,并在计数器上+1。 4.随机生成模块 采用伪随机数的产生方法,比较笨拙。 每个时钟周期random_num都在变,而我们吃下苹果的时刻却因走法、按键的时间等有所不同,所以不同时刻吃下苹果后下一个苹果出现的地方近似随机~ 5.VGA显示模块 使用640*480分辨率,需要分频为25MHz的时钟信号。 6.数码管显示模块 当有增长身长信号产生时,分数也对应增加,数码管动态扫描显示分数。 Step4:演示
2021-11-02 20:29:45 3.53MB 电路方案
1
Basys3介绍: Digilent 的 Basys3 是一款采用 Xilinx Artix 7 FPGA 架构的入门级 FPGA 板,专门用于 Vivado 设计套件。 Basys3 是广受欢迎的 Basys 入门级 FPGA 板系列的最新成员。 Basys3 具有所有 Basys 板的标准特性:全套现成的硬件、大量板载 I/O 设备、所有必要的 FPGA 支持电路和免费版开发工具,且全部以学生价格提供。 Basys3原理图截图: Digilent 现在推出 Basys3,通过提升特性集为学生们带来更好的专业级工程代表产品。 这些改进包括: 更多 I/O: 双用户接口开关、双板载输出数量、升级了外部端口(从 6 引脚、单排 Pmod 到 12 引脚、双排 Pmod)和 USB UART 桥接器。 现代编程的挑战: 由于从 Spartan 3E 系列到 Artix 7 类器件的迁移,Basys3 增加了大量硬件功能。 这款新型 Artix FPGA 器件逻辑单元数提升了 15 倍(从 2,160 到 33,280),从倍增器升级到真正的 DSP 切片。 该器件的 RAM 还增加了 26 倍以上。 业内首款 SOC 加强型设计套件: 对 Basys3 的最大变化就是升级到 Xilinx Vivado 设计套件。 Vivado 设计套件是全球专业工程师使用的最先进设计工具链。 Vivado 凭借扩充的功能改进了 ISE 的用户体验,如与 Vivado IP 积分器的基于块的 IP 的集成,将开发时间减少到 1/10 的 Vivado 高级合成(仅可用于 Vivado 系统版),以及带 DSP 系统发生器的基于模型的 DSP 设计集成。 特性 5200 个切片中有 33,280 的逻辑单元(每个切片包含四个 6 输入 LUT 和 8 个触发器) 1,800 Kb 的快速块 RAM 5 个时钟管理模块,每个都提供锁相环 (PLL) 90 个 DSP 切片 超过 450 MHz 的内部时钟速度 片载模数转换器 (XADC) 16 个用户开关 16 个用户 LED 5 个用户按钮 4 位 7 段显示 4 个 Pmod 连接器3 个标准 12 引脚 Pmod 1 个双用途 XADC 信号/标准 Pmod 12 位 VGA 输出 USB UART 桥接器 串行闪存 用于 FPGA 编程和通信的 Digilent USB JTAG 端口 用于鼠标、键盘和记忆棒的 USB HID 主机 实物购买链接:https://www.eeboard.com/shop/?c=products&a=index&_k...
1
通过basys3开发板上的四位数码管显示00:00到59:59的计时。适用于vivado2017、2019版本。
2021-09-27 15:13:23 492KB FPGA Basys3
1
硬件开发工具
2021-08-16 21:15:33 4.39MB 硬件开发
1
内容为:数电实验初识Multisim和Basys3 作者为:江南大学物联网工程学院学生 说明:文件为实验报告,仅供参考,多动手多实践才是好孩子!
2021-07-15 09:06:13 826KB 数电 实验报告 Multisim Basys3