lucien_1986的个人空间 https://blog.eetop.cn/lucien [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

跨边界综合

已有 1983 次阅读| 2012-4-11 19:21 |个人分类:学习心得


一.跨边界综合概述

    一个HDL顶层设计一般是由若干个一级模块组成,而一级模块又可能包含若干个二级模块,每一级模块都可能包含更低层次的模块,由此形成设计的层次化。HDL代码综合的时候,可以选择是跨边界综合还是保持设计单元的原有层次结构。

 

    综合时可以保持设计的原有层次,以模块为单位进行优化,可以减少综合所用的时间,因为单个模块的复杂程度是有限的。同时,对某些特别重要的模块(如要跑在更高的时钟频率),可以通过设置层次保持属性让这个模块与设计的其他部分隔离开,让它在每次综合中都保持一样的综合结果。改动设计的其他部分不会影响到该部分的综合结果。综合时应用层次保持属性,结合后续实现过程(如Xilinx的MAP和PAR)中的设计分块(Partition)设置,只要不改变设计分块(Partition)的代码,改变其他部分的代码时,可以重复使用设计分块的上一次实现结果。这种做法可以保证某些重要的模块每一次的实现结果都是一样的,减少实现时间的同时又保证了实现结果每次都能满足时序要求。FPGA的部分重配置功能也要求相应模块在综合时保证层次不改变。设计分块(Partition)的相关内容,Xilinx用户可参考《Hierarchical Design Methodology Guide》(UG748),Atera用户可参考《quartusii handbook》第一卷中第二章《Quartus II Incremental Compilation for Hierarchical and Team-Based Design》。

 

综合时也可以打破模块的边界,在整个设计范围内进行逻辑优化,虽然综合过程会花费更长的时间,却可以获得更好的综合结果(通过逻辑的整合优化,可以减少资源的使用,同时提高时钟频率)。跨边界综合的目的是充分利用FPGA内部逻辑资源,让资源的利用效率最大化,是根据FPGA资源的特征(如XilinxSlice),在wirereg层面(或者说是LUT/FF层面)进行整合和优化。在下图中,二级模块I2设置了保持原有层次的属性(使用的是XST支持的语法),因此综合后I2的层次得以保留,而I1I3I7I8I4I5的层次就被打破。其中I4I5I2的内部模块,I2的保持原有层次属性保证的是I2I0中的层次结构不受破坏,但是I2内部层次会被打破。I4I5想保持在I2中的层次,必须各自分别设置保持层次属性。

 

             

 

.跨边界综合的语法和命令

 

针对不同的综合工具,跨边界综合的命令和语法是不一样的,下面synplifyXilinxXST为例,介绍跨边界综合的命令与语法。其中synplify使用的层次保持属性为syn_hier,XST使用的层次保持属性为keep_hierarchy。详细介绍敬请点击以下链接进入:

 

 

      点击进入后续章节

 

 

 

 

 

------------------------------------------------------------------------------------------------------------------------------------------

更多精彩内容,请关注我的主博客,多谢支持
http://blog.163.com/fpga_ip/

 


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 3

    粉丝
  • 0

    好友
  • 0

    获赞
  • 32

    评论
  • 927

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-25 16:23 , Processed in 0.024239 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部