《FPGA全程进阶---实战演练》第四章之Quartus II使用技巧
技巧1:“新”技能 hierarchies警告寻找
在编译之后,警告中“hierarchies”这个单词大家估计都很熟悉了,一看到这个警告,基本上就是例化时出现的问题。一般例化时,要是哪个连线没引出,没接上,或者是位宽不匹配就会出这个警告。而我们一般就会定位到例化文件,或者是观察RTL视图去寻找,但是工程一大可不是那么好找的啊!
Warning: 1 hierarchies have connectivity warnings - see the Connectivity Checks report folder
解决方法如下:
点击图6.1中的图标,然后在Analysis & Synthesis 文件中找到 connectivity checks,如图6.2所示,点击即可查看到说明例化时哪里出现问题。
图6.1 操作(一)
图6.2 操作(二)
技巧2:位宽不匹配
在很多对reg变量进行赋值时,往往会遇到位宽不匹配的情况,如图6.3所示。其中前面括号中的数字代表在程序中所在的行标,说明赋值是32位宽,被赋值为1位宽,也就是将32位宽进行截断去匹配1位宽。若是在程序中知道确实是赋值reg类型变量是一位一位传送的,可以不用关注此警告,如图6.4所示的程序。可以看到确实需要赋值reg变量中的一位即可。若是想消除此警告,可以利用图6.5所示的修改程序。即将0改成1’b0即可,Quartus中若是对变量不进行赋位数,按32位处理。编译后的结果如图6.6所示。
图6.3 位宽不匹配
图6.4 源程序
图6.5修改后的程序
图6.6编译后的结果
技巧3:tcl文件的利用
在引脚分配时,往往对于一个浩大的工程来说,引脚数量是很多的,若是一个一个去分配,费时费力,劳民劳财,其实可以利用tcl文件,只需更改几个信号说明就可以。如图6.7所示,图中标注的更改成模块中所用的信号名字即可。图6.8是quartus ii中的操作步骤,点击Tcl scripts,再点击图6.9中所出现的位置,即可。图6.10是pin planner中分配情况。
图6.7 tcl文件
图6.8 quartus ii中的操作(一)
图6.9 quartus ii中的操作(二)
图6.10 pin planner分配情况
技巧4:jic固化文件的生成
点击file ---- convert programming file,出现如图6.11所示的界面。在programming file type中选择.jic,在configuration device中选择 EPCS4(这个根据你使用板卡的配置芯片选择,笔者设计的是EPCS4),然后在选择图6.12中的flash loader,点击device,然后选择器件类型,笔者设计的是EP3C5芯片。在选择 sof data,将sof文件加载过来,点击 generate出现生成成功界面。然后打开工程目录下中的output files就可以看到所生成的jic文件,如图6.14所示。然后再进入到编程下载界面,如图6.15所示,点击add file,将刚才生成的jic文件加载过来,如图6.16所示,将原sof文件删掉,并选择 program/configure,点击start即可,然后重新上电观察效果。
图6.11 配置界面(一)
图6.12 配置界面(二)
图6.13 配置界面(三)
图6.14 生成的jic文件
图6.15 下载界面
图6.16 添加jic文件
《FPGA全程进阶---实战演练》第四章之Quartus II使用技巧的更多相关文章
- 《FPGA全程进阶---实战演练》第二章之焊接板子及调试注意事项
1.若是读者第一次做板子,强烈建议画完PCB板后将PCB图打印出来,然后对照你买的芯片将芯片放置对 应的位置,然后查看所有的封装格式适不适合,否则等你做出板子来后再试,为时晚矣.笔者虽然知道要这么 做 ...
- 《FPGA全程进阶----实战演练》第二章之系统搭建
1 系统方案 对于设计一款硬件平台,首先要确定整体框架,确定各个模块所需要的芯片以及电压分配情况.图2.6是笔者曾经设计的硬件平台系统. 图2.6系统框图 对于选定一个系统方案之后,接下来做的要先去查 ...
- 《FPGA全程进阶---实战演练》第一章之FPGA介绍
1 什么是FPGA FPGA也即是Field Programmable Gate Array的缩写,翻译成中文就是现场可编程门阵列.FPGA是在PAL.GAL.CPLD等可编程器件的基础上发展起来的新 ...
- 《FPGA全程进阶---实战演练》第九章 计数器要注意
本小节我们来做一个好玩的事情,就是计数器,还记得在做LED自加实验时我们就曾经提到过关于计数器的相关议题,那么这节我们就来讨论讨论. 探讨一下如下的问题:请用verilog记八个数的写法,分析这个可以 ...
- 《FPGA全程进阶---实战演练》第一章之如何学习FPGA
对于很多初学者,大部分都是急于求成,熟不知越是急于求成,最终越是学无所成,到头来两手空空,要学好FPGA,必须弄懂FPGA本质的一些内容. 1.FPGA内部结构及基本原理 FPGA是可以编程的,必须通 ...
- 《FPGA全程进阶---实战演练》第二章之硬件平台的搭建
学习FPGA,多多少少应该要懂得硬件电路的设计,这样不单单增加了自己的技能,而且还能够对FPGA的硬件实现有更好的了解. 1 模块划分 对于一个基本的FPGA硬件平台,常用的几个电路部分:(1)电源电 ...
- 《FPGA全程进阶---实战演练》第二章之PCB layout注意事项以及投板几点说明
上一篇博客讲述了各个部分的原理图,那么根据原理图画出PCB,其实PCB是一门很大的学问,想要掌握谈何容易.就笔者在画PCB时的一些注意事项做一些说明. 1.电源部分的电源线 ...
- 《FPGA全程进阶---实战演练》第三十二章 Signal Tap II 应用实例
还有几天就要交文章终稿了,三年的研究生生活也快要结束了,时间飞快,岁月如梭,但学习技术的热情仍然不能松懈,不懂的东西太多,需要实时保持奋斗!!过些天会继续更新<FPGA全程进阶---实战演练&g ...
- 《FPGA全程进阶---实战演练》第四章之实验平台软硬件使用简介
本章主要是讲解读者在进行FPGA逻辑设计之前的准备工作,需要下载Quartus II软件和 Modelsim 软件,一个是用来进行FPGA逻辑设计,一个是用来对逻辑进行理论分析与验证. 1.1 qua ...
随机推荐
- JMeter学习笔记---性能分析
图像结果: 通过观察平均采样响应时长,用户可以直观地看到,随着并发压力的加大,以及性能测试时间的延长,系统性能所发生的变化.正常情况下,平均采样响应时长曲线应该是平滑的,并大致平行于图像下边界. 异常 ...
- Python fabs() 函数
描述 fabs() 方法返回数字的绝对值,如math.fabs(-10) 返回10.0. fabs() 函数类似于 abs() 函数,但是他有两点区别: abs() 是内置函数. fabs() 函数在 ...
- Xilinx全局时钟
前言 Xilinx系列.ISE环境中,设计复杂工程时全局时钟系统的设计显得尤为重要. 一.时钟网络与全局缓冲 在XilinxFPGA中,时钟网络分为两类:全局时钟网络和I/O区域时钟网络.以全铜工艺实 ...
- mysql 5.6 grant授权的时候出现问题
mysql> grant select on huamu_licai.* to 'read'@'%' identified by password 'Abcd1234';ERROR 1827 ( ...
- linux内存管理之DMA
说起DMA我们并不陌生,但是实际编程中去用的人不多吧,最多就是网卡驱动里的环形buffer,再有就是设备的dma,下面我们就分析分析. DMA用来在设备内存和内存之间直接数据交互.而无需cpu干预 ...
- NUMA体系结构详解
1. NUMA的几个概念(Node,socket,core,thread) 对于socket,core和thread会有不少文章介绍,这里简单说一下,具体参见下图: 一句话总结:socket就是主板上 ...
- Qt解析xml
发现用 Qt 解析 xml 文件非常方便,下面是一个简单的解析 xml 文件的例子: #include <QtCore/QCoreApplication> #include <QDo ...
- 【Android】9.2 内置行视图的分类和呈现效果
分类:C#.Android.VS2015: 创建日期:2016-02-18 一.简介 Android内置了很多行视图模板,在应用程序中可直接使用这些内置的视图来呈现列表项. 要在ListView中使用 ...
- 关于Java Collections的几个常见问题
列举几个关于Java Collections的常见问题并给出答案. 1. 什么时候用LinkedList,什么时候用ArrayList? ArrayList是使用数组实现的list,本质上就是数组.A ...
- 在Mac OS X中使用mtr诊断路由节点问题
这个工具是从阿里云客服那知道的,当时遇到阿里云CDN的一个节点出现丢包问题,用这个工具诊断路由节点问题. 1. 下载地址:http://rudix.org/packages/mtr.html(在园子里 ...