Quartus ii 软件的使用
一、开发工程
1.新建工程
选择一个路径作为工程存放位置,然后在工程文件夹创建4个子文件夹,分别命名为: doc、par、rtl和sim。 doc文件夹用于存放项目相关的文档, par文件夹用于存放Quartus软件的工程文件,rtl文件夹用于存放源代码, sim文件夹用于存放项目的仿真文件。
打开Quartus ii 软件,在菜单栏上选择【 File】→【 New Project Wizard…】来新建一个工程,
新建工程向导说明页面如图
在“ Introduction”介绍页面中,我们可以了解到在新建工程的过程中要完成以下五个步骤:
1、 工程的命名以及指定工程的路径;
2、 指定工程的顶层文件名
3、 添加已经存在的设计文件和库文件
4、 指定器件型号
5、 EDA工具设置
单击上图页面下面的【 Next>】按钮进入下图
第一栏用于指定工程所在的路径;第二栏用于指定工程名,建议直接使用顶层文件的实体名作为工程名;第三栏用于指定顶层文件的实体名。这里设置的工程路径为D:/Data/FPGA/verilog/led/par文件夹,工程名与顶层文件的实体名同为led。文件名和路径设置完毕后,单击【 Next】按钮,进入下一个页面
这里选择创建一个空的工程,单击【 Next】按钮,进入下一个页面
可以通过点击【 …】 符号按钮添加已有的工程设计文件( Verilog或 VHDL文件),由于这里是一个完全新建的工程,没有任何预先可用的设计文件,所以不用添加,直接单击【 Next】按钮
根据实际所用的FPGA型号来选择目标器件,我使用的是开拓者FPGA开发板主芯片是Cyclone IV E系列的“ EP4CE10F17C8”,所以在Device Family一栏中选择“ Cyclone IV E” 。Cyclone IV E系列的产品型号较多,为了方便在Available device一栏中快速找到开发板的芯片型号,在Package一栏中选择FBGA封装, Pin Count选择256引脚, Speed grade速度等级一栏中选择8, 之后在可选择的器件中只能看见符合要求的芯片型号了。
在“ EDA Tool Settings”页面中,可以设置工程各个开发环节中需要用到的第三方EDA工具,比如:仿真工具Modelsim、综合工具Synplify。这里并没有使用任何的EDA工具,所以此页面保持默认不添加第三方EDA工具,直接单击【 Next>】
该界面可以看到工程文件配置信息报告,接下来点击【 Finish】完成工程的创建。
可以在工程文件导航窗口中看到刚才新建的led工 程 , 如果需要修改器件的话 ,直接双击工程文件导航窗口中的 “Cyclone IVE:EP4CE10F17C8” 即可。
2.设计输入
创建工程顶层文件,在菜单栏中找到【 File】→【 New】
由于使用Verilog HDL语言来作为工程的输入设计文件,所以在Design Files一栏中选择Verilog HDL File
然后会出现一个Verilog1.v文件的设计界面,用于输入Verilog代码
接下来就可以编写代码了。以流水的代码为例如下:
然后保存源文件,将存放的路径修改为rtl文件夹下。
可以在工程文件导航窗口File一栏中找到新建的led.v文件。
3.配置工程
在工程中,需要配置双用的管脚。首先在 Quartus软件的菜单栏中找到【 Assignments】→【 Device...】
该页面就是可以重新选择器件页面,然后点击【 Device and Pin Options】 按钮, 会弹出一个设置页面,在左侧Category一栏中选择Dual-Purpose Pin。对于需要使用EPCS器件的引脚时,需要将下图页面中所有的引脚都改成Use as regular IO,如果大家不确定工程中是否用到EPCS器件时,可以全部修改。
该页面就是可以重新选择器件页面,然后点击【 Device and Pin Options】 按钮, 会弹出一个设置页面,在左侧Category一栏中选择Dual-Purpose Pin。对于需要使用EPCS器件的引脚时,需要将下图页面中所有的引脚都改成Use as regular IO,如果大家不确定工程中是否用到EPCS器件时,可以全部修改
3.分析与综合
为了验证代码是否正确,可以在工具栏中选择【 Analysis & Synthesis】图标来验证语法是否正确,也可以对整个工程进行一次全编译,即在工具栏中选择【 Start Compilation】图标, 不过全编译的时间耗时会比较长。 接下来我们对工程进行语法检查,点击工具栏中的【 Analysis & Synthesis】图标。
在编译过程中如果没有出现语法错误,编译流程窗口【 Analysis & Synthesis】 前面会变成对勾,表示编译通过。
4.分配引脚
编译通过以后,接下来我们就需要对工程中输入、输出端口进行管脚分配。可以在菜单栏中点击【 Assignments】→【 Pin Planner】或者在工具栏中点击【 Pin Planner】的图标。
如图
可以看到该界面出现了6个端口分别是4个LED、时钟和复位,可以参考原理图来对引脚进行分配
FPGA_CLK连接FPGA的引脚E1和晶振, RESET连接FPGA的引脚M1和复位按键,所以在
对引脚进行分配时,输入的时钟sys_clk引脚分配到E1, sys_rst_n引脚分配到M1, LED的引脚
查看方法同理,如图
引脚分配完成后, 直接关闭引脚分配窗口, 软件会在工程所在位置生成一个.qsf文件用来存放引脚信息。
5.编译工程
分配完引脚之后, 需要对整个工程进行一次全编译,我们在工具栏中选择【 Start Compilation】 图标。
编译完成后如下
左侧编译流程窗口全部显示打钩,说明工程编译通过, 右侧FlowSummary观察FPGA资源使用的情况。
6.程序的下载与固化
在工具栏上找到【 Programmer】按钮或者选择菜单栏【 Tools】→【 Programmer】,
点击上图页面中的【 Hardware Setup...】按钮,选择“ USB-Blaster”
然后点击Close按钮完成设置,接下来回到下载界面,点击【 ADD File...】按钮,添加用于下载程序的sof文件
找到“ output_files”下面的“ flow_led.sof”文件点击【 Open】即可。
下载成功后如图所示。
下载.sof文件格式,开发板断电后程序将会丢失。如果想要程序断电不丢失的话,就必须将程序保存在开发板的片外Flash中, Flash的引脚是和FPGA固定的引脚相连接, FPGA会在上电后自动读取Flash中存储的程序,只需要通过JTAG下载jic文件即可。 jic文件不是软件自动生成的, 而是
需要手动的将sof文件转换成jic文件。在菜单栏【 File】→【 Convert Programming Files…】
首先修改“ programming file type”为【 JTAG Indirect ConfigurationFile (.jic)】;然后修改“ Configuration device”为【 EPCS16】 (开拓者开发板Flash型号为M25P16,完全兼容EPCS16);
然后选中窗口中的“ Flash Loader”点击右边的【 Add Device..】按钮出现如图
选择开发板器件(这里我们开拓者开发板为Cyclone IV E EP4CE10)点击【 OK】按钮
然后选中“ SOF Data”,点击右边的按钮【 Add file….】,找到“ output_files”下面的“ flow_led.sof”文件点击【 Open】即可。
最后配置如图:
点击【 Generate】 按钮,如图
所以 .jic文件就已经生成了,关闭“ Convert Programming File”页面。点击菜单栏【 Tools】下的【 Programmer】(如果下载界面关闭了的话),选中.sof文件, 点击左侧按钮【 Delete】 删去之前添加的sof文件。
添加下载.jic文件,需要在【 Program/Configure】方框下面点击打勾
点击【 Start】,开始固化程序,当下载进度显示100%之后,即可固化成功。
如果需要擦除Flash中的程序的话, 可以通过勾选【 Erase】下面的方框来擦除程序。需要注意的是,如果已经勾选了【 Program/Configure】方框,是无法勾选【 Erase】方框的,所以先取消勾选【 Program/Configure】,然后再勾选【 Erase】。
当点击勾选【 Erase】方框后,【Program/Configure】下面第一个方框也会自动勾选,这个时候点击【 Start】即可开始擦除程序。
二、SignalTap的使用
SignalTap II全称SignalTap II Logic Analyzer,是第二代系统级调试工具,可以捕获和显示实时信号,是一款功能强大且极具实用性的FPGA片上调试工具软件。SignalTap II可以选择要捕获的信号、捕获的触发方式以及捕获的数据样本深度,实时数据提供给工程师帮助debug。
在菜单栏中,点击【 Tool】→【 SignalTap II Logic Analyzer】,ru如图
从SignaTap II软件界面中我们可以看出,它主要有例化管理器、 JTAG链配置、 信号配置、数据日志、分层显示、节点列表和触发条件组成。
添加需要观察的信号, 双击节点列表和触发条件的空白区域。
点击【 List】按钮,此时Nodes Found一栏就会出现工程代码中的信号,然后将counter、sys_rst_n和led添加至右侧一栏中,添加方法是直接双击左侧一栏的信号名,如果需要删除的话,可以直接双击右侧一栏的信号名, 接下来我们点击【 insert】按钮。
如果发现添加的信号变成了红色,或者有些reg与wire定义的信号可以观察,有些不可以, 这是因为reg与wire被Quartus软件优化掉了,导致无法使用SignalTap观察。
方法1:将reg与wire信号改成输出端口信号, 但这种方式较为繁琐
方法2:在待观察的wire信号旁边加上/*synthesis keep*/; 对于reg信号则加/*synthesis noprune*/
在信号配置页面中,添加采样时钟
这个页面和添加待观察信号的页面一样, 将系统时钟( sys_clk) 作为采样数据的时钟添加至Selected Nodes一栏中, 然后点击【 OK】 按钮。
接下来需要设置采样的深度,信号配置页面Sample depth一栏中将采样深度设置为2K, 这里采样深度的值越大, 所能观察信号的时间范围也就越长,但同时所消耗的FPGA RAM资源也就越大。
保存分析文件,点击SignalTap软件菜单栏的【 File】→【 Save】。将分析文件保存在工程所在路径par文件夹下, 然后点击【 保存】 按钮。 接下来会弹出是否将分析文件添加至工程的页面, 直接点击【 YES】。
返回到Quartus软件界面, 在工程文件导航窗口可以看到File一栏多了一个stp1.stp文件,这个文件就是刚才添加至工程中的分析文件。
接下来需要对工程进行全编译, 全编译的工具栏图标, 开始编译工程。工程编译完成后,连接开发板,回到SignalTap软件界面。
在JTAG链配置窗口中点击【 Setup】找到USB-Blaster[USB-0]。
SignalTap软件也是可以给开发板下载程序的,同样也是在JTAG链配置页面的SOF Manager一栏中,点击【 ...】 按钮,选择工程所在路径output_files文件夹下的led.sof,选中后点击Open按钮。
下载程序按钮下载程序,程序下载完后,点击SignalTap软件工具栏中的开始分析图标。
第一个图标表示只运行一次; 第二个图标表示自动运行, 会一直刷新采样的波形; 第三个图标表示停止运行。点击第一个开始运行图标即可采集到数据。
可以通过点击和右击波形图的方式进行放大和缩小,数据默认是以16进制显示的, 为了方便观察数据,我们将格式改成无符号的十进制。操作方式是选中counter信号名,右击选择【 Bus Display Format】 →【 Unsigned Decimal】
SignalTap软件支持通过设置触发方式来采集波形, 在SignalTap信号列表Setup一栏中,
右击sys_rst_n信号的Trigger Conditions方框内的图标
Don’t Care表示不关心,即不设置触发方式; Low表示低电平触发; Falling Edge表示下降沿触发; Rising Edge表示上升沿触发; High表示高电平触发; Either Edge表示双沿触发。
小结
Quartus软件的使用流程:
首先打开Quartus软件, 然后新建一个工程,在新建工程的时候,可以通过创建工程向导的方式来创建工程;工程建立完成后,需要新建一个Verilog顶层文件, 然后将设计的代码输入到新建的Verilog顶层文件中,并对工程进行配置;接下来就可以对设计文件进行分析与综合了, 此时Quartus软件会检查代码,如果代码出现语法错误,那么 Quartus软件将会给出相关错误提示,如果代码语法正确, Quartus软件将会显示编译完成;工程编译完成后,还需要给工程分配引脚,引脚分配完成后, 接下来就开始编译整个工程了;在编译过程中, Quartus软件会重新检查代码,如果代码及其它配置都正确后,Quartus软件会生成一个用于下载至FPGA芯片的.sof文件。 最后,通过下载工具将编译生成的.sof文件下载至开发板,完成整个开发流程。
Quartus ii 软件的使用相关推荐
- 基于Quartus II软件FPGA与PC之间的串行通信系统开发(9000+字)
1.简介与仿真结论 随着集成电路技术的发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域.电子设计自动化是一种实现电子系统或电子产品自动化设计的技术,它与 ...
- 基于Quartus II 软件(VHDL)设计
目录 一,基于 Quartus II 的数字系统设计流程 二,Quartus II 软件使用介绍 1. 建立工程 2. 设计输入 3. 编译 4. 时序仿真 quartus ii 安装请参考: Qua ...
- 基于Quartus II软件的FPGA综合实验——多功能数字钟
有很多自制元器件,内部电路附在文章中 文章目录 前言 一.设计要求 二.设计原理 三.设计过程 1.数码管扫描模块 2.计时模块 3.闹钟模块 4.闹钟响铃模块 5.数码管显示模块 6.整点报时功能 ...
- Quartus II 软件编写程序及烧录步骤
Quartus II 软件编写程序及烧录步骤 最近刚开始接触这个软件,这次详细记录了部分使用步骤,当做备忘录.
- FPGA新起点V1开发板(二)——Quartus II软件的安装和USB-BLaster驱动安装
文章目录 一.Quartus II软件的安装 二.USB-BLaster驱动安装 一.Quartus II软件的安装 当然,这种东西我要是再写一遍就很无聊了,这里给出方法和连接 视频:Quartus ...
- Quartus ii 软件仿真基本流程(使用VHDL)
文章首发于我的个人博客 这是VHDL系列教程的第一个教程.所谓教程,其实也就是记录我本人在学习过程中遇到的问题和学习内容的笔记,分享在这里供其他初学者参考,如果博客中出现任何错误或不严谨的地方,您可以 ...
- 【EDA实验一】Quartus II 软件和 DE2-115 开发板 使用入门实验
Quartus II 软件和 DE2-115 开发板 使用入门实验 文章目录 一.实验目的 二.实验任务及要求 三.实验原理与步骤 四.实验结果与分析 一.实验目的 熟悉 Quartus II 开发环 ...
- Quartus II软件添加设备
文章目录 前言 一.前期准备 二.进入网站并下载对应的.qdz文件 1.先进入Intel主页并登录账号 2.找到下载地址 Quartus软件中添加设备 前言 最近为了调试Cyclone V系列的一个F ...
- Quartus II 软件和 DE2-115 开发板使用入门
文章目录 一.实验目的 二.实验任务及要求 三.实验原理与步骤 1.实验原理 2.实验步骤 3.源程序清单以及注释 四.实验结果与分析 一.实验目的 1.熟悉 Quartus II 开发环境,掌握原理 ...
最新文章
- 课程第五天内容《基础交换 五》
- mysql java orm_ObjectiveSQL(Java ORM) 之 MySQL 实战
- 如何从机器学习数据中获取更多收益 1
- python ssd目标检测_解读目标检测之SSD:Single Shot MultiBox Detector
- PHP九宫格翻牌抽奖,PHP 九宫格抽奖代码
- Android自定义View【实战教程】5⃣️---Canvas详解及代码绘制安卓机器人
- NOKIA PC 套件导入(import)CSV格式联系人列表
- U3D连接Steamworks SDK制作成就系统
- java pv uv_使用Spark计算PV、UV
- 用云真机测试本地应用程序
- java chr()_chr码值对应列表大全
- 反转单链表(C语言)
- Java中的日期与时间
- PhotoShop永久序列号
- 过期域名查询php程序,一个域名查询的程序
- 安卓手机怎么设置蓝牙耳机弹窗动画_链接重推其他团无线蓝牙耳机
- 智慧书——永恒的处世经典 (序)
- Chrome访问剪切板实现右键复制粘贴
- linux如何运行sshpass,sshpass命令常用使用操作
- 阿里妈妈账号登录状态如何长时间保存
热门文章
- CRM(客户关系管理)应用与理论研究综述
- 学习Unix域套接字总结
- python print输出省略号
- matlab利用图片矩阵画图,matlab 根据邻接矩阵作图【借鉴实操】
- NAND Flash的基本操作——读、写、擦除
- R中排序函数总结:sort,order,rank,arrange,reorder
- hdu5807Keep In Touch
- Symantec Backup Exec配置Tape Library Simulator虚拟磁带库
- python extend_也谈python列表append和extend的区别
- 学了计算机专业英语感悟,浅谈计算机专业英语的学习