今天给大侠带来基于 FPGA Vivado 信号发生器设计,开发板实现使用的是Digilent basys 3,如有想要入手 basys 3 开发板的,可以联系牛总:18511371833。话不多说,上货。

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

 

本篇掌握基于 FPGA Vivado 信号发生器设计(附源工程),掌握基于添加文件和IP的Vivado工程设计流程,掌握基于Tcl的Vivado工程设计流程,学习信号发生器的基本组成结构。获取本篇相关源工程代码,可在公众号内回复“信号发生器设计源工程”。

 

设计原理

 

信号发生器能够产生频率波形可调的信号输出,目前仅限于1Hz~4999Hz频率范围,波形可选择三角波,方波,锯齿波,以及正弦波。本系统在Basys3上构建了一个简易信号发生器,简化框图如下:

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

 

原理:首先,通过按键设置波形的频率,并通过拨码开关设置波形的种类(一共有正弦波、三角波、方波、锯齿波四种)。频率值可以通过数码管显示。片上的输出时钟计算模块能够根据设置好的频率值,计算波形查找表的输出时钟,以及生成查找表的地址。查找表根据波形选择模块,决定输出何种波形数据,并在输出时钟的驱使下,输出波形数据。最后,片上的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

复制完成后,如下图所示:

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

 

1) 在Vivado界面左侧Flow Navigator中展开PROJECT MANAGER,选择‘Settings’;

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

 

2) 弹出窗口中,在左侧Project Settings中展开IP一项,选择‘Repository’,点击右侧的添加IP;

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

 

3) 选择复制到工程文件夹根目录下的IP文件夹;

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

 

4) 点击OK完成添加;

5) 添加IP至工程。

5.1 在Flow Navigator中展开PROJECT MANAGER,选择IP Catalog;

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

 

5.2 在右侧IP Catalog窗口的搜索框中搜索‘clocking’,双击‘Clocking Wizard’开始配置IP;

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

 

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’选项;

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

 

5.3.4 Vivado会创建新的文件夹保存配置完成的IP,点击OK继续;

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

 

5.3.5 弹出Generate Output Products窗口,在Synthesis Options中选择‘Global’,点击‘Generate’继续。

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

 

 

5.4 同样的,在IP Catalog窗口中添加Divider Generator,配置如下图如下图所示:

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

 

5.5 同样的,依次在IP Catalog窗口中添加debounce和seg7decimal这两个IP,使用默认IP设置,无需另外配置,并且Generate Output Products,完成后Sources窗格中如下图所示:

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

 

6) 添加HDL文件至工程

6.1 在Flow Navigator中展开PROJECT MANAGER,选择Add Sources;

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

 

6.2 在导向窗口中选择‘Add or create design sources’,点击Next继续;

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

 

6.3 在Add or Create Design Sources页面中选择‘Add Files’;

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

 

6.4 找到lab5根目录,选中添加下图所示的2个HDL文件;

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

 

6.5 勾选‘Copy sources into project’,点击Finish完成添加;

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

 

6.6 完成后Sources窗格中如下图所示:

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

 

7) 添加物理约束(XDC)文件

7.1 在Flow Navigator中展开PROJECT MANAGER,选择Add Sources;

7.2 在导向窗口中选择‘Add or create constraints’,点击Next继续;

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

 

7.3 在Add or Create Design Sources页面中选择‘Add Files’;

7.4 找到约束文件路径Basys3_workshop\sources\lab5\Src\Constraint,选中并添加‘signal_gen.xdc’文件;

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

 

7.5 勾选‘Copy sources into project’,点击Finish完成添加。

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

 

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

1) 在左侧Flow Navigator中依次点击‘Run Synthesis’、‘Run Implementation’和‘Generate Bitstream’执行综合、实现和生成比特流文件操作。或者,可以直接点击‘Generate Bitstream’,Vivado工具会提示没有已经实现的结果,点击‘Yes’,Vivado工具会依次执行综合、实现和生成比特流文件。

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

 

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

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

 

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

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

 

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

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

 

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

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

 

设计验证

 

1. 基于Analog Discovery2

按照下图连接方式,首先将Pmod-DA1模块插入在JC口上方,同时将Analog Discovery2的示波器CH1的输出引线1+(橙色)和1-(橙白色)分别与Pmod-DA1模块的A1和GND相连接。

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

 

1) 打开WaveForms软件,连接Analog Discovery2设备

2) 在左侧的功能选择栏选择‘Scope’,使用示波器

3) 打开示波器,点击左上角‘Run’按钮,波形输出如下图所示:

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

 

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) 选择在实验二中已经添加的设备,点击连接该设备;

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

 

4) 在界面右侧将Time设置为2ms,找到并展开Osc Ch1(示波器Ch1),保持默认参数设置,点击右上角开关按钮,打开示波器。

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

 

5) 点击界面右上角的‘RUN’按钮,开始运行。在左侧的示波器中观察输出波形结果。

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

 

通过DIGILENT Basys3开发板右侧的上下左右键进行频率调节,以及利用低两位的开关来选择输出波形。

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

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

 

 

END

 

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!

 

往期推荐

相关文章:

  • 2021-12-22
  • 2021-12-05
  • 2022-12-23
  • 2021-07-12
  • 2021-08-08
  • 2021-08-27
  • 2021-08-21
  • 2022-02-10
猜你喜欢
  • 2022-01-14
  • 2021-10-28
  • 2021-11-19
  • 2021-08-06
  • 2021-06-03
  • 2021-07-22
  • 2022-01-12
相关资源
相似解决方案