OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6490|回复: 0

[ALTERA] 《新起点之FPGA开发指南 V2.1》第四章 Quartus II软件的安装和使用

[复制链接]

1118

主题

1129

帖子

2

精华

超级版主

Rank: 8Rank: 8

积分
4671
金钱
4671
注册时间
2019-5-8
在线时间
1224 小时
发表于 2021-9-27 11:20:36 | 显示全部楼层 |阅读模式
本帖最后由 正点原子运营 于 2021-10-30 10:03 编辑

1)实验平台:正点原子新起点V2FPGA开发板
2)  章节摘自【正点原子】《新起点之FPGA开发指南 V2.1》
3)购买链接:https://detail.tmall.com/item.htm?id=609758951113
4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_xinqidian(V2).html
5)正点原子官方B站:https://space.bilibili.com/394620890
6)正点原子FPGA技术交流QQ群:712557122 QQ群.png

原子哥.jpg

微信公众号.png

第四章 Quartus II软件的安装和使用


Quartus II是Altera公司的综合性FPGA开发软件,可以完成从设计输入到硬件配置的完整FPGA设计流程。本章我们将学习如何安装Quartus II软件以及Quartus II软件的使用方法,为大家在接下来学习实战篇打下基础。
本章包括以下几个部分:
44.1Quartus II软件的安装
4.2USB Blaster驱动安装
4.3Quartus II软件的使用
4.4SignalTap II软件的使用


4.1Quartus 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所示:
Quartus II软件的安装和使用3074.png
图 4.1.1 Quartus安装包文件夹
双击运行“QuartusSetup-13.1.0.162.exe”文件,进入如图 4.1.2所示的Quartus软件的安装引导页面。
Quartus II软件的安装和使用712.png
图 4.1.2 Quartus安装引导-欢迎页面
我们直接点击【Next>】,进入如图 4.1.3所示页面。
Quartus II软件的安装和使用837.png
图 4.1.3 Quartus安装引导-声明页面
先选中“I accept the agreement”,然后点击【Next>】,进入如图 4.1.4所示页面。
Quartus II软件的安装和使用988.png
图 4.1.4 Quartus安装引导-安装路径选择页面
在这里,我们选择的路径是D:\altera\13.1(这里一定要注意不能出现中文路径),Quartus软件需要大约6G的安装空间,大家可根据电脑磁盘空间的大小来选择相应的路径,注意安装路径中不能出现中文、空格以及特殊字符等。接下来点击【Next>】,进入如图 4.1.5所示页面。
Quartus II软件的安装和使用1228.png
图 4.1.5 Quartus安装引导-器件选择页面
上图是FPGA的器件安装页面,由于软件安装包和Cyclone系列器件支持包放在了同一个文件夹下,软件在这里已经自动检测出器件,我们保持默认全部勾选的页面,点击【Next>】,进入如图 4.1.6所示页面。
Quartus II软件的安装和使用1428.png
图 4.1.6 Quartus安装引导-总结页面
由上图可知,Quartus软件需要大约6G的安装空间,我们直接点击【Next>】,进入如图 4.1.7所示页面。
Quartus II软件的安装和使用1580.png
图 4.1.7 Quartus安装引导-正在安装页面
接下来,进入正式安装过程,此过程会耗费较长的时间,具体时间跟电脑配置有关。经过一段时间的等待之后,Quartus软件安装完成,进入如图 4.1.8所示页面。
Quartus II软件的安装和使用1756.png
图 4.1.8 Quartus安装引导-安装完成页面
至此,Quartus软件安装完成,我们直接点击【Finish】,接下来会弹出如图 4.1.9和图 4.1.10所示页面。
Quartus II软件的安装和使用1939.png
图 4.1.9 Altera反馈选择页面
上图中的页面,我们直接点击【OK】。
Quartus II软件的安装和使用2024.png
图 4.1.10 Quartus授权使用页面
在License Setup Required页面中可以选择30天试用期,也可以通过购买正版的Altera 的License等途径来正常使用(请查看安装包目录下“安装说明.txt”)。
4.2USB Blaster驱动安装
USB Blaster是Altera FPGA的程序下载器,通过计算机的USB接口对Altera的FPGA和配置芯片进行编程、调试以及下载等操作。电脑必须在安装驱动后,USB Blaster才能正常工作,具体的安装方法如下。
首先需要将USB线一端连接下载器,另一段插到电脑的USB接口上面。然后打开电脑的设备管理器,电脑的设备管理器打开方法为:右键点击桌面的【计算机】→【管理】→【设备管理器】,打开后的界面如图 4.2.1所示。
Quartus II软件的安装和使用2443.png
图 4.2.1 设备管理器打开界面
从上图的界面中,我们可以在其它设备下面看到USB-Blaster设备,前面有个黄色的感叹号,说明电脑已经识别到下载器,但设备的驱动没有安装。右击选中【USB-Blaster】,并选择【更新驱动程序软件(P)...】,如图 4.2.2和图 4.2.3所示界面。
Quartus II软件的安装和使用2686.png
图 4.2.2 设备管理器选择更新驱动程序软件界面
Quartus II软件的安装和使用2757.png
图 4.2.3 更新驱动程序软件界面
在上图的界面中,我们点击第二个选项【浏览计算机以查找驱动程序软件】,进入如图 4.2.4所示页面。
Quartus II软件的安装和使用2896.png
图 4.2.4 更新驱动程序软件路径选择界面
点击【浏览】按钮选择驱动程序的路径为Quartus软件安装目录D:\altera\13.1\qurtus\drivers,点击【下一步】,进入如图 4.2.5所示界面。
Quartus II软件的安装和使用3074.png
图 4.2.5 USB-Blaster安装确认界面
在弹出的安全提示框里,选中“始终信任...”前面的方框,然后点击【安装】按钮开始安装驱动程序,安装程序完成后进入如图 4.2.6所示页面。
Quartus II软件的安装和使用3240.png
图 4.2.6 驱动程序软件更新完成界面
从上图中的页面,我们可以看到,Altera US-Blaster驱动更新完成,然后直接点击【关闭】即可。这时刷新一下设备管理器,在通用串行总线控制器里出现了Altera USB-Blaster,并且图标前面的感叹号已经没有了,说明下载器已经可以正常使用了,如图 4.2.7所示。
Quartus II软件的安装和使用3471.png
图 4.2.7 设备管理器USB-Blaster驱动安装完成界面
4.3Quartus II软件的使用
在开始使用Quartus软件之前,我们先来了解一下Quartus软件的使用流程,如图 4.3.1所示。
Quartus II软件的安装和使用3642.png
图 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.2所示。
Quartus II软件的安装和使用4548.png
图 4.3.2 工程文件目录
建议大家在开始创建工程之前都要先创建这四个文件夹,如果说工程相对简单,不需要相关参考文档或者仿真文件的话,doc文件夹和sim文件夹可以为空,但是对于复杂的工程,相关文档的参考与记录以及仿真测试几乎是必不可少的,所以我们从简单的实验开始就要养成良好的习惯,为我们设计复杂的工程打下基础。
接下来启动Quartus II软件,我们直接双击桌面上的Quartus II 13.1 (64-bit)软件图标(如果是32位系统为Quartus II 13.1 (32-bit)),打开Quaruts II软件,Quartus II软件主界面如图 4.3.3所示。
Quartus II软件的安装和使用4910.png
图 4.3.3 Quartus II 软件主界面  
Quartus软件默认由菜单栏、工具栏、工程文件导航窗口、编译流程窗口、主编辑窗口以及信息提示窗口组成。在菜单栏上选择【File】→【New Project Wizard…】来新建一个工程。如图图 4.3.4所示。
Quartus II软件的安装和使用5114.png
图 4.3.4 新建工程操作界面
新建工程向导说明页面如图图 4.3.5所示。
Quartus II软件的安装和使用5223.png
图 4.3.5 创建工程向导-介绍页面
在“Introduction”介绍页面中,我们可以了解到在新建工程的过程中要完成以下五个步骤:
1)工程的命名以及指定工程的路径;
2)指定工程的顶层文件名
3)添加已经存在的设计文件和库文件
4)指定器件型号
5)EDA工具设置
接下来我们可以单击上图页面下面的【Next>】按钮进入图 4.3.6所示页面。
Quartus II软件的安装和使用5458.png
图 4.3.6 创建工程向导-工程名及路径页面
图 4.3.1.5的第一栏用于指定工程所在的路径;第二栏用于指定工程名,这里我们建议大家直接使用顶层文件的实体名作为工程名;第三栏用于指定顶层文件的实体名。这里我们设置的工程路径为E:/Verilog/flow_led/par文件夹,工程名与顶层文件的实体名同为flow_led。文件名和路径设置完毕后,我们单击【Next】按钮,进入下一个页面,如图 4.3.7所示。
Quartus II软件的安装和使用5736.png
图 4.3.7 创建工程向导-添加设计文件页面
在该页面中,我们可以通过点击【…】符号按钮添加已有的工程设计文件(Verilog或 VHDL文件),由于我们这里是一个完全新建的工程,没有任何预先可用的设计文件,所以我们不用添加,直接单击【Next】按钮,进入如图 4.3.8所示页面。
Quartus II软件的安装和使用5948.png
图 4.3.8 创建工程向导-选择器件页面
这里我们要根据实际所用的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.9所示页面。
Quartus II软件的安装和使用6349.png
图 4.3.9 创建工程向导-EDA工具设置页面
如图 4.3.9所示,在“EDA Tool Settings”页面中,我们可以设置工程各个开发环节中需要用到的第三方EDA工具,比如:仿真工具Modelsim、综合工具Synplify。由于本实例着重介绍Quartus II软件,并没有使用任何的EDA工具,所以此页面保持默认不添加第三方EDA工具,直接单击【Next>】进入图 4.3.10所示页面。
Quartus II软件的安装和使用6644.png
图 4.3.10创建工程向导-总结页面
从该页面中,我们可以看到工程文件配置信息报告,接下来我们点击【Finish】完成工程的创建。
此时返回到Quartus软件界面,可以在工程文件导航窗口中看到我们刚才新建的flow_led工程,如果大家需要修改器件的话,直接双击工程文件导航窗口中的“Cyclone IV E:EP4CE10F17C8”即可,Quartus显示界面如图 4.3.11所示。
Quartus II软件的安装和使用6910.png
图 4.3.11工程创建完成界面
4.3.2设计输入
下面我们就来创建工程顶层文件,我们在菜单栏中找到【File】→【New】,如图 4.3.12所示。
Quartus II软件的安装和使用7051.png
图 4.3.12 新建设计文件操作界面
弹出如图 4.3.13所示页面,由于我们使用Verilog HDL语言来作为工程的输入设计文件,所以在Design Files一栏中选择Verilog HDL File,然后点击【OK】按钮。
Quartus II软件的安装和使用7237.png
图 4.3.13 选择语言
这里会出现一个Verilog1.v文件的设计界面,用于输入Verilog代码,如图 4.3.14所示。
Quartus II软件的安装和使用7372.png
图 4.3.14 创建Verilog文件工程界面
接下来我们在该文件中编写流水灯代码,流水灯的代码如下:
  1. 1   module flow_led(
  2. 2       input               sys_clk  ,  //系统时钟
  3. 3       input               sys_rst_n,  //系统复位,低电平有效
  4. 4      
  5. 5       output  reg  [3:0]  led         //4个LED灯
  6. 6       );
  7. 7   
  8. 8   //reg define
  9. 9   reg [23:0] counter;
  10. 10  
  11. 11  //*****************************************************
  12. 12  //**                    main code
  13. 13  //*****************************************************
  14. 14                                                                                                                                                                                                                          
  15. 15  //计数器对系统时钟计数,计时0.2秒
  16. 16  always @(posedge sys_clk or negedge sys_rst_n) begin
  17. 17      if (!sys_rst_n)
  18. 18          counter <= 24'd0;
  19. 19      else if (counter < 24'd1000_0000)
  20. 20          counter <= counter + 1'b1;
  21. 21      else
  22. 22          counter <= 24'd0;
  23. 23  end
  24. 24  
  25. 25  //通过移位寄存器控制IO口的高低电平,从而改变LED的显示状态
  26. 26  always @(posedge sys_clk or negedge sys_rst_n) begin
  27. 27      if (!sys_rst_n)
  28. 28          led <= 4'b0001;
  29. 29      else if(counter == 24'd1000_0000)
  30. 30          led[3:0] <= {led[2:0],led[3]};
  31. 31      else
  32. 32          led <= led;
  33. 33  end
  34. 34  
  35. 35  endmodule
复制代码


这里需要注意的是,源代码前面的序号是为了方便大家查看代码的,在将源代码拷贝到软件编辑区的时候(尽量不要从PDF文档中拷贝代码,转PDF的时候可能会改变源代码格式),需要去掉前面的序号,大家也可以直接从我们光盘中提供的Verilog源代码中拷贝,源代码位于光盘中的4_SourceCode/1_Verilog/1_flow_led/rtl/flow_led.v文件(如果是压缩包的话,需要先解压)。
代码编写完成后,在软件中显示的界面如图 4.3.15所示。
Quartus II软件的安装和使用8929.png
图 4.3.15 Verilog文件编写完成界面
接下来我们保存编辑完成后的代码,按快捷键【Ctrl】+【S】或选择【File】→【Save】,则会弹出一个对话框提示输入文件名和保存路径,默认文件名会和所命名的module名称一致,默认路径也会是当前的工程文件夹,我们将存放的路径修改为rtl文件夹下,如图 4.3.16所示。
Quartus II软件的安装和使用9162.png
图 4.3.16 Verilog代码保存界面
在上图的界面中,点击【保存】按钮即可保存代码文件,然后我们可以在工程文件导航窗口File一栏中找到新建的flow_led.v文件,如图 4.3.17所示。
Quartus II软件的安装和使用9332.png
图 4.3.17 工程文件导航窗口中的文件
设计输入除了像上述直接创建新文件之外还可以把事先写好的源文件直接加载进工程里。这里在加载源文件之前大家一定要把源文件拷贝到工程的rtl文件夹下(.V文件放到rtl文件夹里)然后在加载到工程里去,有些粗心的同学在移植源文件的时候源文件并没有拷贝到工程文件夹里,虽然功能也能正常执行,但是当你将工程拷贝到另一台电脑的时候就会发现报路径错误,所以大家在移植源文件时一定要记得把文件拷贝到工程文件夹下。下面来给大家演示以下如何把源文件添加到工程里去,这里我们还拿流水灯为例,先把刚刚已经创建好的流水灯工程的源文件从工程中移除,如下图所示:
Quartus II软件的安装和使用9665.png
图 4.3.18 移除文件
移除后,我们的流水灯工程就又是一个空壳工程了,但是大家需要注意,把文件从工程中移除并不意味着删除文件,我们刚刚移除的流水灯代码源文件虽然不在工程中了,但是它依保存在我们之前创建好的rtl文件夹里。现在我们再把刚刚删除的源文件添加回工程如下图所示:
Quartus II软件的安装和使用9848.png
图 4.3.19 添加文件
如上图所示我们先点击工具栏的“Project”再点击“Add/Remove Files in Project”打开添加文件选择窗口,如下图所示:
Quartus II软件的安装和使用9980.png
图 4.3.20 选择文件
如上图所示先点击“…”弹出文件选择窗口,找到要添加的文件,选中它后点击“打开”,这样就选中了我们要添加的文件了,接下来我们把文件加载到工程去,如下图所示:
Quartus II软件的安装和使用10117.png
图 4.3.21 加载文件
按照上图标号1、2、3的步骤就可以把文件加载到工程里了,加载好后我们回到Quartus的“Files”窗口,可以看到刚刚移除的源文件又回来了,如下图所示:
Quartus II软件的安装和使用10254.png
图 4.3.22 成功加载文件
到这里文件的移除和加载就跟大家演示完了,不仅仅.V源文件可以这么加载,其他类型的文件也是同样的步骤去移除或加载。
4.3.3配置工程
在我们的工程中,需要配置双用的管脚。首先我们在Quartus软件的菜单栏中找到【Assignments】→【Device...】,出现如图 4.3.23所示页面。
Quartus II软件的安装和使用10483.png
图 4.3.23 器件选择页面
该页面就是可以重新选择器件页面,然后点击【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.24所示。
Quartus II软件的安装和使用10816.png
图 4.3.24 双用的管脚设置成普通I/O
修改完成后,点击【OK】按钮完成设置。
4.3.4分析与综合(编译)
为了验证代码是否正确,我们可以在工具栏中选择【Analysis & Synthesis】图标来验证语法是否正确,也可以对整个工程进行一次全编译,即在工具栏中选择【Start Compilation】图标,不过全编译的时间耗时会比较长。接下来我们对工程进行语法检查,点击工具栏中的【Analysis & Synthesis】图标,图标的位置如图 4.3.25所示。
Quartus II软件的安装和使用11120.png
图 4.3.25分析与综合工具图标
在编译过程中如果没有出现语法错误,编译流程窗口【Analysis & Synthesis】前面的问号会变成对勾,表示编译通过,如图 4.3.26所示。
Quartus II软件的安装和使用11283.png
图 4.3.26 编译完成界面
最后,我们可以查看打印窗口的“Processing”里的信息,如图 4.3.27所示。包括各种“Warning”和“Error”。“Error”是必须要关心的,“Error”意味着代码有错误,后续的编译将无法继续,如果出现错误,可以双击错误信息,此时编辑器会定位到语法错误的位置,修改完成后,重新开始编译;而“Warning”则不一定是致命的,有些潜在的问题可以从“Warning”中寻找,如果一些“Warning”信息对设计没有什么影响,也可以忽略它。信息提示窗口界面如下图所示。
Quartus II软件的安装和使用11610.png
图 4.3.27 信息提示窗口界面
4.3.5分配引脚
编译通过以后,接下来我们就需要对工程中输入、输出端口进行管脚分配。可以在菜单栏中点击【Assignments】→【Pin Planner】或者在工具栏中点击【Pin Planner】的图标,操作界面如图 4.3.28所示。
Quartus II软件的安装和使用11814.png
图 4.3.28 引脚分配操作界面
引脚分配界面如图 4.3.29所示。
Quartus II软件的安装和使用11920.png
图 4.3.29 引脚分配界面
可以看到该界面出现了6个端口分别是4个LED、时钟和复位,我们可以参考原理图来对引脚进行分配,下图为FPGA开发板的时钟和复位引脚的原理图。
Quartus II软件的安装和使用12052.png
图 4.3.30 时钟和复位信号原理图
上图中FPGA_CLK连接FPGA的引脚M2和晶振,RESET连接FPGA的引脚M1和复位按键,所以在对引脚进行分配时,输入的时钟sys_clk引脚分配到M2,sys_rst_n引脚分配到M1,LED的引脚查看方法同理。为了便于大家的查看,我们整理出了包含开发板上所有引脚分配的表格,该表格位于资料盘新起点资料盘(A盘)\3_正点原子新起点原理图\新起点IO分配表,引脚分配完成后如图 4.3.31所示。比如分配sys_clk引脚为PIN_M2,先用鼠标点击sys_clk信号名Location下面的空白位置,可以选择PIN_M2,也可以直接输入M2接下来按下回车键。
Quartus II软件的安装和使用12426.png
图 4.3.31 引脚分配完成界面
引脚分配完成后,直接关闭引脚分配窗口,软件会在工程所在位置生成一个.qsf文件用来存放引脚信息。当然我们也可以生成一个TCL文件,这样下次在使用的时候就可以直接运行TCL文件自动分配引脚。在资料盘新起点资料盘(A盘)\3_正点原子新起点原理图\PIONNER_IO给大家提供了所有例程的TCL,大家可以根据需求修改TCL文件,然后将TCL文件加入工程中运行它,如下图所示:
Quartus II软件的安装和使用12676.png
图 4.3.32 添加TCL文件
先点击“Project”然后选择“Add/Remove Files in Project”,随后弹出如下图所示界面:
Quartus II软件的安装和使用12797.png
图 4.3.33 选择要添加的文件
在上图界面中点击“…”然后弹出选择文件窗口如下图所示:
Quartus II软件的安装和使用12888.png
图 4.3.34 选择文件
在上图的窗口中找到我们存放TCL的路径(大家可以把TCL文件从资料盘中拷贝出来放到自己的工程文件夹中,注意我们提供的TCL文件是包含所有例程的引脚分配的,大家使用单个例程时要把其他多余的引脚删除掉),找到事先写好的TCL文件,选中它并把它加入到工程,如下图所示:
Quartus II软件的安装和使用13079.png
图 4.3.35 将TCL文件添加到工程
按上图所示步骤添加完TCL文件后我们就可以运行它了,如下图所示:
Quartus II软件的安装和使用13178.png
图 4.3.36 运行TCL文件
按照上图所示的步骤操作完后会出现TCL文件运行窗口如下图所示:
Quartus II软件的安装和使用13272.png
图 4.3.37 运行TCL文件
如上图所示选中我们添加的TCL文件,然后点击“Run”。这样我们的引脚就自动分配好了,这里要注意代码中的端口名和TCL文件中定义的是否一致,尤其要注意大小写。
4.3.6编译工程
我们分配完引脚之后,需要对整个工程进行一次全编译,我们在工具栏中选择【Start Compilation】图标,操作界面如图 4.3.38所示。
Quartus II软件的安装和使用13516.png
图 4.3.38 全编译操作界面
编译完成后的界面如图 4.3.39所示。
Quartus II软件的安装和使用13623.png
图 4.3.39 全编译完成界面
在图 4.3.39界面中,左侧编译流程窗口全部显示打钩,说明工程编译通过,右侧Flow Summary观察FPGA资源使用的情况。
4.3.7下载程序
编译完成后,我们就可以给开发板下载程序,来验证我们的程序能否正常运行。图 4.3.40为新起点硬件连接图。首先我们将USB Blaster下载器一端连接电脑,另一端与开发板上的JTAG接口相连接;然后连接开发板电源线,并打开电源开关。
Quartus II软件的安装和使用13922.png
图 4.3.40 开发板实物图
接下来我们在工具栏上找到【Programmer】按钮或者选择菜单栏【Tools】→【Programmer】,操作界面如图 4.3.41所示。
Quartus II软件的安装和使用14079.png
图 4.3.41 打开程序下载操作
程序下载界面如图 4.3.42所示。
Quartus II软件的安装和使用14185.png
图 4.3.42 程序下载界面
点击上图页面中的【Hardware Setup...】按钮,选择“USB-Blaster”,如图 4.3.43所示界面。
Quartus II软件的安装和使用14331.png
图 4.3.43 选中USB-Blaster
在图 4.3.43的界面中,如果大家的软件中没有出现USB-Blaster,请检查下是不是USB-Blaster没有插入到电脑的USB接口。
然后点击Close按钮完成设置,接下来回到下载界面,点击【ADD File...】按钮,添加用于下载程序的sof文件,如图 4.3.44和图 4.3.45所示。
Quartus II软件的安装和使用14623.png
图 4.3.44 程序下载界面
Quartus II软件的安装和使用14684.png
图 4.3.45 选择sof文件
找到“output_files”下面的“flow_led.sof”文件点击【Open】即可。
接下来我们就可以下载程序了,点击【Start】按钮下载程序,操作界面如图 4.3.46所示。
Quartus II软件的安装和使用14864.png
图 4.3.46 程序下载界面
下载程序时,我们可以在Process一栏中观察下载进度,程序下载完成后,可以看到下载进度为100%,如图 4.3.47所示。
Quartus II软件的安装和使用15012.png
图 4.3.47 程序下载完成界面
下载完成之后,我们可以看到开发板上的LED0~LED3按顺序点亮,呈现出流水灯的效果。如图 4.3.48所示。
Quartus II软件的安装和使用15155.png
图 4.3.48 流水灯实验效果图
4.3.8固化程序
这里下载的程序是.sof文件格式,开发板断电后程序将会丢失。如果我们想要程序断电不丢失的话,就必须将程序保存在开发板的片外Flash中,Flash的引脚是和FPGA固定的引脚相连接,FPGA会在上电后自动读取Flash中存储的程序,这个过程不需要我们编写驱动代码和人为干预,只需要通过JTAG下载jic文件即可。需要注意的是,jic文件不是软件自动生成的,而是需要我们手动的将sof文件转换成jic文件。首先在Quartsu软件的菜单栏【File】→【Convert Programming Files…】,操作界面如图 4.3.49和图 4.3.50所示。
Quartus II软件的安装和使用15551.png
图 4.3.49  Quartus软件界面
Quartus II软件的安装和使用15618.png
图 4.3.50 sof文件转换jic文件窗口
首先修改“programming file type”为【JTAG Indirect ConfigurationFile (.jic)】;然后修改“Configuration device”为【EPCS16】(新起点开发板Flash型号为W25Q16,完全兼容EPCS16);然后选中窗口中的“Flash Loader”点击右边的【Add Device..】按钮出现如图 4.3.51所示界面。
Quartus II软件的安装和使用15909.png
图 4.3.51 器件选择界面
选择开发板器件(这里我们新起点开发板为Cyclone IV E EP4CE10)点击【OK】按钮。然后选中“SOF Data”,点击右边的按钮【Add file….】如图 4.3.52和图 4.3.53所示界面。
Quartus II软件的安装和使用16125.png
图 4.3.52 添加sof操作页面
Quartus II软件的安装和使用16189.png
图 4.3.53 添加Sof文件
找到“output_files”下面的“flow_led.sof”文件点击【Open】即可。最后完成所有设置界面如图 4.3.54所示。
Quartus II软件的安装和使用16344.png
图 4.3.54 最终完成设置
点击【Generate】按钮出现如图 4.3.55所示:
Quartus II软件的安装和使用16458.png
图 4.3.55 转换成功
点击【OK】,这时.jic文件就已经生成了,关闭“Convert Programming File”页面。点击菜单栏【Tools】下的【Programmer】(如果下载界面关闭了的话),选中.sof文件,点击左侧按钮【Delete】删去之前添加的sof文件,如图 4.3.56所示。
Quartus II软件的安装和使用16683.png
图 4.3.56 删除sof文件
点击左边的【Add File..】找到“output_files”文件下的“output_file.jic”,如图 4.3.57和图 4.3.58所示。
Quartus II软件的安装和使用16870.png
图 4.3.57 添加jic文件
Quartus II软件的安装和使用16932.png
图 4.3.58 打开JIC文件界面
添加完成后发现【start】不能点击,需要在【Program/Configure】方框下面点击打勾。如图 4.3.59所示。
Quartus II软件的安装和使用17083.png
图 4.3.59 程序下载界面
点击【Start】,开始固化程序,当下载进度显示100%之后,即可固化成功。我们把开发板电源关闭,然后再一次打开开发板电源,可以看到,LED又呈现出了流水灯的效果。
如果需要擦除Flash中的程序的话,可以通过勾选【Erase】下面的方框来擦除程序。需要注意的是,如果已经勾选了【Program/Configure】方框,是无法勾选【Erase】方框的,所以先取消勾选【Program/Configure】,然后再勾选【Erase】,如图 4.3.60和图 4.3.61所示。
Quartus II软件的安装和使用17431.png
图 4.3.60 取消勾选【Program/Configure】
Quartus II软件的安装和使用17509.png
图 4.3.61勾选【Erase】
当点击勾选【Erase】方框后,【Program/Configure】下面第一个方框也会自动勾选,这个时候点击【Start】即可开始擦除程序。
4.3.9创建时序约束文件
通过上文的讲解我相信大家现在已经基本学会了如何使用Quartus软件了。接下来再向大家介绍一下时序约束文件的建立。
可能有人要问了,为什么要创建时序约束文件?我通过上文的步骤已经把工程跑起来了呀,功能都是正常的呀,确实对于一些简单的工程时序的要求并不是特别的严格,添不添加时序约束文件影响不大。但是对于一些复杂的工程,涉及到高频时钟,多个时钟信号,跨多个时钟域等等时序比较混乱的工程添加时序约束文件就很有必要了,不添加时序约束极有可能会导致功能不正常或者时而正常时而不正常。
那什么是时序呢,简单的讲就是时钟与数据的关系,这里我们要引入“建立时间”和“保持时间”这两个概念。大家要明白,FPGA内部是有大量的触发器的,而“建立时间”和“保持时间”就是针对触发器来讲的。要想完成一次数据的正确采样,那么就必须满足“建立时间”和“保持时间”的要求,那么什么是“建立时间”和“保持时间”呢,我们先看下图:
Quartus II软件的安装和使用18053.png
图 4.3.62 时序图(图片来源于网络)
上图中的Tsu就是建立时间,它是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被稳定的打入触发器,Tsu就是指这个最小的稳定时间。而保持时间是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被稳定的打入触发器,Th就是指这个最小的保持时间。
因此我们在开发工程时一定要注意这两个时间,切忌在数据亚稳态时对数据进行采样,那么采样的数据就不准确。当然时序约束不仅仅如此,还需要考虑各个触发器的延时时间,例如数据需要从寄存器1传向寄存器2,那么假设在寄存器1进行触发时数据被准确采样,当数据从寄存器1出来是需要一定延时的,延时完成后我们再经过组合逻辑处理又会进一步延时,再之后到达寄存器2进行采样,这个时候我们就需要考虑寄存器2时钟的上升沿到来前我们的数据是否已经保持稳定并且能够满足建立时间,如果不满足那么寄存器2极有可能是在数据处于亚稳态的时候对数据进行了采样那么数据是不准确。
上文所述的是寄存器与寄存器之间的数据与时钟的关系,还有输入到输出之间、输入到寄存器之间、寄存器到输出之间以及异步清零和时钟异步进入退出等时序都需要严格的约束,否则整个工程时序混乱会导致数据错误,从而导致功能不稳定,甚至功能直接不正常。
下面就来带领大家一起创建时序约束文件,这里我们仅仅只约束一下系统时钟,给大家做个示范,更复杂的时序约束文件大家也可以自己去查找相关的资料学习。这里还以流水灯为例,我们先打开流水灯的例程。然后点击Tools选中TimeQuest Timing Analyer如下图所示:
Quartus II软件的安装和使用18809.png
图 4.3.63 打开TimeQuest Timing Analyer工具
之后进入如下界面:
Quartus II软件的安装和使用18902.png
图 4.3.64 TimeQuest Timing Analyer界面
然后我们创建一个文件格式为.SDC的约束文件,步骤如下图所示:
Quartus II软件的安装和使用19015.png
图 4.3.65 创建SDC文件
创建好SDC文件后我们回到工程,可以看到工程里已经出现一个空白的SDC文件,如下图所示:
Quartus II软件的安装和使用19122.png
图 4.3.66 创建好的SDC文件
接下来我们就可以在这个空白约束文件中编写约束语句了,关于Altera FPGA的时序约束语句有很多,有针对输入时钟的,针对IO引脚的,针对锁相环的等等,在这里就不全部给大家介绍了,毕竟这里仅仅只是教大家学会使用软件,而不是时序专栏讲解。这里我们仅仅做一个输入时钟的约束给大家看一下,做个示例。
我们在空白的SDC文件中输入: create_clock -name sys_clk -period 20.0 [get_ports sys_clk]。这条语句就是创建一个时钟( create_clock),这个时钟的名字是sys_clk(-name sys_clk,注意这里的名字是可以随意起的,但是建议大家命名的时候可以一眼看出其含义),这个时钟的周期是20ns(-period 20.0,这里大家要注意如果没有约束占空比,那么默认50%的占空比),映射到工程的sys_clk端口上(get_ports sys_clk,这里映射的端口就是工程的实际端口了,这里代表输入的系统时钟)。这样我们就把输入时钟约束好了,他就是一个严格的50Mhz标准时钟。
写好后的约束文件如下图所示:
Quartus II软件的安装和使用19675.png
图 4.3.67 约束文件
写好后我们保存约束文件,并重新生成sof文件即可,这样我们的工程就约束好了,关于更多的约束大家可以去官网下载官方手册学习,方法都是一样的,创建时序约束文件就给大家讲解到这里了。
4.4SignalTap 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”来打开工程,如下图所示页面。
Quartus II软件的安装和使用20445.png
图 4.4.1 打开工程
打开后的工程如图 4.4.2所示。
Quartus II软件的安装和使用20546.png
图 4.4.2 Quartus软件打开界面
在Quartus软件界面的菜单栏中,点击【Tool】→【SignalTap II Logic Analyzer】,操作界面如图 4.4.3所示。
Quartus II软件的安装和使用20711.png
图 4.4.3 打开SignalTap操作界面
接下来会弹出如图 4.4.4所示页面。
Quartus II软件的安装和使用20825.png
图 4.4.4 SignalTap软件界面
从SignaTap II软件界面中我们可以看出,它主要有例化管理器、JTAG链配置、信号配置、数据日志、分层显示、节点列表和触发条件组成。接下来我们添加需要观察的信号,双击节点列表和触发条件的空白区域,得到如图 4.4.5所示页面。
Quartus II软件的安装和使用21034.png
图 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所示。
Quartus II软件的安装和使用21354.png
图 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所示。
Quartus II软件的安装和使用21850.png
图 4.4.7 信号配置图
在信号配置页面Clock一栏中,点击右侧的【...】按钮,点击后弹出的页面如图 4.4.8所示。
Quartus II软件的安装和使用21983.png
图 4.4.8 节点发现器页面
这个页面和添加待观察信号的页面一样,我们将系统时钟(sys_clk)作为采样数据的时钟添加至Selected Nodes一栏中,然后点击【OK】按钮。接下来需要设置采样的深度,我们在信号配置页面Sample depth一栏中将采样深度设置为2K,这里采样深度的值越大,所能观察信号的时间范围也就越长,但同时所消耗的FPGA RAM资源也就越大,设置后的界面如图 4.4.9所示。
Quartus II软件的安装和使用22259.png
图 4.4.9 信号配置图
接下来保存我们的分析文件,点击SignalTap软件菜单栏的【File】→【Save】,如图 4.4.10和图 4.4.11所示。
Quartus II软件的安装和使用22434.png
图 4.4.10 保存分析文件
Quartus II软件的安装和使用22495.png
图 4.4.11 保存分析文件的路径和命名
我们将分析文件保存在工程所在路径par文件夹下,然后点击【保存】按钮。接下来会弹出是否将分析文件添加至工程的页面,我们直接点击【YES】,如图 4.4.12所示。
Quartus II软件的安装和使用22669.png
图 4.4.12 分析文件添加至工程确认页面
我们返回到Quartus软件界面,在工程文件导航窗口可以看到File一栏多了一个stp1.stp文件,这个文件就是我们刚才添加至工程中的分析文件,如图 4.4.13所示。接下来我们需要对工程进行全编译。
Quartus II软件的安装和使用22864.png
图 4.4.13 Quartsu软件界面
工程编译完成后,首先将USB Blaster下载器一端连接电脑,另一端连接开发板的JTAG接口,然后连接开发板的电源线,并打开电源开关。接下来我们重新回到SignalTap软件界面,我们在JTAG链配置窗口中点击【Setup】找到USB-Blaster[USB-0],这时我们在点击【Scan Chain】则会出现如图 4.4.14所示页面。
Quartus II软件的安装和使用23127.png
图 4.4.14 JTAG链配置页面
从该图中我们可以看出,SignalTap软件已经成功识别到我们的下载器和开发板芯片(如果没有识别到,请检查电脑和开发板是否通过USB Blaster连接完成,并且开发板电源已经打开)。接下来我们给开发板下载程序,这里需要注意的是,SignalTap软件也是可以给开发板下载程序的,同样也是在JTAG链配置页面的SOF Manager一栏中,点击【...】按钮,选择工程所在路径output_files文件夹下的flow_led.sof,选中后点击Open按钮,如图 4.4.15所说页面。
Quartus II软件的安装和使用23461.png
图 4.4.15 JTAG链配置页面
接下来点击图 4.4.15所示的下载程序按钮下载程序,程序下载完后,点击SignalTap软件工具栏中的开始分析图标,操作界面如图 4.4.16所示。
Quartus II软件的安装和使用23651.png
图 4.4.16 SignalTap工具栏图标
上图中第一个图标表示只运行一次;第二个图标表示自动运行,也就是会一直刷新采样的波形;第三个图标表示停止运行。我们点击第一个开始运行图标即可采集到数据,如图 4.4.17所示。
Quartus II软件的安装和使用23833.png
图 4.4.17 SignalTap采集到的数据波形图
图 4.4.17是采集到的波形图,可以通过点击和右击波形图的方式进行放大和缩小,数据默认是以16进制显示的,为了方便观察数据,我们将格式改成无符号的十进制。操作方式是选中counter信号名,右击选择【Bus Display Format】→【Unsigned Decimal】,如图 4.4.18和图 4.4.19所示。
Quartus II软件的安装和使用24143.png
图 4.4.18 更改数据显示格式
Quartus II软件的安装和使用24206.png
图 4.4.19 SignalTap采集到的数据波形图
SignalTap软件支持通过设置触发方式来采集波形,在SignalTap信号列表Setup一栏中,右击sys_rst_n信号的Trigger Conditions方框内的图标,如图 4.4.20所示。
Quartus II软件的安装和使用24406.png
图 4.4.20 SignalTap触发方式设置页面
图 4.4.20中,Don’t Care表示不关心,即不设置触发方式;Low表示低电平触发;Falling Edge表示下降沿触发;Rising Edge表示上升沿触发;High表示高电平触发;Either Edge表示双沿触发。由于按键复位信号在未按下是高电平,按下之后变为低电平,所以这里设置为下降沿触发方式,然后点击【Data】一栏,返回到波形显示页面。
再次点击工具栏中的运行一次的工具按钮,SignalTap软件界面如图 4.4.21所示。
Quartus II软件的安装和使用24754.png
图 4.4.21 SignalTap软件界面
这时我们可以看到,由于SignalTap软件一直等不到复位按键按下,所以它也一直不能触发,直到我们按下复位按键之后,它便能采样到下降沿,从而进行触发。这里我们按下复位按键,如图 4.4.22所示。
Quartus II软件的安装和使用24946.png
图 4.4.22 SignalTap II 复位按键触发采样波形
这时我们可以看到,SignalTap软件进行了触发,然后我们分析波形可以看到,当复位按键按下以后,counter计数器变为0,led变为初始状态1h(2’b01),这和我们的代码是一致的。这里我们需要说明的是SignalTap支持的触发条件除电平、边沿等触发条件外,也可以对counter计数器设置具体的值来触发,大家可以试一试。如果两个或者以上的信号都设置了触发条件,那么最终仅仅当这些条件同时满足时,采样才执行。
到这里SignalTap软件的使用就讲解完了,如果大家调试好后不想要SignalTap的调试文件跟着工程一起编译了(SignalTap的调试文件编译会占用大量资源)可以直接从工程中把.stp文件删除,或者点击Assignments打开setting找到SignalTap的使能开关,把它关掉即可,如下图所示:
Quartus II软件的安装和使用25389.png
图 4.4.23 关闭SignalTap使能
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 19:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表