基于 FPGA Vivado 信号发生器设计(附源工程)
今天给大侠带来基于 FPGA Vivado 信号发生器设计,开发板实现使用的是Digilent basys 3,如有想要入手 basys 3 开发板的,可以联系牛总:18511371833。话不多说,上货。
本篇掌握基于 FPGA Vivado 信号发生器设计(附源工程),掌握基于添加文件和IP的Vivado工程设计流程,掌握基于Tcl的Vivado工程设计流程,学习信号发生器的基本组成结构。获取本篇相关源工程代码,可在公众号内回复“信号发生器设计源工程”。
设计原理
信号发生器能够产生频率波形可调的信号输出,目前仅限于1Hz~4999Hz频率范围,波形可选择三角波,方波,锯齿波,以及正弦波。本系统在Basys3上构建了一个简易信号发生器,简化框图如下:
原理:首先,通过按键设置波形的频率,并通过拨码开关设置波形的种类(一共有正弦波、三角波、方波、锯齿波四种)。频率值可以通过数码管显示。片上的输出时钟计算模块能够根据设置好的频率值,计算波形查找表的输出时钟,以及生成查找表的地址。查找表根据波形选择模块,决定输出何种波形数据,并在输出时钟的驱使下,输出波形数据。最后,片上的DA模块将波形数据发送给外部DA。本设计通过Basys3外接Pmod-DA1模块,进行DA输出。
操作步骤
基于添加文件和IP
1. 新建工程项目
1) 双击桌面图标打开Vivado 2017.2,或者选择开始>所有程序>Xilinx Design Tools> Vivado 2017.2>Vivado 2017.2;
2) 点击‘Create Project’,或者单击File>New Project创建工程文件;
3) 将新的工程项目命名为‘lab5’,选择工程保存路径,勾选‘Create project subdirectory’,创建一个新的工程文件夹,点击Next继续;
4) 选择新建一个RTL工程,勾选Do not specify sources at this time(不指定添加源文件),先不添加源文件。点击 Next继续;
5) 选择目标FPGA器件:xc7a35tcpg236-1或Basys3;
6) 最后在新工程总结中,检查工程创建是否有误。没有问题,则点击Finish,完成新工程的创建。
2. 添加已经设计好的IP和HDL文件
工程建立完毕,我们将所需的IP文件夹(IP_Catalog)和实验需要使用的HDL文件复制到已经创建的工程文件夹根目录下:
源文件位于Basys3_workshop\sources\lab5\Src\HDL_source
复制完成后,如下图所示:
1) 在Vivado界面左侧Flow Navigator中展开PROJECT MANAGER,选择‘Settings’;
2) 弹出窗口中,在左侧Project Settings中展开IP一项,选择‘Repository’,点击右侧的添加IP;
3) 选择复制到工程文件夹根目录下的IP文件夹;
4) 点击OK完成添加;
5) 添加IP至工程。
5.1 在Flow Navigator中展开PROJECT MANAGER,选择IP Catalog;
5.2 在右侧IP Catalog窗口的搜索框中搜索‘clocking’,双击‘Clocking Wizard’开始配置IP;
5.3 配置IP。
5.3.1 将IP的名字由‘clk_wiz_0’修改为‘clock’;
5.3.2 选择‘Output Clocks’,设置2路输出时钟(100MHz和50MHz);
5.3.3 在Enable Optional I/O for MMCM/PLL一项中取消勾选‘reset’和‘locked’选项;
5.3.4 Vivado会创建新的文件夹保存配置完成的IP,点击OK继续;
5.3.5 弹出Generate Output Products窗口,在Synthesis Options中选择‘Global’,点击‘Generate’继续。
5.4 同样的,在IP Catalog窗口中添加Divider Generator,配置如下图如下图所示:
5.5 同样的,依次在IP Catalog窗口中添加debounce和seg7decimal这两个IP,使用默认IP设置,无需另外配置,并且Generate Output Products,完成后Sources窗格中如下图所示:
6) 添加HDL文件至工程
6.1 在Flow Navigator中展开PROJECT MANAGER,选择Add Sources;
6.2 在导向窗口中选择‘Add or create design sources’,点击Next继续;
6.3 在Add or Create Design Sources页面中选择‘Add Files’;
6.4 找到lab5根目录,选中添加下图所示的2个HDL文件;
6.5 勾选‘Copy sources into project’,点击Finish完成添加;
6.6 完成后Sources窗格中如下图所示:
7) 添加物理约束(XDC)文件
7.1 在Flow Navigator中展开PROJECT MANAGER,选择Add Sources;
7.2 在导向窗口中选择‘Add or create constraints’,点击Next继续;
7.3 在Add or Create Design Sources页面中选择‘Add Files’;
7.4 找到约束文件路径Basys3_workshop\sources\lab5\Src\Constraint,选中并添加‘signal_gen.xdc’文件;
7.5 勾选‘Copy sources into project’,点击Finish完成添加。
3. 综合、实现、生成比特流文件
1) 在左侧Flow Navigator中依次点击‘Run Synthesis’、‘Run Implementation’和‘Generate Bitstream’执行综合、实现和生成比特流文件操作。或者,可以直接点击‘Generate Bitstream’,Vivado工具会提示没有已经实现的结果,点击‘Yes’,Vivado工具会依次执行综合、实现和生成比特流文件。
2) 完成后,选择‘Open Hardware Manager’打开硬件管理器。
3) 连接Basys3开发板,点击‘Open target’,选择‘Auto connect’。
4) 连接完成后,点击‘Program device’。
5) 检查弹出框中所选中的bit文件,然后点击Program进行下载。
设计验证
1. 基于Analog Discovery2
按照下图连接方式,首先将Pmod-DA1模块插入在JC口上方,同时将Analog Discovery2的示波器CH1的输出引线1+(橙色)和1-(橙白色)分别与Pmod-DA1模块的A1和GND相连接。
1) 打开WaveForms软件,连接Analog Discovery2设备
2) 在左侧的功能选择栏选择‘Scope’,使用示波器
3) 打开示波器,点击左上角‘Run’按钮,波形输出如下图所示:
2. 基于OpenScope
按照下图连接方式,首先将Pmod-DA1模块插入在JC口上方,同时将OpenScope的示波器CH1的输出引线1+(橙色)和1-(橙白色)分别与Pmod-DA1模块的A1和GND相连接。
1) 打开Digilent Agent;
2) 在Windows工具栏右侧,右键Digilent Agent图标,选择‘Launch WaveForms Live’,在浏览器中打开WaveForms Live;
3) 选择在实验二中已经添加的设备,点击连接该设备;
4) 在界面右侧将Time设置为2ms,找到并展开Osc Ch1(示波器Ch1),保持默认参数设置,点击右上角开关按钮,打开示波器。
5) 点击界面右上角的‘RUN’按钮,开始运行。在左侧的示波器中观察输出波形结果。
通过DIGILENT Basys3开发板右侧的上下左右键进行频率调节,以及利用低两位的开关来选择输出波形。
END
后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。
大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!
往期推荐
在word文档中添加“原汁原味”代码
FPGA零基础学习:FPGA芯片简介
FPGA零基础学习:Intel FPGA 开发流程
基于 FPGA Vivado 信号发生器设计(附源工程)相关推荐
- 基于 FPGA Vivado 示波器设计(附源工程)
今天给大侠带来基于 FPGA Vivado 示波器设计,开发板实现使用的是Digilent basys 3,如有想要入手 basys 3 开发板的,可以联系牛总:18511371833.话不多说,上货 ...
- 基于 FPGA Vivado 的数字钟设计(附源工程)
今天给大侠带来基于 FPGA Vivado 的数字钟设计,开发板实现使用的是Digilent basys 3,如有想要入手 basys 3 开发板的,可以联系牛总:18511371833.话不多说,上 ...
- 基于 FPGA Vivado 的74系列IP封装(附源工程)
今天给大侠带来基于 FPGA Vivado 的 74 系列IP封装,开发板使用的是Digilent basys 3,如有想要入手 basys 3 开发板的,可以联系牛总:18511371833.话不多 ...
- 基于FPGA的信号发生器的设计
基于FPGA的信号发生器的设计 首先先要介绍的是本设计的主芯片是ALTERA的一款芯片,芯片名称是EP2C5T144C8N.该芯片的LE单元有4608个,PLL锁相环具有2个,IO口管脚具有142个, ...
- 基于单片机的信号发生器设计
基于单片机的信号发生器设计 摘 要 在电子产品调试和测量领域,常常需要有信号种类多.精度高且频率.幅度等信号参数方便可调的信号源.尤其随着电子.通信.网络行业的发展,频段的分布日趋密集,更要求有高精度 ...
- 基于 MATLAB 的信号发生器设计
基于 MATLAB 的信号发生器设计 虚拟仪器能充分利用现有计算机资源,通过配以独特设计的软硬件,实现普通仪器的全部功能以及一些在普通仪器上无法实现的功能的软件或程序.本设计的主要内容就是基于 MAT ...
- FPGA项目(12)——基于FPGA的万年历设计
首先称述一下所实现的功能:可以显示年.月.日.时.分.秒,有闹钟设置功能,闹钟时间到时,蜂鸣器响,报警.用6位数码管进行显示,分三个显示页面,第一个页面显示年月日,第二个界面显示时分秒,第三个页面显示 ...
- 基于FPGA的FFT设计
基于FPGA的FFT设计 1.verilog源代码还有实验报告 2.FFT的主要算法 FFT算法并不是一种新的理论算法,它只是用来计算DFT的快速算法,所以它是以DFT为基础的.本课题采用的是基-2 ...
- 原生前端实现响应式个人简历网站设计(附源码)
目录 网站站点 所用技术 实现功能 视频展示 源码 网站站点 胜烨的个人网站 所用技术 HTML css JavaScript 实现功能 响应式界面设计 捕捉用户操作 明暗模式 服务器部署 视频展示 ...
最新文章
- 这38个小技巧告诉你如何快速学习MySQL数据库
- Nginx+Firebug 让浏览器告诉你负载均衡将请求分到了哪台服务器
- PHP常用正则:手机 邮箱 网址
- div 设置a4大小_CSS设定A4纸张大小
- malloc和calloc之间的区别?
- java标识符定义_Java标识符命名规范
- 质疑北京大北农科技集团股份有限公司(”大北农“)停牌公告
- 如何学会阅读源码,看这篇就够了!
- CSF文件格式播放器
- 尝试docker1.12内置swarm
- 北洋降舰之鱼雷艇队 ZT
- 简单快速把EditPlus添加到右键菜单中
- 一文读懂什么是数据产品交易
- HDS存储产品概述1
- 几何分布的期望公式的推导
- 宇视科技线上c语言笔试答案,宇视科技2016招聘试题.docx
- 二、什么是GStreamer
- DEDE采集规则(很实用)
- 中国人唯一不认可的成功——就是家庭的和睦,人生的平淡(做为程序员的我们又追求什么样的人生呢?)值得思考???
- 团队管理-用杨三角打造组织能力