正点原子【FPGA

您所在的位置:网站首页 开拓者软件官网 正点原子【FPGA

正点原子【FPGA

2023-04-03 00:37| 来源: 网络整理| 查看: 265

1)资料下载:点击资料即可下载

2)对正点原子Linux感兴趣的同学可以加群讨论:935446741

3)关注正点原子公众号,获取最新资料更新

Quartus II是Altera公司的综合性FPGA开发软件,可以完成从设计输入到硬件配置的完整 FPGA设计流程。本章我们将学习如何安装Quartus II软件以及Quartus II软件的使用方法,为 大家在接下来学习实战篇打下基础。

本章包括以下几个部分:

4.1 Quartus II软件的安装4.2 USB Blaster驱动安装4.3 Quartus II软件的使用4.4 SignalTap II软件的使用

4.1 Quartus II软件的安装

Altera公司每年都会对Quartus II软件进行更新,各个版本之间除界面以及其它性能的优 化之外,基本的使用功能都是一样的,我们光盘中提供的是相对稳定的Quartus II 13.1版本, 接下来我们安装Quartus II 13.1(以下简称Quartus)版本的软件。

首先在开拓者FPGA开发板资料盘(B盘)→QuartusII_13.1文件夹下找到Quartus的安装包 文件(注意:由于光盘容量有限,我们将FPGA开发软件Quartus II和仿真软件Modelsim放在B 盘),文件列表如图 4.1.1所示:

图 4.1.1 Quartus安装包文件夹

双击运行“QuartusSetup-13.1.0.162.exe”文件,进入如图 4.1.2所示的Quartus软件的 安装引导页面。

图 4.1.2 Quartus安装引导-欢迎页面

我们直接点击【Next>】,进入如图 4.1.3所示页面。

图 4.1.3 Quartus安装引导-声明页面

先选中“I accept the agreement”,然后点击【Next>】,进入如图 4.1.4所示页面。

图 4.1.4 Quartus安装引导-安装路径选择页面

在这里,我们选择的路径是D:\altera\13.1,Quartus软件需要大约6G的安装空间,大家 可根据电脑磁盘空间的大小来选择相应的路径,注意安装路径中不能出现中文、空格以及特殊 字符等。接下来点击【Next>】,进入如图 4.1.5所示页面。

图 4.1.5 Quartus安装引导-器件选择页面

上图是FPGA的器件安装页面,由于软件安装包和Cyclone系列器件支持包放在了同一个文 件夹下,软件在这里已经自动检测出器件,我们保持默认全部勾选的页面,点击【Next>】, 进入如图 4.1.6所示页面。

图 4.1.6 Quartus安装引导-总结页面

由上图可知,Quartus软件需要大约6G的安装空间,我们直接点击【Next>】,进入如图 4.1.7 所示页面。

图 4.1.7 Quartus安装引导-正在安装页面

接下来,进入正式安装过程,此过程会耗费较长的时间,具体时间跟电脑配置有关。经过 一段时间的等待之后,Quartus软件安装完成,进入如图 4.1.8所示页面。

图 4.1.8 Quartus安装引导-安装完成页面

至此,Quartus软件安装完成,我们直接点击【Finish】,接下来会弹出如图 4.1.9和图 4.1.10所示页面。

图 4.1.9 Altera反馈选择页面

上图中的页面,我们直接点击【OK】。

图 4.1.10 Quartus授权使用页面

在License Setup Required页面中可以选择30天试用期,也可以通过购买正版的Altera 的License等途径来正常使用(请查看安装包目录下“安装说明.txt”)。

4.2 USB Blaster驱动安装

USB Blaster是Altera FPGA的程序下载器,通过计算机的USB接口对Altera的FPGA和配置 芯片进行编程、调试以及下载等操作。电脑必须在安装驱动后,USB Blaster才能正常工作, 具体的安装方法如下。

首先需要将USB线一端连接下载器,另一段插到电脑的USB接口上面。然后打开电脑的设备 管理器,电脑的设备管理器打开方法为:右键点击桌面的【计算机】→【管理】→【设备管理 器】,打开后的界面如图 4.2.1所示。

图 4.2.1 设备管理器打开界面

从上图的界面中,我们可以在其它设备下面看到USB-Blaster设备,前面有个黄色的感叹 号,说明电脑已经识别到下载器,但设备的驱动没有安装。右击选中【USB-Blaster】,并选 择【更新驱动程序软件(P)...】,如图 4.2.2和图 4.2.3所示界面。

图 4.2.2 设备管理器选择更新驱动程序软件界面图 4.2.3 更新驱动程序软件界面

在上图的界面中,我们点击第二个选项【浏览计算机以查找驱动程序软件】,进入如图 4.2.4所示页面。

图 4.2.4 更新驱动程序软件路径选择界面

点 击 【 浏 览 】 按 钮 选 择 驱 动 程 序 的 路 径 为 Quartus 软 件 安 装 目 录 D:\altera\13.1\qurtus\drivers\usb-blaster,点击【下一步】,进入如图 4.2.5所示界面。

图 4.2.5 USB-Blaster安装确认界面

在弹出的安全提示框里,选中“始终信任...”前面的方框,然后点击【安装】按钮开始 安装驱动程序,安装程序完成后进入如图 4.2.6所示页面。

图 4.2.6 驱动程序软件更新完成界面

从上图中的页面,我们可以看到,Altera US-Blaster驱动更新完成,然后直接点击【关 闭】即可。这时刷新一下设备管理器,在通用串行总线控制器里出现了Altera USB-Blaster, 并且图标前面的感叹号已经没有了,说明下载器已经可以正常使用了,如图 4.2.7所示。

图 4.2.7 设备管理器USB-Blaster驱动安装完成界面

4.3 Quartus II软件的使用

在开始使用Quartus软件之前,我们先来了解一下Quartus软件的使用流程,如图 4.3.1所 示。

图 4.3.1 Quartus软件使用流程

从上图可以看出,首先打开Quartus软件,然后新建一个工程,在新建工程的时候,我们 可以通过创建工程向导的方式来创建工程;工程建立完成后,我们需要新建一个Verilog顶层 文件,然后我们将设计的代码输入到新建的Verilog顶层文件中,并对工程进行配置;接下来 我们就可以对设计文件进行分析与综合了,此时Quartus软件会检查代码,如果代码出现语法 错误,那么 Quartus软件将会给出相关错误提示,如果代码语法正确,Quartus软件将会显示 编译完成;工程编译完成后,我们还需要给工程分配引脚,引脚分配完成后,接下来就开始编 译整个工程了;在编译过程中,Quartus软件会重新检查代码,如果代码及其它配置都正确后, Quartus软件会生成一个用于下载至FPGA芯片的.sof文件。最后,我们通过下载工具将编译生 成的.sof文件下载至开发板,完成整个开发流程。

在这里,我们只是简单的介绍了一下上述的流程图,让大家有个大致的了解,接下来我们 就以流水灯实验的工程为例,对每个流程进行详细的操作演示,一步步、手把手带领大家学习 使用Quartus II软件。

4.3.1 新建工程

在创建工程之前,我们建议大家在硬盘中新建一个文件夹用于存放自己的Quartus工程, 这个工程目录的路径名应该只有字母、数字和下划线,以字母为首字符,且不要包含中文和其 它符号。

我们在电脑的E盘Verilog文件夹中创建一个flow_led文件夹,用于存放本次流水灯实验的 工程,工程文件夹的命名要能反映出工程实现的功能,本次是以流水灯的实验为例,所以这里将文件夹命名为flow_led。然后在flow_led文件夹下创建4个子文件夹,分别命名为:doc、par、 rtl和sim。doc文件夹用于存放项目相关的文档,par文件夹用于存放Quartus软件的工程文件, rtl文件夹用于存放源代码,sim文件夹用于存放项目的仿真文件。创建的文件夹目录如图 4.3.1.1所示。

图 4.3.1.1 工程文件目录

建议大家在开始创建工程之前都要先创建这四个文件夹,如果说工程相对简单,不需要相 关参考文档或者仿真文件的话,doc文件夹和sim文件夹可以为空,但是对于复杂的工程,相关 文档的参考与记录以及仿真测试几乎是必不可少的,所以我们从简单的实验开始就要养成良好 的习惯,为我们设计复杂的工程打下基础。

接下来启动Quartus II软件,我们直接双击桌面上的Quartus II 13.1 (64-bit)软件图标 (如果是32位系统为Quartus II 13.1 (32-bit)),打开Quaruts II软件,Quartus II软件主 界面如图 4.3.1.2所示。

图 4.3.1.2 Quartus II 软件主界面

Quartus软件默认由菜单栏、工具栏、工程文件导航窗口、编译流程窗口、主编辑窗口以 及信息提示窗口组成。在菜单栏上选择【File】→【New Project Wizard…】来新建一个工程。 如图 4.3.1.3所示。

图 4.3.1.3 新建工程操作界面

新建工程向导说明页面如图 4.3.1.4所示。

图 4.3.1.4 创建工程向导-介绍页面

在“Introduction”介绍页面中,我们可以了解到在新建工程的过程中要完成以下五个步 骤:

1、 工程的命名以及指定工程的路径;

2、 指定工程的顶层文件名

3、 添加已经存在的设计文件和库文件

4、 指定器件型号

5、 EDA工具设置

接下来我们可以单击上图页面下面的【Next>】按钮进入图 4.3.1.5所示页面。

图 4.3.1.5 创建工程向导-工程名及路径页面

图 4.3.1.5的第一栏用于指定工程所在的路径;第二栏用于指定工程名,这里我们建议大 家直接使用顶层文件的实体名作为工程名;第三栏用于指定顶层文件的实体名。这里我们设置 的工程路径为E:/Verilog/flow_led/par文件夹,工程名与顶层文件的实体名同为flow_led。 文件名和路径设置完毕后,我们单击【Next】按钮,进入下一个页面,如图 4.3.1.6 所示。

图 4.3.1.6 创建工程向导-添加设计文件页面

在该页面中,我们可以通过点击【…】符号按钮添加已有的工程设计文件(Verilog或 VHDL 文件),由于我们这里是一个完全新建的工程,没有任何预先可用的设计文件,所以我们不用 添加,直接单击【Next】按钮,进入如图 4.3.1.7所示页面。

图 4.3.1.7 创建工程向导-选择器件页面

这里我们要根据实际所用的FPGA型号来选择目标器件,由于我们开拓者FPGA开发板主芯片 是Cyclone IV E系列的“EP4CE10F17C8”,所以在Device Family一栏中选择“Cyclone IV E”。 Cyclone IV E系列的产品型号较多,为了方便我们在Available device一栏中快速找到我们开 发板的芯片型号,我们在Package一栏中选择FBGA封装,Pin Count选择256引脚,Speed grade 速度等级一栏中选择8,之后在可选择的器件中只能看见四个符合要求的芯片型号了,选中 “EP4CE10F17C8”,接着我们再单击【Next】按钮进入如图 4.3.1.8所示页面。

图 4.3.1.8 创建工程向导-EDA工具设置页面

如图 4.3.1.8所示,在“EDA Tool Settings”页面中,我们可以设置工程各个开发环节 中需要用到的第三方EDA工具,比如:仿真工具Modelsim、综合工具Synplify。由于本实例着 重介绍Quartus II软件,并没有使用任何的EDA工具,所以此页面保持默认不添加第三方EDA工 具,直接单击【Next>】进入图 4.3.1.9所示页面。

图 4.3.1.9 创建工程向导-总结页面

从该页面中,我们可以看到工程文件配置信息报告,接下来我们点击【Finish】完成工程 的创建。

此时返回到Quartus软件界面,可以在工程文件导航窗口中看到我们刚才新建的flow_led 工程,如果大家需要修改器件的话,直接双击工程文件导航窗口中的“Cyclone IV E:EP4CE10F17C8”即可,Quartus显示界面如图 4.3.1.10所示。

图 4.3.1.10 工程创建完成界面

4.3.2 设计输入

下面我们就来创建工程顶层文件,我们在菜单栏中找到【File】→【New】,如图 4.3.2.1 所示。

图 4.3.2.1 新建设计文件操作界面

弹出如图 4.3.2.2所示页面,由于我们使用Verilog HDL语言来作为工程的输入设计文件, 所以在Design Files一栏中选择Verilog HDL File,然后点击【OK】按钮。

图 4.3.2.2 创建Verilog文件

这里会出现一个Verilog1.v文件的设计界面,用于输入Verilog代码,如图 4.3.2.3所示。

图 4.3.2.3 创建Verilog文件工程界面

接下来我们在该文件中编写流水灯代码,流水灯的代码如下:

1 module flow_led(

2 input sys_clk , //系统时钟

3 input sys_rst_n, //系统复位,低电平有效

4

5 output reg [3:0] led //4个LED灯

6 );

7

8 //reg define

9 reg [23:0] counter;

10

11 //*****************************************************

12 //** main code

13 //*****************************************************

14

15 //计数器对系统时钟计数,计时0.2秒

16 always @(posedge sys_clk or negedge sys_rst_n) begin

17 if (!sys_rst_n)

18 counter 图 4.3.2.5 Verilog代码保存界面

在上图的界面中,点击【保存】按钮即可保存代码文件,然后我们可以在工程文件导航窗 口File一栏中找到新建的flow_led.v文件,如图 4.3.2.6所示。

图 4.3.2.6 工程文件导航窗口中的文件

4.3.3 配置工程

在我们的工程中,需要配置双用的管脚。首先我们在Quartus软件的菜单栏中找到 【Assignments】→【Device...】,出现如图 4.3.3.1所示页面。

图 4.3.3.1 器件选择页面

该页面就是可以重新选择器件页面,然后点击【Device and Pin Options】按钮,会弹出 一个设置页面,在左侧Category一栏中选择Dual-Purpose Pin。对于需要使用EPCS器件的引脚 时,需要将下图页面中所有的引脚都改成Use as regular IO,如果大家不确定工程中是否用 到EPCS器件时,可以全部修改。本次实验只修改了nCEO一栏中,将Use as programming pin修 改为Use as regular I/0,设置界面如图 4.3.3.2所示。

图 4.3.3.2 双用的管脚设置成普通I/O

修改完成后,点击【OK】按钮完成设置。

4.3.4 分析与综合(编译)

为了验证代码是否正确,我们可以在工具栏中选择【Analysis & Synthesis】图标来验证 语法是否正确,也可以对整个工程进行一次全编译,即在工具栏中选择【Start Compilation】 图标,不过全编译的时间耗时会比较长。接下来我们对工程进行语法检查,点击工具栏中的 【Analysis & Synthesis】图标,图标的位置如图 4.3.4.1所示。

图 4.3.4.1 分析与综合工具图标

在编译过程中如果没有出现语法错误,编译流程窗口【Analysis & Synthesis】前面的问 号会变成对勾,表示编译通过,如图 4.3.4.2所示。

图 4.3.4.2 编译完成界面

最后,我们可以查看打印窗口的“Processing”里的信息,如图 4.3.4.3所示。包括各种 “Warning”和“Error”。“Error”是必须要关心的,“Error”意味着代码有语法错误,后 续的编译将无法继续,如果出现错误,可以双击错误信息,此时编辑器会定位到语法错误的位 置,修改完成后,重新开始编译;而“Warning”则不一定是致命的,有些潜在的问题可以从 “Warning”中寻找,如果一些“Warning”信息对设计没有什么影响,也可以忽略它。信息提示窗口界面如下图所示。

图 4.3.4.3 信息提示窗口界面

4.3.5 分配引脚

编译通过以后,接下来我们就需要对工程中输入、输出端口进行管脚分配。可以在菜单栏 中点击【Assignments】→【Pin Planner】或者在工具栏中点击【Pin Planner】的图标,操 作界面如图 4.3.5.1所示。

图 4.3.5.1 引脚分配操作界面

引脚分配界面如图 4.3.5.2所示。

图 4.3.5.2 引脚分配界面

可以看到该界面出现了6个端口分别是4个LED、时钟和复位,我们可以参考原理图来对引 脚进行分配,下图为FPGA开发板的时钟和复位引脚的原理图。

图 4.3.5.3 时钟和复位信号原理图

上图中FPGA_CLK连接FPGA的引脚E1和晶振,RESET连接FPGA的引脚M1和复位按键,所以在 对引脚进行分配时,输入的时钟sys_clk引脚分配到E1,sys_rst_n引脚分配到M1,LED的引脚 查看方法同理。为了便于大家的查看,我们整理出了包含开发板上所有引脚分配的表格,该表 格位于资料盘/3_ALIENTEK开拓者FPGA开发板原理图/开拓者FPGA开发板IO引脚分配表,引脚分 配完成后如图 4.3.5.3所示。比如分配sys_clk引脚为PIN_E1,先用鼠标点击sys_clk信号名Location下面的空白位置,可以选择PIN_E1,也可以直接输入E1接下来按下回车键。

图 4.3.5.4 引脚分配完成界面

引脚分配完成后,直接关闭引脚分配窗口,软件会在工程所在位置生成一个.qsf文件用来 存放引脚信息。

4.3.6 编译工程

我们分配完引脚之后,需要对整个工程进行一次全编译,我们在工具栏中选择【Start Compilation】图标,操作界面如图 4.3.6.1所示。

图 4.3.6.1 全编译操作界面

编译完成后的界面如图 4.3.6.2所示。

图 4.3.6.2 全编译完成界面

在图 4.3.6.2界面中,左侧编译流程窗口全部显示打钩,说明工程编译通过,右侧Flow Summary观察FPGA资源使用的情况。

4.3.7 下载程序

编译完成后,我们就可以给开发板下载程序,来验证我们的程序能否正常运行。图 4.3.7.1 为开拓者开发板的实物图。首先我们将USB Blaster下载器一端连接电脑,另一端与开发板上 的JTAG接口相连接;然后连接开发板电源线,并打开电源开关。

图 4.3.7.1 开拓者开发板实物图

接下来我们在工具栏上找到【Programmer】按钮或者选择菜单栏【Tools】→【Programmer】, 操作界面如图 4.3.7.2所示。

图 4.3.7.2 打开程序下载操作

程序下载界面如图 4.3.7.3所示。

图 4.3.7.3 程序下载界面

点击上图页面中的【Hardware Setup...】按钮,选择“USB-Blaster”,如图 4.3.7.4所 示界面。

图 4.3.7.4 选中USB-Blaster

在图 4.3.7.4的界面中,如果大家的软件中没有出现USB-Blaster,请检查下是不是USBBlaster没有插入到电脑的USB接口。

然后点击Close按钮完成设置,接下来回到下载界面,点击【ADD File...】按钮,添加用 于下载程序的sof文件,如图 4.3.7.5和图 4.3.7.6所示。

图 4.3.7.5 程序下载界面图 4.3.7.6 选择sof文件

找到“output_files”下面的“flow_led.sof”文件点击【Open】即可。

接下来我们就可以下载程序了,点击【Start】按钮下载程序,操作界面如图 4.3.7.7所 示。

图 4.3.7.7 程序下载界面

下载程序时,我们可以在Process一栏中观察下载进度,程序下载完成后,可以看到下载 进度为100%,如图 4.3.7.8所示。

图 4.3.7.8 程序下载完成界面

下载完成之后,我们可以看到开发板上的DS0~DS3按顺序点亮,呈现出流水灯的效果。如 图 4.3.7.9所示。

图 4.3.7.9 流水灯实验效果图

4.3.8 固化程序

这里下载的程序是.sof文件格式,开发板断电后程序将会丢失。如果我们想要程序断电不 丢失的话,就必须将程序保存在开发板的片外Flash中,Flash的引脚是和FPGA固定的引脚相连 接,FPGA会在上电后自动读取Flash中存储的程序,这个过程不需要我们编写驱动代码和人为 干预,只需要通过JTAG下载jic文件即可。需要注意的是,jic文件不是软件自动生成的,而是 需要我们手动的将sof文件转换成jic文件。首先在Quartsu软件的菜单栏【File】→【Convert Programming Files…】,操作界面如图 4.3.8.1和图 4.3.8.2所示。

图 4.3.8.1 Quartus软件界面图 4.3.8.2 sof 文件转换jic文件窗口

首先修改“programming file type”为【JTAG Indirect ConfigurationFile (.jic)】; 然后修改“Configuration device”为【EPCS16】(开拓者开发板Flash型号为M25P16,完全兼 容EPCS16);然后选中窗口中的“Flash Loader”点击右边的【Add Device..】按钮出现如图 4.3.8.3所示界面。

图 4.3.8.3 器件选择界面

选择开发板器件(这里我们开拓者开发板为Cyclone IV E EP4CE10)点击【OK】按钮。然 后选中“SOF Data”,点击右边的按钮【Add file….】如图 4.3.8.4和图 4.3.8.5所示界面。

图 4.3.8.4 添加sof操作页面图 4.3.8.5 添加Sof文件

找到“output_files”下面的“flow_led.sof”文件点击【Open】即可。最后完成所有设置界面如图 4.3.8.6所示。

图 4.3.8.6 最终完成设置

点击【Generate】按钮出现如图 4.3.8.7所示:

图 4.3.8.7 转换成功

点击【OK】,这时.jic文件就已经生成了,关闭“Convert Programming File”页面。点 击菜单栏【Tools】下的【Programmer】(如果下载界面关闭了的话),选中.sof文件,点击 左侧按钮【Delete】删去之前添加的sof文件,如图 4.3.8.8所示

图 4.3.8.8 删除sof文件

点击左边的【Add File..】找到“output_files”文件下的“output_file.jic”,如图 4.3.8.9和图 4.3.8.10所示。

图 4.3.8.9 添加jic文件图 4.3.8.10 打开JIC文件界面

添加完成后发现【start】不能点击,需要在【Program/Configure】方框下面点击打勾。 如图 4.3.8.11所示。

图 4.3.8.11 程序下载界面

点击【Start】,开始固化程序,当下载进度显示100%之后,即可固化成功。我们把开发 板电源关闭,然后再一次打开开发板电源,可以看到,LED又呈现出了流水灯的效果。

如果需要擦除Flash中的程序的话,可以通过勾选【Erase】下面的方框来擦除程序。需要 注意的是,如果已经勾选了【Program/Configure】方框,是无法勾选【Erase】方框的,所以 先取消勾选【Program/Configure】,然后再勾选【Erase】,如图 4.3.8.12和图 4.3.8.13所示。

图 4.3.8.12 取消勾选【Program/Configure】图 4.3.8.13 勾选【Erase】

当点击勾选【Erase】方框后,【Program/Configure】下面第一个方框也会自动勾选,这 个时候点击【Start】即可开始擦除程序。

4.4 SignalTap II软件的使用

SignalTap II全称SignalTap II Logic Analyzer,是第二代系统级调试工具,可以捕获 和显示实时信号,是一款功能强大且极具实用性的FPGA片上调试工具软件。SignalTap II可以 选择要捕获的信号、捕获的触发方式以及捕获的数据样本深度,实时数据提供给工程师帮助 debug。

传统的FPGA板级调试是由外接的逻辑分析仪连接到FPGA的控制管脚,然后将内部信号引出 至引脚IO上,进行板级调试。这种方法的缺点是首先我们需要一个逻辑分析仪,而逻辑分析仪 一般价格都比较昂贵,且对于需要测试几十个引脚的时候,选择使用外接的逻辑分析仪就比较 繁琐了。SignalTap II在线逻辑分析仪克服了以上所有的缺点,其借用了传统逻辑分析仪的理 念以及大部分的功能,将这些功能植入到FPGA的设计当中,编程后存放在电路板的目标器件中, 使用FPGA资源来构成嵌入式逻辑分析仪。SignalTap II不需要将待测信号引出至I/O上,也不 需要电路板走线或者探点,当然更不需要外部的逻辑分析仪的花费,它集成在Altera公司提供 的FPGA开发工具Quartus II软件中。

接下来我们使用SignalTap II(以下简称SignalTap)软件来分析工程。我们就以之前的 Quartus工程为例进行调试和分析,如果工程关闭了的话,可以通过双击“flow_led.qpf”来 打开工程,如下图所示页面。

图 4.4.1 打开工程

打开后的工程如图 4.4.2所示。

图 4.4.2 Quartus软件打开界面

在Quartus软件界面的菜单栏中,点击【Tool】→【SignalTap II Logic Analyzer】,操 作界面如图 4.4.3所示。

图 4.4.3 打开SignalTap操作界面

接下来会弹出如图 4.4.4所示页面。

图 4.4.4 SignalTap软件界面

从SignaTap II软件界面中我们可以看出,它主要有例化管理器、JTAG链配置、信号配置、 数据日志、分层显示、节点列表和触发条件组成。接下来我们添加需要观察的信号,双击节点 列表和触发条件的空白区域,得到如图 4.4.5所示页面。

图 4.4.5 节点发现器页面

我们在节点发现器中首先将Filer设置为SignalTap II:pre-synthesis,再点击【List】 按钮,此时Nodes Found一栏就会出现我们工程代码中的信号,然后我们将counter、sys_rst_n 和led添加至右侧Selected Nodes一栏中,添加方法是直接双击Node Found一栏的信号名,如 果需要删除的话,可以直接双击Selected Nodes一栏的信号名,接下来我们点击【OK】按钮, 完成信号的添加,如图 4.4.6所示。

图 4.4.6 节点信号添加完成图

这里需要注意的是,如果我们发现添加的信号变成了红色,或者有些reg与wire定义的信 号可以观察,有些不可以,这是因为reg与wire被Quartus软件优化掉了,导致无法使用 SignalTap观察。这里有两种方法解决这个问题,第一种就是将reg与wire信号改成输出端口信 号,但这种方式较为繁琐;第二种方法就是在待观察的wire信号旁边加上/*synthesis keep*/; 对于reg信号则加/*synthesis noprune*/,如下所示:

1 wire [23:0] counter/*synthesis keep*/;

2 reg [23:0] counter/*synthesis noprune*/;

当然本次实验是不需要添加防止信号被优化的代码的,大家如果以后遇到信号被优化的情 况可以采用此方法。添加完信号之后,接下来我们在信号配置页面中,添加采样时钟,添加方 法如图 4.4.7所示。

图 4.4.7 信号配置图

在信号配置页面Clock一栏中,点击右侧的【...】按钮,点击后弹出的页面如图 4.4.8所 示。

图 4.4.8 节点发现器页面

这个页面和添加待观察信号的页面一样,我们将系统时钟(sys_clk)作为采样数据的时 钟添加至Selected Nodes一栏中,然后点击【OK】按钮。接下来需要设置采样的深度,我们在 信号配置页面Sample depth一栏中将采样深度设置为2K,这里采样深度的值越大,所能观察信 号的时间范围也就越长,但同时所消耗的FPGA RAM资源也就越大,设置后的界面如图 4.4.9所示。

图 4.4.9 信号配置图

接下来保存我们的分析文件,点击SignalTap软件菜单栏的【File】→【Save】,如图 4.4.10 和图 4.4.11所示。

图 4.4.10 保存分析文件图 4.4.11 保存分析文件的路径和命名

我们将分析文件保存在工程所在路径par文件夹下,然后点击【保存】按钮。接下来会弹 出是否将分析文件添加至工程的页面,我们直接点击【YES】,如图 4.4.12所示。

图 4.4.12 分析文件添加至工程确认页面

我们返回到Quartus软件界面,在工程文件导航窗口可以看到File一栏多了一个stp1.stp 文件,这个文件就是我们刚才添加至工程中的分析文件,如图 4.4.13所示。接下来我们需要 对工程进行全编译,点击图 4.4.13所示的全编译的工具栏图标,开始编译工程。

图 4.4.13 Quartsu软件界面

工程编译完成后,首先将USB Blaster下载器一端连接电脑,另一端连接开发板的JTAG接 口,然后连接开发板的电源线,并打开电源开关。接下来我们重新回到SignalTap软件界面, 我们在JTAG链配置窗口中点击【Setup】找到USB-Blaster[USB-0],这时我们在点击【Scan Chain】 则会出现如图 4.4.14所示页面。

图 4.4.14 JTAG链配置页面

从该图中我们可以看出,SignalTap软件已经成功识别到我们的下载器和开发板芯片(如 果没有识别到,请检查电脑和开发板是否通过USB Blaster连接完成,并且开发板电源已经打 开)。接下来我们给开发板下载程序,这里需要注意的是,SignalTap软件也是可以给开发板 下载程序的,同样也是在JTAG链配置页面的SOF Manager一栏中,点击【...】按钮,选择工程 所在路径output_files文件夹下的flow_led.sof,选中后点击Open按钮,如图 4.4.15所说页 面。

图 4.4.15 JTAG链配置页面

接下来点击图 4.4.15所示的下载程序按钮下载程序,程序下载完后,点击SignalTap软件 工具栏中的开始分析图标,操作界面如图 4.4.16所示。

图 4.4.16 SignalTap工具栏图标

上图中第一个图标表示只运行一次;第二个图标表示自动运行,也就是会一直刷新采样的 波形;第三个图标表示停止运行。我们点击第一个开始运行图标即可采集到数据,如图 4.4.17 所示。

图 4.4.17 SignalTap采集到的数据波形图

图 4.4.17是采集到的波形图,可以通过点击和右击波形图的方式进行放大和缩小,数据 默认是以16进制显示的,为了方便观察数据,我们将格式改成无符号的十进制。操作方式是选 中counter信号名,右击选择【Bus Display Format】→【Unsigned Decimal】,如图 4.4.18 和图 4.4.19所示。

图 4.4.18 更改数据显示格式图 4.4.19 SignalTap采集到的数据波形图

SignalTap软件支持通过设置触发方式来采集波形,在SignalTap信号列表Setup一栏中, 右击sys_rst_n信号的Trigger Conditions方框内的图标,如图 4.4.20所示。

图 4.4.20 SignalTap触发方式设置页面

图 4.4.20中,Don’t Care表示不关心,即不设置触发方式;Low表示低电平触发;Falling Edge表示下降沿触发;Rising Edge表示上升沿触发;High表示高电平触发;Either Edge表示 双沿触发。由于按键复位信号在未按下是高电平,按下之后变为低电平,所以这里设置为下降 沿触发方式,然后点击【Data】一栏,返回到波形显示页面。

再次点击工具栏中的运行一次的工具按钮,SignalTap软件界面如图 4.4.21所示。

图 4.4.21 SignalTap软件界面

这时我们可以看到,由于SignalTap软件一直等不到复位按键按下,所以它也一直不能触 发,直到我们按下复位按键之后,它便能采样到下降沿,从而进行触发。这里我们按下复位按键,如图 4.4.22所示。

图 4.4.22 SignalTap II 复位按键触发采样波形

这时我们可以看到,SignalTap软件进行了触发,然后我们分析波形可以看到,当复位按 键按下以后,counter计数器变为0,led变为初始状态1h(4’b0001),这和我们的代码是一 致的。这里我们需要说明的是SignalTap支持的触发条件除电平、边沿等触发条件外,也可以 对counter计数器设置具体的值来触发,大家可以试一试。如果两个或者以上的信号都设置了 触发条件,那么最终仅仅当这些条件同时满足时,采样才执行。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3