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

    文章

    815

    浏览量

    127677
  • 秒表
    +关注

    关注

    3

    文章

    77

    浏览量

    21902
  • basys3
    +关注

    关注

    0

    文章

    3

    浏览量

    4425
收藏 人收藏

    评论

    相关推荐

    例说Verilog HDL和VHDL区别

    Verilog和VHDL之间的区别将在本文中通过示例进行详细说明。对优点和缺点的Verilog和VHDL进行了讨论。
    的头像 发表于 12-20 09:03 645次阅读
    例说Verilog HDL和<b class='flag-5'>VHDL</b>区别

    BASYS2连接不上怎么回事?

    BASYS2自带的USB线通过Adept软件可以正常下载,想用chipscope仿真,可是提示检测不到电缆,在impact里也检测不到,这是怎么回事,麻烦大家帮忙看下。
    发表于 10-18 06:38

    如何选择性价比高的秒表检定仪

    目前国家关于秒表检定仪最新的检定规程为《JJG237-2010秒表检定规程》,因此在选择秒表检定仪时首先要确认设备是否满足该标准。在该标准中,将秒表、指针式电
    发表于 09-05 16:55 0次下载

    【芒果派MangoPi MQ Pro】上开发体验-Helloworld,构建sqlite3并进行性能测试

    接受的。 一般个人项目不会有这么大规模,构建完全没问题。 安装 sudo make install 编译 gcc test/speedtest1.c -o speedtest1
    发表于 08-25 08:28

    MicroBlaze串口设计(附源工程)

    文件,然后可以通过 CTRL+B 完成工程的 build; 8) 连接Basys3开发,打开电源,点击SDK任务栏Xilinx Tools>Program FPGA; 9
    发表于 08-24 20:13

    基于 FPGA Vivado 示波器设计(附源工程)

    工程代码,可在公众号内回复“示波器设计源工程”。 原理介绍 数字存储示波器能够将模拟信号进行采样、存储以及显示。本系统在DIGILENT Basys3构建了一个简易数字存储示波器,简化
    发表于 08-17 19:31

    基于 FPGA Vivado 信号发生器设计(附源工程)

    ~4999Hz频率范围,波形可选择三角波,方波,锯齿波,以及正弦波。本系统在Basys3构建了一个简易信号发生器,简化框图如下: 原理:首先,通过按键设置波形的频率,并通过拨码开关
    发表于 08-15 19:57

    基于fpga的信号发生器设计方案

    信号发生器能够产生频率波形可调的信号输出,目前仅限于1Hz~4999Hz频率范围,波形可选择三角波,方波,锯齿波,以及正弦波。本系统在Basys3构建了一个简易信号发生器。
    发表于 07-26 09:14 1863次阅读
    基于fpga的信号发生器设计方案

    带配置文件选择器的蓝牙秒表

    电子发烧友网站提供《带配置文件选择器的蓝牙秒表.zip》资料免费下载
    发表于 07-13 09:16 0次下载
    带配置文件选择器的蓝牙<b class='flag-5'>秒表</b>

    如何使用数字IC4026和4017构建一个秒表

    今天我们将看到如何使用数字IC的4026和4017构建DIY秒表。这个项目最突出的特点是它不使用任何MCU来完成这项工作。尽管使用 MCU 会是一个更好的选择,但对于那些喜欢玩数字芯片的人来说,这个项目将是一个很好的 DIY。
    的头像 发表于 06-18 17:00 778次阅读
    如何使用数字IC4026和4017<b class='flag-5'>构建</b>一个<b class='flag-5'>秒表</b>

    带Arduino和LCD显示屏的秒表

    电子发烧友网站提供《带Arduino和LCD显示屏的秒表.zip》资料免费下载
    发表于 06-12 09:51 4次下载
    带Arduino和LCD显示屏的<b class='flag-5'>秒表</b>

    基于单片机数码秒表Proteus仿真程序

    基于单片机数码秒表Proteus仿真设计资料
    发表于 05-22 15:45 0次下载

    基于89C51单片机的秒表源程序

    基于89C51单片机的秒表源程序
    发表于 05-15 10:37 7次下载

    基于51单片机的1602显示秒表例程源代码

    基于51单片机的1602显示秒表例程源代码文件
    发表于 05-12 16:42 6次下载

    基于AT89C51单片机10秒的秒表仿真及代码

    基于AT89C51单片机10秒的秒表仿真及代码
    发表于 05-04 14:54 1次下载