Design Compiler:Topographical Workshop Lab4
相关阅读
Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm=1001.2014.3001.5482
本文是对Synopsys Design Compiler Topographical/Graphical Workshop Lab Guide中Lab4的翻译,Lab文件可以从以下链接获取。
实验四、拥塞(实验时长:30分钟)
学习目标
在本实验中,你将分析并处理拥塞问题。
完成本实验后,你应能够:
- 生成并解读拥塞报告,包括文本和图形报告
- 决定是在RTL代码、布图规划中修复拥塞问题,还是通过优化编译来解决拥塞问题
网表ORCA_TOP.mapped_lab.ddc已提供,你的任务是分析它的拥塞情况。
任务一、将已编译的网表读取到DC-T中
1、启动DC-T
cd lab4_congestion
dc_shell -topo | tee -i mylog.log
2、加载设置信息和包含布图规划的网表
source dc_setup.tcl
read_ddc ./results/ORCA_TOP.mapped_lab.ddc
link
任务二、使用文本报告分析拥塞
1、使用文本报告找出是否存在拥塞问题
report_congestion
问题 1:是否存在拥塞?
答案 1:是的,存在拥塞,如下所示。
Both Dirs: Overflow = 6441 Max = 61 (1 GRCs) GRCs = 1631 (13.48%)
H routing: Overflow = 4258 Max = 37 (1 GRCs) GRCs = 970 (8.02%)
V routing: Overflow = 2183 Max = 44 (2 GRCs) GRCs = 760 (6.28%)
问题 2:全局路由单元总共超出了多少条线(这是衡量整体拥塞的指标)?
答案 2:6441。
问题 3:单个全局路由单元的最严重违规(Max列是最差热点的指标)是多少?
答案 3:61。
任务三、通过GUI探索总体拥塞
在本任务中,你将看到两种类型的拥塞:由布图规划引起的围绕宏单元的拥塞,由RTL代码引起的核心(开放)区域中的拥塞。
1、打开Top-Level Design Vision window,如图1所示
start_gui
图1 开启GUI
2、打开Layout Window,如图2所示
Window->New Layout Window
图2 打开布图窗口
3、在Layout Window中添加拥塞示意图,如图3所示
View-> Map Mode
图3 添加拥塞示意图
问题 4:拥塞主要集中在哪里?
答案 4:主要集中在RISC_CORE及其周围,和布图规划中宏单元之间的位置。
4、检查GRC边界以获取确切的布线交叉数量
仅显示最严重的违规情况:在布图规划的右侧,取消勾选除红色外的所有颜色,点击Apply。
在LayoutWindow的左上角,点击放大镜图标+。
点击并拖动以选中一些红色违规区域,继续缩放,直到可以看到“实际/阈值”数量。
问题 5:红色区域指的是超出了阈值多少?
答案 5:红色区域指的是超出阈值7及以上。
在本任务中,检查了由布图规划引起的拥塞。为了修复这些拥塞,请把报告交给布图规划人员,他们将使用布局或布图规划工具进行修复。
任务四、检查标准单元拥塞
在本任务中,将追踪核心(开阔)区域中显示的拥塞,并追溯到可能的RTL源代码。
1、缩小视图以查看整个布图规划(按F快捷键)
2、打开一个窗口来列出拥塞区域中的单元,如图4和图5所示
在布图规划的右侧,点击“List cells in congested region”按钮。
将弹出的窗口(List by Congested Region)移到LayoutWindow旁边。
图4 列出单元
图5 打开的窗口
3、选择一个拥塞的标准单元区域(如图6中的蓝色方框所示)
图6 选择拥塞区域(这些在布图规划的核心(开阔)区域中以线条或点的形式显示出来)
4、检查List by Congested Region窗口中的单元列表(点击Apply查看选择的单元列表)
问题 6:在单元名称中你看到了什么?
答案 6:有很多单元名称以mult开头(即多路复用器的缩写)。
问题 7:通过查看单元路径,哪个模块似乎是问题的源头?
答案 7:I_BLENDER出现了很多次(这些是BLENDER模块的实例)。
问题 8:如果想通过修改RTL代码来修复标准单元拥塞,你会寻找哪些编码结构,以及在哪个模块中查找?
答案 8:由于看到大量多路复用器,考虑在BLENDER模块中查找case语句。
问题 9:在修复RTL代码或布图规划之前,检查一个可能导致拥塞的因素:使用report_area -physical命令查看利用率,你看到了多少百分比?
答案 9:利用率相当高,这可能会导致拥塞。
问题 10:在修复RTL代码或布图规划之前,有什么更简单的方法可以尝试修复拥塞?
答案 10:执行一个优化拥塞的编译:
compile_ultra -congestion 或 compile_ultra -spg
原文链接
原文地址:https://blog.csdn.net/weixin_45791458/article/details/144372923
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!