5.11 典型实例10:LogicLock功能演示
5.11.1 实例的内容及目标
1.实例的主要内容
本节旨在通过Quartus软件自带的工程实例——“lockmult”来熟悉Altera Quartus II逻辑锁定功能LogicLock的使用方法。在本节中,将主要讲解下面知识点。
· Quartus II约束设计。
· Quartus II时序分析。
· Quartus II逻辑锁定。
通过这些知识点,按照下面提供的训练流程,读者可以迅速地掌握使用Quartus II软件逻辑锁定功能的使用方法。
2.实例目标
通过详细的流程讲解,读者应达到下面的目标。
· 熟悉Quartus II时序分析报告的查看。
· 熟悉SignalTap II逻辑锁定的方法。
5.11.2 实例详解
本实例将使用图解的方式将整个流程一步一步展现给读者,使读者能够轻松掌握开发的流程。
5.11.2.1 打开工程文件
本实例以流水线乘法器为例,介绍逻辑锁定技术及相关的优化控制的基本用法。
打开位于路径C:alteraqdesigns50logiclocklockmult中的工程lockmult.qpf。这就是乘法器实例的顶层设计,其原理如图5.72所示,图中的4个元件pipmult是相同的。
图5.72 乘法器顶层原理图
pipemult的电路原理图如图5.73所示。它是由一个8位流水线乘法器和一个16位双口RAM构成。
图5.73 pipemult内部电路原理图
选择目标器件为EP20K100EQC208-1。
5.11.2.2 设置时序约束
在编译前设定时钟约束。在“Assignments”菜单中选择“Settings”选项。然后在“Settings”窗口的“Category”栏选择“Timing Requirements & Options”页面。
为“Clock Settings”下的“Default required fmax”输入150并选择MHz,如图5.74所示,单击“OK”按钮,关闭窗口。
编译结束后,可在编译信息栏中看到最高时钟频率不能达到原设定的150MHz的要求(如图5.75所示)。打开“Processing”菜单中的“Complication report”窗口,单击“Timing Analyzer”可以在Clock Setup中看到哪些信号频率达不到要求。
5.11.2.3 使用LogicLock功能进行优化设计
1.建立底层模块工程
新建底层模块工程,在本实例中已经建立好底层模块工程,打开“典型实例10”目录下的lockmult.qpf工程,如图5.76所示,可以看到乘法器的底层模块。
图5.74 设计要求最高时钟频率
图5.75 编译结果信息提示
图5.76 底层模块
指定设备:EP20K100EQC208-1,编译工程。
2.打开LogicLock窗口
使用快捷键“Alt+L”或者选择“Assignment”/“LogicLock Regions Window”,打开LogicLock窗口,如图5.77所示。
图5.77 LogicLock窗口
3.新建LogicLock区域
右键选择“Root_region”项并选择“new”,新建区域并将名称取为lock_mult,如图5.78所示。
图5.78 新建LogicLock区域
4.加入工程到LogicLock区域
右键选择新建的“lock_mult”项,打开属性窗口。将左侧的工程层次栏中的pipemult模块拖入,拖入后会出现pipemult的标志,如图5.79所示。
图5.79 拖入pipemult模块
5.编译工程
对包含底层模块的Logic Lock工程进行第一次编译。
6.反标
回到主界面打开刚才的lock_mult属性窗口。单击“Back-Annotate Contents”按钮。反标约束信息,选择反标输出路径,如图5.80所示。
成功反标后会在对话框中出现如图5.81所示信息。
图5.80 输出反标信息 图5.81 输出反标信息结果
7.导出assignment信息
选择“Assignment”/“Export Assignment”选项,如图5.82所示,导出约束信息。
8.打开乘法器顶层设计文件工程topmult
使用Quartas II软件打开另一个工程——乘法器工程topmult
9.替换底层模块设计文件
选择“project”/“Add/Remove Files in Project”选项,如图5.83所示。
图5.82 输出Assignment信息 图5.83 添加删除文件菜单
将原来的底层模块文件删除,使用刚创建的反标信息代替,如图5.84所示。
10.指定底层模块Assignment文件
回到主界面,单击左侧图标,展开topmult,可以看到如图5.85所示工程层次目录。
图5.84 添加反标文件.vqm 图5.85 工程层次目录
右键选择底层模块“pipemult:inst1”,选择“Locate”/“Locatein Assignment Editor”选项,如图5.86所示。
选择“Import File Name”,如图5.87。
图5.86 Locate菜单 图5.87 import file窗口
选择pipemult.qsf文件,也就是刚才所选择输出设置信息,如图5.88所示。
依次对每一个底层模块重复这个步骤。
11.导入Assignment文件
选择“Assignment”/“Import Assignment”,输入刚才输出的设置文件。
12.再次编译工程
编译整体工程,可以发现时钟频率符合要求,如图5.89所示。
图5.89 时序分析报告