QuartusII Design partion and logic lock
Design partion
Design partion常用于“增益变量(QIC)”,通过Design Partition对子模块进行“逻辑分区”,在Design Partition Window中最关键的一个设定是Netlist Type,它有四个可选值——Source File,Post-Synthesis,Post-fit,Empty(如上图中所标1,2,3,4,上图是为了将各Type全面的显现出来,而不是最终设定)。它们各自的含义是:
Source File:如果源代码未修改,则仅不重新Analysis,还需进行Synthesis和Fitter;
Post-Synthesis:如果源代码未修改,不需重新Analysis、Synthesis,结果只进行Fitter;
Post-Fit:如果源代码未修改,保留前次Analysis、Synthesis、Fitter结果;
Empty:标志为空分区,编译时将忽略此分区。
这样我们就很明白了,其实要想达到“增量编译”的目的,只需将各个子模块设置在Design Partition里,并将未进行修改的各个模块设定成Post-fit,而修改过的模块设定为Source File。需要注意的是,顶层模块TOP的状态也需设定为Post-fit。
合理创建分区(partion)
Quartus II中,设计中任何层次中的任何一个设计模块,可以作为一个设计分区;一个设计中也可以包含不止一个设计分区;即使是在设计的同一层次,也可有多个分区。同时,请注意:分区之间没有层次关系,任何逻辑只能归属于某一个分区。以图5为例,A模块由A1、B1、C1三个子模块组成。如果A模块被设置为分区,Quartus会用模块名来为此分区命名:A分区。那么,A分区中就会包含A1、B1、C1三个子模块的所有逻辑。但如果把B1子模块也创建为分区,那么,A分区中就只包含A1、C1两个子模块的逻辑,B1子模块的逻辑只属于新的B1分区了。
对包含多个功能模块的多层次复杂设计,可以有许多种设置分区的方案。但需要注意的是:不是任何一种分区方案都能带来编译时间的节约,恶劣的设计分区甚至能够导致编译失败!如何得到高效合理的设计分区呢?我们需要遵从以下原则:
a. 不要创建太多的分区,一般性的设计建议分区的数量控制在4~8个之间;
b. 不要创建太小的分区,一般建议不要小于1000个LE或者ALM;
c. 外设接口逻辑和内核处理逻辑放到不同的设计分区;
d. 相同或相近功能的外设接口,如果管脚位置相邻,可以放在同一个分区,否则创建不同的设计分区;
e. 不同的分区方案中,分区之间的联接少的方案更优。
Exported Partion File(.qxp)
从安全角度考虑,我们常希望保证我们设计的私有性。一个有效的方法就是利用QuartusII Exported Partition file(.qxp)创建用于综合或布局布线网表文件(不包括源代码。这种增量编译的特点需要一个完整QuartusII 许可的支持(比如免费的web版本的许可不支持的)。
A、产生qxp文件
1、进行第一次工程的综合;
2、将需要锁定的模块设置: set as design partition、netlist type(source file),然后进行第二次综合;
3、修改netlist type为post-fit,然后进行第三次综合;
B、导出qxp文件
1、Export design partition:导出锁定模块的qxp文件;
C、导入qxp文件
1、用qxp文件代替rtl代码;
2、inport design partition:导入qxp文件
3、综合就可以了
Logic lock
LogicLock的作用,是对设计进行“物理分区”,Logiclock windows里面有两个主要的参数,Size和State:Size有两个选项,Auto、Fixed;而State也有两个选项,Locked、Floating。但是并不是有着四个组合,其实只有着下面三种状态:

第一种,Auto+Floating:由编译器自动选择区域大小和位置;(在Chip Planner里面由虚线显示)
第二种,Fixed+Floating:由编译器选择位置,但由用户设定区域大小;(在Chip Planner里面由短实线显示)
第三种,Fixed+Locked:区域大小和位置都由用户来设定。(在Chip Planner里面由实线显示)
那我们来说说LogicLock在增量编译里面有什么作用呢?还是需要强调一下,增量编译不是一定非要用到LogicLock,但Quartus推荐在增量编译时使用LogicLock!
QuartusII Design partion and logic lock的更多相关文章
- Logic BIST
Logic BIST is crucial for many applications, in particular for life-critical and mission-critical ap ...
- 浅谈用ModelSim+Synplify+Quartus来实现Altera FPGA的仿真
浅谈用ModelSim+Synplify+Quartus来实现Altera FPGA的仿真 工作内容: Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业 ...
- 学习笔记:The Best of MySQL Forum
http://mysql.rjweb.org/bestof.html I have tagged many of the better forum threads. 'Better' is based ...
- 数据访问:Implementing Efficient Transactions
An OLTP scenario is characterized by a large number of concurrent operations that create, update, an ...
- [转]15 个顶级 HTML5 游戏引擎
本文转自:http://www.open-open.com/news/view/13874db 1) HTML5 Game Engine Construct 2 is a leading high q ...
- 一、Microsoft Dynamics CRM 4.0 SDK概述
Chapter 1. Microsoft Dynamics CRM 4.0 SDK Overview(SDK概述) You are probably reading this book because ...
- [转]掌握 ASP.NET 之路:自定义实体类简介 --自定义实体类和DataSet的比较
转自: http://www.microsoft.com/china/msdn/library/webservices/asp.net/CustEntCls.mspx?mfr=true 发布日期 : ...
- 三种Dataase Mapping的系统架构
ORM - O/R M - Object/Relational Mapping: A technique/idea used to map objects and thier individual r ...
- ARM MOV PC加8
缘由 今天在分析ARM伪指令ADR,书上说ADR通常会被一条ADD或SUB指令替代实现相同功能.我反汇编了一下确实如此会基于PC相对偏移的地址量读取到寄存器中,可是计算却发现对不上 如上图所示,ADR ...
随机推荐
- 算法是什么我记不住,But i do it my way. 解一道滴滴出行秋招编程题。
只因在今日头条刷到一篇文章,我就这样伤害我自己,手贱. 刷头条看到一篇文章写的滴滴出行2017秋招编程题,后来发现原文在这里http://www.cnblogs.com/SHERO-Vae/p/588 ...
- 国内优秀的Android资源
因为一些大家都知道的原因,Android很多官方出品的优秀开发资源在国内无法访问. 国内的同行们对此也做出了很多努力,有很多朋友通过各种手段把很多优秀的资源搬运到了国内,为国内android开发者提供 ...
- .数据库连接池技术:DBCP和C3P0
数据库连接池技术:DBCP和C3P0 1.什么是数据库连接池 已知的方法是需要访问数据库的时候进行一次数据库的连接,对数据库操作完之后再释放这个连接,通常这样业务是缺点很明显的: 用户每次请求都需要向 ...
- cg数据类型
Cg 支持7 种基本的数据类型:1. float,32 位浮点数据,一个符号位.浮点数据类型被所有的profile 支持(但是DirectX8 pixel profiles 在一些操作中降低了浮点数的 ...
- Winform进程、线程
进程: 一般来说,一个程序就是一个进程,不过也有一个程序需要多个进程支持的情况. 进程要使用的类是:Process它在命名空间:System.Diagnostics; 1.静态方法Start(); 2 ...
- HTML5 & 三年二班周杰伦
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Linus:C++是一种糟糕的语言
本文内容摘自http://blog.csdn.net/turingbook/article/details/1775488 C++是一种糟糕的(horrible)语言.而且因为有大量不够标准的程序员在 ...
- [LeetCode] Merge k Sorted Lists 合并k个有序链表
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 这 ...
- C语言共用体、大小端、枚举
1.共用体和结构体的相同和不同 (1)相同点就是操作语法几乎相同.(2)不同点是本质上的不同.struct是多个独立元素(内存空间)打包在一起:union是一个元素(内存空间)的多种不同解析方式. # ...
- Linq 单表城市级联
var list = (from province in db.Areas && province.IsDel == join city in db.Areas on province ...