首页 > 其他分享 >DesignWare IP使用——层次化综合加快总体综合速度

DesignWare IP使用——层次化综合加快总体综合速度

时间:2025-01-03 21:00:35浏览次数:5  
标签:层次化 IP 浮点 DesignWare DW div 综合

记录一下目前综合时遇到的一点小问题。

目前的设计的计算模块里大量使用了DW IP,包括浮点除法器,浮点加减法器,浮点乘法器,浮点求根器,浮点比较器等每个各32个,直接综合的话会发现这些大的计算单元每个都需要进行mapping,会导致综合的总时长长的难以想象(可能需要数天的时间)。

分析其原因,主要就是尽管对DW IP进行了重复例化,但在综合时实际上由于每个的env被视作不同,所以都会被独立进行mapping和optimization,导致总时间变得离谱。所以解决思路也很简单,进行层次化的综合,先把要用到的DW IP给单独综合为网表,在整体大模块中直接调用已经综合好的网表进行再综合(同时要注意对模块设置set_dont_touch属性,避免工具再去优化已经综合好的网表,经过实践发现,如果不加的话时间一样会长的离谱)。

对DW IP进行独立综合时,可以在其外部包裹wrapper提升设计时调用的便捷性,在约束时给一个相对而言比较紧的时序约束,来确保后续的综合可以通过。

以我这里的一个浮点除法器为例:

// float point divider
module fp_div (
    input  wire [31:0] i1,
    input  wire [31:0] i2,
    output wire [31:0] o
);

parameter sig_width = 23;
parameter exp_width = 8;
parameter ieee_compliance = 0;

DW_fp_div # (
    sig_width,
    exp_width,
    ieee_compliance
) u_DW_fp_div (
    .a(i1),
    .b(i2),
    .rnd(3'b000),
    .z(o),
    .status()
);

endmodule

目标是跑上400MHz,对应2.5ns周期,在约束时适当加紧,最后达到了1.37ns的最大组合传播延时。

随后综合产生网表:

image

在顶层模块综合时,直接读入该文件即可。

此外需要对该模块进行set_dont_touch,我将其写到了sdc中,通过set_dont_touch [get_references u_xxxx/u_xxxx/fp_div*]完成约束,这里需要注意get_references命令在执行时必须要符合设计的层次,确保能够找到所有的fp_div的例化模块。

至此层次化综合的设置全部完成,再次运行综合之后,发现综合速度极大提升,从原来的可能需要数天时间,直接加快到二十分钟左右就结束。

该思路对于其他需要以网表的形式做集成的IP也都是适用的,层次化的综合也有利于减小整体的综合时间以及减小机器的资源需求,是个挺有用的trick。

标签:层次化,IP,浮点,DesignWare,DW,div,综合
From: https://www.cnblogs.com/sasasatori/p/18650849

相关文章

  • 【Seed-Labs 2.0】Cross-Site Scripting (XSS) Attack Lab (Web Application: Elgg)
    Overview跨站脚本(XSS)是网络应用程序中常见的一种漏洞。攻击者可利用该漏洞向受害者的网络浏览器注入恶意代码(如JavaScript程序)。利用这些恶意代码,攻击者可以窃取受害者的凭证,如会话cookie。利用XSS漏洞可绕过浏览器为保护这些凭证而采用的访问控制策略(即同一来源......
  • 洛谷P1525 [NOIP2010 提高组] 关押罪犯(种子并查集基础)
    题目链接:P1525[NOIP2010提高组]关押罪犯-洛谷|计算机科学教育新生态题目难度:普及+/提高题目描述:S城现有两座监狱,一共关押着 N 名罪犯,编号分别为 1∼N,有m对罪犯,每对之间有仇恨值,问如何分配罪犯使得现Z市长要看到其中最大的矛盾值最小。输入格式:每行中两个数之......
  • tryhackme-Cyber Security 101-Cryptography-John the Ripper: The Basics(开膛手约翰:
    了解如何使用JohntheRipper,这是一款功能强大且适应性强的哈希破解工具。任务1:介绍JohntheRipper 是一个众所周知的、深受喜爱的、多功能的哈希破解工具。它结合了快速的破解速度和非凡的兼容哈希类型。学习先决条件为了获得最大的收益,我们建议您在前三个关于密码学......
  • 【语法】enumerate、zip
    enumerateenumerate(iterable,[start=0])功能:枚举;将索引号和iterable中的值,一个一个拿出来配对组成元组,通过迭代器返回参数:iterable:可迭代性数据(常用:迭代器,容器类型数据,可迭代对象range)start:可以选择开始的索引号(默认从0开始索引)返回值:迭代器1dic={k:v......
  • java 使用HttpClient发送post请求,参数包括MultipartFile、Map以及File转MockMultipart
        遇到使用java调用其他系统的http接口时,发送的参数中有文件,不太好处理,如下总结了发送带文件的的http方法,发送的文件还需要先将File转成MockMultipartFile否则接收会报错。关键的代码和依赖如下所示。一、依赖<dependency><groupId>org.apache.httpcomponents</......
  • TypeScript使用utools进行数据存储
    使用TypeScript​当你需要在项目中使用TypeScript时,一般会遇到无法正常使用 utools 的API的情况。因此uTools官方推出了完整的类型定义文件,这份类型文件完整的列举了目前 utools 对象下所有的API,并会根据版本的迭代同步更新。utools-api-types​utools-api-types......
  • set whiteip
    #-*-coding:utf-8-*-#Thisfileisauto-generated,don'teditit.Thanks.#pyinstaller--onefileyour_script.py#创建虚拟环境venv:#python3-mvenvvenv#依赖安装:#pip3install--upgradepip#pip3installaliyun-python-sdk-dcdn==2.2.19importosimport......
  • Android 14.0 系统限制上网系列之iptables用IOemNetd实现app上网黑名单的实现
    1.前言在14.0的系统rom定制化开发中,对于系统限制网络的使用,在system中netd网络这块的产品需要中,会要求设置屏蔽某个app上网的功能,liunx中iptables命令也是比较重要的,接下来就来在IOemNetd这块实现app上网黑名单的的相关功能,就是在系统中只能不允许某个app上网,就是除了这个app......
  • GLIP复现分析
    GLIP-L和GLIP-T(C)在COCO数据集上的Zero-Shot预测结果GPU为TeslaP4024G。指标GLIP-LGLIP-T(C)AP@[IoU=0.50:0.95](所有区域的平均精度)51.24%/61.7%46.74%/55.1%AP@[IoU=0.50](IoU=0.50时的平均精度)68.23%63.43%AP@[IoU=0.75](IoU=0.75时的平......
  • HTML5期末大作业:基于HTML+CSS+JavaScript仿蘑菇街购物商城设计毕业论文源码 (1)
    常见网页设计作业题材有个人、美食、公司、学校、旅游、电商、宠物、电器、茶叶、家居、酒店、舞蹈、动漫、服装、体育、化妆品、物流、环保、书籍、婚纱、游戏、节日、戒烟、电影、摄影、文化、家乡、鲜花、礼品、汽车、其他等网页设计题......