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

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

3天内不再提示

基于FPGA Vivado的数字钟设计(附源工程)

FPGA威廉希尔官方网站 江湖 来源:FPGA威廉希尔官方网站 江湖 2023-07-29 10:06 次阅读

今天给大侠带来基于 FPGA Vivado 的数字钟设计,开发板实现使用的是Digilent basys 3。话不多说,上货。

需要源工程可以在以下资料获取里获取。

本篇掌握基于diagram的Vivado工程设计流程,学会使用IP集成器,添加 IP 目录并调用其中的IP。本篇实现了一个简单的数字钟,能实现计时的功能。由于数码管只有4位,因此本数字钟只能计分和秒。本系统的逻辑部分主要由74系列的IP构成。

获取本篇相关源工程代码,可在公众号内回复“数字钟设计源工程”,本篇涉及到两个操作软件,分别是“Agent软件”和“WaveForms软件”,获取软件安装包,可在公众号内对应回复“WaveForms软件安装包”,“Agent软件安装包”。

操作步骤

1.创建新的工程项目

1)双击桌面图标打开Vivado 2017.2,或者选择开始>所有程序>Xilinx Design Tools> Vivado 2017.2>Vivado 2017.2;

2)点击‘Create Project’,或者单击File>New Project创建工程文件;

3)将新的工程项目命名为‘lab2’,选择工程保存路径,勾选‘Create project subdirectory’,创建一个新的工程文件夹,点击Next继续;

4)选择新建一个RTL工程,由于本工程无需创建源文件,故将Do not specify sources at this time(不指定添加源文件)勾选上。点击 Next继续;

da48431c-2d97-11ee-815d-dac502259ad0.png

5)选择目标FPGA器件:xc7a35tcpg236-1或Basys3;

6)最后在新工程总结中,检查工程创建是否有误。没有问题,则点击Finish,完成新工程的创建;

2.添加已经设计好的IP核

工程建立完毕,我们需要将lab2这个工程所需的IP目录文件夹复制到本工程文件夹下。本工程需要两个IP目录:74LSXX_LIB与Interface。74LSXX_LIB 和Interface都位于Basys3_workshopsourceslab2文件夹下

1)在Flow Navigator中展开PROJECT MANAGER,选择‘Settings’。

2)在Project Settings栏中展开IP项,选择‘Repository’,点击‘+’添加。

da6f8cd8-2d97-11ee-815d-dac502259ad0.png

3)选择之前复制的IP文件夹

da8edb24-2d97-11ee-815d-dac502259ad0.png

4)确认弹窗提示一共添加了27个IP核

daae61e2-2d97-11ee-815d-dac502259ad0.png

3. 创建原理图,添加IP,进行原理图设计。

1)在Project Navigator下,展开IP INTEGRATOR,选择‘Create Block Design’创建新的原理图设计。

2)将新的设计命名为‘digital_clock’。

dadebe8c-2d97-11ee-815d-dac502259ad0.png

3)在原理图设计界面中,主要有两种方式添加IP核:①Diagram窗口上方的快捷键;②在原理图界面中鼠标右击,选择‘Add IP’。

db05e610-2d97-11ee-815d-dac502259ad0.png

4)在IP选择框中搜索需要添加的IP,例如74LS90。

db272f6e-2d97-11ee-815d-dac502259ad0.png

5)按Enter键,或者鼠标双击该IP,可以完成添加。本设计共需要添加4个74LS90,以及74LS08、seg7decimal、clk_div各1个。添加完成后如下图所示:

db44b2be-2d97-11ee-815d-dac502259ad0.png

6)添加一个clock IP,在IP搜索框中搜索‘clock’,选择‘Clocking Wizard’添加。双击IP进行配置,在‘Output Clocks’一项,设置输出时钟为两路100MHz输出。

db63f69c-2d97-11ee-815d-dac502259ad0.png

7)在Output Clocks下方,不要勾选‘reset’和‘locked’,点击OK完成IP配置。

db9ed898-2d97-11ee-815d-dac502259ad0.png

8)再添加一个concat IP,在IP搜索栏中搜索‘concat’并添加。双击IP进行配置,将端口数设为16。

dbb6d902-2d97-11ee-815d-dac502259ad0.png

9)同样的,再添加一个端口数为8的concat IP。至此,我们已经完成添加本设计中所有需要使用的IP。如下图所示:

dbe4c0e2-2d97-11ee-815d-dac502259ad0.png

10)创建输出端口,鼠标右键选择8位concat的‘dout[7:0]’引脚,选择‘Make External’。

dc0ee3a4-2d97-11ee-815d-dac502259ad0.png

11)完成后,如下图所示:

dc3fbaf6-2d97-11ee-815d-dac502259ad0.png

12)同样的,将seg7decimal IP的clr、a_to_g、an、dp这4个引脚,以及clock IP的clk_in1引脚,以及任意一个74ls90 IP的r9_1引脚make external。

dc584a94-2d97-11ee-815d-dac502259ad0.png

13)修改端口名,双击端口‘r9_1’,在左侧的External Port Properties窗格中将其命名为GND。

dc755b98-2d97-11ee-815d-dac502259ad0.png

14)同样的,将‘clk_in1’更名为‘clk’,‘dout[7:0]’更名为‘JC[7:0]’,‘a_to_g[6:0]’更名为‘seg[6:0]’,如下图所示:

dc9c0c02-2d97-11ee-815d-dac502259ad0.png

15)按照下图连线,可以参考‘连线攻略.txt’文件。

dcd95f30-2d97-11ee-815d-dac502259ad0.png

16)点击图纸上方的按键,验证设计的正确性。

17)通过验证后,点击OK继续。Ctrl+S保存设计。

dcf250f8-2d97-11ee-815d-dac502259ad0.png

18)在Sources窗格中鼠标右键‘digital_clock’,选择‘Generate Output Products’。

dd10b0c0-2d97-11ee-815d-dac502259ad0.png

19)在弹出窗口中,综合选项选择‘Global’,点击‘Generate’继续。

dd3bd3b8-2d97-11ee-815d-dac502259ad0.png

20)完成后,点击‘OK’继续。

21)在Sources窗格中鼠标右键‘digital_clock’,选择‘Create HDL Wrapper’。

dd62748c-2d97-11ee-815d-dac502259ad0.png

22)使用默认选项,点击OK继续,完成HDL文件的创建。

dd86ccba-2d97-11ee-815d-dac502259ad0.png

23)至此,原理图的设计已经完成。

4.添加约束文件

1)在Flow Navigator中,展开PROJECT MANAGER,点击‘Add Sources’。

2)选择‘Add or create constraints’,点击Next继续。

ddb57056-2d97-11ee-815d-dac502259ad0.png

3)选择‘Add Files’,找到并添加‘Digital_Clock.xdc’文件。注意,要勾选Copy constraints files into project(文件路径:Basys3_workshopsourceslab2)

5.综合、实现、生成比特流文件

1)实验一已经介绍过流程了,为了节省时间,这里就不一步一步再做赘述了,我们直接在Flow Navigator中展开PROGRAM AND DEBUG,点击Generate Bitstream。Vivado工具会提示没有已经实现的结果,点击‘Yes’,Vivado工具会依次执行综合、实现和生成比特流文件。

ddce970c-2d97-11ee-815d-dac502259ad0.png

2)完成后,选择‘Open Hardware Manager’打开硬件管理器。

ddfb6ade-2d97-11ee-815d-dac502259ad0.png

3)连接Basys3开发板,点击‘Open target’,选择‘Auto connect’。

de2ae5d4-2d97-11ee-815d-dac502259ad0.png

4)连接完成后,点击‘Program device’。

de589ba0-2d97-11ee-815d-dac502259ad0.png

5)检查弹出框中所选中的bit文件,然后点击Program进行下载

de6ef56c-2d97-11ee-815d-dac502259ad0.png

6.使用逻辑分析仪验证结果

Analog Discovery2(AD2)

1)按照下图接线,将PMOD 1-4口分别连接AD2 0-3数字I/O口,PMOD 5(GND)口与AD2 GND口连接,PMOD 7-10口分别与AD2 4-7数字I/O口连接。

de949c7c-2d97-11ee-815d-dac502259ad0.png

dec9355e-2d97-11ee-815d-dac502259ad0.png

2)连接AD2与电脑,打开WaveForms软件,获取WaveForms软件,可以在公众号内部回复“WaveForms软件安装包”。

df068314-2d97-11ee-815d-dac502259ad0.png

3)在工具栏选择Settings>Device Manager,打开设备管理器。

df30770a-2d97-11ee-815d-dac502259ad0.png

4)选择连接的设备,点击‘Select’。

df6eab9c-2d97-11ee-815d-dac502259ad0.png

5)在左侧的功能选择栏选择‘Logic’,使用逻辑分析仪。

df8f3a4c-2d97-11ee-815d-dac502259ad0.png

6)在窗口中点击‘Click to Add channels’,选择‘Bus’。

dfb962e0-2d97-11ee-815d-dac502259ad0.png

7)将DIO 0-3端口添加到Bus1。

dfd817b2-2d97-11ee-815d-dac502259ad0.png

8)同样的,点击左上角,将DIO 4-7端口添加到Bus2。完成后,如下图所示:

dffde37a-2d97-11ee-815d-dac502259ad0.png

9)点击‘Run’,观察数字时钟的秒针输出。

e0318036-2d97-11ee-815d-dac502259ad0.png

OpenScope

1)按照下图接线,将PMOD 1-4口分别连接OpenScope 1-4数字I/O口,PMOD 5(GND)口与OpenScope GND口连接,PMOD 7-10口分别与AD2 5-8数字I/O口连接。

e04e2cd6-2d97-11ee-815d-dac502259ad0.png

2)连接OpenScope与电脑,打开Digilent Agent软件,获取Agent软件,可以在公众号内部回复“Agent软件安装包”。

e080f7ce-2d97-11ee-815d-dac502259ad0.png

3)在Windows工具栏右侧,右键Digilent Agent图标,选择‘Launch WaveForms Live’,在浏览器中打开WaveForms Live。

e0a350b2-2d97-11ee-815d-dac502259ad0.png

4)在浏览器页面中,点击‘ADD A DEVICE’添加设备。

e0c755f2-2d97-11ee-815d-dac502259ad0.png

5)选择AGENT。

e0e40da0-2d97-11ee-815d-dac502259ad0.png

6)输入设备的hostname或者IP地址,点击‘+’按钮添加。

在本地电脑中,默认值为http://localhost:42135

e0fe29ec-2d97-11ee-815d-dac502259ad0.png

7)选择连接OpenScope的串口,点击Open打开串口。

e11a0342-2d97-11ee-815d-dac502259ad0.png

8)使用默认设置,在最下方点击‘DONE’完成添加。

e142cfa2-2d97-11ee-815d-dac502259ad0.png

9)点击打开添加的设备,在界面右侧将Time设置为5s,在Trigger一栏选择OFF。

e1609f5a-2d97-11ee-815d-dac502259ad0.png

10)在界面右侧找到Digital一项,选择ANALYZER,依次点击1-8端口。

e185d9aa-2d97-11ee-815d-dac502259ad0.png

11)点击右上方的‘SINGLE’按钮运行一次,完成后在左侧波形图中可以观察秒针的输出,可以使用鼠标拖动波形,方便观察。

e1b66d90-2d97-11ee-815d-dac502259ad0.png

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

    关注

    1629

    文章

    21729

    浏览量

    603047
  • 开发板
    +关注

    关注

    25

    文章

    5035

    浏览量

    97384

原文标题:基于 FPGA Vivado 的数字钟设计(附源工程)

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA威廉希尔官方网站 江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于FPGA vivado 17.2 的数字钟设计

    基于FPGA vivado 17.2 的数字钟设计
    的头像 发表于 06-08 09:41 1.1w次阅读
    基于<b class='flag-5'>FPGA</b> <b class='flag-5'>vivado</b> 17.2 的<b class='flag-5'>数字钟</b>设计

    基于FPGA数字钟设计

    基于FPGA数字钟设计
    发表于 03-16 10:07

    基于FPGA数字钟设计(Verilog语言)源码

    最近写了个数字钟的程序,可走时,可校时,内部模块化设计,许多小模块例如数码管扫描,按键消抖,系统时钟分频等可移植到其他工程,需要的可以下下来看看
    发表于 08-07 22:26

    基于FPGA的LCD12864显示的数字钟

    求一个基于FPGA的LCD12864显示的数字钟 VHDL或verilog都行
    发表于 08-22 14:50

    基于FPGA vivado 17.2 的数字钟设计

    基于FPGA vivado 17.2 的数字钟设计目的:熟悉vivado 的开发流程以及设计方法附件:
    发表于 12-13 10:16

    基于FPGA Vivado的流水灯样例设计资料分享

    【流水灯样例】基于 FPGA Vivado数字钟设计前言模拟前言Vivado 设计流程指导手册——2013.4密码:5txi模拟
    发表于 02-07 08:02

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

    、书籍、源码、威廉希尔官方网站 文档…(2023.07.09更新) 本篇掌握基于 FPGA Vivado 信号发生器设计(工程),掌握基
    发表于 08-15 19:57

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

    今天给大侠带来基于 FPGA Vivado 示波器设计,开发板实现使用的是Digilent basys 3,话不多说,上货。 需要工程可以在以下资料获取里获取。 资料汇总|
    发表于 08-17 19:31

    基于 FPGA Vivado数字钟设计(工程

    今天给大侠带来基于 FPGA Vivado数字钟设计,开发板实现使用的是Digilent basys 3。话不多说,上货。 需要工程
    发表于 08-18 21:18

    MicroBlaze串口设计(工程

    今天给大侠带来 MicroBlaze 串口设计,开发板实现使用的是Digilent basys 3,。话不多说,上货。需要工程可以在以下资料获取里获取。资料汇总|FPGA软件安装包、书籍、源码
    发表于 08-24 20:13

    基于FPGA和Quartus II的多功能数字钟设计与实现

    本文以FPGA平台为基础,在QuartusⅡ开发环境下设计开发多功能数字钟数字钟实现计时\校时\整点报时\世界时钟功能.
    发表于 12-18 11:51 3.7w次阅读

    华清远见FPGA代码-基于NIOSII处理器的数字钟设计

    华清远见FPGA代码-基于NIOSII处理器的数字钟设计
    发表于 10-27 18:07 14次下载

    fpga数字钟介绍_fpga数字钟设计

    数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定,通常使用石英晶体振荡器电路构成数字钟
    发表于 01-15 15:37 1.1w次阅读
    <b class='flag-5'>fpga</b><b class='flag-5'>数字钟</b>介绍_<b class='flag-5'>fpga</b><b class='flag-5'>数字钟</b>设计

    FPGA Vivado】基于 FPGA Vivado 的流水灯样例设计

    【流水灯样例】基于 FPGA Vivado数字钟设计前言模拟前言Vivado 设计流程指导手册——2013.4密码:5txi模拟
    发表于 12-04 13:21 26次下载
    【<b class='flag-5'>FPGA</b> <b class='flag-5'>Vivado</b>】基于 <b class='flag-5'>FPGA</b> <b class='flag-5'>Vivado</b> 的流水灯样例设计

    FPGA多功能数字钟系统原理

    FPGA(可编程逻辑门阵列)是一种集成电路芯片,具有可编程的数字逻辑功能。多功能数字钟系统利用FPGA威廉希尔官方网站 实现了时钟的显示、计时、报时等功能。本文将详细介绍
    的头像 发表于 01-02 16:50 1262次阅读