Quartus中的逻辑锁定与增量编译

逻辑锁定功能允许在FPGA中固定代码模块,提高时序性能和设计可靠性。通过ChipPlanner创建和分配LogicLockRegion实现这一目标。增量编译则通过保留已编译模块的结果,减少整体编译时间,特别是在Quartus工具的不同版本中,通过设置DesignPartition和PreservationLevel来实现这一过程。

逻辑锁定功能可以将FPGA中的代码模块在固定区域实现,优化时序性能,提升设计可靠性。增量编译功能,可以使设计更快速时序收敛,加快编译速度。

LogicLock

使用Chip Planner创建逻辑锁定区域

打开Chip Planner,点击View -> Logic Lock Regions -> Create Logic Lock Region

在这里插入图片描述

在Chip Planner中选择一块区域

在这里插入图片描述

该区域信息如下图所示

在这里插入图片描述

为选择的区域设置实现模块

在设计模块中选中实则文件,右键选择LogicLock Region->Assign to Existing LogicLock Region,完成逻辑锁定。

在这里插入图片描述

Incremental Compilation

通过对设计进行划分,保留划分后模块编译结果。当对工程进行重新编译时,编译器会保留划分模块的编译结果,只对修改部分进行重新编译。

​ 增量编译步骤:

  • 编译工程
  • 划分模块
  • 设置模块保留级别

编译工程

对设计工程进行全编译。

划分模块

选择要进行增量编译的模块,在quartus13.1版本中,点击右键设置Design Partition-> Set as Design Partition。

在这里插入图片描述

在quartus22.4版本中,Design Partition->Default
在这里插入图片描述

设置完成后,编译工程。

设置模块保留级别

在quartus13.1版本中,设置Netlist Type。

在这里插入图片描述

在quartus22.4版本中,设置Preservation Level,可以设置成Synthesized和Final。
在这里插入图片描述

当设置成Synthesized时,保留综合网表,当设置成Final时,保留最终布局布线和时序特性。

完成以上步骤后,再进行编译时,已经划分的模块就可以实现增量编译,当修改工程其他部分,再进行编译时,只对没有划分模块进行编译,从而减少编译时间。

### Altera 增量编译的使用方法及相关问题 增量编译是一种优化设计流程的技术,旨在减少重新综合和布局布线的时间开销。通过仅对修改部分进行重新编译并保留未更改模块的设计状态,可以显著提高开发效率[^1]。 #### LogicLock 的作用 LogicLock 是一种用于固定逻辑位置的功能工具,在增量编译中起到重要作用。它允许用户定义特定区域内的逻辑锁定行为,从而确保已验证的部分不会因其他部分的变化而受到影响。这种特性使得增量编译能够更加稳定地执行,并保持先前经过测试和验证的结果一致性[^2]。 尽管如此,需要注意的是,虽然 Quartus 推荐在增量编译时使用 LogicLock 来增强其效果,但这并非强制要求。换句话说,即使不启用 LogicLock 功能,也可以实现基本形式的增量编译过程。 以下是具体的操作指南: #### 配置增量编译的方法 为了设置增量编译环境,请按照以下方式操作: 1. **创建 Design Partitions**: 将整个项目划分为多个独立子模块 (Partitions),以便分别处理各个组件。 - 可以利用 Tcl 脚本或者图形界面完成此步骤。 ```tcl set_instance_assignment -name PARTITION_HIERARCHY root_partition -to top_level_entity_name -entity top_level_entity_name ``` 2. **指定 Lock Regions**: 如果决定应用 LogicLock,则需进一步配置哪些分区应被保护起来不受后续改动干扰。 ```tcl create_clock -period 10 [get_ports clk] lock_region my_fixed_logic {X Y W H} ``` 3. **运行 Incremental Compilation Flow**: - 执行初始全量编译周期来建立基线数据集; - 对于之后每次迭代更新,只需针对变动过的 partition 进行局部再计算即可。 如果遇到任何错误提示,通常可以从以下几个方面排查原因: - 确认所有输入文件版本一致无误; - 检查是否存在冲突性的约束条件设定; - 审核是否遗漏某些必要的初始化参数声明; 最后提醒一点,合理规划好各阶段任务分配顺序对于顺利完成整个工作流至关重要! ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硬码农二毛哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值