购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 Vivado软件开发步骤

2.3.1 流水灯电路功能

例2-1:Vivado设计流水灯电路。

流水灯电路几乎成为FPGA设计的入门实验,用这个实验来讨论FPGA的设计流程比较直观。流水灯的功能是通过控制开发板上的8个LED依次被点亮来实现的。如果仔细思考一下,还可以通过调整每个LED被点亮的时长来控制流水灯的工作频率。并且,流水灯的设计代码有很多种,感兴趣的读者可参考《零基础学FPGA设计——理解硬件编程思想》了解多种设计方法。由于这个实例主要展示Vivado的开发流程,下面的实例仅设计一种固定频率的流水灯功能。

进行Verilog HDL代码设计之前,首先要了解流水灯功能电路的相关硬件接口情况。流水灯电路需要一个时钟输入信号gclk、8个LED输出信号led[7:0],为简化设计,程序不设置复位电路。为了准确控制LED的亮灭状态,还需要明确LED电路的硬件电路原理。本实例采用的开发板为CXD720,根据硬件原理图可知LED为高电平点亮,如图2-2所示。

图2-2 CXD720开发板LED电路原理图

查阅CXD720开发板的电路原理图,可知流水灯电路中的引脚定义如表2-1所示。

表2-1 流水灯电路中的引脚定义

2.3.2 流水灯电路设计输入与实现

1.新建流水灯工程

打开Vivado软件,执行菜单命令“File”→“Project”→“New”,打开新建工程(New Project)对话框,单击“Next”按钮,在弹出的对话框中勾选“Create project subdirectory”复选框,在“Project location”编辑框中输入工程目录的存放路径,在“Project name”编辑框中输入工程名称“waterlight”,如图2-3所示。

单击“Next”按钮,在弹出的对话框中勾选“RTL Project”复选框,持续单击“Next”按钮进入目标器件选择对话框。选中CXD720的FPGA器件型号“xc7a100tfgg484-2”,单击“OK”按钮,完成名为waterlight的FPGA工程创建,如图2-4所示。

2.代码输入与程序实现

完成waterlight工程创建后,在Vivado主界面中,单击左侧“Flow Navigator”中的“Add Sources”条目,在弹出的对话框中勾选“Add or create design sources”复选框,单击“Next”按钮,在弹出的对话框中单击“Create File”按钮,弹出新建文件对话框。在“File type”列表框中选择“Verilog”选项,在“File name”编辑框中输入文件名“waterlight”,如图2-5所示。单击“OK”按钮,进入文件端口设置对话框。

图2-3 Vivado FPGA工程创建对话框

图2-4 FPGA目标器件选择对话框

图2-5 新建文件对话框

根据流水灯文件的接口要求,在图2-6所示的对话框中设置输入端口gclk和8bit的输出端口led。单击“OK”按钮,完成文件端口的创建。

图2-6 文件端口设置对话框

新创建的Verilog HDL文件waterlight.v自动存放在当前工程路径下的“waterlight.srcs\sources_1\new”文件夹中。

在Vivado的主界面中,双击“Sources”窗口中的“Design Sources”→“waterlight.v”按钮,可在主界面的右侧打开文件进行编辑,编辑完成后的文件源码如下所示。

完成文件编辑后,可单击Vivado左侧窗口中的“RTL ANALYSIS”→“Open Elaborated”“Design”→“Schematic”按钮,查看RTL原理图。

单击Vivado界面左侧的“Add Sources”条目,新建“constraints”约束文件CXD720.xdc,并在文件中编辑引脚约束语句,如下所示。

其中,前3行代码用于设置程序下载到FLASH芯片时的配置模式:数据位宽为4bit、采用SPIx4配置模式、配置速率为50MHz。对于CXD720来讲,这3行代码可以始终写在xdc的文件前面,不需要进行任何修改。

第4行代码用于设置对时钟信号gclk的周期约束,设置周期为10ns,即100MHz。CXD720的晶振时钟频率为100MHz。

第5、6代码用于设置时钟信号gclk的引脚及电气特性约束。由于FPGA芯片的C19管脚为差分时钟输入端,程序中将C19作为单端时钟输入,程序综合实现时会检查到C19的使用规则与使用方法冲突,而无法完成综合实现。第7行代码用于屏蔽对时钟管脚规则的检查,从而完成程序的综合实现过程。

后续代码中,每2行代码为一组,完成对端口信号引脚及电气特性的约束。以gclk为例,PACKAGE_PIN后面的序号C19表示gclk信号对应的FPGA引脚编号为C19。如果查阅CXD720的电路原理图可知,100MHz的晶振时钟信号正好与FPGA的C19连接。IOSTANDARD LVCMOS33表示gclk对应引脚的电气特性为3.3V的LVCMOS电压标准。除LVCMOS33外,常用的FPGA引脚电压标准还有LVCMOS18、LVCMOS25、LVCMOS15等。FPGA引脚的电压标准由硬件电路中的BANK I/O供电电压决定。CXD720的引脚电压标准均为LVCMOS33。

完成引脚约束设计后,单击Vivado主界面左侧窗口中的“IMPLEMENTATION”条目自动完成电路的综合及布局布线。单击“PROGRAM AND DEBUG”下面的“Generate Bitstream”条目,自动生成与工程名同名的bit文件waterlight.bit。准备好程序bit文件,就可以开始将程序下载到芯片验证电路功能了。

2.3.3 程序下载

FPGA程序下载有两种基本方式:一种是下载bit文件,另一种是下载FLASH文件。下载bit文件是指将程序文件直接下载到FPGA芯片中,FPGA立即运行程序,但重新上电后程序消失;下载FLASH文件是指将程序文件烧录到存储FPGA程序的FLASH芯片中,每次重新上电后,FLASH中的程序写入FPGA芯片中运行。第一种程序下载方式便于程序调试,第二种程序下载方式用于形成最终产品。下面介绍第一种程序下载方式。

完成bit文件生成后,将开发板与程序下载线正确连接,单击Vivado界面左侧下面的“Open Hard Manager”按钮,打开下载管理器。在Vivado右侧窗口中继续单击“Open traget”→“Program Device”按钮,打开程序文件窗口,在“Bitstream file”编辑框中设置bit文件路径,如图2-7所示。

图2-7 程序文件路径设置

此时,单击“Program”按钮,完成程序下载,可以看到开发板上的8个LED以流水灯状态运行。 uK9A58WaxcmGx6MY/faCIeB/7Qpc3BX5UuwVqvxceNU+777SFpVF6lX9MbdjP11h

点击中间区域
呼出菜单
上一章
目录
下一章
×