Partition技术
扫描二维码
随时随地手机看文章
中为需要做设计重用或者希望保留上次实现结果的模块设定Partition属性。Partition设定的对象可以是设计中任意层次的任意模块,这些设计可以是HDL代码、EDIF网表,甚至是原理图格式。为设计模块设定了Partition属性以后,如果用户对设计做了部分修改,然后再次运行这个ISE工程,那么ISE会对比发生的改动。如果定义了Partition的模块没有改动,则ISE会根据保留级别的设置从数据库中把Partition模块上次的综合网表、布局结果或者布线结果复制过来使用,其他有改动的Partition模块和没有定义Partition属性的模块会被ISE重新综合和布局布线。这样Partition模块的网表结构和时序结果就会与上次实现结果完全相同,从而达到设计重用的目的,如图1所示。这种“复制”和“粘贴”Partition模块的过程可以大幅度地缩短布局布线运行时间`也可以完整地保留上次的实现结果`尤其是时序结果,用户不必再担心Partition模块出现功能和时序上的差异。
图1 Partition通过“复制”和“粘贴”实现设计重用
以下通过设计范例介绍如何在ISE中运用Partition技术。
(1)生成一个新的Partition
创建ISE工程之后,设计者首先要从( Source)窗格中找到需要重用的模块。然后为其生成一个Partition,具体操作如图2所示。在【Source】窗格中展开设计层次,右击相应的模块后。在弹出快捷菜单中单击(New Partition)命令,为该模块生成了一个Partition。
图2 生成一个新的Partition
(2)设智Partion属性
生成一个Partion后,该模块的图标会改变,顶层模块的图标也会为的,这表示设计中有些模块设定了Partion识些礻尝块伯待实现.存Partion性设皆屮还可以设定保留和重用的级捌,如图3所示,右击Panition模块 ,【Propedies】命令.在对话框中的【Category】列表框中选择【Partion】选14,然后在下边的拉列表中选择没计保留和重用(ProseVC)的级别。选择【Routing】选项表示综合的网表,布局和布线信虑、公被保留,这足默认的保留级别;选择【Placement】选项表示保留综合的网表和布局信息;选择【Synthesis】选项表示只保留综合的网表:选择【Inhedt】选1项表示沿用上层父模块的保留级别。如果上层父模块木定义Partion,则保留默认,此时会看到名称“Inherit(Routing)”。选择后单击【OK】按钮。
图3 设置Partion的保留级别
(3)运行ISE工具得到实现结果
如图4所示,实现过程结束之后,Paffition模块的图标会改变,顼层模块的图标也会变表示设计中的Partion模块已经完成实现。
图4 Partition模块已经完成现实流程
在(Design Summary)窗格中可以看到关于Partition的报告信息,如图5所示。
图5 Partition Summary报告
(4)设计更新之后重新运行ISE
如果Partition模块未曾改动,那么ISE就会保留Partition上次实现的结果。设计者可以在Synthesis、MAP和PAR报告中看到关于Partition模块的资源及状态等信`患。在(Design Summary)窗格中也有关于Partition的报告信息,如图6所示。在这个例子中我们为u_phy_init_0两个模块定义了两个Partition。第1次实现以后,u_phy_init_0模块和其他模块有过代码改动,但Partition模块u_phy_init_0没有改动。从图6可以看到ISE保留了u_phy_init_0上一次的实现结果。
图6 设计更新并重新实现后的Partition Summary报告
(5)Partition的其他操作
如果设计者想删除先前定义的Partition,可以在(Source )窗格中右击相应的Partition模块,然后选择(Delete Partition)命令。
如果设计者想暂时取消对某个Partition的保留状态,即这次实现不想保留以前的实现结果,而是重新综合或实现,那么在右击出现的快捷菜单中选择对话框中( Partition Force)选项后,选择取消保留哪个阶段,如图7所示。(Force Synthesis Out-of-date)选项表示不再保留上次的综合结果,ISE需要重新综合这个模块;( Force“Implement Design”Out-of-date)选项表示不再保留上次的布局布线结果,ISE可以重新为这个模块布局布线。
图7 暂时取消Partiton的保留状态
(6)注意事项
ISE工具选项或命令行的变动导致所有Partition模块需要重新实现,如map-timineeffort levels,以及任何命令行变化。
Partition支持层次嵌套,Partition可以应用于任意层次的任意模块。
Partition自动检测设计文件的变化,这些文件既包括HDL代码,也包括约束文件,如 UCF中的物理位置约束及针对Partition模块的区域约束等。
Partition不要求有区域约束。
MPPR、logic_Opt及global_opt功能与Partition不兼容。
来源:ks990次