《第5章LogicLock优化技术000001.ppt》由会员分享,可在线阅读,更多相关《第5章LogicLock优化技术000001.ppt(149页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第5 5章章 LogicLock LogicLock优化技术优化技术 第5章LogicLock优化技术000001 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第第5 5章章 LogicLock LogicLock优化技术优化技术 5.1 LogicLock技术的基本内容技术的基本内容 5.1.1LogicLock技术解决系统设计优化有FPGA开发经验的人都会有这样的体会:原来在硬件测试上十分成功的FPGA设计,在源代码并没有任何改变的情况下,仅仅是增加了一点
2、与原程序毫不相干的电路描述,或甚至只改变了某个端口信号的引脚锁定位置,结果在综合适配后,原来设计的硬件性能将大为下降,如速度降低了,有时甚至无法正常工作。第第5 5章章 LogicLock LogicLock优化技术优化技术 这时,如果比较改变设计前后的Floorplan图,会发现芯片内部资源的使用情况发生了巨大的变化。这表明,即使对原设计作极小的改变(更不用说对适配约束条件的改变),都会使适配器对原设计的布线(Routing)和布局(Placing)策略作大幅改变和调整。同时,当设计规模比较大时,人为很难直接介入布线/布局的优化。第第5 5章章 LogicLock LogicLock优化技术
3、优化技术 对于由许多基本电路模块构建成的顶层系统的FPGA开发,类似的问题将更加突出。例如,原来某一基本模块的FPGA硬件测试十分成功,包括工作性能、速度以及资源利用率等,但当将这些基本模块连接到一个顶层设计后,即使在同一FPGA中进行测试,也常发现各模块以及总系统的性能有所下降甚至出现无法工作的情况。事实上,如果能在设计基本模块时,就固定其布线/布局的原方案,即使在顶层文件的总体适配时,也不改变原来基本模块的布线/布局及其原来的优化方案,就能很好地解决上述棘手的问题。第第5 5章章 LogicLock LogicLock优化技术优化技术 对此,QuartusII提供了一个优秀的设计技术,即逻
4、辑锁定技术。使用这一技术,可以将设计好的电路系统或某一底层模块约束到FPGA中某个指定的区域上,并固定原来的布线/布局方案。这样一来,对于一项较大设计中的某一底层模块,不但在顶层的软件描述上是一个子模块(如例2-1),而且在FPGA芯片的总体适配中,此模块在硬件上便类似于ASIC设计中的一个标准模块,始终能保持自己原来的布线/布局方案,从而在任何大系统中都能保持原有的电路性能,就像一个被调用的独立的元件一样,不会由于顶层系统布线/布局的改变而改变基本模块的布线/布局结构了。第第5 5章章 LogicLock LogicLock优化技术优化技术 有了逻辑锁定技术,面对大系统的设计,工程师们就可以
5、将构成大系统的各模块进行分别设计,分别优化他们的布线/布局;适配约束,逐个地使它们分别获得最佳的工作性能,逐个优化并锁定它们的布线/布局方案;最后把它们连在一起形成性能优良的顶层系统。显然,逻辑设计锁定技术是SOPC单片系统优化设计及IP核成功拼装应用的有力保证。大规模系统的设计本身就已十分困难,而对大规模系统的优化将更加困难。优化工作在增加或更改内部设计元件时要进行大量的修改工作。第第5 5章章 LogicLock LogicLock优化技术优化技术 一般地,对付复杂的大系统的设计的方法有:(1)使用模型设计、层次设计或递增设计方法;(2)使用好的EDA工具,使得整个设计和优化更容易;(3)
6、使用已经优化好的IP核;(4)使用先前已优化好的被锁定了布局/布线的设计模块。比较图5-1所示的FPGA的传统设计流程与使用了逻辑锁定(LogiclLockMethodology)优化技术的流程可以发现,第第5 5章章 LogicLock LogicLock优化技术优化技术 两种设计流程都是把整个设计系统分成若干个模块(这些模块可以是一个单独的电路功能块,或是电路中的部分元件,或是部分设计层次),在对每一模块单独设计好后,再把它们拼起来形成一个完整的系统。所不同的是,前者将系统中的各模块分别设计,并集成为系统,然后对整个系统进行优化和测试;而后者则将系统中的各模块分别设计和优化,并保持优化结果
7、,最后进行模块集成和系统测试。第第5 5章章 LogicLock LogicLock优化技术优化技术 图5-1FPGA的传统设计流程与使用了逻辑锁定优化技术的流程的比较第第5 5章章 LogicLock LogicLock优化技术优化技术 如上所述,在传统设计流程中常常发生的情况是,对于每个模块来说,它们都能满足设计要求(良好的功能和速度指标等),但当将它们合成系统后,却不能达到原来的要求了。即使有时有的模块的功能满足要求,但当修改其它模块后,整体编译后会导致其它模块性能的改变,甚至下降。这是由于在传统设计流程中,EDA工具并不会对系统中的各模块单独优化及单独布局/布线。第第5 5章章 Log
8、icLock LogicLock优化技术优化技术 QuartusII的LogicLock技术则能很好地解决这一问题。它能很容易地完成对每一模块的设计、测试和优化,再将这些模块集成为一个系统,进行系统优化设计,同时又能很好地保持原来已设计好的每一单个模块的优化特性。当把这些模块集成为一个系统后,只需对模块之间的逻辑行为进行优化就可以了。显然,LogicLock技术通过允许设计者自主地控制特定模块在FPGA中指定的区域中的布线与布局,以及单独的优化,并能在更高层次的设计中保留模块原有的性能特点,从而大大加强了DSP的SOC设计的优秀性能和灵活性。第第5 5章章 LogicLock LogicLoc
9、k优化技术优化技术 5.1.2LogicLock的基本内容使用LogicLock设计流程,首先要求建立逻辑锁定区域,这就是设计模块放置的区域,即所谓的LogicLock区。其中应包含能完成此模块电路构成的逻辑资源,如逻辑宏单元LCs、ESBs、EABs等。一旦确定了这个区域,QuartusII就会把指定模块适配在这个区域中。设定LogicLock区域的方法有3种:第第5 5章章 LogicLock LogicLock优化技术优化技术 使用Tcl脚本命令;使用QuartusII的Floorplan编辑器;使用LogicLock窗。LogicLock区域的特性主要有两个标志:“大小”和“位置”。“
10、大小”是指此区域的高和宽,其单位不是距离而是逻辑单元;而“位置”是指在目标器件中锁定区域在Floorplan图上所处的位置。区域的位置状态有两种:“锁定”状态和“浮动”状态。第第5 5章章 LogicLock LogicLock优化技术优化技术 如果区域是浮动的,则由QuartusII在优化过程中确定具体位置所在。如果区域的大小设定为“自动”,QuartusII将自动调整大小,以便将设计模块正好能放进此区域中。区域是一个长方区域,区域的起点定义为左顶角处,位置状态定义为“锁定”和“浮动”,大小定义为“自动”和“固定”两种,表5-1给出了详细说明。第第5 5章章 LogicLock LogicL
11、ock优化技术优化技术 表5-1锁定区域分区类型位置大小说明浮动自动这是逻辑锁定约束条件中最灵活的一种,在适配中QuartusII自动根据优化情况确定最终的锁定区域的大小与位置浮动固定这种方式中是假设定义的锁定区域的大小是合理的,否则不利于逻辑资源的有效利用锁定固定这种约束条件具有最小的灵活性,由设计者确定锁定区域的一切具体情况第第5 5章章 LogicLock LogicLock优化技术优化技术 5.1.3锁定区域的基本方式如果将一个基本模块锁定于一个区域中并进行了成功的适配后,还要将其使用于更高层次的设计中,设计者对于此模块的锁定方式有两种选择:第第5 5章章 LogicLock Logi
12、cLock优化技术优化技术 1.仅锁定区域的大小和位置(包括选取表5-1中的任何一种方式)在这种情况下,QuartusII在顶层设计的适配中,只负责将原模块放置在所定义的锁定区域中,而在此区域中,此模块的电路放置不固定,即只能保证在更高层的设计锁定区域的大小和位置不变,但不保证原模块在此锁定区域中的电路的布线/布局方式不变,从而无法保证在此后的更高层设计适配后模块的电路性能不变。第第5 5章章 LogicLock LogicLock优化技术优化技术 2.对原锁定区域的模块电路布线/布局信息进行“反注”(Back-annotate)通过“背注”操作,QuartusII根据背注信息完全锁定在指定的
13、LogicLock区域中该模块电路中各元件的电路结构的确定位置。即能很好地保持在锁定区域中各电路元素的适配位置,从而在当将此模块集成到高层乃至顶层设计适配后,能最大程度地保持此锁定模块原来的工作性能。第第5 5章章 LogicLock LogicLock优化技术优化技术 较好的设计方法可以这样:为了确保锁定区域中的电路模块优化后其特性不致在以后的高层设计适配中发生改变,同时高层设计适配中又有较好的灵活性,以利于系统级适配的优化,可以首先将模块在锁定区域中的电路设置的基本元件的布线/布局固定下来,从而不仅锁定了逻辑区域,同时也锁定了模块的电路性能,然后在高层的设计中令含有此模块的锁定区域为浮动状
14、态。这样以来,在QuartusII对高层的设计将各模块统一进行适配和优化中,为各模块找到了最合适的位置,从而有利于顶层系统的优化。第第5 5章章 LogicLock LogicLock优化技术优化技术 在系统适配中,虽然原设计模块的锁定区域是浮动的,但在该区域中构成该模块的电路元件与该区域的相对位置是不变的。因此,只要高层电路系统的适配与原低层模块的锁定适配是在同一系列的FPGA中,就能保证原模块的性能不变。此外,这种保持了原特性的浮动模块的作用类似一个已优化好的独立的电路元件,它不仅能作为原高层设计中的一个电路模块,还能进行多模块例化(同模块复制,或能移植到其它电路系统中)。第第5 5章章
15、LogicLock LogicLock优化技术优化技术 这种方式产生的“电路元件”与仅仅以VHDL设计实体代码构成的“元件”是不一样的。前者是一个成熟的、已优化好的电路模块,只要在同种系列的目标器件中实现,不论是单独使用,还是用作更大系统的一个例化元件,都能保证原模块的技术性能不变;而后者不具有这样的特性,因为后者即使在同一系列的目标器件中,由于不同的外部条件和不同的高层次设计,或由于顶层设计的微小改变,它们都会表现出不同的电路特性。第第5 5章章 LogicLock LogicLock优化技术优化技术 假如一个子区域是浮动状态的,QuartusII就会在优化过程中为此子区域在母区域中确定一个
16、合适的位置;假如一个子区域是锁定状态的,QuartusII也将保持子区域在母区域中的相对位置不变。设计者必须注意,逻辑锁定区域的层次与工程设计的层次概念是不同的。前者是一组定义了“母子”关系的锁定区域,这个区域只能由QuartusII的区域锁定工具划定逻辑布局位置间的关系,而后者则不同。后者反映的是设计源代码中的结构层次,以及模块间的例化关系。一般地,LogicLock区域不一定反映设计中的逻辑层次。第第5 5章章 LogicLock LogicLock优化技术优化技术 图5-2和图5-3是两个不同的设计层次示例,其中图5-2的顶层设计是B,它包含两个模块:IP核与A模块。设计者是在定义了设计
17、层次后再确定逻辑锁定层次的。逻辑锁定设计中,可以先建立一个LogicLock母模块区域,将顶层设计B定义于此区域中,然后建立两个子区域,把IP模块和A模块分别设定放置在两个子区域中。这样以来,锁定区域的划分正好反映了设计的层次。但是,设计者也可以将IP核模块放在主区域中,而把顶层设计B放在子区域中,并将模块A中的部分内容放在这个子区域中,这当然也不失为一种锁定区域的定义方法。但最佳的区域定义应根据模块组织情况及电路的特性来具体确定。第第5 5章章 LogicLock LogicLock优化技术优化技术 图5-2模块设计层次第第5 5章章 LogicLock LogicLock优化技术优化技术
18、图5-3层次化设计流程第第5 5章章 LogicLock LogicLock优化技术优化技术 5.1.5LogicLock技术的不同应用流程如上所述,在传统的设计流程中,同样一个模块在单独适配与在顶层设计中适配,其性能有可能不一样。为了解决这个问题,LogicLock提供了一种增量适配方法,步骤如下:1)由逻辑综合器产生“原子级”网表文件。原子级网表文件就是该文件中以最基本的元件(如与门、非门、触发器等)和基本连线方式表达的工程设计。所谓“原子级”就是指底层基本逻辑文件在原子级网表文件中,所有的“原子”的结构与名称(如某逻辑门)是不会随着对系统的编译适配而改变的。第第5 5章章 LogicLo
19、ck LogicLock优化技术优化技术 2)使用LogicLock设置确定设计模块在锁定区域中的具体放置位置模块在该区域中的特性以信号节点的设置和层次安排。原子级网表的名称规定了信号节点的设置。于是,在含有这些模块的顶层设计编译适配中,QuartusII将完全遵循原模块中的所有约束条件。在以下叙述的模块化、层次化、增量法和分组法的所有设计流程中,都将使用上述保持模块特性的方式进行适配。第第5 5章章 LogicLock LogicLock优化技术优化技术 1.模块化设计流程以图5-2为例,这里显示的是一个模块化的设计流程。顶层设计B仅仅是对IP和A作了例化,即B只是确定了这两个子模块的连接关
20、系,没有其它的逻辑设计内容。设计者可以首先分别对这两个底层模块进行优化(主要对A模块,因为IP核是一个已被优化了的设计),以便在顶层设计中保持原有的优化特性。第第5 5章章 LogicLock LogicLock优化技术优化技术 具体方法是,在层次化设计中,设计者首先将IP核与A模块设定为工程,然后再分别对各工程进行设计和优化。优化中利用逻辑锁定技术将各模块放置在LogicLock区域中,或放在设计者决定的锁定区域中的某个锁定层次中,分别使各模块在自己的锁定区域中优化,以便满足原设计的要求。然后,设计者将这些优化并锁定了区域的设计模块所对应的原子级网表文件输入到顶层系统B中,接着由Quartu
21、sII在B中确定此2模块的锁定位置(区域)。最后,设计者就可以对整个系统进行编译和测试了。第第5 5章章 LogicLock LogicLock优化技术优化技术 2.层次化设计流程LogicLock技术允许层次化的设计流程。图5-3是一个层次设计流程的示例,其中包含模块D、E和F。模块E还包含来自图5-2的模块B。如果模块D对于整个系统的性能并不很重要,那么可以首先使用硬件描述语言描述这个模块的功能,而在设计中不必专门对此项设计规定什么布线/布局的约束信息。第第5 5章章 LogicLock LogicLock优化技术优化技术 如果已经确定模块E和F的性能对于总系统来说比较重要,设计者就可以分
22、别对它们进行优化设计。考虑到模块E是由多个模块层次构成的,而模块F比较简单,设计者可以首先对模块F进行逻辑锁定、优化设计和适配,并得到对应于F的原子级网表文件。为了获得模块E的原子级网表文件,需要分两步来走:第一步,先按上节方法获得B的原子级网表文件,然后将此网表连同C输入模块E中;第二步,对E进行优化设计,最后将E的网表文件连同G和F输入进顶层设计G中进行全系统设计。第第5 5章章 LogicLock LogicLock优化技术优化技术 3.增量法设计流程逻辑锁定技术使得增量法设计流程方便、有效。如图5-4所示,顶层设计G含有4个模块,设计一开始就可以从顶层设计入手,但可以逐个加入模块进行区
23、域锁定、优化和布局/布线。完成以后,再加入下一个模块。如前所述,由于对每一模块都使用了锁定技术,所以,当在顶层中加入新模块后,原来已存在的模块的性能不会由于整个系统的编译、综合和适配优化而有所改变。第第5 5章章 LogicLock LogicLock优化技术优化技术 图5-4增量法设计流程第第5 5章章 LogicLock LogicLock优化技术优化技术 4.分组法设计流程分组法设计流程就是允许设计者为系统模块布置建立一个Floorplan(如图5-5),由不同的工程师分别设计各子模块,最后由系统工程师完成集成设计。具体步骤如下:(1)将设计系统分成模块A、B和C。(2)通过例化模块A、
24、B和C建立一个顶层设计工程,此顶层设计中规定各模块间的连接关系,并设定工程的时序要求和布局约束。如果设计者知道每一模块的逻辑资源占用的大致情况,则可将每一模块放置在各自定义的逻辑锁定区域中。第第5 5章章 LogicLock LogicLock优化技术优化技术 (3)为每一模块单独设定一个工程,并且对每一工程使用系统级的设计中给定的设置(包括优化要求的设置)。(4)分别综合、编译适配和优化这些模块,并仿真测试这些模块的性能,了解是否达到最初的要求。(5)如果必要,可以增加一些逻辑锁定的约束条件,以便能在总的系统设计中保持这些模块的优化结果。(6)一旦完成对单个模块的设计,就将这些模块连同设定的
25、约束条件输入顶层设计中。(7)最后由系统工程师完成对顶层设计进行总体的编译和仿真。第第5 5章章 LogicLock LogicLock优化技术优化技术 图5-5分组设计流程第第5 5章章 LogicLock LogicLock优化技术优化技术 5.1.6系统性能强化策略事实上,逻辑锁定技术也能直接改善系统的性能,即这些系统并不必按如前所述的由多个模块组成。对于这种系统,QuartusII的逻辑锁定功能通过合理组织放置和固定系统电路中的基本元件,同样能优化系统的性能。利用逻辑锁定技术实现这一目的的方法,就是所谓的系统性能强化策略。这一策略的有效性取决于系统特定的电路结构特点。具体策略如下(定义
26、锁定区域的原则):第第5 5章章 LogicLock LogicLock优化技术优化技术 (1)如果电路结构与设计层次十分相似,锁定区域就可以根据设计层次来设定。通常,这些设计系统是由关系十分紧密的模块构成的,而且其中每一模块的构成逻辑是独立的,模块间的信号联系是由良好的通信界面实现的。(2)根据关键通道路径来定义锁定区域。一般地,这些通道路径比较长,且跨越多个其它模块。这要确保被锁定的节点在关键路径上,或者模块包含关键路径。这种设计策略能达到改善系统性能的目的。第第5 5章章 LogicLock LogicLock优化技术优化技术 (3)为了降低电路连接处的延时以及连线的密度,可以将具有高扇
27、出和高扇入的电路结构设定为锁定区域。这往往是一种有效的方法。由上可见,利用逻辑锁定技术是可以选择多种方式的。可单独对各个模块进行优化锁定再集成,也可以将所有的模块一开始就集成在顶层系统,再根据结构情况进行锁定优化。第第5 5章章 LogicLock LogicLock优化技术优化技术 在实际设计中,可以根据具体情况使用不同类型的锁定技术和锁定流程或是混合方法进行系统适配和布局/布线的控制,达到优化的目的。但一般最好将锁定区域定义为自动大小和浮动位置,这样,QuartusII就能在适配中为系统设计,为锁定区域找到最合适的高宽尺寸和定位。第第5 5章章 LogicLock LogicLock优化技
28、术优化技术 如果各模块是在单独锁定、优化后输入顶层设计的,就可以按照上述的4个设计流程来进行系统设计。需要注意的是,对于每一优化的模块而设定的逻辑锁定的各项设置包含两个重要内容:一是逻辑锁定区域的信息;二是“背注”后的所谓原子级网表的信息。第第5 5章章 LogicLock LogicLock优化技术优化技术 另一种利用逻辑锁定技术进行优化设计的方法,就是以上提到的不经过对底层单个模块进行单独锁定优化,而是直接从顶层系统出发,根据具体结构情况确定锁定部分后进行优化。这种方法可使QuartusII将某些特定的节点放在锁定区域中,并可在器件中定义为浮动而允许QuartusII在适配中可移动。利用这
29、种方法,设计者可以将来自不同模块的电路元素(节点、元件、连线)放在锁定区域中,最后由QuartusII对整个系统进行优化设计。第第5 5章章 LogicLock LogicLock优化技术优化技术 熟悉Max+plusII的读者会发现LogicLock区域十分类似于Max+plusII中的“打包”(Cliques)。因为打包允许LCs(逻辑宏单元)组合在一起应用。设定锁定区域为“自动”时,就类似于Max+plusII中称为“最佳打包”(BestClique)的功能设置。而标志着对“行”与“列”的锁定区域的固定大小则类似于行或列的打包。此外,LogicLock区域也类似于“定制区域”的概念。因为
30、一个可定义的区域可以被设定为实体和节点。因此,如果LogicLock区域的位置是锁定的,则这个区域便类似于一个定制区域(Customregin)。第第5 5章章 LogicLock LogicLock优化技术优化技术 5.1.7锁定区域的移植与再利用逻辑锁定技术使得设计模块的移植和有效再利用变得十分方便。这是因为已被优化和布线/布局锁定的模块能很容易地被其它的设计工程调用,并能保持原有的性能。对于那些比较常用的模块,由于已经作了锁定和优化,可以组织一个模块库,用于其它更大系统的设计,提高系统设计的效率和性能。这是由于这些 库 中 包 含 针 对 这 些 模 块 的 原 子 级 网 表 文 件、
31、LogicLock的设置信息,以及详细的使用报告(包括模块的性能指标和逻辑资源的占用情况等)。第第5 5章章 LogicLock LogicLock优化技术优化技术 需要注意的是,虽然这些优化模块在与其诞生的目标器件同种系列的器件中都能获得好的工作特性,但只有将其用在最初设计的同型号器件中才能获得最好的性能。这是因为,同系列而不同型号的目标器件的结构特点毕竟与原来的器件的结构是有一定差别的。因此,要实现完全相同的布线/布局是不可能的。不过如果在设计中选用的目标器件属于同系列器件,若设定这些加入的模块为浮动状态,则能获得相似的性能指标。这种方式比较适用于一个较大的系统设计在同系列目标器件中的情况
32、。即当用这种目标器件无法获得该模块与在原器件中的完全相同的布线/布局且还有许多模块有待例化连接的情况下,设定这些模块为浮动状态较好。第第5 5章章 LogicLock LogicLock优化技术优化技术 5.2 未用未用LogicLock的数字滤波器设计的数字滤波器设计5.2.1数字滤波器结构及其VHDL描述图5-6是一个16阶滤波器的电路框图,它由4个4阶滤波器组成,即由4个4阶滤波器例化而成,其RTL电路图如图5-8所示。其中每一个4阶滤波器的结构如图5-7所示,其RTL电路图如图5-9所示。它们的源代码是例5-1、例5-2、例5-3和例5-4,其中例5-4是滤波器顶层设计,例5-3是4阶
33、滤波器模块的顶层设计。第第5 5章章 LogicLock LogicLock优化技术优化技术 图5-616阶滤波器顶层结构第第5 5章章 LogicLock LogicLock优化技术优化技术 图5-74阶滤波器第第5 5章章 LogicLock LogicLock优化技术优化技术 图5-816阶滤波器RTL电路图第第5 5章章 LogicLock LogicLock优化技术优化技术 图5-94阶滤波器RTL电路图第第5 5章章 LogicLock LogicLock优化技术优化技术 【例5-1】16位加法器源代码。libraryieee;useieee.std_logic_1164.all;
34、useieee.std_logic_unsigned.all;entityadderisport(clock:instd_logic;r1x:instd_logic_vector(15downto0);r2x:instd_logic_vector(15downto0);r3x:instd_logic_vector(15downto0);r4x:instd_logic_vector(15downto0);y:outstd_logic_vector(15downto0);第第5 5章章 LogicLock LogicLock优化技术优化技术 end;architecturertlofadderis
35、signaltmp:std_logic_vector(15downto0);beginprocess(clock)beginifrising_edge(clock)thentmp=(r1x+r2x)+(r3x+r4x);endif;endprocess;y=tmp;end;第第5 5章章 LogicLock LogicLock优化技术优化技术 【例5-2】8位乘法器源代码。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitymultisport(clock:instd_logic;a_in:in
36、std_logic_vector(7downto0);b_in:instd_logic_vector(7downto0);a_out:outstd_logic_vector(7downto0);第第5 5章章 LogicLock LogicLock优化技术优化技术 b_out:outstd_logic_vector(7downto0);r:outstd_logic_vector(15downto0);end;architecturertlofmultissignaltmp_a,tmp_b:std_logic_vector(7downto0);beginprocess(clock)beginif
37、rising_edge(clock)then第第5 5章章 LogicLock LogicLock优化技术优化技术 tmp_a=a_in;tmp_b=b_in;r=tmp_a*tmp_b;endif;endprocess;a_out=tmp_a;b_out=tmp_b;end;第第5 5章章 LogicLock LogicLock优化技术优化技术 【例5-3】4阶滤波器顶层设计代码。libraryieee;useieee.std_logic_1164.all;entityfilterisport(clock:instd_logic;din0 x:instd_logic_vector(7down
38、to0);coef0 x:instd_logic_vector(7downto0);din4x:outstd_logic_vector(7downto0);第第5 5章章 LogicLock LogicLock优化技术优化技术 coef4x:outstd_logic_vector(7downto0);result:outstd_logic_vector(15downto0);end;architecturertloffilteriscomponentmultport(clock:instd_logic;a_in:instd_logic_vector(7downto0);b_in:instd_l
39、ogic_vector(7downto0);a_out:outstd_logic_vector(7downto0);b_out:outstd_logic_vector(7downto0);r:outstd_logic_vector(15downto0);第第5 5章章 LogicLock LogicLock优化技术优化技术 endcomponent;componentadderport(clock:instd_logic;r1x:instd_logic_vector(15downto0);r2x:instd_logic_vector(15downto0);r3x:instd_logic_vec
40、tor(15downto0);r4x:instd_logic_vector(15downto0);y:outstd_logic_vector(15downto0);第第5 5章章 LogicLock LogicLock优化技术优化技术 endcomponent;signalcoef1x,coef2x,coef3x,din1x,din2x,din3x:std_logic_vector(7downto0);signalr0 x,r1x,r2x,r3x:std_logic_vector(15downto0);begin第第5 5章章 LogicLock LogicLock优化技术优化技术 mult_
41、i0:multportmap(clock,din0 x,coef0 x,din1x,coef1x,r0 x);mult_i1:multportmap(clock,din1x,coef1x,din2x,coef2x,r1x);mult_i2:multportmap(clock,din2x,coef2x,din3x,coef3x,r2x);mult_i3:multportmap(clock,din3x,coef3x,din4x,coef4x,r3x);adder_i:adderportmap(clock,r0 x,r1x,r2x,r3x,result);end;第第5 5章章 LogicLock
42、LogicLock优化技术优化技术 【例5-4】16阶滤波器顶层设计代码。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitylargefilterisport(clock:instd_logic;din0 x:instd_logic_vector(7downto0);coef0 x:instd_logic_vector(7downto0);result:outstd_logic_vector(15downto0);第第5 5章章 LogicLock LogicLock优化技术优化技术 end;
43、architecturestroflargefilteriscomponentfilterport(clock:instd_logic;din0 x:instd_logic_vector(7downto0);coef0 x:instd_logic_vector(7downto0);din4x:outstd_logic_vector(7downto0);coef4x:outstd_logic_vector(7downto0);result:outstd_logic_vector(15downto0);第第5 5章章 LogicLock LogicLock优化技术优化技术 endcomponent
44、;signalcoef4x,din4x,coef8x,din8x,coef12x,din12x,coef16x,din16x:std_logic_vector(7downto0);signalr0 x,r4x,r8x,r12x:std_logic_vector(15downto0);beginfilter_i0:filterportmap(clock,din0 x,coef0 x,din4x,coef4x,r0 x);filter_i1:filterportmap(clock,din4x,coef4x,din8x,coef8x,r4x);filter_i2:filterportmap(cloc
45、k,din8x,coef8x,din12x,coef12x,r8x);第第5 5章章 LogicLock LogicLock优化技术优化技术 filter_i3:filterportmap(clock,din12x,coef12x,din16x,coef16x,r12x);process(clock)beginifrising_edge(clock)thenresult=r0 x+r4x+r8x+r12x;endif;endprocess;end;第第5 5章章 LogicLock LogicLock优化技术优化技术 5.2.2滤波器设计和结果观察滤波器设计流程如下:1.在QuartusII中
46、输入源文件并建立工程根据第2章介绍的方法,首先对例5-1、5-2、5-3和5-4进行编辑输入,然后分别存在D:largefilter文件夹中,并设largefilter.vhd为工程。目标器件选为EP20K200EQC240-3。第第5 5章章 LogicLock LogicLock优化技术优化技术 2.设定时钟约束并编译在Assignments菜单中选“Settings”,然后在Settings窗中的TimingSettings项中选中“Clocks”,并在“Defaultrequiredfor”栏键入“50”,选择“MHz”,如图5-10所示。最后进行编译,即启动Processing?St
47、artCompilation。第第5 5章章 LogicLock LogicLock优化技术优化技术 图5-10设定设计要求最高时钟频率第第5 5章章 LogicLock LogicLock优化技术优化技术 3.了解编译结果编译结束后,可在编译处理信息栏处看到内部寄存器间最高时钟频率fmax=48.5MHz,不能达到原设定的50MHz的要求(图5-11)。为进一步了解本项设计的结果,打开菜单Processing中的“CompilatinReport”窗,首先点击左栏TimingAnalyses左侧的“+”号,并点击“fmax”项,于是将显示如图5-12所示的信息,这些信息表明未能达到50MHz
48、的要求。第第5 5章章 LogicLock LogicLock优化技术优化技术 图5-11编译处理信息窗第第5 5章章 LogicLock LogicLock优化技术优化技术 图5-12最高时钟频率时序分析窗第第5 5章章 LogicLock LogicLock优化技术优化技术 4.观察Floorplan最 后 点 击 编 译 报 告“Compilatin Report”栏 的“FloorplanView”,以便了解适配器在FPGA中的版图的资源利用情况(图5-13)。由FloorplanView中可见,本项设计所用的逻辑宏单元在整个Floorplan中都无序地散布着,这显然是没有进行逻辑锁定
49、的结果,这种布局(Placement)方案常常不利于资源和时钟速度的优化。第第5 5章章 LogicLock LogicLock优化技术优化技术 图5-13Floorplan中的逻辑资源应用情况第第5 5章章 LogicLock LogicLock优化技术优化技术 5.3 应用逻辑锁定技术应用逻辑锁定技术 在此,以上面给出的数字滤波器的结构方案为例,详细说明QuartusII的逻辑锁定技术的使用方法。如上所述,逻辑锁定形成适配布局约束,从而可以分别优化并固定顶层设计中各层次中的模块,以便在后续的设计编译中,或在更高层次的编译调用中,使得设计项目在适配中保持原模块的布局结构以及相应的硬件特性。在
50、利用逻辑锁定技术的过程中,一旦将设计模块以某种方式进行逻辑锁定后,即可以VerilogQuartusMapping文件形式(*.vqm)将其优化综合的结果存盘,以便在必要时输出给更大(更顶层)的设计调用。第第5 5章章 LogicLock LogicLock优化技术优化技术 5.3.1底层模块设计及其VQM文件保存以下将给出顶层设计Largefilter的底层模块filter的逻辑锁定设计流程,以及以VQM文件方式存盘的方法。最后可以将此VQM文件输入到更顶层的设计Largefilter工程中进行总体优化设计。VQM文件属于原子级网表文件。1.建立待优化模块filter为工程由上节可以知道,f