0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

有什么方法可以减少Quartus II的编译时间吗?

电子工程师 来源:独孤琅嬛 作者:独孤琅嬛 2021-05-18 10:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

对于减少Quartus II的编译时间的方法,可从三个角度进行考虑。

第一,从开发所使用的计算机入手,选择合适的CPU操作系统并进行合理的设置从而提高编译速度;

第二,从Quartus II软件入手,对编译相关的选项进行合理设置,从而提高编译效率;

第三,针对具体的工程,采用增量编译的方法,合理地进行分区和设置,从而减少编译时间。

第一种方法是网友在实际的使用过程中摸索出来的,第二种和第三种方法在Quartus II的开发手册中都有迹可循。

下面进行具体的介绍:

一、开发所使用的计算机方面的考虑

要使用最快的CPU,编译程序拼的就是CPU的速度,而增加RAM没有作用。

另外,切勿使用低电压和超低电压的CPU,要使用标准电压的CPU。

若使用的是Windows操作系统,在任务管理器的进程一栏,列出了CPU当前运行的各个进程,并且给出了内存使用情况。

在任意一个进程上点击右键,可以看到一个“设置优先级”的功能。

查大部分进程的优先级,都在“标准”状态。通过把一个进程的优先级设置为“高于标准”,可以给该进程分配更多的CPU资源,相应地,其运行速度也就上去了。

Quarutus II编译过程中,通常要顺序运行quartus_map、quartus_fit、quartus_asm、quartus_tan四个进程。

其中前两个进程占用了编译时间的95%以上。

手工修改这两个进程的优先级就可以保证Quartus II的编译过程不受干扰,从而实现调整编译速度的目的。

二、Quartus II开发工具方面的考虑

Quartus II的编译过程包括分析综合、布局布线、汇编、时序分析以及生成网表,编译的过程中耗时最多的是分析综合和布局布线,所以想提高编译速度也应该从这点入手。

Quartus也有相关的自动增量编译的设置,如图1所示,

首先是可用处理器数目的设置,选择使用所有可用的处理器,这样可以提高整体的速度;

其次是采用Smart Compilation,即智能编译方式,它可以完成的功能是如果设计源文件没有改动,那Quartus II将不再进行分析综合,而直接进入布局布线阶段。

图1

有什么方法可以减少Quartus II的编译时间吗?

另外,还可用通过编写TCL脚本的方法减少Quartus II综合时间。

使用Quartus II完成建立工程、编写HDL文件、设置以及分配管脚等操作,然后将qsf文件中的内容复制到TCL文件中。

将上述的TCL文件和其他工程文件放入相同的文件夹,运行CMD,使用CD命令将目录更改到设计文件的文件夹,运行命令quartus_sh -t test_top.tcl。

查看CMD窗口的报告,看是否有错误或警告,有则更改HDL设计文件,重新运行命令quartus_sh -t test_top.tcl即可。

还可以在TCL脚本中添加查看TimeQuest的时序报告命令,在Quartus II的帮助文件中可以查到这些命令。

但是这样只减少了Quartus II的综合时间,实际上使用TCL脚本建立工程、约束等比图形化操作Quartus II更省时间。

三、增量编译方面的考虑

增量编译的原理是减少每次编译里设计已经完成的部分,进而不需要再重复编译设计者认为已经完成的工作。

具体方法为,设计者手动得将整个工程分成N个子模块(此处指的是逻辑模块),并设定各个模块的状态(已经完成了,不需要更改了,编译时就采用上一次的结果),这样编译器在分析综合的时候便可以对那些不需修改的部分直接采用上次的结果。

布局布线的时候也是一样的,如果该子模块不需要更改了就采用上次的结果,如需更改再重新进行布局布线,只不过布局布线的过程要相比分析综合复杂一些。

而上面提到的将整个工程手动分成N个模块,我们就要用到Quartus II提供的两个高级工具——Design Partitions和LogicLock Regions。

增量编译技术的另一主要优点是保持性能不变。通过只对设计中的特定分区进行编译,其他分区的时序性能保持不变。

渐进式流程适用的设计环境:当改变源文件时,缩短编译时间;在加入其他逻辑前,优化设计部分结果;采用在系统逻辑分析器进行渐进式调试;实现基于团队的设计环境和自下而上的设计流程。

增量编译流程要比固定式编译需要进行更多的前端规划。

例如,必须构造源代码或者设计层次以保证逻辑能够正确分组,进行优化。

比起在设计后期重新构造代码,更容易在设计早期实现正确的逻辑分组。

设计分区后,设计人员需要将每个分区分配到器件中的某个物理位置,以建立设计平面规划。

不好的分区或者平面规划分配会劣化设计面积利用率和性能,很难达到时序逼近。

和固定式编译相比,增量编译通常需要设计人员严格按照良好的设计习惯进行设计。

规划设计时,设计人员应记住每个分区的大小和范围,随着设计的发展,知道设计的不同部分会怎样变化。

经常变化的逻辑应和设计中的固定部分分开。

设计层次应该和一个分区中的关键时序逻辑分开,最好和寄存端口边界分开,这样,软件能够高效的优化每个独立分区。

为进行增量编译需要在Hierarchy tab of the Project Navigator中对Design partitions进行定义,在定义之前需要运行Analysis & Elaboration生成design hierarchy,定义之后会在实体名字上面出现一个 标志,如图2所示。

有什么方法可以减少Quartus II的编译时间吗?

通过设置可使Design partitions在增量编译的过程中被保留或重新编译。

使用渐进式编译时,设计层次被映射到设计分区中,在编译过程中单独处理它,以实现渐进式编译功能。

设计中的每个实体或者实例不会被自动考虑为设计分区;设计人员必须将顶层以下的一个或者多个设计层次指定为渐进式编译设计分区。

当分区被声明后,该分区中的每个层次成为同一分区的组成部分。

当为已有分区中的层次建立新分区时,新的低层分区中的逻辑不再是上层分区的组成部分。

有什么方法可以减少Quartus II的编译时间吗?

图3 所示是一个设计层次实例,其中,实例B 和F 被指定为设计分区。

分区B 包括子实例D 和E。

“顶层”默认分区含有顶层模块A 以及实例C,原因是它没有被分配到任何其他分区中。

责任编辑:lq6

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    20149

    浏览量

    247178
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11218

    浏览量

    222953
  • 操作系统
    +关注

    关注

    37

    文章

    7329

    浏览量

    128635
  • QUARTUS II
    +关注

    关注

    0

    文章

    52

    浏览量

    30711

原文标题:如何减少Quartus II的编译时间

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    多少种方法可以进行频响曲线测量?

    APx500软件提供了频响曲线的多种测量方法,对一个音频产品的频响特性进行测量分析。如果只用一个测量对一个音频产品进行评价,那这个测量就是频响曲线,APx500软件提供了多种方法可以进行频响曲线测量
    的头像 发表于 11-14 11:29 303次阅读
    <b class='flag-5'>有</b>多少种<b class='flag-5'>方法</b><b class='flag-5'>可以</b>进行频响曲线测量?

    Altera发布 Quartus® Prime 专业版和 FPGA AI 套件 25.3 版:编译更快,智能更强

    和 更快速的编译 。 相较于 25.1 版,25.3 版可进一步提供 行业领先的编译时间 、 显著提升的设计效率 和 更少的时序收敛迭代 ,并 加速产品上市 。 编译速度提升多达 6
    的头像 发表于 11-13 09:24 4.9w次阅读
    Altera发布 <b class='flag-5'>Quartus</b>® Prime 专业版和 FPGA AI 套件 25.3 版:<b class='flag-5'>编译</b>更快,智能更强

    时间频率标准源什么功能

    时间频率
    西安同步电子科技有限公司
    发布于 :2025年11月04日 17:58:08

    Quartus Prime Pro 25.1版本的安装和使用

    如果用户开发板是基于Agilex 3、Agilex 5等高阶器件,则需要安装高版本的Quartus软件比如Quartus Prime Pro 25.1版本,这个版本在安装包和license获取(免费)等方面跟以往的Quartus
    的头像 发表于 10-07 13:06 2048次阅读
    <b class='flag-5'>Quartus</b> Prime Pro 25.1版本的安装和使用

    哪些具体的方法可以减少电能质量监测装置的数据偏差?

    LZ-300C电能质量在线监测装置 减少电能质量监测装置的数据偏差,需从硬件设计、校准溯源、环境控制、算法优化、安装维护等多环节入手,结合新能源并网场景的特殊性(如强电磁干扰、谐波丰富、波动频繁
    的头像 发表于 08-21 09:33 480次阅读
    <b class='flag-5'>有</b>哪些具体的<b class='flag-5'>方法</b><b class='flag-5'>可以</b><b class='flag-5'>减少</b>电能质量监测装置的数据偏差?

    赛思电子为智能电网提供时间同步的方法哪些?

    在智能电网中,确保电网设备的协同运行和数据准确性非常重要,因此精确的时间同步至关重要。几种方法和技术可用于为智能电网提供精确的时间同步。首先是使用GPS同步。通过使用GPS接收器,智
    的头像 发表于 08-14 13:46 1387次阅读
    赛思电子为智能电网提供<b class='flag-5'>时间</b>同步的<b class='flag-5'>方法</b><b class='flag-5'>有</b>哪些?

    Quartus工具使用指南

    电子发烧友网站提供《Quartus工具使用指南.pdf》资料免费下载
    发表于 07-15 16:34 1次下载

    Quartus II原理图输入法教程

    电子发烧友网站提供《Quartus II原理图输入法教程.ppt》资料免费下载
    发表于 06-18 17:58 0次下载

    如何减少dsp启动时间

    如何减少dsp启动时间?之前图中Boot code(-bcode)设置为0x1时,DSP启动时间大概为9秒。设置为0x2后,DSP的启动时间大概为1秒。对于Boot code(-bco
    发表于 04-15 06:14

    请问MPC5748G如何减少启动时间

    我正在使用 MCP5748G。通电后大约需要 100 多毫秒才能正常工作。 正常启动时间是多少毫秒?如何减少启动时间
    发表于 04-10 07:31

    在SPI通信中启动SCLK之前如何减少CS低电平时间

    ,如捕获的图像所示。 在 SCLK 开始之前,我可以采取哪些步骤来减少 CS 低电平时间什么指导或建议吗?
    发表于 03-24 07:33

    Triton编译器功能介绍 Triton编译器使用教程

    。以下是 Triton 编译器的一些功能介绍和使用教程。 Triton 编译器功能介绍 多语言支持 :Triton 支持多种编程语言,使得开发者可以在同一个编译器框架下处理不同的语言。
    的头像 发表于 12-24 17:23 2694次阅读

    英特尔Quartus Prime Pro 24.3版本的全新亮点

    Quartus Prime Pro 24.3 版具有诸多强大特性和增强功能,可助力FPGA开发人员加快编译速度、提高设计效率以及缩短产品上市时间。令人振奋的是,在此次版本中,我们推出了对Agilex
    的头像 发表于 12-13 10:28 2178次阅读

    时间继电器的调节方法 时间继电器与普通继电器的区别

    时间继电器的调节方法 时间继电器是一种能够按照预定时间进行操作的电气装置,其调节方法因类型不同而有所差异。以下是针对电磁式
    的头像 发表于 12-09 10:29 7176次阅读

    分享关于编译器的科普

      Clang和GCC的主要区别如下所示: Clang比GCC编译用的时间更短,包括预处理、语法分析、解析、语义分析、抽象语法树生成的时间。 Clang比GCC的内存占用更小。 Clang生成的中间
    的头像 发表于 12-09 09:49 907次阅读