0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用基本VHDL和Basys3板构建秒表

454398 来源:网络整理 作者:佚名 2019-11-04 10:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

欢迎访问有关如何使用基本VHDL和Basys 3板构建秒表的说明。我们很高兴与您分享我们的项目!这是2016年秋季在SLO的Cal Poly开设的CPE 133课程(数字设计)的最终项目。我们构建的项目是一个简单的秒表,用于启动,重置和暂停时间。它以Basys3板上的三个按钮作为输入,并且时间显示在板的四位数七段显示器上。经过的时间以 seconds:厘秒格式显示。它使用开发板的系统时钟作为输入来跟踪经过的时间,并将时间输出到七段显示器的四位数。

步骤1:材料

该项目所需的材料:

从Xilinx安装了1台装有Vivado Design Suite WebPack的计算机(首选版本2016.2)

1 Digilent Basys3 Xilinx Artix-7 FPGA

1 USB端口电缆

步骤2:设置输入和输出

上图显示了秒表主模块的顶级框图。秒表接受输入“ CLK”(时钟),“ S1”(开始按钮),“ S2”(暂停按钮)和“ RST”(复位),并具有4位输出“阳极”,7位输出“段”和一位输出“ DP”(小数点)。当输入“ S1”为高时,秒表开始计时。当“ S2”为低时,秒表暂停时间。当“ RST”为高电平时,秒表将停止并重置时间。电路中有四个子模块:时钟分频器,数字计数器,七段显示驱动器和七段显示编码器。秒表主模块将所有子模块链接在一起,并链接到输入和输出。

步骤3:制作时钟

时钟分频器模块接收一个系统时钟,并使用一个除数输入来创建一个不大于系统时钟速度的时钟。秒表使用两个不同的时钟模块,一个创建一个500 Hz的时钟,另一个创建一个100 Hz的时钟。时钟分频器的原理图如上图所示。时钟分频器接收一个位输入“ CLK”,一个32位输入“除数”和一个位输出“ CLKOUT”。 “ CLK”是系统时钟,“ CLKOUT”是结果时钟。该模块还包括一个“非”门,当计数达到除数的值时,它将切换信号“ CLKTOG”。

步骤4:计数到十

数字计数器对从0到10的每个数字进行计数,并为下一个数字创建另一个时钟,以使该数字在计数达到10时振荡。模块接收3个单位输入“ S”, “ RST”和“ CLK”并产生一个单位输出“ N”和一个4位输出“ D”。输入“ S”是输入中的启用。当“ S”为高电平时,时钟打开;当“ S”为低电平时,时钟关闭。 “ RST”是复位输入,因此当“ RST”为高电平时时钟将复位。 “ CLK”是数字计数器的时钟输入。 “ N”是时钟输出,成为下一位数字的输入时钟。输出“ D”表示计数器所在数字的二进制值。

步骤5:显示数字

这七个-segment显示编码器将对从七段显示驱动器模块接收到的二进制数进行编码,并将其转换为比特流,对于每个显示段,该比特流将被解释为“ 1”或“ 0”值。二进制数由模块作为4位输入“数字”接收,并产生7位输出“段”。该模块由一个单例处理块组成,该块为从0到9的每个可能的输入值分配一个特定的7位流。七位流中的每个位代表显示器上数字的七个部分之一。流中各段的顺序为“ abcdefg”,其中“ 0”表示为给定数字点亮的段。

步骤6:如何显示秒表

在七段显示驱动器模块中,有四个4位输入“ D0”,“ D1”,“ D2”和“ D3”,每个输入代表4位数字。被显示。输入“ CLK”是系统的时钟输入。一位输出“ DP”代表七段显示器上的小数点。 4位输出“ Anodes”确定显示七段显示器上的哪个数字,而4位输出“ temp”取决于2位控制输入“ SEL”的状态。该模块使用4个多路复用器作为控制输入“ SEL”和三个输出。 “阳极”,“温度”和“ DP”。

第7步:将它们整合在一起

一个从中运行的‘if’过程块500Hz时钟用于创建开始和暂停按钮。然后,通过声明每个单独的子模块的组件并使用各种信号,将秒表主模块中的所有子模块链接在一起。数字子模块采用前一个数字子模块的时钟输出,第一个采用100Hz时钟。然后,数字子模块的“ D”输出变为七段显示驱动器模块的“ D”输入。最后,七段显示驱动程序模块的“ temp”输出变为七段编码器模块的“ temp”输入。

步骤8:约束

使用3个按钮(W19,T17和U18)输入“ RST”,“ S1”和“ S2”。 W19是重置按钮,T17是开始按钮(S1),而U18是暂停按钮(S2)。还需要使用端口W5限制时钟输入的输入。另外,请记住将此行添加到时钟约束中:

create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports {CLK}]

也请链接阳极和电路板上的分段,因此秒表显示在约束文件中所示的七段显示器上。

步骤9:测试

通过按三个按钮来确保设备正常工作:以各种可能的方式推动并按住它们,以便发现代码中可能存在的问题。
责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • vhdl
    +关注

    关注

    30

    文章

    820

    浏览量

    131333
  • 秒表
    +关注

    关注

    3

    文章

    81

    浏览量

    22569
  • basys3
    +关注

    关注

    0

    文章

    4

    浏览量

    4677
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    技术资讯 I 多系统 3D 建模,提升设计精度和性能

    本文要点了解3D建模流程。洞悉多系统3D建模如何提高设计精度、性能和成本效益。掌握3D建模在制造工艺中的优势。在PCBA领域,仿真与建模是实现精准高效设计的基石。在量产前
    的头像 发表于 11-21 17:45 2256次阅读
    技术资讯 I 多<b class='flag-5'>板</b>系统 <b class='flag-5'>3</b>D 建模,提升设计精度和性能

    数字毫秒表可以在什么领域使用

    秒表
    西安同步电子科技有限公司
    发布于 :2025年11月12日 17:27:47

    如果选用Basys3的开发进行RISC-V嵌入式开发,需要做哪些工作呢?

    请问,如果选用Basys3的开发进行RISC-V嵌入式开发,需要做哪些工作呢?
    发表于 11-07 07:23

    数字毫秒表存在意义、用途及挑选指南 存储式数字毫秒计、数字毫秒计

    在追求精准计时的现代社会,电秒表与智能毫秒计凭借其独特的性能,成为多个领域不可或缺的工具。它们不仅解决了传统计时方式精度不足的问题,更随着技术发展不断升级,为各行业的高效运转与创新研究提供有力支撑
    的头像 发表于 11-04 18:20 1862次阅读
    数字毫<b class='flag-5'>秒表</b>存在意义、用途及挑选指南 存储式数字毫秒计、数字毫秒计

    STM32 Nucleo-144开发技术解析与应用指南

    STMicroelectronics NUCLEO-H7S3L8 STM32 Nucleo-144开发采用STM32H7S3L8 MCU,提供了一个经济实惠的多功能平台,用于原型设计和实验
    的头像 发表于 10-17 14:40 525次阅读
    STM32 Nucleo-144开发<b class='flag-5'>板</b>技术解析与应用指南

    【嘉楠堪智K230开发试用体验】 使用非 docker 环境构建系统镜像

    1 从 Gitee 上下载 K230 镜像 下载地址 https://gitee.com/kendryte/k230_sdk.git 2 构建之前注意事项 在编译构建之前,需要下载
    发表于 09-06 22:35

    如何使用 CyCloneTCP 和 FreeRTOS 在 NuMaker IoT 构建 Web 服务器?

    使用 CyCloneTCP 和 FreeRTOS 在 NuMaker IoT 构建 Web 服务器
    发表于 09-04 08:10

    如何使用 Mbed OS 在 NuMaker IoT 构建 Web 服务器?

    使用 Mbed OS 在 NuMaker IoT 构建 Web 服务器
    发表于 09-04 06:33

    为什么我选择VHDL入门

    在群里交流提问的时候,大家总是惊讶并疑惑:为什么我要选择 VHDL入门?因为好像 99% 搞 FPGA 开发的人都在用 Verilog。 我的选择,是通过网上搜索的讨论而做出的,为了留存,我这里水一
    的头像 发表于 06-25 11:18 879次阅读
    为什么我选择<b class='flag-5'>VHDL</b>入门

    basys2开发说明书

    basys2开发说明书
    发表于 06-08 09:52 1次下载

    为自定义构建具有scarthgap 6.6.52支持的yocto映像时遇到报错如何解决?

    在尝试为我们的定制构建 imx8mm 的 yocto 映像时,我们遇到了以下错误,如何解决?
    发表于 04-01 06:08

    求助,关于K3s的GoldVIP yocto构建问题求解

    我按照用户指南进行 GoldVIP Yocto 构建。但是请关注以下问题。 您能帮忙看看这个问题吗?谢谢。
    发表于 03-24 07:37

    浅谈Verilog和VHDL的区别

    Verilog和VHDL是两种广泛使用的硬件描述语言(HDL),它们用于描述和模拟数字电路系统的行为和结构。这两种语言的主要作用是帮助工程师设计、仿真和验证集成电路(IC)和系统级芯片(SoC)中的硬件模块。
    的头像 发表于 02-17 14:20 2625次阅读
    浅谈Verilog和<b class='flag-5'>VHDL</b>的区别

    MT-HIL(4):如何在Simulink下使用HDL Coder导出FPGA/VHDL代码

    vhdl
    芒果树数字
    发布于 :2025年01月10日 17:22:17

    Verilog与VHDL的比较 Verilog HDL编程技巧

    Verilog 与 VHDL 比较 1. 语法和风格 Verilog :Verilog 的语法更接近于 C 语言,对于有 C 语言背景的工程师来说,学习曲线较平缓。它支持结构化编程,代码更直观,易于
    的头像 发表于 12-17 09:44 2685次阅读